]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
This commit was manufactured by cvs2svn to create branch
authorcvs2svn <tools@python.org>
Tue, 17 Apr 2001 15:19:29 +0000 (15:19 +0000)
committercvs2svn <tools@python.org>
Tue, 17 Apr 2001 15:19:29 +0000 (15:19 +0000)
'release21-maint'.

305 files changed:
Demo/pdist/new [deleted file]
Demo/scripts/freeze.py [deleted file]
Demo/sgi/video/IN.py [deleted file]
Demo/sgi/video/Makefile [deleted file]
Demo/sgi/video/Vrecc.py [deleted file]
Demo/sgi/video/cam.py [deleted file]
Demo/sgi/video/camcorder.py [deleted file]
Demo/sgi/video/colorsys.py [deleted file]
Demo/sgi/video/i2v.c [deleted file]
Demo/sgi/video/makemovie.py [deleted file]
Demo/sgi/video/squash.c [deleted file]
Demo/sgi/video/squash2.c [deleted file]
Demo/sgi/video/statit.py [deleted file]
Demo/sgi/video/syncaudio.py [deleted file]
Demo/sgi/video/tomono.c [deleted file]
Demo/sgi/video/tv.py [deleted file]
Demo/sgi/video/v2i.c [deleted file]
Demo/sgi/video/vcopy.py [deleted file]
Demo/sgi/video/video.py [deleted file]
Demo/sgi/video/vinfo.py [deleted file]
Demo/sgi/video/vpregs.py [deleted file]
Demo/sgi/video/vtime.py [deleted file]
Demo/sockets/ChangeLog [deleted file]
Demo/tkinter/Tree.py [deleted file]
Doc/libmods.tex [deleted file]
Doc/libstd.tex [deleted file]
Doc/whatsnew/whatsnew20.tex [deleted file]
Doc/whatsnew/whatsnew21.tex [deleted file]
Include/config.h [deleted file]
Include/rename1.h [deleted file]
Lib/builtin.py [deleted file]
Lib/idlelib/AutoExpand.py [deleted file]
Lib/idlelib/AutoIndent.py [deleted file]
Lib/idlelib/Bindings.py [deleted file]
Lib/idlelib/CallTipWindow.py [deleted file]
Lib/idlelib/CallTips.py [deleted file]
Lib/idlelib/ChangeLog [deleted file]
Lib/idlelib/ClassBrowser.py [deleted file]
Lib/idlelib/ColorDelegator.py [deleted file]
Lib/idlelib/ConfigParser.py [deleted file]
Lib/idlelib/Debugger.py [deleted file]
Lib/idlelib/Delegator.py [deleted file]
Lib/idlelib/EditorWindow.py [deleted file]
Lib/idlelib/ExecBinding.py [deleted file]
Lib/idlelib/FileList.py [deleted file]
Lib/idlelib/FormatParagraph.py [deleted file]
Lib/idlelib/FrameViewer.py [deleted file]
Lib/idlelib/GrepDialog.py [deleted file]
Lib/idlelib/IOBinding.py [deleted file]
Lib/idlelib/Icons/folder.gif [deleted file]
Lib/idlelib/Icons/minusnode.gif [deleted file]
Lib/idlelib/Icons/openfolder.gif [deleted file]
Lib/idlelib/Icons/plusnode.gif [deleted file]
Lib/idlelib/Icons/python.gif [deleted file]
Lib/idlelib/Icons/tk.gif [deleted file]
Lib/idlelib/IdleConf.py [deleted file]
Lib/idlelib/IdleHistory.py [deleted file]
Lib/idlelib/MultiScrolledLists.py [deleted file]
Lib/idlelib/MultiStatusBar.py [deleted file]
Lib/idlelib/NEWS.txt [deleted file]
Lib/idlelib/ObjectBrowser.py [deleted file]
Lib/idlelib/OldStackViewer.py [deleted file]
Lib/idlelib/OutputWindow.py [deleted file]
Lib/idlelib/ParenMatch.py [deleted file]
Lib/idlelib/PathBrowser.py [deleted file]
Lib/idlelib/Percolator.py [deleted file]
Lib/idlelib/PyParse.py [deleted file]
Lib/idlelib/PyShell.py [deleted file]
Lib/idlelib/README.txt [deleted file]
Lib/idlelib/Remote.py [deleted file]
Lib/idlelib/ReplaceDialog.py [deleted file]
Lib/idlelib/ScriptBinding.py [deleted file]
Lib/idlelib/ScrolledList.py [deleted file]
Lib/idlelib/SearchBinding.py [deleted file]
Lib/idlelib/SearchDialog.py [deleted file]
Lib/idlelib/SearchDialogBase.py [deleted file]
Lib/idlelib/SearchEngine.py [deleted file]
Lib/idlelib/Separator.py [deleted file]
Lib/idlelib/StackViewer.py [deleted file]
Lib/idlelib/TODO.txt [deleted file]
Lib/idlelib/ToolTip.py [deleted file]
Lib/idlelib/TreeWidget.py [deleted file]
Lib/idlelib/UndoDelegator.py [deleted file]
Lib/idlelib/WidgetRedirector.py [deleted file]
Lib/idlelib/WindowList.py [deleted file]
Lib/idlelib/ZoomHeight.py [deleted file]
Lib/idlelib/__init__.py [deleted file]
Lib/idlelib/config-unix.txt [deleted file]
Lib/idlelib/config-win.txt [deleted file]
Lib/idlelib/config.txt [deleted file]
Lib/idlelib/eventparse.py [deleted file]
Lib/idlelib/extend.txt [deleted file]
Lib/idlelib/help.txt [deleted file]
Lib/idlelib/idle.bat [deleted file]
Lib/idlelib/idle.py [deleted file]
Lib/idlelib/idle.pyw [deleted file]
Lib/idlelib/idlever.py [deleted file]
Lib/idlelib/keydefs.py [deleted file]
Lib/idlelib/loader.py [deleted file]
Lib/idlelib/protocol.py [deleted file]
Lib/idlelib/pyclbr.py [deleted file]
Lib/idlelib/spawn.py [deleted file]
Lib/idlelib/tabnanny.py [deleted file]
Lib/idlelib/testcode.py [deleted file]
Lib/macstat.py [deleted file]
Lib/persist.py [deleted file]
Mac/Build/PythonCore.exp [deleted file]
Mac/Build/PythonCore.mcp [deleted file]
Mac/Build/PythonCoreCarbon.exp [deleted file]
Mac/Build/PythonInterpreter.mcp [deleted file]
Mac/Build/PythonStandSmall.mcp [deleted file]
Mac/Build/PythonStandalone.mcp [deleted file]
Mac/Build/_dummy_tkinter.mcp [deleted file]
Mac/Contrib/AECaptureParser/AECaptureParser.py [deleted file]
Mac/Contrib/BBPy.lm/BBPy.c [deleted file]
Mac/Contrib/BBPy.lm/PythonBBLM.txt [deleted file]
Mac/Contrib/BBPy/PythonSlave.py [deleted file]
Mac/Contrib/PythonScript/ReadMe.txt [deleted file]
Mac/Demo/applescript/Disk_Copy/Special_Events.py [deleted file]
Mac/Demo/applescript/Disk_Copy/Standard_Suite.py [deleted file]
Mac/Demo/building.html [deleted file]
Mac/Demo/calldll/readme [deleted file]
Mac/Demo/quicktime/VerySimplePlayer.py [deleted file]
Mac/Demo/textedit/ped.py [deleted file]
Mac/Distributions/(vise)/Python 2.1.vct [deleted file]
Mac/Distributions/readme.txt [deleted file]
Mac/IDE scripts/Hack/Toolbox Assistant... [deleted file]
Mac/IDE scripts/Widget demos/WidgetTest.py [deleted file]
Mac/Include/config.h [deleted file]
Mac/Include/getapplbycreator.h [deleted file]
Mac/Include/macbuildno.h [deleted file]
Mac/Include/macglue.h [deleted file]
Mac/Include/pymactoolbox.h [deleted file]
Mac/Lib/EasyDialogs.py [deleted file]
Mac/Lib/MACFS.py [deleted file]
Mac/Lib/cfmfile.py [deleted file]
Mac/Lib/findertools.py [deleted file]
Mac/Lib/lib-scripting/AppleScript_Suite.py [deleted file]
Mac/Lib/lib-scripting/CodeWarrior_Standard_Suite.py [deleted file]
Mac/Lib/lib-scripting/Finder_Suite.py [deleted file]
Mac/Lib/lib-scripting/Metrowerks_Shell_Suite.py [deleted file]
Mac/Lib/lib-scripting/Standard_Suite.py [deleted file]
Mac/Lib/lib-scripting/Standard_URL_suite.py [deleted file]
Mac/Lib/lib-scripting/WWW_Suite.py [deleted file]
Mac/Lib/lib-scriptpackages/CodeWarrior/CodeWarrior_suite.py [deleted file]
Mac/Lib/lib-scriptpackages/CodeWarrior/Metrowerks_Shell_Suite.py [deleted file]
Mac/Lib/lib-scriptpackages/CodeWarrior/Standard_Suite.py [deleted file]
Mac/Lib/lib-scriptpackages/Finder/Containers_and_folders.py [deleted file]
Mac/Lib/lib-scriptpackages/Finder/Earlier_terms.py [deleted file]
Mac/Lib/lib-scriptpackages/Finder/Files_and_suitcases.py [deleted file]
Mac/Lib/lib-scriptpackages/Finder/Finder_Basics.py [deleted file]
Mac/Lib/lib-scriptpackages/Finder/Finder_items.py [deleted file]
Mac/Lib/lib-scriptpackages/Finder/Obsolete_terms.py [deleted file]
Mac/Lib/lib-scriptpackages/Finder/Type_Definitions.py [deleted file]
Mac/Lib/lib-scriptpackages/Finder/Window_classes.py [deleted file]
Mac/Lib/lib-scriptpackages/Netscape/Mozilla_suite.py [deleted file]
Mac/Lib/lib-scriptpackages/Netscape/PowerPlant.py [deleted file]
Mac/Lib/lib-scriptpackages/Netscape/Required_suite.py [deleted file]
Mac/Lib/lib-scriptpackages/Netscape/Standard_Suite.py [deleted file]
Mac/Lib/lib-scriptpackages/Netscape/Standard_URL_suite.py [deleted file]
Mac/Lib/lib-scriptpackages/Netscape/Text.py [deleted file]
Mac/Lib/lib-scriptpackages/Netscape/WorldWideWeb_suite.py [deleted file]
Mac/Lib/lib-scriptpackages/Netscape/__init__.py [deleted file]
Mac/Lib/lib-scriptpackages/StdSuites/AppleScript_Suite.py [deleted file]
Mac/Lib/lib-scriptpackages/StdSuites/Standard_Suite.py [deleted file]
Mac/Lib/lib-scriptpackages/StdSuites/Table_Suite.py [deleted file]
Mac/Lib/lib-scriptpackages/StdSuites/Text_Suite.py [deleted file]
Mac/Lib/lib-toolbox/AppleEvents.py [deleted file]
Mac/Lib/lib-toolbox/Dialogs.py [deleted file]
Mac/Lib/lib-toolbox/Icons.py [deleted file]
Mac/Lib/macerrors.py [deleted file]
Mac/Lib/test/tlist_dialog.rsrc [deleted file]
Mac/MPW/buildall [deleted file]
Mac/Modules/Nav.c [deleted file]
Mac/Modules/ae/AEmodule.c [deleted file]
Mac/Modules/ae/aesupport.py [deleted file]
Mac/Modules/app/Appmodule.c [deleted file]
Mac/Modules/app/appsupport.py [deleted file]
Mac/Modules/cm/Cmmodule.c [deleted file]
Mac/Modules/cm/cmsupport.py [deleted file]
Mac/Modules/ctl/Ctlmodule.c [deleted file]
Mac/Modules/ctl/ctlscan.py [deleted file]
Mac/Modules/ctl/ctlsupport.py [deleted file]
Mac/Modules/dlg/Dlgmodule.c [deleted file]
Mac/Modules/dlg/dlgsupport.py [deleted file]
Mac/Modules/drag/Dragmodule.c [deleted file]
Mac/Modules/drag/dragsupport.py [deleted file]
Mac/Modules/evt/Evtmodule.c [deleted file]
Mac/Modules/evt/evtsupport.py [deleted file]
Mac/Modules/fm/Fmmodule.c [deleted file]
Mac/Modules/fm/fmscan.py [deleted file]
Mac/Modules/fm/fmsupport.py [deleted file]
Mac/Modules/gestaltmodule.c [deleted file]
Mac/Modules/help/Helpmodule.c [deleted file]
Mac/Modules/icgluemodule.c [deleted file]
Mac/Modules/icn/Icnmodule.c [deleted file]
Mac/Modules/icn/icnsupport.py [deleted file]
Mac/Modules/list/Listmodule.c [deleted file]
Mac/Modules/list/listsupport.py [deleted file]
Mac/Modules/macconfig.c [deleted file]
Mac/Modules/macfsmodule.c [deleted file]
Mac/Modules/macmodule.c [deleted file]
Mac/Modules/macosmodule.c [deleted file]
Mac/Modules/menu/Menumodule.c [deleted file]
Mac/Modules/menu/menusupport.py [deleted file]
Mac/Modules/qd/Qdmodule.c [deleted file]
Mac/Modules/qd/qdsupport.py [deleted file]
Mac/Modules/qdoffs/Qdoffsmodule.c [deleted file]
Mac/Modules/qdoffs/qdoffssupport.py [deleted file]
Mac/Modules/qt/Qtmodule.c [deleted file]
Mac/Modules/qt/qtsupport.py [deleted file]
Mac/Modules/res/Resmodule.c [deleted file]
Mac/Modules/res/resscan.py [deleted file]
Mac/Modules/res/ressupport.py [deleted file]
Mac/Modules/scrap/Scrapmodule.c [deleted file]
Mac/Modules/scrap/scrapsupport.py [deleted file]
Mac/Modules/snd/Sndmodule.c [deleted file]
Mac/Modules/snd/sndsupport.py [deleted file]
Mac/Modules/te/TEmodule.c [deleted file]
Mac/Modules/te/tesupport.py [deleted file]
Mac/Modules/waste/wastemodule.c [deleted file]
Mac/Modules/waste/wastesupport.py [deleted file]
Mac/Modules/win/Winmodule.c [deleted file]
Mac/Modules/win/winsupport.py [deleted file]
Mac/Python/getapplbycreator.c [deleted file]
Mac/Python/macgetargv.c [deleted file]
Mac/Python/macglue.c [deleted file]
Mac/Python/macimport.c [deleted file]
Mac/Python/macmain.c [deleted file]
Mac/Python/pyGUSISIOUX.cp [deleted file]
Mac/ReadMe [deleted file]
Mac/Relnotes [deleted file]
Mac/Resources/dialogs.rsrc [deleted file]
Mac/Resources/version.r [deleted file]
Mac/Tools/IDE/MacPrefs.py [deleted file]
Mac/Tools/IDE/ModuleBrowser.py [deleted file]
Mac/Tools/IDE/PyBrowser.py [deleted file]
Mac/Tools/IDE/PyConsole.py [deleted file]
Mac/Tools/IDE/PyDebugger.py [deleted file]
Mac/Tools/IDE/PyDocSearch.py [deleted file]
Mac/Tools/IDE/PyEdit.py [deleted file]
Mac/Tools/IDE/PyFontify.py [deleted file]
Mac/Tools/IDE/PythonIDE.py [deleted file]
Mac/Tools/IDE/PythonIDE.rsrc [deleted file]
Mac/Tools/IDE/PythonIDEMain.py [deleted file]
Mac/Tools/IDE/Splash.py [deleted file]
Mac/Tools/IDE/Wapplication.py [deleted file]
Mac/Tools/IDE/Wcontrols.py [deleted file]
Mac/Tools/IDE/Wtext.py [deleted file]
Mac/Tools/IDE/Wtraceback.py [deleted file]
Mac/Tools/IDE/Wwindows.py [deleted file]
Mac/Unsupported/GUSI1-mods/GUSI.h [deleted file]
Mac/Unsupported/GUSI1-mods/GUSI.r [deleted file]
Mac/Unsupported/GUSI1-mods/GUSIDispatch.cp [deleted file]
Mac/Unsupported/GUSI1-mods/GUSINetDB.cp [deleted file]
Mac/Unsupported/GUSI1-mods/GUSISIOUX.cp [deleted file]
Mac/Unsupported/GUSI1-mods/GUSI_P.h [deleted file]
Mac/Unsupported/mactcp/MACTCPconst.py [deleted file]
Mac/Unsupported/mactcp/MacTCPerrors.py [deleted file]
Mac/Unsupported/mactcp/dnrglue.c [deleted file]
Mac/Unsupported/mactcp/macdnrmodule.c [deleted file]
Mac/Unsupported/mactcp/mactcpmodule.c [deleted file]
Mac/Unsupported/mactcp/mactcpmodules.mu.exp [deleted file]
Mac/Unsupported/mactcp/mactcpmodules.mu.hqx [deleted file]
Mac/Unsupported/mactcp/socket.py [deleted file]
Mac/Unsupported/mactcp/tcpglue.c [deleted file]
Mac/Unsupported/mactcp/tcpglue.h [deleted file]
Mac/Unsupported/stdwinmodule.mu.exp [deleted file]
Mac/Unsupported/stdwinmodule.mu.hqx [deleted file]
Mac/Unsupported/twit/TwitCore.py [deleted file]
Mac/Unsupported/twit/mac_widgets.py [deleted file]
Mac/Unsupported/twit/mactwit_app.py [deleted file]
Mac/Unsupported/twit/mactwit_browser.py [deleted file]
Mac/Unsupported/twit/mactwit_edit.py [deleted file]
Mac/Unsupported/twit/mactwit_mod.py [deleted file]
Mac/Unsupported/twit/mactwit_stack.py [deleted file]
Mac/Unsupported/twit/twit.py [deleted file]
Mac/Unsupported/twit/twit.rsrc [deleted file]
Mac/Unsupported/twit/twittest.py [deleted file]
Mac/_checkversion.py [deleted file]
Mac/errno_unix.h [deleted file]
Mac/fopenRF.c [deleted file]
Mac/mkapplet.py [deleted file]
Mac/mwerks/mwerks_applet_config.h [deleted file]
Mac/mwerks/mwerks_carbonNOGUSI_config.h [deleted file]
Mac/mwerks/mwerks_carbon_config.h [deleted file]
Mac/mwerks/mwerks_carbongusi_config.h [deleted file]
Mac/mwerks/mwerks_carbonplugin_config.h [deleted file]
Mac/mwerks/mwerks_config.h [deleted file]
Mac/mwerks/mwerks_nonshared_config.h [deleted file]
Mac/mwerks/mwerks_nscarbon_config.h [deleted file]
Mac/mwerks/mwerks_plugin_config.h [deleted file]
Mac/mwerks/mwerks_shared_config.h [deleted file]
Mac/mwerks/mwerks_shcarbon_config.h [deleted file]
Mac/mwerks/mwerks_shlib_config.h [deleted file]
Mac/mwerks/mwerks_small_config.h [deleted file]
Mac/mwerks/mwerks_thrcarbonsm_config.h [deleted file]
Mac/mwerks/mwerks_threadsmall_config.h [deleted file]
Mac/mwerks/mwerks_tkplugin_config.h [deleted file]
Mac/mwerksglue.c [deleted file]
Mac/scripts/errors.txt [deleted file]
Mac/scripts/fullbuild.py [deleted file]
Mac/scripts/genpluginprojects.py [deleted file]
Mac/tclmods/tclMacNotify.c [deleted file]
Python/pythonmain.c [deleted file]

diff --git a/Demo/pdist/new b/Demo/pdist/new
deleted file mode 100755 (executable)
index 9daeafb..0000000
+++ /dev/null
@@ -1 +0,0 @@
-test
diff --git a/Demo/scripts/freeze.py b/Demo/scripts/freeze.py
deleted file mode 100755 (executable)
index be6d263..0000000
+++ /dev/null
@@ -1,480 +0,0 @@
-#! /usr/local/bin/python
-
-# Given a Python script, create a binary that runs the script.
-# The binary is 100% independent of Python libraries and binaries.
-# It will not contain any Python source code -- only "compiled" Python
-# (as initialized static variables containing marshalled code objects).
-# It even does the right thing for dynamically loaded modules!
-# The module search path of the binary is set to the current directory.
-#
-# Some problems remain:
-# - It's highly non-portable, since it knows about paths and libraries
-#   (there's a customization section though, and it knows how to
-#   distinguish an SGI from a Sun SPARC system -- adding knowledge
-#   about more systems is left as an exercise for the reader).
-# - You need to have the Python source tree lying around as well as
-#   the "libpython.a" used to generate the Python binary.
-# - For scripts that use many modules it generates absurdly large
-#   files (frozen.c and config.o as well as the final binary),
-#   and is consequently rather slow.
-#
-# Caveats:
-# - The search for modules sometimes finds modules that are never
-#   actually imported since the code importing them is never executed.
-# - If an imported module isn't found, you get a warning but the
-#   process of freezing continues.  The binary will fail if it
-#   actually tries to import one of these modules.
-# - This often happens with the module 'mac', which module 'os' tries
-#   to import (to determine whether it is running on a Macintosh).
-#   You can ignore the warning about this.
-# - If the program dynamically reads or generates Python code and
-#   executes it, this code may reference built-in or library modules
-#   that aren't present in the frozen binary, and this will fail.
-# - Your program may be using external data files, e.g. compiled
-#   forms definitions (*.fd).  These aren't incorporated.  Since
-#   sys.path in the resulting binary only contains '.', if your
-#   program searches its data files along sys.path (as the 'flp'
-#   modules does to find its forms definitions), you may need to
-#   change the program to extend the search path or instruct its users
-#   to set the environment variable PYTHONPATH to point to your data
-#   files.
-#
-# Usage hints:
-# - If you have a bunch of scripts that you want to freeze, instead
-#   of freezing each of them separately, you might consider writing
-#   a tiny main script that looks at sys.argv[0] and then imports
-#   the corresponding module.  You can then make links to the
-#   frozen binary named after the various scripts you support.
-#   Pass the additional scripts as arguments after the main script.
-#   A minimal script to do this is the following.
-#       import sys, posixpath
-#       exec('import ' + posixpath.basename(sys.argv[0]) + '\n')
-
-
-import os
-import sys
-import regex
-import getopt
-import regsub
-import string
-import marshal
-
-# Function to join two pathnames with a slash in between
-j = os.path.join
-
-##################################
-# START OF CONFIGURATION SECTION #
-##################################
-
-# Attempt to guess machine architecture
-if os.path.exists('/usr/lib/libgl_s'): ARCH = 'sgi'
-elif os.path.exists('/etc/issue'): ARCH = 'sequent'
-else: ARCH = 'sun4'
-
-# Site parametrizations (change to match your site)
-CC = 'cc'                              # C compiler
-TOP = '/ufs/guido/src'                 # Parent of all source trees
-PYTHON = j(TOP, 'python')              # Top of the Python source tree
-SRC = j(PYTHON, 'src')                 # Python source directory
-BLD = j(PYTHON, 'build.' + ARCH)       # Python build directory
-#BLD = SRC                             # Use this if you build in SRC
-
-LIBINST = '/ufs/guido/src/python/irix4/tmp/lib/python/lib' # installed libraries
-INCLINST = '/ufs/guido/src/python/irix4/tmp/include/Py' # installed include files
-
-# Other packages (change to match your site)
-DL = j(TOP, 'dl')                      # Top of the dl source tree
-DL_DLD = j(TOP, 'dl-dld')              # The dl-dld source directory
-DLD = j(TOP, 'dld-3.2.3')              # The dld source directory
-FORMS = j(TOP, 'forms')                        # Top of the FORMS source tree
-STDWIN = j(TOP, 'stdwin')              # Top of the STDWIN source tree
-READLINE = j(TOP, 'readline.' + ARCH)  # Top of the GNU Readline source tree
-SUN_X11 = '/usr/local/X11R5/lib/libX11.a'
-
-# File names (usually no need to change)
-LIBP = [                               # Main Python libraries
-        j(LIBINST, 'libPython.a'),
-        j(LIBINST, 'libParser.a'),
-        j(LIBINST, 'libObjects.a'),
-        j(LIBINST, 'libModules.a')
-       ]
-CONFIG_IN = j(LIBINST, 'config.c.in')  # Configuration source file
-FMAIN = j(LIBINST, 'frozenmain.c')     # Special main source file
-
-# Libraries needed when linking.  First tuple item is built-in module
-# for which it is needed (or '*' for always), rest are ld arguments.
-# There is a separate list per architecture.
-libdeps_sgi = [ \
-         ('stdwin',    j(STDWIN, 'Build/' + ARCH + '/x11/lib/lib.a')), \
-         ('fl',        j(FORMS, 'FORMS/libforms.a'), '-lfm_s'), \
-         ('*',         j(READLINE, 'libreadline.a'), '-ltermcap'), \
-         ('al',        '-laudio'), \
-         ('sv',        '-lsvideo', '-lXext'), \
-         ('cd',        '-lcdaudio', '-lds'), \
-         ('cl',        '-lcl'), \
-         ('imgfile',   '-limage', '-lgutil', '-lm'), \
-         ('mpz',       '/ufs/guido/src/gmp/libgmp.a'), \
-         ('*',         '-lsun'), \
-         ('*',         j(DL, 'libdl.a'), '-lmld'), \
-         ('*',         '-lmpc'), \
-         ('fm',        '-lfm_s'), \
-         ('gl',        '-lgl_s', '-lX11_s'), \
-         ('stdwin',    '-lX11_s'), \
-         ('*',         '-lm'), \
-         ('*',         '-lc_s'), \
-         ]
-libdeps_sun4 = [ \
-         ('*',         '-Bstatic'), \
-         ('stdwin',    j(STDWIN, 'Build/' + ARCH + '/x11/lib/lib.a')), \
-         ('*',         j(READLINE, 'libreadline.a')), \
-         ('*',         '-lm'), \
-         ('*',         j(DL_DLD,'libdl.a'), j(DLD,'libdld.a')), \
-         ('*',         SUN_X11), \
-         ('*',         '-ltermcap'), \
-         ('*',         '-lc'), \
-         ]
-libdeps_sequent = [ \
-         ('*',         j(LIBINST, 'libreadline.a'), '-ltermcap'), \
-         ('*',         '-lsocket'), \
-         ('*',         '-linet'), \
-         ('*',         '-lnsl'), \
-         ('*',         '-lm'), \
-         ('*',         '-lc'), \
-         ]
-libdeps = eval('libdeps_' + ARCH)
-
-################################
-# END OF CONFIGURATION SECTION #
-################################
-
-# Exception used when scanfile fails
-NoSuchFile = 'NoSuchFile'
-
-# Global options
-quiet = 0                              # -q
-verbose = 0                            # -v
-noexec = 0                             # -n
-nowrite = 0                            # -N
-ofile = 'a.out'                                # -o file
-
-# Main program -- argument parsing etc.
-def main():
-       global quiet, verbose, noexec, nowrite, ofile
-       try:
-               opts, args = getopt.getopt(sys.argv[1:], 'nNo:qv')
-       except getopt.error, msg:
-               usage(str(msg))
-               sys.exit(2)
-       for o, a in opts:
-               if o == '-n': noexec = 1
-               if o == '-N': nowrite = 1
-               if o == '-o': ofile = a
-               if o == '-q': verbose = 0; quiet = 1
-               if o == '-v': verbose = verbose + 1; quiet = 0
-       if len(args) < 1:
-               usage('please pass at least one file argument')
-               sys.exit(2)
-       process(args[0], args[1:])
-
-# Print usage message to stderr
-def usage(*msgs):
-       sys.stdout = sys.stderr
-       for msg in msgs: print msg
-       print 'Usage: freeze [options] scriptfile [modulefile ...]'
-       print '-n      : generate the files but don\'t compile and link'
-       print '-N      : don\'t write frozen.c (do compile unless -n given)'
-       print '-o file : binary output file (default a.out)'
-       print '-q      : quiet (no messages at all except errors)'
-       print '-v      : verbose (lots of extra messages)'
-
-# Process the script file
-def process(filename, addmodules):
-       global noexec
-       #
-       if not quiet: print 'Computing needed modules ...'
-       todo = {}
-       todo['__main__'] = filename
-       for name in addmodules:
-               mod = os.path.basename(name)
-               if mod[-3:] == '.py': mod = mod[:-3]
-               todo[mod] = name
-       try:
-               dict = closure(todo)
-       except NoSuchFile, filename:
-               sys.stderr.write('Can\'t open file %s\n' % filename)
-               sys.exit(1)
-       #
-       mods = dict.keys()
-       mods.sort()
-       #
-       if verbose:
-               print '%-15s %s' % ('Module', 'Filename')
-               for mod in mods:
-                       print '%-15s %s' % (`mod`, dict[mod])
-       #
-       if not quiet: print 'Looking for dynamically linked modules ...'
-       dlmodules = []
-       objs = []
-       libs = []
-       for mod in mods:
-               if dict[mod][-2:] == '.o':
-                       if verbose: print 'Found', mod, dict[mod]
-                       dlmodules.append(mod)
-                       objs.append(dict[mod])
-                       libsname = dict[mod][:-2] + '.libs'
-                       try:
-                               f = open(libsname, 'r')
-                       except IOError:
-                               f = None
-                       if f:
-                               libtext = f.read()
-                               f.close()
-                               for lib in string.split(libtext):
-                                       if lib in libs: libs.remove(lib)
-                                       libs.append(lib)
-       #
-       if not nowrite:
-               if not quiet: print 'Writing frozen.c ...'
-               writefrozen('frozen.c', dict)
-       else:
-               if not quiet: print 'NOT writing frozen.c ...'
-       #
-##     if not dlmodules:
-       if 0:
-               config = CONFIG
-               if not quiet: print 'Using existing', config, '...'
-       else:
-               config = 'tmpconfig.c'
-               if nowrite:
-                       if not quiet: print 'NOT writing config.c ...'
-               else:
-                       if not quiet:
-                               print 'Writing config.c with dl modules ...'
-                       f = open(CONFIG_IN, 'r')
-                       g = open(config, 'w')
-                       m1 = regex.compile('-- ADDMODULE MARKER 1 --')
-                       m2 = regex.compile('-- ADDMODULE MARKER 2 --')
-                       builtinmodules = []
-                       stdmodules = ('sys', '__main__', '__builtin__',
-                                     'marshal')
-                       todomodules = builtinmodules + dlmodules
-                       for mod in dict.keys():
-                               if dict[mod] == '<builtin>' and \
-                                         mod not in stdmodules:
-                                       builtinmodules.append(mod)
-                       while 1:
-                               line = f.readline()
-                               if not line: break
-                               g.write(line)
-                               if m1.search(line) >= 0:
-                                       if verbose: print 'Marker 1 ...'
-                                       for mod in todomodules:
-                                               g.write('extern void init' + \
-                                                 mod + '();\n')
-                               if m2.search(line) >= 0:
-                                       if verbose: print 'Marker 2 ...'
-                                       for mod in todomodules:
-                                               g.write('{"' + mod + \
-                                                 '", init' + mod + '},\n')
-                       g.close()
-       #
-       if not quiet:
-               if noexec: print 'Generating compilation commands ...'
-               else: print 'Starting compilation ...'
-       defs = ['-DNO_MAIN', '-DUSE_FROZEN', '-DPYTHONPATH=\'"."\'']
-       #
-       incs = ['-I.', '-I' + INCLINST]
-       if dict.has_key('stdwin'):
-               incs.append('-I' + j(STDWIN, 'H'))
-       #
-       srcs = [config, FMAIN]
-       #
-       if type(LIBP) == type(''):
-               libs.append(LIBP)
-       else:
-               for lib in LIBP:
-                       libs.append(lib)
-       for item in libdeps:
-               m = item[0]
-               if m == '*' or dict.has_key(m):
-                       for l in item[1:]:
-                               if l in libs: libs.remove(l)
-                               libs.append(l)
-       #
-       sts = 0
-       #
-       cmd = CC + ' -c'
-       cmd = cmd + ' ' + string.join(defs)
-       cmd = cmd + ' ' + string.join(incs)
-       cmd = cmd + ' ' + string.join(srcs)
-       print cmd
-       #
-       if not noexec:
-               sts = os.system(cmd)
-               if sts:
-                       print 'Exit status', sts, '-- turning on -n'
-                       noexec = 1
-       #
-       for s in srcs:
-               s = os.path.basename(s)
-               if s[-2:] == '.c': s = s[:-2]
-               o = s + '.o'
-               objs.insert(0, o)
-       #
-       cmd = CC
-       cmd = cmd + ' ' + string.join(objs)
-       cmd = cmd + ' ' + string.join(libs)
-       cmd = cmd + ' -o ' + ofile
-       print cmd
-       #
-       if not noexec:
-               sts = os.system(cmd)
-               if sts:
-                       print 'Exit status', sts
-               else:
-                       print 'Done.'
-       #
-       if not quiet and not noexec and sts == 0:
-               print 'Note: consider this:'; print '\tstrip', ofile
-       #
-       sys.exit(sts)
-
-
-# Generate code for a given module
-def makecode(filename):
-       if filename[-2:] == '.o':
-               return None
-       try:
-               f = open(filename, 'r')
-       except IOError:
-               return None
-       if verbose: print 'Making code from', filename, '...'
-       text = f.read()
-       code = compile(text, filename, 'exec')
-       f.close()
-       return marshal.dumps(code)
-
-
-# Write the C source file containing the frozen Python code
-def writefrozen(filename, dict):
-       f = open(filename, 'w')
-       codelist = []
-       for mod in dict.keys():
-               codestring = makecode(dict[mod])
-               if codestring is not None:
-                       codelist.append((mod, codestring))
-       write = sys.stdout.write
-       save_stdout = sys.stdout
-       try:
-               sys.stdout = f
-               for mod, codestring in codelist:
-                       if verbose:
-                               write('Writing initializer for %s\n'%mod)
-                       print 'static unsigned char M_' + mod + '[' + \
-                                 str(len(codestring)) + '+1] = {'
-                       for i in range(0, len(codestring), 16):
-                               for c in codestring[i:i+16]:
-                                       print str(ord(c)) + ',',
-                               print
-                       print '};'
-               print 'struct frozen {'
-               print '  char *name;'
-               print '  unsigned char *code;'
-               print '  int size;'
-               print '} frozen_modules[] = {'
-               for mod, codestring in codelist:
-                       print '  {"' + mod + '",',
-                       print 'M_' + mod + ',',
-                       print str(len(codestring)) + '},'
-               print '  {0, 0, 0} /* sentinel */'
-               print '};'
-       finally:
-               sys.stdout = save_stdout
-       f.close()
-
-
-# Determine the names and filenames of the modules imported by the
-# script, recursively.  This is done by scanning for lines containing
-# import statements.  (The scanning has only superficial knowledge of
-# Python syntax and no knowledge of semantics, so in theory the result
-# may be incorrect -- however this is quite unlikely if you don't
-# intentionally obscure your Python code.)
-
-# Compute the closure of scanfile() -- special first file because of script
-def closure(todo):
-       done = {}
-       while todo:
-               newtodo = {}
-               for modname in todo.keys():
-                       if not done.has_key(modname):
-                               filename = todo[modname]
-                               if filename is None:
-                                       filename = findmodule(modname)
-                               done[modname] = filename
-                               if filename in ('<builtin>', '<unknown>'):
-                                       continue
-                               modules = scanfile(filename)
-                               for m in modules:
-                                       if not done.has_key(m):
-                                               newtodo[m] = None
-               todo = newtodo
-       return done
-
-# Scan a file looking for import statements
-importstr = '\(^\|:\)[ \t]*import[ \t]+\([a-zA-Z0-9_, \t]+\)'
-fromstr   = '\(^\|:\)[ \t]*from[ \t]+\([a-zA-Z0-9_]+\)[ \t]+import[ \t]+'
-isimport = regex.compile(importstr)
-isfrom = regex.compile(fromstr)
-def scanfile(filename):
-       allmodules = {}
-       try:
-               f = open(filename, 'r')
-       except IOError, msg:
-               raise NoSuchFile, filename
-       while 1:
-               line = f.readline()
-               if not line: break # EOF
-               while line[-2:] == '\\\n': # Continuation line
-                       line = line[:-2] + ' '
-                       line = line + f.readline()
-               if isimport.search(line) >= 0:
-                       rawmodules = isimport.group(2)
-                       modules = string.splitfields(rawmodules, ',')
-                       for i in range(len(modules)):
-                               modules[i] = string.strip(modules[i])
-               elif isfrom.search(line) >= 0:
-                       modules = [isfrom.group(2)]
-               else:
-                       continue
-               for mod in modules:
-                       allmodules[mod] = None
-       f.close()
-       return allmodules.keys()
-
-# Find the file containing a module, given its name; None if not found
-builtins = sys.builtin_module_names + ['sys']
-def findmodule(modname):
-       if modname in builtins: return '<builtin>'
-       for dirname in sys.path:
-               dlfullname = os.path.join(dirname, modname + 'module.o')
-               try:
-                       f = open(dlfullname, 'r')
-               except IOError:
-                       f = None
-               if f:
-                       f.close()
-                       return dlfullname
-               fullname = os.path.join(dirname, modname + '.py')
-               try:
-                       f = open(fullname, 'r')
-               except IOError:
-                       continue
-               f.close()
-               return fullname
-       if not quiet:
-               sys.stderr.write('Warning: module %s not found\n' % modname)
-       return '<unknown>'
-
-
-# Call the main program
-main()
diff --git a/Demo/sgi/video/IN.py b/Demo/sgi/video/IN.py
deleted file mode 100755 (executable)
index ffc2852..0000000
+++ /dev/null
@@ -1,54 +0,0 @@
-IPPROTO_IP = 0
-IPPROTO_ICMP = 1
-IPPROTO_IGMP = 2
-IPPROTO_GGP = 3
-IPPROTO_TCP = 6
-IPPROTO_EGP = 8
-IPPROTO_PUP = 12
-IPPROTO_UDP = 17
-IPPROTO_IDP = 22
-IPPROTO_TP = 29
-IPPROTO_XTP = 36
-IPPROTO_EON = 80
-IPPROTO_RAW = 255
-IPPROTO_MAX = 256
-IPPORT_RESERVED = 1024
-IPPORT_USERRESERVED = 5000
-IN_CLASSA_NET = 0xff000000
-IN_CLASSA_NSHIFT = 24
-IN_CLASSA_HOST = 0x00ffffff
-IN_CLASSA_MAX = 128
-IN_CLASSB_NET = 0xffff0000
-IN_CLASSB_NSHIFT = 16
-IN_CLASSB_HOST = 0x0000ffff
-IN_CLASSB_MAX = 65536
-IN_CLASSC_NET = 0xffffff00
-IN_CLASSC_NSHIFT = 8
-IN_CLASSC_HOST = 0x000000ff
-IN_CLASSD_NET = 0xf0000000
-IN_CLASSD_NSHIFT = 28
-IN_CLASSD_HOST = 0x0fffffff
-INADDR_ANY = 0x00000000
-INADDR_BROADCAST = 0xffffffff
-INADDR_LOOPBACK = 0x7F000001
-INADDR_UNSPEC_GROUP = 0xe0000000
-INADDR_ALLHOSTS_GROUP = 0xe0000001
-INADDR_MAX_LOCAL_GROUP = 0xe00000ff
-INADDR_NONE = 0xffffffff
-IN_LOOPBACKNET = 127
-IP_OPTIONS = 1
-IP_HDRINCL = 7
-IP_TOS = 8
-IP_TTL = 9
-IP_RECVOPTS = 10
-IP_RECVRETOPTS = 11
-IP_RECVDSTADDR = 12
-IP_RETOPTS = 13
-IP_MULTICAST_IF = 2
-IP_MULTICAST_TTL = 3
-IP_MULTICAST_LOOP = 4
-IP_ADD_MEMBERSHIP = 5
-IP_DROP_MEMBERSHIP = 6
-IP_DEFAULT_MULTICAST_TTL = 1
-IP_DEFAULT_MULTICAST_LOOP = 1
-IP_MAX_MEMBERSHIPS = 20
diff --git a/Demo/sgi/video/Makefile b/Demo/sgi/video/Makefile
deleted file mode 100755 (executable)
index 266ea52..0000000
+++ /dev/null
@@ -1,7 +0,0 @@
-all:   v2i i2v
-
-v2i:   v2i.o
-       $(CC) v2i.o -limage -o v2i
-
-i2v:   i2v.o
-       $(CC) i2v.o -limage -o i2v
diff --git a/Demo/sgi/video/Vrecc.py b/Demo/sgi/video/Vrecc.py
deleted file mode 100755 (executable)
index 6a539f8..0000000
+++ /dev/null
@@ -1,281 +0,0 @@
-#! /ufs/guido/bin/sgi/python-405
-#! /ufs/guido/bin/sgi/python
-
-# Capture a continuous CMIF movie using the Indigo video library and board
-
-
-# Usage:
-#
-# makemovie [-r rate] [-w width] [moviefile]
-
-
-# Options:
-#
-# -r rate       : capture 1 out of every 'rate' frames (default 1)
-# -w width      : initial window width (default interactive placement)
-# -d           : drop fields if needed
-# -g bits      : greyscale (2, 4 or 8 bits)
-# -G            : 2-bit greyscale dithered
-# -m           : monochrome dithered
-# -M value     : monochrome tresholded with value
-# -f           : Capture fields (in stead of frames)
-# -n number     : Capture 'number' fields (default 60)
-# 
-# moviefile     : here goes the movie data (default film.video);
-#                 the format is documented in cmif-film.ms
-
-
-# User interface:
-#
-# Start the application.  Resize the window to the desired movie size.
-# Press the left mouse button to start recording, release it to end
-# recording.  You can record as many times as you wish, but each time
-# you overwrite the output file(s), so only the last recording is
-# kept.
-#
-# Press ESC or select the window manager Quit or Close window option
-# to quit.  If you quit before recording anything, the output file(s)
-# are not touched.
-
-
-import sys
-sys.path.append('/ufs/guido/src/video')
-import sv, SV
-import VFile
-import gl, GL, DEVICE
-import al, AL
-import time
-import posix
-import getopt
-import string
-import imageop
-import sgi
-
-# Main program
-
-def main():
-       format = SV.RGB8_FRAMES
-       rate = 1
-       width = 0
-       drop = 0
-       mono = 0
-       grey = 0
-       greybits = 0
-       monotreshold = -1
-       fields = 0
-       number = 60
-
-       opts, args = getopt.getopt(sys.argv[1:], 'r:w:dg:mM:Gfn:')
-       for opt, arg in opts:
-               if opt == '-r':
-                       rate = string.atoi(arg)
-                       if rate < 2:
-                               sys.stderr.write('-r rate must be >= 2\n')
-                               sys.exit(2)
-               elif opt == '-w':
-                       width = string.atoi(arg)
-               elif opt == '-d':
-                       drop = 1
-               elif opt == '-g':
-                       grey = 1
-                       greybits = string.atoi(arg)
-                       if not greybits in (2,4,8):
-                               print 'Only 2, 4 or 8 bit greyscale supported'
-               elif opt == '-G':
-                       grey = 1
-                       greybits = -2
-               elif opt == '-m':
-                       mono = 1
-               elif opt == '-M':
-                       mono = 1
-                       monotreshold = string.atoi(arg)
-               elif opt == '-f':
-                       fields = 1
-               elif opt == '-n':
-                       number = string.atoi(arg)
-
-       if args[2:]:
-               sys.stderr.write('usage: Vrec [options] [file]\n')
-               sys.exit(2)
-
-       if args:
-               filename = args[0]
-       else:
-               filename = 'film.video'
-
-       v = sv.OpenVideo()
-       # Determine maximum window size based on signal standard
-       param = [SV.BROADCAST, 0]
-       v.GetParam(param)
-       if param[1] == SV.PAL:
-               x = SV.PAL_XMAX
-               y = SV.PAL_YMAX
-       elif param[1] == SV.NTSC:
-               x = SV.NTSC_XMAX
-               y = SV.NTSC_YMAX
-       else:
-               print 'Unknown video standard', param[1]
-               sys.exit(1)
-
-       gl.foreground()
-       gl.maxsize(x, y)
-       gl.keepaspect(x, y)
-       gl.stepunit(8, 6)
-       if width:
-               gl.prefsize(width, width*3/4)
-       win = gl.winopen(filename)
-       if width:
-               gl.maxsize(x, y)
-               gl.keepaspect(x, y)
-               gl.stepunit(8, 6)
-               gl.winconstraints()
-       x, y = gl.getsize()
-       print x, 'x', y
-
-       v.SetSize(x, y)
-
-       if drop:
-               param = [SV.FIELDDROP, 1, SV.GENLOCK, SV.GENLOCK_OFF]
-       else:
-               param = [SV.FIELDDROP, 0, SV.GENLOCK, SV.GENLOCK_ON]
-       if mono or grey:
-               param = param+[SV.COLOR, SV.MONO, SV.INPUT_BYPASS, 1]
-       else:
-               param = param+[SV.COLOR, SV.DEFAULT_COLOR, SV.INPUT_BYPASS, 0]
-       v.SetParam(param)
-
-       v.BindGLWindow(win, SV.IN_REPLACE)
-
-       gl.qdevice(DEVICE.LEFTMOUSE)
-       gl.qdevice(DEVICE.WINQUIT)
-       gl.qdevice(DEVICE.WINSHUT)
-       gl.qdevice(DEVICE.ESCKEY)
-
-       print 'Press left mouse to start recording'
-
-       while 1:
-               dev, val = gl.qread()
-               if dev == DEVICE.LEFTMOUSE:
-                       if val == 1:
-                               info = format, x, y, number, rate
-                               record(v, info, filename, mono, grey, \
-                                         greybits, monotreshold, fields)
-               elif dev == DEVICE.REDRAW:
-                       # Window resize (or move)
-                       x, y = gl.getsize()
-                       print x, 'x', y
-                       v.SetSize(x, y)
-                       v.BindGLWindow(win, SV.IN_REPLACE)
-               elif dev in (DEVICE.ESCKEY, DEVICE.WINQUIT, DEVICE.WINSHUT):
-                       # Quit
-                       v.CloseVideo()
-                       gl.winclose(win)
-                       break
-
-
-# Record until the mouse is released (or any other GL event)
-# XXX audio not yet supported
-
-def record(v, info, filename, mono, grey, greybits, monotreshold, fields):
-       import thread
-       format, x, y, number, rate = info
-       fps = 59.64 # Fields per second
-       # XXX (Strange: need fps of Indigo monitor, not of PAL or NTSC!)
-       tpf = 1000.0 / fps # Time per field in msec
-       #
-       # Go grab
-       #
-       gl.wintitle('(rec) ' + filename)
-       try:
-               ninfo, data, bitvec = v.CaptureBurst(info)
-       except sv.error, arg:
-               print 'CaptureBurst failed:', arg
-               print 'info:', info
-               gl.wintitle(filename)
-               return
-       gl.wintitle('(save) '+ filename)
-       #
-       # Check results
-       #
-       if info <> ninfo:
-               print 'Sorry, format changed.'
-               print 'Wanted:',info
-               print 'Got   :',ninfo
-               gl.wintitle(filename)
-               return
-       # print bitvec
-       if x*y*number <> len(data):
-               print 'Funny data length: wanted',x,'*',y,'*', number,'=',\
-                         x*y*number,'got',len(data)
-               gl.wintitle(filename)
-               return
-       #
-       # Save
-       #
-       if filename:
-               #
-               # Construct header and write it
-               #
-               vout = VFile.VoutFile().init(filename)
-               if mono:
-                       vout.format = 'mono'
-               elif grey and greybits == 8:
-                       vout.format = 'grey'
-               elif grey:
-                       vout.format = 'grey'+`abs(greybits)`
-               else:
-                       vout.format = 'rgb8'
-               vout.width = x
-               vout.height = y
-               if fields:
-                       vout.packfactor = (1,-2)
-               else:
-                       print 'Sorry, can only save fields at the moment'
-                       gl.wintitle(filename)
-                       return
-               vout.writeheader()
-               #
-               # Compute convertor, if needed
-               #
-               convertor = None
-               if grey:
-                       if greybits == 2:
-                               convertor = imageop.grey2grey2
-                       elif greybits == 4:
-                               convertor = imageop.grey2grey4
-                       elif greybits == -2:
-                               convertor = imageop.dither2grey2
-               fieldsize = x*y/2
-               nskipped = 0
-               realframeno = 0
-               tpf = 1000 / 50.0     #XXXX
-               for frameno in range(0, number*2):
-                       if frameno <> 0 and \
-                                 bitvec[frameno] == bitvec[frameno-1]:
-                               nskipped = nskipped + 1
-                               continue
-                       #
-                       # Save field.
-                       # XXXX Works only for fields and top-to-bottom
-                       #
-                       start = frameno*fieldsize
-                       field = data[start:start+fieldsize]
-                       if convertor:
-                               field = convertor(field, x, y)
-                       elif mono and monotreshold >= 0:
-                               field = imageop.grey2mono(field, x, y, \
-                                         1, monotreshold)
-                       elif mono:
-                               field = imageop.dither2mono(field, x, y)
-                       vout.writeframe(int(realframeno*tpf), field, None)
-               print 'Skipped',nskipped,'duplicate frames'
-               vout.close()
-                       
-       gl.wintitle('(done) ' + filename)
-
-# Don't forget to call the main program
-
-try:
-       main()
-except KeyboardInterrupt:
-       print '[Interrupt]'
diff --git a/Demo/sgi/video/cam.py b/Demo/sgi/video/cam.py
deleted file mode 100755 (executable)
index fa8966f..0000000
+++ /dev/null
@@ -1,129 +0,0 @@
-import sys
-from socket import *
-from gl import *
-from GL import *
-from DEVICE import *
-from time import millitimer
-
-HS = 40 # Header size (must be same as in tv.py)
-
-# Rely on UDP packet (de)fragmentation for smoother images
-# (Changed for broadcast)
-MAX = 16000
-
-PF = 2 # Default packfactor
-
-# Default receiver station is voorn.
-# Kwik has no yellow pages, so...
-HOST = '192.16.201.121'
-PORT = 5555
-
-if sys.argv[1:]:
-       PF = eval(sys.argv[1])
-
-if sys.argv[2:]:
-       HOST = sys.argv[2]
-       if HOST == 'all':
-               HOST = '<broadcast>'
-               MAX = 1400
-
-PF2 = PF*PF
-
-def main():
-       centerx, centery = 400, 300
-
-       foreground()
-       wid = winopen('cam')
-       RGBmode()
-       doublebuffer()
-       gconfig()
-       qdevice(ESCKEY)
-
-       w, h = getsize()
-       ortho2(0, w, 0, h)
-       w = w/PF*PF
-       h = h/PF*PF
-
-       readsource(SRC_FRAMEGRABBER)
-
-       s = socket(AF_INET, SOCK_DGRAM)
-       if HOST == '<broadcast>':
-               s.allowbroadcast(1)
-       addr = HOST, PORT
-
-       bytesperline = w/PF2
-       linesperchunk = MAX/bytesperline
-       linesperchunk = linesperchunk/PF*PF
-       nchunks = (h+linesperchunk-1)/linesperchunk
-
-       print 'MAX=', MAX,
-       print 'linesperchunk=', linesperchunk,
-       print 'nchunks=', nchunks,
-       print 'w=', w, 'h=', h
-
-       x1, x2 = 0, w-1
-
-       t1 = millitimer()
-       nframes = 0
-       fps = 0
-
-       msg = ''
-
-       while 1:
-               while qtest():
-                       dev, val = qread()
-                       if dev == REDRAW:
-                               reshapeviewport()
-                               w, h = getsize()
-                               ortho2(0, w, 0, h)
-                               w = w/PF*PF
-                               h = h/PF*PF
-
-                               bytesperline = w/PF2
-                               linesperchunk = MAX/bytesperline
-                               linesperchunk = linesperchunk/PF*PF
-                               nchunks = (h+linesperchunk-1)/linesperchunk
-
-                               print 'MAX=', MAX,
-                               print 'linesperchunk=', linesperchunk,
-                               print 'nchunks=', nchunks,
-                               print 'w=', w, 'h=', h
-
-                               x1, x2 = 0, w-1
-
-                               fps = 0
-
-                       elif dev == ESCKEY:
-                               winclose(wid)
-                               return
-
-               readsource(SRC_FRAMEGRABBER)
-
-               nframes = nframes+1
-               if nframes >= fps:
-                       t2 = millitimer()
-                       if t2 <> t1:
-                               fps = int(10000.0*nframes/(t2-t1)) * 0.1
-                               msg = `fps` +  ' frames/sec'
-                               t1 = t2
-                               nframes = 0
-
-               RGBcolor(255,255,255)
-               cmov2i(9,9)
-               charstr(msg)
-
-               swapbuffers()
-               rectcopy(centerx-w/2, centery-w/2, centerx+w/2, centery+w/2, 0, 0)
-
-               for i in range(nchunks):
-                       y1 = i*linesperchunk
-                       y2 = y1 + linesperchunk-1
-                       if y2 >= h: y2 = h-1
-                       data = lrectread(x1, y1, x2, y2)
-                       data2 = packrect(x2-x1+1, y2-y1+1, PF, data)
-                       prefix = `w, h, PF, x1, y1, x2, y2`
-                       prefix = prefix + ' ' * (HS-len(prefix))
-                       data3 = prefix + data2
-                       s.sendto(data3, addr)
-
-main()
diff --git a/Demo/sgi/video/camcorder.py b/Demo/sgi/video/camcorder.py
deleted file mode 100755 (executable)
index 9b7618c..0000000
+++ /dev/null
@@ -1,266 +0,0 @@
-from gl import *
-from GL import *
-from DEVICE import *
-import time
-import sys
-import getopt
-import socket
-import posix
-import vtime
-
-# Preallocation parameter
-PREALLOC = 4 # Megabyte
-
-# Sync audio parameters
-SYNCPORT = 10000
-CTLPORT = 10001
-
-from vpregs import *
-
-class Struct(): pass
-epoch = Struct()
-
-def getvideosize():
-    w = getvideo(VP_WIDTH)
-    h = getvideo(VP_HEIGHT)
-    print 'WIDTH,HEIGHT:', w, h
-    print 'GB{X,Y}ORG:', getvideo(VP_GBXORG), getvideo(VP_GBYORG)
-    print 'FB{X,Y}ORG:',  getvideo(VP_FBXORG), getvideo(VP_FBYORG)
-    x = 0
-    y = 0
-    return x,y,w,h
-
-framelist = []
-
-def prealloc(w, h):
-       nbytes = w*h*4
-       limit = PREALLOC*1024*1024
-       total = 0
-       list = []
-       print 'Prealloc to', PREALLOC, 'Megabytes...'
-       while total+nbytes <=  limit:
-               list.append('x'*nbytes)
-               total = total + nbytes
-       print 'Done.'
-
-def grabframe(f,x,y,w,h,pf):
-    readsource(SRC_FRONT)
-    if pf:
-       w = w/pf*pf
-       h = h/pf*pf
-    data = lrectread(x,y,x+w-1,y+h-1)
-    t = time.millitimer()-epoch.epoch
-    framelist.append(data, t)
-    readsource(SRC_FRAMEGRABBER)
-
-def saveframes(f, w, h, pf):
-       for data, t in framelist:
-               if pf:
-                       w = w/pf*pf
-                       h = h/pf*pf
-                       data = packrect(w,h,pf,data)
-               f.write(`t` + ',' + `len(data)` + '\n')
-               f.write(data)
-       framelist[:] = []
-
-def saveframe(f,x,y,w,h,pf, notime):
-    readsource(SRC_FRONT)
-    if pf:
-       w = w/pf*pf
-       h = h/pf*pf
-    data = lrectread(x,y,x+w-1,y+h-1)
-    if pf: data = packrect(w,h,pf,data)
-    if notime: t = 0
-    else: t = time.millitimer()-epoch.epoch
-    f.write(`t` + ',' + `len(data)` + '\n')
-    f.write(data)
-    readsource(SRC_FRAMEGRABBER)
-
-def drawframe(x,y,w,h,col):
-    drawmode(OVERDRAW)
-    color(col)
-    bgnline()
-    v2i(x-1,y-1) ; v2i(x+w,y-1); v2i(x+w,y+h); v2i(x-1,y+h); v2i(x-1,y-1)
-    endline()
-    drawmode(NORMALDRAW)
-
-def usage():
-    sys.stderr.write('Usage: camcorder ' + \
-       '[-c] [-p packfactor] [-a audiomachine [-s]] [outputfile]\n')
-    sys.exit(2)
-
-def wrheader(f, w, h, pf):
-       f.write('CMIF video 1.0\n')
-       f.write(`w,h,pf` + '\n')
-       print 'width,height,pf:', w, h, pf,
-       if pf == 0: pf = 4
-       print '(i.e.,', w*h*pf, 'bytes/frame)'
-
-def main():
-    foreground()
-    pf = 2
-    ausync = 0
-    austart = 0
-    optlist, args = getopt.getopt(sys.argv[1:],'ca:sp:')
-    for opt, arg in optlist:
-       if opt == '-c':
-           pf = 0
-       elif opt == '-a':
-           ausync = 1
-           aumachine = arg
-       elif opt == '-s':
-           austart = 1
-       elif opt == '-p':
-           pf = int(eval(arg))
-       else:
-           usage()
-    if args:
-       if len(args) > 1:
-           print 'Too many arguments'
-           usage()
-       filename = args[0]
-    else:
-       filename = 'film.video'
-    if austart:
-       if not ausync:
-           print 'Cannot use -s without -a'
-           usage()
-       print 'Starting audio recorder...'
-       posix.system('rsh '+aumachine+' syncrecord '+socket.gethostname()+' &')
-    if ausync:
-       print 'Syncing to audio recorder...'
-       globtime = vtime.VTime().init(1,aumachine,SYNCPORT)
-       ctl = socket.socket(socket.AF_INET,socket.SOCK_DGRAM)
-       ctl.bind((socket.gethostname(),CTLPORT))
-       aua = (socket.gethostbyname(aumachine), CTLPORT)
-       print 'Done.'
-    vidx, vidy, w, h = getvideosize()
-    #prefsize(w,h)
-    winx, winy = 1280-w-10, 1024-h-30
-    prefposition(winx,winx+w-1,winy,winy+h-1)
-    win = winopen(filename)
-    f = open(filename, 'w')
-    w, h = getsize()
-    realw, realh = w, h
-    ####doublebuffer()
-    RGBmode()
-    gconfig()
-    qdevice(LEFTMOUSE)
-    qdevice(RKEY)
-    qdevice(SKEY)
-    qdevice(CKEY)
-    qdevice(PKEY)
-    qdevice(ESCKEY)
-    qdevice(WINQUIT)
-    qdevice(WINSHUT)
-    inrunning = 1
-    outrunning = 0
-    stop = 'stop'
-    readsource(SRC_FRAMEGRABBER)
-    mousing = 0
-    epoch.epoch = time.millitimer()
-    stoptime = epoch.epoch
-    sizewritten = 0
-    x, y = realw/4, realh/4
-    w, h = w/2, h/2
-    prealloc(w, h)
-    try:
-       drawframe(x,y,w,h,1)
-       nframe = 0
-       num = 0
-       while 1:
-           insingle = 0
-           outsingle = 0
-           if mousing:
-               drawframe(x,y,w,h,0)
-               ox, oy = getorigin()
-               if sizewritten:
-                   x = getvaluator(MOUSEX)-ox
-                   y = getvaluator(MOUSEY)-oy
-               else:
-                   w = getvaluator(MOUSEX)-x-ox
-                   h = getvaluator(MOUSEY)-y-oy
-               drawframe(x,y,w,h,1)
-           if qtest() or \
-           not (mousing or inrunning or insingle or outrunning or outsingle):
-               ev, val = qread()
-               if ev == LEFTMOUSE and val == 1:
-                   drawframe(x,y,w,h,0)
-                   mousing = 1
-                   ox, oy = getorigin()
-                   x = getvaluator(MOUSEX)-ox
-                   y = getvaluator(MOUSEY)-oy
-               elif ev == LEFTMOUSE and val == 0:
-                   if h < 0:
-                       y, h = y+h, -h
-                   if w < 0:
-                       x, w = x+w, -w
-                   mousing = 0
-                   if not sizewritten:
-                       wrheader(f, w, h, pf)
-                       sizewritten = 1
-                       prealloc(w, h)
-               elif ev == RKEY and val == 1:
-                   if not inrunning:
-                       ringbell()
-                   else:
-                       outrunning = 1
-                       wasstopped = time.millitimer() - stoptime
-                       epoch.epoch = epoch.epoch + wasstopped
-                       nframe = 0
-                       starttime = time.millitimer()
-                       if ausync:
-                           ctl.sendto(`(1,starttime)`, aua)
-               elif ev == PKEY and val == 1 and outrunning:
-                   outrunning = 0
-                   stoptime = time.millitimer()
-                   if ausync:
-                       ctl.sendto(`(0,stoptime)`, aua)
-                   fps =  nframe * 1000.0 / (time.millitimer()-starttime)
-                   print 'Recorded', nframe,
-                   print 'frames at', 0.1*int(fps*10),'frames/sec'
-                   print 'Saving...'
-                   saveframes(f, w, h, pf)
-                   print 'Done.'
-               elif ev == PKEY and val == 1 and not outrunning:
-                       outsingle = 1
-               elif ev == CKEY and val == 1:
-                       inrunning = 1
-               elif ev == SKEY and val == 1:
-                       if outrunning:
-                           ringbell()
-                       elif inrunning:
-                           inrunning = 0
-                       else:
-                           insingle = 1
-               elif ev in (ESCKEY, WINQUIT, WINSHUT):
-                   if ausync:
-                       ctl.sendto(`(2,time.millitimer())`, aua)
-                   raise stop
-               elif ev == REDRAW:
-                       drawframe(x,y,w,h,0)
-                       reshapeviewport()
-                       drawframe(x,y,w,h,1)
-           if inrunning or insingle:
-               if outrunning:
-                       rectcopy(vidx+x,vidy+y,vidx+x+w-1,vidy+y+h-1,x,y)
-               else:
-                       rectcopy(vidx,vidy,vidx+realw-1,vidx+realh-1,0,0)
-               ####swapbuffers()
-           if outrunning or outsingle:
-               nframe = nframe + 1
-               if not sizewritten:
-                   wrheader(f, w, h, pf)
-                   sizewritten = 1
-               if outrunning:
-                       grabframe(f, x, y, w, h, pf)
-               else:
-                       saveframe(f, x, y, w, h, pf, outsingle)
-    except stop:
-       pass
-    finally:
-        drawmode(OVERDRAW)
-        color(0)
-        clear()
-
-main()
diff --git a/Demo/sgi/video/colorsys.py b/Demo/sgi/video/colorsys.py
deleted file mode 100755 (executable)
index dd3a033..0000000
+++ /dev/null
@@ -1,106 +0,0 @@
-#
-# Module color - do color conversions
-#
-
-ONE_THIRD=1.0/3.0
-ONE_SIXTH=1.0/6.0
-TWO_THIRD=2.0/3.0
-
-def rgb_to_yiq(r,g,b):
-    y = 0.3*r + 0.59*g + 0.11*b
-    i = 0.6*r - 0.28*g - 0.32*b
-    q = 0.21*r- 0.52*g + 0.31*b
-    return (y,i,q)
-def yiq_to_rgb(y,i,q):
-    r = y + 0.948262*i + 0.624013*q
-    g = y - 0.276066*i - 0.639810*q
-    b = y - 1.105450*i + 1.729860*q
-    if r < 0.0: r = 0.0
-    if g < 0.0: g = 0.0
-    if b < 0.0: b = 0.0
-    if r > 1.0: r = 1.0
-    if g > 1.0: g = 1.0
-    if b > 1.0: b = 1.0
-    return (r,g,b)
-
-def _v(m1,m2,hue):
-    if hue >= 1.0: hue = hue - 1.0
-    if hue <  0.0: hue = hue + 1.0
-    if hue < ONE_SIXTH:
-       return m1 + (m2-m1)*hue*6.0
-    if hue < 0.5:
-       return m2
-    if hue < TWO_THIRD:
-       return m1 + (m2-m1)*(TWO_THIRD-hue)*6.0
-    return m1
-
-def rgb_to_hls(r,g,b):
-    maxc = max(r,g,b)
-    minc = min(r,g,b)
-    l = (minc+maxc)/2.0
-    if minc == maxc:
-       return 0.0, l, 0.0
-    if l <= 0.5:
-       s = (maxc-minc)/(maxc+minc)
-    else:
-       s = (maxc-minc)/(2-maxc-minc)
-    rc = (maxc-r)/(maxc-minc)
-    gc = (maxc-g)/(maxc-minc)
-    bc = (maxc-b)/(maxc-minc)
-    if r == maxc:
-       h = bc-gc
-    elif g == maxc:
-       h = 2.0+rc-bc
-    else:
-       h = 4.0+gc-rc
-    h = h/6.0
-    if h < 0.0:
-       h = h + 1.0
-    return h,l,s
-def hls_to_rgb(h,l,s):
-    if s == 0.0:
-       return l,l,l
-    if l <= 0.5:
-       m2 = l * (1.0+s)
-    else:
-       m2 = l+s-(l*s)
-    m1 = 2.0*l - m2
-    return (_v(m1,m2,h+ONE_THIRD), _v(m1,m2,h), _v(m1,m2,h-ONE_THIRD))
-
-def rgb_to_hsv(r,g,b):
-    maxc = max(r,g,b)
-    minc = min(r,g,b)
-    v = maxc
-    if minc == maxc:
-       return 0.0, 0.0, v
-    s = (maxc-minc)/maxc
-    rc = (maxc-r)/(maxc-minc)
-    gc = (maxc-g)/(maxc-minc)
-    bc = (maxc-b)/(maxc-minc)
-    if r == maxc:
-       h = bc-gc
-    elif g == maxc:
-       h = 2.0+rc-bc
-    else:
-       h = 4.0+gc-rc
-    h = h/6.0
-    if h < 0.0:
-       h = h + 1.0
-    return h,s,v
-def hsv_to_rgb(h,s,v):
-    if s == 0.0:
-       return v,v,v
-    i = int(h*6.0)
-    f = (h*6.0)-i
-    p = v*(1.0-s)
-    q = v*(1.0-s*f)
-    t = v*(1.0-s*(1.0-f))
-    if i in (0,6): return v,t,p
-    if i == 1: return q,v,p
-    if i == 2: return p,v,t
-    if i == 3: return p,q,v
-    if i == 4: return t,p,v
-    if i == 5: return v,p,q
-    print i, h, f
-    print h, s, v
-    raise 'Bad color'
diff --git a/Demo/sgi/video/i2v.c b/Demo/sgi/video/i2v.c
deleted file mode 100755 (executable)
index 21dfabe..0000000
+++ /dev/null
@@ -1,80 +0,0 @@
-/*
- * i2v -- image-to-video.
- * Convert an SGI image file to a format that is immediately usable
- * by lrectwrite.
- * The header of the file contains a description (in ASCII)
- * padded to 8196 byte for fast access of the rest of the file.
- *
- * Based upon "showimg.c" by Paul Haeberli.
- * --Guido van Rossum, CWI, Amsterdam
- */
-#include <stdio.h>
-#include <gl/gl.h>
-#include <gl/device.h>
-#include <gl/image.h>
-
-unsigned short rs[8192];
-unsigned short gs[8192];
-unsigned short bs[8192];
-
-IMAGE *image;
-int xsize, ysize, zsize;
-FILE *fp;
-
-char header[100];
-char *progname = "i2v";
-
-main(argc,argv)
-int argc;
-char **argv;
-{
-    int y;
-    if (argc > 0) progname = argv[0];
-    if( argc != 3 ) {
-       fprintf(stderr, "usage: %s infile outfile\n", progname);
-       exit(2);
-    } 
-    if( (image=iopen(argv[1],"r")) == NULL ) {
-       fprintf(stderr, "%s: can't open input file %s\n",progname, argv[1]);
-       exit(1);
-    }
-    xsize = image->xsize;
-    ysize = image->ysize;
-    zsize = image->zsize;
-    if ((fp = fopen(argv[2], "w")) == NULL) {
-       fprintf(stderr,"%s: can't open output file %s\n", progname, argv[2]);
-       exit(1);
-    }
-    fprintf(fp, "CMIF video 1.0\n");
-    fprintf(fp, "(%d, %d, %d)\n", xsize, ysize, 0);
-    fprintf(fp, "0, %ld\n", (long)xsize * (long)ysize * sizeof(long));
-    fflush(fp);
-    for(y = 0; y < ysize; y++) {
-               if(zsize<3) {
-                       getrow(image, rs, y, 0);
-                       writepacked(xsize, rs, rs, rs);
-               } else {
-                       getrow(image, rs, y, 0);
-                       getrow(image, gs, y, 1);
-                       getrow(image, bs, y, 2);
-                       writepacked(xsize, rs, gs, bs);
-               }
-    }
-    exit(0);
-}
-
-writepacked(n, rsptr, gsptr, bsptr)
-       int n;
-       short *rsptr, *gsptr, *bsptr;
-{
-       long parray[8192];
-       long *pptr = parray;
-       int i = n;
-       while (--i >= 0) {
-               *pptr++ = *rsptr++ | (*gsptr++<<8) | (*bsptr++<<16);
-       }
-       if (fwrite((char *) parray, sizeof(long), n, fp) != n) {
-               perror("fwrite");
-               exit(1);
-       }
-}
diff --git a/Demo/sgi/video/makemovie.py b/Demo/sgi/video/makemovie.py
deleted file mode 100755 (executable)
index 5cb41cd..0000000
+++ /dev/null
@@ -1,218 +0,0 @@
-#! /ufs/guido/bin/sgi/python
-#! /ufs/guido/src/video/py
-
-# Capture a CMIF movie using the Indigo video library and board
-
-
-# Usage:
-#
-# makemovie [-q queuesize] [-t recordtime] [-a] [moviefile [audiofile]]
-
-
-# Options:
-#
-# -q queuesize  : set the capture queue size (default and max 16)
-# -t recordtime : set the record time in seconds (default 5 seconds)
-# -a            : record audio as well
-# moviefile     : here goes the movie data (default film.video);
-#                 the format is documented in cmif-film.ms
-# audiofile     : with -a, here goes the audio data (default film.aiff);
-#                 audio data is recorded in AIFF format, using the
-#                 input sampling rate, source and volume set by the
-#                 audio panel, in mono, 8 bits/sample
-
-
-# User interface:
-#
-# Start the application.  Resize the window to the desired movie size.
-# Click the left mouse button to start recording (recording starts
-# when you release the mouse button).  Recording time is specified by
-# the -t option (XXX this should change).
-#
-# Press ESC or select the window manager Quit or Close window option
-# to quit.  (You can do this without recording -- then the output
-# files are untouched.)
-#
-# (It is possible to record more than once; but this doesn't set the
-# time stamps correctly yet, and doesn't work at all with audio.  So
-# don't use.)
-
-
-# XXX To do:
-#
-# fix timestamps for second and further recordings
-# fix audio      "   "      "   "       "
-# flush audio buffer when recording starts
-# make code more readable
-
-
-import sys
-sys.path.append('/ufs/guido/src/video')
-import sv, SV
-import VFile
-import gl, GL, DEVICE
-import al, AL
-import time
-import posix
-import getopt
-import string
-
-
-def main():
-       QSIZE = 16
-       TIME = 5
-       audio = 0
-
-       opts, args = getopt.getopt(sys.argv[1:], 'aq:t:')
-       for opt, arg in opts:
-               if opt == '-a':
-                       audio = 1
-               elif opt == '-q':
-                       QSIZE = string.atoi(arg)
-               elif opt == '-t':
-                       TIME = string.atoi(arg)
-
-       if args:
-               filename = args[0]
-       else:
-               filename = 'film.video'
-
-       if audio:
-               if args[1:]:
-                       audiofilename = args[1]
-               else:
-                       audiofilename = 'film.aiff'
-
-       gl.foreground()
-
-       x, y = SV.PAL_XMAX / 4, SV.PAL_YMAX / 4
-       print x, 'x', y
-
-       gl.minsize(40, 30)
-       gl.stepunit(8, 6)
-       gl.maxsize(SV.PAL_XMAX, SV.PAL_YMAX)
-       gl.keepaspect(SV.PAL_XMAX, SV.PAL_YMAX)
-       win = gl.winopen(filename)
-       x, y = gl.getsize()
-       print x, 'x', y
-
-       v = sv.OpenVideo()
-       v.BindGLWindow(win, SV.IN_REPLACE)
-       v.SetSize(x, y)
-       v.BindGLWindow(win, SV.IN_REPLACE)
-
-       v.SetCaptureFormat(SV.RGB_FRAMES)
-       v.SetCaptureMode(SV.BLOCKING_CAPTURE)
-       v.SetQueueSize(QSIZE)
-       v.InitCapture()
-       if v.GetQueueSize() != QSIZE:
-               QSIZE = v.GetQueueSize()
-               print 'Warning: QSIZE reduced to', QSIZE
-
-       gl.qdevice(DEVICE.LEFTMOUSE)
-       gl.qdevice(DEVICE.WINQUIT)
-       gl.qdevice(DEVICE.WINSHUT)
-       gl.qdevice(DEVICE.ESCKEY)
-
-       print 'Click left mouse to start recording', TIME, 'seconds'
-       ofile = None
-       afile = None
-       # Mouse down opens the file & freezes window
-       # Mouse up starts recording frames
-
-       while 1:
-               dev, val = gl.qread()
-               if dev == DEVICE.LEFTMOUSE:
-                       # Start recording
-                       if val == 1:
-                               # Mouse down -- preparations
-                               if ofile == None:
-                                       ofile = VFile.VoutFile().init(filename)
-                                       ofile.format = 'rgb8'
-                                       ofile.width = x
-                                       ofile.height = y
-                                       ofile.writeheader()
-                                       # XXX other format bits?
-                               # The window can't be resized from now
-                               gl.prefsize(x, y)
-                               gl.winconstraints()
-                               gl.wintitle('* ' + filename)
-                               if audio:
-                                       afile = initaudio(audiofilename)
-                               continue
-                       # Mouse up -- start actual recording
-                       global recording, stop_recording
-                       if audio:
-                               stop_recording = 0
-                               recording.release()
-                       t0 = time.millitimer()
-                       v.StartCapture()
-                       while 1:
-                               t = time.millitimer() - t0
-                               if t >= TIME*1000:
-                                       break
-                               if v.GetCaptured() > 2:
-                                       doframe(v, ofile, x, y, t)
-                       v.StopCapture()
-                       stop_recording = 1
-                       while v.GetCaptured() > 0:
-                               doframe(v, ofile, x, y, t)
-                               t = time.millitimer() - t0
-                       gl.wintitle(filename)
-               elif dev == DEVICE.REDRAW:
-                       # Window resize (or move)
-                       x, y = gl.getsize()
-                       print x, 'x', y
-                       v.SetSize(x, y)
-                       v.BindGLWindow(win, SV.IN_REPLACE)
-               elif dev in (DEVICE.ESCKEY, DEVICE.WINQUIT, DEVICE.WINSHUT):
-                       # Quit
-                       if ofile:
-                               ofile.close()
-                       if afile:
-                               afile.destroy()
-                       posix._exit(0)
-                       # EndCapture dumps core...
-                       v.EndCapture()
-                       v.CloseVideo()
-                       gl.winclose(win)
-
-def doframe(v, ofile, x, y, t):
-       cd, start = v.GetCaptureData()
-       data = cd.interleave(x, y)
-       cd.UnlockCaptureData()
-       ofile.writeframe(t, data, None)
-
-AQSIZE = 16000
-
-def initaudio(filename):
-       import thread, aiff
-       global recording, stop_recording
-       afile = aiff.Aiff().init(filename, 'w')
-       afile.nchannels = AL.MONO
-       afile.sampwidth = AL.SAMPLE_8
-       params = [AL.INPUT_RATE, 0]
-       al.getparams(AL.DEFAULT_DEVICE, params)
-       print 'rate =', params[1]
-       afile.samprate = params[1]
-       c = al.newconfig()
-       c.setchannels(AL.MONO)
-       c.setqueuesize(AQSIZE)
-       c.setwidth(AL.SAMPLE_8)
-       aport = al.openport(filename, 'r', c)
-       recording = thread.allocate_lock()
-       recording.acquire()
-       stop_recording = 0
-       thread.start_new_thread(recorder, (afile, aport))
-       return afile
-
-def recorder(afile, aport):
-       # XXX recording more than one fragment doesn't work
-       # XXX (the thread never dies)
-       recording.acquire()
-       while not stop_recording:
-               data = aport.readsamps(AQSIZE/2)
-               afile.writesampsraw(data)
-               del data
-
-main()
diff --git a/Demo/sgi/video/squash.c b/Demo/sgi/video/squash.c
deleted file mode 100755 (executable)
index d5ea946..0000000
+++ /dev/null
@@ -1,130 +0,0 @@
-#include <stdio.h>
-
-long *bm;
-long h, w;
-long factor;
-
-#define OC(x,xi) ((x)*factor+(xi))
-#define BM(x,xi,y,yi) bm[OC(y,yi)*w+OC(x,xi)]
-
-#define COMP(r,g,b) ((r) | ((g)<<8) | ((b) << 16))
-
-#define R(comp) ((comp) & 0xff)
-#define G(comp) (((comp)>>8) & 0xff)
-#define B(comp) (((comp)>>16) & 0xff)
-
-main(argc, argv)
-    char **argv;
-{
-    char lbuf[100];
-    int nh, nw;
-    int x, y, xi, yi;
-    int num;
-    int r, g, b;
-    long data;
-    long *nbm, *nbmp;
-    int i;
-    int bits, mask, roundbit, addbit;
-    int pf;
-    int newfmt = 0;
-
-    if( argc != 2 && argc != 3) {
-       fprintf(stderr, "Usage: squash factor [bits]\n");
-       exit(1);
-    }
-    factor = atoi(argv[1]);
-    if ( argc > 2 ) {
-       bits = atoi(argv[2]);
-       mask = (1 << bits) - 1;
-       mask <<= (8-bits);
-       roundbit = 1 << (7-bits);
-       addbit = 1 << (8-bits);
-       fprintf(stderr, "%x %x %x\n", mask, roundbit, addbit);
-    } else {
-       mask = 0xff;
-       roundbit = 0;
-       addbit = 0;
-    }
-    gets(lbuf);
-    if ( strncmp( lbuf, "CMIF", 4) == 0 ) {
-       newfmt = 1;
-       gets(lbuf);
-       if( sscanf(lbuf, "(%d,%d,%d)", &w, &h, &pf) != 3) {
-           fprintf(stderr, "%s: bad size spec: %s\n", argv[0], lbuf);
-           exit(1);
-       }
-       if ( pf != 0 ) {
-           fprintf(stderr, "%s: packed file\n", argv[0]);
-           exit(1);
-       }
-    } else {
-       if ( sscanf(lbuf, "(%d,%d)", &w, &h) != 2) {
-           fprintf(stderr, "%s: bad size spec: %s\n", argv[0], lbuf);
-           exit(1);
-       }
-    }
-    nh = h / factor;
-    nw = w / factor;
-    if ( newfmt )
-       printf("CMIF video 1.0\n(%d,%d,%d)\n", nw, nh, 0);
-    else
-       printf("(%d,%d)\n", nw, nh);
-    if ( (bm = (long *)malloc(h*w*sizeof(long))) == 0) {
-       fprintf(stderr, "%s: No memory\n", argv[0]);
-       exit(1);
-    }
-    if ( (nbm = (long *)malloc(nh*nw*sizeof(long))) == 0) {
-       fprintf(stderr, "%s: No memory\n", argv[0]);
-       exit(1);
-    }
-    while( !feof(stdin) ) {
-       {   int t, s;
-           gets(lbuf);
-           if ( feof(stdin) ) break;
-           if ( sscanf(lbuf, "%d,%d", &t,&s) == 2) {
-               if ( s != h*w*4 ) {
-                   fprintf(stderr, "Size changed from %d to %d: %s\n",4*h*w,s, lbuf);
-                   exit(1);
-               }
-               printf("%d, %d\n", t, nh*nw*4);
-           } else {
-               puts(lbuf);
-           }
-       }
-       fprintf(stderr, "Reading %d\n", h*w*sizeof(long));
-       if ( (i=fread(bm, 1, h*w*sizeof(long), stdin)) != h*w*sizeof(long)) {
-           fprintf(stderr, "%s: short read, %d wanted %d\n", argv[0],
-               i, h*w*sizeof(long));
-           exit(1);
-       }
-       nbmp = nbm;
-       for( y=0; y<nh; y++) {
-           for ( x=0; x<nw; x++) {
-               r = g = b = 0;
-               num = 0;
-               for( xi=0; xi<factor; xi++ ) {
-                   for(yi=0; yi<factor; yi++) {
-                       if ( y*factor+yi < h && x*factor+xi < w ) {
-                           num++;
-                           data = BM(x,xi,y,yi);
-                           r += R(data);
-                           g += G(data);
-                           b += B(data);
-                       }
-                       else fprintf(stderr, "skip %d %d %d %d\n", x, xi, y, yi);
-                   }
-               }
-               r = r/num; g = g/num; b = b/num;
-               if ( (r & mask) != mask && ( r & roundbit) ) r += addbit;
-               if ( (g & mask) != mask && ( g & roundbit) ) g += addbit;
-               if ( (b & mask) != mask && ( b & roundbit) ) b += addbit;
-               data = COMP(r, g, b);
-               *nbmp++ = data;
-           }
-       }
-       if (nbmp - nbm != nh * nw ) fprintf(stderr, "%d %d\n", nbmp-nbm, nh*nw);
-       fprintf(stderr, "Writing %d\n", (nbmp-nbm)*sizeof(long));
-       fwrite(nbm, 1, (nbmp-nbm)*sizeof(long), stdout);
-    }
-    exit(0);
-}
diff --git a/Demo/sgi/video/squash2.c b/Demo/sgi/video/squash2.c
deleted file mode 100755 (executable)
index c4d03e9..0000000
+++ /dev/null
@@ -1,72 +0,0 @@
-#include <stdio.h>
-
-long *bm;
-long h, w;
-long factor;
-
-#define OC(x,xi) ((x)*factor+(xi))
-#define BM(x,xi,y,yi) bm[OC(y,yi)*w+OC(x,xi)]
-
-#define COMP(r,g,b) ((r) | ((g)<<8) | ((b) << 16))
-
-#define R(comp) ((comp) & 0xff)
-#define G(comp) (((comp)>>8) & 0xff)
-#define B(comp) (((comp)>>16) & 0xff)
-
-main(argc, argv)
-    char **argv;
-{
-    char lbuf[100];
-    int nh, nw;
-    int x, y, xi, yi;
-    int num;
-    int r, g, b;
-    long data;
-    long *nbm, *nbmp;
-    int i;
-
-    if( argc != 2) {
-       fprintf(stderr, "Usage: squash factor\n");
-       exit(1);
-    }
-    factor = atoi(argv[1]);
-    gets(lbuf);
-    if ( sscanf(lbuf, "(%d,%d)", &w, &h) != 2) {
-       fprintf(stderr, "%s: bad size spec: %s\n", argv[0], lbuf);
-       exit(1);
-    }
-    nh = h / factor;
-    nw = w / factor;
-    printf("(%d,%d)\n", nw, nh);
-    if ( (bm = (long *)malloc(h*w*sizeof(long))) == 0) {
-       fprintf(stderr, "%s: No memory\n", argv[0]);
-       exit(1);
-    }
-    if ( (nbm = (long *)malloc(nh*nw*sizeof(long))) == 0) {
-       fprintf(stderr, "%s: No memory\n", argv[0]);
-       exit(1);
-    }
-    while( !feof(stdin) ) {
-       gets(lbuf);
-       if ( feof(stdin) ) break;
-       puts(lbuf);
-       fprintf(stderr, "Reading %d\n", h*w*sizeof(long));
-       if ( (i=fread(bm, 1, h*w*sizeof(long), stdin)) != h*w*sizeof(long)) {
-           fprintf(stderr, "%s: short read, %d wanted %d\n", argv[0],
-               i, h*w*sizeof(long));
-           exit(1);
-       }
-       nbmp = nbm;
-       for( y=0; y<nh; y++) {
-           for ( x=0; x<nw; x++) {
-               r = g = b = 0;
-               num = 0;
-               *nbmp++ = BM(x,0,y,0);
-           }
-       }
-       if (nbmp - nbm != nh * nw ) fprintf(stderr, "%d %d\n", nbmp-nbm, nh*nw);
-       fprintf(stderr, "Writing %d\n", (nbmp-nbm)*sizeof(long));
-       fwrite(nbm, 1, (nbmp-nbm)*sizeof(long), stdout);
-    }
-    exit(0);
-}
diff --git a/Demo/sgi/video/statit.py b/Demo/sgi/video/statit.py
deleted file mode 100755 (executable)
index b0c1782..0000000
+++ /dev/null
@@ -1,115 +0,0 @@
-import sys
-from time import millitimer
-
-def main():
-       filename = 'film2.video'
-       if sys.argv[1:]: filename = sys.argv[1]
-       f = open(filename, 'r')
-
-       line = f.readline()
-       w, h = eval(line[:-1])
-       w2, h2 = w/2, h/2
-       size = w2 * h2
-
-       data = data2 = t = t0 = t1 = None
-       nframes = 0
-       t0 = millitimer()
-       while 1:
-               line = f.readline()
-               if not line: break
-               t = eval(line[:-1])
-               data = None
-               data = f.read(size)
-               if len(data) <> size:
-                       raise EOFError
-               dostat(w2, h2, data)
-               nframes = nframes+1
-       t1 = millitimer()
-       
-       t = 0.001 * (t1-t0)
-       fps = 0.1 * int(10*nframes/t)
-       print nframes, 'frames in', t, 'sec. =', fps, 'frames/sec.'
-
-def dostat(w, h, data):
-       print
-       stat3(w, h, data)
-
-# Statistic op 1: frequencies of byte values
-def stat1(w, h, data):
-       bins = [0]*256
-       for c in data:
-               i = ord(c)
-               bins[i] = bins[i]+1
-       prbins(bins)
-
-def prbins(bins):
-       import string
-       s = ''
-       tot = 0
-       for i in range(256):
-               tot = tot + bins[i]
-               s = s + string.rjust(`bins[i]`, 4)
-               if len(s) >= 4*16:
-                       print s, string.rjust(`tot`, 7)
-                       s = ''
-                       tot = 0
-
-# Statistic op 2: run lengths
-def stat2(w, h, data):
-       runs = []
-       for y in range(h):
-               count, value = 0, ord(data[y*w])
-               for c in data[y*w : y*w+w]:
-                       i = ord(c)
-                       if i <> value:
-                               runs.append(count, value)
-                               count, value = 0, i
-                       count = count+1
-               runs.append(count, value)
-       print len(runs), 'runs =', 0.1 * (10*w*h/len(runs)), 'bytes/run'
-
-# Statistic op 3: frequencies of byte differences
-def stat3(w, h, data):
-       bins = [0]*256
-       prev = 0
-       for c in data:
-               i = ord(c)
-               delta = divmod(i-prev, 256)[1]
-               prev = i
-               bins[delta] = bins[delta]+1
-       prbins(bins)
-
-# Try packing
-def packblock(w, h, data):
-       res = ''
-       for y in range(h):
-               res = res + packline(data[y*w : y*w+w])
-       return res
-
-def packline(line):
-       bytes = []
-       for c in line:
-               bytes.append(ord(c))
-       prev = bytes[0]
-       i, n = 1, len(bytes)
-       while i < n:
-               for pack in (0, 2, 4, 8):
-                       if pack == 0:
-                               lo, hi = 0, 0
-                       else:
-                               hi = pow(2, pack-1)-1
-                               lo = -hi-1
-                       p = prev
-                       j = i
-                       count = 0
-                       while j < n:
-                               x = bytes[j]
-                               delta = byte(x-p)
-                               if not lo <= delta <= hi:
-                                       break
-                               p = x
-                               j = j+1
-
-def byte(x): return divmod(x, 256)[1]
-
-main()
diff --git a/Demo/sgi/video/syncaudio.py b/Demo/sgi/video/syncaudio.py
deleted file mode 100755 (executable)
index fd09d28..0000000
+++ /dev/null
@@ -1,94 +0,0 @@
-import AL
-import al
-import sys
-import vtime
-import socket
-import time
-
-
-SLEEPTIME = 500                # 500 ms sleeps
-SAMPLEFREQ = 16000     # 16Khz samples
-SAMPLERATE = AL.RATE_16000
-NEEDBUFFERED = SAMPLEFREQ      # Buffer 1 second of sound
-BUFFERSIZE = NEEDBUFFERED*4    # setqueuesize() par for 2 second sound
-
-AVSYNCPORT = 10000     # Port for time syncing
-AVCTLPORT = 10001      # Port for record start/stop
-
-def main():
-    if len(sys.argv) <> 3:
-       print 'Usage: ', sys.argv[0], 'videohostname soundfile'
-       sys.exit(1)
-    #
-    ofile = open(sys.argv[2], 'w')
-    #
-    globaltime = vtime.VTime().init(0,sys.argv[1],AVSYNCPORT)
-    #
-    ctl = socket.socket(socket.AF_INET,socket.SOCK_DGRAM)
-    ctl.bind((socket.gethostname(),AVCTLPORT))
-    #
-    inp = openmic()
-    #
-    out = 0            # Open aiff file
-    #
-    while 1:
-       if mainloop(None, ctl, inp, out, globaltime):
-           break
-       if mainloop(ofile, ctl, inp, out, globaltime):
-           break
-    pass       # Close aiff file
-    sys.exit(0)
-#
-def openmic():
-    conf = al.newconfig()
-    conf.setqueuesize(BUFFERSIZE)
-    conf.setwidth(AL.SAMPLE_16)
-    conf.setchannels(AL.MONO)
-    return al.openport('micr','r',conf)
-#
-def mainloop(ofile, ctl, inp, out, globaltime):
-    #
-    # Wait for sync packet, keeping 1-2 seconds of sound in the
-    # buffer
-    #
-    totsamps = 0
-    totbytes = 0
-    starttime = time.millitimer()
-    while 1:
-       time.millisleep(SLEEPTIME)
-       if ctl.avail():
-           break
-       nsamples = inp.getfilled()-NEEDBUFFERED
-       if nsamples>0:
-           data = inp.readsamps(nsamples)
-           totsamps = totsamps + nsamples
-           totbytes = totbytes + len(data)
-           if ofile <> None:
-               ofile.write(data)
-    #
-    # Compute his starttime and the timestamp of the first byte in the
-    # buffer. Discard all buffered data upto his starttime
-    #
-    startstop,histime = eval(ctl.recv(100))
-    if (ofile == None and startstop == 0) or \
-                          (ofile <> None and startstop == 1):
-       print 'Sync error: saving=',save,' request=',startstop
-       sys.exit(1)
-    filllevel = inp.getfilled()
-    filltime = time.millitimer()
-    filltime = filltime - filllevel / (SAMPLEFREQ/1000)
-    starttime = globaltime.his2mine(histime)
-    nsamples = starttime - filltime
-    if nsamples < 0:
-       print 'Start/stop signal came too late'
-       sys.exit(1)
-    nsamples = nsamples * (SAMPLEFREQ / 1000)
-    data = inp.readsamps(nsamples)
-    totsamps = totsamps + nsamples
-    totbytes = totbytes + len(data)
-    print 'Time: ', time.millitimer()-starttime, ', Bytes: ', totbytes, ', Samples: ', totsamps
-    if ofile <> None:
-       ofile.write(data)
-    return (startstop == 2)
-
-main()
diff --git a/Demo/sgi/video/tomono.c b/Demo/sgi/video/tomono.c
deleted file mode 100755 (executable)
index 546af68..0000000
+++ /dev/null
@@ -1,165 +0,0 @@
-#include <stdio.h>
-
-long *bm;
-long *nbm;
-long h, w;
-int nh, nw;
-long factor;
-
-#define OC(x,xi) ((x)*factor+(xi))
-#define BM(x,xi,y,yi) bm[OC(y,yi)*w+OC(x,xi)]
-
-#define COMP(r,g,b) ((r) | ((g)<<8) | ((b) << 16))
-
-#define R(comp) ((comp) & 0xff)
-#define G(comp) (((comp)>>8) & 0xff)
-#define B(comp) (((comp)>>16) & 0xff)
-
-#define CHOICEFUNC(np1, np2) ( random() & 1 )
-
-int inlevels = 3*255;
-int outlevels = 1;
-
-main(argc, argv)
-    char **argv;
-{
-    char lbuf[100];
-    int x, y, xi, yi;
-    int num;
-    int r, g, b;
-    long data;
-    int i;
-    double greyness;
-    int inpixels, outpixels;
-    int resid;
-
-    setvbuf(stdout, 0, _IOFBF, 1024*128);
-    if( argc != 2) {
-       fprintf(stderr, "Usage: tomono factor\n");
-       exit(1);
-    }
-    factor = atoi(argv[1]);
-    gets(lbuf);
-    if ( sscanf(lbuf, "(%d,%d)", &w, &h) != 2) {
-       fprintf(stderr, "%s: bad size spec: %s\n", argv[0], lbuf);
-       exit(1);
-    }
-    nh = h / factor;
-    nw = w / factor;
-    printf("(%d,%d)\n", nw, nh);
-    if ( (bm = (long *)malloc(h*w*sizeof(long))) == 0) {
-       fprintf(stderr, "%s: No memory\n", argv[0]);
-       exit(1);
-    }
-    if ( (nbm = (long *)malloc(nh*nw*sizeof(long))) == 0) {
-       fprintf(stderr, "%s: No memory\n", argv[0]);
-       exit(1);
-    }
-    while( !feof(stdin) ) {
-       gets(lbuf);
-       if ( feof(stdin) ) break;
-       puts(lbuf);
-       fprintf(stderr, "Reading %d\n", h*w*sizeof(long));
-       if ( (i=fread(bm, 1, h*w*sizeof(long), stdin)) != h*w*sizeof(long)) {
-           fprintf(stderr, "%s: short read, %d wanted %d\n", argv[0],
-               i, h*w*sizeof(long));
-           exit(1);
-       }
-       /*
-       ** Compute picture blackness.
-       */
-       inpixels = 0;
-       inpixels = countpixels(0,0,w,h);
-       greyness = (double)inpixels/(h*w*inlevels);
-       fprintf(stderr, "%3.1f%% grey\n", 100.0*greyness);
-       outpixels = (int)(greyness*outlevels*nh*nw);
-       fprintf(stderr, "Inpixels: %d (%d) Outpixels %d\n", inpixels, inpixels/inlevels, outpixels);
-       resid = fillpixels(0,0,nw,nh,0,0,w,h,outpixels);
-       if ( resid > 1 ) fprintf(stderr, "Residue: %d pixels\n", resid);
-       fprintf(stderr, "Writing %d\n", (nh*nw)*sizeof(long));
-       fwrite(nbm, 1, (nh*nw)*sizeof(long), stdout);
-    }
-    exit(0);
-}
-
-countpixels(x0,y0,x1,y1)
-{
-    int x, y, tot, data;
-
-    tot = 0;
-    for( y=y0; y<y1; y++)
-       for(x=x0; x<x1; x++) {
-           data = bm[y*w+x];
-           tot += R(data);
-           tot += G(data);
-           tot += B(data);
-    }
-    return tot;
-}
-
-fillpixels(x0,y0,x1,y1,ox0,oy0,ox1,oy1,npixels)
-{
-    int m, om, p1, p2, np1, np2, rp, resid;
-
-    if ( npixels == 0 ) return 0;
-    if ( x0+1 >= x1 && y0+1 >= y1 ) {
-       if ( npixels ) {
-           nbm[y0*nw+x0] = 0xffffff;
-/*         fprintf(stderr, "->%d,%d\n", x0,y0); */
-           return npixels - 1;
-       }
-       return 0;
-    }
-    if ( x1-x0 < y1-y0 ) {
-       if ( y1 - y0 <= 2 )
-           m = y0 + 1;
-       else
-           m = y0+1+(random()%(y1-y0-1));
-/*     fprintf(stderr,"%d,%d %d,%d Y %d\n", x0, x1, y0, y1, m); */
-       /* om = (oy0+oy1)/2; */ om = m;
-       p1 = countpixels(ox0,oy0,ox1,om);
-       p2 = countpixels(ox0,om,ox1,oy1);
-       np1 = (int)(((float)p1/(p1+p2))*npixels);
-       np2 = (int)(((float)p2/(p1+p2))*npixels);
-       rp = npixels - np1 - np2;
-       if ( rp ) {
-           np1 += rp/2;
-           rp = rp - rp/2;
-           np2 += rp;
-       }
-       resid = 0;
-       if ( CHOICEFUNC(np1, np2) ) {
-           resid = fillpixels(x0,y0,x1,m,ox0,oy0,ox1,om,np1+resid);
-           resid = fillpixels(x0,m,x1,y1,ox0,om,ox1,oy1,np2+resid);
-       } else {
-           resid = fillpixels(x0,m,x1,y1,ox0,om,ox1,oy1,np2+resid);
-           resid = fillpixels(x0,y0,x1,m,ox0,oy0,ox1,om,np1+resid);
-       }
-    } else {
-       if ( x1 - x0 <= 2 )
-           m = x0 + 1;
-       else
-           m = x0+1+(random()%(x1-x0-1));
-/*     fprintf(stderr,"%d,%d %d,%d X %d\n", x0, x1, y0, y1, m); */
-       /* om = (ox0+ox1)/2; */ om = m;
-       p1 = countpixels(ox0,oy0,om,oy1);
-       p2 = countpixels(om,oy0,ox1,oy1);
-       np1 = (int)(((float)p1/(p1+p2))*npixels);
-       np2 = (int)(((float)p2/(p1+p2))*npixels);
-       rp = npixels - np1 - np2;
-       if ( rp ) {
-           np1 += rp/2;
-           rp = rp - rp/2;
-           np2 += rp;
-       }
-       resid = 0;
-       if ( CHOICEFUNC(np1, np2) ) {
-           resid = fillpixels(x0,y0,m,y1,ox0,oy0,om,oy1,np1+resid);
-           resid = fillpixels(m,y0,x1,y1,om,oy0,ox1,oy1,np2+resid);
-       } else {
-           resid = fillpixels(m,y0,x1,y1,om,oy0,ox1,oy1,np2+resid);
-           resid = fillpixels(x0,y0,m,y1,ox0,oy0,om,oy1,np1+resid);
-       }
-    }
-    return resid;
-}
diff --git a/Demo/sgi/video/tv.py b/Demo/sgi/video/tv.py
deleted file mode 100755 (executable)
index da4bacb..0000000
+++ /dev/null
@@ -1,79 +0,0 @@
-import string
-
-from socket import *
-from gl import *
-from GL import *
-from DEVICE import *
-from time import millisleep, millitimer
-
-PORT = 5555
-
-PF = 2 # packfactor
-HS = 40 # Header size
-
-def testimage():
-       RGBcolor(0, 0, 0)
-       clear()
-       RGBcolor(0, 255, 0)
-       cmov2i(10, 10)
-       charstr('Waiting...')
-
-def reshape():
-       reshapeviewport()
-       w, h = getsize()
-       ortho2(0, w, 0, h)
-       testimage()
-       return w, h
-
-def main():
-       s = socket(AF_INET, SOCK_DGRAM)
-       s.bind('', PORT)
-
-       foreground()
-       wid = winopen('tv')
-       RGBmode()
-       gconfig()
-       qdevice(ESCKEY)
-
-       oldw, oldh = getsize()
-       ortho2(0, oldw, 0, oldh)
-       testimage()
-
-       t1 = millitimer()
-
-       while 1:
-               if qtest():
-                       dev, val = qread()
-                       if dev == ESCKEY:
-                               winclose(wid)
-                               return
-                       elif dev == REDRAW:
-                               oldw, oldh = reshape()
-               elif s.avail():
-                       data = s.recv(17000)
-                       header = string.strip(data[:HS])
-                       w, h, pf, x1, y1, x2, y2 = eval(header)
-                       if (w, h) <> (oldw, oldh):
-                               x, y = getorigin()
-                               x, y = x-1, y+21 # TWM correction
-                               winposition(x, x+w-1, y+oldh-h, y+oldh-1)
-                               oldw, oldh = reshape()
-                       data2 = data[HS:]
-                       dx = (x2-x1+1)/pf
-                       dy = (y2-y1+1)/pf
-                       data3 = unpackrect(dx, dy, 1, data2)
-                       rectzoom(pf, pf)
-                       lrectwrite(x1, y1, x1+dx-1, y1+dy-1, data3)
-                       t1 = millitimer()
-               else:
-                       t2 = millitimer()
-                       if t2-t1 >= 5000:
-                               testimage()
-                               t1 = t2
-                       else:
-                               millisleep(10)
-
-       winclose(wid)
-       return data
-
-main()
diff --git a/Demo/sgi/video/v2i.c b/Demo/sgi/video/v2i.c
deleted file mode 100755 (executable)
index 5f8f3b5..0000000
+++ /dev/null
@@ -1,79 +0,0 @@
-/* Convert the first image of a CMIF video movie file to SGI .rgb format.
-   usage: v2i videofile imagefile [planemask]
-   link with -limage
-*/
-
-#include <stdio.h>
-#include <gl/image.h>
-
-long bm[1280];
-short rb[1280], gb[1280], bb[1280];
-long w, h, pf;
-
-#define R(comp) ((comp) & 0xff)
-#define G(comp) (((comp)>>8) & 0xff)
-#define B(comp) (((comp)>>16) & 0xff)
-
-main(argc, argv)
-    char **argv;
-{
-    char lbuf[100];
-    int x, y;
-    int i;
-    IMAGE * of;
-    int pmask;
-
-    if( argc != 3 && argc != 4) {
-       fprintf(stderr, "Usage: v2i videofile imgfile [planemask]\n");
-       exit(2);
-    }
-    if ( argc == 4)
-       pmask = atoi(argv[3]);
-    else
-       pmask = 7;
-    if ( freopen(argv[1], "r", stdin) == NULL ) {
-       perror(argv[1]);
-       exit(1);
-    }
-    if (fgets(lbuf, sizeof lbuf, stdin) == NULL) {
-           fprintf(stderr, "Immediate EOF\n");
-           exit(1);
-    }
-    if (strncmp(lbuf, "CMIF", 4) == 0) {
-           /* Skip optional header line */
-           if (fgets(lbuf, sizeof lbuf, stdin) == NULL) {
-                   fprintf(stderr, "Immediate EOF after header\n");
-                   exit(1);
-           }
-    }
-    pf = 2; /* Default */
-    if ( sscanf(lbuf, "(%d,%d,%d)", &w, &h, &pf) < 2) {
-       fprintf(stderr, "%s: bad size spec: %s\n", argv[0], lbuf);
-       exit(1);
-    }
-    fgets(lbuf, sizeof lbuf, stdin); /* Skip time info */
-    if ( w > 1280 ) {
-       fprintf(stderr, "%s: Sorry, too wide\n", argv[0]);
-       exit(1);
-    }
-    if ( (of=iopen(argv[2], "w", RLE(1), 3, w, h, 3)) == 0) {
-       perror(argv[2]);
-       exit(1);
-    }
-    for( y=0; y<h; y++) {
-       if( fread(bm, sizeof(long), w, stdin) != w) {
-           fprintf(stderr, "%s: short read\n", argv[0]);
-           exit(1);
-       }
-       for( x=0; x<w; x++) {
-           if ( pmask & 1) rb[x] = R(bm[x]);
-           if ( pmask & 2) gb[x] = G(bm[x]);
-           if ( pmask & 4) bb[x] = B(bm[x]);
-       }
-       putrow(of, rb, y, 0);
-       putrow(of, gb, y, 1);
-       putrow(of, bb, y, 2);
-    }
-    iclose(of);
-    exit(0);
-}
diff --git a/Demo/sgi/video/vcopy.py b/Demo/sgi/video/vcopy.py
deleted file mode 100755 (executable)
index d32bc1f..0000000
+++ /dev/null
@@ -1,134 +0,0 @@
-# Copy a video file, interactively, frame-by-frame.
-
-import sys
-import getopt
-from gl import *
-from DEVICE import *
-import VFile
-import string
-import imageop
-
-def report(time, iframe):
-       print 'Frame', iframe, ': t =', time
-
-def usage():
-       sys.stderr.write('usage: vcopy [-t type] [-m treshold] [-a] infile outfile\n')
-       sys.stderr.write('-t Convert to other type\n')
-       sys.stderr.write('-a Automatic\n')
-       sys.stderr.write('-m Convert grey to mono with treshold\n')
-       sys.stderr.write('-d Convert grey to mono with dithering\n')
-       sys.exit(2)
-
-def help():
-       print 'Command summary:'
-       print 'n   get next image from input'
-       print 'w   write current image to output'
-
-def main():
-       foreground()
-       opts, args = getopt.getopt(sys.argv[1:], 't:am:d')
-       if len(args) <> 2:
-               usage()
-       [ifile, ofile] = args
-       print 'open film ', ifile
-       ifilm = VFile.VinFile().init(ifile)
-       print 'open output ', ofile
-       ofilm = VFile.VoutFile().init(ofile)
-       
-       ofilm.setinfo(ifilm.getinfo())
-
-       use_grabber = 0
-       continuous = 0
-       tomono = 0
-       tomonodither = 0
-       for o, a in opts:
-               if o == '-t':
-                       ofilm.format = a
-                       use_grabber = 1
-               if o == '-a':
-                       continuous = 1
-               if o == '-m':
-                       if ifilm.format <> 'grey':
-                               print '-m only supported for greyscale'
-                               sys.exit(1)
-                       tomono = 1
-                       treshold = string.atoi(a)
-                       ofilm.format = 'mono'
-               if o == '-d':
-                       if ifilm.format <> 'grey':
-                               print '-m only supported for greyscale'
-                               sys.exit(1)
-                       tomonodither = 1
-                       ofilm.format = 'mono'
-                       
-       ofilm.writeheader()
-       #
-       prefsize(ifilm.width, ifilm.height)
-       w = winopen(ifile)
-       qdevice(KEYBD)
-       qdevice(ESCKEY)
-       qdevice(WINQUIT)
-       qdevice(WINSHUT)
-       print 'qdevice calls done'
-       #
-       help()
-       #
-       time, data, cdata = ifilm.getnextframe()
-       ifilm.showframe(data, cdata)
-       iframe = 1
-       report(time, iframe)
-       #
-       while 1:
-               if continuous:
-                       dev = KEYBD
-               else:
-                       dev, val = qread()
-               if dev in (ESCKEY, WINQUIT, WINSHUT):
-                       break
-               if dev == REDRAW:
-                       reshapeviewport()
-               elif dev == KEYBD:
-                       if continuous:
-                               c = '0'
-                       else:
-                               c = chr(val)
-                       #XXX Debug
-                       if c == 'R':
-                               c3i(255,0,0)
-                               clear()
-                       if c == 'G':
-                               c3i(0,255,0)
-                               clear()
-                       if c == 'B':
-                               c3i(0,0,255)
-                               clear()
-                       if c == 'w' or continuous:
-                               if use_grabber:
-                                       data, cdata = ofilm.grabframe()
-                               if tomono:
-                                       data = imageop.grey2mono(data, \
-                                                 ifilm.width, ifilm.height, \
-                                                 treshold)
-                               if tomonodither:
-                                       data = imageop.dither2mono(data, \
-                                                 ifilm.width, ifilm.height)
-                               ofilm.writeframe(time, data, cdata)
-                               print 'Frame', iframe, 'written.'
-                       if c == 'n' or continuous:
-                               try:
-                                       time,data,cdata = ifilm.getnextframe()
-                                       ifilm.showframe(data, cdata)
-                                       iframe = iframe+1
-                                       report(time, iframe)
-                               except EOFError:
-                                       print 'EOF'
-                                       if continuous:
-                                               break
-                                       ringbell()
-               elif dev == INPUTCHANGE:
-                       pass
-               else:
-                       print '(dev, val) =', (dev, val)
-       ofilm.close()
-
-main()
diff --git a/Demo/sgi/video/video.py b/Demo/sgi/video/video.py
deleted file mode 100755 (executable)
index 1b81bd8..0000000
+++ /dev/null
@@ -1,218 +0,0 @@
-import getopt
-from gl import *
-from GL import *
-from DEVICE import *
-import time
-import sys
-import al
-import AL
-
-sys.path.append('/ufs/guido/src/video') # Increase chance to find colorsys
-import colorsys
-
-BUFFERSIZE = 32000
-
-class Struct(): pass
-epoch = Struct()
-epoch.correcttiming = 1
-EndOfFile = 'End of file'
-bye = 'bye'
-
-def openspkr():
-    conf = al.newconfig()
-    conf.setqueuesize(BUFFERSIZE)
-    conf.setwidth(AL.SAMPLE_16)
-    conf.setchannels(AL.MONO)
-    return al.openport('spkr','w',conf)
-
-def openvideo(name):
-    try:
-        f = open(name, 'r')
-    except:
-        sys.stderr.write(name + ': cannot open\n')
-        sys.exit(1)
-    line = f.readline()
-    if not line: raise EndOfFile
-    colorinfo = (8, 0, 0, 0)
-    if line[:4] == 'CMIF':
-       if line[:14] == 'CMIF video 2.0':
-           line = f.readline()
-           colorinfo = eval(line[:-1])
-       line = f.readline()
-    x = eval(line[:-1])
-    if len(x) == 3: w, h, pf = x
-    else: w, h = x; pf = 2
-    if pf and w/pf % 4 <> 0:
-        sys.stderr.write( \
-       'warning: stride not a multiple of 4 -- may not work on Indigo XS\n')
-    return f, w, h, pf, colorinfo
-
-def loadframe(f,w,h,pf,af,spkr, (ybits,ibits,qbits,chrompack),mf):
-    line = f.readline()
-    if line == '':
-       raise EndOfFile
-    x = eval(line[:-1])
-    if type(x) == type(0) or type(x) == type(0.0):
-       tijd = x
-       if pf == 0:
-               size = w*h*4
-       else:
-               size = (w/pf) * (h/pf)
-    else:
-       tijd, size = x
-    data = f.read(size)
-    if len(data) <> size:
-       raise EndOfFile
-    if pf:
-       w = w/pf
-       h = h/pf
-    if chrompack:
-       cw = (w+chrompack-1)/chrompack
-       ch = (h+chrompack-1)/chrompack
-       chromdata = f.read(2*cw*ch)
-       rectzoom(pf*chrompack*mf,pf*chrompack*mf)
-       pixmode(PM_SIZE,16)
-       writemask(0x7ff - ((1<<ybits)-1))
-       lrectwrite(0,0,cw-1,ch-1,chromdata)
-       writemask((1<<ybits)-1)
-       pixmode(PM_SIZE,8)
-    if pf:
-       rectzoom(pf*mf, pf*mf)
-    elif mf <> 1:
-       rectzoom(mf,mf)
-    lrectwrite(0,0,w-1,h-1,data)
-    # This is ugly here, but the only way to get the two
-    # channels started in sync
-    #if af <> None:
-    #  playsound(af,spkr)
-    ct = time.millitimer() - epoch.epoch
-    if epoch.correcttiming and tijd > 0 and ct < tijd:
-       time.millisleep(tijd-ct)
-    #swapbuffers()
-    return tijd
-
-def initcmap(ybits,ibits,qbits,chrompack):
-    if ybits+ibits+qbits > 11:
-       raise 'Sorry, 11 bits max'
-    maxy = pow(2,ybits)
-    maxi = pow(2,ibits)
-    maxq = pow(2,qbits)
-    for i in range(2048,4096-256):
-       mapcolor(i, 0, 255, 0)
-    for y in range(maxy):
-      yv = float(y)/float(maxy-1)
-      for i in range(maxi):
-       if maxi == 1: iv = 0
-       else: iv = (float(i)/float(maxi-1))-0.5
-       for q in range(maxq):
-         if maxq == 1: qv = 0
-         else: qv = (float(q)/float(maxq-1))-0.5
-         index = 2048 + y + (i << ybits) + (q << (ybits+ibits))
-         rv,gv,bv = colorsys.yiq_to_rgb(yv,iv,qv)
-         r,g,b = int(rv*255.0), int(gv*255.0), int(bv*255.0)
-         if index < 4096 - 256:
-             mapcolor(index, r,g,b)
-
-def playsound(af, spkr):
-    nsamp = spkr.getfillable()
-    data = af.read(nsamp*2)
-    spkr.writesamps(data)
-
-def main():
-       looping = 0
-       packfactor = 0
-       magfactor = 1
-       try:
-               opts, args = getopt.getopt(sys.argv[1:], 'm:p:lF')
-       except getopt.error:
-               sys.stderr.write('usage: video ' + \
-       '[-l] [-p pf] [-m mag] [-F] [moviefile [soundfile [skipbytes]]]\n')
-               sys.exit(2)
-       for opt, arg in opts:
-               if opt == '-m':
-                       magfactor = int(eval(arg))
-               elif opt == '-p':
-                       packfactor = int(eval(arg))
-               elif opt == '-l':
-                       looping = 1
-               elif opt == '-F':
-                       epoch.correcttiming = 0
-       if args:
-               filename = args[0]
-       else:
-               filename = 'film.video'
-       f, w, h, pf, cinfo = openvideo(filename)
-       if 0 < packfactor <> pf:
-               w = w/pf*packfactor
-               h = h/pf*packfactor
-               pf = packfactor
-       if args[1:]:
-               audiofilename = args[1]
-               af = open(audiofilename, 'r')
-               spkr = openspkr()
-               afskip = 0
-               if args[2:]:
-                       afskip = eval(args[2])
-               af.seek(afskip)
-       else:
-               af, spkr = None, None
-       foreground()
-       prefsize(w*magfactor,h*magfactor)
-       win = winopen(filename)
-       if pf:
-           #doublebuffer()
-           cmode()
-       else:
-           RGBmode()
-       #doublebuffer()
-       gconfig()
-       if pf:
-           initcmap(cinfo)
-           color(2048)
-           clear()
-           writemask(2047)
-           pixmode(PM_SIZE,8)  # 8 bit pixels
-       qdevice(ESCKEY)
-       qdevice(WINSHUT)
-       qdevice(WINQUIT)
-       running = 1
-       epoch.epoch = time.millitimer()
-       nframe = 0
-       tijd = 1
-       if looping:
-               looping = f.tell()
-       try:
-           while 1:
-               if running:
-                   try:
-                       tijd = loadframe(f, w, h, pf, af, spkr, cinfo,magfactor)
-                       nframe = nframe + 1
-                   except EndOfFile:
-                       running = 0
-                       t = time.millitimer()
-                       if tijd > 0:
-                               print 'Recorded at',
-                               print 0.1 * int(nframe * 10000.0 / tijd),
-                               print 'frames/sec'
-                       print 'Played', nframe, 'frames at',
-                       print 0.1 * int(nframe * 10000.0 / (t-epoch.epoch)),
-                       print 'frames/sec'
-                       if looping:
-                               f.seek(looping)
-                               epoch.epoch = time.millitimer()
-                               nframe = 0
-                               running = 1
-                               if af <> None:
-                                       af.seek(afskip)
-               if af <> None:
-                       playsound(af,spkr)
-               if not running or qtest():
-                   dev, val = qread()
-                   if dev in (ESCKEY, WINSHUT, WINQUIT):
-                       raise bye
-                   elif dev == REDRAW:
-                       reshapeviewport()
-       except bye:
-           pass
-
-main()
diff --git a/Demo/sgi/video/vinfo.py b/Demo/sgi/video/vinfo.py
deleted file mode 100755 (executable)
index 7f98237..0000000
+++ /dev/null
@@ -1,90 +0,0 @@
-from gl import *
-from GL import *
-from DEVICE import *
-import time
-import sys
-import getopt
-
-class Struct(): pass
-epoch = Struct()
-EndOfFile = 'End of file'
-bye = 'bye'
-
-def openvideo(filename):
-       f = open(filename, 'r')
-       line = f.readline()
-       if not line: raise EndOfFile
-       if line[:4] == 'CMIF': line = f.readline()
-       x = eval(line[:-1])
-       if len(x) == 3: w, h, pf = x
-       else: w, h = x; pf = 2
-       return f, w, h, pf
-
-def loadframe(f, w, h, pf):
-       line = f.readline()
-       if line == '':
-               raise EndOfFile
-       x = eval(line[:-1])
-       if type(x) == type(0) or type(x) == type(0.0):
-               tijd = x
-               if pf == 0:
-                       size = w*h*4
-               else:
-                       size = (w/pf) * (h/pf)
-       else:
-               tijd, size = x
-       f.seek(size, 1)
-       return tijd
-
-def main():
-       delta = 0
-       short = 0
-       try:
-               opts, names = getopt.getopt(sys.argv[1:], 'ds')
-       except getopt.error, msg:
-               sys.stderr.write(msg + '\n')
-               sys.stderr.write('usage: vinfo [-d] [-s] [file] ...\n')
-               sys.exit(2)
-       for opt, arg in opts:
-               if opt == '-d': delta = 1       # print delta between frames
-               elif opt == '-s': short = 1     # short: don't print times
-       if names == []:
-               names = ['film.video']
-       for name in names:
-           try:
-               f, w, h, pf = openvideo(name)
-           except:
-               sys.stderr.write(name + ': cannot open\n')
-               continue
-           if pf == 0:
-               size = w*h*4
-           else:
-               size = (w/pf) * (h/pf)
-           print name, ':', w, 'x', h, '; pf =', pf, ', size =', size,
-           if pf == 0:
-                   print '(color)',
-           else:
-                   print '(' + `(w/pf)` + 'x' + `(h/pf)` + ')',
-                   if (w/pf)%4 <> 0: print '!!!',
-           print
-           num = 0
-           try:
-               otijd = 0
-               while not short:
-                   try:
-                       tijd = loadframe(f, w, h, pf)
-                       if delta: print '\t' + `tijd-otijd`,
-                       else: print '\t' + `tijd`,
-                       otijd = tijd
-                       num = num + 1
-                       if num % 8 == 0:
-                               print
-                   except EndOfFile:
-                       raise bye
-           except bye:
-               pass
-           if num % 8 <> 0:
-               print
-           f.close()
-
-main()
diff --git a/Demo/sgi/video/vpregs.py b/Demo/sgi/video/vpregs.py
deleted file mode 100755 (executable)
index d33f1fe..0000000
+++ /dev/null
@@ -1,28 +0,0 @@
-VID_VP = 0x1000000
-
-# Set vp1 register tokens
-VP_GBXORG =                    (VID_VP +0x01)
-VP_GBYORG =                    (VID_VP +0x02)
-VP_FBXORG =                    (VID_VP +0x03)
-VP_FBYORG =                    (VID_VP +0x04)
-VP_WIDTH =                     (VID_VP +0x05)
-VP_HEIGHT =                    (VID_VP +0x06)
-VP_PIXCNT =                    (VID_VP +0x07)
-VP_HBLANK =                    (VID_VP +0x08)
-VP_VBLANK =                    (VID_VP +0x09)
-VP_BRITE =                     (VID_VP +0x0A)
-VP_CONT =                              (VID_VP +0x0B)
-VP_HUE =                       (VID_VP +0x0C)
-VP_SAT =                       (VID_VP +0x0D)
-VP_ALPHA =                     (VID_VP +0X0E)
-VP_FGMODE =                    (VID_VP +0x0F)
-VP_MAPSRC =                    (VID_VP +0x10)
-VP_MAPADD =                    (VID_VP +0x11)
-VP_MAPRED =                    (VID_VP +0x12)
-VP_MAPGREEN =                  (VID_VP +0x13)
-VP_MAPBLUE =                   (VID_VP +0x14)
-VP_MAPSTROBE =                 (VID_VP +0x15)
-VP_DIGVAL =                    (VID_VP +0x16)
-VP_STATUS0 =                   (VID_VP +0x17)
-VP_STATUS1 =                   (VID_VP +0x18)
-VP_CMD =                       (VID_VP +0x19)
diff --git a/Demo/sgi/video/vtime.py b/Demo/sgi/video/vtime.py
deleted file mode 100755 (executable)
index c333e57..0000000
+++ /dev/null
@@ -1,106 +0,0 @@
-#
-# Module vtime - Keep virtual time between two nodes.
-#
-# We try for synchronised clocks by sending a packet of the for
-# (1,mytime,0) to the other side, and waiting (at most) a second for
-# a reply. This reply has the form (2,mytime,histime), and we can
-# estimate the time difference by defining histime to be exactly half-way
-# between the time we sent our message and got our reply. We send a
-# final (3,mynewtime,histime) message to allow the other side to do the
-# same computations.
-#
-# Note that the protocol suffers heavily from the 2-army problem.
-# It'll have to do until I can read up on time-sync protocols, though.
-#
-from socket import *
-import time
-
-MSGSIZE = 100
-MSGTIMEOUT = 1000
-
-recv_timeout = 'receive timeout'
-bad_connect = 'Bad connection'
-
-def timeavg(a,b):
-    return int((long(a)+b)/2L)
-def tryrecv(s):
-    cnt = 0
-    while 1:
-       if s.avail():
-           return s.recvfrom(MSGSIZE)
-       time.millisleep(100)
-       cnt = cnt + 100
-       if cnt > MSGTIMEOUT:
-           raise recv_timeout
-
-class VTime():
-    def init(self,(client,host,port)):
-       s = socket(AF_INET, SOCK_DGRAM)
-       host = gethostbyname(host)
-       localhost = gethostbyname(gethostname())
-       raddr = (host,port)
-       s.bind((localhost,port))
-       if client:
-           #
-           # We loop here because we want the *second* measurement
-           # for accuracy
-           for loopct in (0,2):
-               curtijd = time.millitimer()
-               check = `(loopct,curtijd,0)`
-               s.sendto(check,raddr)
-               while 1:
-                   try:
-                       if loopct:
-                           data, other = s.recvfrom(MSGSIZE)
-                       else:
-                           data, other = tryrecv(s)
-                       newtijd = time.millitimer()
-                       if other <> raddr:
-                           print 'Someone else syncing to us: ', other
-                           raise bad_connect
-                       data = eval(data)
-                       if data[:2] == (loopct+1,curtijd):
-                           break
-                       if data[0] <> 2:
-                           print 'Illegal sync reply: ', data
-                           raise bad_connect
-                   except recv_timeout:
-                       curtijd = time.millitimer()
-                       check = `(loopct,curtijd,0)`
-                       s.sendto(check,raddr)
-           histime = data[2]
-           s.sendto(`(4,newtijd,histime)`,raddr)
-           mytime = timeavg(curtijd,newtijd)
-           #mytime = curtijd
-           self.timediff = histime - mytime
-       else:
-           while 1:
-               data,other = s.recvfrom(MSGSIZE)
-               if other <> raddr:
-                   print 'Someone else syncing to us: ', other, ' Wanted ', raddr
-                   raise bad_connect
-               data = eval(data)
-               if data[0] in (0,2):
-                   curtijd = time.millitimer()
-                   s.sendto(`(data[0]+1,data[1],curtijd)`,raddr)
-               elif data[0] == 4:
-                   newtijd = time.millitimer()
-                   histime = data[1]
-                   mytime = timeavg(curtijd,newtijd)
-                   #mytime = curtijd
-                   self.timediff = histime-mytime
-                   break
-               else:
-                   print 'Funny data: ', data
-                   raise bad_connect
-       return self
-       #
-    def his2mine(self,tijd):
-       return tijd - self.timediff
-    #
-    def mine2his(self, tijd):
-       return tijd + self.timediff
-
-def test(clt, host, port):
-    xx = VTime().init(clt,host,port)
-    print 'Time diff: ', xx.his2mine(0)
diff --git a/Demo/sockets/ChangeLog b/Demo/sockets/ChangeLog
deleted file mode 100755 (executable)
index c1d41b1..0000000
+++ /dev/null
@@ -1,35 +0,0 @@
-Mon Nov 16 17:55:30 1992  Guido van Rossum  (guido@voorn.cwi.nl)
-
-* Restructured mcast.
-
-Tue Nov  3 13:08:41 1992  Guido van Rossum  (guido@voorn.cwi.nl)
-
-* Fixed ftp.py to use 'global' instead of a hack
-
-25-Oct-1992
-
-* Added gopher.py
-
-2-Oct-1992
-
-* Changed /usr/local/python to /usr/local/bin/python
-
-Thu Sep 24 12:33:56 1992  Guido van Rossum  (guido@voorn.cwi.nl)
-
-* Improved computation of mcast group bytes (use regsub.gsub())
-
-Tue Sep  8 23:20:51 1992  Guido van Rossum  (guido@voorn.cwi.nl)
-
-* Added mcast.py and IN.py.
-
-* Use setsockopt() instead of allowbroadcast() in broadcast.py.
-
-Mon Aug 10 12:45:43 1992  Guido van Rossum  (guido@voorn.cwi.nl)
-
-* README: added broadcast.py, ftp.py, radio.py
-
--------------------------------------------------------------------------------
-^^^ Log entries after release of 0.9.6 ^^^
--------------------------------------------------------------------------------
-
-
diff --git a/Demo/tkinter/Tree.py b/Demo/tkinter/Tree.py
deleted file mode 100644 (file)
index 010fbd4..0000000
+++ /dev/null
@@ -1,23 +0,0 @@
-from Tkinter import *
-
-class Tree:
-
-       def __init__(self, master, cnf = {}):
-               self.master = master
-               self.outerframe = Frame(self.master,
-                                       {'name': 'outerframe',
-                                        Pack: {},
-                                        })
-               self.innerframe = Frame(self.outerframe,
-                                       {'name': 'innerframe',
-                                        Pack: {'side': 'left',
-                                               'fill': 'y'},
-                                        })
-               self.button = Menubutton(self.innerframe,
-                                        {'name': 'button',
-                                         Pack: {},
-                                         })
-               # menu?
-
-       def addchild(self):
-               return Tree(self.outerframe, {})
diff --git a/Doc/libmods.tex b/Doc/libmods.tex
deleted file mode 100755 (executable)
index 5bc6ee2..0000000
+++ /dev/null
@@ -1,7 +0,0 @@
-\chapter{Built-in Modules}
-
-The modules described in this chapter are built into the interpreter
-and considered part of Python's standard environment: they are always
-available.\footnote{at least in theory --- it is possible to specify
-at build time that one or more of these modules should be excluded,
-but it would be antisocial to do so.}
diff --git a/Doc/libstd.tex b/Doc/libstd.tex
deleted file mode 100755 (executable)
index e642a8d..0000000
+++ /dev/null
@@ -1,7 +0,0 @@
-\chapter{Standard Modules}
-
-The modules described in this chapter are implemented in Python, but
-are considered to be a part of Python's standard environment: they are
-always available.\footnote{at least in theory --- it is possible to
-botch the library installation or to sabotage the module search path
-so that these modules cannot be found.}
diff --git a/Doc/whatsnew/whatsnew20.tex b/Doc/whatsnew/whatsnew20.tex
deleted file mode 100644 (file)
index 4817dcf..0000000
+++ /dev/null
@@ -1,1335 +0,0 @@
-\documentclass{howto}
-
-% $Id$
-
-\title{What's New in Python 2.0}
-\release{1.01}
-\author{A.M. Kuchling and Moshe Zadka}
-\authoraddress{\email{amk1@bigfoot.com}, \email{moshez@math.huji.ac.il} }
-\begin{document}
-\maketitle\tableofcontents
-
-\section{Introduction}
-
-A new release of Python, version 2.0, will be released some time this
-autumn.  Beta versions are already available from
-\url{http://www.pythonlabs.com/products/python2.0/}.  This article
-covers the exciting new features in 2.0, highlights some other useful
-changes, and points out a few incompatible changes that may require
-rewriting code.
-
-Python's development never completely stops between releases, and a
-steady flow of bug fixes and improvements are always being submitted.
-A host of minor fixes, a few optimizations, additional docstrings, and
-better error messages went into 2.0; to list them all would be
-impossible, but they're certainly significant.  Consult the
-publicly-available CVS logs if you want to see the full list.  This
-progress is due to the five developers working for 
-PythonLabs are now getting paid to spend their days fixing bugs,
-and also due to the improved communication resulting 
-from moving to SourceForge.
-
-% ======================================================================
-\section{What About Python 1.6?}
-
-Python 1.6 can be thought of as the Contractual Obligations Python
-release.  After the core development team left CNRI in May 2000, CNRI
-requested that a 1.6 release be created, containing all the work on
-Python that had been performed at CNRI.  Python 1.6 therefore
-represents the state of the CVS tree as of May 2000, with the most
-significant new feature being Unicode support.  Development continued
-after May, of course, so the 1.6 tree received a few fixes to ensure
-that it's forward-compatible with Python 2.0.  1.6 is therefore part
-of Python's evolution, and not a side branch.
-
-So, should you take much interest in Python 1.6?  Probably not.  The
-1.6final and 2.0beta1 releases were made on the same day (September 5,
-2000), the plan being to finalize Python 2.0 within a month or so.  If
-you have applications to maintain, there seems little point in
-breaking things by moving to 1.6, fixing them, and then having another
-round of breakage within a month by moving to 2.0; you're better off
-just going straight to 2.0.  Most of the really interesting features
-described in this document are only in 2.0, because a lot of work was
-done between May and September.  
-
-% ======================================================================
-\section{New Development Process}
-
-The most important change in Python 2.0 may not be to the code at all,
-but to how Python is developed: in May 2000 the Python developers
-began using the tools made available by SourceForge for storing 
-source code, tracking bug reports, and managing the queue of patch
-submissions.  To report bugs or submit patches for Python 2.0, use the
-bug tracking and patch manager tools available from Python's project
-page, located at \url{http://sourceforge.net/projects/python/}.
-
-The most important of the services now hosted at SourceForge is the
-Python CVS tree, the version-controlled repository containing the
-source code for Python.  Previously, there were roughly 7 or so people
-who had write access to the CVS tree, and all patches had to be
-inspected and checked in by one of the people on this short list.
-Obviously, this wasn't very scalable.  By moving the CVS tree to
-SourceForge, it became possible to grant write access to more people;
-as of September 2000 there were 27 people able to check in changes, a
-fourfold increase.  This makes possible large-scale changes that
-wouldn't be attempted if they'd have to be filtered through the small
-group of core developers.  For example, one day Peter Schneider-Kamp
-took it into his head to drop K\&R C compatibility and convert the C
-source for Python to ANSI C. After getting approval on the python-dev
-mailing list, he launched into a flurry of checkins that lasted about
-a week, other developers joined in to help, and the job was done.  If
-there were only 5 people with write access, probably that task would
-have been viewed as ``nice, but not worth the time and effort needed''
-and it would never have gotten done.
-
-The shift to using SourceForge's services has resulted in a remarkable
-increase in the speed of development.  Patches now get submitted,
-commented on, revised by people other than the original submitter, and
-bounced back and forth between people until the patch is deemed worth
-checking in.  Bugs are tracked in one central location and can be
-assigned to a specific person for fixing, and we can count the number
-of open bugs to measure progress.  This didn't come without a cost:
-developers now have more e-mail to deal with, more mailing lists to
-follow, and special tools had to be written for the new environment.
-For example, SourceForge sends default patch and bug notification
-e-mail messages that are completely unhelpful, so Ka-Ping Yee wrote an
-HTML screen-scraper that sends more useful messages.
-
-The ease of adding code caused a few initial growing pains, such as
-code was checked in before it was ready or without getting clear
-agreement from the developer group.  The approval process that has
-emerged is somewhat similar to that used by the Apache group.
-Developers can vote +1, +0, -0, or -1 on a patch; +1 and -1 denote
-acceptance or rejection, while +0 and -0 mean the developer is mostly
-indifferent to the change, though with a slight positive or negative
-slant.  The most significant change from the Apache model is that the
-voting is essentially advisory, letting Guido van Rossum, who has
-Benevolent Dictator For Life status, know what the general opinion is.
-He can still ignore the result of a vote, and approve or
-reject a change even if the community disagrees with him.
-
-Producing an actual patch is the last step in adding a new feature,
-and is usually easy compared to the earlier task of coming up with a
-good design.  Discussions of new features can often explode into
-lengthy mailing list threads, making the discussion hard to follow,
-and no one can read every posting to python-dev.  Therefore, a
-relatively formal process has been set up to write Python Enhancement
-Proposals (PEPs), modelled on the Internet RFC process.  PEPs are
-draft documents that describe a proposed new feature, and are
-continually revised until the community reaches a consensus, either
-accepting or rejecting the proposal.  Quoting from the introduction to
-PEP 1, ``PEP Purpose and Guidelines'':
-
-\begin{quotation}
-    PEP stands for Python Enhancement Proposal.  A PEP is a design
-    document providing information to the Python community, or
-    describing a new feature for Python.  The PEP should provide a
-    concise technical specification of the feature and a rationale for
-    the feature.
-
-    We intend PEPs to be the primary mechanisms for proposing new
-    features, for collecting community input on an issue, and for
-    documenting the design decisions that have gone into Python.  The
-    PEP author is responsible for building consensus within the
-    community and documenting dissenting opinions.
-\end{quotation}
-
-Read the rest of PEP 1 for the details of the PEP editorial process,
-style, and format.  PEPs are kept in the Python CVS tree on
-SourceForge, though they're not part of the Python 2.0 distribution,
-and are also available in HTML form from
-\url{http://python.sourceforge.net/peps/}.  As of September 2000,
-there are 25 PEPS, ranging from PEP 201, ``Lockstep Iteration'', to
-PEP 225, ``Elementwise/Objectwise Operators''.
-
-% ======================================================================
-\section{Unicode}
-
-The largest new feature in Python 2.0 is a new fundamental data type:
-Unicode strings.  Unicode uses 16-bit numbers to represent characters
-instead of the 8-bit number used by ASCII, meaning that 65,536
-distinct characters can be supported.
-
-The final interface for Unicode support was arrived at through
-countless often-stormy discussions on the python-dev mailing list, and
-mostly implemented by Marc-Andr\'e Lemburg, based on a Unicode string
-type implementation by Fredrik Lundh.  A detailed explanation of the
-interface is in the file \file{Misc/unicode.txt} in the Python source
-distribution; it's also available on the Web at
-\url{http://starship.python.net/crew/lemburg/unicode-proposal.txt}.
-This article will simply cover the most significant points about the Unicode 
-interfaces.
-
-In Python source code, Unicode strings are written as
-\code{u"string"}.  Arbitrary Unicode characters can be written using a
-new escape sequence, \code{\e u\var{HHHH}}, where \var{HHHH} is a
-4-digit hexadecimal number from 0000 to FFFF.  The existing
-\code{\e x\var{HHHH}} escape sequence can also be used, and octal
-escapes can be used for characters up to U+01FF, which is represented
-by \code{\e 777}.
-
-Unicode strings, just like regular strings, are an immutable sequence
-type.  They can be indexed and sliced, but not modified in place.
-Unicode strings have an \method{encode( \optional{encoding} )} method
-that returns an 8-bit string in the desired encoding.  Encodings are
-named by strings, such as \code{'ascii'}, \code{'utf-8'},
-\code{'iso-8859-1'}, or whatever.  A codec API is defined for
-implementing and registering new encodings that are then available
-throughout a Python program.  If an encoding isn't specified, the
-default encoding is usually 7-bit ASCII, though it can be changed for
-your Python installation by calling the
-\function{sys.setdefaultencoding(\var{encoding})} function in a
-customised version of \file{site.py}.
-
-Combining 8-bit and Unicode strings always coerces to Unicode, using
-the default ASCII encoding; the result of \code{'a' + u'bc'} is
-\code{u'abc'}.
-
-New built-in functions have been added, and existing built-ins
-modified to support Unicode:
-
-\begin{itemize}
-\item \code{unichr(\var{ch})} returns a Unicode string 1 character
-long, containing the character \var{ch}.
-
-\item \code{ord(\var{u})}, where \var{u} is a 1-character regular or Unicode string, returns the number of the character as an integer.
-
-\item \code{unicode(\var{string} \optional{, \var{encoding}} 
-\optional{, \var{errors}} ) } creates a Unicode string from an 8-bit
-string.  \code{encoding} is a string naming the encoding to use.
-The \code{errors} parameter specifies the treatment of characters that
-are invalid for the current encoding; passing \code{'strict'} as the
-value causes an exception to be raised on any encoding error, while
-\code{'ignore'} causes errors to be silently ignored and
-\code{'replace'} uses U+FFFD, the official replacement character, in
-case of any problems.
-
-\item The \keyword{exec} statement, and various built-ins such as
-\code{eval()}, \code{getattr()}, and \code{setattr()} will also
-accept Unicode strings as well as regular strings.  (It's possible
-that the process of fixing this missed some built-ins; if you find a
-built-in function that accepts strings but doesn't accept Unicode
-strings at all, please report it as a bug.)
-
-\end{itemize}
-
-A new module, \module{unicodedata}, provides an interface to Unicode
-character properties.  For example, \code{unicodedata.category(u'A')}
-returns the 2-character string 'Lu', the 'L' denoting it's a letter,
-and 'u' meaning that it's uppercase.
-\code{u.bidirectional(u'\e x0660')} returns 'AN', meaning that U+0660 is
-an Arabic number.
-
-The \module{codecs} module contains functions to look up existing encodings
-and register new ones.  Unless you want to implement a
-new encoding, you'll most often use the
-\function{codecs.lookup(\var{encoding})} function, which returns a
-4-element tuple: \code{(\var{encode_func},
-\var{decode_func}, \var{stream_reader}, \var{stream_writer})}.
-
-\begin{itemize}
-\item \var{encode_func} is a function that takes a Unicode string, and
-returns a 2-tuple \code{(\var{string}, \var{length})}.  \var{string}
-is an 8-bit string containing a portion (perhaps all) of the Unicode
-string converted into the given encoding, and \var{length} tells you
-how much of the Unicode string was converted.
-
-\item \var{decode_func} is the opposite of \var{encode_func}, taking
-an 8-bit string and returning a 2-tuple \code{(\var{ustring},
-\var{length})}, consisting of the resulting Unicode string
-\var{ustring} and the integer \var{length} telling how much of the
-8-bit string was consumed.
-
-\item \var{stream_reader} is a class that supports decoding input from
-a stream.  \var{stream_reader(\var{file_obj})} returns an object that
-supports the \method{read()}, \method{readline()}, and
-\method{readlines()} methods.  These methods will all translate from
-the given encoding and return Unicode strings.
-
-\item \var{stream_writer}, similarly, is a class that supports
-encoding output to a stream.  \var{stream_writer(\var{file_obj})}
-returns an object that supports the \method{write()} and
-\method{writelines()} methods.  These methods expect Unicode strings,
-translating them to the given encoding on output.
-\end{itemize}
-
-For example, the following code writes a Unicode string into a file, 
-encoding it as UTF-8:
-
-\begin{verbatim}
-import codecs
-
-unistr = u'\u0660\u2000ab ...'
-
-(UTF8_encode, UTF8_decode,
- UTF8_streamreader, UTF8_streamwriter) = codecs.lookup('UTF-8')
-
-output = UTF8_streamwriter( open( '/tmp/output', 'wb') )
-output.write( unistr )
-output.close()
-\end{verbatim}
-
-The following code would then read UTF-8 input from the file:
-
-\begin{verbatim}
-input = UTF8_streamreader( open( '/tmp/output', 'rb') )
-print repr(input.read())
-input.close()
-\end{verbatim}
-
-Unicode-aware regular expressions are available through the
-\module{re} module, which has a new underlying implementation called
-SRE written by Fredrik Lundh of Secret Labs AB. 
-
-A \code{-U} command line option was added which causes the Python
-compiler to interpret all string literals as Unicode string literals.
-This is intended to be used in testing and future-proofing your Python
-code, since some future version of Python may drop support for 8-bit
-strings and provide only Unicode strings.
-
-% ======================================================================
-\section{List Comprehensions}
-
-Lists are a workhorse data type in Python, and many programs
-manipulate a list at some point.  Two common operations on lists are
-to loop over them, and either pick out the elements that meet a
-certain criterion, or apply some function to each element.  For
-example, given a list of strings, you might want to pull out all the
-strings containing a given substring, or strip off trailing whitespace
-from each line.  
-
-The existing \function{map()} and \function{filter()} functions can be
-used for this purpose, but they require a function as one of their
-arguments.  This is fine if there's an existing built-in function that
-can be passed directly, but if there isn't, you have to create a
-little function to do the required work, and Python's scoping rules
-make the result ugly if the little function needs additional
-information.  Take the first example in the previous paragraph,
-finding all the strings in the list containing a given substring.  You
-could write the following to do it:
-
-\begin{verbatim}
-# Given the list L, make a list of all strings 
-# containing the substring S.
-sublist = filter( lambda s, substring=S: 
-                     string.find(s, substring) != -1,
-                 L)
-\end{verbatim}
-
-Because of Python's scoping rules, a default argument is used so that
-the anonymous function created by the \keyword{lambda} statement knows
-what substring is being searched for.  List comprehensions make this
-cleaner:
-
-\begin{verbatim}
-sublist = [ s for s in L if string.find(s, S) != -1 ]
-\end{verbatim}
-
-List comprehensions have the form:
-
-\begin{verbatim}
-[ expression for expr in sequence1 
-             for expr2 in sequence2 ...
-            for exprN in sequenceN
-             if condition
-\end{verbatim}
-
-The \keyword{for}...\keyword{in} clauses contain the sequences to be
-iterated over.  The sequences do not have to be the same length,
-because they are \emph{not} iterated over in parallel, but
-from left to right; this is explained more clearly in the following
-paragraphs.  The elements of the generated list will be the successive
-values of \var{expression}.  The final \keyword{if} clause is
-optional; if present, \var{expression} is only evaluated and added to
-the result if \var{condition} is true.
-
-To make the semantics very clear, a list comprehension is equivalent
-to the following Python code:
-
-\begin{verbatim}
-for expr1 in sequence1:
-    for expr2 in sequence2:
-    ...
-        for exprN in sequenceN:
-             if (condition):
-                  # Append the value of 
-                  # the expression to the 
-                  # resulting list.
-\end{verbatim}
-
-This means that when there are \keyword{for}...\keyword{in} clauses,
-the resulting list will be equal to the product of the lengths of all
-the sequences.  If you have two lists of length 3, the output list is
-9 elements long:
-
-\begin{verbatim}
-seq1 = 'abc'
-seq2 = (1,2,3)
->>> [ (x,y) for x in seq1 for y in seq2]
-[('a', 1), ('a', 2), ('a', 3), ('b', 1), ('b', 2), ('b', 3), ('c', 1),
-('c', 2), ('c', 3)]
-\end{verbatim}
-
-To avoid introducing an ambiguity into Python's grammar, if
-\var{expression} is creating a tuple, it must be surrounded with
-parentheses.  The first list comprehension below is a syntax error,
-while the second one is correct:
-
-\begin{verbatim}
-# Syntax error
-[ x,y for x in seq1 for y in seq2]
-# Correct
-[ (x,y) for x in seq1 for y in seq2]
-\end{verbatim}
-
-The idea of list comprehensions originally comes from the functional
-programming language Haskell (\url{http://www.haskell.org}).  Greg
-Ewing argued most effectively for adding them to Python and wrote the
-initial list comprehension patch, which was then discussed for a
-seemingly endless time on the python-dev mailing list and kept
-up-to-date by Skip Montanaro.
-
-% ======================================================================
-\section{Augmented Assignment}
-
-Augmented assignment operators, another long-requested feature, have
-been added to Python 2.0.  Augmented assignment operators include
-\code{+=}, \code{-=}, \code{*=}, and so forth.  For example, the
-statement \code{a += 2} increments the value of the variable 
-\code{a} by 2, equivalent to the slightly lengthier \code{a = a + 2}.
-
-The full list of supported assignment operators is \code{+=},
-\code{-=}, \code{*=}, \code{/=}, \code{\%=}, \code{**=}, \code{\&=},
-\code{|=}, \verb|^=|, \code{>>=}, and \code{<<=}.  Python classes can
-override the augmented assignment operators by defining methods named
-\method{__iadd__}, \method{__isub__}, etc.  For example, the following
-\class{Number} class stores a number and supports using += to create a
-new instance with an incremented value.
-
-\begin{verbatim}
-class Number:
-    def __init__(self, value):
-        self.value = value
-    def __iadd__(self, increment):
-       return Number( self.value + increment)
-
-n = Number(5)
-n += 3
-print n.value
-\end{verbatim}
-
-The \method{__iadd__} special method is called with the value of the
-increment, and should return a new instance with an appropriately
-modified value; this return value is bound as the new value of the
-variable on the left-hand side. 
-
-Augmented assignment operators were first introduced in the C
-programming language, and most C-derived languages, such as
-\program{awk}, C++, Java, Perl, and PHP also support them.  The augmented
-assignment patch was implemented by Thomas Wouters.
-
-% ======================================================================
-\section{String Methods}
-
-Until now string-manipulation functionality was in the \module{string}
-module, which was usually a front-end for the \module{strop}
-module written in C.  The addition of Unicode posed a difficulty for
-the \module{strop} module, because the functions would all need to be
-rewritten in order to accept either 8-bit or Unicode strings.  For
-functions such as \function{string.replace()}, which takes 3 string
-arguments, that means eight possible permutations, and correspondingly
-complicated code.
-
-Instead, Python 2.0 pushes the problem onto the string type, making
-string manipulation functionality available through methods on both
-8-bit strings and Unicode strings.  
-
-\begin{verbatim}
->>> 'andrew'.capitalize()
-'Andrew'
->>> 'hostname'.replace('os', 'linux')
-'hlinuxtname'
->>> 'moshe'.find('sh')
-2
-\end{verbatim}
-
-One thing that hasn't changed, a noteworthy April Fools' joke
-notwithstanding, is that Python strings are immutable. Thus, the
-string methods return new strings, and do not modify the string on
-which they operate.
-
-The old \module{string} module is still around for backwards
-compatibility, but it mostly acts as a front-end to the new string
-methods.
-
-Two methods which have no parallel in pre-2.0 versions, although they
-did exist in JPython for quite some time, are \method{startswith()}
-and \method{endswith}.  \code{s.startswith(t)} is equivalent to \code{s[:len(t)]
-== t}, while \code{s.endswith(t)} is equivalent to \code{s[-len(t):] == t}.
-
-One other method which deserves special mention is \method{join}.  The
-\method{join} method of a string receives one parameter, a sequence of
-strings, and is equivalent to the \function{string.join} function from
-the old \module{string} module, with the arguments reversed. In other
-words, \code{s.join(seq)} is equivalent to the old
-\code{string.join(seq, s)}.
-
-% ======================================================================
-\section{Garbage Collection of Cycles}
-
-The C implementation of Python uses reference counting to implement
-garbage collection.  Every Python object maintains a count of the
-number of references pointing to itself, and adjusts the count as
-references are created or destroyed.  Once the reference count reaches
-zero, the object is no longer accessible, since you need to have a
-reference to an object to access it, and if the count is zero, no
-references exist any longer.  
-
-Reference counting has some pleasant properties: it's easy to
-understand and implement, and the resulting implementation is
-portable, fairly fast, and reacts well with other libraries that
-implement their own memory handling schemes.  The major problem with
-reference counting is that it sometimes doesn't realise that objects
-are no longer accessible, resulting in a memory leak.  This happens
-when there are cycles of references.
-
-Consider the simplest possible cycle, 
-a class instance which has a reference to itself:
-
-\begin{verbatim}
-instance = SomeClass()
-instance.myself = instance
-\end{verbatim}
-
-After the above two lines of code have been executed, the reference
-count of \code{instance} is 2; one reference is from the variable
-named \samp{'instance'}, and the other is from the \samp{myself}
-attribute of the instance.  
-
-If the next line of code is \code{del instance}, what happens?  The
-reference count of \code{instance} is decreased by 1, so it has a
-reference count of 1; the reference in the \samp{myself} attribute
-still exists.  Yet the instance is no longer accessible through Python
-code, and it could be deleted.  Several objects can participate in a
-cycle if they have references to each other, causing all of the
-objects to be leaked.
-
-Python 2.0 fixes this problem by periodically executing a cycle
-detection algorithm which looks for inaccessible cycles and deletes
-the objects involved.  A new \module{gc} module provides functions to
-perform a garbage collection, obtain debugging statistics, and tuning
-the collector's parameters.
-
-Running the cycle detection algorithm takes some time, and therefore
-will result in some additional overhead.  It is hoped that after we've
-gotten experience with the cycle collection from using 2.0, Python 2.1
-will be able to minimize the overhead with careful tuning.  It's not
-yet obvious how much performance is lost, because benchmarking this is
-tricky and depends crucially on how often the program creates and
-destroys objects.  The detection of cycles can be disabled when Python
-is compiled, if you can't afford even a tiny speed penalty or suspect
-that the cycle collection is buggy, by specifying the
-\samp{--without-cycle-gc} switch when running the \file{configure}
-script.
-
-Several people tackled this problem and contributed to a solution.  An
-early implementation of the cycle detection approach was written by
-Toby Kelsey.  The current algorithm was suggested by Eric Tiedemann
-during a visit to CNRI, and Guido van Rossum and Neil Schemenauer
-wrote two different implementations, which were later integrated by
-Neil.  Lots of other people offered suggestions along the way; the
-March 2000 archives of the python-dev mailing list contain most of the
-relevant discussion, especially in the threads titled ``Reference
-cycle collection for Python'' and ``Finalization again''.
-
-% ======================================================================
-\section{Other Core Changes}
-
-Various minor changes have been made to Python's syntax and built-in
-functions.  None of the changes are very far-reaching, but they're
-handy conveniences.
-
-\subsection{Minor Language Changes}
-
-A new syntax makes it more convenient to call a given function
-with a tuple of arguments and/or a dictionary of keyword arguments.
-In Python 1.5 and earlier, you'd use the \function{apply()}
-built-in function: \code{apply(f, \var{args}, \var{kw})} calls the
-function \function{f()} with the argument tuple \var{args} and the
-keyword arguments in the dictionary \var{kw}.  \function{apply()} 
-is the same in 2.0, but thanks to a patch from
-Greg Ewing, \code{f(*\var{args}, **\var{kw})} as a shorter
-and clearer way to achieve the same effect.  This syntax is
-symmetrical with the syntax for defining functions:
-
-\begin{verbatim}
-def f(*args, **kw):
-    # args is a tuple of positional args,
-    # kw is a dictionary of keyword args
-    ...
-\end{verbatim}
-
-The \keyword{print} statement can now have its output directed to a
-file-like object by following the \keyword{print} with 
-\verb|>> file|, similar to the redirection operator in Unix shells.
-Previously you'd either have to use the \method{write()} method of the
-file-like object, which lacks the convenience and simplicity of
-\keyword{print}, or you could assign a new value to 
-\code{sys.stdout} and then restore the old value.  For sending output to standard error,
-it's much easier to write this:
-
-\begin{verbatim}
-print >> sys.stderr, "Warning: action field not supplied"
-\end{verbatim}
-
-Modules can now be renamed on importing them, using the syntax
-\code{import \var{module} as \var{name}} or \code{from \var{module}
-import \var{name} as \var{othername}}.  The patch was submitted by
-Thomas Wouters.
-
-A new format style is available when using the \code{\%} operator;
-'\%r' will insert the \function{repr()} of its argument.  This was
-also added from symmetry considerations, this time for symmetry with
-the existing '\%s' format style, which inserts the \function{str()} of
-its argument.  For example, \code{'\%r \%s' \% ('abc', 'abc')} returns a
-string containing \verb|'abc' abc|.
-
-Previously there was no way to implement a class that overrode
-Python's built-in \keyword{in} operator and implemented a custom
-version.  \code{\var{obj} in \var{seq}} returns true if \var{obj} is
-present in the sequence \var{seq}; Python computes this by simply
-trying every index of the sequence until either \var{obj} is found or
-an \exception{IndexError} is encountered.  Moshe Zadka contributed a
-patch which adds a \method{__contains__} magic method for providing a
-custom implementation for \keyword{in}. Additionally, new built-in
-objects written in C can define what \keyword{in} means for them via a
-new slot in the sequence protocol.
-
-Earlier versions of Python used a recursive algorithm for deleting
-objects.  Deeply nested data structures could cause the interpreter to
-fill up the C stack and crash; Christian Tismer rewrote the deletion
-logic to fix this problem.  On a related note, comparing recursive
-objects recursed infinitely and crashed; Jeremy Hylton rewrote the
-code to no longer crash, producing a useful result instead.  For
-example, after this code:
-
-\begin{verbatim}
-a = []
-b = []
-a.append(a)
-b.append(b)
-\end{verbatim}
-
-The comparison \code{a==b} returns true, because the two recursive
-data structures are isomorphic. See the thread ``trashcan
-and PR\#7'' in the April 2000 archives of the python-dev mailing list
-for the discussion leading up to this implementation, and some useful
-relevant links.  
-% Starting URL:
-% http://www.python.org/pipermail/python-dev/2000-April/004834.html
-
-Note that comparisons can now also raise exceptions. In earlier
-versions of Python, a comparison operation such as \code{cmp(a,b)}
-would always produce an answer, even if a user-defined
-\method{__cmp__} method encountered an error, since the resulting
-exception would simply be silently swallowed.
-
-Work has been done on porting Python to 64-bit Windows on the Itanium
-processor, mostly by Trent Mick of ActiveState.  (Confusingly,
-\code{sys.platform} is still \code{'win32'} on Win64 because it seems
-that for ease of porting, MS Visual C++ treats code as 32 bit on Itanium.)
-PythonWin also supports Windows CE; see the Python CE page at
-\url{http://starship.python.net/crew/mhammond/ce/} for more
-information.
-
-Another new platform is Darwin/MacOS X; inital support for it is in
-Python 2.0.  Dynamic loading works, if you specify ``configure
---with-dyld --with-suffix=.x''.  Consult the README in the Python
-source distribution for more instructions.
-
-An attempt has been made to alleviate one of Python's warts, the
-often-confusing \exception{NameError} exception when code refers to a
-local variable before the variable has been assigned a value.  For
-example, the following code raises an exception on the \keyword{print}
-statement in both 1.5.2 and 2.0; in 1.5.2 a \exception{NameError}
-exception is raised, while 2.0 raises a new
-\exception{UnboundLocalError} exception.
-\exception{UnboundLocalError} is a subclass of \exception{NameError},
-so any existing code that expects \exception{NameError} to be raised
-should still work.
-
-\begin{verbatim}
-def f():
-    print "i=",i
-    i = i + 1 
-f()
-\end{verbatim}
-
-Two new exceptions, \exception{TabError} and
-\exception{IndentationError}, have been introduced.  They're both
-subclasses of \exception{SyntaxError}, and are raised when Python code
-is found to be improperly indented.
-
-\subsection{Changes to Built-in Functions}
-
-A new built-in, \function{zip(\var{seq1}, \var{seq2}, ...)}, has been
-added.  \function{zip()} returns a list of tuples where each tuple
-contains the i-th element from each of the argument sequences.  The
-difference between \function{zip()} and \code{map(None, \var{seq1},
-\var{seq2})} is that \function{map()} pads the sequences with
-\code{None} if the sequences aren't all of the same length, while
-\function{zip()} truncates the returned list to the length of the
-shortest argument sequence.
-
-The \function{int()} and \function{long()} functions now accept an
-optional ``base'' parameter when the first argument is a string.
-\code{int('123', 10)} returns 123, while \code{int('123', 16)} returns
-291.  \code{int(123, 16)} raises a \exception{TypeError} exception
-with the message ``can't convert non-string with explicit base''.
-
-A new variable holding more detailed version information has been
-added to the \module{sys} module.  \code{sys.version_info} is a tuple
-\code{(\var{major}, \var{minor}, \var{micro}, \var{level},
-\var{serial})} For example, in a hypothetical 2.0.1beta1,
-\code{sys.version_info} would be \code{(2, 0, 1, 'beta', 1)}.
-\var{level} is a string such as \code{"alpha"}, \code{"beta"}, or
-\code{"final"} for a final release.
-
-Dictionaries have an odd new method, \method{setdefault(\var{key},
-\var{default})}, which behaves similarly to the existing
-\method{get()} method.  However, if the key is missing,
-\method{setdefault()} both returns the value of \var{default} as
-\method{get()} would do, and also inserts it into the dictionary as
-the value for \var{key}.  Thus, the following lines of code:
-
-\begin{verbatim}
-if dict.has_key( key ): return dict[key]
-else: 
-    dict[key] = []
-    return dict[key]
-\end{verbatim}
-
-can be reduced to a single \code{return dict.setdefault(key, [])} statement.
-
-The interpreter sets a maximum recursion depth in order to catch
-runaway recursion before filling the C stack and causing a core dump
-or GPF..  Previously this limit was fixed when you compiled Python,
-but in 2.0 the maximum recursion depth can be read and modified using
-\function{sys.getrecursionlimit} and \function{sys.setrecursionlimit}.
-The default value is 1000, and a rough maximum value for a given
-platform can be found by running a new script,
-\file{Misc/find_recursionlimit.py}.
-
-% ======================================================================
-\section{Porting to 2.0}
-
-New Python releases try hard to be compatible with previous releases,
-and the record has been pretty good.  However, some changes are
-considered useful enough, usually because they fix initial design decisions that
-turned out to be actively mistaken, that breaking backward compatibility
-can't always be avoided.  This section lists the changes in Python 2.0
-that may cause old Python code to break.
-
-The change which will probably break the most code is tightening up
-the arguments accepted by some methods.  Some methods would take
-multiple arguments and treat them as a tuple, particularly various
-list methods such as \method{.append()} and \method{.insert()}.
-In earlier versions of Python, if \code{L} is a list, \code{L.append(
-1,2 )} appends the tuple \code{(1,2)} to the list.  In Python 2.0 this
-causes a \exception{TypeError} exception to be raised, with the
-message: 'append requires exactly 1 argument; 2 given'.  The fix is to
-simply add an extra set of parentheses to pass both values as a tuple: 
-\code{L.append( (1,2) )}.
-
-The earlier versions of these methods were more forgiving because they
-used an old function in Python's C interface to parse their arguments;
-2.0 modernizes them to use \function{PyArg_ParseTuple}, the current
-argument parsing function, which provides more helpful error messages
-and treats multi-argument calls as errors.  If you absolutely must use
-2.0 but can't fix your code, you can edit \file{Objects/listobject.c}
-and define the preprocessor symbol \code{NO_STRICT_LIST_APPEND} to
-preserve the old behaviour; this isn't recommended.
-
-Some of the functions in the \module{socket} module are still
-forgiving in this way.  For example, \function{socket.connect(
-('hostname', 25) )} is the correct form, passing a tuple representing
-an IP address, but \function{socket.connect( 'hostname', 25 )} also
-works. \function{socket.connect_ex()} and \function{socket.bind()} are
-similarly easy-going.  2.0alpha1 tightened these functions up, but
-because the documentation actually used the erroneous multiple
-argument form, many people wrote code which would break with the
-stricter checking.  GvR backed out the changes in the face of public
-reaction, so for the \module{socket} module, the documentation was
-fixed and the multiple argument form is simply marked as deprecated;
-it \emph{will} be tightened up again in a future Python version.
-
-The \code{\e x} escape in string literals now takes exactly 2 hex
-digits.  Previously it would consume all the hex digits following the
-'x' and take the lowest 8 bits of the result, so \code{\e x123456} was
-equivalent to \code{\e x56}.
-
-The \exception{AttributeError} exception has a more friendly error message,
-whose text will be something like \code{'Spam' instance has no attribute 'eggs'}.
-Previously the error message was just the missing attribute name \code{eggs}, and 
-code written to take advantage of this fact will break in 2.0.
-
-Some work has been done to make integers and long integers a bit more
-interchangeable.  In 1.5.2, large-file support was added for Solaris,
-to allow reading files larger than 2Gb; this made the \method{tell()}
-method of file objects return a long integer instead of a regular
-integer.  Some code would subtract two file offsets and attempt to use
-the result to multiply a sequence or slice a string, but this raised a
-\exception{TypeError}.  In 2.0, long integers can be used to multiply
-or slice a sequence, and it'll behave as you'd intuitively expect it
-to; \code{3L * 'abc'} produces 'abcabcabc', and \code{
-(0,1,2,3)[2L:4L]} produces (2,3). Long integers can also be used in
-various contexts where previously only integers were accepted, such
-as in the \method{seek()} method of file objects, and in the formats
-supported by the \verb|%| operator (\verb|%d|, \verb|%i|, \verb|%x|,
-etc.).  For example, \code{"\%d" \% 2L**64} will produce the string
-\samp{18446744073709551616}.
-
-The subtlest long integer change of all is that the \function{str()}
-of a long integer no longer has a trailing 'L' character, though
-\function{repr()} still includes it.  The 'L' annoyed many people who
-wanted to print long integers that looked just like regular integers,
-since they had to go out of their way to chop off the character.  This
-is no longer a problem in 2.0, but code which does \code{str(longval)[:-1]} and assumes the 'L' is there, will now lose
-the final digit.
-
-Taking the \function{repr()} of a float now uses a different
-formatting precision than \function{str()}.  \function{repr()} uses
-\code{\%.17g} format string for C's \function{sprintf()}, while
-\function{str()} uses \code{\%.12g} as before.  The effect is that 
-\function{repr()} may occasionally show more decimal places than 
-\function{str()}, for certain numbers. 
-For example, the number 8.1 can't be represented exactly in binary, so
-\code{repr(8.1)} is \code{'8.0999999999999996'}, while str(8.1) is
-\code{'8.1'}.
-
-The \code{-X} command-line option, which turned all standard
-exceptions into strings instead of classes, has been removed; the
-standard exceptions will now always be classes.  The
-\module{exceptions} module containing the standard exceptions was
-translated from Python to a built-in C module, written by Barry Warsaw
-and Fredrik Lundh.
-
-% Commented out for now -- I don't think anyone will care.
-%The pattern and match objects provided by SRE are C types, not Python
-%class instances as in 1.5.  This means you can no longer inherit from
-%\class{RegexObject} or \class{MatchObject}, but that shouldn't be much
-%of a problem since no one should have been doing that in the first
-%place.
-
-% ======================================================================
-\section{Extending/Embedding Changes}
-
-Some of the changes are under the covers, and will only be apparent to
-people writing C extension modules or embedding a Python interpreter
-in a larger application.  If you aren't dealing with Python's C API,
-you can safely skip this section.
-
-The version number of the Python C API was incremented, so C
-extensions compiled for 1.5.2 must be recompiled in order to work with
-2.0.  On Windows, it's not possible for Python 2.0 to import a third
-party extension built for Python 1.5.x due to how Windows DLLs work,
-so Python will raise an exception and the import will fail.
-
-Users of Jim Fulton's ExtensionClass module will be pleased to find
-out that hooks have been added so that ExtensionClasses are now
-supported by \function{isinstance()} and \function{issubclass()}.
-This means you no longer have to remember to write code such as
-\code{if type(obj) == myExtensionClass}, but can use the more natural
-\code{if isinstance(obj, myExtensionClass)}.
-
-The \file{Python/importdl.c} file, which was a mass of \#ifdefs to
-support dynamic loading on many different platforms, was cleaned up
-and reorganised by Greg Stein.  \file{importdl.c} is now quite small,
-and platform-specific code has been moved into a bunch of
-\file{Python/dynload_*.c} files.  Another cleanup: there were also a
-number of \file{my*.h} files in the Include/ directory that held
-various portability hacks; they've been merged into a single file,
-\file{Include/pyport.h}.
-
-Vladimir Marangozov's long-awaited malloc restructuring was completed,
-to make it easy to have the Python interpreter use a custom allocator
-instead of C's standard \function{malloc()}.  For documentation, read
-the comments in \file{Include/pymem.h} and
-\file{Include/objimpl.h}.  For the lengthy discussions during which
-the interface was hammered out, see the Web archives of the 'patches'
-and 'python-dev' lists at python.org.
-
-Recent versions of the GUSI development environment for MacOS support
-POSIX threads.  Therefore, Python's POSIX threading support now works
-on the Macintosh.  Threading support using the user-space GNU \texttt{pth}
-library was also contributed.
-
-Threading support on Windows was enhanced, too.  Windows supports
-thread locks that use kernel objects only in case of contention; in
-the common case when there's no contention, they use simpler functions
-which are an order of magnitude faster.  A threaded version of Python
-1.5.2 on NT is twice as slow as an unthreaded version; with the 2.0
-changes, the difference is only 10\%.  These improvements were
-contributed by Yakov Markovitch.
-
-Python 2.0's source now uses only ANSI C prototypes, so compiling Python now
-requires an ANSI C compiler, and can no longer be done using a compiler that
-only supports K\&R C.  
-
-Previously the Python virtual machine used 16-bit numbers in its
-bytecode, limiting the size of source files.  In particular, this
-affected the maximum size of literal lists and dictionaries in Python
-source; occasionally people who are generating Python code would run
-into this limit.  A patch by Charles G. Waldman raises the limit from
-\verb|2^16| to \verb|2^{32}|.
-
-Three new convenience functions intended for adding constants to a
-module's dictionary at module initialization time were added:
-\function{PyModule_AddObject()}, \function{PyModule_AddIntConstant()},
-and \function{PyModule_AddStringConstant()}.  Each of these functions
-takes a module object, a null-terminated C string containing the name
-to be added, and a third argument for the value to be assigned to the
-name.  This third argument is, respectively, a Python object, a C
-long, or a C string.
-
-A wrapper API was added for Unix-style signal handlers.
-\function{PyOS_getsig()} gets a signal handler and
-\function{PyOS_setsig()} will set a new handler.
-
-% ======================================================================
-\section{Distutils: Making Modules Easy to Install}
-
-Before Python 2.0, installing modules was a tedious affair -- there
-was no way to figure out automatically where Python is installed, or
-what compiler options to use for extension modules.  Software authors
-had to go through an arduous ritual of editing Makefiles and
-configuration files, which only really work on Unix and leave Windows
-and MacOS unsupported.  Python users faced wildly differing
-installation instructions which varied between different extension
-packages, which made adminstering a Python installation something of a
-chore.
-
-The SIG for distribution utilities, shepherded by Greg Ward, has
-created the Distutils, a system to make package installation much
-easier.  They form the \module{distutils} package, a new part of
-Python's standard library. In the best case, installing a Python
-module from source will require the same steps: first you simply mean
-unpack the tarball or zip archive, and the run ``\code{python setup.py
-install}''.  The platform will be automatically detected, the compiler
-will be recognized, C extension modules will be compiled, and the
-distribution installed into the proper directory.  Optional
-command-line arguments provide more control over the installation
-process, the distutils package offers many places to override defaults
--- separating the build from the install, building or installing in
-non-default directories, and more.
-
-In order to use the Distutils, you need to write a \file{setup.py}
-script.  For the simple case, when the software contains only .py
-files, a minimal \file{setup.py} can be just a few lines long:
-
-\begin{verbatim}
-from distutils.core import setup
-setup (name = "foo", version = "1.0", 
-       py_modules = ["module1", "module2"])
-\end{verbatim}
-
-The \file{setup.py} file isn't much more complicated if the software
-consists of a few packages:
-
-\begin{verbatim}
-from distutils.core import setup
-setup (name = "foo", version = "1.0", 
-       packages = ["package", "package.subpackage"])
-\end{verbatim}
-
-A C extension can be the most complicated case; here's an example taken from 
-the PyXML package:
-
-
-\begin{verbatim}
-from distutils.core import setup, Extension
-
-expat_extension = Extension('xml.parsers.pyexpat',
-       define_macros = [('XML_NS', None)],
-       include_dirs = [ 'extensions/expat/xmltok',
-                        'extensions/expat/xmlparse' ],
-       sources = [ 'extensions/pyexpat.c',
-                   'extensions/expat/xmltok/xmltok.c',
-                   'extensions/expat/xmltok/xmlrole.c',
-                  ]
-       )
-setup (name = "PyXML", version = "0.5.4", 
-       ext_modules =[ expat_extension ] )
-\end{verbatim}
-
-The Distutils can also take care of creating source and binary
-distributions.  The ``sdist'' command, run by ``\code{python setup.py
-sdist}', builds a source distribution such as \file{foo-1.0.tar.gz}.
-Adding new commands isn't difficult, ``bdist_rpm'' and
-``bdist_wininst'' commands have already been contributed to create an
-RPM distribution and a Windows installer for the software,
-respectively.  Commands to create other distribution formats such as
-Debian packages and Solaris \file{.pkg} files are in various stages of
-development.
-
-All this is documented in a new manual, \textit{Distributing Python
-Modules}, that joins the basic set of Python documentation.
-
-% ======================================================================
-\section{XML Modules}
-
-Python 1.5.2 included a simple XML parser in the form of the
-\module{xmllib} module, contributed by Sjoerd Mullender.  Since
-1.5.2's release, two different interfaces for processing XML have
-become common: SAX2 (version 2 of the Simple API for XML) provides an
-event-driven interface with some similarities to \module{xmllib}, and
-the DOM (Document Object Model) provides a tree-based interface,
-transforming an XML document into a tree of nodes that can be
-traversed and modified.  Python 2.0 includes a SAX2 interface and a
-stripped-down DOM interface as part of the \module{xml} package.
-Here we will give a brief overview of these new interfaces; consult
-the Python documentation or the source code for complete details.
-The Python XML SIG is also working on improved documentation.
-
-\subsection{SAX2 Support}
-
-SAX defines an event-driven interface for parsing XML.  To use SAX,
-you must write a SAX handler class.  Handler classes inherit from
-various classes provided by SAX, and override various methods that
-will then be called by the XML parser.  For example, the
-\method{startElement} and \method{endElement} methods are called for
-every starting and end tag encountered by the parser, the
-\method{characters()} method is called for every chunk of character
-data, and so forth.
-
-The advantage of the event-driven approach is that that the whole
-document doesn't have to be resident in memory at any one time, which
-matters if you are processing really huge documents.  However, writing
-the SAX handler class can get very complicated if you're trying to
-modify the document structure in some elaborate way.
-
-For example, this little example program defines a handler that prints
-a message for every starting and ending tag, and then parses the file
-\file{hamlet.xml} using it:
-
-\begin{verbatim}
-from xml import sax
-
-class SimpleHandler(sax.ContentHandler):
-    def startElement(self, name, attrs):
-        print 'Start of element:', name, attrs.keys()
-
-    def endElement(self, name):
-        print 'End of element:', name
-
-# Create a parser object
-parser = sax.make_parser()
-
-# Tell it what handler to use
-handler = SimpleHandler()
-parser.setContentHandler( handler )
-
-# Parse a file!
-parser.parse( 'hamlet.xml' )
-\end{verbatim}
-
-For more information, consult the Python documentation, or the XML
-HOWTO at \url{http://www.python.org/doc/howto/xml/}.
-
-\subsection{DOM Support}
-
-The Document Object Model is a tree-based representation for an XML
-document.  A top-level \class{Document} instance is the root of the
-tree, and has a single child which is the top-level \class{Element}
-instance. This \class{Element} has children nodes representing
-character data and any sub-elements, which may have further children
-of their own, and so forth.  Using the DOM you can traverse the
-resulting tree any way you like, access element and attribute values,
-insert and delete nodes, and convert the tree back into XML.
-
-The DOM is useful for modifying XML documents, because you can create
-a DOM tree, modify it by adding new nodes or rearranging subtrees, and
-then produce a new XML document as output.  You can also construct a
-DOM tree manually and convert it to XML, which can be a more flexible
-way of producing XML output than simply writing
-\code{<tag1>}...\code{</tag1>} to a file.
-
-The DOM implementation included with Python lives in the
-\module{xml.dom.minidom} module.  It's a lightweight implementation of
-the Level 1 DOM with support for XML namespaces.  The 
-\function{parse()} and \function{parseString()} convenience
-functions are provided for generating a DOM tree:
-
-\begin{verbatim}
-from xml.dom import minidom
-doc = minidom.parse('hamlet.xml')
-\end{verbatim}
-
-\code{doc} is a \class{Document} instance.  \class{Document}, like all
-the other DOM classes such as \class{Element} and \class{Text}, is a
-subclass of the \class{Node} base class.  All the nodes in a DOM tree
-therefore support certain common methods, such as \method{toxml()}
-which returns a string containing the XML representation of the node
-and its children.  Each class also has special methods of its own; for
-example, \class{Element} and \class{Document} instances have a method
-to find all child elements with a given tag name.  Continuing from the
-previous 2-line example:
-
-\begin{verbatim}
-perslist = doc.getElementsByTagName( 'PERSONA' )
-print perslist[0].toxml()
-print perslist[1].toxml()
-\end{verbatim}
-
-For the \textit{Hamlet} XML file, the above few lines output:
-
-\begin{verbatim}
-<PERSONA>CLAUDIUS, king of Denmark. </PERSONA>
-<PERSONA>HAMLET, son to the late, and nephew to the present king.</PERSONA>
-\end{verbatim}
-
-The root element of the document is available as
-\code{doc.documentElement}, and its children can be easily modified
-by deleting, adding, or removing nodes:
-
-\begin{verbatim}
-root = doc.documentElement
-
-# Remove the first child
-root.removeChild( root.childNodes[0] )
-
-# Move the new first child to the end
-root.appendChild( root.childNodes[0] )
-
-# Insert the new first child (originally,
-# the third child) before the 20th child.
-root.insertBefore( root.childNodes[0], root.childNodes[20] )
-\end{verbatim}
-
-Again, I will refer you to the Python documentation for a complete
-listing of the different \class{Node} classes and their various methods.
-
-\subsection{Relationship to PyXML}
-
-The XML Special Interest Group has been working on XML-related Python
-code for a while.  Its code distribution, called PyXML, is available
-from the SIG's Web pages at \url{http://www.python.org/sigs/xml-sig/}.
-The PyXML distribution also used the package name \samp{xml}.  If
-you've written programs that used PyXML, you're probably wondering
-about its compatibility with the 2.0 \module{xml} package.
-
-The answer is that Python 2.0's \module{xml} package isn't compatible
-with PyXML, but can be made compatible by installing a recent version
-PyXML.  Many applications can get by with the XML support that is
-included with Python 2.0, but more complicated applications will
-require that the full PyXML package will be installed.  When
-installed, PyXML versions 0.6.0 or greater will replace the
-\module{xml} package shipped with Python, and will be a strict
-superset of the standard package, adding a bunch of additional
-features.  Some of the additional features in PyXML include:
-
-\begin{itemize}
-\item 4DOM, a full DOM implementation
-from FourThought, Inc.
-\item The xmlproc validating parser, written by Lars Marius Garshol.
-\item The \module{sgmlop} parser accelerator module, written by Fredrik Lundh.
-\end{itemize}
-
-% ======================================================================
-\section{Module changes}
-
-Lots of improvements and bugfixes were made to Python's extensive
-standard library; some of the affected modules include
-\module{readline}, \module{ConfigParser}, \module{cgi},
-\module{calendar}, \module{posix}, \module{readline}, \module{xmllib},
-\module{aifc}, \module{chunk, wave}, \module{random}, \module{shelve},
-and \module{nntplib}.  Consult the CVS logs for the exact
-patch-by-patch details.  
-
-Brian Gallew contributed OpenSSL support for the \module{socket}
-module.  OpenSSL is an implementation of the Secure Socket Layer,
-which encrypts the data being sent over a socket.  When compiling
-Python, you can edit \file{Modules/Setup} to include SSL support,
-which adds an additional function to the \module{socket} module:
-\function{socket.ssl(\var{socket}, \var{keyfile}, \var{certfile})},
-which takes a socket object and returns an SSL socket.  The
-\module{httplib} and \module{urllib} modules were also changed to
-support ``https://'' URLs, though no one has implemented FTP or SMTP
-over SSL.  
-
-The \module{httplib} module has been rewritten by Greg Stein to
-support HTTP/1.1.  Backward compatibility with the 1.5 version of
-\module{httplib} is provided, though using HTTP/1.1 features such as
-pipelining will require rewriting code to use a different set of
-interfaces.
-
-The \module{Tkinter} module now supports Tcl/Tk version 8.1, 8.2, or
-8.3, and support for the older 7.x versions has been dropped.  The
-Tkinter module now supports displaying Unicode strings in Tk widgets.
-Also, Fredrik Lundh contributed an optimization which makes operations
-like \code{create_line} and \code{create_polygon} much faster,
-especially when using lots of coordinates.
-
-The \module{curses} module has been greatly extended, starting from
-Oliver Andrich's enhanced version, to provide many additional
-functions from ncurses and SYSV curses, such as colour, alternative
-character set support, pads, and mouse support.  This means the module
-is no longer compatible with operating systems that only have BSD
-curses, but there don't seem to be any currently maintained OSes that
-fall into this category.
-
-As mentioned in the earlier discussion of 2.0's Unicode support, the
-underlying implementation of the regular expressions provided by the
-\module{re} module has been changed.  SRE, a new regular expression
-engine written by Fredrik Lundh and partially funded by Hewlett
-Packard, supports matching against both 8-bit strings and Unicode
-strings.
-
-% ======================================================================
-\section{New modules}
-
-A number of new modules were added.  We'll simply list them with brief
-descriptions; consult the 2.0 documentation for the details of a
-particular module.
-
-\begin{itemize}
-
-\item{\module{atexit}}: 
-For registering functions to be called before the Python interpreter exits.
-Code that currently sets
-\code{sys.exitfunc} directly should be changed to 
-use the \module{atexit} module instead, importing \module{atexit}
-and calling \function{atexit.register()} with 
-the function to be called on exit.
-(Contributed by Skip Montanaro.)
-
-\item{\module{codecs}, \module{encodings}, \module{unicodedata}:}  Added as part of the new Unicode support. 
-
-\item{\module{filecmp}:} Supersedes the old \module{cmp}, \module{cmpcache} and
-\module{dircmp} modules, which have now become deprecated.
-(Contributed by Gordon MacMillan and Moshe Zadka.)
-
-\item{\module{gettext}:} This module provides internationalization
-(I18N) and localization (L10N) support for Python programs by
-providing an interface to the GNU gettext message catalog library.
-(Integrated by Barry Warsaw, from separate contributions by Martin von
-Loewis, Peter Funk, and James Henstridge.)
-
-\item{\module{linuxaudiodev}:} Support for the \file{/dev/audio}
-device on Linux, a twin to the existing \module{sunaudiodev} module.
-(Contributed by Peter Bosch, with fixes by Jeremy Hylton.)
-
-\item{\module{mmap}:} An interface to memory-mapped files on both
-Windows and Unix.  A file's contents can be mapped directly into
-memory, at which point it behaves like a mutable string, so its
-contents can be read and modified.  They can even be passed to
-functions that expect ordinary strings, such as the \module{re}
-module. (Contributed by Sam Rushing, with some extensions by
-A.M. Kuchling.)
-
-\item{\module{pyexpat}:} An interface to the Expat XML parser.
-(Contributed by Paul Prescod.)
-
-\item{\module{robotparser}:} Parse a \file{robots.txt} file, which is
-used for writing Web spiders that politely avoid certain areas of a
-Web site.  The parser accepts the contents of a \file{robots.txt} file,
-builds a set of rules from it, and can then answer questions about
-the fetchability of a given URL.  (Contributed by Skip Montanaro.)
-
-\item{\module{tabnanny}:} A module/script to 
-check Python source code for ambiguous indentation.
-(Contributed by Tim Peters.)
-
-\item{\module{UserString}:} A base class useful for deriving objects that behave like strings.  
-
-\item{\module{webbrowser}:} A module that provides a platform independent
-way to launch a web browser on a specific URL. For each platform, various
-browsers are tried in a specific order. The user can alter which browser
-is launched by setting the \var{BROWSER} environment variable. 
-(Originally inspired by Eric S. Raymond's patch to \module{urllib}
-which added similar functionality, but
-the final module comes from code originally 
-implemented by Fred Drake as \file{Tools/idle/BrowserControl.py},
-and adapted for the standard library by Fred.)
-
-\item{\module{_winreg}:} An interface to the
-Windows registry.  \module{_winreg} is an adaptation of functions that
-have been part of PythonWin since 1995, but has now been added to the core 
-distribution, and enhanced to support Unicode.  
-\module{_winreg} was written by Bill Tutt and Mark Hammond.
-
-\item{\module{zipfile}:} A module for reading and writing ZIP-format
-archives.  These are archives produced by \program{PKZIP} on
-DOS/Windows or \program{zip} on Unix, not to be confused with
-\program{gzip}-format files (which are supported by the \module{gzip}
-module)
-(Contributed by James C. Ahlstrom.)
-
-\item{\module{imputil}:} A module that provides a simpler way for
-writing customised import hooks, in comparison to the existing
-\module{ihooks} module.  (Implemented by Greg Stein, with much
-discussion on python-dev along the way.)
-
-\end{itemize}
-
-% ======================================================================
-\section{IDLE Improvements}
-
-IDLE is the official Python cross-platform IDE, written using Tkinter.
-Python 2.0 includes IDLE 0.6, which adds a number of new features and
-improvements.  A partial list:
-
-\begin{itemize}
-\item  UI improvements and optimizations,
-especially in the area of syntax highlighting and auto-indentation.
-
-\item The class browser now shows more information, such as the top
-level functions in a module.
-
-\item Tab width is now a user settable option. When opening an existing Python
-file, IDLE automatically detects the indentation conventions, and adapts.
-
-\item There is now support for calling browsers on various platforms,
-used to open the Python documentation in a browser.
-
-\item IDLE now has a command line, which is largely similar to 
-the vanilla Python interpreter.
-
-\item Call tips were added in many places.
-
-\item IDLE can now be installed as a package.
-
-\item In the editor window, there is now a line/column bar at the bottom.
-
-\item Three new keystroke commands: Check module (Alt-F5), Import
-module (F5) and Run script (Ctrl-F5).
-
-\end{itemize}
-
-% ======================================================================
-\section{Deleted and Deprecated Modules}
-
-A few modules have been dropped because they're obsolete, or because
-there are now better ways to do the same thing.  The \module{stdwin}
-module is gone; it was for a platform-independent windowing toolkit
-that's no longer developed.  
-
-A number of modules have been moved to the
-\file{lib-old} subdirectory:
-\module{cmp}, \module{cmpcache}, \module{dircmp}, \module{dump}, 
-\module{find}, \module{grep}, \module{packmail}, 
-\module{poly}, \module{util}, \module{whatsound}, \module{zmod}. 
-If you have code which relies on a module  that's been moved to
-\file{lib-old}, you can simply add that directory to \code{sys.path}  
-to get them back, but you're encouraged to update any code that uses
-these modules.
-
-\section{Acknowledgements}
-
-The authors would like to thank the following people for offering
-suggestions on various drafts of this article: David Bolen, Mark Hammond, Gregg Hauser,
-Jeremy Hylton, Fredrik Lundh, Detlef Lannert, Aahz Maruch, Skip
-Montanaro, Vladimir Marangozov, Guido van Rossum, Neil Schemenauer,
-and Russ Schmidt.
-
-\end{document}
diff --git a/Doc/whatsnew/whatsnew21.tex b/Doc/whatsnew/whatsnew21.tex
deleted file mode 100644 (file)
index 04e8ff1..0000000
+++ /dev/null
@@ -1,874 +0,0 @@
-\documentclass{howto}
-
-\usepackage{distutils}
-
-% $Id$
-
-\title{What's New in Python 2.1}
-\release{0.99}
-\author{A.M. Kuchling}
-\authoraddress{\email{amk1@bigfoot.com}}
-\begin{document}
-\maketitle\tableofcontents
-
-\section{Introduction}
-
-{\large This document is a draft, and is subject to change until the
-final version of Python 2.1 is released.  Currently it is up to date
-for Python 2.1 release candidate~1.  Please send any comments, bug
-reports, or questions, no matter how minor, to
-\email{amk1@bigfoot.com}.  }
-
-It's that time again... time for a new Python release, Python 2.1.
-One recent goal of the Python development team has been to accelerate
-the pace of new releases, with a new release coming every 6 to 9
-months. 2.1 is the first release to come out at this faster pace, with
-the first alpha appearing in January, 3 months after the final version
-of 2.0 was released.
-
-This article explains the new features in 2.1.  While there aren't as
-many changes in 2.1 as there were in Python 2.0, there are still some
-pleasant surprises in store.  2.1 is the first release to be steered
-through the use of Python Enhancement Proposals, or PEPs, so most of
-the sizable changes have accompanying PEPs that provide more complete
-documentation and a design rationale for the change.  This article
-doesn't attempt to document the new features completely, but simply
-provides an overview of the new features for Python programmers.
-Refer to the Python 2.1 documentation, or to the specific PEP, for
-more details about any new feature that particularly interests you.
-
-The final release of Python 2.1 is planned for April 2001.
-
-%======================================================================
-\section{PEP 227: Nested Scopes}
-
-The largest change in Python 2.1 is to Python's scoping rules.  In
-Python 2.0, at any given time there are at most three namespaces used
-to look up variable names: local, module-level, and the built-in
-namespace.  This often surprised people because it didn't match their
-intuitive expectations.  For example, a nested recursive function
-definition doesn't work:
-
-\begin{verbatim}
-def f():
-    ...
-    def g(value):
-        ...
-        return g(value-1) + 1
-    ...
-\end{verbatim}
-
-The function \function{g()} will always raise a \exception{NameError}
-exception, because the binding of the name \samp{g} isn't in either
-its local namespace or in the module-level namespace.  This isn't much
-of a problem in practice (how often do you recursively define interior
-functions like this?), but this also made using the \keyword{lambda}
-statement clumsier, and this was a problem in practice.  In code which
-uses \keyword{lambda} you can often find local variables being copied
-by passing them as the default values of arguments.
-
-\begin{verbatim}
-def find(self, name):
-    "Return list of any entries equal to 'name'"
-    L = filter(lambda x, name=name: x == name,
-               self.list_attribute)
-    return L
-\end{verbatim}
-
-The readability of Python code written in a strongly functional style
-suffers greatly as a result.
-
-The most significant change to Python 2.1 is that static scoping has
-been added to the language to fix this problem.  As a first effect,
-the \code{name=name} default argument is now unnecessary in the above
-example.  Put simply, when a given variable name is not assigned a
-value within a function (by an assignment, or the \keyword{def},
-\keyword{class}, or \keyword{import} statements), references to the
-variable will be looked up in the local namespace of the enclosing
-scope.  A more detailed explanation of the rules, and a dissection of
-the implementation, can be found in the PEP.
-
-This change may cause some compatibility problems for code where the
-same variable name is used both at the module level and as a local
-variable within a function that contains further function definitions.
-This seems rather unlikely though, since such code would have been
-pretty confusing to read in the first place.  
-
-One side effect of the change is that the \code{from \var{module}
-import *} and \keyword{exec} statements have been made illegal inside
-a function scope under certain conditions.  The Python reference
-manual has said all along that \code{from \var{module} import *} is
-only legal at the top level of a module, but the CPython interpreter
-has never enforced this before.  As part of the implementation of
-nested scopes, the compiler which turns Python source into bytecodes
-has to generate different code to access variables in a containing
-scope.  \code{from \var{module} import *} and \keyword{exec} make it
-impossible for the compiler to figure this out, because they add names
-to the local namespace that are unknowable at compile time.
-Therefore, if a function contains function definitions or
-\keyword{lambda} expressions with free variables, the compiler will
-flag this by raising a \exception{SyntaxError} exception.
-
-To make the preceding explanation a bit clearer, here's an example:
-
-\begin{verbatim}
-x = 1
-def f():
-    # The next line is a syntax error
-    exec 'x=2'  
-    def g():
-        return x
-\end{verbatim}
-
-Line 4 containing the \keyword{exec} statement is a syntax error,
-since \keyword{exec} would define a new local variable named \samp{x}
-whose value should be accessed by \function{g()}.  
-
-This shouldn't be much of a limitation, since \keyword{exec} is rarely
-used in most Python code (and when it is used, it's often a sign of a
-poor design anyway).
-
-Compatibility concerns have led to nested scopes being introduced
-gradually; in Python 2.1, they aren't enabled by default, but can be
-turned on within a module by using a future statement as described in
-PEP 236.  (See the following section for further discussion of PEP
-236.)  In Python 2.2, nested scopes will become the default and there
-will be no way to turn them off, but users will have had all of 2.1's
-lifetime to fix any breakage resulting from their introduction.
-
-\begin{seealso}
-
-\seepep{227}{Statically Nested Scopes}{Written and implemented by
-Jeremy Hylton.}
-
-\end{seealso}
-
-
-%======================================================================
-\section{PEP 236: \module{__future__} Directives}
-
-The reaction to nested scopes was widespread concern about the dangers
-of breaking code with the 2.1 release, and it was strong enough to
-make the Pythoneers take a more conservative approach.  This approach
-consists of introducing a convention for enabling optional
-functionality in release N that will become compulsory in release N+1.  
-
-The syntax uses a \code{from...import} statement using the reserved
-module name \module{__future__}.  Nested scopes can be enabled by the
-following statement:
-
-\begin{verbatim}
-from __future__ import nested_scopes
-\end{verbatim}
-
-While it looks like a normal \keyword{import} statement, it's not;
-there are strict rules on where such a future statement can be put.
-They can only be at the top of a module, and must precede any Python
-code or regular \keyword{import} statements.  This is because such
-statements can affect how the Python bytecode compiler parses code and
-generates bytecode, so they must precede any statement that will
-result in bytecodes being produced.
-
-\begin{seealso}
-
-\seepep{236}{Back to the \module{__future__}}{Written by Tim Peters,
-and primarily implemented by Jeremy Hylton.}
-
-\end{seealso}
-
-%======================================================================
-\section{PEP 207: Rich Comparisons}
-
-In earlier versions, Python's support for implementing comparisons on
-user-defined classes and extension types was quite simple. Classes
-could implement a \method{__cmp__} method that was given two instances
-of a class, and could only return 0 if they were equal or +1 or -1 if
-they weren't; the method couldn't raise an exception or return
-anything other than a Boolean value.  Users of Numeric Python often
-found this model too weak and restrictive, because in the
-number-crunching programs that numeric Python is used for, it would be
-more useful to be able to perform elementwise comparisons of two
-matrices, returning a matrix containing the results of a given
-comparison for each element.  If the two matrices are of different
-sizes, then the compare has to be able to raise an exception to signal
-the error.
-
-In Python 2.1, rich comparisons were added in order to support this
-need.  Python classes can now individually overload each of the
-\code{<}, \code{<=}, \code{>}, \code{>=}, \code{==}, and \code{!=}
-operations.  The new magic method names are:
-
-\begin{tableii}{c|l}{code}{Operation}{Method name}
-  \lineii{<}{\method{__lt__}} \lineii{<=}{\method{__le__}}
-  \lineii{>}{\method{__gt__}} \lineii{>=}{\method{__ge__}}
-  \lineii{==}{\method{__eq__}} \lineii{!=}{\method{__ne__}}
-  \end{tableii}
-
-(The magic methods are named after the corresponding Fortran operators
-\code{.LT.}. \code{.LE.}, \&c.  Numeric programmers are almost
-certainly quite familar with these names and will find them easy to
-remember.)
-Each of these magic methods is of the form \code{\var{method}(self,
-other)}, where \code{self} will be the object on the left-hand side of
-the operator, while \code{other} will be the object on the right-hand
-side.  For example, the expression \code{A < B} will cause
-\code{A.__lt__(B)} to be called.
-
-Each of these magic methods can return anything at all: a Boolean, a
-matrix, a list, or any other Python object.  Alternatively they can
-raise an exception if the comparison is impossible, inconsistent, or
-otherwise meaningless.
-
-The built-in \function{cmp(A,B)} function can use the rich comparison
-machinery, and now accepts an optional argument specifying which
-comparison operation to use; this is given as one of the strings
-\code{"<"}, \code{"<="}, \code{">"}, \code{">="}, \code{"=="}, or
-\code{"!="}.  If called without the optional third argument,
-\function{cmp()} will only return -1, 0, or +1 as in previous versions
-of Python; otherwise it will call the appropriate method and can
-return any Python object.
-
-There are also corresponding changes of interest to C programmers;
-there's a new slot \code{tp_richcmp} in type objects and an API for
-performing a given rich comparison.  I won't cover the C API here, but
-will refer you to PEP 207, or to 2.1's C API documentation, for the
-full list of related functions.
-
-\begin{seealso}
-
-\seepep{207}{Rich Comparisions}{Written by Guido van Rossum, heavily
-based on earlier work by David Ascher, and implemented by Guido van
-Rossum.}
-
-\end{seealso}
-
-%======================================================================
-\section{PEP 230: Warning Framework}
-
-Over its 10 years of existence, Python has accumulated a certain
-number of obsolete modules and features along the way.  It's difficult
-to know when a feature is safe to remove, since there's no way of
-knowing how much code uses it --- perhaps no programs depend on the
-feature, or perhaps many do.  To enable removing old features in a
-more structured way, a warning framework was added.  When the Python
-developers want to get rid of a feature, it will first trigger a
-warning in the next version of Python.  The following Python version
-can then drop the feature, and users will have had a full release
-cycle to remove uses of the old feature.
-
-Python 2.1 adds the warning framework to be used in this scheme.  It
-adds a \module{warnings} module that provide functions to issue
-warnings, and to filter out warnings that you don't want to be
-displayed. Third-party modules can also use this framework to
-deprecate old features that they no longer wish to support.
-
-For example, in Python 2.1 the \module{regex} module is deprecated, so
-importing it causes a warning to be printed:
-
-\begin{verbatim}
->>> import regex
-__main__:1: DeprecationWarning: the regex module
-         is deprecated; please use the re module
->>>
-\end{verbatim}
-
-Warnings can be issued by calling the \function{warnings.warn}
-function:
-
-\begin{verbatim}
-warnings.warn("feature X no longer supported")
-\end{verbatim}
-
-The first parameter is the warning message; an additional optional
-parameters can be used to specify a particular warning category.
-
-Filters can be added to disable certain warnings; a regular expression
-pattern can be applied to the message or to the module name in order
-to suppress a warning.  For example, you may have a program that uses
-the \module{regex} module and not want to spare the time to convert it
-to use the \module{re} module right now.  The warning can be
-suppressed by calling
-
-\begin{verbatim}
-import warnings
-warnings.filterwarnings(action = 'ignore',
-                        message='.*regex module is deprecated',
-                        category=DeprecationWarning,
-                        module = '__main__')
-\end{verbatim}
-
-This adds a filter that will apply only to warnings of the class
-\class{DeprecationWarning} triggered in the \module{__main__} module,
-and applies a regular expression to only match the message about the
-\module{regex} module being deprecated, and will cause such warnings
-to be ignored.  Warnings can also be printed only once, printed every
-time the offending code is executed, or turned into exceptions that
-will cause the program to stop (unless the exceptions are caught in
-the usual way, of course).
-
-Functions were also added to Python's C API for issuing warnings;
-refer to PEP 230 or to Python's API documentation for the details.
-
-\begin{seealso} 
-
-\seepep{5}{Guidelines for Language Evolution}{Written
-by Paul Prescod, to specify procedures to be followed when removing
-old features from Python.  The policy described in this PEP hasn't
-been officially adopted, but the eventual policy probably won't be too
-different from Prescod's proposal.}
-
-\seepep{230}{Warning Framework}{Written and implemented by Guido van
-Rossum.}
-
-\end{seealso}
-    
-%======================================================================
-\section{PEP 229: New Build System}
-
-When compiling Python, the user had to go in and edit the
-\file{Modules/Setup} file in order to enable various additional
-modules; the default set is relatively small and limited to modules
-that compile on most Unix platforms.  This means that on Unix
-platforms with many more features, most notably Linux, Python
-installations often don't contain all useful modules they could.
-
-Python 2.0 added the Distutils, a set of modules for distributing and
-installing extensions.  In Python 2.1, the Distutils are used to
-compile much of the standard library of extension modules,
-autodetecting which ones are supported on the current machine.  It's
-hoped that this will make Python installations easier and more
-featureful.
-
-Instead of having to edit the \file{Modules/Setup} file in order to
-enable modules, a \file{setup.py} script in the top directory of the
-Python source distribution is run at build time, and attempts to
-discover which modules can be enabled by examining the modules and
-header files on the system.  If a module is configured in
-\file{Modules/Setup}, the \file{setup.py} script won't attempt to
-compile that module and will defer to the \file{Modules/Setup} file's
-contents.  This provides a way to specific any strange command-line
-flags or libraries that are required for a specific platform.
-
-In another far-reaching change to the build mechanism, Neil
-Schemenauer restructured things so Python now uses a single makefile
-that isn't recursive, instead of makefiles in the top directory and in
-each of the \file{Python/}, \file{Parser/}, \file{Objects/}, and
-\file{Modules/} subdirectories.  This makes building Python faster
-and also makes hacking the Makefiles clearer and simpler.
-
-\begin{seealso} 
-
-\seepep{229}{Using Distutils to Build Python}{Written
-and implemented by A.M. Kuchling.}
-
-\end{seealso}
-
-%======================================================================
-\section{PEP 205: Weak References}
-
-Weak references, available through the \module{weakref} module, are a
-minor but useful new data type in the Python programmer's toolbox.
-
-Storing a reference to an object (say, in a dictionary or a list) has
-the side effect of keeping that object alive forever.  There are a few
-specific cases where this behaviour is undesirable, object caches
-being the most common one, and another being circular references in
-data structures such as trees.
-
-For example, consider a memoizing function that caches the results of
-another function \function{f(\var{x})} by storing the function's
-argument and its result in a dictionary:
-
-\begin{verbatim}
-_cache = {}
-def memoize(x):
-    if _cache.has_key(x):
-        return _cache[x]
-
-    retval = f(x)
-
-    # Cache the returned object
-    _cache[x] = retval
-
-    return retval
-\end{verbatim}
-
-This version works for simple things such as integers, but it has a
-side effect; the \code{_cache} dictionary holds a reference to the
-return values, so they'll never be deallocated until the Python
-process exits and cleans up This isn't very noticeable for integers,
-but if \function{f()} returns an object, or a data structure that
-takes up a lot of memory, this can be a problem.
-
-Weak references provide a way to implement a cache that won't keep
-objects alive beyond their time.  If an object is only accessible
-through weak references, the object will be deallocated and the weak
-references will now indicate that the object it referred to no longer
-exists.  A weak reference to an object \var{obj} is created by calling
-\code{wr = weakref.ref(\var{obj})}.  The object being referred to is
-returned by calling the weak reference as if it were a function:
-\code{wr()}.  It will return the referenced object, or \code{None} if
-the object no longer exists. 
-
-This makes it possible to write a \function{memoize()} function whose
-cache doesn't keep objects alive, by storing weak references in the
-cache.
-
-\begin{verbatim}
-_cache = {}
-def memoize(x):
-    if _cache.has_key(x):
-        obj = _cache[x]()
-        # If weak reference object still exists,
-        # return it
-        if obj is not None: return obj
-    retval = f(x)
-
-    # Cache a weak reference
-    _cache[x] = weakref.ref(retval)
-
-    return retval
-\end{verbatim}
-
-The \module{weakref} module also allows creating proxy objects which
-behave like weak references --- an object referenced only by proxy
-objects is deallocated -- but instead of requiring an explicit call to
-retrieve the object, the proxy transparently forwards all operations
-to the object as long as the object still exists.  If the object is
-deallocated, attempting to use a proxy will cause a
-\exception{weakref.ReferenceError} exception to be raised.
-
-\begin{verbatim}
-proxy = weakref.proxy(obj)
-proxy.attr   # Equivalent to obj.attr
-proxy.meth() # Equivalent to obj.meth()
-del obj
-proxy.attr   # raises weakref.ReferenceError
-\end{verbatim}
-
-\begin{seealso}
-
-\seepep{205}{Weak References}{Written and implemented by
-Fred~L. Drake,~Jr.}
-
-\end{seealso}
-
-%======================================================================
-\section{PEP 232: Function Attributes}
-
-In Python 2.1, functions can now have arbitrary information attached
-to them.  People were often using docstrings to hold information about
-functions and methods, because the \code{__doc__} attribute was the
-only way of attaching any information to a function.  For example, in
-the Zope Web application server, functions are marked as safe for
-public access by having a docstring, and in John Aycock's SPARK
-parsing framework, docstrings hold parts of the BNF grammar to be
-parsed.  This overloading is unfortunate, since docstrings are really
-intended to hold a function's documentation; for example, it means you
-can't properly document functions intended for private use in Zope.
-
-Arbitrary attributes can now be set and retrieved on functions using the
-regular Python syntax:
-
-\begin{verbatim}
-def f(): pass
-
-f.publish = 1
-f.secure = 1
-f.grammar = "A ::= B (C D)*"
-\end{verbatim}
-
-The dictionary containing attributes can be accessed as the function's
-\member{__dict__}. Unlike the \member{__dict__} attribute of class
-instances, in functions you can actually assign a new dictionary to
-\member{__dict__}, though the new value is restricted to a regular
-Python dictionary; you \emph{can't} be tricky and set it to a
-\class{UserDict} instance, or any other random object that behaves
-like a mapping.
-
-\begin{seealso}
-
-\seepep{232}{Function Attributes}{Written and implemented by Barry
-Warsaw.}
-
-\end{seealso}
-
-
-%======================================================================
-
-\section{PEP 235: Case-Insensitive Platforms and \keyword{import}}
-
-Some operating systems have filesystems that are case-insensitive,
-MacOS and Windows being the primary examples; on these systems, it's
-impossible to distinguish the filenames \samp{FILE.PY} and
-\samp{file.py}, even though they do store the file's name 
-in its original case (they're case-preserving, too).
-
-In Python 2.1, the \keyword{import} statement will work to simulate
-case-sensitivity on case-insensitive platforms.  Python will now
-search for the first case-sensitive match by default, raising an
-\exception{ImportError} if no such file is found, so \code{import file}
-will not import a module named \samp{FILE.PY}.  Case-insensitive
-matching can be requested by setting the \envvar{PYTHONCASEOK} environment
-variable before starting the Python interpreter.
-
-%======================================================================
-\section{PEP 217: Interactive Display Hook}
-
-When using the Python interpreter interactively, the output of
-commands is displayed using the built-in \function{repr()} function.
-In Python 2.1, the variable \function{sys.displayhook} can be set to a
-callable object which will be called instead of \function{repr()}.
-For example, you can set it to a special pretty-printing function:
-
-\begin{verbatim}
->>> # Create a recursive data structure
-... L = [1,2,3]
->>> L.append(L)
->>> L # Show Python's default output
-[1, 2, 3, [...]]
->>> # Use pprint.pprint() as the display function
-... import sys, pprint
->>> sys.displayhook = pprint.pprint
->>> L
-[1, 2, 3,  <Recursion on list with id=135143996>]
->>>
-\end{verbatim}
-
-\begin{seealso}
-
-\seepep{217}{Display Hook for Interactive Use}{Written and implemented
-by Moshe Zadka.}
-
-\end{seealso}
-
-%======================================================================
-\section{PEP 208: New Coercion Model}
-
-How numeric coercion is done at the C level was significantly
-modified.  This will only affect the authors of C extensions to
-Python, allowing them more flexibility in writing extension types that
-support numeric operations.
-
-Extension types can now set the type flag \code{Py_TPFLAGS_CHECKTYPES}
-in their \code{PyTypeObject} structure to indicate that they support
-the new coercion model.  In such extension types, the numeric slot
-functions can no longer assume that they'll be passed two arguments of
-the same type; instead they may be passed two arguments of differing
-types, and can then perform their own internal coercion.  If the slot
-function is passed a type it can't handle, it can indicate the failure
-by returning a reference to the \code{Py_NotImplemented} singleton
-value.  The numeric functions of the other type will then be tried,
-and perhaps they can handle the operation; if the other type also
-returns \code{Py_NotImplemented}, then a \exception{TypeError} will be
-raised.  Numeric methods written in Python can also return
-\code{Py_NotImplemented}, causing the interpreter to act as if the
-method did not exist (perhaps raising a \exception{TypeError}, perhaps
-trying another object's numeric methods).
-
-\begin{seealso}
-
-\seepep{208}{Reworking the Coercion Model}{Written and implemented by
-Neil Schemenauer, heavily based upon earlier work by Marc-Andr\'e
-Lemburg.  Read this to understand the fine points of how numeric
-operations will now be processed at the C level.}
-
-\end{seealso}
-
-%======================================================================
-\section{PEP 241: Metadata in Python Packages}
-
-A common complaint from Python users is that there's no single catalog
-of all the Python modules in existence.  T.~Middleton's Vaults of
-Parnassus at \url{http://www.vex.net/parnassus} are the largest
-catalog of Python modules, but registering software at the Vaults is
-optional, and many people don't bother.
-
-As a first small step toward fixing the problem, Python software
-packaged using the Distutils \command{sdist} command will include a
-file named \file{PKG-INFO} containing information about the package
-such as its name, version, and author (metadata, in cataloguing
-terminology).  PEP 241 contains the full list of fields that can be
-present in the \file{PKG-INFO} file.  As people began to package their
-software using Python 2.1, more and more packages will include
-metadata, making it possible to build automated cataloguing systems
-and experiment with them.  With the result experience, perhaps it'll
-be possible to design a really good catalog and then build support for
-it into Python 2.2.  For example, the Distutils \command{sdist}
-and \command{bdist_*} commands could support a \option{upload} option
-that would automatically upload your package to a catalog server. 
-
-You can start creating packages containing \file{PKG-INFO} even if
-you're not using Python 2.1, since a new release of the Distutils will
-be made for users of earlier Python versions.  Version 1.0.2 of the
-Distutils includes the changes described in PEP 241, as well as
-various bugfixes and enhancements.  It will be available from 
-the Distutils SIG at \url{http://www.python.org/sigs/distutils-sig}.
-
-% XXX update when I actually release 1.0.2
-
-\begin{seealso}
-
-\seepep{241}{Metadata for Python Software Packages}{Written and
-implemented by A.M. Kuchling.}
-
-\seepep{243}{Module Repository Upload Mechanism}{Written by Sean
-Reifschneider, this draft PEP describes a proposed mechanism for uploading 
-Python packages to a central server.
-}
-
-\end{seealso}
-
-%======================================================================
-\section{New and Improved Modules}
-
-\begin{itemize}
-
-\item Ka-Ping Yee contributed two new modules: \module{inspect.py}, a
-module for getting information about live Python code, and
-\module{pydoc.py}, a module for interactively converting docstrings to
-HTML or text.  As a bonus, \file{Tools/scripts/pydoc}, which is now
-automatically installed, uses \module{pydoc.py} to display
-documentation given a Python module, package, or class name.  For
-example, \samp{pydoc xml.dom} displays the following:
-
-\begin{verbatim}
-Python Library Documentation: package xml.dom in xml
-NAME
-    xml.dom - W3C Document Object Model implementation for Python.
-FILE
-    /usr/local/lib/python2.1/xml/dom/__init__.pyc
-DESCRIPTION
-    The Python mapping of the Document Object Model is documented in the
-    Python Library Reference in the section on the xml.dom package.
-    This package contains the following modules:
-      ...
-\end{verbatim}
-
-\file{pydoc} also includes a Tk-based interactive help browser.  
-\file{pydoc} quickly becomes addictive; try it out!
-
-\item Two different modules for unit testing were added to the
-standard library.  The \module{doctest} module, contributed by Tim
-Peters, provides a testing framework based on running embedded
-examples in docstrings and comparing the results against the expected
-output.  PyUnit, contributed by Steve Purcell, is a unit testing
-framework inspired by JUnit, which was in turn an adaptation of Kent
-Beck's Smalltalk testing framework.  See
-\url{http://pyunit.sourceforge.net/} for more information about
-PyUnit.
-
-\item The \module{difflib} module contains a class,
-\class{SequenceMatcher}, which compares two sequences and computes the
-changes required to transform one sequence into the other.  For
-example, this module can be used to write a tool similar to the Unix
-\program{diff} program, and in fact the sample program
-\file{Tools/scripts/ndiff.py} demonstrates how to write such a script.  
-
-\item \module{curses.panel}, a wrapper for the panel library, part of
-ncurses and of SYSV curses, was contributed by Thomas Gellekum.  The
-panel library provides windows with the additional feature of depth.
-Windows can be moved higher or lower in the depth ordering, and the
-panel library figures out where panels overlap and which sections are
-visible.
-
-\item The PyXML package has gone through a few releases since Python
-2.0, and Python 2.1 includes an updated version of the \module{xml}
-package.  Some of the noteworthy changes include support for Expat 1.2
-and later versions, the ability for Expat parsers to handle files in
-any encoding supported by Python, and various bugfixes for SAX, DOM,
-and the \module{minidom} module.
-
-\item Ping also contributed another hook for handling uncaught
-exceptions.  \function{sys.excepthook} can be set to a callable
-object.  When an exception isn't caught by any
-\keyword{try}...\keyword{except} blocks, the exception will be passed
-to \function{sys.excepthook}, which can then do whatever it likes.  At
-the Ninth Python Conference, Ping demonstrated an application for this
-hook: printing an extended traceback that not only lists the stack
-frames, but also lists the function arguments and the local variables
-for each frame.  
-
-\item Various functions in the \module{time} module, such as
-\function{asctime()} and \function{localtime()}, require a floating
-point argument containing the time in seconds since the epoch.  The
-most common use of these functions is to work with the current time,
-so the floating point argument has been made optional; when a value
-isn't provided, the current time will be used.  For example, log file
-entries usually need a string containing the current time; in Python
-2.1, \code{time.asctime()} can be used, instead of the lengthier
-\code{time.asctime(time.localtime(time.time()))} that was previously
-required.
-This change was proposed and implemented by Thomas Wouters.
-
-\item The \module{ftplib} module now defaults to retrieving files in
-passive mode, because passive mode is more likely to work from behind
-a firewall.  This request came from the Debian bug tracking system,
-since other Debian packages use \module{ftplib} to retrieve files and
-then don't work from behind a firewall.  It's deemed unlikely that
-this will cause problems for anyone, because Netscape defaults to
-passive mode and few people complain, but if passive mode is
-unsuitable for your application or network setup, call
-\method{set_pasv(0)} on FTP objects to disable passive mode.
-
-\item Support for raw socket access has been added to the
-\module{socket} module, contributed by Grant Edwards.
-
-\item The \module{pstats} module now contains a simple interactive
-statistics browser for displaying timing profiles for Python programs,
-invoked when the module is run as a script.  Contributed by 
-Eric S.\ Raymond.
-
-\item A new implementation-dependent function, \function{sys._getframe(\optional{depth})},
-has been added to return a given frame object from the current call stack.
-\function{sys._getframe()} returns the frame at the top of the call stack; 
-if the optional integer argument \var{depth} is supplied, the function returns the frame
-that is \var{depth} calls below the top of the stack.  For example, \code{sys._getframe(1)}
-returns the caller's frame object.
-
-This function is only present in CPython, not in Jython or the .NET
-implementation.  Use it for debugging, and resist the temptation to
-put it into production code.
-
-
-
-\end{itemize}
-
-%======================================================================
-\section{Other Changes and Fixes}
-
-There were relatively few smaller changes made in Python 2.1 due to
-the shorter release cycle.  A search through the CVS change logs turns
-up 117 patches applied, and 136 bugs fixed; both figures are likely to
-be underestimates.  Some of the more notable changes are:
-
-\begin{itemize}
-
-
-\item A specialized object allocator is now optionally available, that
-should be faster than the system \function{malloc()} and have less
-memory overhead.  The allocator uses C's \function{malloc()} function
-to get large pools of memory, and then fulfills smaller memory
-requests from these pools.  It can be enabled by providing the
-\longprogramopt{with-pymalloc} option to the \program{configure} script; see
-\file{Objects/obmalloc.c} for the implementation details.  
-
-Authors of C extension modules should test their code with the object
-allocator enabled, because some incorrect code may break, causing core
-dumps at runtime.  There are a bunch of memory allocation functions in
-Python's C API that have previously been just aliases for the C
-library's \function{malloc()} and \function{free()}, meaning that if
-you accidentally called mismatched functions, the error wouldn't be
-noticeable.  When the object allocator is enabled, these functions
-aren't aliases of \function{malloc()} and \function{free()} any more,
-and calling the wrong function to free memory will get you a core
-dump.  For example, if memory was allocated using
-\function{PyMem_New()}, it has to be freed using
-\function{PyMem_Del()}, not \function{free()}.  A few modules included
-with Python fell afoul of this and had to be fixed; doubtless there
-are more third-party modules that will have the same problem.
-
-The object allocator was contributed by Vladimir Marangozov.
-
-\item The speed of line-oriented file I/O has been improved because
-people often complain about its lack of speed, and because it's often
-been used as a na\"ive benchmark.  The \method{readline()} method of
-file objects has therefore been rewritten to be much faster.  The
-exact amount of the speedup will vary from platform to platform
-depending on how slow the C library's \function{getc()} was, but is
-around 66\%, and potentially much faster on some particular operating
-systems.  Tim Peters did much of the benchmarking and coding for this
-change, motivated by a discussion in comp.lang.python.
-
-A new module and method for file objects was also added, contributed
-by Jeff Epler. The new method, \method{xreadlines()}, is similar to
-the existing \function{xrange()} built-in.  \function{xreadlines()}
-returns an opaque sequence object that only supports being iterated
-over, reading a line on every iteration but not reading the entire
-file into memory as the existing \method{readlines()} method does.
-You'd use it like this:
-
-\begin{verbatim}
-for line in sys.stdin.xreadlines():
-    # ... do something for each line ...
-    ...
-\end{verbatim}
-
-For a fuller discussion of the line I/O changes, see the python-dev
-summary for January 1-15, 2001 at
-\url{http://www.amk.ca/python/dev/2001-01-1.html}.
-
-\item A new method, \method{popitem()}, was added to dictionaries to
-enable destructively iterating through the contents of a dictionary;
-this can be faster for large dictionaries because there's no need to
-construct a list containing all the keys or values.
-\code{D.popitem()} removes a random \code{(\var{key}, \var{value})}
-pair from the dictionary~\code{D} and returns it as a 2-tuple.  This
-was implemented mostly by Tim Peters and Guido van Rossum, after a
-suggestion and preliminary patch by Moshe Zadka.
-\item Modules can now control which names are imported when \code{from
-\var{module} import *} is used, by defining an \code{__all__}
-attribute containing a list of names that will be imported.  One
-common complaint is that if the module imports other modules such as
-\module{sys} or \module{string}, \code{from \var{module} import *}
-will add them to the importing module's namespace.  To fix this,
-simply list the public names in \code{__all__}:
-
-\begin{verbatim}
-# List public names
-__all__ = ['Database', 'open']
-\end{verbatim}
-
-A stricter version of this patch was first suggested and implemented
-by Ben Wolfson, but after some python-dev discussion, a weaker final
-version was checked in.
-
-\item Applying \function{repr()} to strings previously used octal
-escapes for non-printable characters; for example, a newline was
-\code{'\e 012'}.  This was a vestigial trace of Python's C ancestry, but
-today octal is of very little practical use.  Ka-Ping Yee suggested
-using hex escapes instead of octal ones, and using the \code{\e n},
-\code{\e t}, \code{\e r} escapes for the appropriate characters, and
-implemented this new formatting.
-
-\item Syntax errors detected at compile-time can now raise exceptions
-containing the filename and line number of the error, a pleasant side
-effect of the compiler reorganization done by Jeremy Hylton.
-
-\item C extensions which import other modules have been changed to use
-\function{PyImport_ImportModule()}, which means that they will use any
-import hooks that have been installed.  This is also encouraged for
-third-party extensions that need to import some other module from C
-code.  
-
-\item The size of the Unicode character database was shrunk by another
-340K thanks to Fredrik Lundh.
-
-\item Some new ports were contributed: MacOS X (by Steven Majewski),
-Cygwin (by Jason Tishler); RISCOS (by Dietmar Schwertberger); Unixware~7 
-(by Billy G. Allie).
-
-\end{itemize}
-
-And there's the usual list of minor bugfixes, minor memory leaks,
-docstring edits, and other tweaks, too lengthy to be worth itemizing;
-see the CVS logs for the full details if you want them.
-
-
-%======================================================================
-\section{Acknowledgements}
-
-The author would like to thank the following people for offering
-suggestions on various drafts of this article: Graeme Cross, David
-Goodger, Jay Graves, Michael Hudson, Marc-Andr\'e Lemburg, Fredrik
-Lundh, Neil Schemenauer, Thomas Wouters.
-
-\end{document}
diff --git a/Include/config.h b/Include/config.h
deleted file mode 100755 (executable)
index 3f486ff..0000000
+++ /dev/null
@@ -1,82 +0,0 @@
-/* Include/config.h.  Generated automatically by configure.  */
-/* NOTE: config.h.in is converted into config.h by the configure
-   script in the toplevel directory.
-
-   On non-UNIX systems, manually copy config.h.in to config.h, and
-   edit the latter to reflect the actual configuration of your system.
-
-   Then arrange that the symbol HAVE_CONFIG_H is defined during
-   compilation (usually by passing an argument of the form
-   `-DHAVE_CONFIG_H' to the compiler, but this is necessarily
-   system-dependent).  */
-
-
-/* Types which have no traditional name -- edit the definition if necessary */
-
-#define RETSIGTYPE void                /* int or void: return of signal handlers */
-
-
-/* Types which are often defined in <sys/types.h> -- either define as
-   some variant of int or leave undefined.  Uncomment a definition if
-   your <sys/types.h> does not define the type */
-
-/* #define mode_t int */
-/* #define off_t long */
-/* #define pid_t int */
-/* #define size_t unsigned */
-/* #define uid_t int */
-/* #define gid_t int */
-
-
-/* Feature test symbols -- either define as 1 or leave undefined */
-
-/*     symbol name:            #define as 1 if: */
-
-/* #undef      STDC_HEADERS */                 /* the standard C header files exist
-                                  (in particular, <stdlib.h>,
-                                  <stdarg.h>, <string.h> and <float.h>) */
-
-/* #undef      HAVE_DLFCN_H */                 /* <dlfcn.h> exists */
-#define        HAVE_SIGNAL_H 1                 /* <signal.h> exists */
-#define        HAVE_STDARG_H 1                 /* <stdarg.h> exists (else need <varargs.h>) */
-#define        HAVE_STDLIB_H 1                 /* <stdlib.h> exists */
-#define        HAVE_UNISTD_H 1                 /* <unistd.h> exists */
-#define        HAVE_UTIME_H 1                  /* <utime.h> exists */
-
-#define        HAVE_SYS_PARAM_H 1      /* <sys/param.h> exists */
-/* #undef      HAVE_SYS_SELECT_H */    /* <sys/select.h> exists */
-#define        HAVE_SYS_TIMES_H 1      /* <sys/times.h> exists */
-/* #undef      HAVE_SYS_TIME_H */      /* <sys/time.h> exists */
-#define        HAVE_SYS_UTSNAME_H 1    /* <sys.utsname.h> exists */
-
-#define        TIME_WITH_SYS_TIME 1    /* <sys/time.h> and <time.h> can be included
-                                  together */
-
-/* #undef      HAVE_TM_ZONE */                 /* struct tm has a tm_zone member */
-#define        HAVE_TZNAME 1           /* extern char *tzname[] exists */
-
-#define        HAVE_CLOCK 1            /* clock() exists */
-/* #undef      HAVE_FTIME */           /* ftime() exists */
-#define        HAVE_GETPGRP 1                  /* getpgrp() exists */
-#define        HAVE_GETTIMEOFDAY 1     /* gettimeofday() exists */
-#define        HAVE_LSTAT 1            /* lstat() exists */
-#define        HAVE_PROTOTYPES 1       /* the compiler understands prototypes */
-#define        HAVE_READLINK 1                 /* readlink() exists */
-#define        HAVE_SELECT 1           /* select() exists */
-#define        HAVE_SETPGID 1                  /* setpgid() exists */
-#define        HAVE_SETPGRP 1                  /* setpgrp() exists */
-#define        HAVE_SETSID 1           /* setsid() exists */
-#define        HAVE_SYMLINK 1                  /* symlink() exists */
-/* #undef      HAVE_SIGINTERRUPT */    /* siginterrupt() exists */
-#define        HAVE_TCGETPGRP 1        /* tcgetpgrp() exists */
-#define        HAVE_TCSETPGRP 1        /* tcsetpgrp() exists */
-#define        HAVE_TIMES 1            /* times() exists */
-#define        HAVE_UNAME 1            /* uname() exists */
-#define        HAVE_WAITPID 1                  /* waitpid() exists */
-
-/* #undef      GETPGRP_HAVE_ARG */     /* getpgrp() must be called as getpgrp(0)
-                                  (and setpgrp() as setpgrp(0, 0)) */
-
-#define        WITH_READLINE 1                 /* GNU readline() should be used */
-/* #undef      USE_THREAD */           /* Build in thread support */
-/* #undef      SOLARIS */                      /* This is SOLARIS 2.x */
diff --git a/Include/rename1.h b/Include/rename1.h
deleted file mode 100755 (executable)
index 90f129f..0000000
+++ /dev/null
@@ -1,360 +0,0 @@
-#ifndef Py_RENAME1_H
-#define Py_RENAME1_H
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/***********************************************************
-Copyright 1991-1995 by Stichting Mathematisch Centrum, Amsterdam,
-The Netherlands.
-
-                        All Rights Reserved
-
-Permission to use, copy, modify, and distribute this software and its 
-documentation for any purpose and without fee is hereby granted, 
-provided that the above copyright notice appear in all copies and that
-both that copyright notice and this permission notice appear in 
-supporting documentation, and that the names of Stichting Mathematisch
-Centrum or CWI not be used in advertising or publicity pertaining to
-distribution of the software without specific, written prior permission.
-
-STICHTING MATHEMATISCH CENTRUM DISCLAIMS ALL WARRANTIES WITH REGARD TO
-THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
-FITNESS, IN NO EVENT SHALL STICHTING MATHEMATISCH CENTRUM BE LIABLE
-FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
-WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
-ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
-OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
-
-******************************************************************/
-
-/* This file contains a bunch of #defines that make it possible to use
-   "new style" names (e.g. PyObject) with the old style Python source
-   distribution. */
-
-/* Remove some symbols (these conflict with X11 symbols) */
-#undef True
-#undef False
-#undef None
-
-typedef ANY *PyUnivPtr;
-typedef struct methodlist PyMethodDef;
-
-#define Py_NO_DEBUG NDEBUG
-#define Py_TRACE_REFS TRACE_REFS
-#define Py_REF_DEBUG REF_DEBUG
-#define Py_HAVE_PROTOTYPES HAVE_PROTOTYPES
-#define Py_HAVE_STDLIB HAVE_STDLIB
-#define _Py_ZeroStruct FalseObject
-#define _Py_NoneStruct NoObject
-#define _Py_TrueStruct TrueObject
-#define Py_DebugFlag debugging
-#define _PyParser_Grammar gram
-#define _PySys_ProfileFunc sys_profile
-#define _PySys_TraceFunc sys_trace
-#define _PyThread_Started threads_started
-#define _PyParser_TokenNames tok_name
-#define Py_VerboseFlag verbose
-#define PyExc_AttributeError AttributeError
-#define PyExc_EOFError EOFError
-#define PyExc_IOError IOError
-#define PyExc_ImportError ImportError
-#define PyExc_IndexError IndexError
-#define PyExc_KeyError KeyError
-#define PyExc_MemoryError MemoryError
-#define PyExc_NameError NameError
-#define PyExc_OverflowError OverflowError
-#define PyExc_RuntimeError RuntimeError
-#define PyExc_SyntaxError SyntaxError
-#define PyExc_SystemError SystemError
-#define PyExc_TypeError TypeError
-#define PyExc_ValueError ValueError
-#define PyExc_ZeroDivisionError ZeroDivisionError
-#define PyExc_KeyboardInterrupt KeyboardInterrupt
-#define PyExc_SystemExit SystemExit
-#define PyFloat_Type Floattype
-#define PyInt_Type Inttype
-#define PyLong_Type Longtype
-#define PyNothing_Type Notype
-#define PyString_Type Stringtype
-#define PyType_Type Typetype
-#define PyList_Type Listtype
-#define PyDict_Type Dicttype
-#define PyTuple_Type Tupletype
-#define PyFile_Type Filetype
-#define PyClass_Type Classtype
-#define PyFunction_Type Functype
-#define PyMethod_Type Instancemethodtype
-#define PyInstance_Type Instancetype
-#define PyCFunction_Type Methodtype
-#define PyModule_Type Moduletype
-#define PyCode_Type Codetype
-#define PyFrame_Type Frametype
-#define PyFloatObject floatobject
-#define PyIntObject intobject
-#define PyLongObject longobject
-#define PyNothingObject noobject
-#define PyObject object
-#define PyStringObject stringobject
-#define PyTypeObject typeobject
-#define PyListObject listobject
-#define PyDictObject dictobject
-#define PyTupleObject tupleobject
-#define PyFileObject fileobject
-#define PyClassObject classobject
-#define PyCodeObject codeobject
-#define PyFrameObject frameobject
-#define PyFunctionObject funcobject
-#define PyMethodObject instancemethodobject
-#define PyInstanceObject instanceobject
-#define PyCFunctionObject methodobject
-#define PyModuleObject moduleobject
-#define PyNumberMethods number_methods
-#define PySequenceMethods sequence_methods
-#define PyMappingMethods mapping_methods
-#define PyObject_HEAD OB_HEAD
-#define PyObject_VAR_HEAD OB_VARHEAD
-#define PyObject_HEAD_INIT(x) OB_HEAD_INIT(x)
-#define PyObject_NEW NEWOBJ
-#define PyObject_NEW_VAR NEWVAROBJ
-#define Py_PROTO PROTO
-#define PyMem_NEW NEW
-#define PyMem_RESIZE RESIZE
-#define PyMem_DEL DEL
-#define PyMem_XDEL XDEL
-#define Py_BEGIN_ALLOW_THREADS BGN_SAVE
-#define Py_BLOCK_THREADS RET_SAVE
-#define Py_UNBLOCK_THREADS RES_SAVE
-#define Py_END_ALLOW_THREADS END_SAVE
-#define PyFloat_Check is_floatobject
-#define PyInt_Check is_intobject
-#define PyLong_Check is_longobject
-#define PyNothing_Check is_noobject
-#define PyString_Check is_stringobject
-#define PyType_Check is_typeobject
-#define PyList_Check is_listobject
-#define PyDict_Check is_dictobject
-#define PyTuple_Check is_tupleobject
-#define PyFile_Check is_fileobject
-#define PyClass_Check is_classobject
-#define PyCode_Check is_codeobject
-#define PyFrame_Check is_frameobject
-#define PyFunction_Check is_funcobject
-#define PyMethod_Check is_instancemethodobject
-#define PyInstance_Check is_instanceobject
-#define PyCFunction_Check is_methodobject
-#define PyModule_Check is_moduleobject
-#define Py_INCREF INCREF
-#define Py_DECREF DECREF
-#define Py_XINCREF XINCREF
-#define Py_XDECREF XDECREF
-#define _Py_NewReference NEWREF
-#define _Py_Dealloc DELREF
-#define _Py_ForgetReference UNREF
-#define Py_None (&_Py_NoneStruct)
-#define Py_False ((object *) &_Py_ZeroStruct)
-#define Py_True ((object *) &_Py_TrueStruct)
-#define PyObject_Compare cmpobject
-#define PyObject_GetAttrString getattr
-#define PyObject_GetAttr getattro
-#define PyObject_Hash hashobject
-#define _PyObject_New newobject
-#define _PyObject_NewVar newvarobject
-#define PyObject_Print printobject
-#define PyObject_Repr reprobject
-#define PyObject_SetAttrString setattr
-#define PyObject_SetAttr setattro
-#define PyObject_IsTrue testbool
-#define Py_PRINT_RAW PRINT_RAW
-#define PyFloat_AsString float_buf_repr
-#define PyFloat_AsDouble getfloatvalue
-#define PyFloat_AS_DOUBLE GETFLOATVALUE
-#define PyFloat_FromDouble newfloatobject
-#define PyInt_AsLong getintvalue
-#define PyInt_AS_LONG GETINTVALUE
-#define PyInt_FromLong newintobject
-#define _PyLong_New alloclongobject
-#define PyLong_AsDouble dgetlongvalue
-#define PyLong_FromDouble dnewlongobject
-#define PyLong_AsLong getlongvalue
-#define PyLong_FromString long_scan
-#define PyLong_FromLong newlongobject
-#define PyString_Format formatstring
-#define PyString_Size getstringsize
-#define PyString_AsString getstringvalue
-#define PyString_AS_STRING GETSTRINGVALUE
-#define PyString_Concat joinstring
-#define PyString_FromStringAndSize newsizedstringobject
-#define PyString_FromString newstringobject
-#define _PyString_Resize resizestring
-#define PyList_Append addlistitem
-#define PyList_GetItem getlistitem
-#define PyList_GET_ITEM GETLISTITEM
-#define PyList_Size getlistsize
-#define PyList_GetSlice getlistslice
-#define PyList_Insert inslistitem
-#define PyList_New newlistobject
-#define PyList_SetItem setlistitem
-#define PyList_SetSlice setlistslice
-#define PyList_Sort sortlist
-#define PyDict_SetItemString dictinsert
-#define PyDict_GetItemString dictlookup
-#define PyDict_DelItemString dictremove
-#define PyDict_Items getmappingitems
-#define PyDict_Keys getmappingkeys
-#define PyDict_Values getmappingvalues
-#define PyDict_Clear mappingclear
-#define PyDict_Next mappinggetnext
-#define PyDict_SetItem mappinginsert
-#define PyDict_GetItem mappinglookup
-#define PyDict_DelItem mappingremove
-#define PyDict_New newmappingobject
-#define PyTuple_GetItem gettupleitem
-#define PyTuple_GET_ITEM GETTUPLEITEM
-#define PyTuple_Size gettuplesize
-#define PyTuple_GetSlice gettupleslice
-#define PyTuple_New newtupleobject
-#define PyTuple_SetItem settupleitem
-#define PyFile_GetLine filegetline
-#define PyFile_AsFile getfilefile
-#define PyFile_FromString newfileobject
-#define PyFile_FromFile newopenfileobject
-#define PyFile_SoftSpace softspace
-#define PyFile_WriteObject writeobject
-#define PyFile_WriteString writestring
-#define PyMethod_Class instancemethodgetclass
-#define PyMethod_Function instancemethodgetfunc
-#define PyMethod_Self instancemethodgetself
-#define PyClass_IsSubclass issubclass
-#define PyClass_New newclassobject
-#define PyMethod_New newinstancemethodobject
-#define PyInstance_New newinstanceobject
-#define PyTryBlock block
-#define PyFrame_ExtendStack extend_stack
-#define PyFrame_New newframeobject
-#define PyFrame_BlockPop pop_block
-#define PyFrame_BlockSetup setup_block
-#define PyFunction_GetCode getfunccode
-#define PyFunction_GetGlobals getfuncglobals
-#define PyFunction_New newfuncobject
-#define PyCFunction method
-#define Py_FindMethod findmethod
-#define PyCFunction_GetFunction getmethod
-#define PyCFunction_GetSelf getself
-#define PyCFunction_IsVarArgs getvarargs
-#define PyCFunction_New newmethodobject
-#define PyModule_GetDict getmoduledict
-#define PyModule_GetName getmodulename
-#define PyModule_New newmoduleobject
-#define PyGrammar_AddAccelerators addaccelerators
-#define PyGrammar_FindDFA finddfa
-#define PyGrammar_LabelRepr labelrepr
-#define PyNode_ListTree listtree
-#define PyNode_AddChild addchild
-#define PyNode_Free freetree
-#define PyNode_New newtree
-#define PyParser_AddToken addtoken
-#define PyParser_Delete delparser
-#define PyParser_New newparser
-#define PyParser_ParseFile parsefile
-#define PyParser_ParseString parsestring
-#define PyToken_OneChar tok_1char
-#define PyToken_TwoChars tok_2char
-#define PyTokenizer_Free tok_free
-#define PyTokenizer_Get tok_get
-#define PyTokenizer_FromFile tok_setupf
-#define PyTokenizer_FromString tok_setups
-#define PyNode_Compile compile
-#define PyCode_New newcodeobject
-#define PyEval_CallObject call_object
-#define PyEval_EvalCode eval_code
-#define Py_FlushLine flushline
-#define PyEval_GetBuiltins getbuiltins
-#define PyEval_GetGlobals getglobals
-#define PyEval_GetLocals getlocals
-#define PyEval_InitThreads init_save_thread
-#define PyErr_PrintTraceBack printtraceback
-#define PyEval_RestoreThread restore_thread
-#define PyEval_SaveThread save_thread
-#define PyTraceBack_Fetch tb_fetch
-#define PyTraceBack_Here tb_here
-#define PyTraceBack_Print tb_print
-#define PyTraceBack_Store tb_store
-#define PyImport_AddModule add_module
-#define PyImport_Cleanup doneimport
-#define PyImport_GetModuleDict get_modules
-#define PyImport_ImportModule import_module
-#define PyImport_ImportFrozenModule init_frozen
-#define PyImport_Init initimport
-#define PyImport_ReloadModule reload_module
-#define PyNumber_Coerce coerce
-#define PyBuiltin_GetDict getbuiltindict
-#define PyBuiltin_Init initbuiltin
-#define PyMarshal_Init initmarshal
-#define PyMarshal_ReadLongFromFile rd_long
-#define PyMarshal_ReadObjectFromFile rd_object
-#define PyMarshal_ReadObjectFromString rds_object
-#define PyMarshal_WriteLongToFile wr_long
-#define PyMarshal_WriteObjectToFile wr_object
-#define PySys_Init initsys
-#define PySys_SetArgv setpythonargv
-#define PySys_SetPath setpythonpath
-#define PySys_GetObject sysget
-#define PySys_GetFile sysgetfile
-#define PySys_SetObject sysset
-#define Py_CompileString compile_string
-#define Py_FatalError fatal
-#define Py_Exit goaway
-#define Py_Initialize initall
-#define PyErr_Print print_error
-#define PyParser_SimpleParseFile parse_file
-#define PyParser_SimpleParseString parse_string
-#define PyRun_AnyFile run
-#define PyRun_SimpleFile run_script
-#define PyRun_SimpleString run_command
-#define PyRun_File run_file
-#define PyRun_String run_string
-#define PyRun_InteractiveOne run_tty_1
-#define PyRun_InteractiveLoop run_tty_loop
-#define PyMember_Get getmember
-#define PyMember_Set setmember
-#define Py_InitModule(name, methods) initmodule(name, methods)
-#define Py_BuildValue mkvalue
-#define Py_VaBuildValue vmkvalue
-#define PyArg_Parse getargs
-#define PyArg_ParseTuple newgetargs
-#define PyArg_NoArgs(v) getargs(v, "")
-#define PyArg_GetChar getichararg
-#define PyArg_GetDoubleArray getidoublearray
-#define PyArg_GetFloat getifloatarg
-#define PyArg_GetFloatArray getifloatarray
-#define PyArg_GetInt getintarg
-#define PyArg_GetLong getilongarg
-#define PyArg_GetLongArray getilongarray
-#define PyArg_GetLongArraySize getilongarraysize
-#define PyArg_GetObject getiobjectarg
-#define PyArg_GetShort getishortarg
-#define PyArg_GetShortArray getishortarray
-#define PyArg_GetShortArraySize getishortarraysize
-#define PyArg_GetString getistringarg
-#define PyErr_BadArgument err_badarg
-#define PyErr_BadInternalCall err_badcall
-#define PyErr_Input err_input
-#define PyErr_NoMemory err_nomem
-#define PyErr_SetFromErrno err_errno
-#define PyErr_SetNone err_set
-#define PyErr_SetString err_setstr
-#define PyErr_SetObject err_setval
-#define PyErr_Occurred err_occurred
-#define PyErr_Fetch err_fetch
-#define PyErr_Restore err_restore
-#define PyErr_Clear err_clear
-#define PyOS_InterruptableGetString fgets_intr
-#define PyOS_InitInterrupts initintr
-#define PyOS_InterruptOccurred intrcheck
-#define PyOS_GetLastModificationTime getmtime
-
-#ifdef __cplusplus
-}
-#endif
-#endif /* !Py_RENAME1_H */
diff --git a/Lib/builtin.py b/Lib/builtin.py
deleted file mode 100755 (executable)
index 710d825..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-# B/W compat hack so code that says "import builtin" won't break after
-# name change from builtin to __builtin__.
-from __builtin__ import *
diff --git a/Lib/idlelib/AutoExpand.py b/Lib/idlelib/AutoExpand.py
deleted file mode 100644 (file)
index 0d57be4..0000000
+++ /dev/null
@@ -1,92 +0,0 @@
-import string
-import re
-
-###$ event <<expand-word>>
-###$ win <Alt-slash>
-###$ unix <Alt-slash>
-
-class AutoExpand:
-
-    keydefs = {
-        '<<expand-word>>': ['<Alt-slash>'],
-    }
-
-    unix_keydefs = {
-        '<<expand-word>>': ['<Meta-slash>'],
-    }
-
-    menudefs = [
-        ('edit', [
-            ('E_xpand word', '<<expand-word>>'),
-         ]),
-    ]
-
-    wordchars = string.letters + string.digits + "_"
-
-    def __init__(self, editwin):
-        self.text = editwin.text
-        self.text.wordlist = None # XXX what is this?
-        self.state = None
-
-    def expand_word_event(self, event):
-        curinsert = self.text.index("insert")
-        curline = self.text.get("insert linestart", "insert lineend")
-        if not self.state:
-            words = self.getwords()
-            index = 0
-        else:
-            words, index, insert, line = self.state
-            if insert != curinsert or line != curline:
-                words = self.getwords()
-                index = 0
-        if not words:
-            self.text.bell()
-            return "break"
-        word = self.getprevword()
-        self.text.delete("insert - %d chars" % len(word), "insert")
-        newword = words[index]
-        index = (index + 1) % len(words)
-        if index == 0:
-            self.text.bell()            # Warn we cycled around
-        self.text.insert("insert", newword)
-        curinsert = self.text.index("insert")
-        curline = self.text.get("insert linestart", "insert lineend")
-        self.state = words, index, curinsert, curline
-        return "break"
-
-    def getwords(self):
-        word = self.getprevword()
-        if not word:
-            return []
-        before = self.text.get("1.0", "insert wordstart")
-        wbefore = re.findall(r"\b" + word + r"\w+\b", before)
-        del before
-        after = self.text.get("insert wordend", "end")
-        wafter = re.findall(r"\b" + word + r"\w+\b", after)
-        del after
-        if not wbefore and not wafter:
-            return []
-        words = []
-        dict = {}
-        # search backwards through words before
-        wbefore.reverse()
-        for w in wbefore:
-            if dict.get(w):
-                continue
-            words.append(w)
-            dict[w] = w
-        # search onwards through words after
-        for w in wafter:
-            if dict.get(w):
-                continue
-            words.append(w)
-            dict[w] = w
-        words.append(word)
-        return words
-
-    def getprevword(self):
-        line = self.text.get("insert linestart", "insert")
-        i = len(line)
-        while i > 0 and line[i-1] in self.wordchars:
-            i = i-1
-        return line[i:]
diff --git a/Lib/idlelib/AutoIndent.py b/Lib/idlelib/AutoIndent.py
deleted file mode 100644 (file)
index 6d38481..0000000
+++ /dev/null
@@ -1,554 +0,0 @@
-import string
-#from Tkinter import TclError
-#import tkMessageBox
-#import tkSimpleDialog
-
-###$ event <<newline-and-indent>>
-###$ win <Key-Return>
-###$ win <KP_Enter>
-###$ unix <Key-Return>
-###$ unix <KP_Enter>
-
-###$ event <<indent-region>>
-###$ win <Control-bracketright>
-###$ unix <Alt-bracketright>
-###$ unix <Control-bracketright>
-
-###$ event <<dedent-region>>
-###$ win <Control-bracketleft>
-###$ unix <Alt-bracketleft>
-###$ unix <Control-bracketleft>
-
-###$ event <<comment-region>>
-###$ win <Alt-Key-3>
-###$ unix <Alt-Key-3>
-
-###$ event <<uncomment-region>>
-###$ win <Alt-Key-4>
-###$ unix <Alt-Key-4>
-
-###$ event <<tabify-region>>
-###$ win <Alt-Key-5>
-###$ unix <Alt-Key-5>
-
-###$ event <<untabify-region>>
-###$ win <Alt-Key-6>
-###$ unix <Alt-Key-6>
-
-import PyParse
-
-class AutoIndent:
-
-    menudefs = [
-        ('format', [       # /s/edit/format   dscherer@cmu.edu
-            None,
-            ('_Indent region', '<<indent-region>>'),
-            ('_Dedent region', '<<dedent-region>>'),
-            ('Comment _out region', '<<comment-region>>'),
-            ('U_ncomment region', '<<uncomment-region>>'),
-            ('Tabify region', '<<tabify-region>>'),
-            ('Untabify region', '<<untabify-region>>'),
-            ('Toggle tabs', '<<toggle-tabs>>'),
-            ('New indent width', '<<change-indentwidth>>'),
-        ]),
-    ]
-
-    keydefs = {
-        '<<smart-backspace>>': ['<Key-BackSpace>'],
-        '<<newline-and-indent>>': ['<Key-Return>', '<KP_Enter>'],
-        '<<smart-indent>>': ['<Key-Tab>']
-    }
-
-    windows_keydefs = {
-        '<<indent-region>>': ['<Control-bracketright>'],
-        '<<dedent-region>>': ['<Shift-Tab>',     # dscherer@cmu.edu
-                              '<Control-bracketleft>'],
-        '<<comment-region>>': ['<Alt-Key-3>'],
-        '<<uncomment-region>>': ['<Alt-Key-4>'],
-        '<<tabify-region>>': ['<Alt-Key-5>'],
-        '<<untabify-region>>': ['<Alt-Key-6>'],
-        '<<toggle-tabs>>': ['<Alt-Key-t>'],
-        '<<change-indentwidth>>': ['<Alt-Key-u>'],
-    }
-
-    unix_keydefs = {
-        '<<indent-region>>': ['<Alt-bracketright>',
-                              '<Meta-bracketright>',
-                              '<Control-bracketright>'],
-        '<<dedent-region>>': ['<Alt-bracketleft>',
-                              '<Meta-bracketleft>',
-                              '<Control-bracketleft>'],
-        '<<comment-region>>': ['<Alt-Key-3>', '<Meta-Key-3>'],
-        '<<uncomment-region>>': ['<Alt-Key-4>', '<Meta-Key-4>'],
-        '<<tabify-region>>': ['<Alt-Key-5>', '<Meta-Key-5>'],
-        '<<untabify-region>>': ['<Alt-Key-6>', '<Meta-Key-6>'],
-        '<<toggle-tabs>>': ['<Alt-Key-t>'],
-        '<<change-indentwidth>>': ['<Alt-Key-u>'],
-    }
-
-    # usetabs true  -> literal tab characters are used by indent and
-    #                  dedent cmds, possibly mixed with spaces if
-    #                  indentwidth is not a multiple of tabwidth
-    #         false -> tab characters are converted to spaces by indent
-    #                  and dedent cmds, and ditto TAB keystrokes
-    # indentwidth is the number of characters per logical indent level.
-    # tabwidth is the display width of a literal tab character.
-    # CAUTION:  telling Tk to use anything other than its default
-    # tab setting causes it to use an entirely different tabbing algorithm,
-    # treating tab stops as fixed distances from the left margin.
-    # Nobody expects this, so for now tabwidth should never be changed.
-    usetabs = 1
-    indentwidth = 4
-    tabwidth = 8    # for IDLE use, must remain 8 until Tk is fixed
-
-    # If context_use_ps1 is true, parsing searches back for a ps1 line;
-    # else searches for a popular (if, def, ...) Python stmt.
-    context_use_ps1 = 0
-
-    # When searching backwards for a reliable place to begin parsing,
-    # first start num_context_lines[0] lines back, then
-    # num_context_lines[1] lines back if that didn't work, and so on.
-    # The last value should be huge (larger than the # of lines in a
-    # conceivable file).
-    # Making the initial values larger slows things down more often.
-    num_context_lines = 50, 500, 5000000
-
-    def __init__(self, editwin):
-        self.editwin = editwin
-        self.text = editwin.text
-
-    def config(self, **options):
-        for key, value in options.items():
-            if key == 'usetabs':
-                self.usetabs = value
-            elif key == 'indentwidth':
-                self.indentwidth = value
-            elif key == 'tabwidth':
-                self.tabwidth = value
-            elif key == 'context_use_ps1':
-                self.context_use_ps1 = value
-            else:
-                raise KeyError, "bad option name: %s" % `key`
-
-    # If ispythonsource and guess are true, guess a good value for
-    # indentwidth based on file content (if possible), and if
-    # indentwidth != tabwidth set usetabs false.
-    # In any case, adjust the Text widget's view of what a tab
-    # character means.
-
-    def set_indentation_params(self, ispythonsource, guess=1):
-        if guess and ispythonsource:
-            i = self.guess_indent()
-            if 2 <= i <= 8:
-                self.indentwidth = i
-            if self.indentwidth != self.tabwidth:
-                self.usetabs = 0
-
-        self.editwin.set_tabwidth(self.tabwidth)
-
-    def smart_backspace_event(self, event):
-        text = self.text
-        first, last = self.editwin.get_selection_indices()
-        if first and last:
-            text.delete(first, last)
-            text.mark_set("insert", first)
-            return "break"
-        # Delete whitespace left, until hitting a real char or closest
-        # preceding virtual tab stop.
-        chars = text.get("insert linestart", "insert")
-        if chars == '':
-            if text.compare("insert", ">", "1.0"):
-                # easy: delete preceding newline
-                text.delete("insert-1c")
-            else:
-                text.bell()     # at start of buffer
-            return "break"
-        if  chars[-1] not in " \t":
-            # easy: delete preceding real char
-            text.delete("insert-1c")
-            return "break"
-        # Ick.  It may require *inserting* spaces if we back up over a
-        # tab character!  This is written to be clear, not fast.
-        expand, tabwidth = string.expandtabs, self.tabwidth
-        have = len(expand(chars, tabwidth))
-        assert have > 0
-        want = int((have - 1) / self.indentwidth) * self.indentwidth
-        ncharsdeleted = 0
-        while 1:
-            chars = chars[:-1]
-            ncharsdeleted = ncharsdeleted + 1
-            have = len(expand(chars, tabwidth))
-            if have <= want or chars[-1] not in " \t":
-                break
-        text.undo_block_start()
-        text.delete("insert-%dc" % ncharsdeleted, "insert")
-        if have < want:
-            text.insert("insert", ' ' * (want - have))
-        text.undo_block_stop()
-        return "break"
-
-    def smart_indent_event(self, event):
-        # if intraline selection:
-        #     delete it
-        # elif multiline selection:
-        #     do indent-region & return
-        # indent one level
-        text = self.text
-        first, last = self.editwin.get_selection_indices()
-        text.undo_block_start()
-        try:
-            if first and last:
-                if index2line(first) != index2line(last):
-                    return self.indent_region_event(event)
-                text.delete(first, last)
-                text.mark_set("insert", first)
-            prefix = text.get("insert linestart", "insert")
-            raw, effective = classifyws(prefix, self.tabwidth)
-            if raw == len(prefix):
-                # only whitespace to the left
-                self.reindent_to(effective + self.indentwidth)
-            else:
-                if self.usetabs:
-                    pad = '\t'
-                else:
-                    effective = len(string.expandtabs(prefix,
-                                                      self.tabwidth))
-                    n = self.indentwidth
-                    pad = ' ' * (n - effective % n)
-                text.insert("insert", pad)
-            text.see("insert")
-            return "break"
-        finally:
-            text.undo_block_stop()
-
-    def newline_and_indent_event(self, event):
-        text = self.text
-        first, last = self.editwin.get_selection_indices()
-        text.undo_block_start()
-        try:
-            if first and last:
-                text.delete(first, last)
-                text.mark_set("insert", first)
-            line = text.get("insert linestart", "insert")
-            i, n = 0, len(line)
-            while i < n and line[i] in " \t":
-                i = i+1
-            if i == n:
-                # the cursor is in or at leading indentation; just inject
-                # an empty line at the start
-                text.insert("insert linestart", '\n')
-                return "break"
-            indent = line[:i]
-            # strip whitespace before insert point
-            i = 0
-            while line and line[-1] in " \t":
-                line = line[:-1]
-                i = i+1
-            if i:
-                text.delete("insert - %d chars" % i, "insert")
-            # strip whitespace after insert point
-            while text.get("insert") in " \t":
-                text.delete("insert")
-            # start new line
-            text.insert("insert", '\n')
-
-            # adjust indentation for continuations and block
-            # open/close first need to find the last stmt
-            lno = index2line(text.index('insert'))
-            y = PyParse.Parser(self.indentwidth, self.tabwidth)
-            for context in self.num_context_lines:
-                startat = max(lno - context, 1)
-                startatindex = `startat` + ".0"
-                rawtext = text.get(startatindex, "insert")
-                y.set_str(rawtext)
-                bod = y.find_good_parse_start(
-                          self.context_use_ps1,
-                          self._build_char_in_string_func(startatindex))
-                if bod is not None or startat == 1:
-                    break
-            y.set_lo(bod or 0)
-            c = y.get_continuation_type()
-            if c != PyParse.C_NONE:
-                # The current stmt hasn't ended yet.
-                if c == PyParse.C_STRING:
-                    # inside a string; just mimic the current indent
-                    text.insert("insert", indent)
-                elif c == PyParse.C_BRACKET:
-                    # line up with the first (if any) element of the
-                    # last open bracket structure; else indent one
-                    # level beyond the indent of the line with the
-                    # last open bracket
-                    self.reindent_to(y.compute_bracket_indent())
-                elif c == PyParse.C_BACKSLASH:
-                    # if more than one line in this stmt already, just
-                    # mimic the current indent; else if initial line
-                    # has a start on an assignment stmt, indent to
-                    # beyond leftmost =; else to beyond first chunk of
-                    # non-whitespace on initial line
-                    if y.get_num_lines_in_stmt() > 1:
-                        text.insert("insert", indent)
-                    else:
-                        self.reindent_to(y.compute_backslash_indent())
-                else:
-                    assert 0, "bogus continuation type " + `c`
-                return "break"
-
-            # This line starts a brand new stmt; indent relative to
-            # indentation of initial line of closest preceding
-            # interesting stmt.
-            indent = y.get_base_indent_string()
-            text.insert("insert", indent)
-            if y.is_block_opener():
-                self.smart_indent_event(event)
-            elif indent and y.is_block_closer():
-                self.smart_backspace_event(event)
-            return "break"
-        finally:
-            text.see("insert")
-            text.undo_block_stop()
-
-    auto_indent = newline_and_indent_event
-
-    # Our editwin provides a is_char_in_string function that works
-    # with a Tk text index, but PyParse only knows about offsets into
-    # a string. This builds a function for PyParse that accepts an
-    # offset.
-
-    def _build_char_in_string_func(self, startindex):
-        def inner(offset, _startindex=startindex,
-                  _icis=self.editwin.is_char_in_string):
-            return _icis(_startindex + "+%dc" % offset)
-        return inner
-
-    def indent_region_event(self, event):
-        head, tail, chars, lines = self.get_region()
-        for pos in range(len(lines)):
-            line = lines[pos]
-            if line:
-                raw, effective = classifyws(line, self.tabwidth)
-                effective = effective + self.indentwidth
-                lines[pos] = self._make_blanks(effective) + line[raw:]
-        self.set_region(head, tail, chars, lines)
-        return "break"
-
-    def dedent_region_event(self, event):
-        head, tail, chars, lines = self.get_region()
-        for pos in range(len(lines)):
-            line = lines[pos]
-            if line:
-                raw, effective = classifyws(line, self.tabwidth)
-                effective = max(effective - self.indentwidth, 0)
-                lines[pos] = self._make_blanks(effective) + line[raw:]
-        self.set_region(head, tail, chars, lines)
-        return "break"
-
-    def comment_region_event(self, event):
-        head, tail, chars, lines = self.get_region()
-        for pos in range(len(lines) - 1):
-            line = lines[pos]
-            lines[pos] = '##' + line
-        self.set_region(head, tail, chars, lines)
-
-    def uncomment_region_event(self, event):
-        head, tail, chars, lines = self.get_region()
-        for pos in range(len(lines)):
-            line = lines[pos]
-            if not line:
-                continue
-            if line[:2] == '##':
-                line = line[2:]
-            elif line[:1] == '#':
-                line = line[1:]
-            lines[pos] = line
-        self.set_region(head, tail, chars, lines)
-
-    def tabify_region_event(self, event):
-        head, tail, chars, lines = self.get_region()
-        tabwidth = self._asktabwidth()
-        for pos in range(len(lines)):
-            line = lines[pos]
-            if line:
-                raw, effective = classifyws(line, tabwidth)
-                ntabs, nspaces = divmod(effective, tabwidth)
-                lines[pos] = '\t' * ntabs + ' ' * nspaces + line[raw:]
-        self.set_region(head, tail, chars, lines)
-
-    def untabify_region_event(self, event):
-        head, tail, chars, lines = self.get_region()
-        tabwidth = self._asktabwidth()
-        for pos in range(len(lines)):
-            lines[pos] = string.expandtabs(lines[pos], tabwidth)
-        self.set_region(head, tail, chars, lines)
-
-    def toggle_tabs_event(self, event):
-        if self.editwin.askyesno(
-              "Toggle tabs",
-              "Turn tabs " + ("on", "off")[self.usetabs] + "?",
-              parent=self.text):
-            self.usetabs = not self.usetabs
-        return "break"
-
-    # XXX this isn't bound to anything -- see class tabwidth comments
-    def change_tabwidth_event(self, event):
-        new = self._asktabwidth()
-        if new != self.tabwidth:
-            self.tabwidth = new
-            self.set_indentation_params(0, guess=0)
-        return "break"
-
-    def change_indentwidth_event(self, event):
-        new = self.editwin.askinteger(
-                  "Indent width",
-                  "New indent width (1-16)",
-                  parent=self.text,
-                  initialvalue=self.indentwidth,
-                  minvalue=1,
-                  maxvalue=16)
-        if new and new != self.indentwidth:
-            self.indentwidth = new
-        return "break"
-
-    def get_region(self):
-        text = self.text
-        first, last = self.editwin.get_selection_indices()
-        if first and last:
-            head = text.index(first + " linestart")
-            tail = text.index(last + "-1c lineend +1c")
-        else:
-            head = text.index("insert linestart")
-            tail = text.index("insert lineend +1c")
-        chars = text.get(head, tail)
-        lines = string.split(chars, "\n")
-        return head, tail, chars, lines
-
-    def set_region(self, head, tail, chars, lines):
-        text = self.text
-        newchars = string.join(lines, "\n")
-        if newchars == chars:
-            text.bell()
-            return
-        text.tag_remove("sel", "1.0", "end")
-        text.mark_set("insert", head)
-        text.undo_block_start()
-        text.delete(head, tail)
-        text.insert(head, newchars)
-        text.undo_block_stop()
-        text.tag_add("sel", head, "insert")
-
-    # Make string that displays as n leading blanks.
-
-    def _make_blanks(self, n):
-        if self.usetabs:
-            ntabs, nspaces = divmod(n, self.tabwidth)
-            return '\t' * ntabs + ' ' * nspaces
-        else:
-            return ' ' * n
-
-    # Delete from beginning of line to insert point, then reinsert
-    # column logical (meaning use tabs if appropriate) spaces.
-
-    def reindent_to(self, column):
-        text = self.text
-        text.undo_block_start()
-        if text.compare("insert linestart", "!=", "insert"):
-            text.delete("insert linestart", "insert")
-        if column:
-            text.insert("insert", self._make_blanks(column))
-        text.undo_block_stop()
-
-    def _asktabwidth(self):
-        return self.editwin.askinteger(
-            "Tab width",
-            "Spaces per tab?",
-            parent=self.text,
-            initialvalue=self.tabwidth,
-            minvalue=1,
-            maxvalue=16) or self.tabwidth
-
-    # Guess indentwidth from text content.
-    # Return guessed indentwidth.  This should not be believed unless
-    # it's in a reasonable range (e.g., it will be 0 if no indented
-    # blocks are found).
-
-    def guess_indent(self):
-        opener, indented = IndentSearcher(self.text, self.tabwidth).run()
-        if opener and indented:
-            raw, indentsmall = classifyws(opener, self.tabwidth)
-            raw, indentlarge = classifyws(indented, self.tabwidth)
-        else:
-            indentsmall = indentlarge = 0
-        return indentlarge - indentsmall
-
-# "line.col" -> line, as an int
-def index2line(index):
-    return int(float(index))
-
-# Look at the leading whitespace in s.
-# Return pair (# of leading ws characters,
-#              effective # of leading blanks after expanding
-#              tabs to width tabwidth)
-
-def classifyws(s, tabwidth):
-    raw = effective = 0
-    for ch in s:
-        if ch == ' ':
-            raw = raw + 1
-            effective = effective + 1
-        elif ch == '\t':
-            raw = raw + 1
-            effective = (effective / tabwidth + 1) * tabwidth
-        else:
-            break
-    return raw, effective
-
-import tokenize
-_tokenize = tokenize
-del tokenize
-
-class IndentSearcher:
-
-    # .run() chews over the Text widget, looking for a block opener
-    # and the stmt following it.  Returns a pair,
-    #     (line containing block opener, line containing stmt)
-    # Either or both may be None.
-
-    def __init__(self, text, tabwidth):
-        self.text = text
-        self.tabwidth = tabwidth
-        self.i = self.finished = 0
-        self.blkopenline = self.indentedline = None
-
-    def readline(self):
-        if self.finished:
-            return ""
-        i = self.i = self.i + 1
-        mark = `i` + ".0"
-        if self.text.compare(mark, ">=", "end"):
-            return ""
-        return self.text.get(mark, mark + " lineend+1c")
-
-    def tokeneater(self, type, token, start, end, line,
-                   INDENT=_tokenize.INDENT,
-                   NAME=_tokenize.NAME,
-                   OPENERS=('class', 'def', 'for', 'if', 'try', 'while')):
-        if self.finished:
-            pass
-        elif type == NAME and token in OPENERS:
-            self.blkopenline = line
-        elif type == INDENT and self.blkopenline:
-            self.indentedline = line
-            self.finished = 1
-
-    def run(self):
-        save_tabsize = _tokenize.tabsize
-        _tokenize.tabsize = self.tabwidth
-        try:
-            try:
-                _tokenize.tokenize(self.readline, self.tokeneater)
-            except _tokenize.TokenError:
-                # since we cut off the tokenizer early, we can trigger
-                # spurious errors
-                pass
-        finally:
-            _tokenize.tabsize = save_tabsize
-        return self.blkopenline, self.indentedline
diff --git a/Lib/idlelib/Bindings.py b/Lib/idlelib/Bindings.py
deleted file mode 100644 (file)
index 33c6c44..0000000
+++ /dev/null
@@ -1,67 +0,0 @@
-# This file defines the menu contents and key bindings.  Note that
-# there is additional configuration information in the EditorWindow
-# class (and subclasses): the menus are created there based on the
-# menu_specs (class) variable, and menus not created are silently
-# skipped by the code here.  This makes it possible to define the
-# Debug menu here, which is only present in the PythonShell window.
-
-# changes by dscherer@cmu.edu:
-#   - Python shell moved to 'Run' menu
-#   - "Help" renamed to "IDLE Help" to distinguish from Python help.
-#     The distinction between the environment and the language is dim
-#     or nonexistent in a novice's mind.
-#   - Silly advice added
-
-import sys
-import string
-from keydefs import *
-
-menudefs = [
- # underscore prefixes character to underscore
- ('file', [
-   ('_New window', '<<open-new-window>>'),
-   ('_Open...', '<<open-window-from-file>>'),
-   ('Open _module...', '<<open-module>>'),
-   ('Class _browser', '<<open-class-browser>>'),
-   ('_Path browser', '<<open-path-browser>>'),
-   None,
-   ('_Save', '<<save-window>>'),
-   ('Save _As...', '<<save-window-as-file>>'),
-   ('Save Co_py As...', '<<save-copy-of-window-as-file>>'),
-   None,
-   ('_Close', '<<close-window>>'),
-   ('E_xit', '<<close-all-windows>>'),
-  ]),
- ('edit', [
-   ('_Undo', '<<undo>>'),
-   ('_Redo', '<<redo>>'),
-   None,
-   ('Cu_t', '<<Cut>>'),
-   ('_Copy', '<<Copy>>'),
-   ('_Paste', '<<Paste>>'),
-   ('Select _All', '<<select-all>>'),
-  ]),
- ('run',[
-   ('Python shell', '<<open-python-shell>>'),
- ]),
- ('debug', [
-   ('_Go to file/line', '<<goto-file-line>>'),
-   ('_Stack viewer', '<<open-stack-viewer>>'),
-   ('!_Debugger', '<<toggle-debugger>>'),
-   ('!_Auto-open stack viewer', '<<toggle-jit-stack-viewer>>' ),
-  ]),
- ('help', [
-   ('_IDLE Help...', '<<help>>'),
-   ('Python _Documentation...', '<<python-docs>>'),
-   ('_Advice...', '<<good-advice>>'),
-   None,
-   ('_About IDLE...', '<<about-idle>>'),
-  ]),
-]
-
-if sys.platform == 'win32':
-    default_keydefs = windows_keydefs
-else:
-    default_keydefs = unix_keydefs
-
-del sys
diff --git a/Lib/idlelib/CallTipWindow.py b/Lib/idlelib/CallTipWindow.py
deleted file mode 100644 (file)
index cbeab8c..0000000
+++ /dev/null
@@ -1,71 +0,0 @@
-# A CallTip window class for Tkinter/IDLE.
-# After ToolTip.py, which uses ideas gleaned from PySol
-
-# Used by the CallTips IDLE extension.
-import os
-from Tkinter import *
-
-class CallTip:
-
-    def __init__(self, widget):
-        self.widget = widget
-        self.tipwindow = None
-        self.id = None
-        self.x = self.y = 0
-
-    def showtip(self, text):
-        self.text = text
-        if self.tipwindow or not self.text:
-            return
-        self.widget.see("insert")
-        x, y, cx, cy = self.widget.bbox("insert")
-        x = x + self.widget.winfo_rootx() + 2
-        y = y + cy + self.widget.winfo_rooty()
-        self.tipwindow = tw = Toplevel(self.widget)
-        tw.wm_overrideredirect(1)
-        tw.wm_geometry("+%d+%d" % (x, y))
-        label = Label(tw, text=self.text, justify=LEFT,
-                      background="#ffffe0", relief=SOLID, borderwidth=1,
-                      font = self.widget['font'])
-        label.pack()
-                      
-    def hidetip(self):
-        tw = self.tipwindow
-        self.tipwindow = None
-        if tw:
-            tw.destroy()
-
-
-###############################
-#
-# Test Code
-#
-class container: # Conceptually an editor_window
-    def __init__(self):
-        root = Tk()
-        text = self.text = Text(root)
-        text.pack(side=LEFT, fill=BOTH, expand=1)
-        text.insert("insert", "string.split")
-        root.update()
-        self.calltip = CallTip(text)
-
-        text.event_add("<<calltip-show>>", "(")
-        text.event_add("<<calltip-hide>>", ")")
-        text.bind("<<calltip-show>>", self.calltip_show)
-        text.bind("<<calltip-hide>>", self.calltip_hide)
-        
-        text.focus_set()
-        # root.mainloop() # not in idle
-
-    def calltip_show(self, event):
-        self.calltip.showtip("Hello world")
-
-    def calltip_hide(self, event):
-        self.calltip.hidetip()
-
-def main():
-    # Test code
-    c=container()
-
-if __name__=='__main__':
-    main()
diff --git a/Lib/idlelib/CallTips.py b/Lib/idlelib/CallTips.py
deleted file mode 100644 (file)
index 04eccde..0000000
+++ /dev/null
@@ -1,190 +0,0 @@
-# CallTips.py - An IDLE extension that provides "Call Tips" - ie, a floating window that
-# displays parameter information as you open parens.
-
-import string
-import sys
-import types
-
-class CallTips:
-
-    menudefs = [
-    ]
-
-    keydefs = {
-        '<<paren-open>>': ['<Key-parenleft>'],
-        '<<paren-close>>': ['<Key-parenright>'],
-        '<<check-calltip-cancel>>': ['<KeyRelease>'],
-        '<<calltip-cancel>>': ['<ButtonPress>', '<Key-Escape>'],
-    }
-
-    windows_keydefs = {
-    }
-
-    unix_keydefs = {
-    }
-
-    def __init__(self, editwin):
-        self.editwin = editwin
-        self.text = editwin.text
-        self.calltip = None
-        if hasattr(self.text, "make_calltip_window"):
-            self._make_calltip_window = self.text.make_calltip_window
-        else:
-            self._make_calltip_window = self._make_tk_calltip_window
-
-    def close(self):
-        self._make_calltip_window = None
-
-    # Makes a Tk based calltip window.  Used by IDLE, but not Pythonwin.
-    # See __init__ above for how this is used.
-    def _make_tk_calltip_window(self):
-        import CallTipWindow
-        return CallTipWindow.CallTip(self.text)
-
-    def _remove_calltip_window(self):
-        if self.calltip:
-            self.calltip.hidetip()
-            self.calltip = None
-        
-    def paren_open_event(self, event):
-        self._remove_calltip_window()
-        arg_text = get_arg_text(self.get_object_at_cursor())
-        if arg_text:
-            self.calltip_start = self.text.index("insert")
-            self.calltip = self._make_calltip_window()
-            self.calltip.showtip(arg_text)
-        return "" #so the event is handled normally.
-
-    def paren_close_event(self, event):
-        # Now just hides, but later we should check if other
-        # paren'd expressions remain open.
-        self._remove_calltip_window()
-        return "" #so the event is handled normally.
-
-    def check_calltip_cancel_event(self, event):
-        if self.calltip:
-            # If we have moved before the start of the calltip,
-            # or off the calltip line, then cancel the tip.
-            # (Later need to be smarter about multi-line, etc)
-            if self.text.compare("insert", "<=", self.calltip_start) or \
-               self.text.compare("insert", ">", self.calltip_start + " lineend"):
-                self._remove_calltip_window()
-        return "" #so the event is handled normally.
-
-    def calltip_cancel_event(self, event):
-        self._remove_calltip_window()
-        return "" #so the event is handled normally.
-
-    def get_object_at_cursor(self,
-                             wordchars="._" + string.uppercase + string.lowercase + string.digits):
-        # XXX - This needs to be moved to a better place
-        # so the "." attribute lookup code can also use it.
-        text = self.text
-        chars = text.get("insert linestart", "insert")
-        i = len(chars)
-        while i and chars[i-1] in wordchars:
-            i = i-1
-        word = chars[i:]
-        if word:
-            # How is this for a hack!
-            import sys, __main__
-            namespace = sys.modules.copy()
-            namespace.update(__main__.__dict__)
-            try:
-                    return eval(word, namespace)
-            except:
-                    pass
-        return None # Can't find an object.
-
-def _find_constructor(class_ob):
-    # Given a class object, return a function object used for the
-    # constructor (ie, __init__() ) or None if we can't find one.
-    try:
-        return class_ob.__init__.im_func
-    except AttributeError:
-        for base in class_ob.__bases__:
-            rc = _find_constructor(base)
-            if rc is not None: return rc
-    return None
-
-def get_arg_text(ob):
-    # Get a string describing the arguments for the given object.
-    argText = ""
-    if ob is not None:
-        argOffset = 0
-        if type(ob)==types.ClassType:
-            # Look for the highest __init__ in the class chain.
-            fob = _find_constructor(ob)
-            if fob is None:
-                fob = lambda: None
-            else:
-                argOffset = 1
-        elif type(ob)==types.MethodType:
-            # bit of a hack for methods - turn it into a function
-            # but we drop the "self" param.
-            fob = ob.im_func
-            argOffset = 1
-        else:
-            fob = ob
-        # Try and build one for Python defined functions
-        if type(fob) in [types.FunctionType, types.LambdaType]:
-            try:
-                realArgs = fob.func_code.co_varnames[argOffset:fob.func_code.co_argcount]
-                defaults = fob.func_defaults or []
-                defaults = list(map(lambda name: "=%s" % name, defaults))
-                defaults = [""] * (len(realArgs)-len(defaults)) + defaults
-                items = map(lambda arg, dflt: arg+dflt, realArgs, defaults)
-                if fob.func_code.co_flags & 0x4:
-                    items.append("...")
-                if fob.func_code.co_flags & 0x8:
-                    items.append("***")
-                argText = string.join(items , ", ")
-                argText = "(%s)" % argText
-            except:
-                pass
-        # See if we can use the docstring
-        if hasattr(ob, "__doc__") and ob.__doc__:
-            pos = string.find(ob.__doc__, "\n")
-            if pos<0 or pos>70: pos=70
-            if argText: argText = argText + "\n"
-            argText = argText + ob.__doc__[:pos]
-
-    return argText
-
-#################################################
-#
-# Test code
-#
-if __name__=='__main__':
-
-    def t1(): "()"
-    def t2(a, b=None): "(a, b=None)"
-    def t3(a, *args): "(a, ...)"
-    def t4(*args): "(...)"
-    def t5(a, *args): "(a, ...)"
-    def t6(a, b=None, *args, **kw): "(a, b=None, ..., ***)"
-
-    class TC:
-        "(a=None, ...)"
-        def __init__(self, a=None, *b): "(a=None, ...)"
-        def t1(self): "()"
-        def t2(self, a, b=None): "(a, b=None)"
-        def t3(self, a, *args): "(a, ...)"
-        def t4(self, *args): "(...)"
-        def t5(self, a, *args): "(a, ...)"
-        def t6(self, a, b=None, *args, **kw): "(a, b=None, ..., ***)"
-
-    def test( tests ):
-        failed=[]
-        for t in tests:
-            expected = t.__doc__ + "\n" + t.__doc__
-            if get_arg_text(t) != expected:
-                failed.append(t)
-                print "%s - expected %s, but got %s" % (t, `expected`, `get_arg_text(t)`)
-        print "%d of %d tests failed" % (len(failed), len(tests))
-
-    tc = TC()
-    tests = t1, t2, t3, t4, t5, t6, \
-            TC, tc.t1, tc.t2, tc.t3, tc.t4, tc.t5, tc.t6
-
-    test(tests)
diff --git a/Lib/idlelib/ChangeLog b/Lib/idlelib/ChangeLog
deleted file mode 100644 (file)
index b853a34..0000000
+++ /dev/null
@@ -1,1017 +0,0 @@
-Tue Feb 15 18:08:19 2000  Guido van Rossum  <guido@cnri.reston.va.us>
-
-       * NEWS.txt: Notice status bar and stack viewer.
-
-       * EditorWindow.py: Support for Moshe's status bar.
-
-       * MultiStatusBar.py: Status bar code -- by Moshe Zadka.
-
-       * OldStackViewer.py:
-       Adding the old stack viewer implementation back, for the debugger.
-
-       * StackViewer.py: New stack viewer, uses a tree widget.
-       (XXX: the debugger doesn't yet use this.)
-
-       * WindowList.py:
-       Correct a typo and remove an unqualified except that was hiding the error.
-
-       * ClassBrowser.py: Add an XXX comment about the ClassBrowser AIP.
-
-       * ChangeLog: Updated change log.
-
-       * NEWS.txt: News update.  Probably incomplete; what else is new?
-
-       * README.txt:
-       Updated for pending IDLE 0.5 release (still very rough -- just getting
-       it out in a more convenient format than CVS).
-
-       * TODO.txt: Tiny addition.
-
-Thu Sep  9 14:16:02 1999  Guido van Rossum  <guido@cnri.reston.va.us>
-
-       * TODO.txt: A few new TODO entries.
-
-Thu Aug 26 23:06:22 1999  Guido van Rossum  <guido@cnri.reston.va.us>
-
-       * Bindings.py: Add Python Documentation entry to Help menu.
-
-       * EditorWindow.py:
-       Find the help.txt file relative to __file__ or ".", not in sys.path.
-       (Suggested by Moshe Zadka, but implemented differently.)
-
-       Add <<python-docs>> event which, on Unix, brings up Netscape pointing
-       to http://www.python.doc/current/ (a local copy would be nice but its
-       location can't be predicted).  Windows solution TBD.
-
-Wed Aug 11 14:55:43 1999  Guido van Rossum  <guido@cnri.reston.va.us>
-
-       * TreeWidget.py:
-       Moshe noticed an inconsistency in his comment, so I'm rephrasing it to
-       be clearer.
-
-       * TreeWidget.py:
-       Patch inspired by Moshe Zadka to search for the Icons directory in the
-       same directory as __file__, rather than searching for it along sys.path.
-       This works better when idle is a package.
-
-Thu Jul 15 13:11:02 1999  Guido van Rossum  <guido@cnri.reston.va.us>
-
-       * TODO.txt: New wishes.
-
-Sat Jul 10 13:17:35 1999  Guido van Rossum  <guido@cnri.reston.va.us>
-
-       * IdlePrefs.py:
-       Make the color for stderr red (i.e. the standard warning/danger/stop
-       color) rather than green.  Suggested by Sam Schulenburg.
-
-Fri Jun 25 17:26:34 1999  Guido van Rossum  <guido@cnri.reston.va.us>
-
-       * PyShell.py: Close debugger when closing.  This may break a cycle.
-
-       * Debugger.py: Break cycle on close.
-
-       * ClassBrowser.py: Destroy the tree when closing.
-
-       * TreeWidget.py: Add destroy() method to recursively destroy a tree.
-
-       * PyShell.py: Extend _close() to break cycles.
-       Break some other cycles too (and destroy the root when done).
-
-       * EditorWindow.py:
-       Add _close() method that does the actual cleanup (close() asks the
-       user what they want first if there's unsaved stuff, and may cancel).
-       It closes more than before.
-
-       Add unload_extensions() method to unload all extensions; called from
-       _close().  It calls an extension's close() method if it has one.
-
-       * Percolator.py: Add close() method that breaks cycles.
-
-       * WidgetRedirector.py: Add unregister() method.
-       Unregister everything at closing.
-       Don't call close() in __del__, rely on explicit call to close().
-
-       * IOBinding.py, FormatParagraph.py, CallTips.py:
-       Add close() method that breaks a cycle.
-
-Fri Jun 11 15:03:00 1999  Guido van Rossum  <guido@cnri.reston.va.us>
-
-       * AutoIndent.py, EditorWindow.py, FormatParagraph.py:
-       Tim Peters smart.patch:
-
-       EditorWindow.py:
-
-       + Added get_tabwidth & set_tabwidth "virtual text" methods, that get/set the
-       widget's view of what a tab means.
-
-       + Moved TK_TABWIDTH_DEFAULT here from AutoIndent.
-
-       + Renamed Mark's get_selection_index to get_selection_indices (sorry, Mark,
-       but the name was plain wrong <wink>).
-
-       FormatParagraph.py:  renamed use of get_selection_index.
-
-       AutoIndent.py:
-
-       + Moved TK_TABWIDTH_DEFAULT to EditorWindow.
-
-       + Rewrote set_indentation_params to use new VTW get/set_tabwidth methods.
-
-       + Changed smart_backspace_event to delete whitespace back to closest
-       preceding virtual tab stop or real character (note that this may require
-       inserting characters if backspacing over a tab!).
-
-       + Nuked almost references to the selection tag, in favor of using
-       get_selection_indices.  The sole exception is in set_region, for which no
-       "set_selection" abstraction has yet been agreed upon.
-
-       + Had too much fun using the spiffy new features of the format-paragraph
-       cmd.
-
-Thu Jun 10 17:48:02 1999  Guido van Rossum  <guido@cnri.reston.va.us>
-
-       * FormatParagraph.py:
-       Code by Mark Hammond to format paragraphs embedded in comments.
-       Read the comments (which I reformatted using the new feature :-)
-       for some limitations.
-
-       * EditorWindow.py:
-       Added abstraction get_selection_index() (Mark Hammond).  Also
-       reformatted some comment blocks to show off a cool feature I'm about
-       to check in next.
-
-       * ClassBrowser.py:
-       Adapt to the new pyclbr's support of listing top-level functions.  If
-       this functionality is not present (e.g. when used with a vintage
-       Python 1.5.2 installation) top-level functions are not listed.
-
-       (Hmm...  Any distribution of IDLE 0.5 should probably include a copy
-       of the new pyclbr.py!)
-
-       * AutoIndent.py:
-       Fix off-by-one error in Tim's recent change to comment_region(): the
-       list of lines returned by get_region() contains an empty line at the
-       end representing the start of the next line, and this shouldn't be
-       commented out!
-
-       * CallTips.py:
-       Mark Hammond writes: Here is another change that allows it to work for
-       class creation - tries to locate an __init__ function.  Also updated
-       the test code to reflect your new "***" change.
-
-       * CallTipWindow.py:
-       Mark Hammond writes: Tim's suggestion of copying the font for the
-       CallTipWindow from the text control makes sense, and actually makes
-       the control look better IMO.
-
-Wed Jun  9 20:34:57 1999  Guido van Rossum  <guido@cnri.reston.va.us>
-
-       * CallTips.py:
-       Append "..." if the appropriate flag (for varargs) in co_flags is set.
-       Ditto "***" for kwargs.
-
-Tue Jun  8 13:06:07 1999  Guido van Rossum  <guido@cnri.reston.va.us>
-
-       * ReplaceDialog.py:
-       Hmm...  Tim didn't turn "replace all" into a single undo block.
-       I think I like it better if it os, so here.
-
-       * ReplaceDialog.py: Tim Peters: made replacement atomic for undo/redo.
-
-       * AutoIndent.py: Tim Peters:
-
-       + Set usetabs=1.  Editing pyclbr.py was driving me nuts <0.6 wink>.
-       usetabs=1 is the Emacs pymode default too, and thanks to indentwidth !=
-       tabwidth magical usetabs disabling, new files are still created with tabs
-       turned off.  The only implication is that if you open a file whose first
-       indent is a single tab, IDLE will now magically use tabs for that file (and
-       set indentwidth to 8).  Note that the whole scheme doesn't work right for
-       PythonWin, though, since Windows users typically set tabwidth to 4; Mark
-       probably has to hide the IDLE algorithm from them (which he already knows).
-
-       + Changed comment_region_event to stick "##" in front of every line.  The
-       "holes" previously left on blank lines were visually confusing (made it
-       needlessly hard to figure out what to uncomment later).
-
-Mon Jun  7 15:38:40 1999  Guido van Rossum  <guido@cnri.reston.va.us>
-
-       * TreeWidget.py, ObjectBrowser.py:
-       Remove unnecessary reference to pyclbr from test() code.
-
-       * PyParse.py: Tim Peters:
-
-       Smarter logic for finding a parse synch point.
-
-       Does a half to a fifth the work in normal cases; don't notice the speedup,
-       but makes  more breathing room for other extensions.
-
-       Speeds terrible cases by at least a factor of 10. "Terrible" == e.g. you put
-       """ at the start of Tkinter.py, undo it, zoom to the bottom, and start
-       typing in code.  Used to take about 8 seconds for ENTER to respond, now some
-       large fraction of a second.  The new code gets indented correctly, despite
-       that it all remains "string colored" until the colorizer catches up (after
-       which, ENTER appears instantaneous again).
-
-Fri Jun  4 19:21:19 1999  Guido van Rossum  <guido@cnri.reston.va.us>
-
-       * extend.py: Might as well enable CallTips by default.
-       If there are too many complaints I'll remove it again or fix it.
-
-Thu Jun  3 14:32:16 1999  Guido van Rossum  <guido@cnri.reston.va.us>
-
-       * AutoIndent.py, EditorWindow.py, PyParse.py:
-       New offerings by Tim Peters; he writes:
-
-       IDLE is now the first Python editor in the Universe not confused by my
-       doctest.py <wink>.
-
-       As threatened, this defines IDLE's is_char_in_string function as a
-       method of EditorWindow.  You just need to define one similarly in
-       whatever it is you pass as editwin to AutoIndent; looking at the
-       EditorWindow.py part of the patch should make this clear.
-
-       * GrepDialog.py: Enclose pattern in quotes in status message.
-
-       * CallTips.py:
-       Mark Hammond fixed some comments and improved the way the tip text is
-       constructed.
-
-Wed Jun  2 18:18:57 1999  Guido van Rossum  <guido@cnri.reston.va.us>
-
-       * CallTips.py:
-       My fix to Mark's code: restore the universal check on <KeyRelease>.
-       Always cancel on <Key-Escape> or <ButtonPress>.
-
-       * CallTips.py:
-       A version that Mark Hammond posted to the newsgroup.  Has some newer
-       stuff for getting the tip.  Had to fix the Key-( and Key-) events
-       for Unix.  Will have to re-apply my patch for catching KeyRelease and
-       ButtonRelease events.
-
-       * CallTipWindow.py, CallTips.py:
-       Call tips by Mark Hammond (plus tiny fix by me.)
-
-       * IdleHistory.py:
-       Changes by Mark Hammond: (1) support optional output_sep argument to
-       the constructor so he can eliminate the sys.ps2 that PythonWin leaves
-       in the source; (2) remove duplicate history items.
-
-       * AutoIndent.py:
-       Changes by Mark Hammond to allow using IDLE extensions in PythonWin as
-       well: make three dialog routines instance variables.
-
-       * EditorWindow.py:
-       Change by Mark Hammond to allow using IDLE extensions in PythonWin as
-       well: make three dialog routines instance variables.
-
-Tue Jun  1 20:06:44 1999  Guido van Rossum  <guido@cnri.reston.va.us>
-
-       * AutoIndent.py: Hah!  A fix of my own to Tim's code!
-       Unix bindings for <<toggle-tabs>> and <<change-indentwidth>> were
-       missing, and somehow that meant the events were never generated,
-       even though they were in the menu.  The new Unix bindings are now
-       the same as the Windows bindings (M-t and M-u).
-
-       * AutoIndent.py, PyParse.py, PyShell.py: Tim Peters again:
-
-       The new version (attached) is fast enough all the time in every real module
-       I have <whew!>.  You can make it slow by, e.g., creating an open list with
-       5,000 90-character identifiers (+ trailing comma) each on its own line, then
-       adding an item to the end -- but that still consumes less than a second on
-       my P5-166.  Response time in real code appears instantaneous.
-
-       Fixed some bugs.
-
-       New feature:  when hitting ENTER and the cursor is beyond the line's leading
-       indentation, whitespace is removed on both sides of the cursor; before
-       whitespace was removed only on the left; e.g., assuming the cursor is
-       between the comma and the space:
-
-       def something(arg1, arg2):
-                          ^ cursor to the left of here, and hit ENTER
-                      arg2):   # new line used to end up here
-                     arg2):    # but now lines up the way you expect
-
-       New hack:  AutoIndent has grown a context_use_ps1 Boolean config option,
-       defaulting to 0 (false) and set to 1 (only) by PyShell.  Reason:  handling
-       the fancy stuff requires looking backward for a parsing synch point; ps1
-       lines are the only sensible thing to look for in a shell window, but are a
-       bad thing to look for in a file window (ps1 lines show up in my module
-       docstrings often).  PythonWin's shell should set this true too.
-
-       Persistent problem:  strings containing def/class can still screw things up
-       completely.  No improvement.  Simplest workaround is on the user's head, and
-       consists of inserting e.g.
-
-       def _(): pass
-
-       (or any other def/class) after the end of the multiline string that's
-       screwing them up.  This is especially irksome because IDLE's syntax coloring
-       is *not* confused, so when this happens the colors don't match the
-       indentation behavior they see.
-
-       * AutoIndent.py: Tim Peters again:
-
-       [Tim, after adding some bracket smarts to AutoIndent.py]
-       > ...
-       > What it can't possibly do without reparsing large gobs of text is
-       > suggest a reasonable indent level after you've *closed* a bracket
-       > left open on some previous line.
-       > ...
-
-       The attached can, and actually fast enough to use -- most of the time.  The
-       code is tricky beyond belief to achieve that, but it works so far; e.g.,
-
-               return len(string.expandtabs(str[self.stmt_start :
-                                                ^ indents to caret
-                                                i],
-                                            ^ indents to caret
-                                            self.tabwidth)) + 1
-           ^ indents to caret
-
-       It's about as smart as pymode now, wrt both bracket and backslash
-       continuation rules.  It does require reparsing large gobs of text, and if it
-       happens to find something that looks like a "def" or "class" or sys.ps1
-       buried in a multiline string, but didn't suck up enough preceding text to
-       see the start of the string, it's completely hosed.  I can't repair that --
-       it's just too slow to reparse from the start of the file all the time.
-
-       AutoIndent has grown a new num_context_lines tuple attribute that controls
-       how far to look back, and-- like other params --this could/should be made
-       user-overridable at startup and per-file on the fly.
-
-       * PyParse.py: New file by Tim Peters:
-
-       One new file in the attached, PyParse.py.  The LineStudier (whatever it was
-       called <wink>) class was removed from AutoIndent; PyParse subsumes its
-       functionality.
-
-       * AutoIndent.py: Tim Peters keeps revising this module (more to come):
-
-       Removed "New tabwidth" menu binding.
-
-       Added "a tab means how many spaces?" dialog to block tabify and untabify.  I
-       think prompting for this is good now:  they're usually at-most-once-per-file
-       commands, and IDLE can't let them change tabwidth from the Tk default
-       anymore, so IDLE can no longer presume to have any idea what a tab means.
-
-       Irony:  for the purpose of keeping comments aligned via tabs, Tk's
-       non-default approach is much nicer than the Emacs/Notepad/Codewright/vi/etc
-       approach.
-
-       * EditorWindow.py:
-       1. Catch NameError on import (could be raised by case mismatch on Windows).
-       2. No longer need to reset pyclbr cache and show watch cursor when calling
-          ClassBrowser -- the ClassBrowser takes care of pyclbr and the TreeWidget
-          takes care of the watch cursor.
-       3. Reset the focus to the current window after error message about class
-          browser on buffer without filename.
-
-       * Icons/minusnode.gif, Icons/plusnode.gif: Missed a few.
-
-       * ClassBrowser.py, PathBrowser.py: Rewritten based on TreeWidget.py
-
-       * ObjectBrowser.py: Object browser, based on TreeWidget.py.
-
-       * TreeWidget.py: Tree widget done right.
-
-       * ToolTip.py: As yet unused code for tool tips.
-
-       * ScriptBinding.py:
-       Ensure sys.argv[0] is the script name on Run Script.
-
-       * ZoomHeight.py: Move zoom height functionality to separate function.
-
-       * Icons/folder.gif, Icons/openfolder.gif, Icons/python.gif, Icons/tk.gif:
-       A few icons used by ../TreeWidget.py and its callers.
-
-       * AutoIndent.py: New version by Tim Peters improves block opening test.
-
-Fri May 21 04:46:17 1999  Guido van Rossum  <guido@cnri.reston.va.us>
-
-       * Attic/History.py, PyShell.py: Rename History to IdleHistory.
-       Add isatty() to pseudo files.
-
-       * StackViewer.py: Make initial stack viewer wider
-
-       * TODO.txt: New wishes
-
-       * AutoIndent.py, EditorWindow.py, PyShell.py:
-       Much improved autoindent and handling of tabs,
-       by Tim Peters.
-
-Mon May  3 15:49:52 1999  Guido van Rossum  <guido@cnri.reston.va.us>
-
-       * AutoIndent.py, EditorWindow.py, FormatParagraph.py, UndoDelegator.py:
-       Tim Peters writes:
-
-       I'm still unsure, but couldn't stand the virtual event trickery so tried a
-       different sin (adding undo_block_start/stop methods to the Text instance in
-       EditorWindow.py).  Like it or not, it's efficient and works <wink>.  Better
-       idea?
-
-       Give the attached a whirl.  Even if you hate the implementation, I think
-       you'll like the results.  Think I caught all the "block edit" cmds,
-       including Format Paragraph, plus subtler ones involving smart indents and
-       backspacing.
-
-       * WidgetRedirector.py: Tim Peters writes:
-
-       [W]hile trying to dope out how redirection works, stumbled into two
-       possible glitches.  In the first, it doesn't appear to make sense to try to
-       rename a command that's already been destroyed; in the second, the name
-       "previous" doesn't really bring to mind "ignore the previous value" <wink>.
-
-Fri Apr 30 19:39:25 1999  Guido van Rossum  <guido@cnri.reston.va.us>
-
-       * __init__.py: Support for using idle as a package.
-
-       * PathBrowser.py:
-       Avoid listing files more than once (e.g. foomodule.so has two hits:
-       once for foo + module.so, once for foomodule + .so).
-
-Mon Apr 26 22:20:38 1999  Guido van Rossum  <guido@cnri.reston.va.us>
-
-       * ChangeLog, ColorDelegator.py, PyShell.py: Tim Peters strikes again:
-
-       Ho ho ho -- that's trickier than it sounded!  The colorizer is working with
-       "line.col" strings instead of Text marks, and the absolute coordinates of
-       the point of interest can change across the self.update call (voice of
-       baffled experience, when two quick backspaces no longer fooled it, but a
-       backspace followed by a quick ENTER did <wink>).
-
-       Anyway, the attached appears to do the trick.  CPU usage goes way up when
-       typing quickly into a long triple-quoted string, but the latency is fine for
-       me (a relatively fast typist on a relatively slow machine).  Most of the
-       changes here are left over from reducing the # of vrbl names to help me
-       reason about the logic better; I hope the code is a *little* easier to
-
-Fri Apr 23 14:01:25 1999  Guido van Rossum  <guido@cnri.reston.va.us>
-
-       * EditorWindow.py:
-       Provide full arguments to __import__ so it works in packagized IDLE.
-
-Thu Apr 22 23:20:17 1999  Guido van Rossum  <guido@cnri.reston.va.us>
-
-        * help.txt:
-        Bunch of updates necessary due to recent changes; added docs for File
-        menu, command line and color preferences.
-
-        * Bindings.py: Remove obsolete 'script' menu.
-
-       * TODO.txt: Several wishes fulfilled.
-
-       * OutputWindow.py:
-       Moved classes OnDemandOutputWindow and PseudoFile here,
-       from ScriptBinding.py where they are no longer needed.
-
-       * ScriptBinding.py:
-       Mostly rewritten.  Instead of the old Run module and Debug module,
-       there are two new commands:
-
-       Import module (F5) imports or reloads the module and also adds its
-       name to the __main__ namespace.  This gets executed in the PyShell
-       window under control of its debug settings.
-
-       Run script (Control-F5) is similar but executes the contents of the
-       file directly in the __main__ namespace.
-
-       * PyShell.py: Nits: document use of $IDLESTARTUP; display idle version
-
-       * idlever.py: New version to celebrate new command line
-
-       * OutputWindow.py: Added flush(), for completeness.
-
-       * PyShell.py:
-       A lot of changes to make the command line more useful.  You can now do:
-         idle.py -e file ...    -- to edit files
-         idle.py script arg ... -- to run a script
-         idle.py -c cmd arg ... -- to run a command
-       Other options, see also the usage message (also new!) for more details:
-         -d       -- enable debugger
-         -s       -- run $IDLESTARTUP or $PYTHONSTARTUP
-         -t title -- set Python Shell window's title
-       sys.argv is set accordingly, unless -e is used.
-       sys.path is absolutized, and all relevant paths are inserted into it.
-
-       Other changes:
-       - the environment in which commands are executed is now the
-         __main__ module
-       - explicitly save sys.stdout etc., don't restore from sys.__stdout__
-       - new interpreter methods execsource(), execfile(), stuffsource()
-       - a few small nits
-
-       * TODO.txt:
-       Some more TODO items.  Made up my mind about command line args,
-       Run/Import, __main__.
-
-       * ColorDelegator.py:
-       Super-elegant patch by Tim Peters that speeds up colorization
-       dramatically (up to 15 times he claims).  Works by reading more than
-       one line at a time, up to 100-line chunks (starting with one line and
-       then doubling up to the limit).  On a typical machine (e.g. Tim's
-       P5-166) this doesn't reduce interactive responsiveness in a noticeable
-       way.
-
-Wed Apr 21 15:49:34 1999  Guido van Rossum  <guido@cnri.reston.va.us>
-
-       * ColorDelegator.py:
-       Patch by Tim Peters to speed up colorizing of big multiline strings.
-
-Tue Apr 20 17:32:52 1999  Guido van Rossum  <guido@cnri.reston.va.us>
-
-       * extend.txt:
-       For an event 'foo-bar', the corresponding method must be called
-       foo_bar_event().  Therefore, fix the references to zoom_height() in
-       the example.
-
-       * IdlePrefs.py: Restored the original IDLE color scheme.
-
-       * PyShell.py, IdlePrefs.py, ColorDelegator.py, EditorWindow.py:
-       Color preferences code by Loren Luke (massaged by me somewhat)
-
-       * SearchEngine.py:
-       Patch by Mark Favas: it fixes the search engine behaviour where an
-       unsuccessful search wraps around and re-searches that part of the file
-       between the start of the search and the end of the file - only really
-       an issue for very large files, but... (also removes a redundant
-       m.span() call).
-
-Mon Apr 19 16:26:02 1999  Guido van Rossum  <guido@cnri.reston.va.us>
-
-       * TODO.txt: A few wishes are now fulfilled.
-
-       * AutoIndent.py: Tim Peters implements some of my wishes:
-
-       o Makes the tab key intelligently insert spaces when appropriate
-       (see Help list banter twixt David Ascher and me; idea stolen from
-       every other editor on earth <wink>).
-
-       o newline_and_indent_event trims trailing whitespace on the old
-       line (pymode and Codewright).
-
-       o newline_and_indent_event no longer fooled by trailing whitespace or
-       comment after ":" (pymode, PTUI).
-
-       o newline_and_indent_event now reduces the new line's indentation after
-       return, break, continue, raise and pass stmts (pymode).
-
-       The last two are easy to fool in the presence of strings &
-       continuations, but pymode requires Emacs's high-powered C parsing
-       functions to avoid that in finite time.
-
-======================================================================
-       Python release 1.5.2c1, IDLE version 0.4
-======================================================================
-
-Wed Apr  7 18:41:59 1999  Guido van Rossum  <guido@cnri.reston.va.us>
-
-       * README.txt, NEWS.txt: New version.
-
-       * idlever.py: Version bump awaiting impending new release.
-       (Not much has changed :-( )
-
-Mon Mar 29 14:52:28 1999  Guido van Rossum  <guido@cnri.reston.va.us>
-
-       * ScriptBinding.py, PyShell.py:
-       At Tim Peters' recommendation, add a dummy flush() method to
-       PseudoFile.
-
-Thu Mar 11 23:21:23 1999  Guido van Rossum  <guido@cnri.reston.va.us>
-
-       * PathBrowser.py: Don't crash when sys.path contains an empty string.
-
-       * Attic/Outline.py: This file was never supposed to be part of IDLE.
-
-       * PathBrowser.py:
-       - Don't crash in the case where a superclass is a string instead of a
-       pyclbr.Class object; this can happen when the superclass is
-       unrecognizable (to pyclbr), e.g. when module renaming is used.
-
-       - Show a watch cursor when calling pyclbr (since it may take a while
-       recursively parsing imported modules!).
-
-Wed Mar 10 05:18:02 1999  Guido van Rossum  <guido@cnri.reston.va.us>
-
-       * EditorWindow.py, Bindings.py: Add PathBrowser to File module
-
-       * PathBrowser.py: "Path browser" - 4 scrolled lists displaying:
-           directories on sys.path
-           modules in selected directory
-           classes in selected module
-           methods of selected class
-
-       Sinlge clicking in a directory, module or class item updates the next
-       column with info about the selected item.  Double clicking in a
-       module, class or method item opens the file (and selects the clicked
-       item if it is a class or method).
-
-       I guess eventually I should be using a tree widget for this, but the
-       ones I've seen don't work well enough, so for now I use the old
-       Smalltalk or NeXT style multi-column hierarchical browser.
-
-       * MultiScrolledLists.py:
-       New utility: multiple scrolled lists in parallel
-
-       * ScrolledList.py: - White background.
-       - Display "(None)" (or text of your choosing) when empty.
-       - Don't set the focus.
-
-======================================================================
-       Python release 1.5.2b2, IDLE version 0.3
-======================================================================
-       
-Wed Feb 17 22:47:41 1999  Guido van Rossum  <guido@cnri.reston.va.us>
-
-       * NEWS.txt: News in 0.3.
-
-       * README.txt, idlever.py: Bump version to 0.3.
-
-       * EditorWindow.py:
-       After all, we don't need to call the callbacks ourselves!
-
-       * WindowList.py:
-       When deleting, call the callbacks *after* deleting the window from our list!
-
-       * EditorWindow.py:
-       Fix up the Windows menu via the new callback mechanism instead of
-       depending on menu post commands (which don't work when the menu is
-       torn off).
-
-       * WindowList.py:
-       Support callbacks to patch up Windows menus everywhere.
-
-       * ChangeLog: Oh, why not.  Checking in the Emacs-generated change log.
-
-Tue Feb 16 22:34:17 1999  Guido van Rossum  <guido@cnri.reston.va.us>
-
-       * ScriptBinding.py:
-       Only pop up the stack viewer when requested in the Debug menu.
-
-Mon Feb  8 22:27:49 1999  Guido van Rossum  <guido@cnri.reston.va.us>
-
-       * WindowList.py: Don't crash if a window no longer exists.
-
-       * TODO.txt: Restructured a bit.
-
-Mon Feb  1 23:06:17 1999  Guido van Rossum  <guido@cnri.reston.va.us>
-
-       * PyShell.py: Add current dir or paths of file args to sys.path.
-
-       * Debugger.py: Add canonic() function -- for brand new bdb.py feature.
-
-       * StackViewer.py: Protect against accessing an empty stack.
-
-Fri Jan 29 20:44:45 1999  Guido van Rossum  <guido@cnri.reston.va.us>
-
-       * ZoomHeight.py:
-       Use only the height to decide whether to zoom in or out.
-
-Thu Jan 28 22:24:30 1999  Guido van Rossum  <guido@cnri.reston.va.us>
-
-       * EditorWindow.py, FileList.py:
-       Make sure the Tcl variables are shared between windows.
-
-       * PyShell.py, EditorWindow.py, Bindings.py:
-       Move menu/key binding code from Bindings.py to EditorWindow.py,
-       with changed APIs -- it makes much more sense there.
-       Also add a new feature: if the first character of a menu label is
-       a '!', it gets a checkbox.  Checkboxes are bound to Boolean Tcl variables
-       that can be accessed through the new getvar/setvar/getrawvar API;
-       the variable is named after the event to which the menu is bound.
-
-       * Debugger.py: Add Quit button to the debugger window.
-
-       * SearchDialog.py:
-       When find_again() finds exactly the current selection, it's a failure.
-
-       * idle.py, Attic/idle: Rename idle -> idle.py
-
-Mon Jan 18 15:18:57 1999  Guido van Rossum  <guido@cnri.reston.va.us>
-
-       * EditorWindow.py, WindowList.py: Only deiconify when iconic.
-
-       * TODO.txt: Misc
-
-Tue Jan 12 22:14:34 1999  Guido van Rossum  <guido@cnri.reston.va.us>
-
-       * testcode.py, Attic/test.py:
-       Renamed test.py to testcode.py so one can import Python's
-       test package from inside IDLE.  (Suggested by Jack Jansen.)
-
-       * EditorWindow.py, ColorDelegator.py:
-       Hack to close a window that is colorizing.
-
-       * Separator.py: Vladimir Marangozov's patch:
-       The separator dances too much and seems to jump by arbitrary amounts
-       in arbitrary directions when I try to move it for resizing the frames.
-       This patch makes it more quiet.
-
-Mon Jan 11 14:52:40 1999  Guido van Rossum  <guido@cnri.reston.va.us>
-
-       * TODO.txt: Some requests have been fulfilled.
-
-       * EditorWindow.py:
-       Set the cursor to a watch when opening the class browser (which may
-       take quite a while, browsing multiple files).
-
-       Newer, better center() -- but assumes no wrapping.
-
-       * SearchBinding.py:
-       Got rid of debug print statement in goto_line_event().
-
-       * ScriptBinding.py:
-       I think I like it better if it prints the traceback even when it displays
-       the stack viewer.
-
-       * Debugger.py: Bind ESC to close-window.
-
-       * ClassBrowser.py: Use a HSeparator between the classes and the items.
-       Make the list of classes wider by default (40 chars).
-       Bind ESC to close-window.
-
-       * Separator.py:
-       Separator classes (draggable divider between two panes).
-
-Sat Jan  9 22:01:33 1999  Guido van Rossum  <guido@cnri.reston.va.us>
-
-       * WindowList.py:
-       Don't traceback when wakeup() is called when the window has been destroyed.
-       This can happen when a torn-of Windows menu references closed windows.
-       And Tim Peters claims that the Windows menu is his favorite to tear off...
-
-       * EditorWindow.py: Allow tearing off of the Windows menu.
-
-       * StackViewer.py: Close on ESC.
-
-       * help.txt: Updated a bunch of things (it was mostly still 0.1!)
-
-       * extend.py: Added ScriptBinding to standard bindings.
-
-       * ScriptBinding.py:
-       This now actually works.  See doc string.  It can run a module (i.e.
-       import or reload) or debug it (same with debugger control).  Output
-       goes to a fresh output window, only created when needed.
-
-======================================================================
-       Python release 1.5.2b1, IDLE version 0.2
-======================================================================
-       
-Fri Jan  8 17:26:02 1999  Guido van Rossum  <guido@cnri.reston.va.us>
-
-       * README.txt, NEWS.txt: What's new in this release.
-
-       * Bindings.py, PyShell.py:
-       Paul Prescod's patches to allow the stack viewer to pop up when a
-       traceback is printed.
-
-Thu Jan  7 00:12:15 1999  Guido van Rossum  <guido@cnri.reston.va.us>
-
-       * FormatParagraph.py:
-       Change paragraph width limit to 70 (like Emacs M-Q).
-
-       * README.txt:
-       Separating TODO from README.  Slight reformulation of features.  No
-       exact release date.
-
-       * TODO.txt: Separating TODO from README.
-
-Mon Jan  4 21:19:09 1999  Guido van Rossum  <guido@cnri.reston.va.us>
-
-       * FormatParagraph.py:
-       Hm.  There was a boundary condition error at the end of the file too.
-
-       * SearchBinding.py: Hm.  Add Unix binding for replace, too.
-
-       * keydefs.py: Ran eventparse.py again.
-
-       * FormatParagraph.py: Added Unix Meta-q key binding;
-       fix find_paragraph when at start of file.
-
-       * AutoExpand.py: Added Meta-/ binding for Unix as alt for Alt-/.
-
-       * SearchBinding.py:
-       Add unix binding for grep (otherwise the menu entry doesn't work!)
-
-       * ZoomHeight.py: Adjusted Unix height to work with fvwm96. :=(
-
-       * GrepDialog.py: Need to import sys!
-
-       * help.txt, extend.txt, README.txt: Formatted some paragraphs
-
-       * extend.py, FormatParagraph.py:
-       Add new extension to reformat a (text) paragraph.
-
-       * ZoomHeight.py: Typo in Win specific height setting.
-
-Sun Jan  3 00:47:35 1999  Guido van Rossum  <guido@cnri.reston.va.us>
-
-       * AutoIndent.py: Added something like Tim Peters' backspace patch.
-
-       * ZoomHeight.py: Adapted to Unix (i.e., more hardcoded constants).
-
-Sat Jan  2 21:28:54 1999  Guido van Rossum  <guido@cnri.reston.va.us>
-
-       * keydefs.py, idlever.py, idle.pyw, idle.bat, help.txt, extend.txt, extend.py, eventparse.py, ZoomHeight.py, WindowList.py, UndoDelegator.py, StackViewer.py, SearchEngine.py, SearchDialogBase.py, SearchDialog.py, ScrolledList.py, SearchBinding.py, ScriptBinding.py, ReplaceDialog.py, Attic/README, README.txt, PyShell.py, Attic/PopupMenu.py, OutputWindow.py, IOBinding.py, Attic/HelpWindow.py, History.py, GrepDialog.py, FileList.py, FrameViewer.py, EditorWindow.py, Debugger.py, Delegator.py, ColorDelegator.py, Bindings.py, ClassBrowser.py, AutoExpand.py, AutoIndent.py:
-       Checking in IDLE 0.2.
-
-       Much has changed -- too much, in fact, to write down.
-       The big news is that there's a standard way to write IDLE extensions;
-       see extend.txt.  Some sample extensions have been provided, and
-       some existing code has been converted to extensions.  Probably the
-       biggest new user feature is a new search dialog with more options,
-       search and replace, and even search in files (grep).
-
-       This is exactly as downloaded from my laptop after returning
-       from the holidays -- it hasn't even been tested on Unix yet.
-
-Fri Dec 18 15:52:54 1998  Guido van Rossum  <guido@cnri.reston.va.us>
-
-       * FileList.py, ClassBrowser.py:
-       Fix the class browser to work even when the file is not on sys.path.
-
-Tue Dec  8 20:39:36 1998  Guido van Rossum  <guido@cnri.reston.va.us>
-
-       * Attic/turtle.py: Moved to Python 1.5.2/Lib
-
-Fri Nov 27 03:19:20 1998  Guido van Rossum  <guido@cnri.reston.va.us>
-
-       * help.txt: Typo
-
-       * EditorWindow.py, FileList.py: Support underlining of menu labels
-
-       * Bindings.py:
-       New approach, separate tables for menus (platform-independent) and key
-       definitions (platform-specific), and generating accelerator strings
-       automatically from the key definitions.
-
-Mon Nov 16 18:37:42 1998  Guido van Rossum  <guido@cnri.reston.va.us>
-
-       * Attic/README: Clarify portability and main program.
-
-       * Attic/README: Added intro for 0.1 release and append Grail notes.
-
-Mon Oct 26 18:49:00 1998  Guido van Rossum  <guido@cnri.reston.va.us>
-
-       * Attic/turtle.py: root is now a global called _root
-
-Sat Oct 24 16:38:38 1998  Guido van Rossum  <guido@cnri.reston.va.us>
-
-       * Attic/turtle.py: Raise the root window on reset().
-       Different action on WM_DELETE_WINDOW is more likely to do the right thing,
-       allowing us to destroy old windows.
-
-       * Attic/turtle.py:
-       Split the goto() function in two: _goto() is the internal one,
-       using Canvas coordinates, and goto() uses turtle coordinates
-       and accepts variable argument lists.
-
-       * Attic/turtle.py: Cope with destruction of the window
-
-       * Attic/turtle.py: Turtle graphics
-
-       * Debugger.py: Use of Breakpoint class should be bdb.Breakpoint.
-
-Mon Oct 19 03:33:40 1998  Guido van Rossum  <guido@cnri.reston.va.us>
-
-       * SearchBinding.py:
-       Speed up the search a bit -- don't drag a mark around...
-
-       * PyShell.py:
-       Change our special entries from <console#N> to <pyshell#N>.
-       Patch linecache.checkcache() to keep our special entries alive.
-       Add popup menu to all editor windows to set a breakpoint.
-
-       * Debugger.py:
-       Use and pass through the 'force' flag to set_dict() where appropriate.
-       Default source and globals checkboxes to false.
-       Don't interact in user_return().
-       Add primitive set_breakpoint() method.
-
-       * ColorDelegator.py:
-       Raise priority of 'sel' tag so its foreground (on Windows) will take
-       priority over text colorization (which on Windows is almost the
-       same color as the selection background).
-
-       Define a tag and color for breakpoints ("BREAK").
-
-       * Attic/PopupMenu.py: Disable "Open stack viewer" and "help" commands.
-
-       * StackViewer.py:
-       Add optional 'force' argument (default 0) to load_dict().
-       If set, redo the display even if it's the same dict.
-
-Fri Oct 16 21:10:12 1998  Guido van Rossum  <guido@cnri.reston.va.us>
-
-       * StackViewer.py: Do nothing when loading the same dict as before.
-
-       * PyShell.py: Details for debugger interface.
-
-       * Debugger.py:
-       Restructured and more consistent.  Save checkboxes across instantiations.
-
-       * EditorWindow.py, Attic/README, Bindings.py:
-       Get rid of conflicting ^X binding.  Use ^W.
-
-       * Debugger.py, StackViewer.py:
-       Debugger can now show local and global variables.
-
-       * Debugger.py: Oops
-
-       * Debugger.py, PyShell.py: Better debugger support (show stack etc).
-
-       * Attic/PopupMenu.py: Follow renames in StackViewer module
-
-       * StackViewer.py:
-       Rename classes to StackViewer (the widget) and StackBrowser (the toplevel).
-
-       * ScrolledList.py: Add close() method
-
-       * EditorWindow.py: Clarify 'Open Module' dialog text
-
-       * StackViewer.py: Restructured into a browser and a widget.
-
-Thu Oct 15 23:27:08 1998  Guido van Rossum  <guido@cnri.reston.va.us>
-
-       * ClassBrowser.py, ScrolledList.py:
-       Generalized the scrolled list which is the base for the class and
-       method browser into a separate class in its own module.
-
-       * Attic/test.py: Cosmetic change
-
-       * Debugger.py: Don't show function name if there is none
-
-Wed Oct 14 03:43:05 1998  Guido van Rossum  <guido@cnri.reston.va.us>
-
-       * Debugger.py, PyShell.py: Polish the Debugger GUI a bit.
-       Closing it now also does the right thing.
-
-Tue Oct 13 23:51:13 1998  Guido van Rossum  <guido@cnri.reston.va.us>
-
-       * Debugger.py, PyShell.py, Bindings.py:
-       Ad primitive debugger interface (so far it will step and show you the
-       source, but it doesn't yet show the stack).
-
-       * Attic/README: Misc
-
-       * StackViewer.py: Whoops -- referenced self.top before it was set.
-
-       * help.txt: Added history and completion commands.
-
-       * help.txt: Updated
-
-       * FileList.py: Add class browser functionality.
-
-       * StackViewer.py:
-       Add a close() method and bind to WM_DELETE_WINDOW protocol
-
-       * PyShell.py: Clear the linecache before printing a traceback
-
-       * Bindings.py: Added class browser binding.
-
-       * ClassBrowser.py: Much improved, much left to do.
-
-       * PyShell.py: Make the return key do what I mean more often.
-
-       * ClassBrowser.py:
-       Adding the beginnings of a Class browser.  Incomplete, yet.
-
-       * EditorWindow.py, Bindings.py:
-       Add new command, "Open module".  You select or type a module name,
-       and it opens the source.
-
-Mon Oct 12 23:59:27 1998  Guido van Rossum  <guido@cnri.reston.va.us>
-
-       * PyShell.py: Subsume functionality from Popup menu in Debug menu.
-       Other stuff so the PyShell window can be resurrected from the Windows menu.
-
-       * FileList.py: Get rid of PopUp menu.
-       Create a simple Windows menu.  (Imperfect when Untitled windows exist.)
-       Add wakeup() method: deiconify, raise, focus.
-
-       * EditorWindow.py: Generalize menu creation.
-
-       * Bindings.py: Add Debug and Help menu items.
-
-       * EditorWindow.py: Added a menu bar to every window.
-
-       * Bindings.py: Add menu configuration to the event configuration.
-
-       * Attic/PopupMenu.py: Pass a root to the help window.
-
-       * SearchBinding.py:
-       Add parent argument to 'to to line number' dialog box.
-
-Sat Oct 10 19:15:32 1998  Guido van Rossum  <guido@cnri.reston.va.us>
-
-       * StackViewer.py:
-       Add a label at the top showing (very basic) help for the stack viewer.
-       Add a label at the bottom showing the exception info.
-
-       * Attic/test.py, Attic/idle: Add Unix main script and test program.
-
-       * idle.pyw, help.txt, WidgetRedirector.py, UndoDelegator.py, StackViewer.py, SearchBinding.py, Attic/README, PyShell.py, Attic/PopupMenu.py, Percolator.py, Outline.py, IOBinding.py, History.py, Attic/HelpWindow.py, FrameViewer.py, FileList.py, EditorWindow.py, Delegator.py, ColorDelegator.py, Bindings.py, AutoIndent.py, AutoExpand.py:
-       Initial checking of Tk-based Python IDE.
-       Features: text editor with syntax coloring and undo;
-       subclassed into interactive Python shell which adds history.
-
diff --git a/Lib/idlelib/ClassBrowser.py b/Lib/idlelib/ClassBrowser.py
deleted file mode 100644 (file)
index f440164..0000000
+++ /dev/null
@@ -1,224 +0,0 @@
-"""Class browser.
-
-XXX TO DO:
-
-- reparse when source changed (maybe just a button would be OK?)
-    (or recheck on window popup)
-- add popup menu with more options (e.g. doc strings, base classes, imports)
-- show function argument list? (have to do pattern matching on source)
-- should the classes and methods lists also be in the module's menu bar?
-- add base classes to class browser tree
-"""
-
-import os
-import sys
-import string
-import pyclbr
-
-# XXX Patch pyclbr with dummies if it's vintage Python 1.5.2:
-if not hasattr(pyclbr, "readmodule_ex"):
-    pyclbr.readmodule_ex = pyclbr.readmodule
-if not hasattr(pyclbr, "Function"):
-    class Function(pyclbr.Class):
-        pass
-    pyclbr.Function = Function
-
-import PyShell
-from WindowList import ListedToplevel
-from TreeWidget import TreeNode, TreeItem, ScrolledCanvas
-
-class ClassBrowser:
-
-    def __init__(self, flist, name, path):
-        # XXX This API should change, if the file doesn't end in ".py"
-        # XXX the code here is bogus!
-        self.name = name
-        self.file = os.path.join(path[0], self.name + ".py")
-        self.init(flist)
-
-    def close(self, event=None):
-        self.top.destroy()
-        self.node.destroy()
-
-    def init(self, flist):
-        self.flist = flist
-        # reset pyclbr
-        pyclbr._modules.clear()
-        # create top
-        self.top = top = ListedToplevel(flist.root)
-        top.protocol("WM_DELETE_WINDOW", self.close)
-        top.bind("<Escape>", self.close)
-        self.settitle()
-        top.focus_set()
-        # create scrolled canvas
-        sc = ScrolledCanvas(top, bg="white", highlightthickness=0, takefocus=1)
-        sc.frame.pack(expand=1, fill="both")
-        item = self.rootnode()
-        self.node = node = TreeNode(sc.canvas, None, item)
-        node.update()
-        node.expand()
-
-    def settitle(self):
-        self.top.wm_title("Class Browser - " + self.name)
-        self.top.wm_iconname("Class Browser")
-
-    def rootnode(self):
-        return ModuleBrowserTreeItem(self.file)
-
-class ModuleBrowserTreeItem(TreeItem):
-
-    def __init__(self, file):
-        self.file = file
-
-    def GetText(self):
-        return os.path.basename(self.file)
-
-    def GetIconName(self):
-        return "python"
-
-    def GetSubList(self):
-        sublist = []
-        for name in self.listclasses():
-            item = ClassBrowserTreeItem(name, self.classes, self.file)
-            sublist.append(item)
-        return sublist
-
-    def OnDoubleClick(self):
-        if os.path.normcase(self.file[-3:]) != ".py":
-            return
-        if not os.path.exists(self.file):
-            return
-        PyShell.flist.open(self.file)
-
-    def IsExpandable(self):
-        return os.path.normcase(self.file[-3:]) == ".py"
-    
-    def listclasses(self):
-        dir, file = os.path.split(self.file)
-        name, ext = os.path.splitext(file)
-        if os.path.normcase(ext) != ".py":
-            return []
-        try:
-            dict = pyclbr.readmodule_ex(name, [dir] + sys.path)
-        except ImportError, msg:
-            return []
-        items = []
-        self.classes = {}
-        for key, cl in dict.items():
-            if cl.module == name:
-                s = key
-                if cl.super:
-                    supers = []
-                    for sup in cl.super:
-                        if type(sup) is type(''):
-                            sname = sup
-                        else:
-                            sname = sup.name
-                            if sup.module != cl.module:
-                                sname = "%s.%s" % (sup.module, sname)
-                        supers.append(sname)
-                    s = s + "(%s)" % string.join(supers, ", ")
-                items.append((cl.lineno, s))
-                self.classes[s] = cl
-        items.sort()
-        list = []
-        for item, s in items:
-            list.append(s)
-        return list
-
-class ClassBrowserTreeItem(TreeItem):
-
-    def __init__(self, name, classes, file):
-        self.name = name
-        self.classes = classes
-        self.file = file
-        try:
-            self.cl = self.classes[self.name]
-        except (IndexError, KeyError):
-            self.cl = None
-        self.isfunction = isinstance(self.cl, pyclbr.Function)
-
-    def GetText(self):
-        if self.isfunction:
-            return "def " + self.name + "(...)"
-        else:
-            return "class " + self.name
-
-    def GetIconName(self):
-        if self.isfunction:
-            return "python"
-        else:
-            return "folder"
-
-    def IsExpandable(self):
-        if self.cl:
-            return not not self.cl.methods
-
-    def GetSubList(self):
-        if not self.cl:
-            return []
-        sublist = []
-        for name in self.listmethods():
-            item = MethodBrowserTreeItem(name, self.cl, self.file)
-            sublist.append(item)
-        return sublist
-
-    def OnDoubleClick(self):
-        if not os.path.exists(self.file):
-            return
-        edit = PyShell.flist.open(self.file)
-        if hasattr(self.cl, 'lineno'):
-            lineno = self.cl.lineno
-            edit.gotoline(lineno)
-
-    def listmethods(self):
-        if not self.cl:
-            return []
-        items = []
-        for name, lineno in self.cl.methods.items():
-            items.append((lineno, name))
-        items.sort()
-        list = []
-        for item, name in items:
-            list.append(name)
-        return list
-
-class MethodBrowserTreeItem(TreeItem):
-
-    def __init__(self, name, cl, file):
-        self.name = name
-        self.cl = cl
-        self.file = file
-
-    def GetText(self):
-        return "def " + self.name + "(...)"
-
-    def GetIconName(self):
-        return "python" # XXX
-
-    def IsExpandable(self):
-        return 0
-
-    def OnDoubleClick(self):
-        if not os.path.exists(self.file):
-            return
-        edit = PyShell.flist.open(self.file)
-        edit.gotoline(self.cl.methods[self.name])
-
-def main():
-    try:
-        file = __file__
-    except NameError:
-        file = sys.argv[0]
-        if sys.argv[1:]:
-            file = sys.argv[1]
-        else:
-            file = sys.argv[0]
-    dir, file = os.path.split(file)
-    name = os.path.splitext(file)[0]
-    ClassBrowser(PyShell.flist, name, [dir])
-    if sys.stdin is sys.__stdin__:
-        mainloop()
-
-if __name__ == "__main__":
-    main()
diff --git a/Lib/idlelib/ColorDelegator.py b/Lib/idlelib/ColorDelegator.py
deleted file mode 100644 (file)
index 77edfe8..0000000
+++ /dev/null
@@ -1,234 +0,0 @@
-import time
-import string
-import re
-import keyword
-from Tkinter import *
-from Delegator import Delegator
-from IdleConf import idleconf
-
-#$ event <<toggle-auto-coloring>>
-#$ win <Control-slash>
-#$ unix <Control-slash>
-
-__debug__ = 0
-
-
-def any(name, list):
-    return "(?P<%s>" % name + string.join(list, "|") + ")"
-
-def make_pat():
-    kw = r"\b" + any("KEYWORD", keyword.kwlist) + r"\b"
-    comment = any("COMMENT", [r"#[^\n]*"])
-    sqstring = r"(\b[rR])?'[^'\\\n]*(\\.[^'\\\n]*)*'?"
-    dqstring = r'(\b[rR])?"[^"\\\n]*(\\.[^"\\\n]*)*"?'
-    sq3string = r"(\b[rR])?'''[^'\\]*((\\.|'(?!''))[^'\\]*)*(''')?"
-    dq3string = r'(\b[rR])?"""[^"\\]*((\\.|"(?!""))[^"\\]*)*(""")?'
-    string = any("STRING", [sq3string, dq3string, sqstring, dqstring])
-    return kw + "|" + comment + "|" + string + "|" + any("SYNC", [r"\n"])
-
-prog = re.compile(make_pat(), re.S)
-idprog = re.compile(r"\s+(\w+)", re.S)
-
-class ColorDelegator(Delegator):
-
-    def __init__(self):
-        Delegator.__init__(self)
-        self.prog = prog
-        self.idprog = idprog
-
-    def setdelegate(self, delegate):
-        if self.delegate is not None:
-            self.unbind("<<toggle-auto-coloring>>")
-        Delegator.setdelegate(self, delegate)
-        if delegate is not None:
-            self.config_colors()
-            self.bind("<<toggle-auto-coloring>>", self.toggle_colorize_event)
-            self.notify_range("1.0", "end")
-
-    def config_colors(self):
-        for tag, cnf in self.tagdefs.items():
-            if cnf:
-                apply(self.tag_configure, (tag,), cnf)
-        self.tag_raise('sel')
-
-    cconf = idleconf.getsection('Colors')
-
-    tagdefs = {
-        "COMMENT": cconf.getcolor("comment"),
-        "KEYWORD": cconf.getcolor("keyword"),
-        "STRING": cconf.getcolor("string"),
-        "DEFINITION": cconf.getcolor("definition"),
-        "SYNC": cconf.getcolor("sync"),
-        "TODO": cconf.getcolor("todo"),
-        "BREAK": cconf.getcolor("break"),
-        # The following is used by ReplaceDialog:
-        "hit": cconf.getcolor("hit"),
-        }
-
-    def insert(self, index, chars, tags=None):
-        index = self.index(index)
-        self.delegate.insert(index, chars, tags)
-        self.notify_range(index, index + "+%dc" % len(chars))
-
-    def delete(self, index1, index2=None):
-        index1 = self.index(index1)
-        self.delegate.delete(index1, index2)
-        self.notify_range(index1)
-
-    after_id = None
-    allow_colorizing = 1
-    colorizing = 0
-
-    def notify_range(self, index1, index2=None):
-        self.tag_add("TODO", index1, index2)
-        if self.after_id:
-            if __debug__: print "colorizing already scheduled"
-            return
-        if self.colorizing:
-            self.stop_colorizing = 1
-            if __debug__: print "stop colorizing"
-        if self.allow_colorizing:
-            if __debug__: print "schedule colorizing"
-            self.after_id = self.after(1, self.recolorize)
-
-    close_when_done = None # Window to be closed when done colorizing
-
-    def close(self, close_when_done=None):
-        if self.after_id:
-            after_id = self.after_id
-            self.after_id = None
-            if __debug__: print "cancel scheduled recolorizer"
-            self.after_cancel(after_id)
-        self.allow_colorizing = 0
-        self.stop_colorizing = 1
-        if close_when_done:
-            if not self.colorizing:
-                close_when_done.destroy()
-            else:
-                self.close_when_done = close_when_done
-
-    def toggle_colorize_event(self, event):
-        if self.after_id:
-            after_id = self.after_id
-            self.after_id = None
-            if __debug__: print "cancel scheduled recolorizer"
-            self.after_cancel(after_id)
-        if self.allow_colorizing and self.colorizing:
-            if __debug__: print "stop colorizing"
-            self.stop_colorizing = 1
-        self.allow_colorizing = not self.allow_colorizing
-        if self.allow_colorizing and not self.colorizing:
-            self.after_id = self.after(1, self.recolorize)
-        if __debug__:
-            print "auto colorizing turned", self.allow_colorizing and "on" or "off"
-        return "break"
-
-    def recolorize(self):
-        self.after_id = None
-        if not self.delegate:
-            if __debug__: print "no delegate"
-            return
-        if not self.allow_colorizing:
-            if __debug__: print "auto colorizing is off"
-            return
-        if self.colorizing:
-            if __debug__: print "already colorizing"
-            return
-        try:
-            self.stop_colorizing = 0
-            self.colorizing = 1
-            if __debug__: print "colorizing..."
-            t0 = time.clock()
-            self.recolorize_main()
-            t1 = time.clock()
-            if __debug__: print "%.3f seconds" % (t1-t0)
-        finally:
-            self.colorizing = 0
-        if self.allow_colorizing and self.tag_nextrange("TODO", "1.0"):
-            if __debug__: print "reschedule colorizing"
-            self.after_id = self.after(1, self.recolorize)
-        if self.close_when_done:
-            top = self.close_when_done
-            self.close_when_done = None
-            top.destroy()
-
-    def recolorize_main(self):
-        next = "1.0"
-        while 1:
-            item = self.tag_nextrange("TODO", next)
-            if not item:
-                break
-            head, tail = item
-            self.tag_remove("SYNC", head, tail)
-            item = self.tag_prevrange("SYNC", head)
-            if item:
-                head = item[1]
-            else:
-                head = "1.0"
-
-            chars = ""
-            next = head
-            lines_to_get = 1
-            ok = 0
-            while not ok:
-                mark = next
-                next = self.index(mark + "+%d lines linestart" %
-                                         lines_to_get)
-                lines_to_get = min(lines_to_get * 2, 100)
-                ok = "SYNC" in self.tag_names(next + "-1c")
-                line = self.get(mark, next)
-                ##print head, "get", mark, next, "->", `line`
-                if not line:
-                    return
-                for tag in self.tagdefs.keys():
-                    self.tag_remove(tag, mark, next)
-                chars = chars + line
-                m = self.prog.search(chars)
-                while m:
-                    for key, value in m.groupdict().items():
-                        if value:
-                            a, b = m.span(key)
-                            self.tag_add(key,
-                                         head + "+%dc" % a,
-                                         head + "+%dc" % b)
-                            if value in ("def", "class"):
-                                m1 = self.idprog.match(chars, b)
-                                if m1:
-                                    a, b = m1.span(1)
-                                    self.tag_add("DEFINITION",
-                                                 head + "+%dc" % a,
-                                                 head + "+%dc" % b)
-                    m = self.prog.search(chars, m.end())
-                if "SYNC" in self.tag_names(next + "-1c"):
-                    head = next
-                    chars = ""
-                else:
-                    ok = 0
-                if not ok:
-                    # We're in an inconsistent state, and the call to
-                    # update may tell us to stop.  It may also change
-                    # the correct value for "next" (since this is a
-                    # line.col string, not a true mark).  So leave a
-                    # crumb telling the next invocation to resume here
-                    # in case update tells us to leave.
-                    self.tag_add("TODO", next)
-                self.update()
-                if self.stop_colorizing:
-                    if __debug__: print "colorizing stopped"
-                    return
-
-
-def main():
-    from Percolator import Percolator
-    root = Tk()
-    root.wm_protocol("WM_DELETE_WINDOW", root.quit)
-    text = Text(background="white")
-    text.pack(expand=1, fill="both")
-    text.focus_set()
-    p = Percolator(text)
-    d = ColorDelegator()
-    p.insertfilter(d)
-    root.mainloop()
-
-if __name__ == "__main__":
-    main()
diff --git a/Lib/idlelib/ConfigParser.py b/Lib/idlelib/ConfigParser.py
deleted file mode 100644 (file)
index e1ce9dd..0000000
+++ /dev/null
@@ -1,382 +0,0 @@
-"""Configuration file parser.
-
-A setup file consists of sections, lead by a "[section]" header,
-and followed by "name: value" entries, with continuations and such in
-the style of RFC 822.
-
-The option values can contain format strings which refer to other values in
-the same section, or values in a special [DEFAULT] section.
-
-For example:
-
-    something: %(dir)s/whatever
-
-would resolve the "%(dir)s" to the value of dir.  All reference
-expansions are done late, on demand.
-
-Intrinsic defaults can be specified by passing them into the
-ConfigParser constructor as a dictionary.
-
-class:
-
-ConfigParser -- responsible for for parsing a list of
-                configuration files, and managing the parsed database.
-
-    methods:
-
-    __init__(defaults=None)
-        create the parser and specify a dictionary of intrinsic defaults.  The
-        keys must be strings, the values must be appropriate for %()s string
-        interpolation.  Note that `__name__' is always an intrinsic default;
-        it's value is the section's name.
-
-    sections()
-        return all the configuration section names, sans DEFAULT
-
-    has_section(section)
-        return whether the given section exists
-
-    options(section)
-        return list of configuration options for the named section
-
-    has_option(section, option)
-        return whether the given section has the given option
-
-    read(filenames)
-        read and parse the list of named configuration files, given by
-        name.  A single filename is also allowed.  Non-existing files
-        are ignored.
-
-    readfp(fp, filename=None)
-        read and parse one configuration file, given as a file object.
-        The filename defaults to fp.name; it is only used in error
-        messages (if fp has no `name' attribute, the string `<???>' is used).
-
-    get(section, option, raw=0, vars=None)
-        return a string value for the named option.  All % interpolations are
-        expanded in the return values, based on the defaults passed into the
-        constructor and the DEFAULT section.  Additional substitutions may be
-        provided using the `vars' argument, which must be a dictionary whose
-        contents override any pre-existing defaults.
-
-    getint(section, options)
-        like get(), but convert value to an integer
-
-    getfloat(section, options)
-        like get(), but convert value to a float
-
-    getboolean(section, options)
-        like get(), but convert value to a boolean (currently defined as 0 or
-        1, only)
-"""
-
-import sys
-import string
-import re
-
-DEFAULTSECT = "DEFAULT"
-
-
-\f
-# exception classes
-class Error:
-    def __init__(self, msg=''):
-        self._msg = msg
-    def __repr__(self):
-        return self._msg
-
-class NoSectionError(Error):
-    def __init__(self, section):
-        Error.__init__(self, 'No section: %s' % section)
-        self.section = section
-
-class DuplicateSectionError(Error):
-    def __init__(self, section):
-        Error.__init__(self, "Section %s already exists" % section)
-        self.section = section
-
-class NoOptionError(Error):
-    def __init__(self, option, section):
-        Error.__init__(self, "No option `%s' in section: %s" %
-                       (option, section))
-        self.option = option
-        self.section = section
-
-class InterpolationError(Error):
-    def __init__(self, reference, option, section, rawval):
-        Error.__init__(self,
-                       "Bad value substitution:\n"
-                       "\tsection: [%s]\n"
-                       "\toption : %s\n"
-                       "\tkey    : %s\n"
-                       "\trawval : %s\n"
-                       % (section, option, reference, rawval))
-        self.reference = reference
-        self.option = option
-        self.section = section
-
-class MissingSectionHeaderError(Error):
-    def __init__(self, filename, lineno, line):
-        Error.__init__(
-            self,
-            'File contains no section headers.\nfile: %s, line: %d\n%s' %
-            (filename, lineno, line))
-        self.filename = filename
-        self.lineno = lineno
-        self.line = line
-
-class ParsingError(Error):
-    def __init__(self, filename):
-        Error.__init__(self, 'File contains parsing errors: %s' % filename)
-        self.filename = filename
-        self.errors = []
-
-    def append(self, lineno, line):
-        self.errors.append((lineno, line))
-        self._msg = self._msg + '\n\t[line %2d]: %s' % (lineno, line)
-
-
-\f
-class ConfigParser:
-    def __init__(self, defaults=None):
-        self.__sections = {}
-        if defaults is None:
-            self.__defaults = {}
-        else:
-            self.__defaults = defaults
-
-    def defaults(self):
-        return self.__defaults
-
-    def sections(self):
-        """Return a list of section names, excluding [DEFAULT]"""
-        # self.__sections will never have [DEFAULT] in it
-        return self.__sections.keys()
-
-    def add_section(self, section):
-        """Create a new section in the configuration.
-
-        Raise DuplicateSectionError if a section by the specified name
-        already exists.
-        """
-        if self.__sections.has_key(section):
-            raise DuplicateSectionError(section)
-        self.__sections[section] = {}
-
-    def has_section(self, section):
-        """Indicate whether the named section is present in the configuration.
-
-        The DEFAULT section is not acknowledged.
-        """
-        return self.__sections.has_key(section)
-
-    def options(self, section):
-        """Return a list of option names for the given section name."""
-        try:
-            opts = self.__sections[section].copy()
-        except KeyError:
-            raise NoSectionError(section)
-        opts.update(self.__defaults)
-        return opts.keys()
-
-    def has_option(self, section, option):
-        """Return whether the given section has the given option."""
-        try:
-            opts = self.__sections[section]
-        except KeyError:
-            raise NoSectionError(section)
-        return opts.has_key(option)
-
-    def read(self, filenames):
-        """Read and parse a filename or a list of filenames.
-        
-        Files that cannot be opened are silently ignored; this is
-        designed so that you can specify a list of potential
-        configuration file locations (e.g. current directory, user's
-        home directory, systemwide directory), and all existing
-        configuration files in the list will be read.  A single
-        filename may also be given.
-        """
-        if type(filenames) is type(''):
-            filenames = [filenames]
-        for filename in filenames:
-            try:
-                fp = open(filename)
-            except IOError:
-                continue
-            self.__read(fp, filename)
-            fp.close()
-
-    def readfp(self, fp, filename=None):
-        """Like read() but the argument must be a file-like object.
-
-        The `fp' argument must have a `readline' method.  Optional
-        second argument is the `filename', which if not given, is
-        taken from fp.name.  If fp has no `name' attribute, `<???>' is
-        used.
-
-        """
-        if filename is None:
-            try:
-                filename = fp.name
-            except AttributeError:
-                filename = '<???>'
-        self.__read(fp, filename)
-
-    def get(self, section, option, raw=0, vars=None):
-        """Get an option value for a given section.
-
-        All % interpolations are expanded in the return values, based on the
-        defaults passed into the constructor, unless the optional argument
-        `raw' is true.  Additional substitutions may be provided using the
-        `vars' argument, which must be a dictionary whose contents overrides
-        any pre-existing defaults.
-
-        The section DEFAULT is special.
-        """
-        try:
-            sectdict = self.__sections[section].copy()
-        except KeyError:
-            if section == DEFAULTSECT:
-                sectdict = {}
-            else:
-                raise NoSectionError(section)
-        d = self.__defaults.copy()
-        d.update(sectdict)
-        # Update with the entry specific variables
-        if vars:
-            d.update(vars)
-        option = self.optionxform(option)
-        try:
-            rawval = d[option]
-        except KeyError:
-            raise NoOptionError(option, section)
-        # do the string interpolation
-        if raw:
-            return rawval
-
-        value = rawval                  # Make it a pretty variable name
-        depth = 0                       
-        while depth < 10:               # Loop through this until it's done
-            depth = depth + 1
-            if string.find(value, "%(") >= 0:
-                try:
-                    value = value % d
-                except KeyError, key:
-                    raise InterpolationError(key, option, section, rawval)
-            else:
-                return value
-    
-    def __get(self, section, conv, option):
-        return conv(self.get(section, option))
-
-    def getint(self, section, option):
-        return self.__get(section, string.atoi, option)
-
-    def getfloat(self, section, option):
-        return self.__get(section, string.atof, option)
-
-    def getboolean(self, section, option):
-        v = self.get(section, option)
-        val = string.atoi(v)
-        if val not in (0, 1):
-            raise ValueError, 'Not a boolean: %s' % v
-        return val
-
-    def optionxform(self, optionstr):
-        return string.lower(optionstr)
-
-    #
-    # Regular expressions for parsing section headers and options.  Note a
-    # slight semantic change from the previous version, because of the use
-    # of \w, _ is allowed in section header names.
-    SECTCRE = re.compile(
-        r'\['                                 # [
-        r'(?P<header>[-\w_.*,(){}]+)'         # a lot of stuff found by IvL
-        r'\]'                                 # ]
-        )
-    OPTCRE = re.compile(
-        r'(?P<option>[-\w_.*,(){}]+)'         # a lot of stuff found by IvL
-        r'[ \t]*(?P<vi>[:=])[ \t]*'           # any number of space/tab,
-                                              # followed by separator
-                                              # (either : or =), followed
-                                              # by any # space/tab
-        r'(?P<value>.*)$'                     # everything up to eol
-        )
-
-    def __read(self, fp, fpname):
-        """Parse a sectioned setup file.
-
-        The sections in setup file contains a title line at the top,
-        indicated by a name in square brackets (`[]'), plus key/value
-        options lines, indicated by `name: value' format lines.
-        Continuation are represented by an embedded newline then
-        leading whitespace.  Blank lines, lines beginning with a '#',
-        and just about everything else is ignored.
-        """
-        cursect = None                            # None, or a dictionary
-        optname = None
-        lineno = 0
-        e = None                                  # None, or an exception
-        while 1:
-            line = fp.readline()
-            if not line:
-                break
-            lineno = lineno + 1
-            # comment or blank line?
-            if string.strip(line) == '' or line[0] in '#;':
-                continue
-            if string.lower(string.split(line)[0]) == 'rem' \
-               and line[0] in "rR":      # no leading whitespace
-                continue
-            # continuation line?
-            if line[0] in ' \t' and cursect is not None and optname:
-                value = string.strip(line)
-                if value:
-                    cursect[optname] = cursect[optname] + '\n ' + value
-            # a section header or option header?
-            else:
-                # is it a section header?
-                mo = self.SECTCRE.match(line)
-                if mo:
-                    sectname = mo.group('header')
-                    if self.__sections.has_key(sectname):
-                        cursect = self.__sections[sectname]
-                    elif sectname == DEFAULTSECT:
-                        cursect = self.__defaults
-                    else:
-                        cursect = {'__name__': sectname}
-                        self.__sections[sectname] = cursect
-                    # So sections can't start with a continuation line
-                    optname = None
-                # no section header in the file?
-                elif cursect is None:
-                    raise MissingSectionHeaderError(fpname, lineno, `line`)
-                # an option line?
-                else:
-                    mo = self.OPTCRE.match(line)
-                    if mo:
-                        optname, vi, optval = mo.group('option', 'vi', 'value')
-                        optname = string.lower(optname)
-                        if vi in ('=', ':') and ';' in optval:
-                            # ';' is a comment delimiter only if it follows
-                            # a spacing character
-                            pos = string.find(optval, ';')
-                            if pos and optval[pos-1] in string.whitespace:
-                                optval = optval[:pos]
-                        optval = string.strip(optval)
-                        # allow empty values
-                        if optval == '""':
-                            optval = ''
-                        cursect[optname] = optval
-                    else:
-                        # a non-fatal parsing error occurred.  set up the
-                        # exception but keep going. the exception will be
-                        # raised at the end of the file and will contain a
-                        # list of all bogus lines
-                        if not e:
-                            e = ParsingError(fpname)
-                        e.append(lineno, `line`)
-        # if any parsing errors occurred, raise an exception
-        if e:
-            raise e
diff --git a/Lib/idlelib/Debugger.py b/Lib/idlelib/Debugger.py
deleted file mode 100644 (file)
index 267d39f..0000000
+++ /dev/null
@@ -1,308 +0,0 @@
-import os
-import bdb
-import traceback
-from Tkinter import *
-from WindowList import ListedToplevel
-
-import StackViewer
-
-
-class Debugger(bdb.Bdb):
-
-    interacting = 0
-
-    vstack = vsource = vlocals = vglobals = None
-
-    def __init__(self, pyshell):
-        bdb.Bdb.__init__(self)
-        self.pyshell = pyshell
-        self.make_gui()
-    
-    def canonic(self, filename):
-        # Canonicalize filename -- called by Bdb
-        return os.path.normcase(os.path.abspath(filename))
-
-    def close(self, event=None):
-        if self.interacting:
-            self.top.bell()
-            return
-        if self.stackviewer:
-            self.stackviewer.close(); self.stackviewer = None
-        self.pyshell.close_debugger()
-        self.top.destroy()
-
-    def run(self, *args):
-        try:
-            self.interacting = 1
-            return apply(bdb.Bdb.run, (self,) + args)
-        finally:
-            self.interacting = 0
-
-    def user_line(self, frame):
-        self.interaction(frame)
-
-    def user_return(self, frame, rv):
-        # XXX show rv?
-        ##self.interaction(frame)
-        pass
-
-    def user_exception(self, frame, info):
-        self.interaction(frame, info)
-
-    def make_gui(self):
-        pyshell = self.pyshell
-        self.flist = pyshell.flist
-        self.root = root = pyshell.root
-        self.top = top =ListedToplevel(root)
-        self.top.wm_title("Debug Control")
-        self.top.wm_iconname("Debug")
-        top.wm_protocol("WM_DELETE_WINDOW", self.close)
-        self.top.bind("<Escape>", self.close)
-        #
-        self.bframe = bframe = Frame(top)
-        self.bframe.pack(anchor="w")
-        self.buttons = bl = []
-        #
-        self.bcont = b = Button(bframe, text="Go", command=self.cont)
-        bl.append(b)
-        self.bstep = b = Button(bframe, text="Step", command=self.step)
-        bl.append(b)
-        self.bnext = b = Button(bframe, text="Over", command=self.next)
-        bl.append(b)
-        self.bret = b = Button(bframe, text="Out", command=self.ret)
-        bl.append(b)
-        self.bret = b = Button(bframe, text="Quit", command=self.quit)
-        bl.append(b)
-        #
-        for b in bl:
-            b.configure(state="disabled")
-            b.pack(side="left")
-        #
-        self.cframe = cframe = Frame(bframe)
-        self.cframe.pack(side="left")
-        #
-        if not self.vstack:
-            self.__class__.vstack = BooleanVar(top)
-            self.vstack.set(1)
-        self.bstack = Checkbutton(cframe,
-            text="Stack", command=self.show_stack, variable=self.vstack)
-        self.bstack.grid(row=0, column=0)
-        if not self.vsource:
-            self.__class__.vsource = BooleanVar(top)
-            ##self.vsource.set(1)
-        self.bsource = Checkbutton(cframe,
-            text="Source", command=self.show_source, variable=self.vsource)
-        self.bsource.grid(row=0, column=1)
-        if not self.vlocals:
-            self.__class__.vlocals = BooleanVar(top)
-            self.vlocals.set(1)
-        self.blocals = Checkbutton(cframe,
-            text="Locals", command=self.show_locals, variable=self.vlocals)
-        self.blocals.grid(row=1, column=0)
-        if not self.vglobals:
-            self.__class__.vglobals = BooleanVar(top)
-            ##self.vglobals.set(1)
-        self.bglobals = Checkbutton(cframe,
-            text="Globals", command=self.show_globals, variable=self.vglobals)
-        self.bglobals.grid(row=1, column=1)
-        #
-        self.status = Label(top, anchor="w")
-        self.status.pack(anchor="w")
-        self.error = Label(top, anchor="w")
-        self.error.pack(anchor="w", fill="x")
-        self.errorbg = self.error.cget("background")
-        #
-        self.fstack = Frame(top, height=1)
-        self.fstack.pack(expand=1, fill="both")
-        self.flocals = Frame(top)
-        self.flocals.pack(expand=1, fill="both")
-        self.fglobals = Frame(top, height=1)
-        self.fglobals.pack(expand=1, fill="both")
-        #
-        if self.vstack.get():
-            self.show_stack()
-        if self.vlocals.get():
-            self.show_locals()
-        if self.vglobals.get():
-            self.show_globals()
-
-    frame = None
-
-    def interaction(self, frame, info=None):
-        self.frame = frame
-        code = frame.f_code
-        file = code.co_filename
-        base = os.path.basename(file)
-        lineno = frame.f_lineno
-        #
-        message = "%s:%s" % (base, lineno)
-        if code.co_name != "?":
-            message = "%s: %s()" % (message, code.co_name)
-        self.status.configure(text=message)
-        #
-        if info:
-            type, value, tb = info
-            try:
-                m1 = type.__name__
-            except AttributeError:
-                m1 = "%s" % str(type)
-            if value is not None:
-                try:
-                    m1 = "%s: %s" % (m1, str(value))
-                except:
-                    pass
-            bg = "yellow"
-        else:
-            m1 = ""
-            tb = None
-            bg = self.errorbg
-        self.error.configure(text=m1, background=bg)
-        #
-        sv = self.stackviewer
-        if sv:
-            stack, i = self.get_stack(self.frame, tb)
-            sv.load_stack(stack, i)
-        #
-        self.show_variables(1)
-        #
-        if self.vsource.get():
-            self.sync_source_line()
-        #
-        for b in self.buttons:
-            b.configure(state="normal")
-        #
-        self.top.tkraise()
-        self.root.mainloop()
-        #
-        for b in self.buttons:
-            b.configure(state="disabled")
-        self.status.configure(text="")
-        self.error.configure(text="", background=self.errorbg)
-        self.frame = None
-
-    def sync_source_line(self):
-        frame = self.frame
-        if not frame:
-            return
-        code = frame.f_code
-        file = code.co_filename
-        lineno = frame.f_lineno
-        if file[:1] + file[-1:] != "<>" and os.path.exists(file):
-            edit = self.flist.open(file)
-            if edit:
-                edit.gotoline(lineno)
-
-    def cont(self):
-        self.set_continue()
-        self.root.quit()
-
-    def step(self):
-        self.set_step()
-        self.root.quit()
-
-    def next(self):
-        self.set_next(self.frame)
-        self.root.quit()
-
-    def ret(self):
-        self.set_return(self.frame)
-        self.root.quit()
-
-    def quit(self):
-        self.set_quit()
-        self.root.quit()
-
-    stackviewer = None
-
-    def show_stack(self):
-        if not self.stackviewer and self.vstack.get():
-            self.stackviewer = sv = StackViewer.StackViewer(
-                self.fstack, self.flist, self)
-            if self.frame:
-                stack, i = self.get_stack(self.frame, None)
-                sv.load_stack(stack, i)
-        else:
-            sv = self.stackviewer
-            if sv and not self.vstack.get():
-                self.stackviewer = None
-                sv.close()
-            self.fstack['height'] = 1
-
-    def show_source(self):
-        if self.vsource.get():
-            self.sync_source_line()
-
-    def show_frame(self, (frame, lineno)):
-        self.frame = frame
-        self.show_variables()
-
-    localsviewer = None
-    globalsviewer = None
-
-    def show_locals(self):
-        lv = self.localsviewer
-        if self.vlocals.get():
-            if not lv:
-                self.localsviewer = StackViewer.NamespaceViewer(
-                    self.flocals, "Locals")
-        else:
-            if lv:
-                self.localsviewer = None
-                lv.close()
-                self.flocals['height'] = 1
-        self.show_variables()
-
-    def show_globals(self):
-        gv = self.globalsviewer
-        if self.vglobals.get():
-            if not gv:
-                self.globalsviewer = StackViewer.NamespaceViewer(
-                    self.fglobals, "Globals")
-        else:
-            if gv:
-                self.globalsviewer = None
-                gv.close()
-                self.fglobals['height'] = 1
-        self.show_variables()
-
-    def show_variables(self, force=0):
-        lv = self.localsviewer
-        gv = self.globalsviewer
-        frame = self.frame
-        if not frame:
-            ldict = gdict = None
-        else:
-            ldict = frame.f_locals
-            gdict = frame.f_globals
-            if lv and gv and ldict is gdict:
-                ldict = None
-        if lv:
-            lv.load_dict(ldict, force)
-        if gv:
-            gv.load_dict(gdict, force)
-
-    def set_breakpoint_here(self, edit):
-        text = edit.text
-        filename = edit.io.filename
-        if not filename:
-            text.bell()
-            return
-        lineno = int(float(text.index("insert")))
-        msg = self.set_break(filename, lineno)
-        if msg:
-            text.bell()
-            return
-        text.tag_add("BREAK", "insert linestart", "insert lineend +1char")
-
-    # A literal copy of Bdb.set_break() without the print statement at the end
-    def set_break(self, filename, lineno, temporary=0, cond = None):
-        import linecache # Import as late as possible
-        line = linecache.getline(filename, lineno)
-        if not line:
-                return 'That line does not exist!'
-        if not self.breaks.has_key(filename):
-                self.breaks[filename] = []
-        list = self.breaks[filename]
-        if not lineno in list:
-                list.append(lineno)
-        bp = bdb.Breakpoint(filename, lineno, temporary, cond)
diff --git a/Lib/idlelib/Delegator.py b/Lib/idlelib/Delegator.py
deleted file mode 100644 (file)
index 3665247..0000000
+++ /dev/null
@@ -1,34 +0,0 @@
-
-class Delegator:
-
-    # The cache is only used to be able to change delegates!
-
-    def __init__(self, delegate=None):
-        self.delegate = delegate
-        self.__cache = {}
-
-    def __getattr__(self, name):
-        attr = getattr(self.delegate, name) # May raise AttributeError
-        setattr(self, name, attr)
-        self.__cache[name] = attr
-        return attr
-
-    def resetcache(self):
-        for key in self.__cache.keys():
-            try:
-                delattr(self, key)
-            except AttributeError:
-                pass
-        self.__cache.clear()
-
-    def cachereport(self):
-        keys = self.__cache.keys()
-        keys.sort()
-        print keys
-
-    def setdelegate(self, delegate):
-        self.resetcache()
-        self.delegate = delegate
-
-    def getdelegate(self):
-        return self.delegate
diff --git a/Lib/idlelib/EditorWindow.py b/Lib/idlelib/EditorWindow.py
deleted file mode 100644 (file)
index 9f76ef7..0000000
+++ /dev/null
@@ -1,749 +0,0 @@
-# changes by dscherer@cmu.edu
-#   - created format and run menus
-#   - added silly advice dialog (apologies to Douglas Adams)
-#   - made Python Documentation work on Windows (requires win32api to
-#     do a ShellExecute(); other ways of starting a web browser are awkward)
-
-import sys
-import os
-import string
-import re
-import imp
-from Tkinter import *
-import tkSimpleDialog
-import tkMessageBox
-import idlever
-import WindowList
-from IdleConf import idleconf
-
-# The default tab setting for a Text widget, in average-width characters.
-TK_TABWIDTH_DEFAULT = 8
-
-# File menu
-
-#$ event <<open-module>>
-#$ win <Alt-m>
-#$ unix <Control-x><Control-m>
-
-#$ event <<open-class-browser>>
-#$ win <Alt-c>
-#$ unix <Control-x><Control-b>
-
-#$ event <<open-path-browser>>
-
-#$ event <<close-window>>
-#$ unix <Control-x><Control-0>
-#$ unix <Control-x><Key-0>
-#$ win <Alt-F4>
-
-# Edit menu
-
-#$ event <<Copy>>
-#$ win <Control-c>
-#$ unix <Alt-w>
-
-#$ event <<Cut>>
-#$ win <Control-x>
-#$ unix <Control-w>
-
-#$ event <<Paste>>
-#$ win <Control-v>
-#$ unix <Control-y>
-
-#$ event <<select-all>>
-#$ win <Alt-a>
-#$ unix <Alt-a>
-
-# Help menu
-
-#$ event <<help>>
-#$ win <F1>
-#$ unix <F1>
-
-#$ event <<about-idle>>
-
-# Events without menu entries
-
-#$ event <<remove-selection>>
-#$ win <Escape>
-
-#$ event <<center-insert>>
-#$ win <Control-l>
-#$ unix <Control-l>
-
-#$ event <<do-nothing>>
-#$ unix <Control-x>
-
-
-about_title = "About IDLE"
-about_text = """\
-IDLE %s
-
-An Integrated DeveLopment Environment for Python
-
-by Guido van Rossum
-
-This version of IDLE has been modified by David Scherer
-  (dscherer@cmu.edu).  See readme.txt for details.
-""" % idlever.IDLE_VERSION
-
-class EditorWindow:
-
-    from Percolator import Percolator
-    from ColorDelegator import ColorDelegator
-    from UndoDelegator import UndoDelegator
-    from IOBinding import IOBinding
-    import Bindings
-    from Tkinter import Toplevel
-    from MultiStatusBar import MultiStatusBar
-
-    about_title = about_title
-    about_text = about_text
-
-    vars = {}
-
-    def __init__(self, flist=None, filename=None, key=None, root=None):
-        edconf = idleconf.getsection('EditorWindow')
-        coconf = idleconf.getsection('Colors')
-        self.flist = flist
-        root = root or flist.root
-        self.root = root
-        if flist:
-            self.vars = flist.vars
-        self.menubar = Menu(root)
-        self.top = top = self.Toplevel(root, menu=self.menubar)
-        self.vbar = vbar = Scrollbar(top, name='vbar')
-        self.text_frame = text_frame = Frame(top)
-        self.text = text = Text(text_frame, name='text', padx=5,
-                      foreground=coconf.getdef('normal-foreground'),
-                      background=coconf.getdef('normal-background'),
-                      highlightcolor=coconf.getdef('hilite-foreground'),
-                      highlightbackground=coconf.getdef('hilite-background'),
-                      insertbackground=coconf.getdef('cursor-background'),
-                      width=edconf.getint('width'),
-                      height=edconf.getint('height'),
-                      wrap="none")
-
-        self.createmenubar()
-        self.apply_bindings()
-
-        self.top.protocol("WM_DELETE_WINDOW", self.close)
-        self.top.bind("<<close-window>>", self.close_event)
-        text.bind("<<center-insert>>", self.center_insert_event)
-        text.bind("<<help>>", self.help_dialog)
-        text.bind("<<good-advice>>", self.good_advice)
-        text.bind("<<python-docs>>", self.python_docs)
-        text.bind("<<about-idle>>", self.about_dialog)
-        text.bind("<<open-module>>", self.open_module)
-        text.bind("<<do-nothing>>", lambda event: "break")
-        text.bind("<<select-all>>", self.select_all)
-        text.bind("<<remove-selection>>", self.remove_selection)
-        text.bind("<3>", self.right_menu_event)
-        if flist:
-            flist.inversedict[self] = key
-            if key:
-                flist.dict[key] = self
-            text.bind("<<open-new-window>>", self.flist.new_callback)
-            text.bind("<<close-all-windows>>", self.flist.close_all_callback)
-            text.bind("<<open-class-browser>>", self.open_class_browser)
-            text.bind("<<open-path-browser>>", self.open_path_browser)
-
-        vbar['command'] = text.yview
-        vbar.pack(side=RIGHT, fill=Y)
-
-        text['yscrollcommand'] = vbar.set
-        text['font'] = edconf.get('font-name'), edconf.get('font-size')
-        text_frame.pack(side=LEFT, fill=BOTH, expand=1)
-        text.pack(side=TOP, fill=BOTH, expand=1)
-        text.focus_set()
-
-        self.per = per = self.Percolator(text)
-        if self.ispythonsource(filename):
-            self.color = color = self.ColorDelegator(); per.insertfilter(color)
-            ##print "Initial colorizer"
-        else:
-            ##print "No initial colorizer"
-            self.color = None
-        self.undo = undo = self.UndoDelegator(); per.insertfilter(undo)
-        self.io = io = self.IOBinding(self)
-
-        text.undo_block_start = undo.undo_block_start
-        text.undo_block_stop = undo.undo_block_stop
-        undo.set_saved_change_hook(self.saved_change_hook)
-        io.set_filename_change_hook(self.filename_change_hook)
-
-        if filename:
-            if os.path.exists(filename):
-                io.loadfile(filename)
-            else:
-                io.set_filename(filename)
-
-        self.saved_change_hook()
-
-        self.load_extensions()
-
-        menu = self.menudict.get('windows')
-        if menu:
-            end = menu.index("end")
-            if end is None:
-                end = -1
-            if end >= 0:
-                menu.add_separator()
-                end = end + 1
-            self.wmenu_end = end
-            WindowList.register_callback(self.postwindowsmenu)
-
-        # Some abstractions so IDLE extensions are cross-IDE
-        self.askyesno = tkMessageBox.askyesno
-        self.askinteger = tkSimpleDialog.askinteger
-        self.showerror = tkMessageBox.showerror
-
-        if self.extensions.has_key('AutoIndent'):
-            self.extensions['AutoIndent'].set_indentation_params(
-                self.ispythonsource(filename))
-        self.set_status_bar()
-
-    def set_status_bar(self):
-        self.status_bar = self.MultiStatusBar(self.text_frame)
-        self.status_bar.set_label('column', 'Col: ?', side=RIGHT)
-        self.status_bar.set_label('line', 'Ln: ?', side=RIGHT)
-        self.status_bar.pack(side=BOTTOM, fill=X)
-        self.text.bind('<KeyRelease>', self.set_line_and_column)
-        self.text.bind('<ButtonRelease>', self.set_line_and_column)
-        self.text.after_idle(self.set_line_and_column)
-
-    def set_line_and_column(self, event=None):
-        line, column = string.split(self.text.index(INSERT), '.')
-        self.status_bar.set_label('column', 'Col: %s' % column)
-        self.status_bar.set_label('line', 'Ln: %s' % line)
-
-    def wakeup(self):
-        if self.top.wm_state() == "iconic":
-            self.top.wm_deiconify()
-        else:
-            self.top.tkraise()
-        self.text.focus_set()
-
-    menu_specs = [
-        ("file", "_File"),
-        ("edit", "_Edit"),
-        ("format", "F_ormat"),
-        ("run", "_Run"),
-        ("windows", "_Windows"),
-        ("help", "_Help"),
-    ]
-
-    def createmenubar(self):
-        mbar = self.menubar
-        self.menudict = menudict = {}
-        for name, label in self.menu_specs:
-            underline, label = prepstr(label)
-            menudict[name] = menu = Menu(mbar, name=name)
-            mbar.add_cascade(label=label, menu=menu, underline=underline)
-        self.fill_menus()
-
-    def postwindowsmenu(self):
-        # Only called when Windows menu exists
-        # XXX Actually, this Just-In-Time updating interferes badly
-        # XXX with the tear-off feature.  It would be better to update
-        # XXX all Windows menus whenever the list of windows changes.
-        menu = self.menudict['windows']
-        end = menu.index("end")
-        if end is None:
-            end = -1
-        if end > self.wmenu_end:
-            menu.delete(self.wmenu_end+1, end)
-        WindowList.add_windows_to_menu(menu)
-
-    rmenu = None
-
-    def right_menu_event(self, event):
-        self.text.tag_remove("sel", "1.0", "end")
-        self.text.mark_set("insert", "@%d,%d" % (event.x, event.y))
-        if not self.rmenu:
-            self.make_rmenu()
-        rmenu = self.rmenu
-        self.event = event
-        iswin = sys.platform[:3] == 'win'
-        if iswin:
-            self.text.config(cursor="arrow")
-        rmenu.tk_popup(event.x_root, event.y_root)
-        if iswin:
-            self.text.config(cursor="ibeam")
-
-    rmenu_specs = [
-        # ("Label", "<<virtual-event>>"), ...
-        ("Close", "<<close-window>>"), # Example
-    ]
-
-    def make_rmenu(self):
-        rmenu = Menu(self.text, tearoff=0)
-        for label, eventname in self.rmenu_specs:
-            def command(text=self.text, eventname=eventname):
-                text.event_generate(eventname)
-            rmenu.add_command(label=label, command=command)
-        self.rmenu = rmenu
-
-    def about_dialog(self, event=None):
-        tkMessageBox.showinfo(self.about_title, self.about_text,
-                              master=self.text)
-
-    helpfile = "help.txt"
-
-    def good_advice(self, event=None):
-        tkMessageBox.showinfo('Advice', "Don't Panic!", master=self.text)
-
-    def help_dialog(self, event=None):
-        try:
-            helpfile = os.path.join(os.path.dirname(__file__), self.helpfile)
-        except NameError:
-            helpfile = self.helpfile
-        if self.flist:
-            self.flist.open(helpfile)
-        else:
-            self.io.loadfile(helpfile)
-
-    help_viewer = "netscape -remote 'openurl(%(url)s)' 2>/dev/null || " \
-                  "netscape %(url)s &"
-    help_url = "http://www.python.org/doc/current/"
-
-    def python_docs(self, event=None):
-        if sys.platform=='win32':
-          try:
-            import win32api
-            import ExecBinding
-            doc = os.path.join( os.path.dirname( ExecBinding.pyth_exe ), "doc", "index.html" )
-            win32api.ShellExecute(0, None, doc, None, sys.path[0], 1)
-          except:
-            pass
-        else:
-          cmd = self.help_viewer % {"url": self.help_url}
-          os.system(cmd)
-
-    def select_all(self, event=None):
-        self.text.tag_add("sel", "1.0", "end-1c")
-        self.text.mark_set("insert", "1.0")
-        self.text.see("insert")
-        return "break"
-
-    def remove_selection(self, event=None):
-        self.text.tag_remove("sel", "1.0", "end")
-        self.text.see("insert")
-
-    def open_module(self, event=None):
-        # XXX Shouldn't this be in IOBinding or in FileList?
-        try:
-            name = self.text.get("sel.first", "sel.last")
-        except TclError:
-            name = ""
-        else:
-            name = string.strip(name)
-        if not name:
-            name = tkSimpleDialog.askstring("Module",
-                     "Enter the name of a Python module\n"
-                     "to search on sys.path and open:",
-                     parent=self.text)
-            if name:
-                name = string.strip(name)
-            if not name:
-                return
-        # XXX Ought to support package syntax
-        # XXX Ought to insert current file's directory in front of path
-        try:
-            (f, file, (suffix, mode, type)) = imp.find_module(name)
-        except (NameError, ImportError), msg:
-            tkMessageBox.showerror("Import error", str(msg), parent=self.text)
-            return
-        if type != imp.PY_SOURCE:
-            tkMessageBox.showerror("Unsupported type",
-                "%s is not a source module" % name, parent=self.text)
-            return
-        if f:
-            f.close()
-        if self.flist:
-            self.flist.open(file)
-        else:
-            self.io.loadfile(file)
-
-    def open_class_browser(self, event=None):
-        filename = self.io.filename
-        if not filename:
-            tkMessageBox.showerror(
-                "No filename",
-                "This buffer has no associated filename",
-                master=self.text)
-            self.text.focus_set()
-            return None
-        head, tail = os.path.split(filename)
-        base, ext = os.path.splitext(tail)
-        import ClassBrowser
-        ClassBrowser.ClassBrowser(self.flist, base, [head])
-
-    def open_path_browser(self, event=None):
-        import PathBrowser
-        PathBrowser.PathBrowser(self.flist)
-
-    def gotoline(self, lineno):
-        if lineno is not None and lineno > 0:
-            self.text.mark_set("insert", "%d.0" % lineno)
-            self.text.tag_remove("sel", "1.0", "end")
-            self.text.tag_add("sel", "insert", "insert +1l")
-            self.center()
-
-    def ispythonsource(self, filename):
-        if not filename:
-            return 1
-        base, ext = os.path.splitext(os.path.basename(filename))
-        if os.path.normcase(ext) in (".py", ".pyw"):
-            return 1
-        try:
-            f = open(filename)
-            line = f.readline()
-            f.close()
-        except IOError:
-            return 0
-        return line[:2] == '#!' and string.find(line, 'python') >= 0
-
-    def close_hook(self):
-        if self.flist:
-            self.flist.close_edit(self)
-
-    def set_close_hook(self, close_hook):
-        self.close_hook = close_hook
-
-    def filename_change_hook(self):
-        if self.flist:
-            self.flist.filename_changed_edit(self)
-        self.saved_change_hook()
-        if self.ispythonsource(self.io.filename):
-            self.addcolorizer()
-        else:
-            self.rmcolorizer()
-
-    def addcolorizer(self):
-        if self.color:
-            return
-        ##print "Add colorizer"
-        self.per.removefilter(self.undo)
-        self.color = self.ColorDelegator()
-        self.per.insertfilter(self.color)
-        self.per.insertfilter(self.undo)
-
-    def rmcolorizer(self):
-        if not self.color:
-            return
-        ##print "Remove colorizer"
-        self.per.removefilter(self.undo)
-        self.per.removefilter(self.color)
-        self.color = None
-        self.per.insertfilter(self.undo)
-
-    def saved_change_hook(self):
-        short = self.short_title()
-        long = self.long_title()
-        if short and long:
-            title = short + " - " + long
-        elif short:
-            title = short
-        elif long:
-            title = long
-        else:
-            title = "Untitled"
-        icon = short or long or title
-        if not self.get_saved():
-            title = "*%s*" % title
-            icon = "*%s" % icon
-        self.top.wm_title(title)
-        self.top.wm_iconname(icon)
-
-    def get_saved(self):
-        return self.undo.get_saved()
-
-    def set_saved(self, flag):
-        self.undo.set_saved(flag)
-
-    def reset_undo(self):
-        self.undo.reset_undo()
-
-    def short_title(self):
-        filename = self.io.filename
-        if filename:
-            filename = os.path.basename(filename)
-        return filename
-
-    def long_title(self):
-        return self.io.filename or ""
-
-    def center_insert_event(self, event):
-        self.center()
-
-    def center(self, mark="insert"):
-        text = self.text
-        top, bot = self.getwindowlines()
-        lineno = self.getlineno(mark)
-        height = bot - top
-        newtop = max(1, lineno - height/2)
-        text.yview(float(newtop))
-
-    def getwindowlines(self):
-        text = self.text
-        top = self.getlineno("@0,0")
-        bot = self.getlineno("@0,65535")
-        if top == bot and text.winfo_height() == 1:
-            # Geometry manager hasn't run yet
-            height = int(text['height'])
-            bot = top + height - 1
-        return top, bot
-
-    def getlineno(self, mark="insert"):
-        text = self.text
-        return int(float(text.index(mark)))
-
-    def close_event(self, event):
-        self.close()
-
-    def maybesave(self):
-        if self.io:
-            return self.io.maybesave()
-
-    def close(self):
-        self.top.wm_deiconify()
-        self.top.tkraise()
-        reply = self.maybesave()
-        if reply != "cancel":
-            self._close()
-        return reply
-
-    def _close(self):
-        WindowList.unregister_callback(self.postwindowsmenu)
-        if self.close_hook:
-            self.close_hook()
-        self.flist = None
-        colorizing = 0
-        self.unload_extensions()
-        self.io.close(); self.io = None
-        self.undo = None # XXX
-        if self.color:
-            colorizing = self.color.colorizing
-            doh = colorizing and self.top
-            self.color.close(doh) # Cancel colorization
-        self.text = None
-        self.vars = None
-        self.per.close(); self.per = None
-        if not colorizing:
-            self.top.destroy()
-
-    def load_extensions(self):
-        self.extensions = {}
-        self.load_standard_extensions()
-
-    def unload_extensions(self):
-        for ins in self.extensions.values():
-            if hasattr(ins, "close"):
-                ins.close()
-        self.extensions = {}
-
-    def load_standard_extensions(self):
-        for name in self.get_standard_extension_names():
-            try:
-                self.load_extension(name)
-            except:
-                print "Failed to load extension", `name`
-                import traceback
-                traceback.print_exc()
-
-    def get_standard_extension_names(self):
-        return idleconf.getextensions()
-
-    def load_extension(self, name):
-        mod = __import__(name, globals(), locals(), [])
-        cls = getattr(mod, name)
-        ins = cls(self)
-        self.extensions[name] = ins
-        kdnames = ["keydefs"]
-        if sys.platform == 'win32':
-            kdnames.append("windows_keydefs")
-        elif sys.platform == 'mac':
-            kdnames.append("mac_keydefs")
-        else:
-            kdnames.append("unix_keydefs")
-        keydefs = {}
-        for kdname in kdnames:
-            if hasattr(ins, kdname):
-                keydefs.update(getattr(ins, kdname))
-        if keydefs:
-            self.apply_bindings(keydefs)
-            for vevent in keydefs.keys():
-                methodname = string.replace(vevent, "-", "_")
-                while methodname[:1] == '<':
-                    methodname = methodname[1:]
-                while methodname[-1:] == '>':
-                    methodname = methodname[:-1]
-                methodname = methodname + "_event"
-                if hasattr(ins, methodname):
-                    self.text.bind(vevent, getattr(ins, methodname))
-        if hasattr(ins, "menudefs"):
-            self.fill_menus(ins.menudefs, keydefs)
-        return ins
-
-    def apply_bindings(self, keydefs=None):
-        if keydefs is None:
-            keydefs = self.Bindings.default_keydefs
-        text = self.text
-        text.keydefs = keydefs
-        for event, keylist in keydefs.items():
-            if keylist:
-                apply(text.event_add, (event,) + tuple(keylist))
-
-    def fill_menus(self, defs=None, keydefs=None):
-        # Fill the menus. Menus that are absent or None in
-        # self.menudict are ignored.
-        if defs is None:
-            defs = self.Bindings.menudefs
-        if keydefs is None:
-            keydefs = self.Bindings.default_keydefs
-        menudict = self.menudict
-        text = self.text
-        for mname, itemlist in defs:
-            menu = menudict.get(mname)
-            if not menu:
-                continue
-            for item in itemlist:
-                if not item:
-                    menu.add_separator()
-                else:
-                    label, event = item
-                    checkbutton = (label[:1] == '!')
-                    if checkbutton:
-                        label = label[1:]
-                    underline, label = prepstr(label)
-                    accelerator = get_accelerator(keydefs, event)
-                    def command(text=text, event=event):
-                        text.event_generate(event)
-                    if checkbutton:
-                        var = self.getrawvar(event, BooleanVar)
-                        menu.add_checkbutton(label=label, underline=underline,
-                            command=command, accelerator=accelerator,
-                            variable=var)
-                    else:
-                        menu.add_command(label=label, underline=underline,
-                            command=command, accelerator=accelerator)
-
-    def getvar(self, name):
-        var = self.getrawvar(name)
-        if var:
-            return var.get()
-
-    def setvar(self, name, value, vartype=None):
-        var = self.getrawvar(name, vartype)
-        if var:
-            var.set(value)
-
-    def getrawvar(self, name, vartype=None):
-        var = self.vars.get(name)
-        if not var and vartype:
-            self.vars[name] = var = vartype(self.text)
-        return var
-
-    # Tk implementations of "virtual text methods" -- each platform
-    # reusing IDLE's support code needs to define these for its GUI's
-    # flavor of widget.
-
-    # Is character at text_index in a Python string?  Return 0 for
-    # "guaranteed no", true for anything else.  This info is expensive
-    # to compute ab initio, but is probably already known by the
-    # platform's colorizer.
-
-    def is_char_in_string(self, text_index):
-        if self.color:
-            # Return true iff colorizer hasn't (re)gotten this far
-            # yet, or the character is tagged as being in a string
-            return self.text.tag_prevrange("TODO", text_index) or \
-                   "STRING" in self.text.tag_names(text_index)
-        else:
-            # The colorizer is missing: assume the worst
-            return 1
-
-    # If a selection is defined in the text widget, return (start,
-    # end) as Tkinter text indices, otherwise return (None, None)
-    def get_selection_indices(self):
-        try:
-            first = self.text.index("sel.first")
-            last = self.text.index("sel.last")
-            return first, last
-        except TclError:
-            return None, None
-
-    # Return the text widget's current view of what a tab stop means
-    # (equivalent width in spaces).
-
-    def get_tabwidth(self):
-        current = self.text['tabs'] or TK_TABWIDTH_DEFAULT
-        return int(current)
-
-    # Set the text widget's current view of what a tab stop means.
-
-    def set_tabwidth(self, newtabwidth):
-        text = self.text
-        if self.get_tabwidth() != newtabwidth:
-            pixels = text.tk.call("font", "measure", text["font"],
-                                  "-displayof", text.master,
-                                  "n" * newtabwith)
-            text.configure(tabs=pixels)
-
-def prepstr(s):
-    # Helper to extract the underscore from a string, e.g.
-    # prepstr("Co_py") returns (2, "Copy").
-    i = string.find(s, '_')
-    if i >= 0:
-        s = s[:i] + s[i+1:]
-    return i, s
-
-
-keynames = {
- 'bracketleft': '[',
- 'bracketright': ']',
- 'slash': '/',
-}
-
-def get_accelerator(keydefs, event):
-    keylist = keydefs.get(event)
-    if not keylist:
-        return ""
-    s = keylist[0]
-    s = re.sub(r"-[a-z]\b", lambda m: string.upper(m.group()), s)
-    s = re.sub(r"\b\w+\b", lambda m: keynames.get(m.group(), m.group()), s)
-    s = re.sub("Key-", "", s)
-    s = re.sub("Cancel","Ctrl-Break",s)   # dscherer@cmu.edu
-    s = re.sub("Control-", "Ctrl-", s)
-    s = re.sub("-", "+", s)
-    s = re.sub("><", " ", s)
-    s = re.sub("<", "", s)
-    s = re.sub(">", "", s)
-    return s
-
-
-def fixwordbreaks(root):
-    # Make sure that Tk's double-click and next/previous word
-    # operations use our definition of a word (i.e. an identifier)
-    tk = root.tk
-    tk.call('tcl_wordBreakAfter', 'a b', 0) # make sure word.tcl is loaded
-    tk.call('set', 'tcl_wordchars', '[a-zA-Z0-9_]')
-    tk.call('set', 'tcl_nonwordchars', '[^a-zA-Z0-9_]')
-
-
-def test():
-    root = Tk()
-    fixwordbreaks(root)
-    root.withdraw()
-    if sys.argv[1:]:
-        filename = sys.argv[1]
-    else:
-        filename = None
-    edit = EditorWindow(root=root, filename=filename)
-    edit.set_close_hook(root.quit)
-    root.mainloop()
-    root.destroy()
-
-if __name__ == '__main__':
-    test()
diff --git a/Lib/idlelib/ExecBinding.py b/Lib/idlelib/ExecBinding.py
deleted file mode 100644 (file)
index 67b0822..0000000
+++ /dev/null
@@ -1,198 +0,0 @@
-"""Extension to execute a script in a separate process
-
-David Scherer <dscherer@cmu.edu>
-
-  The ExecBinding module, a replacement for ScriptBinding, executes
-  programs in a separate process.  Unlike previous versions, this version
-  communicates with the user process via an RPC protocol (see the 'protocol'
-  module).  The user program is loaded by the 'loader' and 'Remote'
-  modules.  Its standard output and input are directed back to the
-  ExecBinding class through the RPC mechanism and implemented here.
-
-  A "stop program" command is provided and bound to control-break.  Closing
-  the output window also stops the running program.
-"""
-
-import sys
-import os
-import imp
-import OutputWindow
-import protocol
-import spawn
-import traceback
-import tempfile
-
-# Find Python and the loader.  This should be done as early in execution
-#   as possible, because if the current directory or sys.path is changed
-#   it may no longer be possible to get correct paths for these things.
-
-pyth_exe = spawn.hardpath( sys.executable )
-load_py  = spawn.hardpath( imp.find_module("loader")[1] )
-
-# The following mechanism matches loaders up with ExecBindings that are
-#    trying to load something.
-
-waiting_for_loader = []
-
-def loader_connect(client, addr):
-    if waiting_for_loader:
-        a = waiting_for_loader.pop(0)
-        try:
-            return a.connect(client, addr)
-        except:
-            return loader_connect(client,addr)
-
-protocol.publish('ExecBinding', loader_connect)
-
-class ExecBinding:
-    keydefs = {
-        '<<run-complete-script>>': ['<F5>'],
-        '<<stop-execution>>': ['<Cancel>'],   #'<Control-c>'
-    }
-    
-    menudefs = [
-        ('run', [None,
-                  ('Run program', '<<run-complete-script>>'),
-                  ('Stop program', '<<stop-execution>>'),
-                 ]
-        ),
-    ]
-
-    delegate = 1
-
-    def __init__(self, editwin):
-        self.editwin = editwin
-        self.client = None
-        self.temp = []
-
-        if not hasattr(editwin, 'source_window'):
-            self.delegate = 0
-            self.output = OutputWindow.OnDemandOutputWindow(editwin.flist)
-            self.output.close_hook = self.stopProgram
-            self.output.source_window = editwin
-        else:
-            if (self.editwin.source_window and
-                self.editwin.source_window.extensions.has_key('ExecBinding') and
-                not self.editwin.source_window.extensions['ExecBinding'].delegate):
-                    delegate = self.editwin.source_window.extensions['ExecBinding']
-                    self.run_complete_script_event = delegate.run_complete_script_event
-                    self.stop_execution_event = delegate.stop_execution_event
-
-    def __del__(self):
-        self.stopProgram()
-
-    def stop_execution_event(self, event):
-        if self.client:
-            self.stopProgram()
-            self.write('\nProgram stopped.\n','stderr')
-
-    def run_complete_script_event(self, event):
-        filename = self.getfilename()
-        if not filename: return
-        filename = os.path.abspath(filename)
-
-        self.stopProgram()
-
-        self.commands = [ ('run', filename) ]
-        waiting_for_loader.append(self)
-        spawn.spawn( pyth_exe, load_py )
-
-    def connect(self, client, addr):
-        # Called by loader_connect() above.  It is remotely possible that
-        #   we get connected to two loaders if the user is running the
-        #   program repeatedly in a short span of time.  In this case, we
-        #   simply return None, refusing to connect and letting the redundant
-        #   loader die.
-        if self.client: return None
-
-        self.client = client
-        client.set_close_hook( self.connect_lost )
-
-        title = self.editwin.short_title()
-        if title:
-            self.output.set_title(title + " Output")
-        else:
-            self.output.set_title("Output")
-        self.output.write('\n',"stderr")
-        self.output.scroll_clear()
-
-        return self
-
-    def connect_lost(self):
-        # Called by the client's close hook when the loader closes its
-        #   socket.
-
-        # We print a disconnect message only if the output window is already
-        #   open.
-        if self.output.owin and self.output.owin.text:
-            self.output.owin.interrupt()
-            self.output.write("\nProgram disconnected.\n","stderr")
-
-        for t in self.temp:
-            try:
-                os.remove(t)
-            except:
-                pass
-        self.temp = []
-        self.client = None
-
-    def get_command(self):
-        # Called by Remote to find out what it should be executing.
-        # Later this will be used to implement debugging, interactivity, etc.
-        if self.commands:
-            return self.commands.pop(0)
-        return ('finish',)
-
-    def program_exception(self, type, value, tb, first, last):
-        if type == SystemExit: return 0
-
-        for i in range(len(tb)):
-            filename, lineno, name, line = tb[i]
-            if filename in self.temp:
-                filename = 'Untitled'
-            tb[i] = filename, lineno, name, line
-
-        list = traceback.format_list(tb[first:last])
-        exc = traceback.format_exception_only( type, value )
-
-        self.write('Traceback (innermost last)\n', 'stderr')
-        for i in (list+exc):
-            self.write(i, 'stderr')
-
-        self.commands = []
-        return 1
-
-    def write(self, text, tag):
-        self.output.write(text,tag)
-
-    def readline(self):
-        return self.output.readline()
-
-    def stopProgram(self):
-        if self.client:
-          self.client.close()
-          self.client = None
-
-    def getfilename(self):
-        # Save all files which have been named, because they might be modules
-        for edit in self.editwin.flist.inversedict.keys():
-            if edit.io and edit.io.filename and not edit.get_saved():
-                edit.io.save(None)
-
-        # Experimental: execute unnamed buffer
-        if not self.editwin.io.filename:
-            filename = os.path.normcase(os.path.abspath(tempfile.mktemp()))
-            self.temp.append(filename)
-            if self.editwin.io.writefile(filename):
-                return filename
-
-        # If the file isn't save, we save it.  If it doesn't have a filename,
-        #   the user will be prompted.
-        if self.editwin.io and not self.editwin.get_saved():
-            self.editwin.io.save(None)
-
-        # If the file *still* isn't saved, we give up.
-        if not self.editwin.get_saved():
-            return
-
-        return self.editwin.io.filename
diff --git a/Lib/idlelib/FileList.py b/Lib/idlelib/FileList.py
deleted file mode 100644 (file)
index 5d9aafe..0000000
+++ /dev/null
@@ -1,150 +0,0 @@
-# changes by dscherer@cmu.edu
-#   - FileList.open() takes an optional 3rd parameter action, which is
-#       called instead of creating a new EditorWindow.  This enables
-#       things like 'open in same window'.
-
-import os
-from Tkinter import *
-import tkMessageBox
-
-import WindowList
-
-#$ event <<open-new-window>>
-#$ win <Control-n>
-#$ unix <Control-x><Control-n>
-
-# (This is labeled as 'Exit'in the File menu)
-#$ event <<close-all-windows>>
-#$ win <Control-q>
-#$ unix <Control-x><Control-c>
-
-class FileList:
-
-    from EditorWindow import EditorWindow
-    EditorWindow.Toplevel = WindowList.ListedToplevel # XXX Patch it!
-
-    def __init__(self, root):
-        self.root = root
-        self.dict = {}
-        self.inversedict = {}
-        self.vars = {} # For EditorWindow.getrawvar (shared Tcl variables)
-
-
-    def goodname(self, filename):
-            filename = self.canonize(filename)
-            key = os.path.normcase(filename)
-            if self.dict.has_key(key):
-                edit = self.dict[key]
-                filename = edit.io.filename or filename
-            return filename
-
-    def open(self, filename, action=None):
-        assert filename
-        filename = self.canonize(filename)
-        if os.path.isdir(filename):
-            tkMessageBox.showerror(
-                "Is A Directory",
-                "The path %s is a directory." % `filename`,
-                master=self.root)
-            return None
-        key = os.path.normcase(filename)
-        if self.dict.has_key(key):
-            edit = self.dict[key]
-            edit.wakeup()
-            return edit
-        if not os.path.exists(filename):
-            tkMessageBox.showinfo(
-                "New File",
-                "Opening non-existent file %s" % `filename`,
-                master=self.root)
-        if action is None:
-            return self.EditorWindow(self, filename, key)
-        else:
-            return action(filename)
-
-    def new(self):
-        return self.EditorWindow(self)
-
-    def new_callback(self, event):
-        self.new()
-        return "break"
-
-    def close_all_callback(self, event):
-        for edit in self.inversedict.keys():
-            reply = edit.close()
-            if reply == "cancel":
-                break
-        return "break"
-
-    def close_edit(self, edit):
-        try:
-            key = self.inversedict[edit]
-        except KeyError:
-            print "Don't know this EditorWindow object.  (close)"
-            return
-        if key:
-            del self.dict[key]
-        del self.inversedict[edit]
-        if not self.inversedict:
-            self.root.quit()
-
-    def filename_changed_edit(self, edit):
-        edit.saved_change_hook()
-        try:
-            key = self.inversedict[edit]
-        except KeyError:
-            print "Don't know this EditorWindow object.  (rename)"
-            return
-        filename = edit.io.filename
-        if not filename:
-            if key:
-                del self.dict[key]
-            self.inversedict[edit] = None
-            return
-        filename = self.canonize(filename)
-        newkey = os.path.normcase(filename)
-        if newkey == key:
-            return
-        if self.dict.has_key(newkey):
-            conflict = self.dict[newkey]
-            self.inversedict[conflict] = None
-            tkMessageBox.showerror(
-                "Name Conflict",
-                "You now have multiple edit windows open for %s" % `filename`,
-                master=self.root)
-        self.dict[newkey] = edit
-        self.inversedict[edit] = newkey
-        if key:
-            try:
-                del self.dict[key]
-            except KeyError:
-                pass
-
-    def canonize(self, filename):
-        if not os.path.isabs(filename):
-            try:
-                pwd = os.getcwd()
-            except os.error:
-                pass
-            else:
-                filename = os.path.join(pwd, filename)
-        return os.path.normpath(filename)
-
-
-def test():
-    from EditorWindow import fixwordbreaks
-    import sys
-    root = Tk()
-    fixwordbreaks(root)
-    root.withdraw()
-    flist = FileList(root)
-    if sys.argv[1:]:
-        for filename in sys.argv[1:]:
-            flist.open(filename)
-    else:
-        flist.new()
-    if flist.inversedict:
-        root.mainloop()
-
-if __name__ == '__main__':
-    test()
diff --git a/Lib/idlelib/FormatParagraph.py b/Lib/idlelib/FormatParagraph.py
deleted file mode 100644 (file)
index 68fe6b1..0000000
+++ /dev/null
@@ -1,155 +0,0 @@
-# Extension to format a paragraph
-
-# Does basic, standard text formatting, and also understands Python
-# comment blocks.  Thus, for editing Python source code, this
-# extension is really only suitable for reformatting these comment
-# blocks or triple-quoted strings.
-
-# Known problems with comment reformatting:
-# * If there is a selection marked, and the first line of the
-#   selection is not complete, the block will probably not be detected
-#   as comments, and will have the normal "text formatting" rules
-#   applied.
-# * If a comment block has leading whitespace that mixes tabs and
-#   spaces, they will not be considered part of the same block.
-# * Fancy comments, like this bulleted list, arent handled :-)
-
-import string
-import re
-
-class FormatParagraph:
-
-    menudefs = [
-        ('format', [   # /s/edit/format   dscherer@cmu.edu
-            ('Format Paragraph', '<<format-paragraph>>'),
-         ])
-    ]
-
-    keydefs = {
-        '<<format-paragraph>>': ['<Alt-q>'],
-    }
-    
-    unix_keydefs = {
-        '<<format-paragraph>>': ['<Meta-q>'],
-    } 
-
-    def __init__(self, editwin):
-        self.editwin = editwin
-
-    def close(self):
-        self.editwin = None
-
-    def format_paragraph_event(self, event):
-        text = self.editwin.text
-        first, last = self.editwin.get_selection_indices()
-        if first and last:
-            data = text.get(first, last)
-            comment_header = ''
-        else:
-            first, last, comment_header, data = \
-                    find_paragraph(text, text.index("insert"))
-        if comment_header:
-            # Reformat the comment lines - convert to text sans header.
-            lines = string.split(data, "\n")
-            lines = map(lambda st, l=len(comment_header): st[l:], lines)
-            data = string.join(lines, "\n")
-            # Reformat to 70 chars or a 20 char width, whichever is greater.
-            format_width = max(70-len(comment_header), 20)
-            newdata = reformat_paragraph(data, format_width)
-            # re-split and re-insert the comment header.
-            newdata = string.split(newdata, "\n")
-            # If the block ends in a \n, we dont want the comment
-            # prefix inserted after it. (Im not sure it makes sense to
-            # reformat a comment block that isnt made of complete
-            # lines, but whatever!)  Can't think of a clean soltution,
-            # so we hack away
-            block_suffix = ""
-            if not newdata[-1]:
-                block_suffix = "\n"
-                newdata = newdata[:-1]
-            builder = lambda item, prefix=comment_header: prefix+item
-            newdata = string.join(map(builder, newdata), '\n') + block_suffix
-        else:
-            # Just a normal text format
-            newdata = reformat_paragraph(data)
-        text.tag_remove("sel", "1.0", "end")
-        if newdata != data:
-            text.mark_set("insert", first)
-            text.undo_block_start()
-            text.delete(first, last)
-            text.insert(first, newdata)
-            text.undo_block_stop()
-        else:
-            text.mark_set("insert", last)
-        text.see("insert")
-
-def find_paragraph(text, mark):
-    lineno, col = map(int, string.split(mark, "."))
-    line = text.get("%d.0" % lineno, "%d.0 lineend" % lineno)
-    while text.compare("%d.0" % lineno, "<", "end") and is_all_white(line):
-        lineno = lineno + 1
-        line = text.get("%d.0" % lineno, "%d.0 lineend" % lineno)
-    first_lineno = lineno
-    comment_header = get_comment_header(line)
-    comment_header_len = len(comment_header)
-    while get_comment_header(line)==comment_header and \
-              not is_all_white(line[comment_header_len:]):
-        lineno = lineno + 1
-        line = text.get("%d.0" % lineno, "%d.0 lineend" % lineno)
-    last = "%d.0" % lineno
-    # Search back to beginning of paragraph
-    lineno = first_lineno - 1
-    line = text.get("%d.0" % lineno, "%d.0 lineend" % lineno)
-    while lineno > 0 and \
-              get_comment_header(line)==comment_header and \
-              not is_all_white(line[comment_header_len:]):
-        lineno = lineno - 1
-        line = text.get("%d.0" % lineno, "%d.0 lineend" % lineno)
-    first = "%d.0" % (lineno+1)
-    return first, last, comment_header, text.get(first, last)
-
-def reformat_paragraph(data, limit=70):
-    lines = string.split(data, "\n")
-    i = 0
-    n = len(lines)
-    while i < n and is_all_white(lines[i]):
-        i = i+1
-    if i >= n:
-        return data
-    indent1 = get_indent(lines[i])
-    if i+1 < n and not is_all_white(lines[i+1]):
-        indent2 = get_indent(lines[i+1])
-    else:
-        indent2 = indent1
-    new = lines[:i]
-    partial = indent1
-    while i < n and not is_all_white(lines[i]):
-        # XXX Should take double space after period (etc.) into account
-        words = re.split("(\s+)", lines[i])
-        for j in range(0, len(words), 2):
-            word = words[j]
-            if not word:
-                continue # Can happen when line ends in whitespace
-            if len(string.expandtabs(partial + word)) > limit and \
-               partial != indent1:
-                new.append(string.rstrip(partial))
-                partial = indent2
-            partial = partial + word + " "
-            if j+1 < len(words) and words[j+1] != " ":
-                partial = partial + " "
-        i = i+1
-    new.append(string.rstrip(partial))
-    # XXX Should reformat remaining paragraphs as well
-    new.extend(lines[i:])
-    return string.join(new, "\n")
-
-def is_all_white(line):
-    return re.match(r"^\s*$", line) is not None
-
-def get_indent(line):
-    return re.match(r"^(\s*)", line).group()
-
-def get_comment_header(line):
-    m = re.match(r"^(\s*#*)", line)
-    if m is None: return ""
-    return m.group(1)
diff --git a/Lib/idlelib/FrameViewer.py b/Lib/idlelib/FrameViewer.py
deleted file mode 100644 (file)
index 2ce0935..0000000
+++ /dev/null
@@ -1,38 +0,0 @@
-from repr import Repr
-from Tkinter import *
-
-class FrameViewer:
-
-    def __init__(self, root, frame):
-        self.root = root
-        self.frame = frame
-        self.top = Toplevel(self.root)
-        self.repr = Repr()
-        self.repr.maxstring = 60
-        self.load_variables()
-
-    def load_variables(self):
-        row = 0
-        if self.frame.f_locals is not self.frame.f_globals:
-            l = Label(self.top, text="Local Variables",
-                      borderwidth=2, relief="raised")
-            l.grid(row=row, column=0, columnspan=2, sticky="ew")
-            row = self.load_names(self.frame.f_locals, row+1)
-        l = Label(self.top, text="Global Variables",
-                  borderwidth=2, relief="raised")
-        l.grid(row=row, column=0, columnspan=2, sticky="ew")
-        row = self.load_names(self.frame.f_globals, row+1)
-
-    def load_names(self, dict, row):
-        names = dict.keys()
-        names.sort()
-        for name in names:
-            value = dict[name]
-            svalue = self.repr.repr(value)
-            l = Label(self.top, text=name)
-            l.grid(row=row, column=0, sticky="w")
-            l = Entry(self.top, width=60, borderwidth=0)
-            l.insert(0, svalue)
-            l.grid(row=row, column=1, sticky="w")
-            row = row+1
-        return row
diff --git a/Lib/idlelib/GrepDialog.py b/Lib/idlelib/GrepDialog.py
deleted file mode 100644 (file)
index 61c77c3..0000000
+++ /dev/null
@@ -1,135 +0,0 @@
-import string
-import os
-import re
-import fnmatch
-import sys
-from Tkinter import *
-import tkMessageBox
-import SearchEngine
-from SearchDialogBase import SearchDialogBase
-
-def grep(text, io=None, flist=None):
-    root = text._root()
-    engine = SearchEngine.get(root)
-    if not hasattr(engine, "_grepdialog"):
-        engine._grepdialog = GrepDialog(root, engine, flist)
-    dialog = engine._grepdialog
-    dialog.open(io)
-
-class GrepDialog(SearchDialogBase):
-
-    title = "Find in Files Dialog"
-    icon = "Grep"
-    needwrapbutton = 0
-
-    def __init__(self, root, engine, flist):
-        SearchDialogBase.__init__(self, root, engine)
-        self.flist = flist
-        self.globvar = StringVar(root)
-        self.recvar = BooleanVar(root)
-
-    def open(self, io=None):
-        SearchDialogBase.open(self, None)
-        if io:
-            path = io.filename or ""
-        else:
-            path = ""
-        dir, base = os.path.split(path)
-        head, tail = os.path.splitext(base)
-        if not tail:
-            tail = ".py"
-        self.globvar.set(os.path.join(dir, "*" + tail))
-
-    def create_entries(self):
-        SearchDialogBase.create_entries(self)
-        self.globent = self.make_entry("In files:", self.globvar)
-
-    def create_other_buttons(self):
-        f = self.make_frame()
-
-        btn = Checkbutton(f, anchor="w",
-                variable=self.recvar,
-                text="Recurse down subdirectories")
-        btn.pack(side="top", fill="both")
-        btn.select()
-
-    def create_command_buttons(self):
-        SearchDialogBase.create_command_buttons(self)
-        self.make_button("Search Files", self.default_command, 1)
-
-    def default_command(self, event=None):
-        prog = self.engine.getprog()
-        if not prog:
-            return
-        path = self.globvar.get()
-        if not path:
-            self.top.bell()
-            return
-        from OutputWindow import OutputWindow
-        save = sys.stdout
-        try:
-            sys.stdout = OutputWindow(self.flist)
-            self.grep_it(prog, path)
-        finally:
-            sys.stdout = save
-
-    def grep_it(self, prog, path):
-        dir, base = os.path.split(path)
-        list = self.findfiles(dir, base, self.recvar.get())
-        list.sort()
-        self.close()
-        pat = self.engine.getpat()
-        print "Searching %s in %s ..." % (`pat`, path)
-        hits = 0
-        for fn in list:
-            try:
-                f = open(fn)
-            except IOError, msg:
-                print msg
-                continue
-            lineno = 0
-            while 1:
-                block = f.readlines(100000)
-                if not block:
-                    break
-                for line in block:
-                    lineno = lineno + 1
-                    if line[-1:] == '\n':
-                        line = line[:-1]
-                    if prog.search(line):
-                        sys.stdout.write("%s: %s: %s\n" % (fn, lineno, line))
-                        hits = hits + 1
-        if hits:
-            if hits == 1:
-                s = ""
-            else:
-                s = "s"
-            print "Found", hits, "hit%s." % s
-            print "(Hint: right-click to open locations.)"
-        else:
-            print "No hits."
-
-    def findfiles(self, dir, base, rec):
-        try:
-            names = os.listdir(dir or os.curdir)
-        except os.error, msg:
-            print msg
-            return []
-        list = []
-        subdirs = []
-        for name in names:
-            fn = os.path.join(dir, name)
-            if os.path.isdir(fn):
-                subdirs.append(fn)
-            else:
-                if fnmatch.fnmatch(name, base):
-                    list.append(fn)
-        if rec:
-            for subdir in subdirs:
-                list.extend(self.findfiles(subdir, base, rec))
-        return list
-
-    def close(self, event=None):
-        if self.top:
-            self.top.grab_release()
-            self.top.withdraw()
diff --git a/Lib/idlelib/IOBinding.py b/Lib/idlelib/IOBinding.py
deleted file mode 100644 (file)
index 07b04f3..0000000
+++ /dev/null
@@ -1,254 +0,0 @@
-# changes by dscherer@cmu.edu
-#   - IOBinding.open() replaces the current window with the opened file,
-#     if the current window is both unmodified and unnamed
-#   - IOBinding.loadfile() interprets Windows, UNIX, and Macintosh
-#     end-of-line conventions, instead of relying on the standard library,
-#     which will only understand the local convention.
-
-import os
-import tkFileDialog
-import tkMessageBox
-import re
-
-#$ event <<open-window-from-file>>
-#$ win <Control-o>
-#$ unix <Control-x><Control-f>
-
-#$ event <<save-window>>
-#$ win <Control-s>
-#$ unix <Control-x><Control-s>
-
-#$ event <<save-window-as-file>>
-#$ win <Alt-s>
-#$ unix <Control-x><Control-w>
-
-#$ event <<save-copy-of-window-as-file>>
-#$ win <Alt-Shift-s>
-#$ unix <Control-x><w>
-
-
-class IOBinding:
-
-    def __init__(self, editwin):
-        self.editwin = editwin
-        self.text = editwin.text
-        self.__id_open = self.text.bind("<<open-window-from-file>>", self.open)
-        self.__id_save = self.text.bind("<<save-window>>", self.save)
-        self.__id_saveas = self.text.bind("<<save-window-as-file>>",
-                                          self.save_as)
-        self.__id_savecopy = self.text.bind("<<save-copy-of-window-as-file>>",
-                                            self.save_a_copy)
-
-    def close(self):
-        # Undo command bindings
-        self.text.unbind("<<open-window-from-file>>", self.__id_open)
-        self.text.unbind("<<save-window>>", self.__id_save)
-        self.text.unbind("<<save-window-as-file>>",self.__id_saveas)
-        self.text.unbind("<<save-copy-of-window-as-file>>", self.__id_savecopy)
-        # Break cycles
-        self.editwin = None
-        self.text = None
-        self.filename_change_hook = None
-
-    def get_saved(self):
-        return self.editwin.get_saved()
-
-    def set_saved(self, flag):
-        self.editwin.set_saved(flag)
-
-    def reset_undo(self):
-        self.editwin.reset_undo()
-
-    filename_change_hook = None
-
-    def set_filename_change_hook(self, hook):
-        self.filename_change_hook = hook
-
-    filename = None
-
-    def set_filename(self, filename):
-        self.filename = filename
-        self.set_saved(1)
-        if self.filename_change_hook:
-            self.filename_change_hook()
-
-    def open(self, event):
-        if self.editwin.flist:
-            filename = self.askopenfile()
-            if filename:
-                # if the current window has no filename and hasn't been
-                #   modified, we replace it's contents (no loss).  Otherwise
-                #   we open a new window.
-                if not self.filename and self.get_saved():
-                    self.editwin.flist.open(filename, self.loadfile)
-                else:
-                    self.editwin.flist.open(filename)
-            else:
-                self.text.focus_set()
-
-            return "break"
-        # Code for use outside IDLE:
-        if self.get_saved():
-            reply = self.maybesave()
-            if reply == "cancel":
-                self.text.focus_set()
-                return "break"
-        filename = self.askopenfile()
-        if filename:
-            self.loadfile(filename)
-        else:
-            self.text.focus_set()
-        return "break"
-
-    def loadfile(self, filename):
-        try:
-            # open the file in binary mode so that we can handle
-            #   end-of-line convention ourselves.
-            f = open(filename,'rb')
-            chars = f.read()
-            f.close()
-        except IOError, msg:
-            tkMessageBox.showerror("I/O Error", str(msg), master=self.text)
-            return 0
-
-        # We now convert all end-of-lines to '\n's
-        eol = r"(\r\n)|\n|\r"  # \r\n (Windows), \n (UNIX), or \r (Mac)
-        chars = re.compile( eol ).sub( r"\n", chars )
-
-        self.text.delete("1.0", "end")
-        self.set_filename(None)
-        self.text.insert("1.0", chars)
-        self.reset_undo()
-        self.set_filename(filename)
-        self.text.mark_set("insert", "1.0")
-        self.text.see("insert")
-        return 1
-
-    def maybesave(self):
-        if self.get_saved():
-            return "yes"
-        message = "Do you want to save %s before closing?" % (
-            self.filename or "this untitled document")
-        m = tkMessageBox.Message(
-            title="Save On Close",
-            message=message,
-            icon=tkMessageBox.QUESTION,
-            type=tkMessageBox.YESNOCANCEL,
-            master=self.text)
-        reply = m.show()
-        if reply == "yes":
-            self.save(None)
-            if not self.get_saved():
-                reply = "cancel"
-        self.text.focus_set()
-        return reply
-
-    def save(self, event):
-        if not self.filename:
-            self.save_as(event)
-        else:
-            if self.writefile(self.filename):
-                self.set_saved(1)
-        self.text.focus_set()
-        return "break"
-
-    def save_as(self, event):
-        filename = self.asksavefile()
-        if filename:
-            if self.writefile(filename):
-                self.set_filename(filename)
-                self.set_saved(1)
-        self.text.focus_set()
-        return "break"
-
-    def save_a_copy(self, event):
-        filename = self.asksavefile()
-        if filename:
-            self.writefile(filename)
-        self.text.focus_set()
-        return "break"
-
-    def writefile(self, filename):
-        self.fixlastline()
-        try:
-            f = open(filename, "w")
-            chars = self.text.get("1.0", "end-1c")
-            f.write(chars)
-            f.close()
-            ## print "saved to", `filename`
-            return 1
-        except IOError, msg:
-            tkMessageBox.showerror("I/O Error", str(msg),
-                                   master=self.text)
-            return 0
-
-    def fixlastline(self):
-        c = self.text.get("end-2c")
-        if c != '\n':
-            self.text.insert("end-1c", "\n")
-
-    opendialog = None
-    savedialog = None
-
-    filetypes = [
-        ("Python and text files", "*.py *.pyw *.txt", "TEXT"),
-        ("All text files", "*", "TEXT"),
-        ("All files", "*"),
-        ]
-
-    def askopenfile(self):
-        dir, base = self.defaultfilename("open")
-        if not self.opendialog:
-            self.opendialog = tkFileDialog.Open(master=self.text,
-                                                filetypes=self.filetypes)
-        return self.opendialog.show(initialdir=dir, initialfile=base)
-
-    def defaultfilename(self, mode="open"):
-        if self.filename:
-            return os.path.split(self.filename)
-        else:
-            try:
-                pwd = os.getcwd()
-            except os.error:
-                pwd = ""
-            return pwd, ""
-
-    def asksavefile(self):
-        dir, base = self.defaultfilename("save")
-        if not self.savedialog:
-            self.savedialog = tkFileDialog.SaveAs(master=self.text,
-                                                  filetypes=self.filetypes)
-        return self.savedialog.show(initialdir=dir, initialfile=base)
-
-
-def test():
-    from Tkinter import *
-    root = Tk()
-    class MyEditWin:
-        def __init__(self, text):
-            self.text = text
-            self.flist = None
-            self.text.bind("<Control-o>", self.open)
-            self.text.bind("<Control-s>", self.save)
-            self.text.bind("<Alt-s>", self.save_as)
-            self.text.bind("<Alt-z>", self.save_a_copy)
-        def get_saved(self): return 0
-        def set_saved(self, flag): pass
-        def reset_undo(self): pass
-        def open(self, event):
-            self.text.event_generate("<<open-window-from-file>>")
-        def save(self, event):
-            self.text.event_generate("<<save-window>>")
-        def save_as(self, event):
-            self.text.event_generate("<<save-window-as-file>>")
-        def save_a_copy(self, event):
-            self.text.event_generate("<<save-copy-of-window-as-file>>")
-    text = Text(root)
-    text.pack()
-    text.focus_set()
-    editwin = MyEditWin(text)
-    io = IOBinding(editwin)
-    root.mainloop()
-
-if __name__ == "__main__":
-    test()
diff --git a/Lib/idlelib/Icons/folder.gif b/Lib/idlelib/Icons/folder.gif
deleted file mode 100644 (file)
index effe8dc..0000000
Binary files a/Lib/idlelib/Icons/folder.gif and /dev/null differ
diff --git a/Lib/idlelib/Icons/minusnode.gif b/Lib/idlelib/Icons/minusnode.gif
deleted file mode 100644 (file)
index 6cca2bf..0000000
Binary files a/Lib/idlelib/Icons/minusnode.gif and /dev/null differ
diff --git a/Lib/idlelib/Icons/openfolder.gif b/Lib/idlelib/Icons/openfolder.gif
deleted file mode 100644 (file)
index 24aea1b..0000000
Binary files a/Lib/idlelib/Icons/openfolder.gif and /dev/null differ
diff --git a/Lib/idlelib/Icons/plusnode.gif b/Lib/idlelib/Icons/plusnode.gif
deleted file mode 100644 (file)
index 13ace90..0000000
Binary files a/Lib/idlelib/Icons/plusnode.gif and /dev/null differ
diff --git a/Lib/idlelib/Icons/python.gif b/Lib/idlelib/Icons/python.gif
deleted file mode 100644 (file)
index a7df778..0000000
Binary files a/Lib/idlelib/Icons/python.gif and /dev/null differ
diff --git a/Lib/idlelib/Icons/tk.gif b/Lib/idlelib/Icons/tk.gif
deleted file mode 100644 (file)
index a603f5e..0000000
Binary files a/Lib/idlelib/Icons/tk.gif and /dev/null differ
diff --git a/Lib/idlelib/IdleConf.py b/Lib/idlelib/IdleConf.py
deleted file mode 100644 (file)
index 36cad51..0000000
+++ /dev/null
@@ -1,113 +0,0 @@
-"""Provides access to configuration information"""
-
-import os
-import sys
-from ConfigParser import ConfigParser, NoOptionError, NoSectionError
-
-class IdleConfParser(ConfigParser):
-
-    # these conf sections do not define extensions!
-    builtin_sections = {}
-    for section in ('EditorWindow', 'Colors'):
-        builtin_sections[section] = section
-    
-    def getcolor(self, sec, name):
-        """Return a dictionary with foreground and background colors
-
-        The return value is appropriate for passing to Tkinter in, e.g.,
-        a tag_config call.
-        """
-       fore = self.getdef(sec, name + "-foreground")
-       back = self.getdef(sec, name + "-background")
-        return {"foreground": fore,
-                "background": back}
-
-    def getdef(self, sec, options, raw=0, vars=None, default=None):
-        """Get an option value for given section or return default"""
-       try:
-            return self.get(sec, options, raw, vars)
-       except (NoSectionError, NoOptionError):
-           return default
-
-    def getsection(self, section):
-        """Return a SectionConfigParser object"""
-        return SectionConfigParser(section, self)
-
-    def getextensions(self):
-        exts = []
-        for sec in self.sections():
-            if self.builtin_sections.has_key(sec):
-               continue
-           # enable is a bool, but it may not be defined
-           if self.getdef(sec, 'enable') != '0':
-               exts.append(sec)
-        return exts
-
-    def reload(self):
-        global idleconf
-        idleconf = IdleConfParser()
-        load(_dir) # _dir is a global holding the last directory loaded
-
-class SectionConfigParser:
-    """A ConfigParser object specialized for one section
-
-    This class has all the get methods that a regular ConfigParser does,
-    but without requiring a section argument.
-    """
-    def __init__(self, section, config):
-        self.section = section
-        self.config = config
-
-    def options(self):
-        return self.config.options(self.section)
-
-    def get(self, options, raw=0, vars=None):
-        return self.config.get(self.section, options, raw, vars)
-
-    def getdef(self, options, raw=0, vars=None, default=None):
-        return self.config.getdef(self.section, options, raw, vars, default)
-
-    def getint(self, option):
-        return self.config.getint(self.section, option)
-    
-    def getfloat(self, option):
-        return self.config.getint(self.section, option)
-    
-    def getboolean(self, option):
-        return self.config.getint(self.section, option)
-
-    def getcolor(self, option):
-        return self.config.getcolor(self.section, option)
-
-def load(dir):
-    """Load IDLE configuration files based on IDLE install in dir
-
-    Attempts to load two config files:
-    dir/config.txt
-    dir/config-[win/mac/unix].txt
-    dir/config-%(sys.platform)s.txt
-    ~/.idle
-    """
-    global _dir
-    _dir = dir
-
-    if sys.platform[:3] == 'win':
-        genplatfile = os.path.join(dir, "config-win.txt")
-    # XXX don't know what the platform string is on a Mac
-    elif sys.platform[:3] == 'mac':
-        genplatfile = os.path.join(dir, "config-mac.txt")
-    else:
-        genplatfile = os.path.join(dir, "config-unix.txt")
-        
-    platfile = os.path.join(dir, "config-%s.txt" % sys.platform)
-
-    try:
-        homedir = os.environ['HOME']
-    except KeyError:
-        homedir = os.getcwd()
-
-    idleconf.read((os.path.join(dir, "config.txt"), genplatfile, platfile,
-                   os.path.join(homedir, ".idle")))
-
-idleconf = IdleConfParser()
-
diff --git a/Lib/idlelib/IdleHistory.py b/Lib/idlelib/IdleHistory.py
deleted file mode 100644 (file)
index aa41b73..0000000
+++ /dev/null
@@ -1,89 +0,0 @@
-import string
-
-class History:
-
-    def __init__(self, text, output_sep = "\n"):
-        self.text = text
-        self.history = []
-        self.history_prefix = None
-        self.history_pointer = None
-        self.output_sep = output_sep
-        text.bind("<<history-previous>>", self.history_prev)
-        text.bind("<<history-next>>", self.history_next)
-
-    def history_next(self, event):
-        self.history_do(0)
-        return "break"
-
-    def history_prev(self, event):
-        self.history_do(1)
-        return "break"
-
-    def _get_source(self, start, end):
-        # Get source code from start index to end index.  Lines in the
-        # text control may be separated by sys.ps2 .
-        lines = string.split(self.text.get(start, end), self.output_sep)
-        return string.join(lines, "\n")
-
-    def _put_source(self, where, source):
-        output = string.join(string.split(source, "\n"), self.output_sep)
-        self.text.insert(where, output)
-
-    def history_do(self, reverse):
-        nhist = len(self.history)
-        pointer = self.history_pointer
-        prefix = self.history_prefix
-        if pointer is not None and prefix is not None:
-            if self.text.compare("insert", "!=", "end-1c") or \
-               self._get_source("iomark", "end-1c") != self.history[pointer]:
-                pointer = prefix = None
-        if pointer is None or prefix is None:
-            prefix = self._get_source("iomark", "end-1c")
-            if reverse:
-                pointer = nhist
-            else:
-                pointer = -1
-        nprefix = len(prefix)
-        while 1:
-            if reverse:
-                pointer = pointer - 1
-            else:
-                pointer = pointer + 1
-            if pointer < 0 or pointer >= nhist:
-                self.text.bell()
-                if self._get_source("iomark", "end-1c") != prefix:
-                    self.text.delete("iomark", "end-1c")
-                    self._put_source("iomark", prefix)
-                pointer = prefix = None
-                break
-            item = self.history[pointer]
-            if item[:nprefix] == prefix and len(item) > nprefix:
-                self.text.delete("iomark", "end-1c")
-                self._put_source("iomark", item)
-                break
-        self.text.mark_set("insert", "end-1c")
-        self.text.see("insert")
-        self.text.tag_remove("sel", "1.0", "end")
-        self.history_pointer = pointer
-        self.history_prefix = prefix
-
-    def history_store(self, source):
-        source = string.strip(source)
-        if len(source) > 2:
-            # avoid duplicates
-            try:
-                self.history.remove(source)
-            except ValueError:
-                pass
-            self.history.append(source)
-        self.history_pointer = None
-        self.history_prefix = None
-
-    def recall(self, s):
-        s = string.strip(s)
-        self.text.tag_remove("sel", "1.0", "end")
-        self.text.delete("iomark", "end-1c")
-        self.text.mark_set("insert", "end-1c")
-        self.text.insert("insert", s)
-        self.text.see("insert")
-
diff --git a/Lib/idlelib/MultiScrolledLists.py b/Lib/idlelib/MultiScrolledLists.py
deleted file mode 100644 (file)
index 32f6246..0000000
+++ /dev/null
@@ -1,138 +0,0 @@
-# One or more ScrolledLists with HSeparators between them.
-# There is a hierarchical relationship between them:
-# the right list displays the substructure of the selected item
-# in the left list.
-
-import string
-from Tkinter import *
-from WindowList import ListedToplevel
-from Separator import HSeparator
-from ScrolledList import ScrolledList
-
-class MultiScrolledLists:
-    
-    def __init__(self, root, nlists=2):
-        assert nlists >= 1
-        self.root = root
-        self.nlists = nlists
-        self.path = []
-        # create top
-        self.top = top = ListedToplevel(root)
-        top.protocol("WM_DELETE_WINDOW", self.close)
-        top.bind("<Escape>", self.close)
-        self.settitle()
-        # create frames and separators in between
-        self.frames = []
-        self.separators = []
-        last = top
-        for i in range(nlists-1):
-            sepa = HSeparator(last)
-            self.separators.append(sepa)
-            frame, last = sepa.parts()
-            self.frames.append(frame)
-        self.frames.append(last)
-        # create labels and lists
-        self.labels = []
-        self.lists = []
-        for i in range(nlists):
-            frame = self.frames[i]
-            label = Label(frame, text=self.subtitle(i),
-                relief="groove", borderwidth=2)
-            label.pack(fill="x")
-            self.labels.append(label)
-            list = ScrolledList(frame, width=self.width(i),
-                height=self.height(i))
-            self.lists.append(list)
-            list.on_select = \
-                lambda index, i=i, self=self: self.on_select(index, i)
-            list.on_double = \
-                lambda index, i=i, self=self: self.on_double(index, i)
-        # fill leftmost list (rest get filled on demand)
-        self.fill(0)
-        # XXX one after_idle isn't enough; two are...
-        top.after_idle(self.call_pack_propagate_1)
-    
-    def call_pack_propagate_1(self):
-        self.top.after_idle(self.call_pack_propagate)
-    
-    def call_pack_propagate(self):
-        for frame in self.frames:
-            frame.pack_propagate(0)
-    
-    def close(self, event=None):
-        self.top.destroy()
-    
-    def settitle(self):
-        short = self.shorttitle()
-        long = self.longtitle()
-        if short and long:
-            title = short + " - " + long
-        elif short:
-            title = short
-        elif long:
-            title = long
-        else:
-            title = "Untitled"
-        icon = short or long or title
-        self.top.wm_title(title)
-        self.top.wm_iconname(icon)
-
-    def longtitle(self):
-        # override this
-        return "Multi Scrolled Lists"
-    
-    def shorttitle(self):
-        # override this
-        return None
-    
-    def width(self, i):
-        # override this
-        return 20
-    
-    def height(self, i):
-        # override this
-        return 10
-    
-    def subtitle(self, i):
-        # override this
-        return "Column %d" % i
-     
-    def fill(self, i):
-        for k in range(i, self.nlists):
-            self.lists[k].clear()
-            self.labels[k].configure(text=self.subtitle(k))
-        list = self.lists[i]
-        l = self.items(i)
-        for s in l:
-            list.append(s)
-        
-    def on_select(self, index, i):
-        item = self.lists[i].get(index)
-        del self.path[i:]
-        self.path.append(item)
-        if i+1 < self.nlists:
-            self.fill(i+1)
-   
-    def items(self, i):
-        # override this
-        l = []
-        for k in range(10):
-            s = str(k)
-            if i > 0:
-                s = self.path[i-1] + "." + s
-            l.append(s)
-        return l
-    
-    def on_double(self, index, i):
-        pass
-
-
-def main():
-    root = Tk()
-    quit = Button(root, text="Exit", command=root.destroy)
-    quit.pack()
-    MultiScrolledLists(root, 4)
-    root.mainloop()
-
-if __name__ == "__main__":
-    main()
diff --git a/Lib/idlelib/MultiStatusBar.py b/Lib/idlelib/MultiStatusBar.py
deleted file mode 100644 (file)
index c11db3e..0000000
+++ /dev/null
@@ -1,32 +0,0 @@
-from Tkinter import *
-
-class MultiStatusBar(Frame):
-       
-       def __init__(self, master=None, **kw):
-               if master is None:
-                       master = Tk()
-               apply(Frame.__init__, (self, master), kw)
-               self.labels = {}
-
-       def set_label(self, name, text='', side=LEFT):
-               if not self.labels.has_key(name):
-                       label = Label(self, bd=1, relief=SUNKEN, anchor=W)
-                       label.pack(side=side)
-                       self.labels[name] = label
-               else:
-                       label = self.labels[name]
-               label.config(text=text)
-
-def _test():
-       b = Frame()
-       c = Text(b)
-       c.pack(side=TOP)
-       a = MultiStatusBar(b)
-       a.set_label("one", "hello")
-       a.set_label("two", "world")
-       a.pack(side=BOTTOM, fill=X)
-       b.pack()
-       b.mainloop()
-
-if __name__ == '__main__':
-       _test()
diff --git a/Lib/idlelib/NEWS.txt b/Lib/idlelib/NEWS.txt
deleted file mode 100644 (file)
index 86cbc76..0000000
+++ /dev/null
@@ -1,130 +0,0 @@
-(For a more detailed change log, see the file ChangeLog.)
-
-----------------------------------------------------------------------
-
-New in IDLE 0.5 (2/15/2000)
--------------------------
-
-Tons of stuff, much of it contributed by Tim Peters and Mark Hammond:
-
-- Status bar, displaying current line/column (Moshe Zadka).
-
-- Better stack viewer, using tree widget.  (XXX Only used by Stack
-Viewer menu, not by the debugger.)
-
-- Format paragraph now recognizes Python block comments and reformats
-them correctly (MH)
-
-- New version of pyclbr.py parses top-level functions and understands
-much more of Python's syntax; this is reflected in the class and path
-browsers (TP)
-
-- Much better auto-indent; knows how to indent the insides of
-multi-line statements (TP)
-
-- Call tip window pops up when you type the name of a known function
-followed by an open parenthesis.  Hit ESC or click elsewhere in the
-window to close the tip window (MH)
-
-- Comment out region now inserts ## to make it stand out more (TP)
-
-- New path and class browsers based on a tree widget that looks
-familiar to Windows users
-
-- Reworked script running commands to be more intuitive: I/O now
-always goes to the *Python Shell* window, and raw_input() works
-correctly.  You use F5 to import/reload a module: this adds the module
-name to the __main__ namespace.  You use Control-F5 to run a script:
-this runs the script *in* the __main__ namespace.  The latter also
-sets sys.argv[] to the script name
-
-New in IDLE 0.4 (4/7/99)
-------------------------
-
-Most important change: a new menu entry "File -> Path browser", shows
-a 4-column hierarchical browser which lets you browse sys.path,
-directories, modules, and classes.  Yes, it's a superset of the Class
-browser menu entry.  There's also a new internal module,
-MultiScrolledLists.py, which provides the framework for this dialog.
-
-New in IDLE 0.3 (2/17/99)
--------------------------
-
-Most important changes:
-
-- Enabled support for running a module, with or without the debugger.
-Output goes to a new window.  Pressing F5 in a module is effectively a
-reload of that module; Control-F5 loads it under the debugger.
-
-- Re-enable tearing off the Windows menu, and make a torn-off Windows
-menu update itself whenever a window is opened or closed.
-
-- Menu items can now be have a checkbox (when the menu label starts
-with "!"); use this for the Debugger and "Auto-open stack viewer"
-(was: JIT stack viewer) menu items.
-
-- Added a Quit button to the Debugger API.
-
-- The current directory is explicitly inserted into sys.path.
-
-- Fix the debugger (when using Python 1.5.2b2) to use canonical
-filenames for breakpoints, so these actually work.  (There's still a
-lot of work to be done to the management of breakpoints in the
-debugger though.)
-
-- Closing a window that is still colorizing now actually works.
-
-- Allow dragging of the separator between the two list boxes in the
-class browser.
-
-- Bind ESC to "close window" of the debugger, stack viewer and class
-browser.  It removes the selection highlighting in regular text
-windows.  (These are standard Windows conventions.)
-
-----------------------------------------------------------------------
-
-New in IDLE 0.2 (1/8/99)
-------------------------
-
-Lots of changes; here are the highlights:
-
-General:
-
-- You can now write and configure your own IDLE extension modules; see
-extend.txt.
-
-
-File menu:
-
-The command to open the Python shell window is now in the File menu.
-
-
-Edit menu:
-
-New Find dialog with more options; replace dialog; find in files dialog.
-
-Commands to tabify or untabify a region.
-
-Command to format a paragraph.
-
-
-Debug menu:
-
-JIT (Just-In-Time) stack viewer toggle -- if set, the stack viewer
-automaticall pops up when you get a traceback.
-
-Windows menu:
-
-Zoom height -- make the window full height.
-
-
-Help menu:
-
-The help text now show up in a regular window so you can search and
-even edit it if you like.
-
-----------------------------------------------------------------------
-
-IDLE 0.1 was distributed with the Python 1.5.2b1 release on 12/22/98.
-
-======================================================================
diff --git a/Lib/idlelib/ObjectBrowser.py b/Lib/idlelib/ObjectBrowser.py
deleted file mode 100644 (file)
index 94b59d6..0000000
+++ /dev/null
@@ -1,151 +0,0 @@
-# XXX TO DO:
-# - popup menu
-# - support partial or total redisplay
-# - more doc strings
-# - tooltips
-
-# object browser
-
-# XXX TO DO:
-# - for classes/modules, add "open source" to object browser
-
-from TreeWidget import TreeItem, TreeNode, ScrolledCanvas
-
-from repr import Repr
-
-myrepr = Repr()
-myrepr.maxstring = 100
-myrepr.maxother = 100
-
-class ObjectTreeItem(TreeItem):
-    def __init__(self, labeltext, object, setfunction=None):
-        self.labeltext = labeltext
-        self.object = object
-        self.setfunction = setfunction
-    def GetLabelText(self):
-        return self.labeltext
-    def GetText(self):
-        return myrepr.repr(self.object)
-    def GetIconName(self):
-        if not self.IsExpandable():
-            return "python"
-    def IsEditable(self):
-        return self.setfunction is not None
-    def SetText(self, text):
-        try:
-            value = eval(text)
-            self.setfunction(value)
-        except:
-            pass
-        else:
-            self.object = value
-    def IsExpandable(self):
-        return not not dir(self.object)
-    def GetSubList(self):
-        keys = dir(self.object)
-        sublist = []
-        for key in keys:
-            try:
-                value = getattr(self.object, key)
-            except AttributeError:
-                continue
-            item = make_objecttreeitem(
-                str(key) + " =",
-                value,
-                lambda value, key=key, object=self.object:
-                    setattr(object, key, value))
-            sublist.append(item)
-        return sublist
-
-class InstanceTreeItem(ObjectTreeItem):
-    def IsExpandable(self):
-        return 1
-    def GetSubList(self):
-        sublist = ObjectTreeItem.GetSubList(self)
-        sublist.insert(0,
-            make_objecttreeitem("__class__ =", self.object.__class__))
-        return sublist
-
-class ClassTreeItem(ObjectTreeItem):
-    def IsExpandable(self):
-        return 1
-    def GetSubList(self):
-        sublist = ObjectTreeItem.GetSubList(self)
-        if len(self.object.__bases__) == 1:
-            item = make_objecttreeitem("__bases__[0] =",
-                self.object.__bases__[0])
-        else:
-            item = make_objecttreeitem("__bases__ =", self.object.__bases__)
-        sublist.insert(0, item)
-        return sublist
-
-class AtomicObjectTreeItem(ObjectTreeItem):
-    def IsExpandable(self):
-        return 0
-
-class SequenceTreeItem(ObjectTreeItem):
-    def IsExpandable(self):
-        return len(self.object) > 0
-    def keys(self):
-        return range(len(self.object))
-    def GetSubList(self):
-        sublist = []
-        for key in self.keys():
-            try:
-                value = self.object[key]
-            except KeyError:
-                continue
-            def setfunction(value, key=key, object=self.object):
-                object[key] = value
-            item = make_objecttreeitem(`key` + ":", value, setfunction)
-            sublist.append(item)
-        return sublist
-
-class DictTreeItem(SequenceTreeItem):
-    def keys(self):
-        keys = self.object.keys()
-        try:
-            keys.sort()
-        except:
-            pass
-        return keys
-
-from types import *
-
-dispatch = {
-    IntType: AtomicObjectTreeItem,
-    LongType: AtomicObjectTreeItem,
-    FloatType: AtomicObjectTreeItem,
-    StringType: AtomicObjectTreeItem,
-    TupleType: SequenceTreeItem,
-    ListType: SequenceTreeItem,
-    DictType: DictTreeItem,
-    InstanceType: InstanceTreeItem,
-    ClassType: ClassTreeItem,
-}
-
-def make_objecttreeitem(labeltext, object, setfunction=None):
-    t = type(object)
-    if dispatch.has_key(t):
-        c = dispatch[t]
-    else:
-        c = ObjectTreeItem
-    return c(labeltext, object, setfunction)
-
-# Test script
-
-def test():
-    import sys
-    from Tkinter import Toplevel
-    import PyShell
-    root = Toplevel(PyShell.root)
-    root.configure(bd=0, bg="yellow")
-    root.focus_set()
-    sc = ScrolledCanvas(root, bg="white", highlightthickness=0, takefocus=1)
-    sc.frame.pack(expand=1, fill="both")
-    item = make_objecttreeitem("sys", sys)
-    node = TreeNode(sc.canvas, None, item)
-    node.expand()
-
-if __name__ == '__main__':
-    test()
diff --git a/Lib/idlelib/OldStackViewer.py b/Lib/idlelib/OldStackViewer.py
deleted file mode 100644 (file)
index 2fa4127..0000000
+++ /dev/null
@@ -1,276 +0,0 @@
-import string
-import sys
-import os
-from Tkinter import *
-import linecache
-from repr import Repr
-from WindowList import ListedToplevel
-
-from ScrolledList import ScrolledList
-
-
-class StackBrowser:
-
-    def __init__(self, root, flist, stack=None):
-        self.top = top = ListedToplevel(root)
-        top.protocol("WM_DELETE_WINDOW", self.close)
-        top.bind("<Key-Escape>", self.close)
-        top.wm_title("Stack viewer")
-        top.wm_iconname("Stack")
-        # Create help label
-        self.helplabel = Label(top,
-            text="Click once to view variables; twice for source",
-            borderwidth=2, relief="groove")
-        self.helplabel.pack(fill="x")
-        #
-        self.sv = StackViewer(top, flist, self)
-        if stack is None:
-            stack = get_stack()
-        self.sv.load_stack(stack)
-
-    def close(self, event=None):
-        self.top.destroy()
-
-    localsframe = None
-    localsviewer = None
-    localsdict = None
-    globalsframe = None
-    globalsviewer = None
-    globalsdict = None
-    curframe = None
-
-    def show_frame(self, (frame, lineno)):
-        if frame is self.curframe:
-            return
-        self.curframe = None
-        if frame.f_globals is not self.globalsdict:
-            self.show_globals(frame)
-        self.show_locals(frame)
-        self.curframe = frame
-
-    def show_globals(self, frame):
-        title = "Global Variables"
-        if frame.f_globals.has_key("__name__"):
-            try:
-                name = str(frame.f_globals["__name__"]) + ""
-            except:
-                name = ""
-            if name:
-                title = title + " in module " + name
-        self.globalsdict = None
-        if self.globalsviewer:
-            self.globalsviewer.close()
-        self.globalsviewer = None
-        if not self.globalsframe:
-            self.globalsframe = Frame(self.top)
-        self.globalsdict = frame.f_globals
-        self.globalsviewer = NamespaceViewer(
-            self.globalsframe,
-            title,
-            self.globalsdict)
-        self.globalsframe.pack(fill="both", side="bottom")
-
-    def show_locals(self, frame):
-        self.localsdict = None
-        if self.localsviewer:
-            self.localsviewer.close()
-        self.localsviewer = None
-        if frame.f_locals is not frame.f_globals:
-            title = "Local Variables"
-            code = frame.f_code
-            funcname = code.co_name
-            if funcname not in ("?", "", None):
-                title = title + " in " + funcname
-            if not self.localsframe:
-                self.localsframe = Frame(self.top)
-            self.localsdict = frame.f_locals
-            self.localsviewer = NamespaceViewer(
-                self.localsframe,
-                title,
-                self.localsdict)
-            self.localsframe.pack(fill="both", side="top")
-        else:
-            if self.localsframe:
-                self.localsframe.forget()
-
-
-class StackViewer(ScrolledList):
-
-    def __init__(self, master, flist, browser):
-        ScrolledList.__init__(self, master, width=80)
-        self.flist = flist
-        self.browser = browser
-        self.stack = []
-
-    def load_stack(self, stack, index=None):
-        self.stack = stack
-        self.clear()
-##        if len(stack) > 10:
-##            l["height"] = 10
-##            self.topframe.pack(expand=1)
-##        else:
-##            l["height"] = len(stack)
-##            self.topframe.pack(expand=0)
-        for i in range(len(stack)):
-            frame, lineno = stack[i]
-            try:
-                modname = frame.f_globals["__name__"]
-            except:
-                modname = "?"
-            code = frame.f_code
-            filename = code.co_filename
-            funcname = code.co_name
-            sourceline = linecache.getline(filename, lineno)
-            sourceline = string.strip(sourceline)
-            if funcname in ("?", "", None):
-                item = "%s, line %d: %s" % (modname, lineno, sourceline)
-            else:
-                item = "%s.%s(), line %d: %s" % (modname, funcname,
-                                                 lineno, sourceline)
-            if i == index:
-                item = "> " + item
-            self.append(item)
-        if index is not None:
-            self.select(index)
-
-    def popup_event(self, event):
-        if self.stack:
-            return ScrolledList.popup_event(self, event)
-
-    def fill_menu(self):
-        menu = self.menu
-        menu.add_command(label="Go to source line",
-                         command=self.goto_source_line)
-        menu.add_command(label="Show stack frame",
-                         command=self.show_stack_frame)
-
-    def on_select(self, index):
-        if 0 <= index < len(self.stack):
-            self.browser.show_frame(self.stack[index])
-
-    def on_double(self, index):
-        self.show_source(index)
-
-    def goto_source_line(self):
-        index = self.listbox.index("active")
-        self.show_source(index)
-
-    def show_stack_frame(self):
-        index = self.listbox.index("active")
-        if 0 <= index < len(self.stack):
-            self.browser.show_frame(self.stack[index])
-
-    def show_source(self, index):
-        if not (0 <= index < len(self.stack)):
-            return
-        frame, lineno = self.stack[index]
-        code = frame.f_code
-        filename = code.co_filename
-        if os.path.isfile(filename):
-            edit = self.flist.open(filename)
-            if edit:
-                edit.gotoline(lineno)
-
-
-def get_stack(t=None, f=None):
-    if t is None:
-        t = sys.last_traceback
-    stack = []
-    if t and t.tb_frame is f:
-        t = t.tb_next
-    while f is not None:
-        stack.append((f, f.f_lineno))
-        if f is self.botframe:
-            break
-        f = f.f_back
-    stack.reverse()
-    while t is not None:
-        stack.append((t.tb_frame, t.tb_lineno))
-        t = t.tb_next
-    return stack
-
-
-def getexception(type=None, value=None):
-    if type is None:
-        type = sys.last_type
-        value = sys.last_value
-    if hasattr(type, "__name__"):
-        type = type.__name__
-    s = str(type)
-    if value is not None:
-        s = s + ": " + str(value)
-    return s
-
-
-class NamespaceViewer:
-
-    def __init__(self, master, title, dict=None):
-        width = 0
-        height = 40
-        if dict:
-            height = 20*len(dict) # XXX 20 == observed height of Entry widget
-        self.master = master
-        self.title = title
-        self.repr = Repr()
-        self.repr.maxstring = 60
-        self.repr.maxother = 60
-        self.frame = frame = Frame(master)
-        self.frame.pack(expand=1, fill="both")
-        self.label = Label(frame, text=title, borderwidth=2, relief="groove")
-        self.label.pack(fill="x")
-        self.vbar = vbar = Scrollbar(frame, name="vbar")
-        vbar.pack(side="right", fill="y")
-        self.canvas = canvas = Canvas(frame,
-                                      height=min(300, max(40, height)),
-                                      scrollregion=(0, 0, width, height))
-        canvas.pack(side="left", fill="both", expand=1)
-        vbar["command"] = canvas.yview
-        canvas["yscrollcommand"] = vbar.set
-        self.subframe = subframe = Frame(canvas)
-        self.sfid = canvas.create_window(0, 0, window=subframe, anchor="nw")
-        self.load_dict(dict)
-
-    dict = -1
-
-    def load_dict(self, dict, force=0):
-        if dict is self.dict and not force:
-            return
-        subframe = self.subframe
-        frame = self.frame
-        for c in subframe.children.values():
-            c.destroy()
-        self.dict = None
-        if not dict:
-            l = Label(subframe, text="None")
-            l.grid(row=0, column=0)
-        else:
-            names = dict.keys()
-            names.sort()
-            row = 0
-            for name in names:
-                value = dict[name]
-                svalue = self.repr.repr(value) # repr(value)
-                l = Label(subframe, text=name)
-                l.grid(row=row, column=0, sticky="nw")
-    ##            l = Label(subframe, text=svalue, justify="l", wraplength=300)
-                l = Entry(subframe, width=0, borderwidth=0)
-                l.insert(0, svalue)
-    ##            l["state"] = "disabled"
-                l.grid(row=row, column=1, sticky="nw")
-                row = row+1
-        self.dict = dict
-        # XXX Could we use a <Configure> callback for the following?
-        subframe.update_idletasks() # Alas!
-        width = subframe.winfo_reqwidth()
-        height = subframe.winfo_reqheight()
-        canvas = self.canvas
-        self.canvas["scrollregion"] = (0, 0, width, height)
-        if height > 300:
-            canvas["height"] = 300
-            frame.pack(expand=1)
-        else:
-            canvas["height"] = height
-            frame.pack(expand=0)
-
-    def close(self):
-        self.frame.destroy()
diff --git a/Lib/idlelib/OutputWindow.py b/Lib/idlelib/OutputWindow.py
deleted file mode 100644 (file)
index 12280ad..0000000
+++ /dev/null
@@ -1,279 +0,0 @@
-# changes by dscherer@cmu.edu
-#   - OutputWindow and OnDemandOutputWindow have been hastily
-#     extended to provide readline() support, an "iomark" separate
-#     from the "insert" cursor, and scrolling to clear the window.
-#     These changes are used by the ExecBinding module to provide
-#     standard input and output for user programs.  Many of the new
-#     features are very similar to features of PyShell, which is a
-#     subclass of OutputWindow.  Someone should make some sense of
-#     this.
-
-from Tkinter import *
-from EditorWindow import EditorWindow
-import re
-import tkMessageBox
-
-from UndoDelegator import UndoDelegator
-
-class OutputUndoDelegator(UndoDelegator):
-    reading = 0
-    # Forbid insert/delete before the I/O mark, in the blank lines after
-    #   the output, or *anywhere* if we are not presently doing user input
-    def insert(self, index, chars, tags=None):
-        try:
-            if (self.delegate.compare(index, "<", "iomark") or
-                self.delegate.compare(index, ">", "endmark") or
-                (index!="iomark" and not self.reading)):
-                self.delegate.bell()
-                return
-        except TclError:
-            pass
-        UndoDelegator.insert(self, index, chars, tags)
-    def delete(self, index1, index2=None):
-        try:
-            if (self.delegate.compare(index1, "<", "iomark") or
-                self.delegate.compare(index1, ">", "endmark") or
-                (index2 and self.delegate.compare(index2, ">=", "endmark")) or
-                not self.reading):
-                self.delegate.bell()
-                return
-        except TclError:
-            pass
-        UndoDelegator.delete(self, index1, index2)
-
-class OutputWindow(EditorWindow):
-    """An editor window that can serve as an input and output file.
-       The input support has been rather hastily hacked in, and should
-       not be trusted.
-    """
-
-    UndoDelegator = OutputUndoDelegator
-    source_window = None
-
-    def __init__(self, *args, **keywords):
-        if keywords.has_key('source_window'):
-            self.source_window = keywords['source_window']
-        apply(EditorWindow.__init__, (self,) + args)
-        self.text.bind("<<goto-file-line>>", self.goto_file_line)
-        self.text.bind("<<newline-and-indent>>", self.enter_callback)
-        self.text.mark_set("iomark","1.0")
-        self.text.mark_gravity("iomark", LEFT)
-        self.text.mark_set("endmark","1.0")
-
-    # Customize EditorWindow
-
-    def ispythonsource(self, filename):
-        # No colorization needed
-        return 0
-
-    def short_title(self):
-        return "Output"
-
-    def long_title(self):
-        return ""
-
-    def maybesave(self):
-        # Override base class method -- don't ask any questions
-        if self.get_saved():
-            return "yes"
-        else:
-            return "no"
-
-    # Act as input file - incomplete
-
-    def set_line_and_column(self, event=None):
-        index = self.text.index(INSERT)
-        if (self.text.compare(index, ">", "endmark")):
-          self.text.mark_set("insert", "endmark")
-        self.text.see("insert")
-        EditorWindow.set_line_and_column(self)
-
-    reading = 0
-    canceled = 0
-    endoffile = 0
-
-    def readline(self):
-        save = self.reading
-        try:
-            self.reading = self.undo.reading = 1
-            self.text.mark_set("insert", "iomark")
-            self.text.see("insert")
-            self.top.mainloop()
-        finally:
-            self.reading = self.undo.reading = save
-        line = self.text.get("input", "iomark")
-        if self.canceled:
-            self.canceled = 0
-            raise KeyboardInterrupt
-        if self.endoffile:
-            self.endoffile = 0
-            return ""
-        return line or '\n'
-
-    def close(self):
-        self.interrupt()
-        return EditorWindow.close(self)
-
-    def interrupt(self):
-        if self.reading:
-            self.endoffile = 1
-            self.top.quit()
-
-    def enter_callback(self, event):
-        if self.reading and self.text.compare("insert", ">=", "iomark"):
-            self.text.mark_set("input", "iomark")
-            self.text.mark_set("iomark", "insert")
-            self.write('\n',"iomark")
-            self.text.tag_add("stdin", "input", "iomark")
-            self.text.update_idletasks()
-            self.top.quit() # Break out of recursive mainloop() in raw_input()
-
-        return "break"
-
-    # Act as output file
-
-    def write(self, s, tags=(), mark="iomark"):
-        self.text.mark_gravity(mark, RIGHT)
-        self.text.insert(mark, str(s), tags)
-        self.text.mark_gravity(mark, LEFT)
-        self.text.see(mark)
-        self.text.update()
-
-    def writelines(self, l):
-        map(self.write, l)
-
-    def flush(self):
-        pass
-
-    # Our own right-button menu
-
-    rmenu_specs = [
-        ("Go to file/line", "<<goto-file-line>>"),
-    ]
-
-    file_line_pats = [
-        r'file "([^"]*)", line (\d+)',
-        r'([^\s]+)\((\d+)\)',
-        r'([^\s]+):\s*(\d+):',
-    ]
-
-    file_line_progs = None
-
-    def goto_file_line(self, event=None):
-        if self.file_line_progs is None:
-            l = []
-            for pat in self.file_line_pats:
-                l.append(re.compile(pat, re.IGNORECASE))
-            self.file_line_progs = l
-        # x, y = self.event.x, self.event.y
-        # self.text.mark_set("insert", "@%d,%d" % (x, y))
-        line = self.text.get("insert linestart", "insert lineend")
-        result = self._file_line_helper(line)
-        if not result:
-            # Try the previous line.  This is handy e.g. in tracebacks,
-            # where you tend to right-click on the displayed source line
-            line = self.text.get("insert -1line linestart",
-                                 "insert -1line lineend")
-            result = self._file_line_helper(line)
-            if not result:
-                tkMessageBox.showerror(
-                    "No special line",
-                    "The line you point at doesn't look like "
-                    "a valid file name followed by a line number.",
-                    master=self.text)
-                return
-        filename, lineno = result
-        edit = self.untitled(filename) or self.flist.open(filename)
-        edit.gotoline(lineno)
-        edit.wakeup()
-
-    def untitled(self, filename):
-        if filename!='Untitled' or not self.source_window or self.source_window.io.filename:
-            return None
-        return self.source_window
-
-    def _file_line_helper(self, line):
-        for prog in self.file_line_progs:
-            m = prog.search(line)
-            if m:
-                break
-        else:
-            return None
-        filename, lineno = m.group(1, 2)
-        if not self.untitled(filename):
-            try:
-                f = open(filename, "r")
-                f.close()
-            except IOError:
-                return None
-        try:
-            return filename, int(lineno)
-        except TypeError:
-            return None
-
-# This classes now used by ExecBinding.py:
-
-class OnDemandOutputWindow:
-    source_window = None
-
-    tagdefs = {
-        # XXX Should use IdlePrefs.ColorPrefs
-        "stdin":   {"foreground": "black"},
-        "stdout":  {"foreground": "blue"},
-        "stderr":  {"foreground": "red"},
-    }   
-    
-    def __init__(self, flist):
-        self.flist = flist
-        self.owin = None
-        self.title = "Output"
-        self.close_hook = None
-        self.old_close = None
-
-    def owclose(self):
-        if self.close_hook:
-            self.close_hook()
-        if self.old_close:
-            self.old_close()
-
-    def set_title(self, title):
-        self.title = title
-        if self.owin and self.owin.text:
-          self.owin.saved_change_hook()
-
-    def write(self, s, tags=(), mark="iomark"):
-        if not self.owin or not self.owin.text:
-            self.setup()
-        self.owin.write(s, tags, mark)
-
-    def readline(self):
-        if not self.owin or not self.owin.text:
-            self.setup()
-        return self.owin.readline()
-
-    def scroll_clear(self):
-        if self.owin and self.owin.text:
-           lineno = self.owin.getlineno("endmark")
-           self.owin.text.mark_set("insert","endmark")
-           self.owin.text.yview(float(lineno))
-           self.owin.wakeup()
-    
-    def setup(self):
-        self.owin = owin = OutputWindow(self.flist, source_window = self.source_window)
-        owin.short_title = lambda self=self: self.title
-        text = owin.text
-
-        self.old_close = owin.close_hook
-        owin.close_hook = self.owclose
-
-        # xxx Bad hack: 50 blank lines at the bottom so that
-        #     we can scroll the top of the window to the output
-        #     cursor in scroll_clear().  There must be a better way...
-        owin.text.mark_gravity('endmark', LEFT)
-        owin.text.insert('iomark', '\n'*50)
-        owin.text.mark_gravity('endmark', RIGHT)
-        
-        for tag, cnf in self.tagdefs.items():
-            if cnf:
-                apply(text.tag_configure, (tag,), cnf)
-        text.tag_raise('sel')
diff --git a/Lib/idlelib/ParenMatch.py b/Lib/idlelib/ParenMatch.py
deleted file mode 100644 (file)
index a607e49..0000000
+++ /dev/null
@@ -1,192 +0,0 @@
-"""ParenMatch -- An IDLE extension for parenthesis matching.
-
-When you hit a right paren, the cursor should move briefly to the left
-paren.  Paren here is used generically; the matching applies to
-parentheses, square brackets, and curly braces.
-
-WARNING: This extension will fight with the CallTips extension,
-because they both are interested in the KeyRelease-parenright event.
-We'll have to fix IDLE to do something reasonable when two or more
-extensions what to capture the same event.
-"""
-
-import string
-
-import PyParse
-from AutoIndent import AutoIndent, index2line
-from IdleConf import idleconf
-
-class ParenMatch:
-    """Highlight matching parentheses
-
-    There are three supported style of paren matching, based loosely
-    on the Emacs options.  The style is select based on the 
-    HILITE_STYLE attribute; it can be changed used the set_style
-    method.
-
-    The supported styles are:
-
-    default -- When a right paren is typed, highlight the matching
-        left paren for 1/2 sec.
-
-    expression -- When a right paren is typed, highlight the entire
-        expression from the left paren to the right paren.
-
-    TODO:
-        - fix interaction with CallTips
-        - extend IDLE with configuration dialog to change options
-        - implement rest of Emacs highlight styles (see below)
-        - print mismatch warning in IDLE status window
-
-    Note: In Emacs, there are several styles of highlight where the
-    matching paren is highlighted whenever the cursor is immediately
-    to the right of a right paren.  I don't know how to do that in Tk,
-    so I haven't bothered.
-    """
-    
-    menudefs = []
-    
-    keydefs = {
-        '<<flash-open-paren>>' : ('<KeyRelease-parenright>',
-                                  '<KeyRelease-bracketright>',
-                                  '<KeyRelease-braceright>'),
-        '<<check-restore>>' : ('<KeyPress>',),
-    }
-
-    windows_keydefs = {}
-    unix_keydefs = {}
-
-    iconf = idleconf.getsection('ParenMatch')
-    STYLE = iconf.getdef('style', 'default')
-    FLASH_DELAY = iconf.getint('flash-delay')
-    HILITE_CONFIG = iconf.getcolor('hilite')
-    BELL = iconf.getboolean('bell')
-    del iconf
-
-    def __init__(self, editwin):
-        self.editwin = editwin
-        self.text = editwin.text
-        self.finder = LastOpenBracketFinder(editwin)
-        self.counter = 0
-        self._restore = None
-        self.set_style(self.STYLE)
-
-    def set_style(self, style):
-        self.STYLE = style
-        if style == "default":
-            self.create_tag = self.create_tag_default
-            self.set_timeout = self.set_timeout_last
-        elif style == "expression":
-            self.create_tag = self.create_tag_expression
-            self.set_timeout = self.set_timeout_none
-
-    def flash_open_paren_event(self, event):
-        index = self.finder.find(keysym_type(event.keysym))
-        if index is None:
-            self.warn_mismatched()
-            return
-        self._restore = 1
-        self.create_tag(index)
-        self.set_timeout()
-
-    def check_restore_event(self, event=None):
-        if self._restore:
-            self.text.tag_delete("paren")
-            self._restore = None
-
-    def handle_restore_timer(self, timer_count):
-        if timer_count + 1 == self.counter:
-            self.check_restore_event()
-
-    def warn_mismatched(self):
-        if self.BELL:
-            self.text.bell()
-
-    # any one of the create_tag_XXX methods can be used depending on
-    # the style
-
-    def create_tag_default(self, index):
-        """Highlight the single paren that matches"""
-        self.text.tag_add("paren", index)
-        self.text.tag_config("paren", self.HILITE_CONFIG)
-
-    def create_tag_expression(self, index):
-        """Highlight the entire expression"""
-        self.text.tag_add("paren", index, "insert")
-        self.text.tag_config("paren", self.HILITE_CONFIG)
-
-    # any one of the set_timeout_XXX methods can be used depending on
-    # the style
-
-    def set_timeout_none(self):
-        """Highlight will remain until user input turns it off"""
-        pass
-
-    def set_timeout_last(self):
-        """The last highlight created will be removed after .5 sec"""
-        # associate a counter with an event; only disable the "paren"
-        # tag if the event is for the most recent timer.
-        self.editwin.text_frame.after(self.FLASH_DELAY,
-                                      lambda self=self, c=self.counter: \
-                                      self.handle_restore_timer(c))
-        self.counter = self.counter + 1
-
-def keysym_type(ks):
-    # Not all possible chars or keysyms are checked because of the
-    # limited context in which the function is used.
-    if ks == "parenright" or ks == "(":
-        return "paren"
-    if ks == "bracketright" or ks == "[":
-        return "bracket"
-    if ks == "braceright" or ks == "{":
-        return "brace"
-
-class LastOpenBracketFinder:
-    num_context_lines = AutoIndent.num_context_lines
-    indentwidth = AutoIndent.indentwidth
-    tabwidth = AutoIndent.tabwidth
-    context_use_ps1 = AutoIndent.context_use_ps1
-    
-    def __init__(self, editwin):
-        self.editwin = editwin
-        self.text = editwin.text
-
-    def _find_offset_in_buf(self, lno):
-        y = PyParse.Parser(self.indentwidth, self.tabwidth)
-        for context in self.num_context_lines:
-            startat = max(lno - context, 1)
-            startatindex = `startat` + ".0"
-            # rawtext needs to contain everything up to the last
-            # character, which was the close paren.  the parser also
-           # requires that the last line ends with "\n"
-            rawtext = self.text.get(startatindex, "insert")[:-1] + "\n"
-            y.set_str(rawtext)
-            bod = y.find_good_parse_start(
-                        self.context_use_ps1,
-                        self._build_char_in_string_func(startatindex))
-            if bod is not None or startat == 1:
-                break
-        y.set_lo(bod or 0)
-        i = y.get_last_open_bracket_pos()
-        return i, y.str
-
-    def find(self, right_keysym_type):
-        """Return the location of the last open paren"""
-        lno = index2line(self.text.index("insert"))
-        i, buf = self._find_offset_in_buf(lno)
-        if i is None \
-          or keysym_type(buf[i]) != right_keysym_type:
-            return None
-        lines_back = string.count(buf[i:], "\n") - 1
-        # subtract one for the "\n" added to please the parser
-        upto_open = buf[:i]
-        j = string.rfind(upto_open, "\n") + 1 # offset of column 0 of line
-        offset = i - j
-        return "%d.%d" % (lno - lines_back, offset)
-
-    def _build_char_in_string_func(self, startindex):
-        def inner(offset, startindex=startindex,
-                  icis=self.editwin.is_char_in_string):
-            return icis(startindex + "%dc" % offset)
-        return inner
-
diff --git a/Lib/idlelib/PathBrowser.py b/Lib/idlelib/PathBrowser.py
deleted file mode 100644 (file)
index 7ea2410..0000000
+++ /dev/null
@@ -1,95 +0,0 @@
-import os
-import sys
-import imp
-
-from TreeWidget import TreeItem
-from ClassBrowser import ClassBrowser, ModuleBrowserTreeItem
-
-class PathBrowser(ClassBrowser):
-    
-    def __init__(self, flist):
-        self.init(flist)
-
-    def settitle(self):
-        self.top.wm_title("Path Browser")
-        self.top.wm_iconname("Path Browser")
-
-    def rootnode(self):
-        return PathBrowserTreeItem()
-
-class PathBrowserTreeItem(TreeItem):
-
-    def GetText(self):
-        return "sys.path"
-
-    def GetSubList(self):
-        sublist = []
-        for dir in sys.path:
-            item = DirBrowserTreeItem(dir)
-            sublist.append(item)
-        return sublist
-
-class DirBrowserTreeItem(TreeItem):
-
-    def __init__(self, dir, packages=[]):
-        self.dir = dir
-        self.packages = packages
-
-    def GetText(self):
-        if not self.packages:
-            return self.dir
-        else:
-            return self.packages[-1] + ": package"
-
-    def GetSubList(self):
-        try:
-            names = os.listdir(self.dir or os.curdir)
-        except os.error:
-            return []
-        packages = []
-        for name in names:
-            file = os.path.join(self.dir, name)
-            if self.ispackagedir(file):
-                nn = os.path.normcase(name)
-                packages.append((nn, name, file))
-        packages.sort()
-        sublist = []
-        for nn, name, file in packages:
-            item = DirBrowserTreeItem(file, self.packages + [name])
-            sublist.append(item)
-        for nn, name in self.listmodules(names):
-            item = ModuleBrowserTreeItem(os.path.join(self.dir, name))
-            sublist.append(item)
-        return sublist
-
-    def ispackagedir(self, file):
-        if not os.path.isdir(file):
-            return 0
-        init = os.path.join(file, "__init__.py")
-        return os.path.exists(init)
-
-    def listmodules(self, allnames):
-        modules = {}
-        suffixes = imp.get_suffixes()
-        sorted = []
-        for suff, mode, flag in suffixes:
-            i = -len(suff)
-            for name in allnames[:]:
-                normed_name = os.path.normcase(name)
-                if normed_name[i:] == suff:
-                    mod_name = name[:i]
-                    if not modules.has_key(mod_name):
-                        modules[mod_name] = None
-                        sorted.append((normed_name, name))
-                        allnames.remove(name)
-        sorted.sort()
-        return sorted
-
-def main():
-    import PyShell
-    PathBrowser(PyShell.flist)
-    if sys.stdin is sys.__stdin__:
-        mainloop()
-
-if __name__ == "__main__":
-    main()
diff --git a/Lib/idlelib/Percolator.py b/Lib/idlelib/Percolator.py
deleted file mode 100644 (file)
index 9def5f4..0000000
+++ /dev/null
@@ -1,85 +0,0 @@
-from WidgetRedirector import WidgetRedirector
-from Delegator import Delegator
-
-class Percolator:
-
-    def __init__(self, text):
-        # XXX would be nice to inherit from Delegator
-        self.text = text
-        self.redir = WidgetRedirector(text)
-        self.top = self.bottom = Delegator(text)
-        self.bottom.insert = self.redir.register("insert", self.insert)
-        self.bottom.delete = self.redir.register("delete", self.delete)
-        self.filters = []
-
-    def close(self):
-        while self.top is not self.bottom:
-            self.removefilter(self.top)
-        self.top = None
-        self.bottom.setdelegate(None); self.bottom = None
-        self.redir.close(); self.redir = None
-        self.text = None
-
-    def insert(self, index, chars, tags=None):
-        # Could go away if inheriting from Delegator
-        self.top.insert(index, chars, tags)
-
-    def delete(self, index1, index2=None):
-        # Could go away if inheriting from Delegator
-        self.top.delete(index1, index2)
-
-    def insertfilter(self, filter):
-        # Perhaps rename to pushfilter()?
-        assert isinstance(filter, Delegator)
-        assert filter.delegate is None
-        filter.setdelegate(self.top)
-        self.top = filter
-
-    def removefilter(self, filter):
-        # XXX Perhaps should only support popfilter()?
-        assert isinstance(filter, Delegator)
-        assert filter.delegate is not None
-        f = self.top
-        if f is filter:
-            self.top = filter.delegate
-            filter.setdelegate(None)
-        else:
-            while f.delegate is not filter:
-                assert f is not self.bottom
-                f.resetcache()
-                f = f.delegate
-            f.setdelegate(filter.delegate)
-            filter.setdelegate(None)
-
-
-def main():
-    class Tracer(Delegator):
-        def __init__(self, name):
-            self.name = name
-            Delegator.__init__(self, None)
-        def insert(self, *args):
-            print self.name, ": insert", args
-            apply(self.delegate.insert, args)
-        def delete(self, *args):
-            print self.name, ": delete", args
-            apply(self.delegate.delete, args)
-    from Tkinter import *
-    root = Tk()
-    root.wm_protocol("WM_DELETE_WINDOW", root.quit)
-    text = Text()
-    text.pack()
-    text.focus_set()
-    p = Percolator(text)
-    t1 = Tracer("t1")
-    t2 = Tracer("t2")
-    p.insertfilter(t1)
-    p.insertfilter(t2)
-    root.mainloop()
-    p.removefilter(t2)
-    root.mainloop()
-    p.insertfilter(t2)
-    p.removefilter(t1)
-    root.mainloop()
-
-if __name__ == "__main__":
-    main()
diff --git a/Lib/idlelib/PyParse.py b/Lib/idlelib/PyParse.py
deleted file mode 100644 (file)
index 23b995c..0000000
+++ /dev/null
@@ -1,569 +0,0 @@
-import string
-import re
-import sys
-
-# Reason last stmt is continued (or C_NONE if it's not).
-C_NONE, C_BACKSLASH, C_STRING, C_BRACKET = range(4)
-
-if 0:   # for throwaway debugging output
-    def dump(*stuff):
-        sys.__stdout__.write(string.join(map(str, stuff), " ") + "\n")
-
-# Find what looks like the start of a popular stmt.
-
-_synchre = re.compile(r"""
-    ^
-    [ \t]*
-    (?: if
-    |   for
-    |   while
-    |   else
-    |   def
-    |   return
-    |   assert
-    |   break
-    |   class
-    |   continue
-    |   elif
-    |   try
-    |   except
-    |   raise
-    |   import
-    )
-    \b
-""", re.VERBOSE | re.MULTILINE).search
-
-# Match blank line or non-indenting comment line.
-
-_junkre = re.compile(r"""
-    [ \t]*
-    (?: \# \S .* )?
-    \n
-""", re.VERBOSE).match
-
-# Match any flavor of string; the terminating quote is optional
-# so that we're robust in the face of incomplete program text.
-
-_match_stringre = re.compile(r"""
-    \""" [^"\\]* (?:
-                     (?: \\. | "(?!"") )
-                     [^"\\]*
-                 )*
-    (?: \""" )?
-
-|   " [^"\\\n]* (?: \\. [^"\\\n]* )* "?
-
-|   ''' [^'\\]* (?:
-                   (?: \\. | '(?!'') )
-                   [^'\\]*
-                )*
-    (?: ''' )?
-
-|   ' [^'\\\n]* (?: \\. [^'\\\n]* )* '?
-""", re.VERBOSE | re.DOTALL).match
-
-# Match a line that starts with something interesting;
-# used to find the first item of a bracket structure.
-
-_itemre = re.compile(r"""
-    [ \t]*
-    [^\s#\\]    # if we match, m.end()-1 is the interesting char
-""", re.VERBOSE).match
-
-# Match start of stmts that should be followed by a dedent.
-
-_closere = re.compile(r"""
-    \s*
-    (?: return
-    |   break
-    |   continue
-    |   raise
-    |   pass
-    )
-    \b
-""", re.VERBOSE).match
-
-# Chew up non-special chars as quickly as possible.  If match is
-# successful, m.end() less 1 is the index of the last boring char
-# matched.  If match is unsuccessful, the string starts with an
-# interesting char.
-
-_chew_ordinaryre = re.compile(r"""
-    [^[\](){}#'"\\]+
-""", re.VERBOSE).match
-
-# Build translation table to map uninteresting chars to "x", open
-# brackets to "(", and close brackets to ")".
-
-_tran = ['x'] * 256
-for ch in "({[":
-    _tran[ord(ch)] = '('
-for ch in ")}]":
-    _tran[ord(ch)] = ')'
-for ch in "\"'\\\n#":
-    _tran[ord(ch)] = ch
-_tran = string.join(_tran, '')
-del ch
-
-class Parser:
-
-    def __init__(self, indentwidth, tabwidth):
-        self.indentwidth = indentwidth
-        self.tabwidth = tabwidth
-
-    def set_str(self, str):
-        assert len(str) == 0 or str[-1] == '\n'
-        self.str = str
-        self.study_level = 0
-
-    # Return index of a good place to begin parsing, as close to the
-    # end of the string as possible.  This will be the start of some
-    # popular stmt like "if" or "def".  Return None if none found:
-    # the caller should pass more prior context then, if possible, or
-    # if not (the entire program text up until the point of interest
-    # has already been tried) pass 0 to set_lo.
-    #
-    # This will be reliable iff given a reliable is_char_in_string
-    # function, meaning that when it says "no", it's absolutely
-    # guaranteed that the char is not in a string.
-    #
-    # Ack, hack: in the shell window this kills us, because there's
-    # no way to tell the differences between output, >>> etc and
-    # user input.  Indeed, IDLE's first output line makes the rest
-    # look like it's in an unclosed paren!:
-    # Python 1.5.2 (#0, Apr 13 1999, ...
-
-    def find_good_parse_start(self, use_ps1, is_char_in_string=None,
-                              _rfind=string.rfind,
-                              _synchre=_synchre):
-        str, pos = self.str, None
-        if use_ps1:
-            # shell window
-            ps1 = '\n' + sys.ps1
-            i = _rfind(str, ps1)
-            if i >= 0:
-                pos = i + len(ps1)
-                # make it look like there's a newline instead
-                # of ps1 at the start -- hacking here once avoids
-                # repeated hackery later
-                self.str = str[:pos-1] + '\n' + str[pos:]
-            return pos
-
-        # File window -- real work.
-        if not is_char_in_string:
-            # no clue -- make the caller pass everything
-            return None
-
-        # Peek back from the end for a good place to start,
-        # but don't try too often; pos will be left None, or
-        # bumped to a legitimate synch point.
-        limit = len(str)
-        for tries in range(5):
-            i = _rfind(str, ":\n", 0, limit)
-            if i < 0:
-                break
-            i = _rfind(str, '\n', 0, i) + 1  # start of colon line
-            m = _synchre(str, i, limit)
-            if m and not is_char_in_string(m.start()):
-                pos = m.start()
-                break
-            limit = i
-        if pos is None:
-            # Nothing looks like a block-opener, or stuff does
-            # but is_char_in_string keeps returning true; most likely
-            # we're in or near a giant string, the colorizer hasn't
-            # caught up enough to be helpful, or there simply *aren't*
-            # any interesting stmts.  In any of these cases we're
-            # going to have to parse the whole thing to be sure, so
-            # give it one last try from the start, but stop wasting
-            # time here regardless of the outcome.
-            m = _synchre(str)
-            if m and not is_char_in_string(m.start()):
-                pos = m.start()
-            return pos
-
-        # Peeking back worked; look forward until _synchre no longer
-        # matches.
-        i = pos + 1
-        while 1:
-            m = _synchre(str, i)
-            if m:
-                s, i = m.span()
-                if not is_char_in_string(s):
-                    pos = s
-            else:
-                break
-        return pos
-
-    # Throw away the start of the string.  Intended to be called with
-    # find_good_parse_start's result.
-
-    def set_lo(self, lo):
-        assert lo == 0 or self.str[lo-1] == '\n'
-        if lo > 0:
-            self.str = self.str[lo:]
-
-    # As quickly as humanly possible <wink>, find the line numbers (0-
-    # based) of the non-continuation lines.
-    # Creates self.{goodlines, continuation}.
-
-    def _study1(self, _replace=string.replace, _find=string.find):
-        if self.study_level >= 1:
-            return
-        self.study_level = 1
-
-        # Map all uninteresting characters to "x", all open brackets
-        # to "(", all close brackets to ")", then collapse runs of
-        # uninteresting characters.  This can cut the number of chars
-        # by a factor of 10-40, and so greatly speed the following loop.
-        str = self.str
-        str = string.translate(str, _tran)
-        str = _replace(str, 'xxxxxxxx', 'x')
-        str = _replace(str, 'xxxx', 'x')
-        str = _replace(str, 'xx', 'x')
-        str = _replace(str, 'xx', 'x')
-        str = _replace(str, '\nx', '\n')
-        # note that replacing x\n with \n would be incorrect, because
-        # x may be preceded by a backslash
-
-        # March over the squashed version of the program, accumulating
-        # the line numbers of non-continued stmts, and determining
-        # whether & why the last stmt is a continuation.
-        continuation = C_NONE
-        level = lno = 0     # level is nesting level; lno is line number
-        self.goodlines = goodlines = [0]
-        push_good = goodlines.append
-        i, n = 0, len(str)
-        while i < n:
-            ch = str[i]
-            i = i+1
-
-            # cases are checked in decreasing order of frequency
-            if ch == 'x':
-                continue
-
-            if ch == '\n':
-                lno = lno + 1
-                if level == 0:
-                    push_good(lno)
-                    # else we're in an unclosed bracket structure
-                continue
-
-            if ch == '(':
-                level = level + 1
-                continue
-
-            if ch == ')':
-                if level:
-                    level = level - 1
-                    # else the program is invalid, but we can't complain
-                continue
-
-            if ch == '"' or ch == "'":
-                # consume the string
-                quote = ch
-                if str[i-1:i+2] == quote * 3:
-                    quote = quote * 3
-                w = len(quote) - 1
-                i = i+w
-                while i < n:
-                    ch = str[i]
-                    i = i+1
-
-                    if ch == 'x':
-                        continue
-
-                    if str[i-1:i+w] == quote:
-                        i = i+w
-                        break
-
-                    if ch == '\n':
-                        lno = lno + 1
-                        if w == 0:
-                            # unterminated single-quoted string
-                            if level == 0:
-                                push_good(lno)
-                            break
-                        continue
-
-                    if ch == '\\':
-                        assert i < n
-                        if str[i] == '\n':
-                            lno = lno + 1
-                        i = i+1
-                        continue
-
-                    # else comment char or paren inside string
-
-                else:
-                    # didn't break out of the loop, so we're still
-                    # inside a string
-                    continuation = C_STRING
-                continue    # with outer loop
-
-            if ch == '#':
-                # consume the comment
-                i = _find(str, '\n', i)
-                assert i >= 0
-                continue
-
-            assert ch == '\\'
-            assert i < n
-            if str[i] == '\n':
-                lno = lno + 1
-                if i+1 == n:
-                    continuation = C_BACKSLASH
-            i = i+1
-
-        # The last stmt may be continued for all 3 reasons.
-        # String continuation takes precedence over bracket
-        # continuation, which beats backslash continuation.
-        if continuation != C_STRING and level > 0:
-            continuation = C_BRACKET
-        self.continuation = continuation
-
-        # Push the final line number as a sentinel value, regardless of
-        # whether it's continued.
-        assert (continuation == C_NONE) == (goodlines[-1] == lno)
-        if goodlines[-1] != lno:
-            push_good(lno)
-
-    def get_continuation_type(self):
-        self._study1()
-        return self.continuation
-
-    # study1 was sufficient to determine the continuation status,
-    # but doing more requires looking at every character.  study2
-    # does this for the last interesting statement in the block.
-    # Creates:
-    #     self.stmt_start, stmt_end
-    #         slice indices of last interesting stmt
-    #     self.lastch
-    #         last non-whitespace character before optional trailing
-    #         comment
-    #     self.lastopenbracketpos
-    #         if continuation is C_BRACKET, index of last open bracket
-
-    def _study2(self, _rfind=string.rfind, _find=string.find,
-                      _ws=string.whitespace):
-        if self.study_level >= 2:
-            return
-        self._study1()
-        self.study_level = 2
-
-        # Set p and q to slice indices of last interesting stmt.
-        str, goodlines = self.str, self.goodlines
-        i = len(goodlines) - 1
-        p = len(str)    # index of newest line
-        while i:
-            assert p
-            # p is the index of the stmt at line number goodlines[i].
-            # Move p back to the stmt at line number goodlines[i-1].
-            q = p
-            for nothing in range(goodlines[i-1], goodlines[i]):
-                # tricky: sets p to 0 if no preceding newline
-                p = _rfind(str, '\n', 0, p-1) + 1
-            # The stmt str[p:q] isn't a continuation, but may be blank
-            # or a non-indenting comment line.
-            if  _junkre(str, p):
-                i = i-1
-            else:
-                break
-        if i == 0:
-            # nothing but junk!
-            assert p == 0
-            q = p
-        self.stmt_start, self.stmt_end = p, q
-
-        # Analyze this stmt, to find the last open bracket (if any)
-        # and last interesting character (if any).
-        lastch = ""
-        stack = []  # stack of open bracket indices
-        push_stack = stack.append
-        while p < q:
-            # suck up all except ()[]{}'"#\\
-            m = _chew_ordinaryre(str, p, q)
-            if m:
-                # we skipped at least one boring char
-                p = m.end()
-                # back up over totally boring whitespace
-                i = p-1    # index of last boring char
-                while i >= 0 and str[i] in " \t\n":
-                    i = i-1
-                if i >= 0:
-                    lastch = str[i]
-                if p >= q:
-                    break
-
-            ch = str[p]
-
-            if ch in "([{":
-                push_stack(p)
-                lastch = ch
-                p = p+1
-                continue
-
-            if ch in ")]}":
-                if stack:
-                    del stack[-1]
-                lastch = ch
-                p = p+1
-                continue
-
-            if ch == '"' or ch == "'":
-                # consume string
-                # Note that study1 did this with a Python loop, but
-                # we use a regexp here; the reason is speed in both
-                # cases; the string may be huge, but study1 pre-squashed
-                # strings to a couple of characters per line.  study1
-                # also needed to keep track of newlines, and we don't
-                # have to.
-                lastch = ch
-                p = _match_stringre(str, p, q).end()
-                continue
-
-            if ch == '#':
-                # consume comment and trailing newline
-                p = _find(str, '\n', p, q) + 1
-                assert p > 0
-                continue
-
-            assert ch == '\\'
-            p = p+1     # beyond backslash
-            assert p < q
-            if str[p] != '\n':
-                # the program is invalid, but can't complain
-                lastch = ch + str[p]
-            p = p+1     # beyond escaped char
-
-        # end while p < q:
-
-        self.lastch = lastch
-        if stack:
-            self.lastopenbracketpos = stack[-1]
-
-    # Assuming continuation is C_BRACKET, return the number
-    # of spaces the next line should be indented.
-
-    def compute_bracket_indent(self, _find=string.find):
-        self._study2()
-        assert self.continuation == C_BRACKET
-        j = self.lastopenbracketpos
-        str = self.str
-        n = len(str)
-        origi = i = string.rfind(str, '\n', 0, j) + 1
-        j = j+1     # one beyond open bracket
-        # find first list item; set i to start of its line
-        while j < n:
-            m = _itemre(str, j)
-            if m:
-                j = m.end() - 1     # index of first interesting char
-                extra = 0
-                break
-            else:
-                # this line is junk; advance to next line
-                i = j = _find(str, '\n', j) + 1
-        else:
-            # nothing interesting follows the bracket;
-            # reproduce the bracket line's indentation + a level
-            j = i = origi
-            while str[j] in " \t":
-                j = j+1
-            extra = self.indentwidth
-        return len(string.expandtabs(str[i:j],
-                                     self.tabwidth)) + extra
-
-    # Return number of physical lines in last stmt (whether or not
-    # it's an interesting stmt!  this is intended to be called when
-    # continuation is C_BACKSLASH).
-
-    def get_num_lines_in_stmt(self):
-        self._study1()
-        goodlines = self.goodlines
-        return goodlines[-1] - goodlines[-2]
-
-    # Assuming continuation is C_BACKSLASH, return the number of spaces
-    # the next line should be indented.  Also assuming the new line is
-    # the first one following the initial line of the stmt.
-
-    def compute_backslash_indent(self):
-        self._study2()
-        assert self.continuation == C_BACKSLASH
-        str = self.str
-        i = self.stmt_start
-        while str[i] in " \t":
-            i = i+1
-        startpos = i
-
-        # See whether the initial line starts an assignment stmt; i.e.,
-        # look for an = operator
-        endpos = string.find(str, '\n', startpos) + 1
-        found = level = 0
-        while i < endpos:
-            ch = str[i]
-            if ch in "([{":
-                level = level + 1
-                i = i+1
-            elif ch in ")]}":
-                if level:
-                    level = level - 1
-                i = i+1
-            elif ch == '"' or ch == "'":
-                i = _match_stringre(str, i, endpos).end()
-            elif ch == '#':
-                break
-            elif level == 0 and ch == '=' and \
-                   (i == 0 or str[i-1] not in "=<>!") and \
-                   str[i+1] != '=':
-                found = 1
-                break
-            else:
-                i = i+1
-
-        if found:
-            # found a legit =, but it may be the last interesting
-            # thing on the line
-            i = i+1     # move beyond the =
-            found = re.match(r"\s*\\", str[i:endpos]) is None
-
-        if not found:
-            # oh well ... settle for moving beyond the first chunk
-            # of non-whitespace chars
-            i = startpos
-            while str[i] not in " \t\n":
-                i = i+1
-
-        return len(string.expandtabs(str[self.stmt_start :
-                                         i],
-                                     self.tabwidth)) + 1
-
-    # Return the leading whitespace on the initial line of the last
-    # interesting stmt.
-
-    def get_base_indent_string(self):
-        self._study2()
-        i, n = self.stmt_start, self.stmt_end
-        j = i
-        str = self.str
-        while j < n and str[j] in " \t":
-            j = j + 1
-        return str[i:j]
-
-    # Did the last interesting stmt open a block?
-
-    def is_block_opener(self):
-        self._study2()
-        return self.lastch == ':'
-
-    # Did the last interesting stmt close a block?
-
-    def is_block_closer(self):
-        self._study2()
-        return _closere(self.str, self.stmt_start) is not None
-
-    # index of last open bracket ({[, or None if none
-    lastopenbracketpos = None
-
-    def get_last_open_bracket_pos(self):
-        self._study2()
-        return self.lastopenbracketpos
diff --git a/Lib/idlelib/PyShell.py b/Lib/idlelib/PyShell.py
deleted file mode 100644 (file)
index 7ae7130..0000000
+++ /dev/null
@@ -1,860 +0,0 @@
-#! /usr/bin/env python
-
-# changes by dscherer@cmu.edu
-
-#   the main() function has been replaced by a whole class, in order to
-#     address the constraint that only one process can sit on the port
-#     hard-coded into the loader.
-
-#     It attempts to load the RPC protocol server and publish itself.  If
-#     that fails, it assumes that some other copy of IDLE is already running
-#     on the port and attempts to contact it.  It then uses the RPC mechanism
-#     to ask that copy to do whatever it was instructed (via the command
-#     line) to do.  (Think netscape -remote).  The handling of command line
-#     arguments for remotes is still very incomplete.
-
-#   default behavior (no command line options) is to NOT start the Python
-#     Shell.  If files are specified, they are opened, otherwise a single
-#     blank editor window opens.
-
-#   If any command line -options are specified, a shell does appear.  This
-#     is necessary to make the current semantics of the options make sense.
-
-import os
-import spawn
-import sys
-import string
-import getopt
-import re
-import protocol
-
-import linecache
-from code import InteractiveInterpreter
-
-from Tkinter import *
-import tkMessageBox
-
-from EditorWindow import EditorWindow, fixwordbreaks
-from FileList import FileList
-from ColorDelegator import ColorDelegator
-from UndoDelegator import UndoDelegator
-from OutputWindow import OutputWindow, OnDemandOutputWindow
-from IdleConf import idleconf
-import idlever
-
-# We need to patch linecache.checkcache, because we don't want it
-# to throw away our <pyshell#...> entries.
-# Rather than repeating its code here, we save those entries,
-# then call the original function, and then restore the saved entries.
-def linecache_checkcache(orig_checkcache=linecache.checkcache):
-    cache = linecache.cache
-    save = {}
-    for filename in cache.keys():
-        if filename[:1] + filename[-1:] == '<>':
-            save[filename] = cache[filename]
-    orig_checkcache()
-    cache.update(save)
-linecache.checkcache = linecache_checkcache
-
-
-# Note: <<newline-and-indent>> event is defined in AutoIndent.py
-
-#$ event <<plain-newline-and-indent>>
-#$ win <Control-j>
-#$ unix <Control-j>
-
-#$ event <<beginning-of-line>>
-#$ win <Control-a>
-#$ win <Home>
-#$ unix <Control-a>
-#$ unix <Home>
-
-#$ event <<history-next>>
-#$ win <Alt-n>
-#$ unix <Alt-n>
-
-#$ event <<history-previous>>
-#$ win <Alt-p>
-#$ unix <Alt-p>
-
-#$ event <<interrupt-execution>>
-#$ win <Control-c>
-#$ unix <Control-c>
-
-#$ event <<end-of-file>>
-#$ win <Control-d>
-#$ unix <Control-d>
-
-#$ event <<open-stack-viewer>>
-
-#$ event <<toggle-debugger>>
-
-
-class PyShellEditorWindow(EditorWindow):
-
-    # Regular text edit window when a shell is present
-    # XXX ought to merge with regular editor window
-
-    def __init__(self, *args):
-        apply(EditorWindow.__init__, (self,) + args)
-        self.text.bind("<<set-breakpoint-here>>", self.set_breakpoint_here)
-        self.text.bind("<<open-python-shell>>", self.flist.open_shell)
-
-    rmenu_specs = [
-        ("Set breakpoint here", "<<set-breakpoint-here>>"),
-    ]
-
-    def set_breakpoint_here(self, event=None):
-        if not self.flist.pyshell or not self.flist.pyshell.interp.debugger:
-            self.text.bell()
-            return
-        self.flist.pyshell.interp.debugger.set_breakpoint_here(self)
-
-
-class PyShellFileList(FileList):
-
-    # File list when a shell is present
-
-    EditorWindow = PyShellEditorWindow
-
-    pyshell = None
-
-    def open_shell(self, event=None):
-        if self.pyshell:
-            self.pyshell.wakeup()
-        else:
-            self.pyshell = PyShell(self)
-            self.pyshell.begin()
-        return self.pyshell
-
-
-class ModifiedColorDelegator(ColorDelegator):
-
-    # Colorizer for the shell window itself
-
-    def recolorize_main(self):
-        self.tag_remove("TODO", "1.0", "iomark")
-        self.tag_add("SYNC", "1.0", "iomark")
-        ColorDelegator.recolorize_main(self)
-
-    tagdefs = ColorDelegator.tagdefs.copy()
-    cconf = idleconf.getsection('Colors')
-
-    tagdefs.update({
-        "stdin": cconf.getcolor("stdin"),
-        "stdout": cconf.getcolor("stdout"),
-        "stderr": cconf.getcolor("stderr"),
-        "console": cconf.getcolor("console"),
-        "ERROR": cconf.getcolor("ERROR"),
-       None: cconf.getcolor("normal"),
-    })
-
-
-class ModifiedUndoDelegator(UndoDelegator):
-
-    # Forbid insert/delete before the I/O mark
-
-    def insert(self, index, chars, tags=None):
-        try:
-            if self.delegate.compare(index, "<", "iomark"):
-                self.delegate.bell()
-                return
-        except TclError:
-            pass
-        UndoDelegator.insert(self, index, chars, tags)
-
-    def delete(self, index1, index2=None):
-        try:
-            if self.delegate.compare(index1, "<", "iomark"):
-                self.delegate.bell()
-                return
-        except TclError:
-            pass
-        UndoDelegator.delete(self, index1, index2)
-
-class ModifiedInterpreter(InteractiveInterpreter):
-
-    def __init__(self, tkconsole):
-        self.tkconsole = tkconsole
-        locals = sys.modules['__main__'].__dict__
-        InteractiveInterpreter.__init__(self, locals=locals)
-
-    gid = 0
-
-    def execsource(self, source):
-        # Like runsource() but assumes complete exec source
-        filename = self.stuffsource(source)
-        self.execfile(filename, source)
-
-    def execfile(self, filename, source=None):
-        # Execute an existing file
-        if source is None:
-            source = open(filename, "r").read()
-        try:
-            code = compile(source, filename, "exec")
-        except (OverflowError, SyntaxError):
-            self.tkconsole.resetoutput()
-            InteractiveInterpreter.showsyntaxerror(self, filename)
-        else:
-            self.runcode(code)
-
-    def runsource(self, source):
-        # Extend base class to stuff the source in the line cache first
-        filename = self.stuffsource(source)
-        self.more = 0
-        return InteractiveInterpreter.runsource(self, source, filename)
-
-    def stuffsource(self, source):
-        # Stuff source in the filename cache
-        filename = "<pyshell#%d>" % self.gid
-        self.gid = self.gid + 1
-        lines = string.split(source, "\n")
-        linecache.cache[filename] = len(source)+1, 0, lines, filename
-        return filename
-
-    def showsyntaxerror(self, filename=None):
-        # Extend base class to color the offending position
-        # (instead of printing it and pointing at it with a caret)
-        text = self.tkconsole.text
-        stuff = self.unpackerror()
-        if not stuff:
-            self.tkconsole.resetoutput()
-            InteractiveInterpreter.showsyntaxerror(self, filename)
-            return
-        msg, lineno, offset, line = stuff
-        if lineno == 1:
-            pos = "iomark + %d chars" % (offset-1)
-        else:
-            pos = "iomark linestart + %d lines + %d chars" % (lineno-1,
-                                                              offset-1)
-        text.tag_add("ERROR", pos)
-        text.see(pos)
-        char = text.get(pos)
-        if char and char in string.letters + string.digits + "_":
-            text.tag_add("ERROR", pos + " wordstart", pos)
-        self.tkconsole.resetoutput()
-        self.write("SyntaxError: %s\n" % str(msg))
-
-    def unpackerror(self):
-        type, value, tb = sys.exc_info()
-        ok = type is SyntaxError
-        if ok:
-            try:
-                msg, (dummy_filename, lineno, offset, line) = value
-            except:
-                ok = 0
-        if ok:
-            return msg, lineno, offset, line
-        else:
-            return None
-
-    def showtraceback(self):
-        # Extend base class method to reset output properly
-        text = self.tkconsole.text
-        self.tkconsole.resetoutput()
-        self.checklinecache()
-        InteractiveInterpreter.showtraceback(self)
-
-    def checklinecache(self):
-        c = linecache.cache
-        for key in c.keys():
-            if key[:1] + key[-1:] != "<>":
-                del c[key]
-
-    debugger = None
-
-    def setdebugger(self, debugger):
-        self.debugger = debugger
-
-    def getdebugger(self):
-        return self.debugger
-
-    def runcode(self, code):
-        # Override base class method
-        debugger = self.debugger
-        try:
-            self.tkconsole.beginexecuting()
-            try:
-                if debugger:
-                    debugger.run(code, self.locals)
-                else:
-                    exec code in self.locals
-            except SystemExit:
-                if tkMessageBox.askyesno(
-                    "Exit?",
-                    "Do you want to exit altogether?",
-                    default="yes",
-                    master=self.tkconsole.text):
-                    raise
-                else:
-                    self.showtraceback()
-                    if self.tkconsole.getvar("<<toggle-jit-stack-viewer>>"):
-                        self.tkconsole.open_stack_viewer()
-            except:
-                self.showtraceback()
-                if self.tkconsole.getvar("<<toggle-jit-stack-viewer>>"):
-                    self.tkconsole.open_stack_viewer()
-
-        finally:
-            self.tkconsole.endexecuting()
-
-    def write(self, s):
-        # Override base class write
-        self.tkconsole.console.write(s)
-
-
-class PyShell(OutputWindow):
-
-    shell_title = "Python Shell"
-
-    # Override classes
-    ColorDelegator = ModifiedColorDelegator
-    UndoDelegator = ModifiedUndoDelegator
-
-    # Override menu bar specs
-    menu_specs = PyShellEditorWindow.menu_specs[:]
-    menu_specs.insert(len(menu_specs)-2, ("debug", "_Debug"))
-
-    # New classes
-    from IdleHistory import History
-
-    def __init__(self, flist=None):
-        self.interp = ModifiedInterpreter(self)
-        if flist is None:
-            root = Tk()
-            fixwordbreaks(root)
-            root.withdraw()
-            flist = PyShellFileList(root)
-
-        OutputWindow.__init__(self, flist, None, None)
-
-        import __builtin__
-        __builtin__.quit = __builtin__.exit = "To exit, type Ctrl-D."
-
-        self.auto = self.extensions["AutoIndent"] # Required extension
-        self.auto.config(usetabs=1, indentwidth=8, context_use_ps1=1)
-
-        text = self.text
-        text.configure(wrap="char")
-        text.bind("<<newline-and-indent>>", self.enter_callback)
-        text.bind("<<plain-newline-and-indent>>", self.linefeed_callback)
-        text.bind("<<interrupt-execution>>", self.cancel_callback)
-        text.bind("<<beginning-of-line>>", self.home_callback)
-        text.bind("<<end-of-file>>", self.eof_callback)
-        text.bind("<<open-stack-viewer>>", self.open_stack_viewer)
-        text.bind("<<toggle-debugger>>", self.toggle_debugger)
-        text.bind("<<open-python-shell>>", self.flist.open_shell)
-        text.bind("<<toggle-jit-stack-viewer>>", self.toggle_jit_stack_viewer)
-
-        self.save_stdout = sys.stdout
-        self.save_stderr = sys.stderr
-        self.save_stdin = sys.stdin
-        sys.stdout = PseudoFile(self, "stdout")
-        sys.stderr = PseudoFile(self, "stderr")
-        sys.stdin = self
-        self.console = PseudoFile(self, "console")
-
-        self.history = self.History(self.text)
-
-    reading = 0
-    executing = 0
-    canceled = 0
-    endoffile = 0
-
-    def toggle_debugger(self, event=None):
-        if self.executing:
-            tkMessageBox.showerror("Don't debug now",
-                "You can only toggle the debugger when idle",
-                master=self.text)
-            self.set_debugger_indicator()
-            return "break"
-        else:
-            db = self.interp.getdebugger()
-            if db:
-                self.close_debugger()
-            else:
-                self.open_debugger()
-
-    def set_debugger_indicator(self):
-        db = self.interp.getdebugger()
-        self.setvar("<<toggle-debugger>>", not not db)
-
-    def toggle_jit_stack_viewer( self, event=None):
-        pass # All we need is the variable
-
-    def close_debugger(self):
-        db = self.interp.getdebugger()
-        if db:
-            self.interp.setdebugger(None)
-            db.close()
-            self.resetoutput()
-            self.console.write("[DEBUG OFF]\n")
-            sys.ps1 = ">>> "
-            self.showprompt()
-        self.set_debugger_indicator()
-
-    def open_debugger(self):
-        import Debugger
-        self.interp.setdebugger(Debugger.Debugger(self))
-        sys.ps1 = "[DEBUG ON]\n>>> "
-        self.showprompt()
-        self.set_debugger_indicator()
-
-    def beginexecuting(self):
-        # Helper for ModifiedInterpreter
-        self.resetoutput()
-        self.executing = 1
-        ##self._cancel_check = self.cancel_check
-        ##sys.settrace(self._cancel_check)
-
-    def endexecuting(self):
-        # Helper for ModifiedInterpreter
-        ##sys.settrace(None)
-        ##self._cancel_check = None
-        self.executing = 0
-        self.canceled = 0
-
-    def close(self):
-        # Extend base class method
-        if self.executing:
-            # XXX Need to ask a question here
-            if not tkMessageBox.askokcancel(
-                "Kill?",
-                "The program is still running; do you want to kill it?",
-                default="ok",
-                master=self.text):
-                return "cancel"
-            self.canceled = 1
-            if self.reading:
-                self.top.quit()
-            return "cancel"
-        return PyShellEditorWindow.close(self)
-
-    def _close(self):
-        self.close_debugger()
-        # Restore std streams
-        sys.stdout = self.save_stdout
-        sys.stderr = self.save_stderr
-        sys.stdin = self.save_stdin
-        # Break cycles
-        self.interp = None
-        self.console = None
-        self.auto = None
-        self.flist.pyshell = None
-        self.history = None
-        OutputWindow._close(self) # Really EditorWindow._close
-
-    def ispythonsource(self, filename):
-        # Override this so EditorWindow never removes the colorizer
-        return 1
-
-    def short_title(self):
-        return self.shell_title
-
-    def begin(self):
-        self.resetoutput()
-        self.write("Python %s on %s\n%s\nIDLE %s -- press F1 for help\n" %
-                   (sys.version, sys.platform, sys.copyright,
-                    idlever.IDLE_VERSION))
-        try:
-            sys.ps1
-        except AttributeError:
-            sys.ps1 = ">>> "
-        self.showprompt()
-        import Tkinter
-        Tkinter._default_root = None
-
-    def interact(self):
-        self.begin()
-        self.top.mainloop()
-
-    def readline(self):
-        save = self.reading
-        try:
-            self.reading = 1
-            self.top.mainloop()
-        finally:
-            self.reading = save
-        line = self.text.get("iomark", "end-1c")
-        self.resetoutput()
-        if self.canceled:
-            self.canceled = 0
-            raise KeyboardInterrupt
-        if self.endoffile:
-            self.endoffile = 0
-            return ""
-        return line
-
-    def isatty(self):
-        return 1
-
-    def cancel_callback(self, event):
-        try:
-            if self.text.compare("sel.first", "!=", "sel.last"):
-                return # Active selection -- always use default binding
-        except:
-            pass
-        if not (self.executing or self.reading):
-            self.resetoutput()
-            self.write("KeyboardInterrupt\n")
-            self.showprompt()
-            return "break"
-        self.endoffile = 0
-        self.canceled = 1
-        if self.reading:
-            self.top.quit()
-        return "break"
-
-    def eof_callback(self, event):
-        if self.executing and not self.reading:
-            return # Let the default binding (delete next char) take over
-        if not (self.text.compare("iomark", "==", "insert") and
-                self.text.compare("insert", "==", "end-1c")):
-            return # Let the default binding (delete next char) take over
-        if not self.executing:
-##             if not tkMessageBox.askokcancel(
-##                 "Exit?",
-##                 "Are you sure you want to exit?",
-##                 default="ok", master=self.text):
-##                 return "break"
-            self.resetoutput()
-            self.close()
-        else:
-            self.canceled = 0
-            self.endoffile = 1
-            self.top.quit()
-        return "break"
-
-    def home_callback(self, event):
-        if event.state != 0 and event.keysym == "Home":
-            return # <Modifier-Home>; fall back to class binding
-        if self.text.compare("iomark", "<=", "insert") and \
-           self.text.compare("insert linestart", "<=", "iomark"):
-            self.text.mark_set("insert", "iomark")
-            self.text.tag_remove("sel", "1.0", "end")
-            self.text.see("insert")
-            return "break"
-
-    def linefeed_callback(self, event):
-        # Insert a linefeed without entering anything (still autoindented)
-        if self.reading:
-            self.text.insert("insert", "\n")
-            self.text.see("insert")
-        else:
-            self.auto.auto_indent(event)
-        return "break"
-
-    def enter_callback(self, event):
-        if self.executing and not self.reading:
-            return # Let the default binding (insert '\n') take over
-        # If some text is selected, recall the selection
-        # (but only if this before the I/O mark)
-        try:
-            sel = self.text.get("sel.first", "sel.last")
-            if sel:
-                if self.text.compare("sel.last", "<=", "iomark"):
-                    self.recall(sel)
-                    return "break"
-        except:
-            pass
-        # If we're strictly before the line containing iomark, recall
-        # the current line, less a leading prompt, less leading or
-        # trailing whitespace
-        if self.text.compare("insert", "<", "iomark linestart"):
-            # Check if there's a relevant stdin range -- if so, use it
-            prev = self.text.tag_prevrange("stdin", "insert")
-            if prev and self.text.compare("insert", "<", prev[1]):
-                self.recall(self.text.get(prev[0], prev[1]))
-                return "break"
-            next = self.text.tag_nextrange("stdin", "insert")
-            if next and self.text.compare("insert lineend", ">=", next[0]):
-                self.recall(self.text.get(next[0], next[1]))
-                return "break"
-            # No stdin mark -- just get the current line
-            self.recall(self.text.get("insert linestart", "insert lineend"))
-            return "break"
-        # If we're in the current input and there's only whitespace
-        # beyond the cursor, erase that whitespace first
-        s = self.text.get("insert", "end-1c")
-        if s and not string.strip(s):
-            self.text.delete("insert", "end-1c")
-        # If we're in the current input before its last line,
-        # insert a newline right at the insert point
-        if self.text.compare("insert", "<", "end-1c linestart"):
-            self.auto.auto_indent(event)
-            return "break"
-        # We're in the last line; append a newline and submit it
-        self.text.mark_set("insert", "end-1c")
-        if self.reading:
-            self.text.insert("insert", "\n")
-            self.text.see("insert")
-        else:
-            self.auto.auto_indent(event)
-        self.text.tag_add("stdin", "iomark", "end-1c")
-        self.text.update_idletasks()
-        if self.reading:
-            self.top.quit() # Break out of recursive mainloop() in raw_input()
-        else:
-            self.runit()
-        return "break"
-
-    def recall(self, s):
-        if self.history:
-            self.history.recall(s)
-
-    def runit(self):
-        line = self.text.get("iomark", "end-1c")
-        # Strip off last newline and surrounding whitespace.
-        # (To allow you to hit return twice to end a statement.)
-        i = len(line)
-        while i > 0 and line[i-1] in " \t":
-            i = i-1
-        if i > 0 and line[i-1] == "\n":
-            i = i-1
-        while i > 0 and line[i-1] in " \t":
-            i = i-1
-        line = line[:i]
-        more = self.interp.runsource(line)
-        if not more:
-            self.showprompt()
-
-    def cancel_check(self, frame, what, args,
-                     dooneevent=tkinter.dooneevent,
-                     dontwait=tkinter.DONT_WAIT):
-        # Hack -- use the debugger hooks to be able to handle events
-        # and interrupt execution at any time.
-        # This slows execution down quite a bit, so you may want to
-        # disable this (by not calling settrace() in runcode() above)
-        # for full-bore (uninterruptable) speed.
-        # XXX This should become a user option.
-        if self.canceled:
-            return
-        dooneevent(dontwait)
-        if self.canceled:
-            self.canceled = 0
-            raise KeyboardInterrupt
-        return self._cancel_check
-
-    def open_stack_viewer(self, event=None):
-        try:
-            sys.last_traceback
-        except:
-            tkMessageBox.showerror("No stack trace",
-                "There is no stack trace yet.\n"
-                "(sys.last_traceback is not defined)",
-                master=self.text)
-            return
-        from StackViewer import StackBrowser
-        sv = StackBrowser(self.root, self.flist)
-
-    def showprompt(self):
-        self.resetoutput()
-        try:
-            s = str(sys.ps1)
-        except:
-            s = ""
-        self.console.write(s)
-        self.text.mark_set("insert", "end-1c")
-
-    def resetoutput(self):
-        source = self.text.get("iomark", "end-1c")
-        if self.history:
-            self.history.history_store(source)
-        if self.text.get("end-2c") != "\n":
-            self.text.insert("end-1c", "\n")
-        self.text.mark_set("iomark", "end-1c")
-        sys.stdout.softspace = 0
-
-    def write(self, s, tags=()):
-        self.text.mark_gravity("iomark", "right")
-        OutputWindow.write(self, s, tags, "iomark")
-        self.text.mark_gravity("iomark", "left")
-        if self.canceled:
-            self.canceled = 0
-            raise KeyboardInterrupt
-
-class PseudoFile:
-
-    def __init__(self, shell, tags):
-        self.shell = shell
-        self.tags = tags
-
-    def write(self, s):
-        self.shell.write(s, self.tags)
-
-    def writelines(self, l):
-        map(self.write, l)
-
-    def flush(self):
-        pass
-
-    def isatty(self):
-        return 1
-
-usage_msg = """\
-usage: idle.py [-c command] [-d] [-e] [-s] [-t title] [arg] ...
-
--c command  run this command
--d          enable debugger
--e          edit mode; arguments are files to be edited
--s          run $IDLESTARTUP or $PYTHONSTARTUP before anything else
--t title    set title of shell window
-
-When neither -c nor -e is used, and there are arguments, and the first
-argument is not '-', the first argument is run as a script.  Remaining
-arguments are arguments to the script or to the command run by -c.
-"""
-
-class usageError:
-    def __init__(self, string): self.string = string
-    def __repr__(self): return self.string
-
-class main:
-    def __init__(self):
-        try:
-            self.server = protocol.Server(connection_hook = self.address_ok)
-            protocol.publish( 'IDLE', self.connect )
-            self.main( sys.argv[1:] )
-            return
-        except protocol.connectionLost:
-            try:
-                client = protocol.Client()
-                IDLE = client.getobject('IDLE')
-                if IDLE:
-                    try:
-                        IDLE.remote( sys.argv[1:] )
-                    except usageError, msg:
-                        sys.stderr.write("Error: %s\n" % str(msg))
-                        sys.stderr.write(usage_msg)
-                    return
-            except protocol.connectionLost:
-                pass
-
-        # xxx Should scream via Tk()
-        print "Something already has our socket, but it won't open a window for me!"
-        print "Unable to proceed."
-
-    def idle(self):
-        spawn.kill_zombies()
-        self.server.rpc_loop()
-        root.after(25, self.idle)
-
-    # We permit connections from localhost only
-    def address_ok(self, addr):
-        return addr[0] == '127.0.0.1'
-
-    def connect(self, client, addr):
-        return self
-
-    def remote( self, argv ):
-        # xxx Should make this behavior match the behavior in main, or redo
-        #     command line options entirely.
-
-        try:
-            opts, args = getopt.getopt(argv, "c:deist:")
-        except getopt.error, msg:
-            raise usageError(msg)
-
-        for filename in args:
-            flist.open(filename)
-        if not args:
-            flist.new()
-
-    def main( self, argv ):
-        cmd = None
-        edit = 0
-        noshell = 1
-    
-        debug = 0
-        startup = 0
-    
-        try:
-            opts, args = getopt.getopt(argv, "c:deist:")
-        except getopt.error, msg:
-            sys.stderr.write("Error: %s\n" % str(msg))
-            sys.stderr.write(usage_msg)
-            sys.exit(2)
-    
-        for o, a in opts:
-            noshell = 0
-            if o == '-c':
-                cmd = a
-            if o == '-d':
-                debug = 1
-            if o == '-e':
-                edit = 1
-            if o == '-s':
-                startup = 1
-            if o == '-t':
-                PyShell.shell_title = a
-    
-        if noshell: edit=1
-    
-        if not edit:
-            if cmd:
-                sys.argv = ["-c"] + args
-            else:
-                sys.argv = args or [""]
-    
-        for i in range(len(sys.path)):
-            sys.path[i] = os.path.abspath(sys.path[i])
-    
-        pathx = []
-        if edit:
-            for filename in args:
-                pathx.append(os.path.dirname(filename))
-        elif args and args[0] != "-":
-            pathx.append(os.path.dirname(args[0]))
-        else:
-            pathx.append(os.curdir)
-        for dir in pathx:
-            dir = os.path.abspath(dir)
-            if not dir in sys.path:
-                sys.path.insert(0, dir)
-
-        global flist, root
-        root = Tk()
-        fixwordbreaks(root)
-        root.withdraw()
-        flist = PyShellFileList(root)
-    
-        if edit:
-            for filename in args:
-                flist.open(filename)
-            if not args:
-                flist.new()
-    
-        #dbg=OnDemandOutputWindow(flist)
-        #dbg.set_title('Internal IDLE Problem')
-        #sys.stdout = PseudoFile(dbg,['stdout'])
-        #sys.stderr = PseudoFile(dbg,['stderr'])
-    
-        if noshell:
-          flist.pyshell = None
-        else:
-          shell = PyShell(flist)
-          interp = shell.interp
-          flist.pyshell = shell
-      
-          if startup:
-              filename = os.environ.get("IDLESTARTUP") or \
-                         os.environ.get("PYTHONSTARTUP")
-              if filename and os.path.isfile(filename):
-                  interp.execfile(filename)
-      
-          if debug:
-              shell.open_debugger()
-          if cmd:
-              interp.execsource(cmd)
-          elif not edit and args and args[0] != "-":
-              interp.execfile(args[0])
-      
-          shell.begin()
-
-        self.idle()
-        root.mainloop()
-        root.destroy()
-
-
-if __name__ == "__main__":
-    main()
diff --git a/Lib/idlelib/README.txt b/Lib/idlelib/README.txt
deleted file mode 100644 (file)
index 1b065ae..0000000
+++ /dev/null
@@ -1,121 +0,0 @@
-EXPERIMENTAL LOADER IDLE 2000-05-29
------------------------------------
-
-   David Scherer  <dscherer@cmu.edu>
-
-This is a modification of the CVS version of IDLE 0.5, updated as of
-2000-03-09.  It is alpha software and might be unstable.  If it breaks,
-you get to keep both pieces.
-
-If you have problems or suggestions, you should either contact me or
-post to the list at http://www.python.org/mailman/listinfo/idle-dev
-(making it clear that you are using this modified version of IDLE).
-
-Changes:
-
-  The ExecBinding module, a replacement for ScriptBinding, executes
-  programs in a separate process, piping standard I/O through an RPC
-  mechanism to an OnDemandOutputWindow in IDLE.  It supports executing
-  unnamed programs (through a temporary file).  It does not yet support
-  debugging.
-
-  When running programs with ExecBinding, tracebacks will be clipped
-  to exclude system modules.  If, however, a system module calls back
-  into the user program, that part of the traceback will be shown.
-
-  The OnDemandOutputWindow class has been improved.  In particular,
-  it now supports a readline() function used to implement user input,
-  and a scroll_clear() operation which is used to hide the output of
-  a previous run by scrolling it out of the window.
-
-  Startup behavior has been changed.  By default IDLE starts up with
-  just a blank editor window, rather than an interactive window.  Opening
-  a file in such a blank window replaces the (nonexistent) contents of
-  that window instead of creating another window.  Because of the need to
-  have a well-known port for the ExecBinding protocol, only one copy of
-  IDLE can be running.  Additional invocations use the RPC mechanism to
-  report their command line arguments to the copy already running.
-
-  The menus have been reorganized.  In particular, the excessively large
-  'edit' menu has been split up into 'edit', 'format', and 'run'.
-
-  'Python Documentation' now works on Windows, if the win32api module is
-  present.
-
-  A few key bindings have been changed: F1 now loads Python Documentation
-  instead of the IDLE help; shift-TAB is now a synonym for unindent.
-
-New modules:
-  ExecBinding.py         Executes program through loader
-  loader.py              Bootstraps user program
-  protocol.py            RPC protocol
-  Remote.py              User-process interpreter
-  spawn.py               OS-specific code to start programs
-
-Files modified:
-  autoindent.py          ( bindings tweaked )
-  bindings.py            ( menus reorganized )
-  config.txt             ( execbinding enabled )
-  editorwindow.py        ( new menus, fixed 'Python Documentation' )
-  filelist.py            ( hook for "open in same window" )
-  formatparagraph.py     ( bindings tweaked )
-  idle.bat               ( removed absolute pathname )
-  idle.pyw               ( weird bug due to import with same name? )
-  iobinding.py           ( open in same window, EOL convention )
-  keydefs.py             ( bindings tweaked )
-  outputwindow.py        ( readline, scroll_clear, etc )
-  pyshell.py             ( changed startup behavior )
-  readme.txt             ( <Recursion on file with id=1234567> )
-
-IDLE 0.5 - February 2000
-------------------------
-
-This is an early release of IDLE, my own attempt at a Tkinter-based
-IDE for Python.
-
-For news about this release, see the file NEWS.txt.  (For a more
-detailed change log, see the file ChangeLog.)
-
-FEATURES
-
-IDLE has the following features:
-
-- coded in 100% pure Python, using the Tkinter GUI toolkit (i.e. Tcl/Tk)
-
-- cross-platform: works on Windows and Unix (on the Mac, there are
-currently problems with Tcl/Tk)
-
-- multi-window text editor with multiple undo, Python colorizing
-and many other features, e.g. smart indent and call tips
-
-- Python shell window (a.k.a. interactive interpreter)
-
-- debugger (not complete, but you can set breakpoints, view  and step)
-
-USAGE
-
-The main program is in the file "idle.py"; on Unix, you should be able
-to run it by typing "./idle.py" to your shell.  On Windows, you can
-run it by double-clicking it; you can use idle.pyw to avoid popping up
-a DOS console.  If you want to pass command line arguments on Windows,
-use the batch file idle.bat.
-
-Command line arguments: files passed on the command line are executed,
-not opened for editing, unless you give the -e command line option.
-Try "./idle.py -h" to see other command line options.
-
-IDLE requires Python 1.5.2, so it is currently only usable with a
-Python 1.5.2 distribution.  (An older version of IDLE is distributed
-with Python 1.5.2; you can drop this version on top of it.)
-
-COPYRIGHT
-
-IDLE is covered by the standard Python copyright notice
-(http://www.python.org/doc/Copyright.html).
-
-FEEDBACK
-
-(removed, since Guido probably doesn't want complaints about my
-changes)
-
---Guido van Rossum (home page: http://www.python.org/~guido/)
diff --git a/Lib/idlelib/Remote.py b/Lib/idlelib/Remote.py
deleted file mode 100644 (file)
index facba78..0000000
+++ /dev/null
@@ -1,101 +0,0 @@
-"""Remote
-     This module is imported by the loader and serves to control
-     the execution of the user program.  It presently executes files
-     and reports exceptions to IDLE.  It could be extended to provide
-     other services, such as interactive mode and debugging.  To that
-     end, it could be a subclass of e.g. InteractiveInterpreter.
-
-     Two other classes, pseudoIn and pseudoOut, are file emulators also
-     used by loader.
-"""
-import sys, os
-import traceback
-
-class Remote:    
-    def __init__(self, main, master):
-        self.main = main
-        self.master = master
-        self.this_file = self.canonic( self.__init__.im_func.func_code.co_filename )
-
-    def canonic(self, path):
-        return os.path.normcase(os.path.abspath(path))
-
-    def mainloop(self):
-        while 1:
-            args = self.master.get_command()
-
-            try:
-                f = getattr(self,args[0])
-                apply(f,args[1:])
-            except:
-                if not self.report_exception(): raise
-
-    def finish(self):
-        sys.exit()
-
-    def run(self, *argv):
-        sys.argv = argv
-
-        path = self.canonic( argv[0] )
-        dir = self.dir = os.path.dirname(path)
-        os.chdir(dir)
-
-        sys.path[0] = dir
-
-        usercode = open(path)
-        exec usercode in self.main
-
-    def report_exception(self):
-        try:
-            type, value, tb = sys.exc_info()
-            sys.last_type = type
-            sys.last_value = value
-            sys.last_traceback = tb
-
-            tblist = traceback.extract_tb(tb)
-
-            # Look through the traceback, canonicalizing filenames and
-            #   eliminating leading and trailing system modules.
-            first = last = 1
-            for i in range(len(tblist)):
-                filename, lineno, name, line = tblist[i]
-                filename = self.canonic(filename)
-                tblist[i] = filename, lineno, name, line
-
-                dir = os.path.dirname(filename)
-                if filename == self.this_file:
-                    first = i+1
-                elif dir==self.dir:
-                    last = i+1
-
-            # Canonicalize the filename in a syntax error, too:
-            if type is SyntaxError:
-                try:
-                    msg, (filename, lineno, offset, line) = value
-                    filename = self.canonic(filename)
-                    value = msg, (filename, lineno, offset, line)
-                except:
-                    pass
-
-            return self.master.program_exception( type, value, tblist, first, last )
-        finally:
-            # avoid any circular reference through the traceback
-            del tb
-
-class pseudoIn:
-    def __init__(self, readline):
-        self.readline = readline
-    def isatty():
-        return 1
-
-class pseudoOut:
-    def __init__(self, func, **kw):
-        self.func = func
-        self.kw = kw
-    def write(self, *args):
-        return apply( self.func, args, self.kw )
-    def writelines(self, l):
-        map(self.write, l)
-    def flush(self):
-        pass
-
diff --git a/Lib/idlelib/ReplaceDialog.py b/Lib/idlelib/ReplaceDialog.py
deleted file mode 100644 (file)
index e29d4d6..0000000
+++ /dev/null
@@ -1,172 +0,0 @@
-import string
-import os
-import re
-import fnmatch
-from Tkinter import *
-import tkMessageBox
-import SearchEngine
-from SearchDialogBase import SearchDialogBase
-
-def replace(text):
-    root = text._root()
-    engine = SearchEngine.get(root)
-    if not hasattr(engine, "_replacedialog"):
-        engine._replacedialog = ReplaceDialog(root, engine)
-    dialog = engine._replacedialog
-    dialog.open(text)
-
-class ReplaceDialog(SearchDialogBase):
-
-    title = "Replace Dialog"
-    icon = "Replace"
-
-    def __init__(self, root, engine):
-        SearchDialogBase.__init__(self, root, engine)
-        self.replvar = StringVar(root)
-
-    def open(self, text):
-        SearchDialogBase.open(self, text)
-        try:
-            first = text.index("sel.first")
-        except TclError:
-            first = None
-        try:
-            last = text.index("sel.last")
-        except TclError:
-            last = None
-        first = first or text.index("insert")
-        last = last or first
-        self.show_hit(first, last)
-        self.ok = 1
-
-    def create_entries(self):
-        SearchDialogBase.create_entries(self)
-        self.replent = self.make_entry("Replace with:", self.replvar)
-
-    def create_command_buttons(self):
-        SearchDialogBase.create_command_buttons(self)
-        self.make_button("Find", self.find_it)
-        self.make_button("Replace", self.replace_it)
-        self.make_button("Replace+Find", self.default_command, 1)
-        self.make_button("Replace All", self.replace_all)
-
-    def find_it(self, event=None):
-        self.do_find(0)
-
-    def replace_it(self, event=None):
-        if self.do_find(self.ok):
-            self.do_replace()
-
-    def default_command(self, event=None):
-        if self.do_find(self.ok):
-            self.do_replace()
-            self.do_find(0)
-
-    def replace_all(self, event=None):
-        prog = self.engine.getprog()
-        if not prog:
-            return
-        repl = self.replvar.get()
-        text = self.text
-        res = self.engine.search_text(text, prog)
-        if not res:
-            text.bell()
-            return
-        text.tag_remove("sel", "1.0", "end")
-        text.tag_remove("hit", "1.0", "end")
-        line = res[0]
-        col = res[1].start()
-        if self.engine.iswrap():
-            line = 1
-            col = 0
-        ok = 1
-        first = last = None
-        # XXX ought to replace circular instead of top-to-bottom when wrapping
-        text.undo_block_start()
-        while 1:
-            res = self.engine.search_forward(text, prog, line, col, 0, ok)
-            if not res:
-                break
-            line, m = res
-            chars = text.get("%d.0" % line, "%d.0" % (line+1))
-            orig = m.group()
-            new = re.pcre_expand(m, repl)
-            i, j = m.span()
-            first = "%d.%d" % (line, i)
-            last = "%d.%d" % (line, j)
-            if new == orig:
-                text.mark_set("insert", last)
-            else:
-                text.mark_set("insert", first)
-                if first != last:
-                    text.delete(first, last)
-                if new:
-                    text.insert(first, new)
-            col = i + len(new)
-            ok = 0
-        text.undo_block_stop()
-        if first and last:
-            self.show_hit(first, last)
-        self.close()
-
-    def do_find(self, ok=0):
-        if not self.engine.getprog():
-            return 0
-        text = self.text
-        res = self.engine.search_text(text, None, ok)
-        if not res:
-            text.bell()
-            return 0
-        line, m = res
-        i, j = m.span()
-        first = "%d.%d" % (line, i)
-        last = "%d.%d" % (line, j)
-        self.show_hit(first, last)
-        self.ok = 1
-        return 1
-
-    def do_replace(self):
-        prog = self.engine.getprog()
-        if not prog:
-            return 0
-        text = self.text
-        try:
-            first = pos = text.index("sel.first")
-            last = text.index("sel.last")
-        except TclError:
-            pos = None
-        if not pos:
-            first = last = pos = text.index("insert")
-        line, col = SearchEngine.get_line_col(pos)
-        chars = text.get("%d.0" % line, "%d.0" % (line+1))
-        m = prog.match(chars, col)
-        if not prog:
-            return 0
-        new = re.pcre_expand(m, self.replvar.get())
-        text.mark_set("insert", first)
-        text.undo_block_start()
-        if m.group():
-            text.delete(first, last)
-        if new:
-            text.insert(first, new)
-        text.undo_block_stop()
-        self.show_hit(first, text.index("insert"))
-        self.ok = 0
-        return 1
-
-    def show_hit(self, first, last):
-        text = self.text
-        text.mark_set("insert", first)
-        text.tag_remove("sel", "1.0", "end")
-        text.tag_add("sel", first, last)
-        text.tag_remove("hit", "1.0", "end")
-        if first == last:
-            text.tag_add("hit", first)
-        else:
-            text.tag_add("hit", first, last)
-        text.see("insert")
-        text.update_idletasks()
-
-    def close(self, event=None):
-        SearchDialogBase.close(self, event)
-        self.text.tag_remove("hit", "1.0", "end")
diff --git a/Lib/idlelib/ScriptBinding.py b/Lib/idlelib/ScriptBinding.py
deleted file mode 100644 (file)
index aa46c68..0000000
+++ /dev/null
@@ -1,169 +0,0 @@
-"""Extension to execute code outside the Python shell window.
-
-This adds the following commands (to the Edit menu, until there's a
-separate Python menu):
-
-- Check module (Alt-F5) does a full syntax check of the current module.
-It also runs the tabnanny to catch any inconsistent tabs.
-
-- Import module (F5) is equivalent to either import or reload of the
-current module.  The window must have been saved previously. The
-module is added to sys.modules, and is also added to the __main__
-namespace.  Output goes to the shell window.
-
-- Run module (Control-F5) does the same but executes the module's
-code in the __main__ namespace.
-
-"""
-
-import sys
-import os
-import imp
-import tkMessageBox
-
-indent_message = """Error: Inconsistent indentation detected!
-
-This means that either:
-
-(1) your indentation is outright incorrect (easy to fix), or
-
-(2) your indentation mixes tabs and spaces in a way that depends on \
-how many spaces a tab is worth.
-
-To fix case 2, change all tabs to spaces by using Select All followed \
-by Untabify Region (both in the Edit menu)."""
-
-class ScriptBinding:
-    
-    keydefs = {
-        '<<check-module>>': ['<Alt-F5>', '<Meta-F5>'],
-        '<<import-module>>': ['<F5>'],
-        '<<run-script>>': ['<Control-F5>'],
-    }
-    
-    menudefs = [
-        ('edit', [None,
-                  ('Check module', '<<check-module>>'),
-                  ('Import module', '<<import-module>>'),
-                  ('Run script', '<<run-script>>'),
-                 ]
-        ),
-    ]
-
-    def __init__(self, editwin):
-        self.editwin = editwin
-        # Provide instance variables referenced by Debugger
-        # XXX This should be done differently
-        self.flist = self.editwin.flist
-        self.root = self.flist.root
-
-    def check_module_event(self, event):
-        filename = self.getfilename()
-        if not filename:
-            return
-        if not self.tabnanny(filename):
-            return
-        if not self.checksyntax(filename):
-            return
-
-    def tabnanny(self, filename):
-        import tabnanny
-        import tokenize
-        tabnanny.reset_globals()
-        f = open(filename, 'r')
-        try:
-            tokenize.tokenize(f.readline, tabnanny.tokeneater)
-        except tokenize.TokenError, msg:
-            self.errorbox("Token error",
-                          "Token error:\n%s" % str(msg))
-            return 0
-        except tabnanny.NannyNag, nag:
-            # The error messages from tabnanny are too confusing...
-            self.editwin.gotoline(nag.get_lineno())
-            self.errorbox("Tab/space error", indent_message)
-            return 0
-        return 1
-
-    def checksyntax(self, filename):
-        f = open(filename, 'r')
-        source = f.read()
-        f.close()
-        if '\r' in source:
-            import re
-            source = re.sub(r"\r\n", "\n", source)
-        if source and source[-1] != '\n':
-            source = source + '\n'
-        try:
-            compile(source, filename, "exec")
-        except (SyntaxError, OverflowError), err:
-            try:
-                msg, (errorfilename, lineno, offset, line) = err
-                if not errorfilename:
-                    err.args = msg, (filename, lineno, offset, line)
-                    err.filename = filename
-            except:
-                lineno = None
-                msg = "*** " + str(err)
-            if lineno:
-                self.editwin.gotoline(lineno)
-            self.errorbox("Syntax error",
-                          "There's an error in your program:\n" + msg)
-        return 1
-
-    def import_module_event(self, event):
-        filename = self.getfilename()
-        if not filename:
-            return
-
-        modname, ext = os.path.splitext(os.path.basename(filename))
-        if sys.modules.has_key(modname):
-            mod = sys.modules[modname]
-        else:
-            mod = imp.new_module(modname)
-            sys.modules[modname] = mod
-        mod.__file__ = filename
-        setattr(sys.modules['__main__'], modname, mod)
-
-        dir = os.path.dirname(filename)
-        dir = os.path.normpath(os.path.abspath(dir))
-        if dir not in sys.path:
-            sys.path.insert(0, dir)
-
-        flist = self.editwin.flist
-        shell = flist.open_shell()
-        interp = shell.interp
-        interp.runcode("reload(%s)" % modname)
-
-    def run_script_event(self, event):
-        filename = self.getfilename()
-        if not filename:
-            return
-
-        flist = self.editwin.flist
-        shell = flist.open_shell()
-        interp = shell.interp
-        if (not sys.argv or
-            os.path.basename(sys.argv[0]) != os.path.basename(filename)):
-            # XXX Too often this discards arguments the user just set...
-            sys.argv = [filename]
-        interp.execfile(filename)
-
-    def getfilename(self):
-        # Logic to make sure we have a saved filename
-        # XXX Better logic would offer to save!
-        if not self.editwin.get_saved():
-            self.errorbox("Not saved",
-                          "Please save first!")
-            self.editwin.text.focus_set()
-            return
-        filename = self.editwin.io.filename
-        if not filename:
-            self.errorbox("No file name",
-                          "This window has no file name")
-            return
-        return filename
-
-    def errorbox(self, title, message):
-        # XXX This should really be a function of EditorWindow...
-        tkMessageBox.showerror(title, message, master=self.editwin.text)
-        self.editwin.text.focus_set()
diff --git a/Lib/idlelib/ScrolledList.py b/Lib/idlelib/ScrolledList.py
deleted file mode 100644 (file)
index 7fb1c20..0000000
+++ /dev/null
@@ -1,139 +0,0 @@
-from Tkinter import *
-
-class ScrolledList:
-    
-    default = "(None)"
-
-    def __init__(self, master, **options):
-        # Create top frame, with scrollbar and listbox
-        self.master = master
-        self.frame = frame = Frame(master)
-        self.frame.pack(fill="both", expand=1)
-        self.vbar = vbar = Scrollbar(frame, name="vbar")
-        self.vbar.pack(side="right", fill="y")
-        self.listbox = listbox = Listbox(frame, exportselection=0,
-            background="white")
-        if options:
-            listbox.configure(options)
-        listbox.pack(expand=1, fill="both")
-        # Tie listbox and scrollbar together
-        vbar["command"] = listbox.yview
-        listbox["yscrollcommand"] = vbar.set
-        # Bind events to the list box
-        listbox.bind("<ButtonRelease-1>", self.click_event)
-        listbox.bind("<Double-ButtonRelease-1>", self.double_click_event)
-        listbox.bind("<ButtonPress-3>", self.popup_event)
-        listbox.bind("<Key-Up>", self.up_event)
-        listbox.bind("<Key-Down>", self.down_event)
-        # Mark as empty
-        self.clear()
-
-    def close(self):
-        self.frame.destroy()
-
-    def clear(self):
-        self.listbox.delete(0, "end")
-        self.empty = 1
-        self.listbox.insert("end", self.default)
-
-    def append(self, item):
-        if self.empty:
-            self.listbox.delete(0, "end")
-            self.empty = 0
-        self.listbox.insert("end", str(item))
-
-    def get(self, index):
-        return self.listbox.get(index)
-
-    def click_event(self, event):
-        self.listbox.activate("@%d,%d" % (event.x, event.y))
-        index = self.listbox.index("active")
-        self.select(index)
-        self.on_select(index)
-        return "break"
-
-    def double_click_event(self, event):
-        index = self.listbox.index("active")
-        self.select(index)
-        self.on_double(index)
-        return "break"
-
-    menu = None
-
-    def popup_event(self, event):
-        if not self.menu:
-            self.make_menu()
-        menu = self.menu
-        self.listbox.activate("@%d,%d" % (event.x, event.y))
-        index = self.listbox.index("active")
-        self.select(index)
-        menu.tk_popup(event.x_root, event.y_root)
-
-    def make_menu(self):
-        menu = Menu(self.listbox, tearoff=0)
-        self.menu = menu
-        self.fill_menu()
-
-    def up_event(self, event):
-        index = self.listbox.index("active")
-        if self.listbox.selection_includes(index):
-            index = index - 1
-        else:
-            index = self.listbox.size() - 1
-        if index < 0:
-            self.listbox.bell()
-        else:
-            self.select(index)
-            self.on_select(index)
-        return "break"
-
-    def down_event(self, event):
-        index = self.listbox.index("active")
-        if self.listbox.selection_includes(index):
-            index = index + 1
-        else:
-            index = 0
-        if index >= self.listbox.size():
-            self.listbox.bell()
-        else:
-            self.select(index)
-            self.on_select(index)
-        return "break"
-
-    def select(self, index):
-        self.listbox.focus_set()
-        self.listbox.activate(index)
-        self.listbox.selection_clear(0, "end")
-        self.listbox.selection_set(index)
-        self.listbox.see(index)
-
-    # Methods to override for specific actions
-
-    def fill_menu(self):
-        pass
-
-    def on_select(self, index):
-        pass
-
-    def on_double(self, index):
-        pass
-
-
-def test():
-    root = Tk()
-    root.protocol("WM_DELETE_WINDOW", root.destroy)
-    class MyScrolledList(ScrolledList):
-        def fill_menu(self): self.menu.add_command(label="pass")
-        def on_select(self, index): print "select", self.get(index)
-        def on_double(self, index): print "double", self.get(index)
-    s = MyScrolledList(root)
-    for i in range(30):
-        s.append("item %02d" % i)
-    return root
-
-def main():
-    root = test()
-    root.mainloop()
-
-if __name__ == '__main__':
-    main()
diff --git a/Lib/idlelib/SearchBinding.py b/Lib/idlelib/SearchBinding.py
deleted file mode 100644 (file)
index 5943e3b..0000000
+++ /dev/null
@@ -1,97 +0,0 @@
-import tkSimpleDialog
-
-###$ event <<find>>
-###$ win <Control-f>
-###$ unix <Control-u><Control-u><Control-s>
-
-###$ event <<find-again>>
-###$ win <Control-g>
-###$ win <F3>
-###$ unix <Control-u><Control-s>
-
-###$ event <<find-selection>>
-###$ win <Control-F3>
-###$ unix <Control-s>
-
-###$ event <<find-in-files>>
-###$ win <Alt-F3>
-
-###$ event <<replace>>
-###$ win <Control-h>
-
-###$ event <<goto-line>>
-###$ win <Alt-g>
-###$ unix <Alt-g>
-
-class SearchBinding:
-
-    windows_keydefs = {
-        '<<find-again>>': ['<Control-g>', '<F3>'],
-        '<<find-in-files>>': ['<Alt-F3>'],
-        '<<find-selection>>': ['<Control-F3>'],
-        '<<find>>': ['<Control-f>'],
-        '<<replace>>': ['<Control-h>'],
-        '<<goto-line>>': ['<Alt-g>'],
-    }
-
-    unix_keydefs = {
-        '<<find-again>>': ['<Control-u><Control-s>'],
-        '<<find-in-files>>': ['<Alt-s>', '<Meta-s>'],
-        '<<find-selection>>': ['<Control-s>'],
-        '<<find>>': ['<Control-u><Control-u><Control-s>'],
-        '<<replace>>': ['<Control-r>'],
-        '<<goto-line>>': ['<Alt-g>', '<Meta-g>'],
-    }
-
-    menudefs = [
-        ('edit', [
-            None,
-            ('_Find...', '<<find>>'),
-            ('Find a_gain', '<<find-again>>'),
-            ('Find _selection', '<<find-selection>>'),
-            ('Find in Files...', '<<find-in-files>>'),
-            ('R_eplace...', '<<replace>>'),
-            ('Go to _line', '<<goto-line>>'),
-         ]),
-    ]
-
-    def __init__(self, editwin):
-        self.editwin = editwin
-
-    def find_event(self, event):
-        import SearchDialog
-        SearchDialog.find(self.editwin.text)
-        return "break"
-
-    def find_again_event(self, event):
-        import SearchDialog
-        SearchDialog.find_again(self.editwin.text)
-        return "break"
-
-    def find_selection_event(self, event):
-        import SearchDialog
-        SearchDialog.find_selection(self.editwin.text)
-        return "break"
-
-    def find_in_files_event(self, event):
-        import GrepDialog
-        GrepDialog.grep(self.editwin.text, self.editwin.io, self.editwin.flist)
-        return "break"
-
-    def replace_event(self, event):
-        import ReplaceDialog
-        ReplaceDialog.replace(self.editwin.text)
-        return "break"
-
-    def goto_line_event(self, event):
-        text = self.editwin.text
-        lineno = tkSimpleDialog.askinteger("Goto",
-                                           "Go to line number:",
-                                           parent=text)
-        if lineno is None:
-            return "break"
-        if lineno <= 0:
-            text.bell()
-            return "break"
-        text.mark_set("insert", "%d.0" % lineno)
-        text.see("insert")
diff --git a/Lib/idlelib/SearchDialog.py b/Lib/idlelib/SearchDialog.py
deleted file mode 100644 (file)
index 0f0cb18..0000000
+++ /dev/null
@@ -1,67 +0,0 @@
-from Tkinter import *
-import SearchEngine
-from SearchDialogBase import SearchDialogBase
-
-
-def _setup(text):
-    root = text._root()
-    engine = SearchEngine.get(root)
-    if not hasattr(engine, "_searchdialog"):
-        engine._searchdialog = SearchDialog(root, engine)
-    return engine._searchdialog
-
-def find(text):
-    return _setup(text).open(text)
-
-def find_again(text):
-    return _setup(text).find_again(text)
-
-def find_selection(text):
-    return _setup(text).find_selection(text)
-
-class SearchDialog(SearchDialogBase):
-
-    def create_widgets(self):
-        f = SearchDialogBase.create_widgets(self)
-        self.make_button("Find", self.default_command, 1)
-
-    def default_command(self, event=None):
-        if not self.engine.getprog():
-            return
-        if self.find_again(self.text):
-            self.close()
-
-    def find_again(self, text):
-        if not self.engine.getpat():
-            self.open(text)
-            return 0
-        if not self.engine.getprog():
-            return 0
-        res = self.engine.search_text(text)
-        if res:
-            line, m = res
-            i, j = m.span()
-            first = "%d.%d" % (line, i)
-            last = "%d.%d" % (line, j)
-            try:
-                selfirst = text.index("sel.first")
-                sellast = text.index("sel.last")
-                if selfirst == first and sellast == last:
-                    text.bell()
-                    return 0
-            except TclError:
-                pass
-            text.tag_remove("sel", "1.0", "end")
-            text.tag_add("sel", first, last)
-            text.mark_set("insert", self.engine.isback() and first or last)
-            text.see("insert")
-            return 1
-        else:
-            text.bell()
-            return 0
-
-    def find_selection(self, text):
-        pat = text.get("sel.first", "sel.last")
-        if pat:
-            self.engine.setcookedpat(pat)
-        return self.find_again(text)
diff --git a/Lib/idlelib/SearchDialogBase.py b/Lib/idlelib/SearchDialogBase.py
deleted file mode 100644 (file)
index faf5269..0000000
+++ /dev/null
@@ -1,129 +0,0 @@
-import string
-from Tkinter import *
-
-class SearchDialogBase:
-
-    title = "Search Dialog"
-    icon = "Search"
-    needwrapbutton = 1
-
-    def __init__(self, root, engine):
-        self.root = root
-        self.engine = engine
-        self.top = None
-
-    def open(self, text):
-        self.text = text
-        if not self.top:
-            self.create_widgets()
-        else:
-            self.top.deiconify()
-            self.top.tkraise()
-        self.ent.focus_set()
-        self.ent.selection_range(0, "end")
-        self.ent.icursor(0)
-        self.top.grab_set()
-
-    def close(self, event=None):
-        if self.top:
-            self.top.grab_release()
-            self.top.withdraw()
-
-    def create_widgets(self):
-        top = Toplevel(self.root)
-        top.bind("<Return>", self.default_command)
-        top.bind("<Escape>", self.close)
-        top.protocol("WM_DELETE_WINDOW", self.close)
-        top.wm_title(self.title)
-        top.wm_iconname(self.icon)
-        self.top = top
-
-        self.row = 0
-        self.top.grid_columnconfigure(0, weight=0)
-        self.top.grid_columnconfigure(1, weight=100)
-
-        self.create_entries()
-        self.create_option_buttons()
-        self.create_other_buttons()
-        return self.create_command_buttons()
-
-    def make_entry(self, label, var):
-        l = Label(self.top, text=label)
-        l.grid(row=self.row, col=0, sticky="w")
-        e = Entry(self.top, textvariable=var, exportselection=0)
-        e.grid(row=self.row, col=1, sticky="we")
-        self.row = self.row + 1
-        return e
-
-    def make_frame(self):
-        f = Frame(self.top)
-        f.grid(row=self.row, col=0, columnspan=2, sticky="we")
-        self.row = self.row + 1
-        return f
-
-    def make_button(self, label, command, isdef=0, side="left"):
-        b = Button(self.buttonframe,
-                   text=label, command=command,
-                   default=isdef and "active" or "normal")
-        b.pack(side=side)
-        return b
-
-    def create_entries(self):
-        self.ent = self.make_entry("Find:", self.engine.patvar)
-
-    def create_option_buttons(self):
-        f = self.make_frame()
-
-        btn = Checkbutton(f, anchor="w",
-                variable=self.engine.revar,
-                text="Regular expression")
-        btn.pack(side="left", fill="both")
-        if self.engine.isre():
-            btn.select()
-
-        btn = Checkbutton(f, anchor="w",
-                variable=self.engine.casevar,
-                text="Match case")
-        btn.pack(side="left", fill="both")
-        if self.engine.iscase():
-            btn.select()
-
-        btn = Checkbutton(f, anchor="w",
-                variable=self.engine.wordvar,
-                text="Whole word")
-        btn.pack(side="left", fill="both")
-        if self.engine.isword():
-            btn.select()
-
-        if self.needwrapbutton:
-            btn = Checkbutton(f, anchor="w",
-                    variable=self.engine.wrapvar,
-                    text="Wrap around")
-            btn.pack(side="left", fill="both")
-            if self.engine.iswrap():
-                btn.select()
-
-    def create_other_buttons(self):
-        f = self.make_frame()
-
-        lbl = Label(f, text="Direction: ")
-        lbl.pack(side="left")
-
-        btn = Radiobutton(f, anchor="w",
-                variable=self.engine.backvar, value=1,
-                text="Up")
-        btn.pack(side="left", fill="both")
-        if self.engine.isback():
-            btn.select()
-
-        btn = Radiobutton(f, anchor="w",
-                variable=self.engine.backvar, value=0,
-                text="Down")
-        btn.pack(side="left", fill="both")
-        if not self.engine.isback():
-            btn.select()
-
-    def create_command_buttons(self):
-        f = self.buttonframe = self.make_frame()
-        b = self.make_button("close", self.close, side="right")
-        b.lower()
diff --git a/Lib/idlelib/SearchEngine.py b/Lib/idlelib/SearchEngine.py
deleted file mode 100644 (file)
index e379751..0000000
+++ /dev/null
@@ -1,221 +0,0 @@
-import string
-import re
-from Tkinter import *
-import tkMessageBox
-
-def get(root):
-    if not hasattr(root, "_searchengine"):
-        root._searchengine = SearchEngine(root)
-        # XXX This will never garbage-collect -- who cares
-    return root._searchengine
-
-class SearchEngine:
-
-    def __init__(self, root):
-        self.root = root
-        # State shared by search, replace, and grep;
-        # the search dialogs bind these to UI elements.
-        self.patvar = StringVar(root)           # search pattern
-        self.revar = BooleanVar(root)           # regular expression?
-        self.casevar = BooleanVar(root)         # match case?
-        self.wordvar = BooleanVar(root)         # match whole word?
-        self.wrapvar = BooleanVar(root)         # wrap around buffer?
-        self.wrapvar.set(1)                     # (on by default)
-        self.backvar = BooleanVar(root)         # search backwards?
-
-    # Access methods
-
-    def getpat(self):
-        return self.patvar.get()
-
-    def setpat(self, pat):
-        self.patvar.set(pat)
-
-    def isre(self):
-        return self.revar.get()
-
-    def iscase(self):
-        return self.casevar.get()
-
-    def isword(self):
-        return self.wordvar.get()
-
-    def iswrap(self):
-        return self.wrapvar.get()
-
-    def isback(self):
-        return self.backvar.get()
-
-    # Higher level access methods
-
-    def getcookedpat(self):
-        pat = self.getpat()
-        if not self.isre():
-            pat = re.escape(pat)
-        if self.isword():
-            pat = r"\b%s\b" % pat
-        return pat
-
-    def getprog(self):
-        pat = self.getpat()
-        if not pat:
-            self.report_error(pat, "Empty regular expression")
-            return None
-        pat = self.getcookedpat()
-        flags = 0
-        if not self.iscase():
-            flags = flags | re.IGNORECASE
-        try:
-            prog = re.compile(pat, flags)
-        except re.error, what:
-            try:
-                msg, col = what
-            except:
-                msg = str(what)
-                col = -1
-            self.report_error(pat, msg, col)
-            return None
-        return prog
-
-    def report_error(self, pat, msg, col=-1):
-        # Derived class could overrid this with something fancier
-        msg = "Error: " + str(msg)
-        if pat:
-            msg = msg + "\np\Pattern: " + str(pat)
-        if col >= 0:
-            msg = msg + "\nOffset: " + str(col)
-        tkMessageBox.showerror("Regular expression error",
-                               msg, master=self.root)
-
-    def setcookedpat(self, pat):
-        if self.isre():
-            pat = re.escape(pat)
-        self.setpat(pat)
-
-    def search_text(self, text, prog=None, ok=0):
-        """Search a text widget for the pattern.
-
-        If prog is given, it should be the precompiled pattern.
-        Return a tuple (lineno, matchobj); None if not found.
-
-        This obeys the wrap and direction (back) settings.
-
-        The search starts at the selection (if there is one) or
-        at the insert mark (otherwise).  If the search is forward,
-        it starts at the right of the selection; for a backward
-        search, it starts at the left end.  An empty match exactly
-        at either end of the selection (or at the insert mark if
-        there is no selection) is ignored  unless the ok flag is true
-        -- this is done to guarantee progress.
-
-        If the search is allowed to wrap around, it will return the
-        original selection if (and only if) it is the only match.
-
-        """
-        if not prog:
-            prog = self.getprog()
-            if not prog:
-                return None # Compilation failed -- stop
-        wrap = self.wrapvar.get()
-        first, last = get_selection(text)
-        if self.isback():
-            if ok:
-                start = last
-            else:
-                start = first
-            line, col = get_line_col(start)
-            res = self.search_backward(text, prog, line, col, wrap, ok)
-        else:
-            if ok:
-                start = first
-            else:
-                start = last
-            line, col = get_line_col(start)
-            res = self.search_forward(text, prog, line, col, wrap, ok)
-        return res
-
-    def search_forward(self, text, prog, line, col, wrap, ok=0):
-        wrapped = 0
-        startline = line
-        chars = text.get("%d.0" % line, "%d.0" % (line+1))
-        while chars:
-            m = prog.search(chars[:-1], col)
-            if m:
-                if ok or m.end() > col:
-                    return line, m
-            line = line + 1
-            if wrapped and line > startline:
-                break
-            col = 0
-            ok = 1
-            chars = text.get("%d.0" % line, "%d.0" % (line+1))
-            if not chars and wrap:
-                wrapped = 1
-                wrap = 0
-                line = 1
-                chars = text.get("1.0", "2.0")
-        return None
-
-    def search_backward(self, text, prog, line, col, wrap, ok=0):
-        wrapped = 0
-        startline = line
-        chars = text.get("%d.0" % line, "%d.0" % (line+1))
-        while 1:
-            m = search_reverse(prog, chars[:-1], col)
-            if m:
-                if ok or m.start() < col:
-                    return line, m
-            line = line - 1
-            if wrapped and line < startline:
-                break
-            ok = 1
-            if line <= 0:
-                if not wrap:
-                    break
-                wrapped = 1
-                wrap = 0
-                pos = text.index("end-1c")
-                line, col = map(int, string.split(pos, "."))
-            chars = text.get("%d.0" % line, "%d.0" % (line+1))
-            col = len(chars) - 1
-        return None
-
-# Helper to search backwards in a string.
-# (Optimized for the case where the pattern isn't found.)
-
-def search_reverse(prog, chars, col):
-    m = prog.search(chars)
-    if not m:
-        return None
-    found = None
-    i, j = m.span()
-    while i < col and j <= col:
-        found = m
-        if i == j:
-            j = j+1
-        m = prog.search(chars, j)
-        if not m:
-            break
-        i, j = m.span()
-    return found
-
-# Helper to get selection end points, defaulting to insert mark.
-# Return a tuple of indices ("line.col" strings).
-
-def get_selection(text):
-    try:
-        first = text.index("sel.first")
-        last = text.index("sel.last")
-    except TclError:
-        first = last = None
-    if not first:
-        first = text.index("insert")
-    if not last:
-        last = first
-    return first, last
-
-# Helper to parse a text index into a (line, col) tuple.
-
-def get_line_col(index):
-    line, col = map(int, string.split(index, ".")) # Fails on invalid index
-    return line, col
diff --git a/Lib/idlelib/Separator.py b/Lib/idlelib/Separator.py
deleted file mode 100644 (file)
index 2645e57..0000000
+++ /dev/null
@@ -1,92 +0,0 @@
-from Tkinter import *
-
-class Separator:
-    
-    def __init__(self, master, orient, min=10, thickness=5, bg=None):
-        self.min = max(1, min)
-        self.thickness = max(1, thickness)
-        if orient in ("h", "horizontal"):
-            self.side = "left"
-            self.dim = "width"
-            self.dir = "x"
-            self.cursor = "sb_h_double_arrow"
-       elif orient in ("v", "vertical"):
-           self.side = "top"
-           self.dim = "height"
-           self.dir = "y"
-            self.cursor = "sb_v_double_arrow"
-       else:
-           raise ValueError, "Separator: orient should be h or v"
-       self.winfo_dim = "winfo_" + self.dim
-        self.master = master = Frame(master)
-        master.pack(expand=1, fill="both")
-        self.f1 = Frame(master)
-        self.f1.pack(expand=1, fill="both", side=self.side)
-        self.div = Frame(master, cursor=self.cursor)
-        self.div[self.dim] = self.thickness
-        self.div.pack(fill="both", side=self.side)
-        self.f2 = Frame(master)
-        self.f2.pack(expand=1, fill="both", side=self.side)
-        self.div.bind("<ButtonPress-1>", self.divider_press)
-        if bg:
-            ##self.f1["bg"] = bg
-            ##self.f2["bg"] = bg
-            self.div["bg"] = bg
-
-    def parts(self):
-        return self.f1, self.f2
-
-    def divider_press(self, event):
-        self.press_event = event
-        self.f1.pack_propagate(0)
-        self.f2.pack_propagate(0)
-        for f in self.f1, self.f2:
-            for dim in "width", "height":
-                f[dim] = getattr(f, "winfo_"+dim)()
-        self.div.bind("<Motion>", self.div_motion)
-        self.div.bind("<ButtonRelease-1>", self.div_release)
-        self.div.grab_set()
-
-    def div_motion(self, event):
-        delta = getattr(event, self.dir) - getattr(self.press_event, self.dir)
-        if delta:
-            dim1 = getattr(self.f1, self.winfo_dim)()
-            dim2 = getattr(self.f2, self.winfo_dim)()
-            delta = max(delta, self.min-dim1)
-            delta = min(delta, dim2-self.min)
-            dim1 = dim1 + delta
-            dim2 = dim2 - delta
-            self.f1[self.dim] = dim1
-            self.f2[self.dim] = dim2
-
-    def div_release(self, event):
-        self.div_motion(event)
-        self.div.unbind("<Motion>")
-        self.div.grab_release()
-
-class VSeparator(Separator):
-
-    def __init__(self, master, min=10, thickness=5, bg=None):
-        Separator.__init__(self, master, "v", min, thickness, bg)
-
-class HSeparator(Separator):
-
-    def __init__(self, master, min=10, thickness=5, bg=None):
-        Separator.__init__(self, master, "h", min, thickness, bg)
-
-def main():
-    root = Tk()
-    tlist = []
-    outer = HSeparator(root, bg="red")
-    for part in outer.parts():
-        inner = VSeparator(part, bg="blue")
-        for f in inner.parts():
-            t = Text(f, width=40, height=10, borderwidth=0)
-            t.pack(fill="both", expand=1)
-            tlist.append(t)
-    tlist[0].insert("1.0", "Make your own Mondrian!")
-    tlist[1].insert("1.0", "Move the colored dividers...")
-    root.mainloop()
-
-if __name__ == '__main__':
-    main()
diff --git a/Lib/idlelib/StackViewer.py b/Lib/idlelib/StackViewer.py
deleted file mode 100644 (file)
index 5b3c87a..0000000
+++ /dev/null
@@ -1,135 +0,0 @@
-import string
-from Tkinter import *
-import linecache
-
-from TreeWidget import TreeNode, TreeItem, ScrolledCanvas
-from ObjectBrowser import ObjectTreeItem, make_objecttreeitem
-from OldStackViewer import StackViewer, NamespaceViewer
-
-def StackBrowser(root, flist=None, stack=None):
-    top = Toplevel(root)
-    sc = ScrolledCanvas(top, bg="white", highlightthickness=0)
-    sc.frame.pack(expand=1, fill="both")
-    item = StackTreeItem(flist)
-    node = TreeNode(sc.canvas, None, item)
-    node.expand()
-
-class StackTreeItem(TreeItem):
-
-    def __init__(self, flist=None):
-        self.flist = flist
-        self.stack = get_stack()
-        self.text = get_exception()
-
-    def GetText(self):
-        return self.text
-
-    def GetSubList(self):
-        sublist = []
-        for info in self.stack:
-            item = FrameTreeItem(info, self.flist)
-            sublist.append(item)
-        return sublist
-
-class FrameTreeItem(TreeItem):
-
-    def __init__(self, info, flist):
-        self.info = info
-        self.flist = flist
-
-    def GetText(self):
-        frame, lineno = self.info
-        try:
-            modname = frame.f_globals["__name__"]
-        except:
-            modname = "?"
-        code = frame.f_code
-        filename = code.co_filename
-        funcname = code.co_name
-        sourceline = linecache.getline(filename, lineno)
-        sourceline = string.strip(sourceline)
-        if funcname in ("?", "", None):
-            item = "%s, line %d: %s" % (modname, lineno, sourceline)
-        else:
-            item = "%s.%s(...), line %d: %s" % (modname, funcname,
-                                             lineno, sourceline)
-##        if i == index:
-##            item = "> " + item
-        return item
-
-    def GetSubList(self):
-        frame, lineno = self.info
-        sublist = []
-        if frame.f_globals is not frame.f_locals:
-            item = VariablesTreeItem("<locals>", frame.f_locals, self.flist)
-            sublist.append(item)
-        item = VariablesTreeItem("<globals>", frame.f_globals, self.flist)
-        sublist.append(item)
-        return sublist
-
-    def OnDoubleClick(self):
-        if self.flist:
-            frame, lineno = self.info
-            filename = frame.f_code.co_filename
-            edit = self.flist.open(filename)
-            edit.gotoline(lineno)
-
-class VariablesTreeItem(ObjectTreeItem):
-
-    def GetText(self):
-        return self.labeltext
-
-    def GetLabelText(self):
-        return None
-
-    def IsExpandable(self):
-        return len(self.object) > 0
-
-    def keys(self):
-        return self.object.keys()
-
-    def GetSubList(self):
-        sublist = []
-        for key in self.keys():
-            try:
-                value = self.object[key]
-            except KeyError:
-                continue
-            def setfunction(value, key=key, object=self.object):
-                object[key] = value
-            item = make_objecttreeitem(key + " =", value, setfunction)
-            sublist.append(item)
-        return sublist
-        
-def get_stack(t=None, f=None):
-    if t is None:
-        t = sys.last_traceback
-    stack = []
-    if t and t.tb_frame is f:
-        t = t.tb_next
-    while f is not None:
-        stack.append((f, f.f_lineno))
-        if f is self.botframe:
-            break
-        f = f.f_back
-    stack.reverse()
-    while t is not None:
-        stack.append((t.tb_frame, t.tb_lineno))
-        t = t.tb_next
-    return stack
-
-def get_exception(type=None, value=None):
-    if type is None:
-        type = sys.last_type
-        value = sys.last_value
-    if hasattr(type, "__name__"):
-        type = type.__name__
-    s = str(type)
-    if value is not None:
-        s = s + ": " + str(value)
-    return s
-
-if __name__ == "__main__":
-    root = Tk()
-    root.withdraw()
-    StackBrowser(root)
diff --git a/Lib/idlelib/TODO.txt b/Lib/idlelib/TODO.txt
deleted file mode 100644 (file)
index 9701a87..0000000
+++ /dev/null
@@ -1,205 +0,0 @@
-
-TO DO:
-
-- improve debugger:
-    - manage breakpoints globally, allow bp deletion, tbreak, cbreak etc.
-    - real object browser
-    - help on how to use it (a simple help button will do wonders)
-    - performance?  (updates of large sets of locals are slow)
-    - better integration of "debug module"
-    - debugger should be global resource (attached to flist, not to shell)
-    - fix the stupid bug where you need to step twice
-    - display class name in stack viewer entries for methods
-    - suppress tracing through IDLE internals (e.g. print)
-    - add a button to suppress through a specific module or class or method
-- insert the initial current directory into sys.path
-- default directory attribute for each window instead of only for windows
-  that have an associated filename
-- command expansion from keywords, module contents, other buffers, etc.
-- "Recent documents" menu item
-- Filter region command
-- Optional horizontal scroll bar
-- more Emacsisms:
-    - ^K should cut to buffer
-    - M-[, M-] to move by paragraphs
-    - incremental search?
-- search should indicate wrap-around in some way
-- restructure state sensitive code to avoid testing flags all the time
-- persistent user state (e.g. window and cursor positions, bindings)
-- make backups when saving
-- check file mtimes at various points
-- Pluggable interface with RCS/CVS/Perforce/Clearcase
-- better help?
-- don't open second class browser on same module (nor second path browser)
-- unify class and path browsers
-- Need to define a standard way whereby one can determine one is running
-  inside IDLE (needed for Tk mainloop, also handy for $PYTHONSTARTUP)
-- Add more utility methods for use by extensions (a la get_selection)
-- Way to run command in totally separate interpreter (fork+os.system?)
-- Way to find definition of fully-qualified name:
-  In other words, select "UserDict.UserDict", hit some magic key and
-  it loads up UserDict.py and finds the first def or class for UserDict.
-- need a way to force colorization on/off
-- need a way to force auto-indent on/off
-
-Details:
-
-- when there's a selection, left/right arrow should go to either
-  end of the selection
-- ^O (on Unix -- open-line) should honor autoindent
-- after paste, show end of pasted text
-- on Windows, should turn short filename to long filename (not only in argv!)
-  (shouldn't this be done -- or undone -- by ntpath.normpath?)
-- new autoindent after colon even indents when the colon is in a comment!
-- sometimes forward slashes in pathname remain
-- sometimes star in window name remains in Windows menu
-- With unix bindings, ESC by itself is ignored
-- Sometimes for no apparent reason a selection from the cursor to the
-  end of the command buffer appears, which is hard to get rid of
-  because it stays when you are typing!
-- The Line/Col in the status bar can be wrong initially in PyShell
-
-Structural problems:
-
-- too much knowledge in FileList about EditorWindow (for example)
-- should add some primitives for accessing the selection etc.
-  to repeat cumbersome code over and over
-
-======================================================================
-
-Jeff Bauer suggests:
-
-- Open Module doesn't appear to handle hierarchical packages.
-- Class browser should also allow hierarchical packages.
-- Open and Open Module could benefit from a history,
-  either command line style, or Microsoft recent-file
-  style.
-- Add a Smalltalk-style inspector  (i.e. Tkinspect)
-
-The last suggestion is already a reality, but not yet
-integrated into IDLE.  I use a module called inspector.py,
-that used to be available from python.org(?)  It no longer
-appears to be in the contributed section, and the source
-has no author attribution.
-
-In any case, the code is useful for visually navigating
-an object's attributes, including its container hierarchy.
-
-    >>> from inspector import Tkinspect
-    >>> Tkinspect(None, myObject)
-
-Tkinspect could probably be extended and refined to
-integrate better into IDLE.
-
-======================================================================
-
-Comparison to PTUI
-------------------
-
-+ PTUI's help is better (HTML!)
-
-+ PTUI can attach a shell to any module
-
-+ PTUI has some more I/O commands:
-  open multiple
-  append
-  examine (what's that?)
-
-======================================================================
-
-Notes after trying to run Grail
--------------------------------
-
-- Grail does stuff to sys.path based on sys.argv[0]; you must set
-sys.argv[0] to something decent first (it is normally set to the path of
-the idle script).
-
-- Grail must be exec'ed in __main__ because that's imported by some
-other parts of Grail.
-
-- Grail uses a module called History and so does idle :-(
-
-======================================================================
-
-Robin Friedrich's items:
-
-Things I'd like to see:
-    - I'd like support for shift-click extending the selection. There's a
-      bug now that it doesn't work the first time you try it.
-    - Printing is needed. How hard can that be on Windows?
-    - The python-mode trick of autoindenting a line with <tab> is neat and
-      very handy.
-    - (someday) a spellchecker for docstrings and comments.
-    - a pagedown/up command key which moves to next class/def statement (top
-      level)
-    - split window capability
-    - DnD text relocation/copying
-
-Things I don't want to see.
-    - line numbers...  will probably slow things down way too much.
-    - Please use another icon for the tree browser leaf. The small snake
-      isn't cutting it.
-
-----------------------------------------------------------------------
-
-- Customizable views (multi-window or multi-pane).  (Markus Gritsch)
-
-- Being able to double click (maybe double right click) on a callable
-object in the editor which shows the source of the object, if
-possible.  (Gerrit Holl)
-
-- Hooks into the guts, like in Emacs.  (Mike Romberg)
-
-- Sharing the editor with a remote tutor.  (Martijn Faassen)
-
-- Multiple views on the same file.  (Tony J Ibbs)
-
-- Store breakpoints in a global (per-project) database (GvR); Dirk
-Heise adds: save some space-trimmed context and search around when
-reopening a file that might have been edited by someone else.
-
-- Capture menu events in extensions without changing the IDLE source.
-(Matthias Barmeier)
-
-- Use overlapping panels (a "notebook" in MFC terms I think) for info
-that doesn't need to be accessible simultaneously (e.g. HTML source
-and output).  Use multi-pane windows for info that does need to be
-shown together (e.g. class browser and source).  (Albert Brandl)
-
-- A project should invisibly track all symbols, for instant search,
-replace and cross-ref.  Projects should be allowed to span multiple
-directories, hosts, etc.  Project management files are placed in a
-directory you specify.  A global mapping between project names and
-project directories should exist [not so sure --GvR].  (Tim Peters)
-
-- Merge attr-tips and auto-expand.  (Mark Hammond, Tim Peters)
-
-- Python Shell should behave more like a "shell window" as users know
-it -- i.e. you can only edit the current command, and the cursor can't
-escape from the command area.  (Albert Brandl)
-
-- Set X11 class to "idle/Idle", set icon and title to something
-beginning with "idle" -- for window manangers.  (Randall Hopper)
-
-- Config files editable through a preferences dialog.  (me)
-
-- Config files still editable outside the preferences dialog.
-(Randall Hopper)
-
-- When you're editing a command in PyShell, and there are only blank
-lines below the cursor, hitting Return should ignore or delete those
-blank lines rather than deciding you're not on the last line.  (me)
-
-- Run command (F5 c.s.) should be more like Pythonwin's Run -- a
-dialog with options to give command line arguments, run the debugger,
-etc.  (me)
-
-- Shouldn't be able to delete part of the prompt (or any text before
-it) in the PyShell.  (Martijn Faassen)
-
-- Emacs style auto-fill (also smart about comments and strings).
-(Jeremy Hylton)
-
-- Output of Run Script should go to a separate output window, not to
-the shell window.  Output of separate runs should all go to the same
-window but clearly delimited.  (David Scherer)
diff --git a/Lib/idlelib/ToolTip.py b/Lib/idlelib/ToolTip.py
deleted file mode 100644 (file)
index 691f510..0000000
+++ /dev/null
@@ -1,87 +0,0 @@
-# Ideas gleaned from PySol
-
-import os
-from Tkinter import *
-
-class ToolTipBase:
-
-    def __init__(self, button):
-        self.button = button
-        self.tipwindow = None
-        self.id = None
-        self.x = self.y = 0
-        self._id1 = self.button.bind("<Enter>", self.enter)
-        self._id2 = self.button.bind("<Leave>", self.leave)
-        self._id3 = self.button.bind("<ButtonPress>", self.leave)
-
-    def enter(self, event=None):
-        self.schedule()
-
-    def leave(self, event=None):
-        self.unschedule()
-        self.hidetip()
-
-    def schedule(self):
-        self.unschedule()
-        self.id = self.button.after(1500, self.showtip)
-
-    def unschedule(self):
-        id = self.id
-        self.id = None
-        if id:
-            self.button.after_cancel(id)
-
-    def showtip(self):
-        if self.tipwindow:
-            return
-        # The tip window must be completely outside the button;
-        # otherwise when the mouse enters the tip window we get
-        # a leave event and it disappears, and then we get an enter
-        # event and it reappears, and so on forever :-(
-        x = self.button.winfo_rootx() + 20
-        y = self.button.winfo_rooty() + self.button.winfo_height() + 1
-        self.tipwindow = tw = Toplevel(self.button)
-        tw.wm_overrideredirect(1)
-        tw.wm_geometry("+%d+%d" % (x, y))
-        self.showcontents()
-
-    def showcontents(self, text="Your text here"):
-        # Override this in derived class
-        label = Label(self.tipwindow, text=text, justify=LEFT,
-                      background="#ffffe0", relief=SOLID, borderwidth=1)
-        label.pack()
-
-    def hidetip(self):
-        tw = self.tipwindow
-        self.tipwindow = None
-        if tw:
-            tw.destroy()
-
-class ToolTip(ToolTipBase):
-    def __init__(self, button, text):
-        ToolTipBase.__init__(self, button)
-        self.text = text
-    def showcontents(self):
-        ToolTipBase.showcontents(self, self.text)
-
-class ListboxToolTip(ToolTipBase):
-    def __init__(self, button, items):
-        ToolTipBase.__init__(self, button)
-        self.items = items
-    def showcontents(self):
-        listbox = Listbox(self.tipwindow, background="#ffffe0")
-        listbox.pack()
-        for item in self.items:
-            listbox.insert(END, item)
-
-def main():
-    # Test code
-    root = Tk()
-    b = Button(root, text="Hello", command=root.destroy)
-    b.pack()
-    root.update()
-    tip = ListboxToolTip(b, ["Hello", "world"])
-    
-    # root.mainloop() # not in idle
-
-main()
diff --git a/Lib/idlelib/TreeWidget.py b/Lib/idlelib/TreeWidget.py
deleted file mode 100644 (file)
index 60eefdc..0000000
+++ /dev/null
@@ -1,471 +0,0 @@
-# XXX TO DO:
-# - popup menu
-# - support partial or total redisplay
-# - key bindings (instead of quick-n-dirty bindings on Canvas):
-#   - up/down arrow keys to move focus around
-#   - ditto for page up/down, home/end
-#   - left/right arrows to expand/collapse & move out/in
-# - more doc strings
-# - add icons for "file", "module", "class", "method"; better "python" icon
-# - callback for selection???
-# - multiple-item selection
-# - tooltips
-# - redo geometry without magic numbers
-# - keep track of object ids to allow more careful cleaning
-# - optimize tree redraw after expand of subnode
-
-import os
-import sys
-import string
-from Tkinter import *
-import imp
-
-import ZoomHeight
-
-ICONDIR = "Icons"
-
-# Look for Icons subdirectory in the same directory as this module
-try:
-    _icondir = os.path.join(os.path.dirname(__file__), ICONDIR)
-except NameError:
-    _icondir = ICONDIR
-if os.path.isdir(_icondir):
-    ICONDIR = _icondir
-elif not os.path.isdir(ICONDIR):
-    raise RuntimeError, "can't find icon directory (%s)" % `ICONDIR`
-
-def listicons(icondir=ICONDIR):
-    """Utility to display the available icons."""
-    root = Tk()
-    import glob
-    list = glob.glob(os.path.join(icondir, "*.gif"))
-    list.sort()
-    images = []
-    row = column = 0
-    for file in list:
-        name = os.path.splitext(os.path.basename(file))[0]
-        image = PhotoImage(file=file, master=root)
-        images.append(image)
-        label = Label(root, image=image, bd=1, relief="raised")
-        label.grid(row=row, column=column)
-        label = Label(root, text=name)
-        label.grid(row=row+1, column=column)
-        column = column + 1
-        if column >= 10:
-            row = row+2
-            column = 0
-    root.images = images
-
-
-class TreeNode:
-
-    def __init__(self, canvas, parent, item):
-        self.canvas = canvas
-        self.parent = parent
-        self.item = item
-        self.state = 'collapsed'
-        self.selected = 0
-        self.children = []
-        self.x = self.y = None
-        self.iconimages = {} # cache of PhotoImage instances for icons
-
-    def destroy(self):
-        for c in self.children[:]:
-            self.children.remove(c)
-            c.destroy()
-        self.parent = None
-
-    def geticonimage(self, name):
-        try:
-            return self.iconimages[name]
-        except KeyError:
-            pass
-        file, ext = os.path.splitext(name)
-        ext = ext or ".gif"
-        fullname = os.path.join(ICONDIR, file + ext)
-        image = PhotoImage(master=self.canvas, file=fullname)
-        self.iconimages[name] = image
-        return image
-
-    def select(self, event=None):
-        if self.selected:
-            return
-        self.deselectall()
-        self.selected = 1
-        self.canvas.delete(self.image_id)
-        self.drawicon()
-        self.drawtext()
-
-    def deselect(self, event=None):
-        if not self.selected:
-            return
-        self.selected = 0
-        self.canvas.delete(self.image_id)
-        self.drawicon()
-        self.drawtext()
-
-    def deselectall(self):
-        if self.parent:
-            self.parent.deselectall()
-        else:
-            self.deselecttree()
-
-    def deselecttree(self):
-        if self.selected:
-            self.deselect()
-        for child in self.children:
-            child.deselecttree()
-
-    def flip(self, event=None):
-        if self.state == 'expanded':
-            self.collapse()
-        else:
-            self.expand()
-        self.item.OnDoubleClick()
-        return "break"
-
-    def expand(self, event=None):
-        if not self.item._IsExpandable():
-            return
-        if self.state != 'expanded':
-            self.state = 'expanded'
-            self.update()
-            self.view()
-
-    def collapse(self, event=None):
-        if self.state != 'collapsed':
-            self.state = 'collapsed'
-            self.update()
-
-    def view(self):
-        top = self.y - 2
-        bottom = self.lastvisiblechild().y + 17
-        height = bottom - top
-        visible_top = self.canvas.canvasy(0)
-        visible_height = self.canvas.winfo_height()
-        visible_bottom = self.canvas.canvasy(visible_height)
-        if visible_top <= top and bottom <= visible_bottom:
-            return
-        x0, y0, x1, y1 = self.canvas._getints(self.canvas['scrollregion'])
-        if top >= visible_top and height <= visible_height:
-            fraction = top + height - visible_height
-        else:
-            fraction = top
-        fraction = float(fraction) / y1
-        self.canvas.yview_moveto(fraction)
-
-    def lastvisiblechild(self):
-        if self.children and self.state == 'expanded':
-            return self.children[-1].lastvisiblechild()
-        else:
-            return self
-
-    def update(self):
-        if self.parent:
-            self.parent.update()
-        else:
-            oldcursor = self.canvas['cursor']
-            self.canvas['cursor'] = "watch"
-            self.canvas.update()
-            self.canvas.delete(ALL)     # XXX could be more subtle
-            self.draw(7, 2)
-            x0, y0, x1, y1 = self.canvas.bbox(ALL)
-            self.canvas.configure(scrollregion=(0, 0, x1, y1))
-            self.canvas['cursor'] = oldcursor
-
-    def draw(self, x, y):
-        # XXX This hard-codes too many geometry constants!
-        self.x, self.y = x, y
-        self.drawicon()
-        self.drawtext()
-        if self.state != 'expanded':
-            return y+17
-        # draw children
-        if not self.children:
-            sublist = self.item._GetSubList()
-            if not sublist:
-                # _IsExpandable() was mistaken; that's allowed
-                return y+17
-            for item in sublist:
-                child = TreeNode(self.canvas, self, item)
-                self.children.append(child)
-        cx = x+20
-        cy = y+17
-        cylast = 0
-        for child in self.children:
-            cylast = cy
-            self.canvas.create_line(x+9, cy+7, cx, cy+7, fill="gray50")
-            cy = child.draw(cx, cy)
-            if child.item._IsExpandable():
-                if child.state == 'expanded':
-                    iconname = "minusnode"
-                    callback = child.collapse
-                else:
-                    iconname = "plusnode"
-                    callback = child.expand
-                image = self.geticonimage(iconname)
-                id = self.canvas.create_image(x+9, cylast+7, image=image)
-                # XXX This leaks bindings until canvas is deleted:
-                self.canvas.tag_bind(id, "<1>", callback)
-                self.canvas.tag_bind(id, "<Double-1>", lambda x: None)
-        id = self.canvas.create_line(x+9, y+10, x+9, cylast+7,
-            ##stipple="gray50",     # XXX Seems broken in Tk 8.0.x
-            fill="gray50")
-        self.canvas.tag_lower(id) # XXX .lower(id) before Python 1.5.2
-        return cy
-
-    def drawicon(self):
-        if self.selected:
-            imagename = (self.item.GetSelectedIconName() or
-                         self.item.GetIconName() or
-                         "openfolder")
-        else:
-            imagename = self.item.GetIconName() or "folder"
-        image = self.geticonimage(imagename)
-        id = self.canvas.create_image(self.x, self.y, anchor="nw", image=image)
-        self.image_id = id
-        self.canvas.tag_bind(id, "<1>", self.select)
-        self.canvas.tag_bind(id, "<Double-1>", self.flip)
-
-    def drawtext(self):
-        textx = self.x+20-1
-        texty = self.y-1
-        labeltext = self.item.GetLabelText()
-        if labeltext:
-            id = self.canvas.create_text(textx, texty, anchor="nw",
-                                         text=labeltext)
-            self.canvas.tag_bind(id, "<1>", self.select)
-            self.canvas.tag_bind(id, "<Double-1>", self.flip)
-            x0, y0, x1, y1 = self.canvas.bbox(id)
-            textx = max(x1, 200) + 10
-        text = self.item.GetText() or "<no text>"
-        try:
-            self.entry
-        except AttributeError:
-            pass
-        else:
-            self.edit_finish()
-        try:
-            label = self.label
-        except AttributeError:
-            # padding carefully selected (on Windows) to match Entry widget:
-            self.label = Label(self.canvas, text=text, bd=0, padx=2, pady=2)
-        if self.selected:
-            self.label.configure(fg="white", bg="darkblue")
-        else:
-            self.label.configure(fg="black", bg="white")
-        id = self.canvas.create_window(textx, texty,
-                                       anchor="nw", window=self.label)
-        self.label.bind("<1>", self.select_or_edit)
-        self.label.bind("<Double-1>", self.flip)
-        self.text_id = id
-
-    def select_or_edit(self, event=None):
-        if self.selected and self.item.IsEditable():
-            self.edit(event)
-        else:
-            self.select(event)
-
-    def edit(self, event=None):
-        self.entry = Entry(self.label, bd=0, highlightthickness=1, width=0)
-        self.entry.insert(0, self.label['text'])
-        self.entry.selection_range(0, END)
-        self.entry.pack(ipadx=5)
-        self.entry.focus_set()
-        self.entry.bind("<Return>", self.edit_finish)
-        self.entry.bind("<Escape>", self.edit_cancel)
-
-    def edit_finish(self, event=None):
-        try:
-            entry = self.entry
-            del self.entry
-        except AttributeError:
-            return
-        text = entry.get()
-        entry.destroy()
-        if text and text != self.item.GetText():
-            self.item.SetText(text)
-        text = self.item.GetText()
-        self.label['text'] = text
-        self.drawtext()
-        self.canvas.focus_set()
-
-    def edit_cancel(self, event=None):
-        self.drawtext()
-        self.canvas.focus_set()
-
-
-class TreeItem:
-
-    """Abstract class representing tree items.
-
-    Methods should typically be overridden, otherwise a default action
-    is used.
-
-    """
-
-    def __init__(self):
-        """Constructor.  Do whatever you need to do."""
-
-    def GetText(self):
-        """Return text string to display."""
-
-    def GetLabelText(self):
-        """Return label text string to display in front of text (if any)."""
-
-    expandable = None
-
-    def _IsExpandable(self):
-        """Do not override!  Called by TreeNode."""
-        if self.expandable is None:
-            self.expandable = self.IsExpandable()
-        return self.expandable
-
-    def IsExpandable(self):
-        """Return whether there are subitems."""
-        return 1
-
-    def _GetSubList(self):
-        """Do not override!  Called by TreeNode."""
-        if not self.IsExpandable():
-            return []
-        sublist = self.GetSubList()
-        if not sublist:
-            self.expandable = 0
-        return sublist
-
-    def IsEditable(self):
-        """Return whether the item's text may be edited."""
-
-    def SetText(self, text):
-        """Change the item's text (if it is editable)."""
-
-    def GetIconName(self):
-        """Return name of icon to be displayed normally."""
-
-    def GetSelectedIconName(self):
-        """Return name of icon to be displayed when selected."""
-
-    def GetSubList(self):
-        """Return list of items forming sublist."""
-
-    def OnDoubleClick(self):
-        """Called on a double-click on the item."""
-
-
-# Example application
-
-class FileTreeItem(TreeItem):
-
-    """Example TreeItem subclass -- browse the file system."""
-
-    def __init__(self, path):
-        self.path = path
-
-    def GetText(self):
-        return os.path.basename(self.path) or self.path
-
-    def IsEditable(self):
-        return os.path.basename(self.path) != ""
-
-    def SetText(self, text):
-        newpath = os.path.dirname(self.path)
-        newpath = os.path.join(newpath, text)
-        if os.path.dirname(newpath) != os.path.dirname(self.path):
-            return
-        try:
-            os.rename(self.path, newpath)
-            self.path = newpath
-        except os.error:
-            pass
-
-    def GetIconName(self):
-        if not self.IsExpandable():
-            return "python" # XXX wish there was a "file" icon
-
-    def IsExpandable(self):
-        return os.path.isdir(self.path)
-
-    def GetSubList(self):
-        try:
-            names = os.listdir(self.path)
-        except os.error:
-            return []
-        names.sort(lambda a, b: cmp(os.path.normcase(a), os.path.normcase(b)))
-        sublist = []
-        for name in names:
-            item = FileTreeItem(os.path.join(self.path, name))
-            sublist.append(item)
-        return sublist
-
-
-# A canvas widget with scroll bars and some useful bindings
-
-class ScrolledCanvas:
-    def __init__(self, master, **opts):
-        if not opts.has_key('yscrollincrement'):
-            opts['yscrollincrement'] = 17
-        self.master = master
-        self.frame = Frame(master)
-        self.frame.rowconfigure(0, weight=1)
-        self.frame.columnconfigure(0, weight=1)
-        self.canvas = apply(Canvas, (self.frame,), opts)
-        self.canvas.grid(row=0, column=0, sticky="nsew")
-        self.vbar = Scrollbar(self.frame, name="vbar")
-        self.vbar.grid(row=0, column=1, sticky="nse")
-        self.hbar = Scrollbar(self.frame, name="hbar", orient="horizontal")
-        self.hbar.grid(row=1, column=0, sticky="ews")
-        self.canvas['yscrollcommand'] = self.vbar.set
-        self.vbar['command'] = self.canvas.yview
-        self.canvas['xscrollcommand'] = self.hbar.set
-        self.hbar['command'] = self.canvas.xview
-        self.canvas.bind("<Key-Prior>", self.page_up)
-        self.canvas.bind("<Key-Next>", self.page_down)
-        self.canvas.bind("<Key-Up>", self.unit_up)
-        self.canvas.bind("<Key-Down>", self.unit_down)
-        if isinstance(master, Toplevel) or isinstance(master, Tk):
-            self.canvas.bind("<Alt-F2>", self.zoom_height)
-        self.canvas.focus_set()
-    def page_up(self, event):
-        self.canvas.yview_scroll(-1, "page")
-        return "break"
-    def page_down(self, event):
-        self.canvas.yview_scroll(1, "page")
-        return "break"
-    def unit_up(self, event):
-        self.canvas.yview_scroll(-1, "unit")
-        return "break"
-    def unit_down(self, event):
-        self.canvas.yview_scroll(1, "unit")
-        return "break"
-    def zoom_height(self, event):
-        ZoomHeight.zoom_height(self.master)
-        return "break"
-
-
-# Testing functions
-
-def test():
-    import PyShell
-    root = Toplevel(PyShell.root)
-    root.configure(bd=0, bg="yellow")
-    root.focus_set()
-    sc = ScrolledCanvas(root, bg="white", highlightthickness=0, takefocus=1)
-    sc.frame.pack(expand=1, fill="both")
-    item = FileTreeItem("C:/windows/desktop")
-    node = TreeNode(sc.canvas, None, item)
-    node.expand()
-
-def test2():
-    # test w/o scrolling canvas
-    root = Tk()
-    root.configure(bd=0)
-    canvas = Canvas(root, bg="white", highlightthickness=0)
-    canvas.pack(expand=1, fill="both")
-    item = FileTreeItem(os.curdir)
-    node = TreeNode(canvas, None, item)
-    node.update()
-    canvas.focus_set()
-
-if __name__ == '__main__':
-    test()
diff --git a/Lib/idlelib/UndoDelegator.py b/Lib/idlelib/UndoDelegator.py
deleted file mode 100644 (file)
index ec7af81..0000000
+++ /dev/null
@@ -1,352 +0,0 @@
-import sys
-import string
-from Tkinter import *
-from Delegator import Delegator
-
-#$ event <<redo>>
-#$ win <Control-y>
-#$ unix <Alt-z>
-
-#$ event <<undo>>
-#$ win <Control-z>
-#$ unix <Control-z>
-
-#$ event <<dump-undo-state>>
-#$ win <Control-backslash>
-#$ unix <Control-backslash>
-
-
-class UndoDelegator(Delegator):
-
-    max_undo = 1000
-
-    def __init__(self):
-        Delegator.__init__(self)
-        self.reset_undo()
-
-    def setdelegate(self, delegate):
-        if self.delegate is not None:
-            self.unbind("<<undo>>")
-            self.unbind("<<redo>>")
-            self.unbind("<<dump-undo-state>>")
-        Delegator.setdelegate(self, delegate)
-        if delegate is not None:
-            self.bind("<<undo>>", self.undo_event)
-            self.bind("<<redo>>", self.redo_event)
-            self.bind("<<dump-undo-state>>", self.dump_event)
-
-    def dump_event(self, event):
-        from pprint import pprint
-        pprint(self.undolist[:self.pointer])
-        print "pointer:", self.pointer,
-        print "saved:", self.saved,
-        print "can_merge:", self.can_merge,
-        print "get_saved():", self.get_saved()
-        pprint(self.undolist[self.pointer:])
-        return "break"
-
-    def reset_undo(self):
-        self.was_saved = -1
-        self.pointer = 0
-        self.undolist = []
-        self.undoblock = 0  # or a CommandSequence instance
-        self.set_saved(1)
-
-    def set_saved(self, flag):
-        if flag:
-            self.saved = self.pointer
-        else:
-            self.saved = -1
-        self.can_merge = 0
-        self.check_saved()
-
-    def get_saved(self):
-        return self.saved == self.pointer
-
-    saved_change_hook = None
-
-    def set_saved_change_hook(self, hook):
-        self.saved_change_hook = hook
-
-    was_saved = -1
-
-    def check_saved(self):
-        is_saved = self.get_saved()
-        if is_saved != self.was_saved:
-            self.was_saved = is_saved
-            if self.saved_change_hook:
-                self.saved_change_hook()
-
-    def insert(self, index, chars, tags=None):
-        self.addcmd(InsertCommand(index, chars, tags))
-
-    def delete(self, index1, index2=None):
-        self.addcmd(DeleteCommand(index1, index2))
-
-    # Clients should call undo_block_start() and undo_block_stop()
-    # around a sequence of editing cmds to be treated as a unit by
-    # undo & redo.  Nested matching calls are OK, and the inner calls
-    # then act like nops.  OK too if no editing cmds, or only one
-    # editing cmd, is issued in between:  if no cmds, the whole
-    # sequence has no effect; and if only one cmd, that cmd is entered
-    # directly into the undo list, as if undo_block_xxx hadn't been
-    # called.  The intent of all that is to make this scheme easy
-    # to use:  all the client has to worry about is making sure each
-    # _start() call is matched by a _stop() call.
-
-    def undo_block_start(self):
-        if self.undoblock == 0:
-            self.undoblock = CommandSequence()
-        self.undoblock.bump_depth()
-
-    def undo_block_stop(self):
-        if self.undoblock.bump_depth(-1) == 0:
-            cmd = self.undoblock
-            self.undoblock = 0
-            if len(cmd) > 0:
-                if len(cmd) == 1:
-                    # no need to wrap a single cmd
-                    cmd = cmd.getcmd(0)
-                # this blk of cmds, or single cmd, has already
-                # been done, so don't execute it again
-                self.addcmd(cmd, 0)
-
-    def addcmd(self, cmd, execute=1):
-        if execute:
-            cmd.do(self.delegate)
-        if self.undoblock != 0:
-            self.undoblock.append(cmd)
-            return
-        if self.can_merge and self.pointer > 0:
-            lastcmd = self.undolist[self.pointer-1]
-            if lastcmd.merge(cmd):
-                return
-        self.undolist[self.pointer:] = [cmd]
-        if self.saved > self.pointer:
-            self.saved = -1
-        self.pointer = self.pointer + 1
-        if len(self.undolist) > self.max_undo:
-            ##print "truncating undo list"
-            del self.undolist[0]
-            self.pointer = self.pointer - 1
-            if self.saved >= 0:
-                self.saved = self.saved - 1
-        self.can_merge = 1
-        self.check_saved()
-
-    def undo_event(self, event):
-        if self.pointer == 0:
-            self.bell()
-            return "break"
-        cmd = self.undolist[self.pointer - 1]
-        cmd.undo(self.delegate)
-        self.pointer = self.pointer - 1
-        self.can_merge = 0
-        self.check_saved()
-        return "break"
-
-    def redo_event(self, event):
-        if self.pointer >= len(self.undolist):
-            self.bell()
-            return "break"
-        cmd = self.undolist[self.pointer]
-        cmd.redo(self.delegate)
-        self.pointer = self.pointer + 1
-        self.can_merge = 0
-        self.check_saved()
-        return "break"
-
-
-class Command:
-
-    # Base class for Undoable commands
-
-    tags = None
-
-    def __init__(self, index1, index2, chars, tags=None):
-        self.marks_before = {}
-        self.marks_after = {}
-        self.index1 = index1
-        self.index2 = index2
-        self.chars = chars
-        if tags:
-            self.tags = tags
-
-    def __repr__(self):
-        s = self.__class__.__name__
-        t = (self.index1, self.index2, self.chars, self.tags)
-        if self.tags is None:
-            t = t[:-1]
-        return s + `t`
-
-    def do(self, text):
-        pass
-
-    def redo(self, text):
-        pass
-
-    def undo(self, text):
-        pass
-
-    def merge(self, cmd):
-        return 0
-
-    def save_marks(self, text):
-        marks = {}
-        for name in text.mark_names():
-            if name != "insert" and name != "current":
-                marks[name] = text.index(name)
-        return marks
-
-    def set_marks(self, text, marks):
-        for name, index in marks.items():
-            text.mark_set(name, index)
-
-
-class InsertCommand(Command):
-
-    # Undoable insert command
-
-    def __init__(self, index1, chars, tags=None):
-        Command.__init__(self, index1, None, chars, tags)
-
-    def do(self, text):
-        self.marks_before = self.save_marks(text)
-        self.index1 = text.index(self.index1)
-        if text.compare(self.index1, ">", "end-1c"):
-            # Insert before the final newline
-            self.index1 = text.index("end-1c")
-        text.insert(self.index1, self.chars, self.tags)
-        self.index2 = text.index("%s+%dc" % (self.index1, len(self.chars)))
-        self.marks_after = self.save_marks(text)
-        ##sys.__stderr__.write("do: %s\n" % self)
-
-    def redo(self, text):
-        text.mark_set('insert', self.index1)
-        text.insert(self.index1, self.chars, self.tags)
-        self.set_marks(text, self.marks_after)
-        text.see('insert')
-        ##sys.__stderr__.write("redo: %s\n" % self)
-
-    def undo(self, text):
-        text.mark_set('insert', self.index1)
-        text.delete(self.index1, self.index2)
-        self.set_marks(text, self.marks_before)
-        text.see('insert')
-        ##sys.__stderr__.write("undo: %s\n" % self)
-
-    def merge(self, cmd):
-        if self.__class__ is not cmd.__class__:
-            return 0
-        if self.index2 != cmd.index1:
-            return 0
-        if self.tags != cmd.tags:
-            return 0
-        if len(cmd.chars) != 1:
-            return 0
-        if self.chars and \
-           self.classify(self.chars[-1]) != self.classify(cmd.chars):
-            return 0
-        self.index2 = cmd.index2
-        self.chars = self.chars + cmd.chars
-        return 1
-
-    alphanumeric = string.letters + string.digits + "_"
-
-    def classify(self, c):
-        if c in self.alphanumeric:
-            return "alphanumeric"
-        if c == "\n":
-            return "newline"
-        return "punctuation"
-
-
-class DeleteCommand(Command):
-
-    # Undoable delete command
-
-    def __init__(self, index1, index2=None):
-        Command.__init__(self, index1, index2, None, None)
-
-    def do(self, text):
-        self.marks_before = self.save_marks(text)
-        self.index1 = text.index(self.index1)
-        if self.index2:
-            self.index2 = text.index(self.index2)
-        else:
-            self.index2 = text.index(self.index1 + " +1c")
-        if text.compare(self.index2, ">", "end-1c"):
-            # Don't delete the final newline
-            self.index2 = text.index("end-1c")
-        self.chars = text.get(self.index1, self.index2)
-        text.delete(self.index1, self.index2)
-        self.marks_after = self.save_marks(text)
-        ##sys.__stderr__.write("do: %s\n" % self)
-
-    def redo(self, text):
-        text.mark_set('insert', self.index1)
-        text.delete(self.index1, self.index2)
-        self.set_marks(text, self.marks_after)
-        text.see('insert')
-        ##sys.__stderr__.write("redo: %s\n" % self)
-
-    def undo(self, text):
-        text.mark_set('insert', self.index1)
-        text.insert(self.index1, self.chars)
-        self.set_marks(text, self.marks_before)
-        text.see('insert')
-        ##sys.__stderr__.write("undo: %s\n" % self)
-
-class CommandSequence(Command):
-
-    # Wrapper for a sequence of undoable cmds to be undone/redone
-    # as a unit
-
-    def __init__(self):
-        self.cmds = []
-        self.depth = 0
-
-    def __repr__(self):
-        s = self.__class__.__name__
-        strs = []
-        for cmd in self.cmds:
-            strs.append("    " + `cmd`)
-        return s + "(\n" + string.join(strs, ",\n") + "\n)"
-
-    def __len__(self):
-        return len(self.cmds)
-
-    def append(self, cmd):
-        self.cmds.append(cmd)
-
-    def getcmd(self, i):
-        return self.cmds[i]
-
-    def redo(self, text):
-        for cmd in self.cmds:
-            cmd.redo(text)
-
-    def undo(self, text):
-        cmds = self.cmds[:]
-        cmds.reverse()
-        for cmd in cmds:
-            cmd.undo(text)
-
-    def bump_depth(self, incr=1):
-        self.depth = self.depth + incr
-        return self.depth
-
-def main():
-    from Percolator import Percolator
-    root = Tk()
-    root.wm_protocol("WM_DELETE_WINDOW", root.quit)
-    text = Text()
-    text.pack()
-    text.focus_set()
-    p = Percolator(text)
-    d = UndoDelegator()
-    p.insertfilter(d)
-    root.mainloop()
-
-if __name__ == "__main__":
-    main()
diff --git a/Lib/idlelib/WidgetRedirector.py b/Lib/idlelib/WidgetRedirector.py
deleted file mode 100644 (file)
index b49ccf1..0000000
+++ /dev/null
@@ -1,92 +0,0 @@
-from Tkinter import *
-
-
-class WidgetRedirector:
-
-    """Support for redirecting arbitrary widget subcommands."""
-
-    def __init__(self, widget):
-        self.dict = {}
-        self.widget = widget
-        self.tk = tk = widget.tk
-        w = widget._w
-        self.orig = w + "_orig"
-        tk.call("rename", w, self.orig)
-        tk.createcommand(w, self.dispatch)
-
-    def __repr__(self):
-        return "WidgetRedirector(%s<%s>)" % (self.widget.__class__.__name__,
-                                             self.widget._w)
-
-    def close(self):
-        for name in self.dict.keys():
-            self.unregister(name)
-        widget = self.widget; del self.widget
-        orig = self.orig; del self.orig
-        tk = widget.tk
-        w = widget._w
-        tk.deletecommand(w)
-        tk.call("rename", orig, w)
-
-    def register(self, name, function):
-        if self.dict.has_key(name):
-            previous = dict[name]
-        else:
-            previous = OriginalCommand(self, name)
-        self.dict[name] = function
-        setattr(self.widget, name, function)
-        return previous
-
-    def unregister(self, name):
-        if self.dict.has_key(name):
-            function = self.dict[name]
-            del self.dict[name]
-            if hasattr(self.widget, name):
-                delattr(self.widget, name)
-            return function
-        else:
-            return None
-
-    def dispatch(self, cmd, *args):
-        m = self.dict.get(cmd)
-        try:
-            if m:
-                return apply(m, args)
-            else:
-                return self.tk.call((self.orig, cmd) + args)
-        except TclError:
-            return ""
-
-
-class OriginalCommand:
-
-    def __init__(self, redir, name):
-        self.redir = redir
-        self.name = name
-        self.tk = redir.tk
-        self.orig = redir.orig
-        self.tk_call = self.tk.call
-        self.orig_and_name = (self.orig, self.name)
-
-    def __repr__(self):
-        return "OriginalCommand(%s, %s)" % (`self.redir`, `self.name`)
-
-    def __call__(self, *args):
-        return self.tk_call(self.orig_and_name + args)
-
-
-def main():
-    root = Tk()
-    text = Text()
-    text.pack()
-    text.focus_set()
-    redir = WidgetRedirector(text)
-    global orig_insert
-    def my_insert(*args):
-        print "insert", args
-        apply(orig_insert, args)
-    orig_insert = redir.register("insert", my_insert)
-    root.mainloop()
-
-if __name__ == "__main__":
-    main()
diff --git a/Lib/idlelib/WindowList.py b/Lib/idlelib/WindowList.py
deleted file mode 100644 (file)
index 6de3e58..0000000
+++ /dev/null
@@ -1,85 +0,0 @@
-from Tkinter import *
-
-class WindowList:
-
-    def __init__(self):
-        self.dict = {}
-        self.callbacks = []
-
-    def add(self, window):
-        window.after_idle(self.call_callbacks)
-        self.dict[str(window)] = window
-
-    def delete(self, window):
-        try:
-            del self.dict[str(window)]
-        except KeyError:
-            # Sometimes, destroy() is called twice
-            pass
-        self.call_callbacks()
-
-    def add_windows_to_menu(self,  menu):
-        list = []
-        for key in self.dict.keys():
-            window = self.dict[key]
-            try:
-                title = window.get_title()
-            except TclError:
-                continue
-            list.append((title, window))
-        list.sort()
-        for title, window in list:
-            if title == "Python Shell":
-                # Hack -- until we have a better way to this
-                continue
-            menu.add_command(label=title, command=window.wakeup)
-
-    def register_callback(self, callback):
-        self.callbacks.append(callback)
-
-    def unregister_callback(self, callback):
-        try:
-           self.callbacks.remove(callback)
-        except ValueError:
-            pass
-
-    def call_callbacks(self):
-        for callback in self.callbacks:
-            try:
-                callback()
-            except:
-                print "warning: callback failed in WindowList", \
-                      sys.exc_type, ":", sys.exc_value
-
-registry = WindowList()
-
-add_windows_to_menu = registry.add_windows_to_menu
-register_callback = registry.register_callback
-unregister_callback = registry.unregister_callback
-
-
-class ListedToplevel(Toplevel):
-
-    def __init__(self, master, **kw):
-        Toplevel.__init__(self, master, kw)
-        registry.add(self)
-
-    def destroy(self):
-        registry.delete(self)
-        Toplevel.destroy(self)
-
-    def get_title(self):
-        # Subclass can override
-        return self.wm_title()
-
-    def wakeup(self):
-        try:
-            if self.wm_state() == "iconic":
-                self.wm_deiconify()
-            else:
-                self.tkraise()
-            self.focus_set()
-        except TclError:
-            # This can happen when the window menu was torn off.
-            # Simply ignore it.
-            pass
diff --git a/Lib/idlelib/ZoomHeight.py b/Lib/idlelib/ZoomHeight.py
deleted file mode 100644 (file)
index ecc306a..0000000
+++ /dev/null
@@ -1,46 +0,0 @@
-# Sample extension: zoom a window to maximum height
-
-import re
-import sys
-
-class ZoomHeight:
-
-    menudefs = [
-        ('windows', [
-            ('_Zoom Height', '<<zoom-height>>'),
-         ])
-    ]
-
-    windows_keydefs = {
-        '<<zoom-height>>': ['<Alt-F2>'],
-    }
-    unix_keydefs = {
-        '<<zoom-height>>': ['<Control-x><Control-z>'],
-    }
-
-    def __init__(self, editwin):
-        self.editwin = editwin
-
-    def zoom_height_event(self, event):
-        top = self.editwin.top
-        zoom_height(top)
-
-def zoom_height(top):
-    geom = top.wm_geometry()
-    m = re.match(r"(\d+)x(\d+)\+(-?\d+)\+(-?\d+)", geom)
-    if not m:
-        top.bell()
-        return
-    width, height, x, y = map(int, m.groups())
-    newheight = top.winfo_screenheight()
-    if sys.platform == 'win32':
-        newy = 0
-        newheight = newheight - 72
-    else:
-        newy = 24
-        newheight = newheight - 96
-    if height >= newheight:
-        newgeom = ""
-    else:
-        newgeom = "%dx%d+%d+%d" % (width, newheight, x, newy)
-    top.wm_geometry(newgeom)
diff --git a/Lib/idlelib/__init__.py b/Lib/idlelib/__init__.py
deleted file mode 100644 (file)
index 4c5b567..0000000
+++ /dev/null
@@ -1 +0,0 @@
-# Dummy file to make this a potential package.
diff --git a/Lib/idlelib/config-unix.txt b/Lib/idlelib/config-unix.txt
deleted file mode 100644 (file)
index be9fa81..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-[EditorWindow]
-font-name= courier
-font-size= 10
diff --git a/Lib/idlelib/config-win.txt b/Lib/idlelib/config-win.txt
deleted file mode 100644 (file)
index 9faa635..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-[EditorWindow]
-font-name: courier new
-font-size: 10
diff --git a/Lib/idlelib/config.txt b/Lib/idlelib/config.txt
deleted file mode 100644 (file)
index 586a8d8..0000000
+++ /dev/null
@@ -1,66 +0,0 @@
-# IDLE reads several config files to determine user preferences.  This 
-# file is the default config file.  When IDLE starts, it will look in
-# the following four files in order:
-#     config.txt                      the default config file
-#     config-[win/unix/mac].txt       the generic platform config file
-#     config-[sys.platform].txt       the specific platform config file
-#     ~/.idle                         the user config file
-# XXX what about Windows?
-#
-# The last definition of each option is used.  For example, you can
-# override the default window size (80x24) by defining width and
-# height options in the EditorWindow section of your ~/.idle file
-#
-# IDLE extensions can be enabled and disabled by adding them to one of
-# the config files.  To enable an extension, create a section with the
-# same name as the extension, e.g. the [ParenMatch] section below.  To
-# disable an extension, either remove the section or add the the
-# enable option with the value 0.  
-
-[EditorWindow]
-width= 80
-height= 24
-# fonts defined in config-[win/unix].txt
-
-[Colors]
-normal-foreground= black
-normal-background= white
-# These color types are not explicitly defined= sync, todo, stdin
-keyword-foreground= #ff7700
-comment-foreground= #dd0000
-string-foreground= #00aa00
-definition-foreground= #0000ff
-hilite-foreground= #000068
-hilite-background= #006868
-break-foreground= #ff7777
-hit-foreground= #ffffff
-hit-background= #000000
-stdout-foreground= blue
-stderr-foreground= red
-console-foreground= #770000
-error-background= #ff7777
-cursor-background= black
-
-[SearchBinding]
-
-[AutoIndent]
-
-[AutoExpand]
-
-[FormatParagraph]
-
-[ZoomHeight]
-
-#[ScriptBinding]    # disabled in favor of ExecBinding
-
-[ExecBinding]
-
-[CallTips]
-
-[ParenMatch]
-enable= 0
-style= expression
-flash-delay= 500
-bell= 1
-hilite-foreground= black
-hilite-background= #43cd80
diff --git a/Lib/idlelib/eventparse.py b/Lib/idlelib/eventparse.py
deleted file mode 100644 (file)
index cb2028d..0000000
+++ /dev/null
@@ -1,93 +0,0 @@
-#! /usr/bin/env python
-
-"""Parse event definitions out of comments in source files."""
-
-import re
-import sys
-import os
-import string
-import getopt
-import glob
-import fileinput
-import pprint
-
-def main():
-    hits = []
-    sublist = []
-    args = sys.argv[1:]
-    if not args:
-        args = filter(lambda s: 'A' <= s[0] <= 'Z', glob.glob("*.py"))
-        if not args:
-            print "No arguments, no [A-Z]*.py files."
-            return 1
-    for line in fileinput.input(args):
-        if line[:2] == '#$':
-            if not sublist:
-                sublist.append('file %s' % fileinput.filename())
-                sublist.append('line %d' % fileinput.lineno())
-            sublist.append(string.strip(line[2:-1]))
-        else:
-            if sublist:
-                hits.append(sublist)
-                sublist = []
-    if sublist:
-        hits.append(sublist)
-        sublist = []
-    dd = {}
-    for sublist in hits:
-        d = {}
-        for line in sublist:
-            words = string.split(line, None, 1)
-            if len(words) != 2:
-                continue
-            tag = words[0]
-            l = d.get(tag, [])
-            l.append(words[1])
-            d[tag] = l
-        if d.has_key('event'):
-            keys = d['event']
-            if len(keys) != 1:
-                print "Multiple event keys in", d
-                print 'File "%s", line %d' % (d['file'], d['line'])
-            key = keys[0]
-            if dd.has_key(key):
-                print "Duplicate event in", d
-                print 'File "%s", line %d' % (d['file'], d['line'])
-                return
-            dd[key] = d
-        else:
-            print "No event key in", d
-            print 'File "%s", line %d' % (d['file'], d['line'])
-    winevents = getevents(dd, "win")
-    unixevents = getevents(dd, "unix")
-    save = sys.stdout
-    f = open("keydefs.py", "w")
-    try:
-        sys.stdout = f
-        print "windows_keydefs = \\"
-        pprint.pprint(winevents)
-        print
-        print "unix_keydefs = \\"
-        pprint.pprint(unixevents)
-    finally:
-        sys.stdout = save
-    f.close()
-
-def getevents(dd, key):
-    res = {}
-    events = dd.keys()
-    events.sort()
-    for e in events:
-        d = dd[e]
-        if d.has_key(key) or d.has_key("all"):
-            list = []
-            for x in d.get(key, []) + d.get("all", []):
-                list.append(x)
-                if key == "unix" and x[:5] == "<Alt-":
-                    x = "<Meta-" + x[5:]
-                    list.append(x)
-            res[e] = list
-    return res
-
-if __name__ == '__main__':
-    sys.exit(main())
diff --git a/Lib/idlelib/extend.txt b/Lib/idlelib/extend.txt
deleted file mode 100644 (file)
index bcc2da9..0000000
+++ /dev/null
@@ -1,106 +0,0 @@
-Writing an IDLE extension
-
-An IDLE extension can define new key bindings and menu entries for IDLE
-edit windows.  There is a simple mechanism to load extensions when IDLE
-starts up and to attach them to each edit window. (It is also possible
-to make other changes to IDLE, but this must be done by editing the IDLE
-source code.)
-
-The list of extensions loaded at startup time is configured by editing
-the file extend.py; see below for details.
-
-An IDLE extension is defined by a class.  Methods of the class define
-actions that are invoked by those bindings or menu entries. Class (or
-instance) variables define the bindings and menu additions; these are
-automatically applied by IDLE when the extension is linked to an edit
-window.
-
-An IDLE extension class is instantiated with a single argument,
-`editwin', an EditorWindow instance. The extension cannot assume much
-about this argument, but it is guarateed to have the following instance
-variables:
-
-    text       a Text instance (a widget)
-    io         an IOBinding instance (more about this later)
-    flist      the FileList instance (shared by all edit windows)
-
-(There are a few more, but they are rarely useful.)
-
-The extension class must not bind key events.  Rather, it must define
-one or more virtual events, e.g. <<zoom-height>>, and corresponding
-methods, e.g. zoom_height_event(), and have one or more class (or instance)
-variables that define mappings between virtual events and key sequences,
-e.g. <Alt-F2>.  When the extension is loaded, these key sequences will
-be bound to the corresponding virtual events, and the virtual events
-will be bound to the corresponding methods.  (This indirection is done
-so that the key bindings can easily be changed, and so that other
-sources of virtual events can exist, such as menu entries.)
-
-The following class or instance variables are used to define key
-bindings for virtual events:
-
-    keydefs            for all platforms
-    mac_keydefs                for Macintosh
-    windows_keydefs    for Windows
-    unix_keydefs       for Unix (and other platforms)
-
-Each of these variables, if it exists, must be a dictionary whose
-keys are virtual events, and whose values are lists of key sequences.
-
-An extension can define menu entries in a similar fashion.  This is done
-with a class or instance variable named menudefs; it should be a list of
-pair, where each pair is a menu name (lowercase) and a list of menu
-entries. Each menu entry is either None (to insert a separator entry) or
-a pair of strings (menu_label, virtual_event).  Here, menu_label is the
-label of the menu entry, and virtual_event is the virtual event to be
-generated when the entry is selected.  An underscore in the menu label
-is removed; the character following the underscore is displayed
-underlined, to indicate the shortcut character (for Windows).
-
-At the moment, extensions cannot define whole new menus; they must
-define entries in existing menus.  Some menus are not present on some
-windows; such entry definitions are then ignored, but the key bindings
-are still applied.  (This should probably be refined in the future.)
-
-Here is a complete example example:
-
-class ZoomHeight:
-
-    menudefs = [
-        ('edit', [
-            None, # Separator
-            ('_Zoom Height', '<<zoom-height>>'),
-         ])
-    ]
-
-    windows_keydefs = {
-        '<<zoom-height>>': ['<Alt-F2>'],
-    }
-    unix_keydefs = {
-        '<<zoom-height>>': ['<Control-z><Control-z>'],
-    }
-
-    def __init__(self, editwin):
-        self.editwin = editwin
-
-    def zoom_height_event(self, event):
-        "...Do what you want here..."
-
-The final piece of the puzzle is the file "extend.py", which contains a
-simple table used to configure the loading of extensions.  This file
-currently contains a single list variable named "standard", which is a
-list of extension names that are to be loaded.  (In the future, other
-configuration variables may be added to this module.)
-
-Extensions can define key bindings and menu entries that reference
-events they don't implement (including standard events); however this is
-not recommended (and may be forbidden in the future).
-
-Extensions are not required to define menu entries for all events they
-implement.
-
-Note: in order to change key bindings, you must currently edit the file
-keydefs.  It contains two dictionaries named and formatted like the
-keydefs dictionaries described above, one for the Unix bindings and one
-for the Windows bindings.  In the future, a better mechanism will be
-provided.
diff --git a/Lib/idlelib/help.txt b/Lib/idlelib/help.txt
deleted file mode 100644 (file)
index 001da01..0000000
+++ /dev/null
@@ -1,155 +0,0 @@
-[See end for tips.]
-
-Click on the dotted line at the top of a menu to "tear it off": a
-separate window containing the menu is created.
-
-File menu:
-
-       New window -- create a new editing window
-       Open... -- open an existing file
-       Open module... -- open an existing module (searches sys.path)
-       Class browser -- show classes and methods in current file
-       Path browser -- show sys.path directories, modules, classes
-               and methods
-       ---
-       Save -- save current window to the associated file (unsaved
-               windows have a * before and after the window title)
-
-       Save As... -- save current window to new file, which becomes
-               the associated file
-       Save Copy As... -- save current window to different file
-               without changing the associated file
-       ---
-       Close -- close current window (asks to save if unsaved)
-       Exit -- close all windows and quit IDLE (asks to save if unsaved)
-
-Edit menu:
-
-       Undo -- Undo last change to current window (max 1000 changes)
-       Redo -- Redo last undone change to current window
-       ---
-       Cut -- Copy selection into system-wide clipboard; then delete selection
-       Copy -- Copy selection into system-wide clipboard
-       Paste -- Insert system-wide clipboard into window
-       Select All -- Select the entire contents of the edit buffer
-       ---
-       Find... -- Open a search dialog box with many options
-       Find again -- Repeat last search
-       Find selection -- Search for the string in the selection
-       Find in Files... -- Open a search dialog box for searching files
-       Replace... -- Open a search-and-replace dialog box
-       Go to line -- Ask for a line number and show that line
-       ---
-       Indent region -- Shift selected lines right 4 spaces
-       Dedent region -- Shift selected lines left 4 spaces
-       Comment out region -- Insert ## in front of selected lines
-       Uncomment region -- Remove leading # or ## from selected lines
-       Tabify region -- Turns *leading* stretches of spaces into tabs
-       Untabify region -- Turn *all* tabs into the right number of spaces
-       Expand word -- Expand the word you have typed to match another
-               word in the same buffer; repeat to get a different expansion
-       Format Paragraph -- Reformat the current blank-line-separated paragraph
-       ---
-       Import module -- Import or reload the current module
-       Run script -- Execute the current file in the __main__ namespace
-
-Windows menu:
-
-       Zoom Height -- toggles the window between normal size (24x80)
-       and maximum height.
-       ---
-       The rest of this menu lists the names of all open windows;
-       select one to bring it to the foreground (deiconifying it if
-       necessary).
-
-Debug menu (in the Python Shell window only):
-
-       Go to file/line -- look around the insert point for a filename
-               and linenumber, open the file, and show the line
-       Open stack viewer -- show the stack traceback of the last exception
-       Debugger toggle -- Run commands in the shell under the debugger
-       JIT Stack viewer toggle -- Open stack viewer on traceback
-
-Basic editing and navigation:
-
-       Backspace deletes to the left; DEL deletes to the right
-       Arrow keys and Page Up/Down to move around
-       Home/End go to begin/end of line
-       Control-Home/End go to begin/end of file
-       Some Emacs bindings may also work, e.g. ^B/^P/^A/^E/^D/^L
-
-Automatic indentation:
-
-       After a block-opening statement, the next line is indented by
-       4 spaces (in the Python Shell window by one tab).  After
-       certain keywords (break, return etc.) the next line is
-       dedented.  In leading indentation, Backspace deletes up to 4
-       spaces if they are there.  Tab inserts 1-4 spaces (in the
-       Python Shell window one tab).  See also the indent/dedent
-       region commands in the edit menu.
-
-Python Shell window:
-
-       ^C interrupts executing command
-       ^D sends end-of-file; closes window if typed at >>> prompt
-
-    Command history:
-
-       Alt-p retrieves previous command matching what you have typed
-       Alt-n retrieves next
-       Return while on any previous command retrieves that command
-       Alt-/ (Expand word) is also useful here
-
-Syntax colors:
-
-       The coloring is applied in a background "thread", so you may
-       occasionally see uncolorized text.  To change the color
-       scheme, edit the ColorPrefs class in IdlePrefs.py.
-
-    Python syntax colors:
-
-       Keywords        orange
-       Strings         green
-       Comments        red
-       Definitions     blue
-
-    Shell colors:
-
-       Console output  brown
-       stdout          blue
-       stderr          dark green
-       stdin           black
-
-Other preferences:
-
-       To change the font on Windows, open EditorWindow.py and change
-           text['font'] = ("lucida console", 8)
-       to, e.g.,
-           text['font'] = ("courier new", 10)
-
-       To change keyboard bindings, edit Bindings.py
-
-Command line usage:
-
-       idle.py [-c command] [-d] [-e] [-s] [-t title] [arg] ...
-
-       -c command  run this command
-       -d          enable debugger
-       -e          edit mode; arguments are files to be edited
-       -s          run $IDLESTARTUP or $PYTHONSTARTUP first
-       -t title    set title of shell window
-
-       If there are arguments:
-
-           If -e is used, arguments are files opened for editing and
-           sys.argv reflects the arguments passed to IDLE itself.
-
-           Otherwise, if -c is used, all arguments are placed in
-           sys.argv[1:...], with sys.argv[0] set to '-c'.
-
-           Otherwise, if neither -e nor -c is used, the first
-           argument is a script which is executed with the remaining
-           arguments in sys.argv[1:...]  and sys.argv[0] set to the
-           script name.  If the script name is '-', no script is
-           executed but an interactive Python session is started; the
-           arguments are still available in sys.argv.
diff --git a/Lib/idlelib/idle.bat b/Lib/idlelib/idle.bat
deleted file mode 100755 (executable)
index c1b5fd2..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-@echo off
-rem Working IDLE bat for Windows - uses start instead of absolute pathname
-start idle.pyw %1 %2 %3 %4 %5 %6 %7 %8 %9
diff --git a/Lib/idlelib/idle.py b/Lib/idlelib/idle.py
deleted file mode 100644 (file)
index 71fdce5..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-#! /usr/bin/env python
-
-import os
-import sys
-import IdleConf
-
-idle_dir = os.path.split(sys.argv[0])[0]
-IdleConf.load(idle_dir)
-
-# defer importing Pyshell until IdleConf is loaded
-import PyShell
-PyShell.main()
diff --git a/Lib/idlelib/idle.pyw b/Lib/idlelib/idle.pyw
deleted file mode 100644 (file)
index 71fdce5..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-#! /usr/bin/env python
-
-import os
-import sys
-import IdleConf
-
-idle_dir = os.path.split(sys.argv[0])[0]
-IdleConf.load(idle_dir)
-
-# defer importing Pyshell until IdleConf is loaded
-import PyShell
-PyShell.main()
diff --git a/Lib/idlelib/idlever.py b/Lib/idlelib/idlever.py
deleted file mode 100644 (file)
index e51797e..0000000
+++ /dev/null
@@ -1 +0,0 @@
-IDLE_VERSION = "0.5"
diff --git a/Lib/idlelib/keydefs.py b/Lib/idlelib/keydefs.py
deleted file mode 100644 (file)
index 3d34893..0000000
+++ /dev/null
@@ -1,55 +0,0 @@
-windows_keydefs = \
-{'<<Copy>>': ['<Control-c>'],
- '<<Cut>>': ['<Control-x>'],
- '<<Paste>>': ['<Control-v>'],
- '<<beginning-of-line>>': ['<Control-a>', '<Home>'],
- '<<center-insert>>': ['<Control-l>'],
- '<<close-all-windows>>': ['<Control-q>'],
- '<<close-window>>': ['<Alt-F4>'],
- '<<dump-undo-state>>': ['<Control-backslash>'],
- '<<end-of-file>>': ['<Control-d>'],
- '<<python-docs>>': ['<F1>'],
- '<<history-next>>': ['<Alt-n>'],
- '<<history-previous>>': ['<Alt-p>'],
- '<<interrupt-execution>>': ['<Control-c>'],
- '<<open-class-browser>>': ['<Alt-c>'],
- '<<open-module>>': ['<Alt-m>'],
- '<<open-new-window>>': ['<Control-n>'],
- '<<open-window-from-file>>': ['<Control-o>'],
- '<<plain-newline-and-indent>>': ['<Control-j>'],
- '<<redo>>': ['<Control-y>'],
- '<<remove-selection>>': ['<Escape>'],
- '<<save-copy-of-window-as-file>>': ['<Alt-Shift-s>'],
- '<<save-window-as-file>>': ['<Alt-s>'],
- '<<save-window>>': ['<Control-s>'],
- '<<select-all>>': ['<Alt-a>'],
- '<<toggle-auto-coloring>>': ['<Control-slash>'],
- '<<undo>>': ['<Control-z>']}
-
-unix_keydefs = \
-{'<<Copy>>': ['<Alt-w>', '<Meta-w>'],
- '<<Cut>>': ['<Control-w>'],
- '<<Paste>>': ['<Control-y>'],
- '<<beginning-of-line>>': ['<Control-a>', '<Home>'],
- '<<center-insert>>': ['<Control-l>'],
- '<<close-all-windows>>': ['<Control-x><Control-c>'],
- '<<close-window>>': ['<Control-x><Control-0>', '<Control-x><Key-0>'],
- '<<do-nothing>>': ['<Control-x>'],
- '<<dump-undo-state>>': ['<Control-backslash>'],
- '<<end-of-file>>': ['<Control-d>'],
- '<<help>>': ['<F1>'],
- '<<history-next>>': ['<Alt-n>', '<Meta-n>'],
- '<<history-previous>>': ['<Alt-p>', '<Meta-p>'],
- '<<interrupt-execution>>': ['<Control-c>'],
- '<<open-class-browser>>': ['<Control-x><Control-b>'],
- '<<open-module>>': ['<Control-x><Control-m>'],
- '<<open-new-window>>': ['<Control-x><Control-n>'],
- '<<open-window-from-file>>': ['<Control-x><Control-f>'],
- '<<plain-newline-and-indent>>': ['<Control-j>'],
- '<<redo>>': ['<Alt-z>', '<Meta-z>'],
- '<<save-copy-of-window-as-file>>': ['<Control-x><w>'],
- '<<save-window-as-file>>': ['<Control-x><Control-w>'],
- '<<save-window>>': ['<Control-x><Control-s>'],
- '<<select-all>>': ['<Alt-a>', '<Meta-a>'],
- '<<toggle-auto-coloring>>': ['<Control-slash>'],
- '<<undo>>': ['<Control-z>']}
diff --git a/Lib/idlelib/loader.py b/Lib/idlelib/loader.py
deleted file mode 100644 (file)
index 6a438c3..0000000
+++ /dev/null
@@ -1,64 +0,0 @@
-# Everything is done inside the loader function so that no other names
-# are placed in the global namespace.  Before user code is executed,
-# even this name is unbound.
-def loader():
-    import sys, os, protocol, threading, time
-    import Remote
-
-##  Use to debug the loading process itself:
-##    sys.stdout = open('c:\\windows\\desktop\\stdout.txt','a')
-##    sys.stderr = open('c:\\windows\\desktop\\stderr.txt','a')
-
-    # Ensure that there is absolutely no pollution of the global
-    # namespace by deleting the global name of this function.
-    global loader
-    del loader
-
-    # Connect to IDLE
-    try:
-        client = protocol.Client()
-    except protocol.connectionLost, cL:
-        print 'loader: Unable to connect to IDLE', cL
-        return
-
-    # Connect to an ExecBinding object that needs our help.  If
-    # the user is starting multiple programs right now, we might get a
-    # different one than the one that started us.  Proving that's okay is
-    # left as an exercise to the reader.  (HINT:  Twelve, by the pigeonhole
-    # principle)
-    ExecBinding = client.getobject('ExecBinding')
-    if not ExecBinding:
-        print "loader: IDLE does not need me."
-        return
-
-    # All of our input and output goes through ExecBinding.
-    sys.stdin  = Remote.pseudoIn( ExecBinding.readline )
-    sys.stdout = Remote.pseudoOut( ExecBinding.write.void, tag="stdout" )
-    sys.stderr = Remote.pseudoOut( ExecBinding.write.void, tag="stderr" )
-
-    # Create a Remote object and start it running.
-    remote = Remote.Remote(globals(), ExecBinding)
-    rthread = threading.Thread(target=remote.mainloop)
-    rthread.setDaemon(1)
-    rthread.start()
-
-    # Block until either the client or the user program stops
-    user = rthread.isAlive
-    while user and client.isAlive():
-        time.sleep(0.025)
-
-        if not user():
-          user = hasattr(sys, "ready_to_exit") and sys.ready_to_exit
-          for t in threading.enumerate():
-            if not t.isDaemon() and t.isAlive() and t!=threading.currentThread():
-              user = t.isAlive
-              break
-
-    # We need to make sure we actually exit, so that the user doesn't get
-    #   stuck with an invisible process.  We want to finalize C modules, so
-    #   we don't use os._exit(), but we don't call sys.exitfunc, which might
-    #   block forever.
-    del sys.exitfunc
-    sys.exit()
-
-loader()
diff --git a/Lib/idlelib/protocol.py b/Lib/idlelib/protocol.py
deleted file mode 100644 (file)
index f3f6382..0000000
+++ /dev/null
@@ -1,369 +0,0 @@
-"""protocol        (David Scherer <dscherer@cmu.edu>)
-
-     This module implements a simple RPC or "distributed object" protocol.
-     I am probably the 100,000th person to write this in Python, but, hey,
-     it was fun.
-
-     Contents:
-
-       connectionLost is an exception that will be thrown by functions in
-           the protocol module or calls to remote methods that fail because
-           the remote program has closed the socket or because no connection
-           could be established in the first place.
-
-       Server( port=None, connection_hook=None ) creates a server on a
-           well-known port, to which clients can connect.  When a client
-           connects, a Connection is created for it.  If connection_hook
-           is defined, then connection_hook( socket.getpeername() ) is called
-           before a Connection is created, and if it returns false then the
-           connection is refused.  connection_hook must be prepared to be
-           called from any thread.
-  
-       Client( ip='127.0.0.1', port=None ) returns a Connection to a Server
-           object at a well-known address and port.
-  
-       Connection( socket ) creates an RPC connection on an arbitrary socket,
-           which must already be connected to another program.  You do not
-           need to use this directly if you are using Client() or Server().
-  
-       publish( name, connect_function ) provides an object with the
-           specified name to some or all Connections.  When another program
-           calls Connection.getobject() with the specified name, the
-           specified connect_function is called with the arguments
-
-              connect_function( conn, addr )
-
-           where conn is the Connection object to the requesting client and
-           addr is the address returned by socket.getpeername().  If that
-           function returns an object, that object becomes accessible to
-           the caller.  If it returns None, the caller's request fails.
-
-     Connection objects:
-
-       .close() refuses additional RPC messages from the peer, and notifies
-           the peer that the connection has been closed.  All pending remote
-           method calls in either program will fail with a connectionLost
-           exception.  Further remote method calls on this connection will
-           also result in errors.
-
-       .getobject(name) returns a proxy for the remote object with the
-           specified name, if it exists and the peer permits us access.
-           Otherwise, it returns None.  It may throw a connectionLost
-           exception.  The returned proxy supports basic attribute access
-           and method calls, and its methods have an extra attribute,
-           .void, which is a function that has the same effect but always
-           returns None.  This last capability is provided as a performance
-           hack: object.method.void(params) can return without waiting for
-           the remote process to respond, but object.method(params) needs
-           to wait for a return value or exception.
-
-       .rpc_loop(block=0) processes *incoming* messages for this connection.
-           If block=1, it continues processing until an exception or return
-           value is received, which is normally forever.  Otherwise it
-           returns when all currently pending messages have been delivered.
-           It may throw a connectionLost exception.
-
-       .set_close_hook(f) specifies a function to be called when the remote
-           object closes the connection during a call to rpc_loop().  This
-           is a good way for servers to be notified when clients disconnect.
-
-       .set_shutdown_hook(f) specifies a function called *immediately* when
-           the receive loop detects that the connection has been lost.  The
-           provided function must be prepared to run in any thread.
-
-     Server objects:
-
-       .rpc_loop() processes incoming messages on all connections, and
-           returns when all pending messages have been processed.  It will
-           *not* throw connectionLost exceptions; the
-           Connection.set_close_hook() mechanism is much better for servers.
-"""
-
-import sys, os, string, types
-import socket
-from threading import Thread
-from Queue import Queue, Empty
-from cPickle import Pickler, Unpickler, PicklingError
-
-class connectionLost:
-    def __init__(self, what=""): self.what = what
-    def __repr__(self): return self.what
-    def __str__(self): return self.what
-
-def getmethods(cls):
-    "Returns a list of the names of the methods of a class."
-    methods = []
-    for b in cls.__bases__:
-        methods = methods + getmethods(b)
-    d = cls.__dict__
-    for k in d.keys():
-        if type(d[k])==types.FunctionType:
-            methods.append(k)
-    return methods
-
-class methodproxy:
-    "Proxy for a method of a remote object."
-    def __init__(self, classp, name):
-        self.classp=classp
-        self.name=name
-        self.client = classp.client
-    def __call__(self, *args, **keywords):
-        return self.client.call( 'm', self.classp.name, self.name, args, keywords )
-
-    def void(self, *args, **keywords):
-        self.client.call_void( 'm', self.classp.name,self.name,args,keywords)
-
-class classproxy:
-    "Proxy for a remote object."
-    def __init__(self, client, name, methods):
-        self.__dict__['client'] = client
-        self.__dict__['name'] = name
-        
-        for m in methods:
-            prox = methodproxy( self, m )
-            self.__dict__[m] = prox
-
-    def __getattr__(self, attr):
-        return self.client.call( 'g', self.name, attr )
-
-    def __setattr__(self, attr, value):
-        self.client.call_void( 's', self.name, attr, value )
-
-local_connect  = {}
-def publish(name, connect_function):
-    local_connect[name]=connect_function
-
-class socketFile:
-    "File emulator based on a socket.  Provides only blocking semantics for now."
-
-    def __init__(self, socket):
-        self.socket = socket
-        self.buffer = ''
-
-    def _recv(self,bytes):
-        try:
-            r=self.socket.recv(bytes)
-        except:
-            raise connectionLost()
-        if not r:
-            raise connectionLost()
-        return r
-
-    def write(self, string):
-        try:
-            self.socket.send( string )
-        except:
-            raise connectionLost()
-
-    def read(self,bytes):
-        x = bytes-len(self.buffer)
-        while x>0:
-            self.buffer=self.buffer+self._recv(x)
-            x = bytes-len(self.buffer)
-        s = self.buffer[:bytes]
-        self.buffer=self.buffer[bytes:]
-        return s
-
-    def readline(self):
-        while 1:
-            f = string.find(self.buffer,'\n')
-            if f>=0:
-                s = self.buffer[:f+1]
-                self.buffer=self.buffer[f+1:]
-                return s
-            self.buffer = self.buffer + self._recv(1024)
-
-
-class Connection (Thread):
-    debug = 0
-    def __init__(self, socket):
-        self.local_objects = {}
-        self.socket = socket
-        self.name = socket.getpeername()
-        self.socketfile = socketFile(socket)
-        self.queue = Queue(-1)
-        self.refuse_messages = 0
-        self.cmds = { 'm': self.r_meth,
-                      'g': self.r_get,
-                      's': self.r_set,
-                      'o': self.r_geto,
-                      'e': self.r_exc,
-                     #'r' handled by rpc_loop
-                    }
-
-        Thread.__init__(self)
-        self.setDaemon(1)
-        self.start()
-
-    def getobject(self, name):
-        methods = self.call( 'o', name )
-        if methods is None: return None
-        return classproxy(self, name, methods)
-
-    # close_hook is called from rpc_loop(), like a normal remote method
-    #   invocation
-    def set_close_hook(self,hook): self.close_hook = hook
-
-    # shutdown_hook is called directly from the run() thread, and needs
-    #   to be "thread safe"
-    def set_shutdown_hook(self,hook): self.shutdown_hook = hook
-
-    close_hook = None
-    shutdown_hook = None
-
-    def close(self):
-        self._shutdown()
-        self.refuse_messages = 1
-
-    def call(self, c, *args):
-        self.send( (c, args, 1 ) )
-        return self.rpc_loop( block = 1 )
-
-    def call_void(self, c, *args):
-        try:
-            self.send( (c, args, 0 ) )
-        except:
-            pass
-   
-    # the following methods handle individual RPC calls:
-
-    def r_geto(self, obj):
-        c = local_connect.get(obj)
-        if not c: return None
-        o = c(self, self.name)
-        if not o: return None
-        self.local_objects[obj] = o
-        return getmethods(o.__class__)
-
-    def r_meth(self, obj, name, args, keywords):
-        return apply( getattr(self.local_objects[obj],name), args, keywords)
-
-    def r_get(self, obj, name):       
-        return getattr(self.local_objects[obj],name)
-
-    def r_set(self, obj, name, value):
-        setattr(self.local_objects[obj],name,value)
-
-    def r_exc(self, e, v):
-        raise e, v
-
-    def rpc_exec(self, cmd, arg, ret):
-        if self.refuse_messages: return
-        if self.debug: print cmd,arg,ret
-        if ret:
-            try:
-                r=apply(self.cmds.get(cmd), arg)
-                self.send( ('r', r, 0) )
-            except:
-                try:
-                    self.send( ('e', sys.exc_info()[:2], 0) )
-                except PicklingError:
-                    self.send( ('e', (TypeError, 'Unpicklable exception.'), 0 ) )
-        else:
-            # we cannot report exceptions to the caller, so
-            #   we report them in this process.
-            r=apply(self.cmds.get(cmd), arg)
-
-    # the following methods implement the RPC and message loops:
-
-    def rpc_loop(self, block=0):
-        if self.refuse_messages: raise connectionLost('(already closed)')
-        try:
-            while 1:
-                try:
-                    cmd, arg, ret = self.queue.get( block )
-                except Empty:
-                    return None
-                if cmd=='r': return arg
-                self.rpc_exec(cmd,arg,ret)
-        except connectionLost:
-            if self.close_hook:
-                self.close_hook()
-                self.close_hook = None
-            raise
-
-    def run(self):
-        try:
-            while 1:
-                data = self.recv()
-                self.queue.put( data )
-        except:
-            self.queue.put( ('e', sys.exc_info()[:2], 0) )
-
-    # The following send raw pickled data to the peer
-
-    def send(self, data):
-        try:
-            Pickler(self.socketfile,1).dump( data )
-        except connectionLost:
-            self._shutdown()
-            if self.shutdown_hook: self.shutdown_hook()
-            raise
-
-    def recv(self):
-        try:
-            return Unpickler(self.socketfile).load()
-        except connectionLost:
-            self._shutdown()
-            if self.shutdown_hook: self.shutdown_hook()
-            raise
-        except:
-            raise
-
-    def _shutdown(self):
-        try:
-            self.socket.shutdown(1)
-            self.socket.close()
-        except:
-            pass
-
-
-class Server (Thread):
-    default_port = 0x1D1E   # "IDlE"
-
-    def __init__(self, port=None, connection_hook=None):
-        self.connections = []
-        self.port = port or self.default_port
-        self.connection_hook = connection_hook
-
-        try:
-            self.wellknown = s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
-            s.bind(('', self.port))
-            s.listen(3)
-        except:
-            raise connectionLost
-
-        Thread.__init__(self)
-        self.setDaemon(1)
-        self.start()
-
-    def run(self):
-        s = self.wellknown
-        while 1:
-            conn, addr = s.accept()
-            if self.connection_hook and not self.connection_hook(addr):
-                try:
-                    conn.shutdown(1)
-                except:
-                    pass
-                continue
-            self.connections.append( Connection(conn) )
-
-    def rpc_loop(self):
-        cns = self.connections[:]
-        for c in cns:
-            try:
-                c.rpc_loop(block = 0)
-            except connectionLost:
-                if c in self.connections:
-                    self.connections.remove(c)
-
-def Client(ip='127.0.0.1', port=None):
-    try:
-        s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
-        s.connect((ip,port or Server.default_port))
-    except socket.error, what:
-        raise connectionLost(str(what))
-    except:
-        raise connectionLost()
-    return Connection(s)
diff --git a/Lib/idlelib/pyclbr.py b/Lib/idlelib/pyclbr.py
deleted file mode 100644 (file)
index 74b7ff7..0000000
+++ /dev/null
@@ -1,336 +0,0 @@
-"""Parse a Python file and retrieve classes and methods.
-
-Parse enough of a Python file to recognize class and method
-definitions and to find out the superclasses of a class.
-
-The interface consists of a single function:
-       readmodule(module, path)
-module is the name of a Python module, path is an optional list of
-directories where the module is to be searched.  If present, path is
-prepended to the system search path sys.path.
-The return value is a dictionary.  The keys of the dictionary are
-the names of the classes defined in the module (including classes
-that are defined via the from XXX import YYY construct).  The values
-are class instances of the class Class defined here.
-
-A class is described by the class Class in this module.  Instances
-of this class have the following instance variables:
-       name -- the name of the class
-       super -- a list of super classes (Class instances)
-       methods -- a dictionary of methods
-       file -- the file in which the class was defined
-       lineno -- the line in the file on which the class statement occurred
-The dictionary of methods uses the method names as keys and the line
-numbers on which the method was defined as values.
-If the name of a super class is not recognized, the corresponding
-entry in the list of super classes is not a class instance but a
-string giving the name of the super class.  Since import statements
-are recognized and imported modules are scanned as well, this
-shouldn't happen often.
-
-BUGS
-- Continuation lines are not dealt with at all.
-- While triple-quoted strings won't confuse it, lines that look like
-  def, class, import or "from ... import" stmts inside backslash-continued
-  single-quoted strings are treated like code.  The expense of stopping
-  that isn't worth it.
-- Code that doesn't pass tabnanny or python -t will confuse it, unless
-  you set the module TABWIDTH vrbl (default 8) to the correct tab width
-  for the file.
-
-PACKAGE RELATED BUGS
-- If you have a package and a module inside that or another package
-  with the same name, module caching doesn't work properly since the
-  key is the base name of the module/package.
-- The only entry that is returned when you readmodule a package is a
-  __path__ whose value is a list which confuses certain class browsers.
-- When code does:
-  from package import subpackage
-  class MyClass(subpackage.SuperClass):
-    ...
-  It can't locate the parent.  It probably needs to have the same
-  hairy logic that the import locator already does.  (This logic
-  exists coded in Python in the freeze package.)
-"""
-
-import os
-import sys
-import imp
-import re
-import string
-
-TABWIDTH = 8
-
-_getnext = re.compile(r"""
-    (?P<String>
-       \""" [^"\\]* (?:
-                       (?: \\. | "(?!"") )
-                       [^"\\]*
-                   )*
-       \"""
-
-    |   ''' [^'\\]* (?:
-                       (?: \\. | '(?!'') )
-                       [^'\\]*
-                   )*
-       '''
-    )
-
-|   (?P<Method>
-       ^
-       (?P<MethodIndent> [ \t]* )
-       def [ \t]+
-       (?P<MethodName> [a-zA-Z_] \w* )
-       [ \t]* \(
-    )
-
-|   (?P<Class>
-       ^
-       (?P<ClassIndent> [ \t]* )
-       class [ \t]+
-       (?P<ClassName> [a-zA-Z_] \w* )
-       [ \t]*
-       (?P<ClassSupers> \( [^)\n]* \) )?
-       [ \t]* :
-    )
-
-|   (?P<Import>
-       ^ import [ \t]+
-       (?P<ImportList> [^#;\n]+ )
-    )
-
-|   (?P<ImportFrom>
-       ^ from [ \t]+
-       (?P<ImportFromPath>
-           [a-zA-Z_] \w*
-           (?:
-               [ \t]* \. [ \t]* [a-zA-Z_] \w*
-           )*
-       )
-       [ \t]+
-       import [ \t]+
-       (?P<ImportFromList> [^#;\n]+ )
-    )
-""", re.VERBOSE | re.DOTALL | re.MULTILINE).search
-
-_modules = {}                           # cache of modules we've seen
-
-# each Python class is represented by an instance of this class
-class Class:
-       '''Class to represent a Python class.'''
-       def __init__(self, module, name, super, file, lineno):
-               self.module = module
-               self.name = name
-               if super is None:
-                       super = []
-               self.super = super
-               self.methods = {}
-               self.file = file
-               self.lineno = lineno
-
-       def _addmethod(self, name, lineno):
-               self.methods[name] = lineno
-
-class Function(Class):
-       '''Class to represent a top-level Python function'''
-       def __init__(self, module, name, file, lineno):
-               Class.__init__(self, module, name, None, file, lineno)
-       def _addmethod(self, name, lineno):
-               assert 0, "Function._addmethod() shouldn't be called"
-
-def readmodule(module, path=[], inpackage=0):
-       '''Backwards compatible interface.
-
-       Like readmodule_ex() but strips Function objects from the
-       resulting dictionary.'''
-
-       dict = readmodule_ex(module, path, inpackage)
-       res = {}
-       for key, value in dict.items():
-               if not isinstance(value, Function):
-                       res[key] = value
-       return res
-
-def readmodule_ex(module, path=[], inpackage=0):
-       '''Read a module file and return a dictionary of classes.
-
-       Search for MODULE in PATH and sys.path, read and parse the
-       module and return a dictionary with one entry for each class
-       found in the module.'''
-
-       dict = {}
-
-       i = string.rfind(module, '.')
-       if i >= 0:
-               # Dotted module name
-               package = string.strip(module[:i])
-               submodule = string.strip(module[i+1:])
-               parent = readmodule(package, path, inpackage)
-               child = readmodule(submodule, parent['__path__'], 1)
-               return child
-
-       if _modules.has_key(module):
-               # we've seen this module before...
-               return _modules[module]
-       if module in sys.builtin_module_names:
-               # this is a built-in module
-               _modules[module] = dict
-               return dict
-
-       # search the path for the module
-       f = None
-       if inpackage:
-               try:
-                       f, file, (suff, mode, type) = \
-                               imp.find_module(module, path)
-               except ImportError:
-                       f = None
-       if f is None:
-               fullpath = list(path) + sys.path
-               f, file, (suff, mode, type) = imp.find_module(module, fullpath)
-       if type == imp.PKG_DIRECTORY:
-               dict['__path__'] = [file]
-               _modules[module] = dict
-               path = [file] + path
-               f, file, (suff, mode, type) = \
-                               imp.find_module('__init__', [file])
-       if type != imp.PY_SOURCE:
-               # not Python source, can't do anything with this module
-               f.close()
-               _modules[module] = dict
-               return dict
-
-       _modules[module] = dict
-       imports = []
-       classstack = [] # stack of (class, indent) pairs
-       src = f.read()
-       f.close()
-
-       # To avoid having to stop the regexp at each newline, instead
-       # when we need a line number we simply string.count the number of
-       # newlines in the string since the last time we did this; i.e.,
-       #    lineno = lineno + \
-       #             string.count(src, '\n', last_lineno_pos, here)
-       #    last_lineno_pos = here
-       countnl = string.count
-       lineno, last_lineno_pos = 1, 0
-       i = 0
-       while 1:
-               m = _getnext(src, i)
-               if not m:
-                       break
-               start, i = m.span()
-
-               if m.start("Method") >= 0:
-                       # found a method definition or function
-                       thisindent = _indent(m.group("MethodIndent"))
-                       meth_name = m.group("MethodName")
-                       lineno = lineno + \
-                                countnl(src, '\n',
-                                        last_lineno_pos, start)
-                       last_lineno_pos = start
-                       # close all classes indented at least as much
-                       while classstack and \
-                             classstack[-1][1] >= thisindent:
-                               del classstack[-1]
-                       if classstack:
-                               # it's a class method
-                               cur_class = classstack[-1][0]
-                               cur_class._addmethod(meth_name, lineno)
-                       else:
-                               # it's a function
-                               f = Function(module, meth_name,
-                                            file, lineno)
-                               dict[meth_name] = f
-
-               elif m.start("String") >= 0:
-                       pass
-
-               elif m.start("Class") >= 0:
-                       # we found a class definition
-                       thisindent = _indent(m.group("ClassIndent"))
-                       # close all classes indented at least as much
-                       while classstack and \
-                             classstack[-1][1] >= thisindent:
-                               del classstack[-1]
-                       lineno = lineno + \
-                                countnl(src, '\n', last_lineno_pos, start)
-                       last_lineno_pos = start
-                       class_name = m.group("ClassName")
-                       inherit = m.group("ClassSupers")
-                       if inherit:
-                               # the class inherits from other classes
-                               inherit = string.strip(inherit[1:-1])
-                               names = []
-                               for n in string.splitfields(inherit, ','):
-                                       n = string.strip(n)
-                                       if dict.has_key(n):
-                                               # we know this super class
-                                               n = dict[n]
-                                       else:
-                                               c = string.splitfields(n, '.')
-                                               if len(c) > 1:
-                                                       # super class
-                                                       # is of the
-                                                       # form module.class:
-                                                       # look in
-                                                       # module for class
-                                                       m = c[-2]
-                                                       c = c[-1]
-                                                       if _modules.has_key(m):
-                                                               d = _modules[m]
-                                                               if d.has_key(c):
-                                                                       n = d[c]
-                                       names.append(n)
-                               inherit = names
-                       # remember this class
-                       cur_class = Class(module, class_name, inherit,
-                                         file, lineno)
-                       dict[class_name] = cur_class
-                       classstack.append((cur_class, thisindent))
-
-               elif m.start("Import") >= 0:
-                       # import module
-                       for n in string.split(m.group("ImportList"), ','):
-                               n = string.strip(n)
-                               try:
-                                       # recursively read the imported module
-                                       d = readmodule(n, path, inpackage)
-                               except:
-                                       ##print 'module', n, 'not found'
-                                       pass
-
-               elif m.start("ImportFrom") >= 0:
-                       # from module import stuff
-                       mod = m.group("ImportFromPath")
-                       names = string.split(m.group("ImportFromList"), ',')
-                       try:
-                               # recursively read the imported module
-                               d = readmodule(mod, path, inpackage)
-                       except:
-                               ##print 'module', mod, 'not found'
-                               continue
-                       # add any classes that were defined in the
-                       # imported module to our name space if they
-                       # were mentioned in the list
-                       for n in names:
-                               n = string.strip(n)
-                               if d.has_key(n):
-                                       dict[n] = d[n]
-                               elif n == '*':
-                                       # only add a name if not
-                                       # already there (to mimic what
-                                       # Python does internally)
-                                       # also don't add names that
-                                       # start with _
-                                       for n in d.keys():
-                                               if n[0] != '_' and \
-                                                  not dict.has_key(n):
-                                                       dict[n] = d[n]
-               else:
-                       assert 0, "regexp _getnext found something unexpected"
-
-       return dict
-
-def _indent(ws, _expandtabs=string.expandtabs):
-       return len(_expandtabs(ws, TABWIDTH))
diff --git a/Lib/idlelib/spawn.py b/Lib/idlelib/spawn.py
deleted file mode 100644 (file)
index 22617ed..0000000
+++ /dev/null
@@ -1,58 +0,0 @@
-# spawn - This is ugly, OS-specific code to spawn a separate process.  It
-#         also defines a function for getting the version of a path most
-#         likely to work with cranky API functions.
-
-import os
-
-def hardpath(path):
-    path = os.path.normcase(os.path.abspath(path))
-    try:
-        import win32api
-        path = win32api.GetShortPathName( path )
-    except:
-        pass
-    return path
-
-if hasattr(os, 'fork'):
-
-  # UNIX-ish operating system: we fork() and exec(), and we have to track
-  #   the pids of our children and call waitpid() on them to avoid leaving
-  #   zombies in the process table.  kill_zombies() does the dirty work, and
-  #   should be called periodically.
-
-  zombies = []
-
-  def spawn(bin, *args):
-    pid = os.fork()
-    if pid:
-      zombies.append(pid)
-    else:
-      os.execv( bin, (bin, ) + args )
-
-  def kill_zombies():
-      for z in zombies[:]:
-          stat = os.waitpid(z, os.WNOHANG)
-          if stat[0]==z:
-              zombies.remove(z)
-elif hasattr(os, 'spawnv'):
-
-  # Windows-ish OS: we use spawnv(), and stick quotes around arguments
-  #   in case they contains spaces, since Windows will jam all the
-  #   arguments to spawn() or exec() together into one string.  The
-  #   kill_zombies function is a noop.
-
-  def spawn(bin, *args):
-    nargs = [bin]
-    for arg in args:
-      nargs.append( '"'+arg+'"' )
-    os.spawnv( os.P_NOWAIT, bin, nargs )
-
-  def kill_zombies(): pass
-
-else:
-  # If you get here, you may be able to write an alternative implementation
-  # of these functions for your OS.
-
-  def kill_zombies(): pass
-
-  raise OSError, 'This OS does not support fork() or spawnv().'
diff --git a/Lib/idlelib/tabnanny.py b/Lib/idlelib/tabnanny.py
deleted file mode 100644 (file)
index 8d3eab5..0000000
+++ /dev/null
@@ -1,372 +0,0 @@
-#! /usr/bin/env python
-
-"""The Tab Nanny despises ambiguous indentation.  She knows no mercy."""
-
-# Released to the public domain, by Tim Peters, 15 April 1998.
-
-# XXX Note: this is now a standard library module.
-# XXX The API needs to undergo changes however; the current code is too
-# XXX script-like.  This will be addressed later.
-
-__version__ = "6"
-
-import os
-import sys
-import string
-import getopt
-import tokenize
-
-verbose = 0
-filename_only = 0
-
-def errprint(*args):
-    sep = ""
-    for arg in args:
-        sys.stderr.write(sep + str(arg))
-        sep = " "
-    sys.stderr.write("\n")
-
-def main():
-    global verbose, filename_only
-    try:
-        opts, args = getopt.getopt(sys.argv[1:], "qv")
-    except getopt.error, msg:
-        errprint(msg)
-        return
-    for o, a in opts:
-        if o == '-q':
-            filename_only = filename_only + 1
-        if o == '-v':
-            verbose = verbose + 1
-    if not args:
-        errprint("Usage:", sys.argv[0], "[-v] file_or_directory ...")
-        return
-    for arg in args:
-        check(arg)
-
-class NannyNag:
-    def __init__(self, lineno, msg, line):
-        self.lineno, self.msg, self.line = lineno, msg, line
-    def get_lineno(self):
-        return self.lineno
-    def get_msg(self):
-        return self.msg
-    def get_line(self):
-        return self.line
-
-def check(file):
-    if os.path.isdir(file) and not os.path.islink(file):
-        if verbose:
-            print "%s: listing directory" % `file`
-        names = os.listdir(file)
-        for name in names:
-            fullname = os.path.join(file, name)
-            if (os.path.isdir(fullname) and
-                not os.path.islink(fullname) or
-                os.path.normcase(name[-3:]) == ".py"):
-                check(fullname)
-        return
-
-    try:
-        f = open(file)
-    except IOError, msg:
-        errprint("%s: I/O Error: %s" % (`file`, str(msg)))
-        return
-
-    if verbose > 1:
-        print "checking", `file`, "..."
-
-    reset_globals()
-    try:
-        tokenize.tokenize(f.readline, tokeneater)
-
-    except tokenize.TokenError, msg:
-        errprint("%s: Token Error: %s" % (`file`, str(msg)))
-        return
-
-    except NannyNag, nag:
-        badline = nag.get_lineno()
-        line = nag.get_line()
-        if verbose:
-            print "%s: *** Line %d: trouble in tab city! ***" % (
-                `file`, badline)
-            print "offending line:", `line`
-            print nag.get_msg()
-        else:
-            if ' ' in file: file = '"' + file + '"'
-            if filename_only: print file
-            else: print file, badline, `line`
-        return
-
-    if verbose:
-        print "%s: Clean bill of health." % `file`
-
-class Whitespace:
-    # the characters used for space and tab
-    S, T = ' \t'
-
-    # members:
-    #   raw
-    #       the original string
-    #   n
-    #       the number of leading whitespace characters in raw
-    #   nt
-    #       the number of tabs in raw[:n]
-    #   norm
-    #       the normal form as a pair (count, trailing), where:
-    #       count
-    #           a tuple such that raw[:n] contains count[i]
-    #           instances of S * i + T
-    #       trailing
-    #           the number of trailing spaces in raw[:n]
-    #       It's A Theorem that m.indent_level(t) ==
-    #       n.indent_level(t) for all t >= 1 iff m.norm == n.norm.
-    #   is_simple
-    #       true iff raw[:n] is of the form (T*)(S*)
-
-    def __init__(self, ws):
-        self.raw  = ws
-        S, T = Whitespace.S, Whitespace.T
-        count = []
-        b = n = nt = 0
-        for ch in self.raw:
-            if ch == S:
-                n = n + 1
-                b = b + 1
-            elif ch == T:
-                n = n + 1
-                nt = nt + 1
-                if b >= len(count):
-                    count = count + [0] * (b - len(count) + 1)
-                count[b] = count[b] + 1
-                b = 0
-            else:
-                break
-        self.n    = n
-        self.nt   = nt
-        self.norm = tuple(count), b
-        self.is_simple = len(count) <= 1
-
-    # return length of longest contiguous run of spaces (whether or not
-    # preceding a tab)
-    def longest_run_of_spaces(self):
-        count, trailing = self.norm
-        return max(len(count)-1, trailing)
-
-    def indent_level(self, tabsize):
-        # count, il = self.norm
-        # for i in range(len(count)):
-        #    if count[i]:
-        #        il = il + (i/tabsize + 1)*tabsize * count[i]
-        # return il
-
-        # quicker:
-        # il = trailing + sum (i/ts + 1)*ts*count[i] =
-        # trailing + ts * sum (i/ts + 1)*count[i] =
-        # trailing + ts * sum i/ts*count[i] + count[i] =
-        # trailing + ts * [(sum i/ts*count[i]) + (sum count[i])] =
-        # trailing + ts * [(sum i/ts*count[i]) + num_tabs]
-        # and note that i/ts*count[i] is 0 when i < ts
-
-        count, trailing = self.norm
-        il = 0
-        for i in range(tabsize, len(count)):
-            il = il + i/tabsize * count[i]
-        return trailing + tabsize * (il + self.nt)
-
-    # return true iff self.indent_level(t) == other.indent_level(t)
-    # for all t >= 1
-    def equal(self, other):
-        return self.norm == other.norm
-
-    # return a list of tuples (ts, i1, i2) such that
-    # i1 == self.indent_level(ts) != other.indent_level(ts) == i2.
-    # Intended to be used after not self.equal(other) is known, in which
-    # case it will return at least one witnessing tab size.
-    def not_equal_witness(self, other):
-        n = max(self.longest_run_of_spaces(),
-                other.longest_run_of_spaces()) + 1
-        a = []
-        for ts in range(1, n+1):
-            if self.indent_level(ts) != other.indent_level(ts):
-                a.append( (ts,
-                           self.indent_level(ts),
-                           other.indent_level(ts)) )
-        return a
-
-    # Return true iff self.indent_level(t) < other.indent_level(t)
-    # for all t >= 1.
-    # The algorithm is due to Vincent Broman.
-    # Easy to prove it's correct.
-    # XXXpost that.
-    # Trivial to prove n is sharp (consider T vs ST).
-    # Unknown whether there's a faster general way.  I suspected so at
-    # first, but no longer.
-    # For the special (but common!) case where M and N are both of the
-    # form (T*)(S*), M.less(N) iff M.len() < N.len() and
-    # M.num_tabs() <= N.num_tabs(). Proof is easy but kinda long-winded.
-    # XXXwrite that up.
-    # Note that M is of the form (T*)(S*) iff len(M.norm[0]) <= 1.
-    def less(self, other):
-        if self.n >= other.n:
-            return 0
-        if self.is_simple and other.is_simple:
-            return self.nt <= other.nt
-        n = max(self.longest_run_of_spaces(),
-                other.longest_run_of_spaces()) + 1
-        # the self.n >= other.n test already did it for ts=1
-        for ts in range(2, n+1):
-            if self.indent_level(ts) >= other.indent_level(ts):
-                return 0
-        return 1
-
-    # return a list of tuples (ts, i1, i2) such that
-    # i1 == self.indent_level(ts) >= other.indent_level(ts) == i2.
-    # Intended to be used after not self.less(other) is known, in which
-    # case it will return at least one witnessing tab size.
-    def not_less_witness(self, other):
-        n = max(self.longest_run_of_spaces(),
-                other.longest_run_of_spaces()) + 1
-        a = []
-        for ts in range(1, n+1):
-            if self.indent_level(ts) >= other.indent_level(ts):
-                a.append( (ts,
-                           self.indent_level(ts),
-                           other.indent_level(ts)) )
-        return a
-
-def format_witnesses(w):
-    import string
-    firsts = map(lambda tup: str(tup[0]), w)
-    prefix = "at tab size"
-    if len(w) > 1:
-        prefix = prefix + "s"
-    return prefix + " " + string.join(firsts, ', ')
-
-# The collection of globals, the reset_globals() function, and the
-# tokeneater() function, depend on which version of tokenize is
-# in use.
-
-if hasattr(tokenize, 'NL'):
- # take advantage of Guido's patch!
-
- indents = []
- check_equal = 0
-
- def reset_globals():
-     global indents, check_equal
-     check_equal = 0
-     indents = [Whitespace("")]
-
- def tokeneater(type, token, start, end, line,
-                INDENT=tokenize.INDENT,
-                DEDENT=tokenize.DEDENT,
-                NEWLINE=tokenize.NEWLINE,
-                JUNK=(tokenize.COMMENT, tokenize.NL) ):
-     global indents, check_equal
-
-     if type == NEWLINE:
-         # a program statement, or ENDMARKER, will eventually follow,
-         # after some (possibly empty) run of tokens of the form
-         #     (NL | COMMENT)* (INDENT | DEDENT+)?
-         # If an INDENT appears, setting check_equal is wrong, and will
-         # be undone when we see the INDENT.
-         check_equal = 1
-
-     elif type == INDENT:
-         check_equal = 0
-         thisguy = Whitespace(token)
-         if not indents[-1].less(thisguy):
-             witness = indents[-1].not_less_witness(thisguy)
-             msg = "indent not greater e.g. " + format_witnesses(witness)
-             raise NannyNag(start[0], msg, line)
-         indents.append(thisguy)
-
-     elif type == DEDENT:
-         # there's nothing we need to check here!  what's important is
-         # that when the run of DEDENTs ends, the indentation of the
-         # program statement (or ENDMARKER) that triggered the run is
-         # equal to what's left at the top of the indents stack
-
-         # Ouch!  This assert triggers if the last line of the source
-         # is indented *and* lacks a newline -- then DEDENTs pop out
-         # of thin air.
-         # assert check_equal  # else no earlier NEWLINE, or an earlier INDENT
-         check_equal = 1
-
-         del indents[-1]
-
-     elif check_equal and type not in JUNK:
-         # this is the first "real token" following a NEWLINE, so it
-         # must be the first token of the next program statement, or an
-         # ENDMARKER; the "line" argument exposes the leading whitespace
-         # for this statement; in the case of ENDMARKER, line is an empty
-         # string, so will properly match the empty string with which the
-         # "indents" stack was seeded
-         check_equal = 0
-         thisguy = Whitespace(line)
-         if not indents[-1].equal(thisguy):
-             witness = indents[-1].not_equal_witness(thisguy)
-             msg = "indent not equal e.g. " + format_witnesses(witness)
-             raise NannyNag(start[0], msg, line)
-
-else:
- # unpatched version of tokenize
-
- nesting_level = 0
- indents = []
- check_equal = 0
-
- def reset_globals():
-     global nesting_level, indents, check_equal
-     nesting_level = check_equal = 0
-     indents = [Whitespace("")]
-
- def tokeneater(type, token, start, end, line,
-                INDENT=tokenize.INDENT,
-                DEDENT=tokenize.DEDENT,
-                NEWLINE=tokenize.NEWLINE,
-                COMMENT=tokenize.COMMENT,
-                OP=tokenize.OP):
-     global nesting_level, indents, check_equal
-
-     if type == INDENT:
-         check_equal = 0
-         thisguy = Whitespace(token)
-         if not indents[-1].less(thisguy):
-             witness = indents[-1].not_less_witness(thisguy)
-             msg = "indent not greater e.g. " + format_witnesses(witness)
-             raise NannyNag(start[0], msg, line)
-         indents.append(thisguy)
-
-     elif type == DEDENT:
-         del indents[-1]
-
-     elif type == NEWLINE:
-         if nesting_level == 0:
-             check_equal = 1
-
-     elif type == COMMENT:
-         pass
-
-     elif check_equal:
-         check_equal = 0
-         thisguy = Whitespace(line)
-         if not indents[-1].equal(thisguy):
-             witness = indents[-1].not_equal_witness(thisguy)
-             msg = "indent not equal e.g. " + format_witnesses(witness)
-             raise NannyNag(start[0], msg, line)
-
-     if type == OP and token in ('{', '[', '('):
-         nesting_level = nesting_level + 1
-
-     elif type == OP and token in ('}', ']', ')'):
-         if nesting_level == 0:
-             raise NannyNag(start[0],
-                            "unbalanced bracket '" + token + "'",
-                            line)
-         nesting_level = nesting_level - 1
-
-if __name__ == '__main__':
-    main()
-
diff --git a/Lib/idlelib/testcode.py b/Lib/idlelib/testcode.py
deleted file mode 100644 (file)
index 05eaa56..0000000
+++ /dev/null
@@ -1,31 +0,0 @@
-import string
-
-def f():
-    a = 0
-    b = 1
-    c = 2
-    d = 3
-    e = 4
-    g()
-
-def g():
-    h()
-
-def h():
-    i()
-
-def i():
-    j()
-
-def j():
-    k()
-
-def k():
-    l()
-
-l = lambda: test()
-
-def test():
-    string.capwords(1)
-
-f()
diff --git a/Lib/macstat.py b/Lib/macstat.py
deleted file mode 100755 (executable)
index 4b53953..0000000
+++ /dev/null
@@ -1,83 +0,0 @@
-# Module 'stat'
-#
-# Defines constants and functions for interpreting stat/lstat struct
-# as returned by os.stat() and os.lstat() (if it exists).
-#
-# Suggested usage: from stat import *
-#
-# XXX Strictly spoken, this module may have to be adapted for each POSIX
-# implementation; in practice, however, the numeric constants used by
-# stat() are almost universal (even for stat() emulations on non-UNIX
-# systems like MS-DOS).
-
-# Indices for stat struct members in tuple returned by os.stat()
-
-ST_MODE  = 0
-ST_INO   = 1
-ST_DEV   = 2
-ST_NLINK = 3
-ST_UID   = 4
-ST_GID   = 5
-ST_SIZE  = 6
-ST_ATIME = 7
-ST_MTIME = 8
-ST_CTIME = 9
-
-# Extract bits from the mode
-
-def S_IMODE(mode):
-       return 0
-
-def S_IFMT(mode):
-       return mode & 0xFFFF
-
-# Constants used as S_IFMT() for various file types
-# (not all are implemented on all systems)
-
-S_IFDIR  = 0x0000
-S_IFREG  = 0x0003
-
-# Functions to test for each file type
-
-def S_ISDIR(mode):
-       return S_IFMT(mode) == S_IFDIR
-
-def S_ISCHR(mode):
-       return 0
-
-def S_ISBLK(mode):
-       return 0
-
-def S_ISREG(mode):
-       return S_IFMT(mode) == S_IFREG
-
-def S_ISFIFO(mode):
-       return 0
-
-def S_ISLNK(mode):
-       return 0
-
-def S_ISSOCK(mode):
-       return 0
-
-# Names for permission bits
-
-S_ISUID = 04000
-S_ISGID = 02000
-S_ENFMT = S_ISGID
-S_ISVTX = 01000
-S_IREAD = 00400
-S_IWRITE = 00200
-S_IEXEC = 00100
-S_IRWXU = 00700
-S_IRUSR = 00400
-S_IWUSR = 00200
-S_IXUSR = 00100
-S_IRWXG = 00070
-S_IRGRP = 00040
-S_IWGRP = 00020
-S_IXGRP = 00010
-S_IRWXO = 00007
-S_IROTH = 00004
-S_IWOTH = 00002
-S_IXOTH = 00001
diff --git a/Lib/persist.py b/Lib/persist.py
deleted file mode 100755 (executable)
index 8f0f164..0000000
+++ /dev/null
@@ -1,297 +0,0 @@
-# persist.py
-#
-# Implement limited persistence.
-#
-# Simple interface:
-#      persist.save()          save __main__ module on file (overwrite)
-#      persist.load()          load __main__ module from file (merge)
-#
-# These use the filename persist.defaultfile, initialized to 'wsrestore.py'.
-#
-# A raw interface also exists:
-#      persist.writedict(dict, fp)     save dictionary to open file
-#      persist.readdict(dict, fp)      read (merge) dictionary from open file
-#
-# Internally, the function dump() and a whole bunch of support of functions
-# traverse a graph of objects and print them in a restorable form
-# (which happens to be a Python module).
-#
-# XXX Limitations:
-# - Volatile objects are dumped as strings:
-#   - open files, windows etc.
-# - Other 'obscure' objects are dumped as strings:
-#   - classes, instances and methods
-#   - compiled regular expressions
-#   - anything else reasonably obscure (e.g., capabilities)
-#   - type objects for obscure objects
-# - It's slow when there are many of lists or dictionaries
-#   (This could be fixed if there were a quick way to compute a hash
-#   function of any object, even if recursive)
-
-defaultfile = 'wsrestore.py'
-
-def save():
-       import __main__
-       import os
-       # XXX On SYSV, if len(defaultfile) >= 14, this is wrong!
-       backup = defaultfile + '~'
-       try:
-               os.unlink(backup)
-       except os.error:
-               pass
-       try:
-               os.rename(defaultfile, backup)
-       except os.error:
-               pass
-       fp = open(defaultfile, 'w')
-       writedict(__main__.__dict__, fp)
-       fp.close()
-
-def load():
-       import __main__
-       fp = open(defaultfile, 'r')
-       readdict(__main__.__dict__, fp)
-
-def writedict(dict, fp):
-       import sys
-       savestdout = sys.stdout
-       try:
-               sys.stdout = fp
-               dump(dict)      # Writes to sys.stdout
-       finally:
-               sys.stdout = savestdout
-
-def readdict(dict, fp):
-       contents = fp.read()
-       globals = {}
-       exec(contents, globals)
-       top = globals['top']
-       for key in top.keys():
-               if dict.has_key(key):
-                       print 'warning:', key, 'not overwritten'
-               else:
-                       dict[key] = top[key]
-
-
-# Function dump(x) prints (on sys.stdout!) a sequence of Python statements
-# that, when executed in an empty environment, will reconstruct the
-# contents of an arbitrary dictionary.
-
-import sys
-
-# Name used for objects dict on output.
-#
-FUNNYNAME = FN = 'A'
-
-# Top-level function.  Call with the object you want to dump.
-#
-def dump(x):
-       types = {}
-       stack = []                      # Used by test for recursive objects
-       print FN, '= {}'
-       topuid = dumpobject(x, types, stack)
-       print 'top =', FN, '[', `topuid`, ']'
-
-# Generic function to dump any object.
-#
-dumpswitch = {}
-#
-def dumpobject(x, types, stack):
-       typerepr = `type(x)`
-       if not types.has_key(typerepr):
-               types[typerepr] = {}
-       typedict = types[typerepr]
-       if dumpswitch.has_key(typerepr):
-               return dumpswitch[typerepr](x, typedict, types, stack)
-       else:
-               return dumpbadvalue(x, typedict, types, stack)
-
-# Generic function to dump unknown values.
-# This assumes that the Python interpreter prints such values as
-# <foo object at xxxxxxxx>.
-# The object will be read back as a string: '<foo object at xxxxxxxx>'.
-# In some cases it may be possible to fix the dump manually;
-# to ease the editing, these cases are labeled with an XXX comment.
-#
-def dumpbadvalue(x, typedict, types, stack):
-       xrepr = `x`
-       if typedict.has_key(xrepr):
-               return typedict[xrepr]
-       uid = genuid()
-       typedict[xrepr] = uid
-       print FN, '[', `uid`, '] =', `xrepr`, '# XXX'
-       return uid
-
-# Generic function to dump pure, simple values, except strings
-#
-def dumpvalue(x, typedict, types, stack):
-       xrepr = `x`
-       if typedict.has_key(xrepr):
-               return typedict[xrepr]
-       uid = genuid()
-       typedict[xrepr] = uid
-       print FN, '[', `uid`, '] =', `x`
-       return uid
-
-# Functions to dump string objects
-#
-def dumpstring(x, typedict, types, stack):
-       # XXX This can break if strings have embedded '\0' bytes
-       # XXX because of a bug in the dictionary module
-       if typedict.has_key(x):
-               return typedict[x]
-       uid = genuid()
-       typedict[x] = uid
-       print FN, '[', `uid`, '] =', `x`
-       return uid
-
-# Function to dump type objects
-#
-typeswitch = {}
-class some_class:
-       def method(self): pass
-some_instance = some_class()
-#
-def dumptype(x, typedict, types, stack):
-       xrepr = `x`
-       if typedict.has_key(xrepr):
-               return typedict[xrepr]
-       uid = genuid()
-       typedict[xrepr] = uid
-       if typeswitch.has_key(xrepr):
-               print FN, '[', `uid`, '] =', typeswitch[xrepr]
-       elif x == type(sys):
-               print 'import sys'
-               print FN, '[', `uid`, '] = type(sys)'
-       elif x == type(sys.stderr):
-               print 'import sys'
-               print FN, '[', `uid`, '] = type(sys.stderr)'
-       elif x == type(dumptype):
-               print 'def some_function(): pass'
-               print FN, '[', `uid`, '] = type(some_function)'
-       elif x == type(some_class):
-               print 'class some_class: pass'
-               print FN, '[', `uid`, '] = type(some_class)'
-       elif x == type(some_instance):
-               print 'class another_class: pass'
-               print 'some_instance = another_class()'
-               print FN, '[', `uid`, '] = type(some_instance)'
-       elif x == type(some_instance.method):
-               print 'class yet_another_class:'
-               print '    def method(): pass'
-               print 'another_instance = yet_another_class()'
-               print FN, '[', `uid`, '] = type(another_instance.method)'
-       else:
-               # Unknown type
-               print FN, '[', `uid`, '] =', `xrepr`, '# XXX'
-       return uid
-
-# Initialize the typeswitch
-#
-for x in None, 0, 0.0, '', (), [], {}:
-       typeswitch[`type(x)`] = 'type(' + `x` + ')'
-for s in 'type(0)', 'abs', '[].append':
-       typeswitch[`type(eval(s))`] = 'type(' + s + ')'
-
-# Dump a tuple object
-#
-def dumptuple(x, typedict, types, stack):
-       item_uids = []
-       xrepr = ''
-       for item in x:
-               item_uid = dumpobject(item, types, stack)
-               item_uids.append(item_uid)
-               xrepr = xrepr + ' ' + item_uid
-       del stack[-1:]
-       if typedict.has_key(xrepr):
-               return typedict[xrepr]
-       uid = genuid()
-       typedict[xrepr] = uid
-       print FN, '[', `uid`, '] = (',
-       for item_uid in item_uids:
-               print FN, '[', `item_uid`, '],',
-       print ')'
-       return uid
-
-# Dump a list object
-#
-def dumplist(x, typedict, types, stack):
-       # Check for recursion
-       for x1, uid1 in stack:
-               if x is x1: return uid1
-       # Check for occurrence elsewhere in the typedict
-       for uid1 in typedict.keys():
-               if x is typedict[uid1]: return uid1
-       # This uses typedict differently!
-       uid = genuid()
-       typedict[uid] = x
-       print FN, '[', `uid`, '] = []'
-       stack.append(x, uid)
-       item_uids = []
-       for item in x:
-               item_uid = dumpobject(item, types, stack)
-               item_uids.append(item_uid)
-       del stack[-1:]
-       for item_uid in item_uids:
-               print FN, '[', `uid`, '].append(', FN, '[', `item_uid`, '])'
-       return uid
-
-# Dump a dictionary object
-#
-def dumpdict(x, typedict, types, stack):
-       # Check for recursion
-       for x1, uid1 in stack:
-               if x is x1: return uid1
-       # Check for occurrence elsewhere in the typedict
-       for uid1 in typedict.keys():
-               if x is typedict[uid1]: return uid1
-       # This uses typedict differently!
-       uid = genuid()
-       typedict[uid] = x
-       print FN, '[', `uid`, '] = {}'
-       stack.append(x, uid)
-       item_uids = []
-       for key in x.keys():
-               val_uid = dumpobject(x[key], types, stack)
-               item_uids.append(key, val_uid)
-       del stack[-1:]
-       for key, val_uid in item_uids:
-               print FN, '[', `uid`, '][', `key`, '] =',
-               print FN, '[', `val_uid`, ']'
-       return uid
-
-# Dump a module object
-#
-def dumpmodule(x, typedict, types, stack):
-       xrepr = `x`
-       if typedict.has_key(xrepr):
-               return typedict[xrepr]
-       from string import split
-       # `x` has the form <module 'foo'>
-       name = xrepr[9:-2]
-       uid = genuid()
-       typedict[xrepr] = uid
-       print 'import', name
-       print FN, '[', `uid`, '] =', name
-       return uid
-
-
-# Initialize dumpswitch, a table of functions to dump various objects,
-# indexed by `type(x)`.
-#
-for x in None, 0, 0.0:
-       dumpswitch[`type(x)`] = dumpvalue
-for x, f in ('', dumpstring), (type(0), dumptype), ((), dumptuple), \
-               ([], dumplist), ({}, dumpdict), (sys, dumpmodule):
-       dumpswitch[`type(x)`] = f
-
-
-# Generate the next unique id; a string consisting of digits.
-# The seed is stored as seed[0].
-#
-seed = [0]
-#
-def genuid():
-       x = seed[0]
-       seed[0] = seed[0] + 1
-       return `x`
diff --git a/Mac/Build/PythonCore.exp b/Mac/Build/PythonCore.exp
deleted file mode 100644 (file)
index 8b89f24..0000000
+++ /dev/null
@@ -1,2560 +0,0 @@
-sSuffices
-GUSISetupConfig
-GUSISetupDevices
-GUSISetupFactories
-gusisioux_state
-__vt__15GUSISIOUXDevice                # GUSISIOUXDevice::__vt
-__vt__15GUSISIOUXSocket                # GUSISIOUXSocket::__vt
-sInstance__15GUSISIOUXDevice           # GUSISIOUXDevice::sInstance
-sInstance__15GUSISIOUXSocket           # GUSISIOUXSocket::sInstance
-__dt__15GUSISIOUXDeviceFv              # GUSISIOUXDevice::~GUSISIOUXDevice()
-GUSISetupConsoleDescriptors
-open__15GUSISIOUXDeviceFR13GUSIFileTokeni              # GUSISIOUXDevice::open(GUSIFileToken&,int)
-Want__15GUSISIOUXDeviceFR13GUSIFileToken               # GUSISIOUXDevice::Want(GUSIFileToken&)
-__dt__10GUSIDeviceFv           # GUSIDevice::~GUSIDevice()
-Instance__15GUSISIOUXDeviceFv          # GUSISIOUXDevice::Instance()
-select__15GUSISIOUXSocketFPbPbPb               # GUSISIOUXSocket::select(bool*,bool*,bool*)
-isatty__15GUSISIOUXSocketFv            # GUSISIOUXSocket::isatty()
-fstat__15GUSISIOUXSocketFP4stat                # GUSISIOUXSocket::fstat(stat*)
-ioctl__15GUSISIOUXSocketFUiPc          # GUSISIOUXSocket::ioctl(unsigned int,char*)
-write__15GUSISIOUXSocketFRC12GUSIGatherer              # GUSISIOUXSocket::write(const GUSIGatherer&)
-read__15GUSISIOUXSocketFRC13GUSIScatterer              # GUSISIOUXSocket::read(const GUSIScatterer&)
-__dt__15GUSISIOUXSocketFv              # GUSISIOUXSocket::~GUSISIOUXSocket()
-Initialize__15GUSISIOUXSocketFv                # GUSISIOUXSocket::Initialize()
-__ct__15GUSISIOUXSocketFv              # GUSISIOUXSocket::GUSISIOUXSocket()
-Instance__15GUSISIOUXSocketFv          # GUSISIOUXSocket::Instance()
-_PyBuiltin_Init
-_PyEval_SliceIndex
-PyEval_CallObjectWithKeywords
-PyEval_CallObject
-Py_FlushLine
-PyEval_GetRestricted
-PyEval_GetFrame
-PyEval_GetGlobals
-PyEval_GetLocals
-PyEval_GetBuiltins
-PyEval_EvalCode
-Py_SetRecursionLimit
-Py_GetRecursionLimit
-Py_MakePendingCalls
-Py_AddPendingCall
-PyEval_RestoreThread
-PyEval_SaveThread
-PyEval_ReInitThreads
-PyEval_ReleaseThread
-PyEval_AcquireThread
-PyEval_ReleaseLock
-PyEval_AcquireLock
-PyEval_InitThreads
-PyArg_GetFloatArray
-PyArg_GetDoubleArray
-PyArg_GetShortArray
-PyArg_GetLongArray
-PyArg_GetShortArraySize
-PyArg_GetLongArraySize
-PyArg_GetChar
-PyArg_GetString
-PyArg_GetFloat
-PyArg_GetShort
-PyArg_GetLong
-PyArg_GetObject
-PyErr_Warn
-PyErr_WriteUnraisable
-PyErr_NewException
-PyErr_Format
-PyErr_BadInternalCall
-_PyErr_BadInternalCall
-PyErr_SetFromErrno
-PyErr_SetFromErrnoWithFilename
-PyErr_NoMemory
-PyErr_BadArgument
-PyErr_Clear
-PyErr_Fetch
-PyErr_NormalizeException
-PyErr_ExceptionMatches
-PyErr_GivenExceptionMatches
-PyErr_Occurred
-PyErr_SetString
-PyErr_SetNone
-PyErr_SetObject
-PyErr_Restore
-PyImport_FrozenModules
-PyArg_ParseTupleAndKeywords
-PyArg_VaParse
-PyArg_ParseTuple
-PyArg_Parse
-Py_GetCopyright
-PyOS_GetLastModificationTime
-_PyOS_opterr
-_PyOS_optind
-_PyOS_optarg
-_PyOS_GetOpt
-Py_GetVersion
-_PyParser_Grammar
-PyImport_Inittab
-_PyImport_Filetab
-PyImport_AppendInittab
-PyImport_ExtendInittab
-initimp
-PyImport_Import
-PyImport_ReloadModule
-PyImport_ImportModuleEx
-PyImport_ImportModule
-PyImport_ImportFrozenModule
-PyImport_ExecCodeModuleEx
-PyImport_ExecCodeModule
-PyImport_AddModule
-_PyImport_FindExtension
-_PyImport_FixupExtension
-PyImport_GetMagicNumber
-PyImport_Cleanup
-PyImport_GetModuleDict
-_PyImport_Fini
-_PyImport_Init
-_PyImport_LoadDynamicModule
-PyMarshal_Init
-PyMarshal_WriteObjectToString
-PyMarshal_ReadObjectFromString
-PyMarshal_ReadObjectFromFile
-PyMarshal_ReadLastObjectFromFile
-PyMarshal_ReadLongFromFile
-PyMarshal_WriteObjectToFile
-PyMarshal_WriteLongToFile
-_Py_PackageContext
-PyModule_AddStringConstant
-PyModule_AddIntConstant
-PyModule_AddObject
-PyEval_CallMethod
-PyEval_CallFunction
-Py_VaBuildValue
-Py_BuildValue
-Py_InitModule4
-PyOS_strtol
-PyOS_strtoul
-Py_UseClassExceptionsFlag
-Py_DebugFlag
-Py_VerboseFlag
-Py_InteractiveFlag
-Py_NoSiteFlag
-Py_FrozenFlag
-_PyThread_Started
-Py_UnicodeFlag
-PyOS_setsig
-PyOS_getsig
-Py_FdIsInteractive
-Py_Exit
-Py_AtExit
-Py_FatalError
-PyParser_SimpleParseString
-PyParser_SimpleParseFile
-Py_SymtableString
-Py_CompileString
-PyRun_FileEx
-PyRun_File
-PyRun_String
-PyErr_PrintEx
-PyErr_Print
-PyRun_SimpleString
-PyRun_SimpleFileEx
-PyRun_SimpleFile
-PyRun_InteractiveOne
-PyRun_InteractiveLoop
-PyRun_AnyFileEx
-PyRun_AnyFile
-Py_GetPythonHome
-Py_SetPythonHome
-Py_GetProgramName
-Py_SetProgramName
-Py_EndInterpreter
-Py_NewInterpreter
-Py_Finalize
-Py_Initialize
-Py_IsInitialized
-_PyThreadState_Current
-PyThreadState_GetDict
-PyThreadState_Swap
-PyThreadState_Get
-PyThreadState_DeleteCurrent
-PyThreadState_Delete
-PyThreadState_Clear
-PyThreadState_New
-PyInterpreterState_Delete
-PyInterpreterState_Clear
-PyInterpreterState_New
-PyMember_Set
-PyMember_Get
-PySys_WriteStderr
-PySys_WriteStdout
-PySys_SetArgv
-PySys_SetPath
-_PySys_Init
-PySys_AddWarnOption
-PySys_ResetWarnOptions
-PySys_SetObject
-PySys_GetFile
-PySys_GetObject
-PyTraceBack_Type
-PyTraceBack_Print
-PyTraceBack_Here
-PyCode_Type
-Py_OptimizeFlag
-PySymtable_Free
-PyCode_Addr2Line
-PyNode_CompileSymtable
-PyNode_Compile
-is_free
-PyCode_New
-PyObject_CallMethod
-PyObject_CallFunction
-PyObject_CallObject
-PyMapping_HasKey
-PyMapping_HasKeyString
-PyMapping_SetItemString
-PyMapping_GetItemString
-PyMapping_Length
-PyMapping_Size
-PyMapping_Check
-PySequence_Index
-PySequence_In
-PySequence_Contains
-PySequence_Count
-PySequence_Fast
-PySequence_List
-PySequence_Tuple
-PySequence_DelSlice
-PySequence_SetSlice
-PySequence_DelItem
-PySequence_SetItem
-PySequence_GetSlice
-PySequence_GetItem
-PySequence_InPlaceRepeat
-PySequence_InPlaceConcat
-PySequence_Repeat
-PySequence_Concat
-PySequence_Length
-PySequence_Size
-PySequence_Check
-PyNumber_Float
-PyNumber_Long
-PyNumber_Int
-PyNumber_Absolute
-PyNumber_Invert
-PyNumber_Positive
-PyNumber_Negative
-PyNumber_InPlacePower
-PyNumber_InPlaceRemainder
-PyNumber_InPlaceMultiply
-PyNumber_InPlaceAdd
-PyNumber_InPlaceDivide
-PyNumber_InPlaceSubtract
-PyNumber_InPlaceRshift
-PyNumber_InPlaceLshift
-PyNumber_InPlaceAnd
-PyNumber_InPlaceXor
-PyNumber_InPlaceOr
-PyNumber_Power
-PyNumber_Remainder
-PyNumber_Add
-PyNumber_Divmod
-PyNumber_Divide
-PyNumber_Multiply
-PyNumber_Subtract
-PyNumber_Rshift
-PyNumber_Lshift
-PyNumber_And
-PyNumber_Xor
-PyNumber_Or
-PyNumber_Check
-PyObject_AsWriteBuffer
-PyObject_AsReadBuffer
-PyObject_AsCharBuffer
-PyObject_DelItem
-PyObject_SetItem
-PyObject_GetItem
-PyObject_Length
-PyObject_Size
-PyObject_Type
-PyObject_Cmp
-PyClass_Type
-PyInstance_Type
-PyMethod_Type
-PyMethod_Fini
-PyMethod_Class
-PyMethod_Self
-PyMethod_Function
-PyMethod_New
-PyInstance_New
-PyInstance_NewRaw
-PyClass_IsSubclass
-PyClass_New
-PyCObject_Type
-PyCObject_Import
-PyCObject_GetDesc
-PyCObject_AsVoidPtr
-PyCObject_FromVoidPtrAndDesc
-PyCObject_FromVoidPtr
-PyComplex_Type
-PyComplex_AsCComplex
-PyComplex_ImagAsDouble
-PyComplex_RealAsDouble
-PyComplex_FromDoubles
-PyComplex_FromCComplex
-_Py_c_pow
-_Py_c_quot
-_Py_c_prod
-_Py_c_neg
-_Py_c_diff
-_Py_c_sum
-PyDict_Type
-PyDict_DelItemString
-PyDict_SetItemString
-PyDict_GetItemString
-PyDict_Items
-PyDict_Values
-PyDict_Keys
-PyDict_Size
-PyDict_Copy
-PyDict_Next
-PyDict_Clear
-PyDict_DelItem
-PyDict_SetItem
-PyDict_GetItem
-PyDict_New
-PyFile_Type
-PyObject_AsFileDescriptor
-PyFile_WriteString
-PyFile_WriteObject
-PyFile_SoftSpace
-PyFile_GetLine
-_portable_ftell
-_portable_fseek
-PyFile_SetBufSize
-PyFile_FromString
-PyFile_FromFile
-PyFile_Name
-PyFile_AsFile
-PyFloat_Type
-PyFloat_Fini
-PyFloat_AsString
-PyFloat_AsStringEx
-PyFloat_AsDouble
-PyFloat_FromString
-PyFloat_FromDouble
-PyFrame_Type
-PyFrame_Fini
-PyFrame_LocalsToFast
-PyFrame_FastToLocals
-PyFrame_BlockPop
-PyFrame_BlockSetup
-PyFrame_New
-PyFunction_Type
-PyFunction_SetClosure
-PyFunction_GetClosure
-PyFunction_SetDefaults
-PyFunction_GetDefaults
-PyFunction_GetGlobals
-PyFunction_GetCode
-PyFunction_New
-_Py_ZeroStruct
-_Py_TrueStruct
-PyInt_Type
-PyInt_Fini
-PyInt_FromUnicode
-PyInt_FromString
-PyInt_AsLong
-PyInt_FromLong
-PyInt_GetMax
-PyList_Type
-PyList_AsTuple
-PyList_Reverse
-PyList_Sort
-PyList_SetSlice
-PyList_GetSlice
-PyList_Append
-PyList_Insert
-PyList_SetItem
-PyList_GetItem
-PyList_Size
-PyList_New
-PyLong_Type
-PyLong_FromUnicode
-PyLong_FromString
-PyLong_AsVoidPtr
-PyLong_FromVoidPtr
-PyLong_AsDouble
-PyLong_AsUnsignedLong
-PyLong_AsLong
-PyLong_FromDouble
-PyLong_FromUnsignedLong
-PyLong_FromLong
-_PyLong_New
-PyCFunction_Type
-PyCFunction_Fini
-Py_FindMethod
-Py_FindMethodInChain
-PyCFunction_GetFlags
-PyCFunction_GetSelf
-PyCFunction_GetFunction
-PyCFunction_New
-PyModule_Type
-_PyModule_Clear
-PyModule_GetFilename
-PyModule_GetName
-PyModule_GetDict
-PyModule_New
-_Py_NoneStruct
-_Py_NotImplementedStruct
-_Py_cobject_hack
-_Py_abstract_hack
-PyObject_ClearWeakRefs
-_PyTrash_delete_later
-_PyTrash_delete_nesting
-_PyTrash_destroy_chain
-_PyTrash_deposit_object
-Py_ReprLeave
-Py_ReprEnter
-PyObject_Free
-PyObject_Realloc
-PyObject_Malloc
-PyMem_Free
-PyMem_Realloc
-PyMem_Malloc
-PyCallable_Check
-PyNumber_Coerce
-PyNumber_CoerceEx
-PyObject_Not
-PyObject_IsTrue
-PyObject_SetAttr
-PyObject_HasAttr
-PyObject_GetAttr
-PyObject_SetAttrString
-PyObject_HasAttrString
-PyObject_GetAttrString
-PyObject_Hash
-_Py_HashPointer
-_Py_HashDouble
-PyObject_RichCompareBool
-PyObject_RichCompare
-PyObject_Compare
-PyObject_Unicode
-PyObject_Str
-PyObject_Repr
-_PyObject_Dump
-PyObject_Print
-_PyGC_Remove
-_PyGC_Insert
-_PyObject_Del
-_PyObject_NewVar
-_PyObject_New
-PyObject_InitVar
-PyObject_Init
-PyRange_Type
-PyRange_New
-_Py_EllipsisObject
-PySlice_Type
-PySlice_GetIndices
-PySlice_New
-PyString_Type
-PyString_Fini
-PyString_InternFromString
-PyString_InternInPlace
-PyString_Format
-_PyString_FormatLong
-_PyString_Resize
-PyString_ConcatAndDel
-PyString_Concat
-PyString_AsStringAndSize
-PyString_AsString
-PyString_Size
-PyString_AsEncodedString
-PyString_Encode
-PyString_Decode
-PyString_FromString
-PyString_FromStringAndSize
-PyTuple_Type
-PyTuple_Fini
-_PyTuple_Resize
-PyTuple_GetSlice
-PyTuple_SetItem
-PyTuple_GetItem
-PyTuple_Size
-PyTuple_New
-PyType_Type
-PyGrammar_RemoveAccelerators
-PyGrammar_AddAccelerators
-PyGrammar_LabelRepr
-PyGrammar_FindDFA
-PyOS_AfterFork
-PyOS_ReadlineFunctionPointer
-PyOS_InputHook
-PyOS_Readline
-PyOS_StdioReadline
-PyNode_Free
-PyNode_AddChild
-PyNode_New
-PyParser_AddToken
-PyParser_Delete
-PyParser_New
-Py_TabcheckFlag
-PyParser_ParseFile
-PyParser_ParseString
-_PyParser_TokenNames
-PyTokenizer_Get
-PyToken_ThreeChars
-PyToken_TwoChars
-PyToken_OneChar
-PyTokenizer_Free
-PyTokenizer_FromFile
-PyTokenizer_FromString
-array_methods
-initarray
-initaudioop
-initbinascii
-initcmath
-initerrno
-Py_GetBuildInfo
-initimageop
-initmath
-_Py_MD5Final
-_Py_MD5Update
-_Py_MD5Init
-initmd5
-new_doc
-initnew
-initoperator
-initparser
-initregex
-_Py_re_syntax_table
-_Py_re_syntax
-_Py_re_search
-_Py_re_match
-_Py_re_compile_pattern
-_Py_re_compile_fastmap
-_Py_re_set_syntax
-_Py_re_compile_initialize
-initrgbimg
-initrotor
-initselect
-gethostbyname_lock
-init_socket
-initstrop
-initstruct
-inittime
-FindApplicationFromCreator
-PyMac_ApplicationFSSpec
-PyMac_ApplicationPath
-open_doc_upp
-open_app_upp
-not_upp
-PyMac_GetArgv
-PyMac_GetFullPath
-PyMac_init_process_location
-strdup
-Py_GetCompiler
-PyMac_PreferenceOptions
-PyMac_GetPythonPath
-PyMac_GetPythonDir
-PyMac_OpenPrefFile
-Py_GetPath
-Py_GetPlatform
-PyMac_ConsoleIsDead
-PyMac_AppearanceCompliant
-PyMac_OSErrException
-PyMac_Buildwide
-PyMac_Getwide
-PyMac_BuildFixed
-PyMac_GetFixed
-PyMac_GetEventRecord
-PyMac_BuildPoint
-PyMac_GetPoint
-PyMac_BuildRect
-PyMac_GetRect
-PyMac_BuildFSSpec
-PyMac_GetFSSpec
-PyMac_BuildOptStr255
-PyMac_BuildStr255
-PyMac_GetStr255
-PyMac_BuildNumVersion
-PyMac_BuildOSType
-PyMac_GetOSType
-PyMac_PromptGetFile
-PyMac_GetDirectory
-SIOUXDoAboutBox
-PyMac_RestoreMenuBar
-PyMac_InitMenuBar
-PyMac_SetSchedParams
-PyMac_GetSchedParams
-PyMac_DoYield
-PyMac_HandleEvent
-PyMac_BuildEventRecord
-PyMac_HandleEventIntern
-PyMac_SetEventHandler
-PyOS_InterruptOccurred
-PyErr_CheckSignals
-PyOS_FiniInterrupts
-PyOS_InitInterrupts
-PyOS_CheckStack
-PyMac_Error
-PyErr_Mac
-PyMac_GetOSErrException
-PyMac_StrError
-c2pstrcpy
-Pstring
-PLstrrchr
-PLstrcmp
-PLstrcpy
-PyMac_StopGUSISpin
-RotateCursor
-SpinCursor
-PyMac_getscript
-PyMac_AppRefNum
-PyMac_options
-console_output_state
-PyMac_GetDelayConsoleFlag
-Py_GetExecPrefix
-Py_GetPrefix
-Py_GetArgcArgv
-Py_GetProgramFullPath
-PyMac_Exit
-PyMac_OutputNotSeen
-PyMac_OutputSeen
-PyMac_InitApplication
-PyMac_Initialize
-PyMac_InitApplet
-PyMac_getfiletype
-PyMac_setfiletype
-main
-PyMac_AddLibResources
-__initialize_with_resources
-getbootvol
-getwd
-macstat
-sync
-initgestalt
-initmacfs
-newmfssobject
-mfs_GetFSSpecFSSpec
-initmac
-initMacOS
-Pcre_Type
-initpcre
-pcre_lcc
-pcre_fcc
-pcre_cbits
-pcre_ctypes
-pcre_malloc
-pcre_free
-pcre_exec
-pcre_compile
-pcre_info
-pcre_version
-pcre_study
-initcPickle
-Pickler_setattr
-cPickle_PyMapping_HasKey
-initcStringIO
-PyMac_FindModuleExtension
-PyMac_LoadResourceModule
-PyMac_LoadCodeResourceModule
-PyMac_FindCodeResourceModule
-PyMac_FindResourceModule
-_PyImport_Inittab
-CtlObj_chain
-Control_Type
-initCtl
-CtlObj_Convert
-CtlObj_New
-DlgObj_chain
-Dialog_Type
-initDlg
-DlgObj_ConvertToWindow
-DlgObj_Convert
-DlgObj_New
-DlgObj_WhichDialog
-MenuObj_chain
-Menu_Type
-initMenu
-MenuObj_Convert
-MenuObj_New
-GrafObj_chain
-GrafPort_Type
-BMObj_chain
-BitMap_Type
-QDGlobalsAccess_Type
-initQd
-BMObj_NewCopied
-BMObj_Convert
-BMObj_New
-GrafObj_Convert
-GrafObj_New
-QdRGB_Convert
-QdRGB_New
-ResObj_chain
-Resource_Type
-initRes
-OptResObj_Convert
-OptResObj_New
-ResObj_Convert
-ResObj_New
-WinObj_chain
-Window_Type
-initWin
-WinObj_WhichWindow
-WinObj_Convert
-WinObj_New
-PyBuffer_Type
-PyBuffer_New
-PyBuffer_FromReadWriteMemory
-PyBuffer_FromMemory
-PyBuffer_FromReadWriteObject
-PyBuffer_FromObject
-_PyImport_DynLoadFiletab
-_PyImport_GetDynLoadFunc
-init_codecs
-_PyUnicode_Database_Records
-_PyUnicode_CategoryNames
-_PyUnicode_BidirectionalNames
-initunicodedata
-_PyCodecRegistry_Fini
-_PyCodecRegistry_Init
-PyCodec_Decode
-PyCodec_Encode
-PyCodec_StreamWriter
-PyCodec_StreamReader
-PyCodec_Decoder
-PyCodec_Encoder
-_PyCodec_Lookup
-PyCodec_Register
-_PyUnicode_TypeRecords
-_PyUnicode_IsAlpha
-_PyUnicode_ToLowercase
-_PyUnicode_ToUppercase
-_PyUnicode_IsUppercase
-_PyUnicode_IsLowercase
-_PyUnicode_IsWhitespace
-_PyUnicode_IsNumeric
-_PyUnicode_ToNumeric
-_PyUnicode_IsDigit
-_PyUnicode_ToDigit
-_PyUnicode_IsDecimalDigit
-_PyUnicode_ToDecimalDigit
-_PyUnicode_IsTitlecase
-_PyUnicode_ToTitlecase
-_PyUnicode_IsLinebreak
-PyUnicode_Type
-_PyUnicode_Fini
-_PyUnicode_Init
-PyUnicode_Format
-PyUnicode_Split
-PyUnicode_Replace
-PyUnicode_Concat
-PyUnicode_Contains
-PyUnicode_Compare
-PyUnicode_Splitlines
-PyUnicode_Join
-PyUnicode_Tailmatch
-PyUnicode_Find
-PyUnicode_Count
-PyUnicode_EncodeDecimal
-PyUnicode_Translate
-PyUnicode_TranslateCharmap
-PyUnicode_AsCharmapString
-PyUnicode_EncodeCharmap
-PyUnicode_DecodeCharmap
-PyUnicode_AsASCIIString
-PyUnicode_EncodeASCII
-PyUnicode_DecodeASCII
-PyUnicode_AsLatin1String
-PyUnicode_EncodeLatin1
-PyUnicode_DecodeLatin1
-PyUnicode_AsRawUnicodeEscapeString
-PyUnicode_EncodeRawUnicodeEscape
-PyUnicode_DecodeRawUnicodeEscape
-PyUnicode_AsUnicodeEscapeString
-PyUnicode_EncodeUnicodeEscape
-PyUnicode_DecodeUnicodeEscape
-PyUnicode_AsUTF16String
-PyUnicode_EncodeUTF16
-PyUnicode_DecodeUTF16
-PyUnicode_AsUTF8String
-PyUnicode_EncodeUTF8
-PyUnicode_DecodeUTF8
-PyUnicode_SetDefaultEncoding
-PyUnicode_GetDefaultEncoding
-PyUnicode_GetSize
-PyUnicode_AsUnicode
-_PyUnicode_AsDefaultEncodedString
-PyUnicode_AsEncodedString
-PyUnicode_Encode
-PyUnicode_Decode
-PyUnicode_FromEncodedObject
-PyUnicode_FromObject
-PyUnicode_FromUnicode
-PyUnicode_Resize
-initthread
-PyThread_up_sema
-PyThread_down_sema
-PyThread_free_sema
-PyThread_allocate_sema
-PyThread_release_lock
-PyThread_acquire_lock
-PyThread_free_lock
-PyThread_allocate_lock
-PyThread__exit_thread
-PyThread_exit_thread
-PyThread_get_thread_ident
-PyThread_start_new_thread
-PyThread_init_thread
-SystemExit_methods
-SyntaxError_methods
-PyExc_Exception
-PyExc_StandardError
-PyExc_ArithmeticError
-PyExc_LookupError
-PyExc_AssertionError
-PyExc_AttributeError
-PyExc_EOFError
-PyExc_FloatingPointError
-PyExc_EnvironmentError
-PyExc_IOError
-PyExc_OSError
-PyExc_ImportError
-PyExc_IndexError
-PyExc_KeyError
-PyExc_KeyboardInterrupt
-PyExc_MemoryError
-PyExc_NameError
-PyExc_OverflowError
-PyExc_RuntimeError
-PyExc_NotImplementedError
-PyExc_SyntaxError
-PyExc_IndentationError
-PyExc_TabError
-PyExc_SystemError
-PyExc_SystemExit
-PyExc_UnboundLocalError
-PyExc_UnicodeError
-PyExc_TypeError
-PyExc_ValueError
-PyExc_ZeroDivisionError
-PyExc_MemoryErrorInst
-PyExc_Warning
-PyExc_UserWarning
-PyExc_DeprecationWarning
-PyExc_SyntaxWarning
-PyExc_RuntimeWarning
-fini_exceptions
-init_exceptions
-initNav
-AEDesc_chain
-AEDesc_Type
-upp_GenericEventHandler
-upp_AEIdleProc
-initAE
-AEDesc_Convert
-AEDesc_New
-init_locale
-initEvt
-copyright
-init_sre
-initsha
-DragObj_chain
-DragObj_Type
-dragglue_TrackingHandlerUPP
-dragglue_ReceiveHandlerUPP
-dragglue_SendDataUPP
-initDrag
-DragObj_Convert
-DragObj_New
-initxreadlines
-PyCell_Type
-PyCell_Set
-PyCell_Get
-PyCell_New
-PySymtableEntry_Type
-PySymtableEntry_New
-GUSISetupConsoleStdio
-GUSIStdioFlush
-GUSIStdioClose
-_fdopen
-__close_console
-__close_file
-__position_file
-__write_console
-__write_file
-__read_console
-__read_file
-__open_temp_file
-__open_file
-gGUSIEventMask
-h_errno
-gGUSIEventHook
-gGUSIExecHook
-gGUSISpinHook
-GUSI_sprintf__FPcPCce          # GUSI_sprintf(char*,const char*,...)
-GUSI_vsprintf__FPcPCcPc                # GUSI_vsprintf(char*,const char*,char*)
-GUSIHandleNextEvent__Fl                # GUSIHandleNextEvent(long)
-GUSISetMacHostError__Fs                # GUSISetMacHostError(short)
-GUSISetHostError__Fi           # GUSISetHostError(int)
-GUSISetMacError__Fs            # GUSISetMacError(short)
-GUSIMapMacError__Fs            # GUSIMapMacError(short)
-GUSISetPosixError__Fi          # GUSISetPosixError(int)
-GUSIGetHook__FUl               # GUSIGetHook(unsigned long)
-GUSISetHook__FUlPFv_v          # GUSISetHook(unsigned long,void (*)(void))
-__vt__13GUSIScattGath          # GUSIScattGath::__vt
-Peek__Q214GUSIRingBuffer6PeekerFRC13GUSIScattererRUl           # GUSIRingBuffer::Peeker::Peek(const GUSIScatterer&,unsigned long&)
-Peek__Q214GUSIRingBuffer6PeekerFPvRUl          # GUSIRingBuffer::Peeker::Peek(void*,unsigned long&)
-PeekBuffer__Q214GUSIRingBuffer6PeekerFRUl              # GUSIRingBuffer::Peeker::PeekBuffer(unsigned long&)
-__dt__Q214GUSIRingBuffer6PeekerFv              # GUSIRingBuffer::Peeker::~Peeker()
-__ct__Q214GUSIRingBuffer6PeekerFR14GUSIRingBuffer              # GUSIRingBuffer::Peeker::Peeker(GUSIRingBuffer&)
-Valid__14GUSIRingBufferFv              # GUSIRingBuffer::Valid()
-Free__14GUSIRingBufferFv               # GUSIRingBuffer::Free()
-IterateIOVec__14GUSIRingBufferFRC13GUSIScattGathRUlRUlb                # GUSIRingBuffer::IterateIOVec(const GUSIScattGath&,unsigned long&,unsigned long&,bool)
-Consume__14GUSIRingBufferFPvRUl                # GUSIRingBuffer::Consume(void*,unsigned long&)
-Produce__14GUSIRingBufferFPvRUl                # GUSIRingBuffer::Produce(void*,unsigned long&)
-FreeBuffer__14GUSIRingBufferFPvUl              # GUSIRingBuffer::FreeBuffer(void*,unsigned long)
-ValidBuffer__14GUSIRingBufferFPvUl             # GUSIRingBuffer::ValidBuffer(void*,unsigned long)
-ConsumeBuffer__14GUSIRingBufferFRUl            # GUSIRingBuffer::ConsumeBuffer(unsigned long&)
-ProduceBuffer__14GUSIRingBufferFRUl            # GUSIRingBuffer::ProduceBuffer(unsigned long&)
-__dt__14GUSIRingBufferFv               # GUSIRingBuffer::~GUSIRingBuffer()
-ObsoleteBuffer__14GUSIRingBufferFv             # GUSIRingBuffer::ObsoleteBuffer()
-PurgeBuffers__14GUSIRingBufferFv               # GUSIRingBuffer::PurgeBuffers()
-SwitchBuffer__14GUSIRingBufferFUl              # GUSIRingBuffer::SwitchBuffer(unsigned long)
-__ct__14GUSIRingBufferFUl              # GUSIRingBuffer::GUSIRingBuffer(unsigned long)
-Invariant__14GUSIRingBufferFv          # GUSIRingBuffer::Invariant()
-Distance__14GUSIRingBufferFPcPc                # GUSIRingBuffer::Distance(char*,char*)
-__ct__13GUSIScattGathFRC13GUSIScattGath                # GUSIScattGath::GUSIScattGath(const GUSIScattGath&)
-__as__13GUSIScattGathFRC13GUSIScattGath                # GUSIScattGath::operator =(const GUSIScattGath&)
-__dt__13GUSIScattGathFv                # GUSIScattGath::~GUSIScattGath()
-Buffer__13GUSIScattGathCFv             # GUSIScattGath::Buffer() const
-__ct__13GUSIScattGathFPvUlb            # GUSIScattGath::GUSIScattGath(void*,unsigned long,bool)
-__ct__13GUSIScattGathFPC5iovecib               # GUSIScattGath::GUSIScattGath(const iovec*,int,bool)
-sInstance__17GUSIConfiguration         # GUSIConfiguration::sInstance
-ConfigureHandleAppleEvents__17GUSIConfigurationFb              # GUSIConfiguration::ConfigureHandleAppleEvents(bool)
-CmdPeriod__17GUSIConfigurationFPC11EventRecord         # GUSIConfiguration::CmdPeriod(const EventRecord*)
-CheckInterrupt__17GUSIConfigurationFv          # GUSIConfiguration::CheckInterrupt()
-BrokenPipe__17GUSIConfigurationFv              # GUSIConfiguration::BrokenPipe()
-DoAutoInitGraf__17GUSIConfigurationFv          # GUSIConfiguration::DoAutoInitGraf()
-DoAutoSpin__17GUSIConfigurationCFv             # GUSIConfiguration::DoAutoSpin() const
-SetDefaultFType__17GUSIConfigurationCFRC12GUSIFileSpec         # GUSIConfiguration::SetDefaultFType(const GUSIFileSpec&) const
-ConfigureSuffices__17GUSIConfigurationFsPQ217GUSIConfiguration10FileSuffix             # GUSIConfiguration::ConfigureSuffices(short,GUSIConfiguration::FileSuffix*)
-__ct__17GUSIConfigurationFs            # GUSIConfiguration::GUSIConfiguration(short)
-__vt__22GUSIThreadManagerProxy         # GUSIThreadManagerProxy::__vt
-__vt__18GUSIContextFactory             # GUSIContextFactory::__vt
-__vt__11GUSIContext            # GUSIContext::__vt
-sError__11GUSIContext          # GUSIContext::sError
-sHasThreading__11GUSIContext           # GUSIContext::sHasThreading
-sCurrentContext__11GUSIContext         # GUSIContext::sCurrentContext
-sContexts__11GUSIContext               # GUSIContext::sContexts
-sInstance__11GUSIProcess               # GUSIProcess::sInstance
-__dt__Q211GUSIContext5QueueFv          # GUSIContext::Queue::~Queue()
-MakeInstance__22GUSIThreadManagerProxyFv               # GUSIThreadManagerProxy::MakeInstance()
-__dt__22GUSIThreadManagerProxyFv               # GUSIThreadManagerProxy::~GUSIThreadManagerProxy()
-__dt__Q23std76auto_ptr<22GUSIThreadManagerProxy,Q23std33_Single<22GUSIThreadManagerProxy>>Fv           # std::auto_ptr<GUSIThreadManagerProxy, std::_Single<GUSIThreadManagerProxy>>::~auto_ptr()
-Instance__22GUSIThreadManagerProxyFv           # GUSIThreadManagerProxy::Instance()
-SetThreadTerminator__22GUSIThreadManagerProxyFUlPFUlPv_vPv             # GUSIThreadManagerProxy::SetThreadTerminator(unsigned long,void (*)(unsigned long, void*),void*)
-SetThreadSwitcher__22GUSIThreadManagerProxyFUlPFUlPv_vPvUc             # GUSIThreadManagerProxy::SetThreadSwitcher(unsigned long,void (*)(unsigned long, void*),void*,unsigned char)
-NewThread__22GUSIThreadManagerProxyFUlPFPv_PvPvlUlPPvPUl               # GUSIThreadManagerProxy::NewThread(unsigned long,void* (*)(void*),void*,long,unsigned long,void**,unsigned long*)
-GUSIControl__FP7IOParam                # GUSIControl(IOParam*)
-GUSIFinishIO__FP7IOParam               # GUSIFinishIO(IOParam*)
-GUSIStartIO__FP7IOParam                # GUSIStartIO(IOParam*)
-Blocked__11GUSIContextFv               # GUSIContext::Blocked()
-Pending__11GUSIContextFv               # GUSIContext::Pending()
-Raise__11GUSIContextFb         # GUSIContext::Raise(bool)
-Yield__11GUSIProcessF13GUSIYieldMode           # GUSIProcess::Yield(GUSIYieldMode)
-SigSuspend__11GUSIContextFv            # GUSIContext::SigSuspend()
-SigWait__11GUSIContextFUi              # GUSIContext::SigWait(unsigned int)
-Yield__11GUSIContextF13GUSIYieldMode           # GUSIContext::Yield(GUSIYieldMode)
-Done__11GUSIContextFb          # GUSIContext::Done(bool)
-Terminate__11GUSIContextFv             # GUSIContext::Terminate()
-SwitchOut__11GUSIContextFv             # GUSIContext::SwitchOut()
-SwitchIn__11GUSIContextFv              # GUSIContext::SwitchIn()
-SetTerminator__11GUSIContextFPFUlPv_vPv                # GUSIContext::SetTerminator(void (*)(unsigned long, void*),void*)
-GUSISetThreadTerminator
-SetSwitchOut__11GUSIContextFPFUlPv_vPv         # GUSIContext::SetSwitchOut(void (*)(unsigned long, void*),void*)
-SetSwitchIn__11GUSIContextFPFUlPv_vPv          # GUSIContext::SetSwitchIn(void (*)(unsigned long, void*),void*)
-GUSISetThreadSwitcher
-CreateContext__18GUSIContextFactoryFUl         # GUSIContextFactory::CreateContext(unsigned long)
-CreateContext__18GUSIContextFactoryFPFPv_PvPvlUlPPvPUl         # GUSIContextFactory::CreateContext(void* (*)(void*),void*,long,unsigned long,void**,unsigned long*)
-__dt__18GUSIContextFactoryFv           # GUSIContextFactory::~GUSIContextFactory()
-__ct__18GUSIContextFactoryFv           # GUSIContextFactory::GUSIContextFactory()
-__dt__Q23std68auto_ptr<18GUSIContextFactory,Q23std29_Single<18GUSIContextFactory>>Fv           # std::auto_ptr<GUSIContextFactory, std::_Single<GUSIContextFactory>>::~auto_ptr()
-SetInstance__18GUSIContextFactoryFP18GUSIContextFactory                # GUSIContextFactory::SetInstance(GUSIContextFactory*)
-Instance__18GUSIContextFactoryFv               # GUSIContextFactory::Instance()
-GUSINewThread
-Wakeup__11GUSIProcessFv                # GUSIProcess::Wakeup()
-Wakeup__11GUSIContextFv                # GUSIContext::Wakeup()
-Liquidate__11GUSIContextFv             # GUSIContext::Liquidate()
-LiquidateAll__Q211GUSIContext5QueueFv          # GUSIContext::Queue::LiquidateAll()
-__dt__11GUSIContextFv          # GUSIContext::~GUSIContext()
-Lookup__11GUSIContextFUl               # GUSIContext::Lookup(unsigned long)
-__ct__11GUSIContextFPFPv_PvPvlUlPPvPUl         # GUSIContext::GUSIContext(void* (*)(void*),void*,long,unsigned long,void**,unsigned long*)
-__ct__11GUSIContextFUl         # GUSIContext::GUSIContext(unsigned long)
-FinishSetup__11GUSIContextFv           # GUSIContext::FinishSetup()
-GUSIThreadTerminator
-StartSetup__11GUSIContextFv            # GUSIContext::StartSetup()
-Setup__11GUSIContextFb         # GUSIContext::Setup(bool)
-GUSIThreadSwitchOut
-GUSIThreadSwitchIn
-__dt__11GUSIProcessFv          # GUSIProcess::~GUSIProcess()
-QueueForClose__11GUSIProcessFP10GUSISocket             # GUSIProcess::QueueForClose(GUSISocket*)
-__ct__11GUSIProcessFb          # GUSIProcess::GUSIProcess(bool)
-sBlocks__Q216GUSIContextQueue7element          # GUSIContextQueue::element::sBlocks
-Wakeup__16GUSIContextQueueFv           # GUSIContextQueue::Wakeup()
-push_back__16GUSIContextQueueFP11GUSIContext           # GUSIContextQueue::push_back(GUSIContext*)
-remove__16GUSIContextQueueFP11GUSIContext              # GUSIContextQueue::remove(GUSIContext*)
-__dt__16GUSIContextQueueFv             # GUSIContextQueue::~GUSIContextQueue()
-__dl__Q216GUSIContextQueue7elementFPvUl                # GUSIContextQueue::element::operator delete(void*,unsigned long)
-__nw__Q216GUSIContextQueue7elementFUl          # GUSIContextQueue::element::operator new(unsigned long)
-__vt__14GUSIDConSocket         # GUSIDConSocket::__vt
-__vt__14GUSIDConDevice         # GUSIDConDevice::__vt
-sInstance__14GUSIDConDevice            # GUSIDConDevice::sInstance
-__dt__14GUSIDConDeviceFv               # GUSIDConDevice::~GUSIDConDevice()
-isatty__14GUSIDConSocketFv             # GUSIDConSocket::isatty()
-Supports__14GUSIDConSocketFQ210GUSISocket12ConfigOption                # GUSIDConSocket::Supports(GUSISocket::ConfigOption)
-write__14GUSIDConSocketFRC12GUSIGatherer               # GUSIDConSocket::write(const GUSIGatherer&)
-read__14GUSIDConSocketFRC13GUSIScatterer               # GUSIDConSocket::read(const GUSIScatterer&)
-__dt__14GUSIDConSocketFv               # GUSIDConSocket::~GUSIDConSocket()
-__ct__14GUSIDConSocketFPCc             # GUSIDConSocket::GUSIDConSocket(const char*)
-open__14GUSIDConDeviceFR13GUSIFileTokeni               # GUSIDConDevice::open(GUSIFileToken&,int)
-Want__14GUSIDConDeviceFR13GUSIFileToken                # GUSIDConDevice::Want(GUSIFileToken&)
-GUSIwithDConSockets
-sGUSIDescriptorTable__19GUSIDescriptorTable            # GUSIDescriptorTable::sGUSIDescriptorTable
-__ct__19GUSIDescriptorTableFRC19GUSIDescriptorTable            # GUSIDescriptorTable::GUSIDescriptorTable(const GUSIDescriptorTable&)
-LookupSocket__19GUSIDescriptorTableFi          # GUSIDescriptorTable::LookupSocket(int)
-__vc__19GUSIDescriptorTableFi          # GUSIDescriptorTable::operator [](int)
-RemoveSocket__19GUSIDescriptorTableFi          # GUSIDescriptorTable::RemoveSocket(int)
-InstallSocket__19GUSIDescriptorTableFP10GUSISocketi            # GUSIDescriptorTable::InstallSocket(GUSISocket*,int)
-__dt__19GUSIDescriptorTableFv          # GUSIDescriptorTable::~GUSIDescriptorTable()
-CloseAllDescriptors__19GUSIDescriptorTableFv           # GUSIDescriptorTable::CloseAllDescriptors()
-SetInstance__19GUSIDescriptorTableFP19GUSIDescriptorTable              # GUSIDescriptorTable::SetInstance(GUSIDescriptorTable*)
-Instance__19GUSIDescriptorTableFv              # GUSIDescriptorTable::Instance()
-Instance__14GUSINullDeviceFv           # GUSINullDevice::Instance()
-GUSIDefaultSetupConsole
-GUSISetupConsole
-__ct__19GUSIDescriptorTableFv          # GUSIDescriptorTable::GUSIDescriptorTable()
-__vt__10GUSIDevice             # GUSIDevice::__vt
-sInstance__18GUSIDeviceRegistry                # GUSIDeviceRegistry::sInstance
-faccess__18GUSIDeviceRegistryFPCcPUiPv         # GUSIDeviceRegistry::faccess(const char*,unsigned int*,void*)
-fsetfileinfo__18GUSIDeviceRegistryFPCcUlUl             # GUSIDeviceRegistry::fsetfileinfo(const char*,unsigned long,unsigned long)
-fgetfileinfo__18GUSIDeviceRegistryFPCcPUlPUl           # GUSIDeviceRegistry::fgetfileinfo(const char*,unsigned long*,unsigned long*)
-readlink__18GUSIDeviceRegistryFPCcPci          # GUSIDeviceRegistry::readlink(const char*,char*,int)
-symlink__18GUSIDeviceRegistryFPCcPCc           # GUSIDeviceRegistry::symlink(const char*,const char*)
-opendir__18GUSIDeviceRegistryFPCc              # GUSIDeviceRegistry::opendir(const char*)
-rmdir__18GUSIDeviceRegistryFPCc                # GUSIDeviceRegistry::rmdir(const char*)
-mkdir__18GUSIDeviceRegistryFPCc                # GUSIDeviceRegistry::mkdir(const char*)
-access__18GUSIDeviceRegistryFPCci              # GUSIDeviceRegistry::access(const char*,int)
-utime__18GUSIDeviceRegistryFPCcPC7utimbuf              # GUSIDeviceRegistry::utime(const char*,const utimbuf*)
-chmod__18GUSIDeviceRegistryFPCcUs              # GUSIDeviceRegistry::chmod(const char*,unsigned short)
-stat__18GUSIDeviceRegistryFPCcP4statb          # GUSIDeviceRegistry::stat(const char*,stat*,bool)
-rename__18GUSIDeviceRegistryFPCcPCc            # GUSIDeviceRegistry::rename(const char*,const char*)
-remove__18GUSIDeviceRegistryFPCc               # GUSIDeviceRegistry::remove(const char*)
-open__18GUSIDeviceRegistryFPCci                # GUSIDeviceRegistry::open(const char*,int)
-Lookup__18GUSIDeviceRegistryFR13GUSIFileToken          # GUSIDeviceRegistry::Lookup(GUSIFileToken&)
-RemoveDevice__18GUSIDeviceRegistryFP10GUSIDevice               # GUSIDeviceRegistry::RemoveDevice(GUSIDevice*)
-AddDevice__18GUSIDeviceRegistryFP10GUSIDevice          # GUSIDeviceRegistry::AddDevice(GUSIDevice*)
-__ct__18GUSIDeviceRegistryFv           # GUSIDeviceRegistry::GUSIDeviceRegistry()
-faccess__10GUSIDeviceFR13GUSIFileTokenPUiPv            # GUSIDevice::faccess(GUSIFileToken&,unsigned int*,void*)
-fsetfileinfo__10GUSIDeviceFR13GUSIFileTokenUlUl                # GUSIDevice::fsetfileinfo(GUSIFileToken&,unsigned long,unsigned long)
-fgetfileinfo__10GUSIDeviceFR13GUSIFileTokenPUlPUl              # GUSIDevice::fgetfileinfo(GUSIFileToken&,unsigned long*,unsigned long*)
-readlink__10GUSIDeviceFR13GUSIFileTokenPci             # GUSIDevice::readlink(GUSIFileToken&,char*,int)
-symlink__10GUSIDeviceFR13GUSIFileTokenPCc              # GUSIDevice::symlink(GUSIFileToken&,const char*)
-opendir__10GUSIDeviceFR13GUSIFileToken         # GUSIDevice::opendir(GUSIFileToken&)
-rmdir__10GUSIDeviceFR13GUSIFileToken           # GUSIDevice::rmdir(GUSIFileToken&)
-mkdir__10GUSIDeviceFR13GUSIFileToken           # GUSIDevice::mkdir(GUSIFileToken&)
-access__10GUSIDeviceFR13GUSIFileTokeni         # GUSIDevice::access(GUSIFileToken&,int)
-utime__10GUSIDeviceFR13GUSIFileTokenPC7utimbuf         # GUSIDevice::utime(GUSIFileToken&,const utimbuf*)
-chmod__10GUSIDeviceFR13GUSIFileTokenUs         # GUSIDevice::chmod(GUSIFileToken&,unsigned short)
-stat__10GUSIDeviceFR13GUSIFileTokenP4stat              # GUSIDevice::stat(GUSIFileToken&,stat*)
-rename__10GUSIDeviceFR13GUSIFileTokenPCc               # GUSIDevice::rename(GUSIFileToken&,const char*)
-remove__10GUSIDeviceFR13GUSIFileToken          # GUSIDevice::remove(GUSIFileToken&)
-open__10GUSIDeviceFR13GUSIFileTokeni           # GUSIDevice::open(GUSIFileToken&,int)
-Want__10GUSIDeviceFR13GUSIFileToken            # GUSIDevice::Want(GUSIFileToken&)
-__ct__13GUSIFileTokenFsQ213GUSIFileToken7Request               # GUSIFileToken::GUSIFileToken(short,GUSIFileToken::Request)
-__ct__13GUSIFileTokenFRC12GUSIFileSpecQ213GUSIFileToken7Request                # GUSIFileToken::GUSIFileToken(const GUSIFileSpec&,GUSIFileToken::Request)
-StrStdStream__13GUSIFileTokenFPCc              # GUSIFileToken::StrStdStream(const char*)
-__ct__13GUSIFileTokenFPCcQ213GUSIFileToken7Requestb            # GUSIFileToken::GUSIFileToken(const char*,GUSIFileToken::Request,bool)
-StrFragEqual__13GUSIFileTokenFPCcPCc           # GUSIFileToken::StrFragEqual(const char*,const char*)
-GUSI_diag_log
-vdfprintf
-dfprintf
-GUSI_break
-GUSI_log
-GUSI_pos
-__vt__22GUSISocketTypeRegistry         # GUSISocketTypeRegistry::__vt
-__vt__24GUSISocketDomainRegistry               # GUSISocketDomainRegistry::__vt
-__vt__17GUSISocketFactory              # GUSISocketFactory::__vt
-sInstance__24GUSISocketDomainRegistry          # GUSISocketDomainRegistry::sInstance
-__dt__24GUSISocketDomainRegistryFv             # GUSISocketDomainRegistry::~GUSISocketDomainRegistry()
-__dt__22GUSISocketTypeRegistryFv               # GUSISocketTypeRegistry::~GUSISocketTypeRegistry()
-RemoveFactory__22GUSISocketTypeRegistryFii             # GUSISocketTypeRegistry::RemoveFactory(int,int)
-AddFactory__22GUSISocketTypeRegistryFiiP17GUSISocketFactory            # GUSISocketTypeRegistry::AddFactory(int,int,GUSISocketFactory*)
-socketpair__22GUSISocketTypeRegistryFiiiPP10GUSISocket         # GUSISocketTypeRegistry::socketpair(int,int,int,GUSISocket**)
-socket__22GUSISocketTypeRegistryFiii           # GUSISocketTypeRegistry::socket(int,int,int)
-Find__22GUSISocketTypeRegistryFiibRPQ222GUSISocketTypeRegistry5Entry           # GUSISocketTypeRegistry::Find(int,int,bool,GUSISocketTypeRegistry::Entry*&)
-Initialize__22GUSISocketTypeRegistryFv         # GUSISocketTypeRegistry::Initialize()
-__ct__Q222GUSISocketTypeRegistry5EntryFv               # GUSISocketTypeRegistry::Entry::Entry()
-AddFactory__24GUSISocketDomainRegistryFiP17GUSISocketFactory           # GUSISocketDomainRegistry::AddFactory(int,GUSISocketFactory*)
-socketpair__24GUSISocketDomainRegistryFiiiPP10GUSISocket               # GUSISocketDomainRegistry::socketpair(int,int,int,GUSISocket**)
-socket__24GUSISocketDomainRegistryFiii         # GUSISocketDomainRegistry::socket(int,int,int)
-__dt__17GUSISocketFactoryFv            # GUSISocketFactory::~GUSISocketFactory()
-__ct__24GUSISocketDomainRegistryFv             # GUSISocketDomainRegistry::GUSISocketDomainRegistry()
-socketpair__17GUSISocketFactoryFiiiPP10GUSISocket              # GUSISocketFactory::socketpair(int,int,int,GUSISocket**)
-sID__16GUSITempFileSpec                # GUSITempFileSpec::sID
-sScratchSize__12GUSIFileSpec           # GUSIFileSpec::sScratchSize
-sScratch__12GUSIFileSpec               # GUSIFileSpec::sScratch
-GUSIFSpGetCatInfo
-GUSIFSpTouchFolder
-GUSIFSp2Encoding
-GUSIFSp2DirRelPath
-GUSIFSp2RelPath
-GUSIFSp2FullPath
-GUSIFSpResolve
-GUSIFSpIndex
-GUSIFSpDown
-GUSIFSpUp
-GUSIMakeTempFSp
-GUSISpecial2FSp
-GUSIPath2FSp
-GUSIWD2FSp
-GUSIFRefNum2FSp
-TempName__16GUSITempFileSpecFPCUc              # GUSITempFileSpec::TempName(const unsigned char*)
-TempName__16GUSITempFileSpecFv         # GUSITempFileSpec::TempName()
-__ct__16GUSITempFileSpecFslPCUc                # GUSITempFileSpec::GUSITempFileSpec(short,long,const unsigned char*)
-__ct__16GUSITempFileSpecFsPCUc         # GUSITempFileSpec::GUSITempFileSpec(short,const unsigned char*)
-__ct__16GUSITempFileSpecFPCUc          # GUSITempFileSpec::GUSITempFileSpec(const unsigned char*)
-__ct__16GUSITempFileSpecFsl            # GUSITempFileSpec::GUSITempFileSpec(short,long)
-__ct__16GUSITempFileSpecFs             # GUSITempFileSpec::GUSITempFileSpec(short)
-IsParentOf__12GUSIFileSpecCFRC12GUSIFileSpec           # GUSIFileSpec::IsParentOf(const GUSIFileSpec&) const
-__eq__FRC12GUSIFileSpecRC12GUSIFileSpec                # operator ==(const GUSIFileSpec&,const GUSIFileSpec&)
-AliasPath__12GUSIFileSpecCFv           # GUSIFileSpec::AliasPath() const
-Resolve__12GUSIFileSpecFb              # GUSIFileSpec::Resolve(bool)
-EncodedPath__12GUSIFileSpecCFv         # GUSIFileSpec::EncodedPath() const
-RelativePath__12GUSIFileSpecCFv                # GUSIFileSpec::RelativePath() const
-__as__9HFileInfoFRC9HFileInfo          # HFileInfo::operator =(const HFileInfo&)
-__as__7DirInfoFRC7DirInfo              # DirInfo::operator =(const DirInfo&)
-RelativePath__12GUSIFileSpecCFRC6FSSpec                # GUSIFileSpec::RelativePath(const FSSpec&) const
-PrependPathComponent__12GUSIFileSpecCFRPcPCUcb         # GUSIFileSpec::PrependPathComponent(char*&,const unsigned char*,bool) const
-FullPath__12GUSIFileSpecCFv            # GUSIFileSpec::FullPath() const
-CatInfo__12GUSIFileSpecFs              # GUSIFileSpec::CatInfo(short)
-TouchFolder__12GUSIFileSpecFv          # GUSIFileSpec::TouchFolder()
-SetName__12GUSIFileSpecFPCc            # GUSIFileSpec::SetName(const char*)
-SetName__12GUSIFileSpecFPCUc           # GUSIFileSpec::SetName(const unsigned char*)
-SetParID__12GUSIFileSpecFl             # GUSIFileSpec::SetParID(long)
-SetVRef__12GUSIFileSpecFs              # GUSIFileSpec::SetVRef(short)
-__vc__12GUSIFileSpecFs         # GUSIFileSpec::operator [](short)
-__pl__FRC6FSSpecPCc            # operator +(const FSSpec&,const char*)
-__pl__FRC6FSSpecPCUc           # operator +(const FSSpec&,const unsigned char*)
-AddPathComponent__12GUSIFileSpecFPCcib         # GUSIFileSpec::AddPathComponent(const char*,int,bool)
-__pp__12GUSIFileSpecFv         # GUSIFileSpec::operator ++()
-__mm__12GUSIFileSpecFv         # GUSIFileSpec::operator --()
-GetVolume__12GUSIFileSpecFs            # GUSIFileSpec::GetVolume(short)
-__ct__12GUSIFileSpecFPCcb              # GUSIFileSpec::GUSIFileSpec(const char*,bool)
-__ct__12GUSIFileSpecFs         # GUSIFileSpec::GUSIFileSpec(short)
-__ct__12GUSIFileSpecFUls               # GUSIFileSpec::GUSIFileSpec(unsigned long,short)
-__ct__12GUSIFileSpecFsPCUcb            # GUSIFileSpec::GUSIFileSpec(short,const unsigned char*,bool)
-__ct__12GUSIFileSpecFslPCUcb           # GUSIFileSpec::GUSIFileSpec(short,long,const unsigned char*,bool)
-__ct__12GUSIFileSpecFRC6FSSpecb                # GUSIFileSpec::GUSIFileSpec(const FSSpec&,bool)
-__ct__12GUSIFileSpecFRC12GUSIFileSpec          # GUSIFileSpec::GUSIFileSpec(const GUSIFileSpec&)
-CScratch__12GUSIFileSpecFb             # GUSIFileSpec::CScratch(bool)
-ReadHex__FPCciPc               # ReadHex(const char*,int,char*)
-GUSIFSMoveRename
-GUSIFSCatMove
-GUSIFSCatMove__FPC6FSSpecl             # GUSIFSCatMove(const FSSpec*,long)
-GUSIFSRename
-GUSIFSRstFLock
-GUSIFSSetFLock
-GUSIFSDirCreate
-GUSIFSDelete
-GUSIFSCreate
-GUSIFSCreate__FPC6FSSpec               # GUSIFSCreate(const FSSpec*)
-GUSIFSGetVolParms
-GUSIFSHGetVolParms__FP33GUSIIOPBWrapper<14HParamBlockRec>              # GUSIFSHGetVolParms(GUSIIOPBWrapper<HParamBlockRec>*)
-GUSIFSOpenRF
-GUSIFSOpenDF
-GUSIFSSetFInfo
-GUSIFSGetFInfo
-GUSIFSHSetFInfo__FP33GUSIIOPBWrapper<14HParamBlockRec>         # GUSIFSHSetFInfo(GUSIIOPBWrapper<HParamBlockRec>*)
-GUSIFSHGetFInfo__FP33GUSIIOPBWrapper<14HParamBlockRec>         # GUSIFSHGetFInfo(GUSIIOPBWrapper<HParamBlockRec>*)
-GUSIFSOpenDriver
-GUSIFSOpen__FP32GUSIIOPBWrapper<13ParamBlockRec>               # GUSIFSOpen(GUSIIOPBWrapper<ParamBlockRec>*)
-GUSIFSHGetVInfo__FP33GUSIIOPBWrapper<14HParamBlockRec>         # GUSIFSHGetVInfo(GUSIIOPBWrapper<HParamBlockRec>*)
-GUSIFSGetVInfo__FP32GUSIIOPBWrapper<13ParamBlockRec>           # GUSIFSGetVInfo(GUSIIOPBWrapper<ParamBlockRec>*)
-GUSIFSGetFCBInfo__FP26GUSIIOPBWrapper<8FCBPBRec>               # GUSIFSGetFCBInfo(GUSIIOPBWrapper<FCBPBRec>*)
-GUSIFSSetCatInfo__FP30GUSIIOPBWrapper<11GUSICatInfo>           # GUSIFSSetCatInfo(GUSIIOPBWrapper<GUSICatInfo>*)
-GUSIFSGetCatInfo__FP30GUSIIOPBWrapper<11GUSICatInfo>           # GUSIFSGetCatInfo(GUSIIOPBWrapper<GUSICatInfo>*)
-gGUSIInetFactories
-GUSIwithInetSockets
-__vt__16GUSIMacDirectory               # GUSIMacDirectory::__vt
-__vt__13GUSIDirectory          # GUSIDirectory::__vt
-__vt__17GUSIMacFileSocket              # GUSIMacFileSocket::__vt
-__vt__17GUSIMacFileDevice              # GUSIMacFileDevice::__vt
-sWakeupProc__17GUSIMacFileSocket               # GUSIMacFileSocket::sWakeupProc
-sWriteProc__17GUSIMacFileSocket                # GUSIMacFileSocket::sWriteProc
-sReadProc__17GUSIMacFileSocket         # GUSIMacFileSocket::sReadProc
-__dt__16GUSIMacDirectoryFv             # GUSIMacDirectory::~GUSIMacDirectory()
-rewinddir__16GUSIMacDirectoryFv                # GUSIMacDirectory::rewinddir()
-seekdir__16GUSIMacDirectoryFl          # GUSIMacDirectory::seekdir(long)
-telldir__16GUSIMacDirectoryFv          # GUSIMacDirectory::telldir()
-readdir__16GUSIMacDirectoryFv          # GUSIMacDirectory::readdir()
-__dt__13GUSIDirectoryFv                # GUSIDirectory::~GUSIDirectory()
-__ct__16GUSIMacDirectoryFRC6FSSpec             # GUSIMacDirectory::GUSIMacDirectory(const FSSpec&)
-Supports__17GUSIMacFileSocketFQ210GUSISocket12ConfigOption             # GUSIMacFileSocket::Supports(GUSISocket::ConfigOption)
-fstat__17GUSIMacFileSocketFP4stat              # GUSIMacFileSocket::fstat(stat*)
-ftruncate__17GUSIMacFileSocketFl               # GUSIMacFileSocket::ftruncate(long)
-lseek__17GUSIMacFileSocketFli          # GUSIMacFileSocket::lseek(long,int)
-setsockopt__17GUSIMacFileSocketFiiPvUi         # GUSIMacFileSocket::setsockopt(int,int,void*,unsigned int)
-getsockopt__17GUSIMacFileSocketFiiPvPUi                # GUSIMacFileSocket::getsockopt(int,int,void*,unsigned int*)
-ioctl__17GUSIMacFileSocketFUiPc                # GUSIMacFileSocket::ioctl(unsigned int,char*)
-fcntl__17GUSIMacFileSocketFiPc         # GUSIMacFileSocket::fcntl(int,char*)
-fsync__17GUSIMacFileSocketFv           # GUSIMacFileSocket::fsync()
-select__17GUSIMacFileSocketFPbPbPb             # GUSIMacFileSocket::select(bool*,bool*,bool*)
-write__17GUSIMacFileSocketFRC12GUSIGatherer            # GUSIMacFileSocket::write(const GUSIGatherer&)
-read__17GUSIMacFileSocketFRC13GUSIScatterer            # GUSIMacFileSocket::read(const GUSIScatterer&)
-SyncWrite__17GUSIMacFileSocketFv               # GUSIMacFileSocket::SyncWrite()
-SyncRead__17GUSIMacFileSocketFv                # GUSIMacFileSocket::SyncRead()
-__dt__17GUSIMacFileSocketFv            # GUSIMacFileSocket::~GUSIMacFileSocket()
-__dt__17GUSISMInputBufferFv            # GUSISMInputBuffer::~GUSISMInputBuffer()
-__dt__18GUSISMOutputBufferFv           # GUSISMOutputBuffer::~GUSISMOutputBuffer()
-__ct__17GUSIMacFileSocketFsbi          # GUSIMacFileSocket::GUSIMacFileSocket(short,bool,int)
-faccess__17GUSIMacFileDeviceFR13GUSIFileTokenPUiPv             # GUSIMacFileDevice::faccess(GUSIFileToken&,unsigned int*,void*)
-fsetfileinfo__17GUSIMacFileDeviceFR13GUSIFileTokenUlUl         # GUSIMacFileDevice::fsetfileinfo(GUSIFileToken&,unsigned long,unsigned long)
-fgetfileinfo__17GUSIMacFileDeviceFR13GUSIFileTokenPUlPUl               # GUSIMacFileDevice::fgetfileinfo(GUSIFileToken&,unsigned long*,unsigned long*)
-readlink__17GUSIMacFileDeviceFR13GUSIFileTokenPci              # GUSIMacFileDevice::readlink(GUSIFileToken&,char*,int)
-symlink__17GUSIMacFileDeviceFR13GUSIFileTokenPCc               # GUSIMacFileDevice::symlink(GUSIFileToken&,const char*)
-opendir__17GUSIMacFileDeviceFR13GUSIFileToken          # GUSIMacFileDevice::opendir(GUSIFileToken&)
-rmdir__17GUSIMacFileDeviceFR13GUSIFileToken            # GUSIMacFileDevice::rmdir(GUSIFileToken&)
-mkdir__17GUSIMacFileDeviceFR13GUSIFileToken            # GUSIMacFileDevice::mkdir(GUSIFileToken&)
-access__17GUSIMacFileDeviceFR13GUSIFileTokeni          # GUSIMacFileDevice::access(GUSIFileToken&,int)
-utime__17GUSIMacFileDeviceFR13GUSIFileTokenPC7utimbuf          # GUSIMacFileDevice::utime(GUSIFileToken&,const utimbuf*)
-chmod__17GUSIMacFileDeviceFR13GUSIFileTokenUs          # GUSIMacFileDevice::chmod(GUSIFileToken&,unsigned short)
-stat__17GUSIMacFileDeviceFR13GUSIFileTokenP4stat               # GUSIMacFileDevice::stat(GUSIFileToken&,stat*)
-rename__17GUSIMacFileDeviceFR13GUSIFileTokenPCc                # GUSIMacFileDevice::rename(GUSIFileToken&,const char*)
-CleanupTemporaries__17GUSIMacFileDeviceFb              # GUSIMacFileDevice::CleanupTemporaries(bool)
-MarkTemporary__17GUSIMacFileDeviceFRC6FSSpec           # GUSIMacFileDevice::MarkTemporary(const FSSpec&)
-remove__17GUSIMacFileDeviceFR13GUSIFileToken           # GUSIMacFileDevice::remove(GUSIFileToken&)
-open__17GUSIMacFileDeviceFsi           # GUSIMacFileDevice::open(short,int)
-open__17GUSIMacFileDeviceFR13GUSIFileTokeni            # GUSIMacFileDevice::open(GUSIFileToken&,int)
-Want__17GUSIMacFileDeviceFR13GUSIFileToken             # GUSIMacFileDevice::Want(GUSIFileToken&)
-__dt__17GUSIMacFileDeviceFv            # GUSIMacFileDevice::~GUSIMacFileDevice()
-__dt__Q23std66auto_ptr<17GUSIMacFileDevice,Q23std28_Single<17GUSIMacFileDevice>>Fv             # std::auto_ptr<GUSIMacFileDevice, std::_Single<GUSIMacFileDevice>>::~auto_ptr()
-Instance__17GUSIMacFileDeviceFv                # GUSIMacFileDevice::Instance()
-__dt__Q211GUSIProcess7A5SaverFv                # GUSIProcess::A5Saver::~A5Saver()
-sDrvrState__16GUSIMTInetSocket         # GUSIMTInetSocket::sDrvrState
-__vt__16GUSIMTInetSocket               # GUSIMTInetSocket::__vt
-sHostAddress__16GUSIMTInetSocket               # GUSIMTInetSocket::sHostAddress
-sDrvrRefNum__16GUSIMTInetSocket                # GUSIMTInetSocket::sDrvrRefNum
-__dt__16GUSIMTInetSocketFv             # GUSIMTInetSocket::~GUSIMTInetSocket()
-GUSIwithMTInetSockets
-Supports__16GUSIMTInetSocketFQ210GUSISocket12ConfigOption              # GUSIMTInetSocket::Supports(GUSISocket::ConfigOption)
-setsockopt__16GUSIMTInetSocketFiiPvUi          # GUSIMTInetSocket::setsockopt(int,int,void*,unsigned int)
-getsockopt__16GUSIMTInetSocketFiiPvPUi         # GUSIMTInetSocket::getsockopt(int,int,void*,unsigned int*)
-ioctl__16GUSIMTInetSocketFUiPc         # GUSIMTInetSocket::ioctl(unsigned int,char*)
-fcntl__16GUSIMTInetSocketFiPc          # GUSIMTInetSocket::fcntl(int,char*)
-shutdown__16GUSIMTInetSocketFi         # GUSIMTInetSocket::shutdown(int)
-getpeername__16GUSIMTInetSocketFPvPUi          # GUSIMTInetSocket::getpeername(void*,unsigned int*)
-getsockname__16GUSIMTInetSocketFPvPUi          # GUSIMTInetSocket::getsockname(void*,unsigned int*)
-bind__16GUSIMTInetSocketFPvUi          # GUSIMTInetSocket::bind(void*,unsigned int)
-__ct__16GUSIMTInetSocketFv             # GUSIMTInetSocket::GUSIMTInetSocket()
-HostAddr__16GUSIMTInetSocketFv         # GUSIMTInetSocket::HostAddr()
-Driver__16GUSIMTInetSocketFv           # GUSIMTInetSocket::Driver()
-uDNRDone
-sResolverState__11GUSIMTNetDB          # GUSIMTNetDB::sResolverState
-__vt__11GUSIMTNetDB            # GUSIMTNetDB::__vt
-get__49GUSISpecificData<11GUSIhostent,&.GUSIKillHostEnt>FP17GUSISpecificTable          # GUSISpecificData<GUSIhostent, &.GUSIKillHostEnt>::get(GUSISpecificTable*)
-__dt__11GUSIMTNetDBFv          # GUSIMTNetDB::~GUSIMTNetDB()
-gethostid__11GUSIMTNetDBFv             # GUSIMTNetDB::gethostid()
-inet_ntoa__11GUSIMTNetDBF7in_addr              # GUSIMTNetDB::inet_ntoa(in_addr)
-gethostbyaddr__11GUSIMTNetDBFPCvUli            # GUSIMTNetDB::gethostbyaddr(const void*,unsigned long,int)
-gethostbyname__11GUSIMTNetDBFPCc               # GUSIMTNetDB::gethostbyname(const char*)
-Resolver__11GUSIMTNetDBFv              # GUSIMTNetDB::Resolver()
-__dt__12GUSISpecificFv         # GUSISpecific::~GUSISpecific()
-__dt__49GUSISpecificData<11GUSIhostent,&.GUSIKillHostEnt>Fv            # GUSISpecificData<GUSIhostent, &.GUSIKillHostEnt>::~GUSISpecificData()
-__dt__9GUSINetDBFv             # GUSINetDB::~GUSINetDB()
-Instantiate__11GUSIMTNetDBFv           # GUSIMTNetDB::Instantiate()
-__vt__16GUSIMTTcpFactory               # GUSIMTTcpFactory::__vt
-__vt__15GUSIMTTcpSocket                # GUSIMTTcpSocket::__vt
-instance__16GUSIMTTcpFactory           # GUSIMTTcpFactory::instance
-sListenProc__15GUSIMTTcpSocket         # GUSIMTTcpSocket::sListenProc
-sConnectProc__15GUSIMTTcpSocket                # GUSIMTTcpSocket::sConnectProc
-sNotifyProc__15GUSIMTTcpSocket         # GUSIMTTcpSocket::sNotifyProc
-sRecvProc__15GUSIMTTcpSocket           # GUSIMTTcpSocket::sRecvProc
-sSendProc__15GUSIMTTcpSocket           # GUSIMTTcpSocket::sSendProc
-__dt__16GUSIMTTcpFactoryFv             # GUSIMTTcpFactory::~GUSIMTTcpFactory()
-GUSIwithMTTcpSockets
-socket__16GUSIMTTcpFactoryFiii         # GUSIMTTcpFactory::socket(int,int,int)
-__dt__15GUSIMTTcpSocketFv              # GUSIMTTcpSocket::~GUSIMTTcpSocket()
-shutdown__15GUSIMTTcpSocketFi          # GUSIMTTcpSocket::shutdown(int)
-select__15GUSIMTTcpSocketFPbPbPb               # GUSIMTTcpSocket::select(bool*,bool*,bool*)
-sendto__15GUSIMTTcpSocketFRC12GUSIGathereriPCvUi               # GUSIMTTcpSocket::sendto(const GUSIGatherer&,int,const void*,unsigned int)
-recvfrom__15GUSIMTTcpSocketFRC13GUSIScattereriPvPUi            # GUSIMTTcpSocket::recvfrom(const GUSIScatterer&,int,void*,unsigned int*)
-__ct__15GUSIMTTcpSocketFRQ215GUSIMTTcpSocket8Listener          # GUSIMTTcpSocket::GUSIMTTcpSocket(GUSIMTTcpSocket::Listener&)
-accept__15GUSIMTTcpSocketFPvPUi                # GUSIMTTcpSocket::accept(void*,unsigned int*)
-listen__15GUSIMTTcpSocketFi            # GUSIMTTcpSocket::listen(int)
-connect__15GUSIMTTcpSocketFPvUi                # GUSIMTTcpSocket::connect(void*,unsigned int)
-__ct__15GUSIMTTcpSocketFv              # GUSIMTTcpSocket::GUSIMTTcpSocket()
-SetupListener__15GUSIMTTcpSocketFRQ215GUSIMTTcpSocket8Listener         # GUSIMTTcpSocket::SetupListener(GUSIMTTcpSocket::Listener&)
-CreateStream__15GUSIMTTcpSocketFPP15GUSIMTTcpSocket            # GUSIMTTcpSocket::CreateStream(GUSIMTTcpSocket**)
-GUSIMTTListen__FP15GUSIMTTcpSocket             # GUSIMTTListen(GUSIMTTcpSocket*)
-GUSIMTTListenDone__FP7TCPiopb          # GUSIMTTListenDone(TCPiopb*)
-GUSIMTTConnectDone__FP7TCPiopb         # GUSIMTTConnectDone(TCPiopb*)
-GUSIMTTNotify
-GUSIMTTRecv__FP15GUSIMTTcpSocket               # GUSIMTTRecv(GUSIMTTcpSocket*)
-GUSIMTTRecvDone__FP7TCPiopb            # GUSIMTTRecvDone(TCPiopb*)
-GUSIMTTSend__FP15GUSIMTTcpSocket               # GUSIMTTSend(GUSIMTTcpSocket*)
-GUSIMTTSendDone__FP7TCPiopb            # GUSIMTTSendDone(TCPiopb*)
-__vt__16GUSIMTUdpFactory               # GUSIMTUdpFactory::__vt
-__vt__15GUSIMTUdpSocket                # GUSIMTUdpSocket::__vt
-instance__16GUSIMTUdpFactory           # GUSIMTUdpFactory::instance
-sRecvProc__15GUSIMTUdpSocket           # GUSIMTUdpSocket::sRecvProc
-sSendProc__15GUSIMTUdpSocket           # GUSIMTUdpSocket::sSendProc
-__dt__16GUSIMTUdpFactoryFv             # GUSIMTUdpFactory::~GUSIMTUdpFactory()
-GUSIwithMTUdpSockets
-socket__16GUSIMTUdpFactoryFiii         # GUSIMTUdpFactory::socket(int,int,int)
-__dt__15GUSIMTUdpSocketFv              # GUSIMTUdpSocket::~GUSIMTUdpSocket()
-shutdown__15GUSIMTUdpSocketFi          # GUSIMTUdpSocket::shutdown(int)
-select__15GUSIMTUdpSocketFPbPbPb               # GUSIMTUdpSocket::select(bool*,bool*,bool*)
-sendto__15GUSIMTUdpSocketFRC12GUSIGathereriPCvUi               # GUSIMTUdpSocket::sendto(const GUSIGatherer&,int,const void*,unsigned int)
-recvfrom__15GUSIMTUdpSocketFRC13GUSIScattereriPvPUi            # GUSIMTUdpSocket::recvfrom(const GUSIScatterer&,int,void*,unsigned int*)
-connect__15GUSIMTUdpSocketFPvUi                # GUSIMTUdpSocket::connect(void*,unsigned int)
-__ct__15GUSIMTUdpSocketFv              # GUSIMTUdpSocket::GUSIMTUdpSocket()
-CreateStream__15GUSIMTUdpSocketFv              # GUSIMTUdpSocket::CreateStream()
-GUSIMTURecv__FP15GUSIMTUdpSocket               # GUSIMTURecv(GUSIMTUdpSocket*)
-GUSIMTURecvDone__FP7UDPiopb            # GUSIMTURecvDone(UDPiopb*)
-GUSIMTUSend__FP15GUSIMTUdpSocket               # GUSIMTUSend(GUSIMTUdpSocket*)
-GUSIMTUSendDone__FP7UDPiopb            # GUSIMTUSendDone(UDPiopb*)
-sProtocols__9GUSINetDB         # GUSINetDB::sProtocols
-sServices__20GUSIBuiltinServiceDB              # GUSIBuiltinServiceDB::sServices
-__vt__20GUSIBuiltinServiceDB           # GUSIBuiltinServiceDB::__vt
-__vt__17GUSIFileServiceDB              # GUSIFileServiceDB::__vt
-__vt__13GUSIServiceDB          # GUSIServiceDB::__vt
-__vt__9GUSINetDB               # GUSINetDB::__vt
-sInstance__13GUSIServiceDB             # GUSIServiceDB::sInstance
-sData__13GUSIServiceDB         # GUSIServiceDB::sData
-sEntry__20GUSIBuiltinServiceDB         # GUSIBuiltinServiceDB::sEntry
-sInstance__9GUSINetDB          # GUSINetDB::sInstance
-__dt__64GUSISpecificData<Q213GUSIServiceDB4Data,&.GUSIKillServiceDBData>Fv             # GUSISpecificData<GUSIServiceDB::Data, &.GUSIKillServiceDBData>::~GUSISpecificData()
-__dt__80GUSISpecificData<Q220GUSIBuiltinServiceDB5Entry,&.GUSIKillBuiltinServiceDBEntry>Fv             # GUSISpecificData<GUSIBuiltinServiceDB::Entry, &.GUSIKillBuiltinServiceDBEntry>::~GUSISpecificData()
-get__64GUSISpecificData<Q213GUSIServiceDB4Data,&.GUSIKillServiceDBData>FP17GUSISpecificTable           # GUSISpecificData<GUSIServiceDB::Data, &.GUSIKillServiceDBData>::get(GUSISpecificTable*)
-get__80GUSISpecificData<Q220GUSIBuiltinServiceDB5Entry,&.GUSIKillBuiltinServiceDBEntry>FP17GUSISpecificTable           # GUSISpecificData<GUSIBuiltinServiceDB::Entry, &.GUSIKillBuiltinServiceDBEntry>::get(GUSISpecificTable*)
-__dt__17GUSIFileServiceDBFv            # GUSIFileServiceDB::~GUSIFileServiceDB()
-__dt__20GUSIBuiltinServiceDBFv         # GUSIBuiltinServiceDB::~GUSIBuiltinServiceDB()
-__ct__11GUSIserventFv          # GUSIservent::GUSIservent()
-GUSIKillHostEnt
-Alloc__11GUSIhostentFUl                # GUSIhostent::Alloc(unsigned long)
-__ct__11GUSIhostentFv          # GUSIhostent::GUSIhostent()
-Instance__13GUSIServiceDBFv            # GUSIServiceDB::Instance()
-GUSIKillServiceDBData
-Next__20GUSIBuiltinServiceDBFv         # GUSIBuiltinServiceDB::Next()
-Reset__20GUSIBuiltinServiceDBFv                # GUSIBuiltinServiceDB::Reset()
-GUSIKillBuiltinServiceDBEntry
-Next__17GUSIFileServiceDBFv            # GUSIFileServiceDB::Next()
-Reset__17GUSIFileServiceDBFv           # GUSIFileServiceDB::Reset()
-__dt__13GUSIServiceDBFv                # GUSIServiceDB::~GUSIServiceDB()
-Instance__17GUSIFileServiceDBFv                # GUSIFileServiceDB::Instance()
-getprotobynumber__9GUSINetDBFi         # GUSINetDB::getprotobynumber(int)
-getprotobyname__9GUSINetDBFPCc         # GUSINetDB::getprotobyname(const char*)
-endprotoent__9GUSINetDBFv              # GUSINetDB::endprotoent()
-setprotoent__9GUSINetDBFi              # GUSINetDB::setprotoent(int)
-getprotoent__9GUSINetDBFv              # GUSINetDB::getprotoent()
-getservbyport__9GUSINetDBFiPCc         # GUSINetDB::getservbyport(int,const char*)
-getservbyname__9GUSINetDBFPCcPCc               # GUSINetDB::getservbyname(const char*,const char*)
-endservent__9GUSINetDBFv               # GUSINetDB::endservent()
-setservent__9GUSINetDBFi               # GUSINetDB::setservent(int)
-getservent__9GUSINetDBFv               # GUSINetDB::getservent()
-gethostname__9GUSINetDBFPci            # GUSINetDB::gethostname(char*,int)
-gethostid__9GUSINetDBFv                # GUSINetDB::gethostid()
-inet_addr__9GUSINetDBFPCc              # GUSINetDB::inet_addr(const char*)
-inet_ntoa__9GUSINetDBF7in_addr         # GUSINetDB::inet_ntoa(in_addr)
-gethostbyaddr__9GUSINetDBFPCvUli               # GUSINetDB::gethostbyaddr(const void*,unsigned long,int)
-gethostbyname__9GUSINetDBFPCc          # GUSINetDB::gethostbyname(const char*)
-__ct__9GUSINetDBFv             # GUSINetDB::GUSINetDB()
-Instance__9GUSINetDBFv         # GUSINetDB::Instance()
-__vt__14GUSINullSocket         # GUSINullSocket::__vt
-__vt__14GUSINullDevice         # GUSINullDevice::__vt
-sInstance__14GUSINullDevice            # GUSINullDevice::sInstance
-__dt__14GUSINullDeviceFv               # GUSINullDevice::~GUSINullDevice()
-__dt__14GUSINullSocketFv               # GUSINullSocket::~GUSINullSocket()
-Supports__14GUSINullSocketFQ210GUSISocket12ConfigOption                # GUSINullSocket::Supports(GUSISocket::ConfigOption)
-fstat__14GUSINullSocketFP4stat         # GUSINullSocket::fstat(stat*)
-write__14GUSINullSocketFRC12GUSIGatherer               # GUSINullSocket::write(const GUSIGatherer&)
-read__14GUSINullSocketFRC13GUSIScatterer               # GUSINullSocket::read(const GUSIScatterer&)
-__ct__14GUSINullSocketFv               # GUSINullSocket::GUSINullSocket()
-stat__14GUSINullDeviceFR13GUSIFileTokenP4stat          # GUSINullDevice::stat(GUSIFileToken&,stat*)
-open__14GUSINullDeviceFv               # GUSINullDevice::open()
-open__14GUSINullDeviceFR13GUSIFileTokeni               # GUSINullDevice::open(GUSIFileToken&,int)
-Want__14GUSINullDeviceFR13GUSIFileToken                # GUSINullDevice::Want(GUSIFileToken&)
-GUSIwithNullSockets
-__vt__13GUSIScatterer          # GUSIScatterer::__vt
-__vt__20GUSIOTDatagramSocket           # GUSIOTDatagramSocket::__vt
-__vt__18GUSIOTStreamSocket             # GUSIOTStreamSocket::__vt
-__vt__12GUSIOTSocket           # GUSIOTSocket::__vt
-__vt__14GUSIOTStrategy         # GUSIOTStrategy::__vt
-__vt__21GUSIOTDatagramFactory          # GUSIOTDatagramFactory::__vt
-__vt__13GUSIOTFactory          # GUSIOTFactory::__vt
-__vt__19GUSIOTStreamFactory            # GUSIOTStreamFactory::__vt
-sOK__13GUSIOTFactory           # GUSIOTFactory::sOK
-__dt__19GUSIOTStreamFactoryFv          # GUSIOTStreamFactory::~GUSIOTStreamFactory()
-__dt__13GUSIOTFactoryFv                # GUSIOTFactory::~GUSIOTFactory()
-__dt__21GUSIOTDatagramFactoryFv                # GUSIOTDatagramFactory::~GUSIOTDatagramFactory()
-select__20GUSIOTDatagramSocketFPbPbPb          # GUSIOTDatagramSocket::select(bool*,bool*,bool*)
-__dt__Q23std80auto_ptr<24GUSIOTAddr<9TUnitData,5>,Q23std35_Single<24GUSIOTAddr<9TUnitData,5>>>Fv               # std::auto_ptr<GUSIOTAddr<TUnitData, 5>, std::_Single<GUSIOTAddr<TUnitData, 5>>>::~auto_ptr()
-sendto__20GUSIOTDatagramSocketFRC12GUSIGathereriPCvUi          # GUSIOTDatagramSocket::sendto(const GUSIGatherer&,int,const void*,unsigned int)
-__dt__13GUSIScattererFv                # GUSIScatterer::~GUSIScatterer()
-recvfrom__20GUSIOTDatagramSocketFRC13GUSIScattereriPvPUi               # GUSIOTDatagramSocket::recvfrom(const GUSIScatterer&,int,void*,unsigned int*)
-connect__20GUSIOTDatagramSocketFPvUi           # GUSIOTDatagramSocket::connect(void*,unsigned int)
-getpeername__20GUSIOTDatagramSocketFPvPUi              # GUSIOTDatagramSocket::getpeername(void*,unsigned int*)
-BindIfUnbound__20GUSIOTDatagramSocketFv                # GUSIOTDatagramSocket::BindIfUnbound()
-__dt__20GUSIOTDatagramSocketFv         # GUSIOTDatagramSocket::~GUSIOTDatagramSocket()
-Clone__20GUSIOTDatagramSocketFv                # GUSIOTDatagramSocket::Clone()
-__ct__20GUSIOTDatagramSocketFP14GUSIOTStrategy         # GUSIOTDatagramSocket::GUSIOTDatagramSocket(GUSIOTStrategy*)
-shutdown__18GUSIOTStreamSocketFi               # GUSIOTStreamSocket::shutdown(int)
-select__18GUSIOTStreamSocketFPbPbPb            # GUSIOTStreamSocket::select(bool*,bool*,bool*)
-sendto__18GUSIOTStreamSocketFRC12GUSIGathereriPCvUi            # GUSIOTStreamSocket::sendto(const GUSIGatherer&,int,const void*,unsigned int)
-__dt__Q210GUSISocket17AddContextInScopeFv              # GUSISocket::AddContextInScope::~AddContextInScope()
-recvfrom__18GUSIOTStreamSocketFRC13GUSIScattereriPvPUi         # GUSIOTStreamSocket::recvfrom(const GUSIScatterer&,int,void*,unsigned int*)
-connect__18GUSIOTStreamSocketFPvUi             # GUSIOTStreamSocket::connect(void*,unsigned int)
-accept__18GUSIOTStreamSocketFPvPUi             # GUSIOTStreamSocket::accept(void*,unsigned int*)
-getpeername__18GUSIOTStreamSocketFPvPUi                # GUSIOTStreamSocket::getpeername(void*,unsigned int*)
-listen__18GUSIOTStreamSocketFi         # GUSIOTStreamSocket::listen(int)
-MopupEvents__18GUSIOTStreamSocketFv            # GUSIOTStreamSocket::MopupEvents()
-Close__18GUSIOTStreamSocketFUl         # GUSIOTStreamSocket::Close(unsigned long)
-__dt__18GUSIOTStreamSocketFv           # GUSIOTStreamSocket::~GUSIOTStreamSocket()
-close__18GUSIOTStreamSocketFv          # GUSIOTStreamSocket::close()
-Clone__18GUSIOTStreamSocketFv          # GUSIOTStreamSocket::Clone()
-__ct__18GUSIOTStreamSocketFP14GUSIOTStrategy           # GUSIOTStreamSocket::GUSIOTStreamSocket(GUSIOTStrategy*)
-Supports__12GUSIOTSocketFQ210GUSISocket12ConfigOption          # GUSIOTSocket::Supports(GUSISocket::ConfigOption)
-setsockopt__12GUSIOTSocketFiiPvUi              # GUSIOTSocket::setsockopt(int,int,void*,unsigned int)
-getsockopt__12GUSIOTSocketFiiPvPUi             # GUSIOTSocket::getsockopt(int,int,void*,unsigned int*)
-ioctl__12GUSIOTSocketFUiPc             # GUSIOTSocket::ioctl(unsigned int,char*)
-fcntl__12GUSIOTSocketFiPc              # GUSIOTSocket::fcntl(int,char*)
-shutdown__12GUSIOTSocketFi             # GUSIOTSocket::shutdown(int)
-getsockname__12GUSIOTSocketFPvPUi              # GUSIOTSocket::getsockname(void*,unsigned int*)
-Unbind__12GUSIOTSocketFv               # GUSIOTSocket::Unbind()
-BindToAddress__12GUSIOTSocketFP20GUSIOTAddr<5TBind,1>          # GUSIOTSocket::BindToAddress(GUSIOTAddr<TBind, 1>*)
-bind__12GUSIOTSocketFPvUi              # GUSIOTSocket::bind(void*,unsigned int)
-__dt__12GUSIOTSocketFv         # GUSIOTSocket::~GUSIOTSocket()
-close__12GUSIOTSocketFv                # GUSIOTSocket::close()
-__ct__12GUSIOTSocketFP14GUSIOTStrategy         # GUSIOTSocket::GUSIOTSocket(GUSIOTStrategy*)
-__dt__Q212GUSIOTSocket4LockFv          # GUSIOTSocket::Lock::~Lock()
-MopupEvents__12GUSIOTSocketFv          # GUSIOTSocket::MopupEvents()
-CopyAddress__14GUSIOTStrategyFRC7TNetbufR7TNetbuf              # GUSIOTStrategy::CopyAddress(const TNetbuf&,TNetbuf&)
-__dt__14GUSIOTStrategyFv               # GUSIOTStrategy::~GUSIOTStrategy()
-CreateConfiguration__14GUSIOTStrategyFv                # GUSIOTStrategy::CreateConfiguration()
-socket__21GUSIOTDatagramFactoryFiii            # GUSIOTDatagramFactory::socket(int,int,int)
-socket__19GUSIOTStreamFactoryFiii              # GUSIOTStreamFactory::socket(int,int,int)
-Initialize__13GUSIOTFactoryFv          # GUSIOTFactory::Initialize()
-GUSIOTNotify
-__vt__15GUSIOTUdpSocket                # GUSIOTUdpSocket::__vt
-__vt__17GUSIOTUdpStrategy              # GUSIOTUdpStrategy::__vt
-__vt__15GUSIOTTcpSocket                # GUSIOTTcpSocket::__vt
-__vt__17GUSIOTTcpStrategy              # GUSIOTTcpStrategy::__vt
-__vt__18GUSIOTInetStrategy             # GUSIOTInetStrategy::__vt
-__vt__16GUSIOTUdpFactory               # GUSIOTUdpFactory::__vt
-__vt__16GUSIOTTcpFactory               # GUSIOTTcpFactory::__vt
-sInstance__16GUSIOTUdpFactory          # GUSIOTUdpFactory::sInstance
-sInstance__16GUSIOTTcpFactory          # GUSIOTTcpFactory::sInstance
-__dt__16GUSIOTTcpFactoryFv             # GUSIOTTcpFactory::~GUSIOTTcpFactory()
-__dt__16GUSIOTUdpFactoryFv             # GUSIOTUdpFactory::~GUSIOTUdpFactory()
-__dt__17GUSIOTTcpStrategyFv            # GUSIOTTcpStrategy::~GUSIOTTcpStrategy()
-__dt__15GUSIOTTcpSocketFv              # GUSIOTTcpSocket::~GUSIOTTcpSocket()
-__dt__17GUSIOTUdpStrategyFv            # GUSIOTUdpStrategy::~GUSIOTUdpStrategy()
-__dt__15GUSIOTUdpSocketFv              # GUSIOTUdpSocket::~GUSIOTUdpSocket()
-GUSIwithOTInetSockets
-GUSIwithOTUdpSockets
-GUSIwithOTTcpSockets
-ioctl__15GUSIOTUdpSocketFUiPc          # GUSIOTUdpSocket::ioctl(unsigned int,char*)
-setsockopt__15GUSIOTUdpSocketFiiPvUi           # GUSIOTUdpSocket::setsockopt(int,int,void*,unsigned int)
-getsockopt__15GUSIOTUdpSocketFiiPvPUi          # GUSIOTUdpSocket::getsockopt(int,int,void*,unsigned int*)
-Clone__15GUSIOTUdpSocketFv             # GUSIOTUdpSocket::Clone()
-ConfigPath__17GUSIOTUdpStrategyFv              # GUSIOTUdpStrategy::ConfigPath()
-ioctl__15GUSIOTTcpSocketFUiPc          # GUSIOTTcpSocket::ioctl(unsigned int,char*)
-setsockopt__15GUSIOTTcpSocketFiiPvUi           # GUSIOTTcpSocket::setsockopt(int,int,void*,unsigned int)
-getsockopt__15GUSIOTTcpSocketFiiPvPUi          # GUSIOTTcpSocket::getsockopt(int,int,void*,unsigned int*)
-Clone__15GUSIOTTcpSocketFv             # GUSIOTTcpSocket::Clone()
-ConfigPath__17GUSIOTTcpStrategyFv              # GUSIOTTcpStrategy::ConfigPath()
-DoIoctl__18GUSIOTMInetOptionsFPiUiPc           # GUSIOTMInetOptions::DoIoctl(int*,unsigned int,char*)
-DoSetSockOpt__18GUSIOTMInetOptionsFPiP9TEndpointiiPvUi         # GUSIOTMInetOptions::DoSetSockOpt(int*,TEndpoint*,int,int,void*,unsigned int)
-DoGetSockOpt__18GUSIOTMInetOptionsFPiP9TEndpointiiPvPUi                # GUSIOTMInetOptions::DoGetSockOpt(int*,TEndpoint*,int,int,void*,unsigned int*)
-UnpackAddress__18GUSIOTInetStrategyFRC7TNetbufPvPUi            # GUSIOTInetStrategy::UnpackAddress(const TNetbuf&,void*,unsigned int*)
-PackAddress__18GUSIOTInetStrategyFPCvUiR7TNetbufb              # GUSIOTInetStrategy::PackAddress(const void*,unsigned int,TNetbuf&,bool)
-socket__16GUSIOTUdpFactoryFiii         # GUSIOTUdpFactory::socket(int,int,int)
-Strategy__16GUSIOTUdpFactoryFiii               # GUSIOTUdpFactory::Strategy(int,int,int)
-Instance__16GUSIOTUdpFactoryFv         # GUSIOTUdpFactory::Instance()
-socket__16GUSIOTTcpFactoryFiii         # GUSIOTTcpFactory::socket(int,int,int)
-__dt__18GUSIOTInetStrategyFv           # GUSIOTInetStrategy::~GUSIOTInetStrategy()
-Strategy__16GUSIOTTcpFactoryFiii               # GUSIOTTcpFactory::Strategy(int,int,int)
-Instance__16GUSIOTTcpFactoryFv         # GUSIOTTcpFactory::Instance()
-__vt__11GUSIOTNetDB            # GUSIOTNetDB::__vt
-__dt__11GUSIOTNetDBFv          # GUSIOTNetDB::~GUSIOTNetDB()
-gethostid__11GUSIOTNetDBFv             # GUSIOTNetDB::gethostid()
-inet_ntoa__11GUSIOTNetDBF7in_addr              # GUSIOTNetDB::inet_ntoa(in_addr)
-gethostbyaddr__11GUSIOTNetDBFPCvUli            # GUSIOTNetDB::gethostbyaddr(const void*,unsigned long,int)
-gethostbyname__11GUSIOTNetDBFPCc               # GUSIOTNetDB::gethostbyname(const char*)
-Resolver__11GUSIOTNetDBFv              # GUSIOTNetDB::Resolver()
-Instantiate__11GUSIOTNetDBFv           # GUSIOTNetDB::Instantiate()
-__ct__11GUSIOTNetDBFv          # GUSIOTNetDB::GUSIOTNetDB()
-GUSIOTNetDBNotify
-__vt__14GUSIPipeSocket         # GUSIPipeSocket::__vt
-__vt__15GUSIPipeFactory                # GUSIPipeFactory::__vt
-sInstance__15GUSIPipeFactory           # GUSIPipeFactory::sInstance
-__dt__15GUSIPipeFactoryFv              # GUSIPipeFactory::~GUSIPipeFactory()
-shutdown__14GUSIPipeSocketFi           # GUSIPipeSocket::shutdown(int)
-__dt__14GUSIPipeSocketFv               # GUSIPipeSocket::~GUSIPipeSocket()
-select__14GUSIPipeSocketFPbPbPb                # GUSIPipeSocket::select(bool*,bool*,bool*)
-write__14GUSIPipeSocketFRC12GUSIGatherer               # GUSIPipeSocket::write(const GUSIGatherer&)
-read__14GUSIPipeSocketFRC13GUSIScatterer               # GUSIPipeSocket::read(const GUSIScatterer&)
-Supports__14GUSIPipeSocketFQ210GUSISocket12ConfigOption                # GUSIPipeSocket::Supports(GUSISocket::ConfigOption)
-WakeupPeer__14GUSIPipeSocketFv         # GUSIPipeSocket::WakeupPeer()
-__ct__14GUSIPipeSocketFv               # GUSIPipeSocket::GUSIPipeSocket()
-__dt__14GUSIErrorSaverFv               # GUSIErrorSaver::~GUSIErrorSaver()
-socketpair__15GUSIPipeFactoryFiiiPP10GUSISocket                # GUSIPipeFactory::socketpair(int,int,int,GUSISocket**)
-socket__15GUSIPipeFactoryFiii          # GUSIPipeFactory::socket(int,int,int)
-GUSIwithLocalSockets
-__vt__12GUSIGatherer           # GUSIGatherer::__vt
-get__40GUSISpecificData<Q23std2tm,&.GUSIKillTM>FP17GUSISpecificTable           # GUSISpecificData<std::tm, &.GUSIKillTM>::get(GUSISpecificTable*)
-faccess__FPCcPUiPv             # faccess(const char*,unsigned int*,void*)
-fsetfileinfo
-fgetfileinfo
-getservent
-getservbyport
-getservbyname
-getprotoent
-getprotobynumber
-getprotobyname
-gethostbyname
-gethostbyaddr
-endservent
-endprotoent
-setservent
-setprotoent
-gethostname
-gethostid
-inet_ntoa
-inet_addr
-inet_aton
-readlink
-symlink
-usleep
-truncate
-ftruncate
-setsockopt
-getsockopt
-ioctl
-shutdown
-getpeername
-getsockname
-select
-sendmsg
-sendto
-send
-writev
-recvmsg
-recvfrom
-recv
-readv
-accept
-listen
-connect
-bind
-socketpair
-socket
-getdtablesize
-mktime
-gmtime
-localtime
-__dt__40GUSISpecificData<Q23std2tm,&.GUSIKillTM>Fv             # GUSISpecificData<std::tm, &.GUSIKillTM>::~GUSISpecificData()
-GUSIKillTM
-gettimeofday
-time
-getcwd
-chdir
-closedir
-rewinddir
-seekdir
-telldir
-readdir
-opendir
-rmdir
-mkdir
-access
-utime
-chmod
-lstat
-stat
-rename
-unlink
-remove
-creat
-open
-sleep
-isatty
-lseek
-fstat
-dup2
-dup
-fcntl
-__dt__12GUSIGathererFv         # GUSIGatherer::~GUSIGatherer()
-write
-read
-close
-fsync
-pipe
-__vt__13GUSIPPCSocket          # GUSIPPCSocket::__vt
-__vt__14GUSIPPCFactory         # GUSIPPCFactory::__vt
-sDoneProc__13GUSIPPCSocket             # GUSIPPCSocket::sDoneProc
-sListenProc__13GUSIPPCSocket           # GUSIPPCSocket::sListenProc
-sRecvProc__13GUSIPPCSocket             # GUSIPPCSocket::sRecvProc
-sSendProc__13GUSIPPCSocket             # GUSIPPCSocket::sSendProc
-sInstance__14GUSIPPCFactory            # GUSIPPCFactory::sInstance
-__dt__14GUSIPPCFactoryFv               # GUSIPPCFactory::~GUSIPPCFactory()
-GUSIPPCListen__FP13GUSIPPCSocket               # GUSIPPCListen(GUSIPPCSocket*)
-GUSIPPCRecv__FP13GUSIPPCSocket         # GUSIPPCRecv(GUSIPPCSocket*)
-GUSIPPCSend__FP13GUSIPPCSocket         # GUSIPPCSend(GUSIPPCSocket*)
-__dt__13GUSIPPCSocketFv                # GUSIPPCSocket::~GUSIPPCSocket()
-shutdown__13GUSIPPCSocketFi            # GUSIPPCSocket::shutdown(int)
-ioctl__13GUSIPPCSocketFUiPc            # GUSIPPCSocket::ioctl(unsigned int,char*)
-fcntl__13GUSIPPCSocketFiPc             # GUSIPPCSocket::fcntl(int,char*)
-select__13GUSIPPCSocketFPbPbPb         # GUSIPPCSocket::select(bool*,bool*,bool*)
-sendto__13GUSIPPCSocketFRC12GUSIGathereriPCvUi         # GUSIPPCSocket::sendto(const GUSIGatherer&,int,const void*,unsigned int)
-recvfrom__13GUSIPPCSocketFRC13GUSIScattereriPvPUi              # GUSIPPCSocket::recvfrom(const GUSIScatterer&,int,void*,unsigned int*)
-Supports__13GUSIPPCSocketFQ210GUSISocket12ConfigOption         # GUSIPPCSocket::Supports(GUSISocket::ConfigOption)
-__ct__13GUSIPPCSocketFP13GUSIPPCSocketRQ213GUSIPPCSocket8Listener              # GUSIPPCSocket::GUSIPPCSocket(GUSIPPCSocket*,GUSIPPCSocket::Listener&)
-accept__13GUSIPPCSocketFPvPUi          # GUSIPPCSocket::accept(void*,unsigned int*)
-listen__13GUSIPPCSocketFi              # GUSIPPCSocket::listen(int)
-connect__13GUSIPPCSocketFPvUi          # GUSIPPCSocket::connect(void*,unsigned int)
-bind__13GUSIPPCSocketFPvUi             # GUSIPPCSocket::bind(void*,unsigned int)
-__ct__13GUSIPPCSocketFv                # GUSIPPCSocket::GUSIPPCSocket()
-GUSIPPCDone__FP16PPCParamBlockRec              # GUSIPPCDone(PPCParamBlockRec*)
-GUSIPPCListenDone__FP16PPCParamBlockRec                # GUSIPPCListenDone(PPCParamBlockRec*)
-GUSIPPCRecvDone__FP16PPCParamBlockRec          # GUSIPPCRecvDone(PPCParamBlockRec*)
-GUSIPPCSendDone__FP16PPCParamBlockRec          # GUSIPPCSendDone(PPCParamBlockRec*)
-SetupListener__13GUSIPPCSocketFRQ213GUSIPPCSocket8Listener             # GUSIPPCSocket::SetupListener(GUSIPPCSocket::Listener&)
-socket__14GUSIPPCFactoryFiii           # GUSIPPCFactory::socket(int,int,int)
-GUSIwithPPCSockets
-sDefault__15GUSIPThreadAttr            # GUSIPThreadAttr::sDefault
-sDefaultAttr__15GUSIPThreadAttr                # GUSIPThreadAttr::sDefaultAttr
-sched_yield
-pthread_once
-pthread_equal
-pthread_self
-pthread_cond_broadcast
-pthread_cond_signal
-pthread_cond_timedwait
-pthread_cond_wait
-pthread_cond_destroy
-pthread_cond_init
-pthread_condattr_destroy
-pthread_condattr_init
-pthread_mutex_unlock
-pthread_mutex_trylock
-pthread_mutex_lock
-pthread_mutex_destroy
-pthread_mutex_init
-pthread_mutexattr_destroy
-pthread_mutexattr_init
-pthread_setspecific
-pthread_getspecific
-pthread_key_delete
-pthread_key_create
-pthread_exit
-pthread_join
-pthread_detach
-pthread_create
-pthread_attr_setstacksize
-pthread_attr_getstacksize
-pthread_attr_setdetachstate
-pthread_attr_getdetachstate
-pthread_attr_destroy
-pthread_attr_init
-__vt__10GUSISocket             # GUSISocket::__vt
-fstat__10GUSISocketFP4stat             # GUSISocket::fstat(stat*)
-sendmsg__10GUSISocketFPC6msghdri               # GUSISocket::sendmsg(const msghdr*,int)
-sendto__10GUSISocketFRC12GUSIGathereriPCvUi            # GUSISocket::sendto(const GUSIGatherer&,int,const void*,unsigned int)
-write__10GUSISocketFRC12GUSIGatherer           # GUSISocket::write(const GUSIGatherer&)
-recvmsg__10GUSISocketFP6msghdri                # GUSISocket::recvmsg(msghdr*,int)
-recvfrom__10GUSISocketFRC13GUSIScattereriPvPUi         # GUSISocket::recvfrom(const GUSIScatterer&,int,void*,unsigned int*)
-read__10GUSISocketFRC13GUSIScatterer           # GUSISocket::read(const GUSIScatterer&)
-select__10GUSISocketFPbPbPb            # GUSISocket::select(bool*,bool*,bool*)
-post_select__10GUSISocketFbbb          # GUSISocket::post_select(bool,bool,bool)
-pre_select__10GUSISocketFbbb           # GUSISocket::pre_select(bool,bool,bool)
-isatty__10GUSISocketFv         # GUSISocket::isatty()
-fsync__10GUSISocketFv          # GUSISocket::fsync()
-lseek__10GUSISocketFli         # GUSISocket::lseek(long,int)
-accept__10GUSISocketFPvPUi             # GUSISocket::accept(void*,unsigned int*)
-shutdown__10GUSISocketFi               # GUSISocket::shutdown(int)
-ftruncate__10GUSISocketFl              # GUSISocket::ftruncate(long)
-ioctl__10GUSISocketFUiPc               # GUSISocket::ioctl(unsigned int,char*)
-fcntl__10GUSISocketFiPc                # GUSISocket::fcntl(int,char*)
-setsockopt__10GUSISocketFiiPvUi                # GUSISocket::setsockopt(int,int,void*,unsigned int)
-getsockopt__10GUSISocketFiiPvPUi               # GUSISocket::getsockopt(int,int,void*,unsigned int*)
-connect__10GUSISocketFPvUi             # GUSISocket::connect(void*,unsigned int)
-listen__10GUSISocketFi         # GUSISocket::listen(int)
-getpeername__10GUSISocketFPvPUi                # GUSISocket::getpeername(void*,unsigned int*)
-getsockname__10GUSISocketFPvPUi                # GUSISocket::getsockname(void*,unsigned int*)
-bind__10GUSISocketFPvUi                # GUSISocket::bind(void*,unsigned int)
-RemoveContext__10GUSISocketFP11GUSIContext             # GUSISocket::RemoveContext(GUSIContext*)
-AddContext__10GUSISocketFP11GUSIContext                # GUSISocket::AddContext(GUSIContext*)
-__dt__10GUSISocketFv           # GUSISocket::~GUSISocket()
-Close__10GUSISocketFUl         # GUSISocket::Close(unsigned long)
-CheckClose__10GUSISocketFUl            # GUSISocket::CheckClose(unsigned long)
-close__10GUSISocketFv          # GUSISocket::close()
-Dequeue__10GUSISocketFv                # GUSISocket::Dequeue()
-Enqueue__10GUSISocketFPP10GUSISocket           # GUSISocket::Enqueue(GUSISocket**)
-Supports__10GUSISocketFQ210GUSISocket12ConfigOption            # GUSISocket::Supports(GUSISocket::ConfigOption)
-__ct__10GUSISocketFv           # GUSISocket::GUSISocket()
-__ct__10GUSImsghdrFRC13GUSIScattGathPCvUi              # GUSImsghdr::GUSImsghdr(const GUSIScattGath&,const void*,unsigned int)
-sKeyAlloc__17GUSISpecificTable         # GUSISpecificTable::sKeyAlloc
-sKeys__17GUSISpecificTable             # GUSISpecificTable::sKeys
-sNextID__12GUSISpecific                # GUSISpecific::sNextID
-Destruct__17GUSISpecificTableFP12GUSISpecific          # GUSISpecificTable::Destruct(GUSISpecific*)
-Register__17GUSISpecificTableFP12GUSISpecific          # GUSISpecificTable::Register(GUSISpecific*)
-DeleteSpecific__17GUSISpecificTableFPC12GUSISpecific           # GUSISpecificTable::DeleteSpecific(const GUSISpecific*)
-SetSpecific__17GUSISpecificTableFPC12GUSISpecificPv            # GUSISpecificTable::SetSpecific(const GUSISpecific*,void*)
-__dt__17GUSISpecificTableFv            # GUSISpecificTable::~GUSISpecificTable()
-__vt__9GUSITimer               # GUSITimer::__vt
-sTimerQueue__9GUSITimer                # GUSITimer::sTimerQueue
-sTimerProc__9GUSITimer         # GUSITimer::sTimerProc
-sTimeZone__8GUSITime           # GUSITime::sTimeZone
-sTimeOffset__8GUSITime         # GUSITime::sTimeOffset
-__dt__53GUSISpecificData<Q29GUSITimer5Queue,&.GUSIKillTimers>Fv                # GUSISpecificData<GUSITimer::Queue, &.GUSIKillTimers>::~GUSISpecificData()
-get__53GUSISpecificData<Q29GUSITimer5Queue,&.GUSIKillTimers>FP17GUSISpecificTable              # GUSISpecificData<GUSITimer::Queue, &.GUSIKillTimers>::get(GUSISpecificTable*)
-__dt__9GUSITimerFv             # GUSITimer::~GUSITimer()
-Kill__9GUSITimerFv             # GUSITimer::Kill()
-Sleep__9GUSITimerFlb           # GUSITimer::Sleep(long,bool)
-__ct__9GUSITimerFbP11GUSIContext               # GUSITimer::GUSITimer(bool,GUSIContext*)
-GUSIKillTimers
-__dt__Q29GUSITimer10TimerQueueFv               # GUSITimer::TimerQueue::~TimerQueue()
-Wakeup__9GUSITimerFv           # GUSITimer::Wakeup()
-GM2LocalTime__8GUSITimeFv              # GUSITime::GM2LocalTime()
-Local2GMTime__8GUSITimeFv              # GUSITime::Local2GMTime()
-Zone__8GUSITimeFv              # GUSITime::Zone()
-Now__8GUSITimeFv               # GUSITime::Now()
-__ct__8GUSITimeFRCQ23std2tm            # GUSITime::GUSITime(const std::tm&)
-__opQ23std2tm__8GUSITimeFv             # GUSITime::operator std::tm()
-__op8timespec__8GUSITimeFv             # GUSITime::operator timespec()
-__op7timeval__8GUSITimeFv              # GUSITime::operator timeval()
-Deconstruct__8GUSITimeFRx              # GUSITime::Deconstruct(long long&)
-Get64__8GUSITimeFQ28GUSITime6Format            # GUSITime::Get64(GUSITime::Format)
-__ct__8GUSITimeFRC8timespec            # GUSITime::GUSITime(const timespec&)
-__ct__8GUSITimeFRC7timeval             # GUSITime::GUSITime(const timeval&)
-Construct__8GUSITimeFxQ28GUSITime6Format               # GUSITime::Construct(long long,GUSITime::Format)
-__vt__9GUSIAlarm               # GUSIAlarm::__vt
-__vt__14GUSISigFactory         # GUSISigFactory::__vt
-__vt__14GUSISigProcess         # GUSISigProcess::__vt
-__vt__14GUSISigContext         # GUSISigContext::__vt
-ualarm
-__dt__9GUSIAlarmFv             # GUSIAlarm::~GUSIAlarm()
-__dt__Q23std48auto_ptr<9GUSIAlarm,Q23std19_Single<9GUSIAlarm>>Fv               # std::auto_ptr<GUSIAlarm, std::_Single<GUSIAlarm>>::~auto_ptr()
-alarm
-Restart__9GUSIAlarmFl          # GUSIAlarm::Restart(long)
-Wakeup__9GUSIAlarmFv           # GUSIAlarm::Wakeup()
-_exit
-abort__Fv              # abort()
-sigwait
-pause
-sigsuspend
-sigprocmask
-pthread_sigmask
-sigpending
-signal
-sigaction
-pthread_kill
-raise
-sigismember
-sigfillset
-sigemptyset
-sigdelset
-sigaddset
-CreateSigContext__14GUSISigFactoryFPC14GUSISigContext          # GUSISigFactory::CreateSigContext(const GUSISigContext*)
-CreateSigProcess__14GUSISigFactoryFv           # GUSISigFactory::CreateSigProcess()
-__dt__14GUSISigFactoryFv               # GUSISigFactory::~GUSISigFactory()
-__dt__Q23std60auto_ptr<14GUSISigFactory,Q23std25_Single<14GUSISigFactory>>Fv           # std::auto_ptr<GUSISigFactory, std::_Single<GUSISigFactory>>::~auto_ptr()
-SetInstance__14GUSISigFactoryFP14GUSISigFactory                # GUSISigFactory::SetInstance(GUSISigFactory*)
-Instance__14GUSISigFactoryFv           # GUSISigFactory::Instance()
-DefaultAction__14GUSISigProcessFiRC9sigaction          # GUSISigProcess::DefaultAction(int,const sigaction&)
-Raise__14GUSISigProcessFiP14GUSISigContext             # GUSISigProcess::Raise(int,GUSISigContext*)
-Post__14GUSISigProcessFi               # GUSISigProcess::Post(int)
-ClearPending__14GUSISigProcessFUi              # GUSISigProcess::ClearPending(unsigned int)
-Pending__14GUSISigProcessCFv           # GUSISigProcess::Pending() const
-SetAction__14GUSISigProcessFiRC9sigaction              # GUSISigProcess::SetAction(int,const sigaction&)
-CantIgnore__14GUSISigProcessFi         # GUSISigProcess::CantIgnore(int)
-CantCatch__14GUSISigProcessFi          # GUSISigProcess::CantCatch(int)
-GetAction__14GUSISigProcessFi          # GUSISigProcess::GetAction(int)
-__dt__14GUSISigProcessFv               # GUSISigProcess::~GUSISigProcess()
-__ct__14GUSISigProcessFv               # GUSISigProcess::GUSISigProcess()
-Raise__14GUSISigContextFP14GUSISigProcessb             # GUSISigContext::Raise(GUSISigProcess*,bool)
-Ready__14GUSISigContextFP14GUSISigProcess              # GUSISigContext::Ready(GUSISigProcess*)
-Pending__14GUSISigContextCFP14GUSISigProcess           # GUSISigContext::Pending(GUSISigProcess*) const
-Post__14GUSISigContextFi               # GUSISigContext::Post(int)
-ClearPending__14GUSISigContextFUi              # GUSISigContext::ClearPending(unsigned int)
-Pending__14GUSISigContextCFv           # GUSISigContext::Pending() const
-SetBlocked__14GUSISigContextFUi                # GUSISigContext::SetBlocked(unsigned int)
-GetBlocked__14GUSISigContextCFv                # GUSISigContext::GetBlocked() const
-CantBlock__14GUSISigContextFv          # GUSISigContext::CantBlock()
-__dt__14GUSISigContextFv               # GUSISigContext::~GUSISigContext()
-__ct__14GUSISigContextFPC14GUSISigContext              # GUSISigContext::GUSISigContext(const GUSISigContext*)
-atan
-atan2
-memmove
-memcpy
-pow
-exp
-log
-log10
-sqrt
-strcmp
-strlen
-strncmp
-sin
-cos
-atan_d_d
-atan2_d_dd
-atan_d_pd
-atan2_d_pdpd
-atan_r_r
-atan2_r_rr
-atan_r_pr
-atan2_r_prpr
-power_d_dd
-exp_d_d
-exp_d_pd
-exp_r_r
-exp_r_pr
-log_d_d
-log_d_pd
-log10_d_d
-log10_d_pd
-sqrt_d_d
-sqrt_d_pd
-sqrt_r_r
-sqrt_r_pr
-sin_d_d
-sin_d_pd
-sin_r_r
-sin_r_pr
-cos_d_d
-cos_d_pd
-cos_r_r
-cos_r_pr
-__dc_arr
-__del_arr
-__new_arr
-__init_arr
-__copy
-__som_check_ev
-__som_check_new
-__vt__Q23std13bad_exception            # std::bad_exception::__vt
-__vt__Q23std9exception         # std::exception::__vt
-what__Q23std9exceptionCFv              # std::exception::what() const
-what__Q23std13bad_exceptionCFv         # std::bad_exception::what() const
-__end__catch
-__throw
-__dt__Q23std9exceptionFv               # std::exception::~exception()
-__unexpected
-__dt__Q23std13bad_exceptionFv          # std::bad_exception::~bad_exception()
-__unregister_fragment
-__register_fragment
-__global_destructor_chain
-__destroy_global_chain
-__register_global_object
-__destroy_new_array3
-__destroy_new_array2
-__destroy_new_array
-__destroy_arr
-__construct_array
-__dt__26__partial_array_destructorFv           # __partial_array_destructor::~__partial_array_destructor()
-__construct_new_array
-__throw_catch_compare
-unexpected__3stdFv             # std::unexpected()
-set_unexpected__3stdFPFv_v             # std::set_unexpected(void (*)(void))
-terminate__3stdFv              # std::terminate()
-set_terminate__3stdFPFv_v              # std::set_terminate(void (*)(void))
-__vt__Q23std8bad_cast          # std::bad_cast::__vt
-__vt__Q23std10bad_typeid               # std::bad_typeid::__vt
-what__Q23std10bad_typeidCFv            # std::bad_typeid::what() const
-what__Q23std8bad_castCFv               # std::bad_cast::what() const
-__dynamic_cast
-__dt__Q23std8bad_castFv                # std::bad_cast::~bad_cast()
-__get_typeid
-__dt__Q23std10bad_typeidFv             # std::bad_typeid::~bad_typeid()
-nothrow__3std          # std::nothrow
-__dla__FPvRCQ23std9nothrow_t           # operator delete[](void*,const std::nothrow_t&)
-__dl__FPvRCQ23std9nothrow_t            # operator delete(void*,const std::nothrow_t&)
-__dla__FPv             # operator delete[](void*)
-__nwa__FUlRCQ23std9nothrow_t           # operator new[](unsigned long,const std::nothrow_t&)
-__nwa__FUl             # operator new[](unsigned long)
-__dl__FPv              # operator delete(void*)
-__nw__FUlRCQ23std9nothrow_t            # operator new(unsigned long,const std::nothrow_t&)
-__nw__FUl              # operator new(unsigned long)
-__throws_bad_alloc__3std               # std::__throws_bad_alloc
-__vt__Q23std9bad_alloc         # std::bad_alloc::__vt
-__new_handler__3std            # std::__new_handler
-what__Q23std9bad_allocCFv              # std::bad_alloc::what() const
-__del_hdl
-__new_hdl
-set_new_handler__3stdFPFv_v            # std::set_new_handler(void (*)(void))
-__throw_bad_alloc__3stdFv              # std::__throw_bad_alloc()
-__dt__Q23std9bad_allocFv               # std::bad_alloc::~bad_alloc()
-qd
-exit
-abort
-__console_exit
-__stdio_exit
-__aborting
-__exit
-exit
-__atexit
-atexit
-abort
-fix_start
-vec_free
-vec_realloc
-vec_calloc
-vec_malloc
-__pool_free_all
-calloc
-realloc
-free
-malloc
-__msize
-deallocate_from_fixed_pools
-allocate_from_fixed_pools
-__files
-__flush_line_buffered_output_files
-__flush_all
-__close_all
-__init_file
-__find_unopened_file
-__llmod
-__lmod
-__mod
-__lldiv
-__ldiv
-__div
-__llmul
-__lmul
-__mul
-__lladd
-__ladd
-__add
-lldiv
-ldiv
-div
-llabs
-labs
-abs
-__assertion_failed
-bsearch
-setbuf
-setvbuf
-__flush_buffer
-__load_buffer
-__prep_buffer
-__convert_to_newlines
-__convert_from_newlines
-ccommand
-puts
-fputs
-putchar
-putc
-fputc
-__put_char
-__ungotten
-ungetc
-gets
-fgets
-getchar
-getc
-fgetc
-__get_char
-__ctype_map
-__lower_map
-__upper_map
-fwrite
-fread
-errno
-_splitpath
-_makepath
-_strrev
-_itow
-_itoa
-_strspnp
-_strnset
-_strset
-_strdate
-_strupr
-_wstrrev
-_strnicmp
-_stricmp
-_heapmin
-_gcvt
-_ultoa
-_strlwr
-_wcsspnp
-_wcsnset
-_wcsset
-_wcsrev
-_wcsnicmp
-_wcsicmp
-_wcsupr
-_wcslwr
-__temp_file_mode
-__set_idle_proc
-__get_file_modes
-__handle_reopen
-__handle_open
-__reopen
-freopen
-fopen
-fflush
-fclose
-tmpfile
-tmpnam
-__rename_file
-__delete_file
-__temp_file_name
-rewind
-fsetpos
-fseek
-_fseek
-fgetpos
-ftell
-_ftell
-__lconv
-localeconv
-setlocale
-wcstombs
-mbstowcs
-wctomb
-mbtowc
-mblen
-memcmp
-__memrchr
-memchr
-memset
-__fill_mem
-__copy_longs_rev_unaligned
-__copy_longs_unaligned
-__copy_longs_rev_aligned
-__copy_longs_aligned
-__move_mem
-__copy_mem
-__stdio_atexit
-perror
-ferror
-feof
-clearerr
-__path2fss
-__sys_pointer_size
-__sys_free
-__sys_alloc
-sprintf
-snprintf
-vsprintf
-vsnprintf
-vfprintf
-vprintf
-fprintf
-printf
-__StringWrite
-__FileWrite
-qsort
-srand
-rand
-sscanf
-vsscanf
-vfscanf
-scanf
-fscanf
-__StringRead
-__FileRead
-__strerror
-strerror
-strstr
-strtok
-strcspn
-strspn
-strpbrk
-strrchr
-strxfrm
-strcoll
-strchr
-strncat
-strcat
-strncpy
-strcpy
-atof
-strtod
-strtold
-__strtold
-atol
-atoi
-strtoll
-strtol
-strtoull
-strtoul
-__strtoull
-__strtoul
-system
-getenv
-__month_to_days
-strftime
-ctime
-asctime
-difftime
-clock
-__leap_year
-__to_gm_time
-__get_time
-__get_clock
-_fcntl
-_creat
-_open
-_mkdir
-_fstat
-_stat
-_write
-_unlink
-_ttyname
-_sleep
-_rmdir
-_read
-_lseek
-_isatty
-_getlogin
-_getcwd
-_exec
-_cuserid
-_close
-_chdir
-__new_umask
-_fileno
-_umask
-_ftype
-_fcreator
-_chmod
-__gettype
-__getcreator
-__ctopstring
-__system7present
-utimes
-_uname
-__float_nan
-__float_huge
-__double_min
-__double_max
-__double_epsilon
-__double_tiny
-__double_huge
-__double_nan
-__extended_min
-__extended_max
-__extended_epsilon
-__extended_tiny
-__extended_huge
-__extended_nan
-fwide
-fgetws
-fputws
-ungetwc
-fgetwc
-getwchar
-getwc
-fputwc
-putwchar
-putwc
-watof
-wcstod
-__wcstold
-watol
-watoi
-wcstoll
-wcstol
-wcstoull
-wcstoul
-__wcstoull
-__wcstoul
-wctrans
-towctrans
-__wctype_map
-__wlower_map
-__wupper_map
-iswctype
-wctype
-wctob
-wmemcmp
-wmemchr
-wmemset
-wmemmove
-wmemcpy
-vswprintf
-swprintf
-vfwprintf
-vwprintf
-fwprintf
-wprintf
-__wStringWrite
-__wFileWrite
-swscanf
-vswscanf
-vfwscanf
-vwscanf
-wscanf
-fwscanf
-__wStringRead
-__wFileRead
-wcsstr
-wcstok
-wcscspn
-wcsspn
-wcspbrk
-wcsrchr
-wcsxfrm
-wcscoll
-wcschr
-wcsncmp
-wcscmp
-wcsncat
-wcscat
-wcsncpy
-wcscpy
-wcslen
-wcsftime
-wctime
-wasctime
-__fminl
-__fmaxl
-__fdiml
-__nextafterl
-__remquol
-__copysignl
-__remainderl
-__fmodl
-__modfl
-__truncl
-llroundl
-lroundl
-__roundl
-llrintl
-lrintl
-__rintl
-__nearbyintl
-__floorl
-__ceill
-__lgammal
-__gammal
-__erfcl
-__erfl
-__hypotl
-__sqrtl
-__powl
-__fabsl
-scalblnl
-scalbnl
-__logbl
-__log2l
-__log1pl
-__expm1l
-__exp2l
-__log10l
-__logl
-__ldexpl
-__frexpl
-__expl
-__atanhl
-__asinhl
-__acoshl
-__tanhl
-__sinhl
-__coshl
-__tanl
-__sinl
-__cosl
-__atan2l
-__atanl
-__asinl
-__acosl
-fminf
-fmaxf
-fdimf
-remquof
-copysignf
-remainderf
-fmodf
-truncf
-llroundf
-lroundf
-roundf
-llrintf
-lrintf
-rintf
-nearbyintf
-floorf
-ceilf
-lgammaf
-gammaf
-erfcf
-erff
-hypotf
-sqrtf
-powf
-fabsf
-scalblnf
-scalbnf
-logbf
-log2f
-log1pf
-expm1f
-exp2f
-log10f
-logf
-ldexpf
-frexpf
-expf
-atanhf
-asinhf
-acoshf
-tanhf
-sinhf
-coshf
-tanf
-sinf
-cosf
-atan2f
-atanf
-asinf
-acosf
-nextafter
-llround
-lround
-llrint
-lrint
-scalbln
-scalbn
-clrscr
-getch
-kbhit
-SIOUXSetTitle
-__ttyname
-ReadCharsFromConsole
-WriteCharsToConsole
-RemoveConsole
-InstallConsole
-SIOUXHandleOneEvent
-SIOUXisinrange
-SIOUXDragRect
-SIOUXBigRect
-SIOUXSettings
-SIOUXTextWindow
-SIOUXState
-SIOUXUseWaitNextEvent
-SIOUXQuitting
-SIOUXselstart
-SIOUXDoMenuChoice
-SIOUXDoEditSelectAll
-SIOUXDoEditClear
-SIOUXDoEditPaste
-SIOUXDoEditCopy
-SIOUXDoEditCut
-SIOUXDoSaveText
-SIOUXUpdateMenuItems
-SIOUXSetupMenus
-SIOUXDoPrintText
-SIOUXDoPageSetup
-SIOUXYesNoCancelAlert
-SIOUXCantSaveAlert
-SIOUXSetupTextWindow
-SIOUXDoContentClick
-SIOUXMyGrowWindow
-SIOUXUpdateStatusLine
-MoveScrollBox
-SIOUXUpdateScrollbar
-SIOUXUpdateWindow
-SIOUXDrawGrowBox
-AdjustText
-SIOUXIsAppWindow
-OTAsyncOpenInternetServices
-OTOpenInternetServices
-InitOpenTransportUtilities
-CloseOpenTransport
-OTRegisterAsClient
-OTUnregisterAsClient
-OTAllocMem
-InitOpenTransport
-OTAlloc
-OTOpenProvider
-OTOpenMapper
-OTOpenEndpoint
-OTAsyncOpenProvider
-OTAsyncOpenMapper
-OTAsyncOpenEndpoint
-OTTransferProviderOwnership
-OTWhoAmI
-OTCloseProvider
-t_alloc
-t_open
-t_close
-__gOTClientRecord
-InitOpenTransportCommon
-SetupOpenTransport
-__gLibraryManager
-__gSLMGlobal
-OTCreateDeferredTask
-OTCreateSystemTask
-OTOpenProviderOnStream
-OTOpenEndpointOnStream
-OTStreamOpen
-OTAsyncStreamOpen
-stream_open
-stream_pipe
-OTStreamPipe
-AEGetDescData
-AEGetDescDataSize
-AEReplaceDescData
-GetControlBounds
-IsControlHilited
-GetControlHilite
-GetControlDataHandle
-GetControlOwner
-GetControlPopupMenuHandle
-GetControlPopupMenuID
-SetControlBounds
-SetControlDataHandle
-SetControlPopupMenuHandle
-SetControlPopupMenuID
-GetDialogWindow
-GetDialogTextEditHandle
-GetDialogDefaultItem
-GetDialogCancelItem
-GetDialogKeyboardFocusItem
-SetPortDialogPort
-GetDialogPort
-GetDialogFromWindow
-GetParamText
-GetCorrectPort
-GetPortPixMap
-GetPortBounds
-IsPortRegionBeingDefined
-IsPortPictureBeingDefined
-IsPortOffscreen
-GetPortVisibleRegion
-GetPortClipRegion
-GetPortForeColor
-GetPortBackColor
-GetPortBackPixPatDirect
-GetPortBackPixPat
-GetPortPenPixPatDirect
-GetPortPenPixPat
-GetPortFillPixPat
-GetPortTextFont
-GetPortTextFace
-GetPortTextMode
-GetPortFracHPenLocation
-GetPortChExtra
-GetPortPenVisibility
-GetPortSpExtra
-GetPortTextSize
-GetPortGrafProcs
-GetPortOpColor
-GetPortHiliteColor
-GetPixBounds
-GetPixDepth
-GetPortPenSize
-GetPortPenMode
-GetPortPenLocation
-GetPortPrintingReference
-SetPortBounds
-SetPortVisibleRegion
-SetPortClipRegion
-SetPortPenPixPatDirect
-SetPortPenPixPat
-SetPortBackPixPatDirect
-SetPortBackPixPat
-SetPortOpColor
-SetPortPenSize
-SetPortPenMode
-SetPortFracHPenLocation
-SetPortGrafProcs
-SetPortPrintingReference
-GetQDGlobalsRandomSeed
-GetQDGlobalsScreenBits
-GetQDGlobalsArrow
-GetQDGlobalsDarkGray
-GetQDGlobalsLightGray
-GetQDGlobalsGray
-GetQDGlobalsBlack
-GetQDGlobalsWhite
-GetQDGlobalsThePort
-SetQDGlobalsArrow
-SetQDGlobalsRandomSeed
-GetRegionBounds
-IsRegionRectangular
-CreateNewPort
-DisposePort
-SetQDError
-GetWindowPort
-GetWindowKind
-IsWindowVisible
-IsWindowHilited
-IsWindowUpdatePending
-GetWindowGoAwayFlag
-GetWindowSpareFlag
-GetWindowStandardState
-GetWindowUserState
-SetWindowKind
-SetWindowStandardState
-SetWindowUserState
-SetPortWindowPort
-GetWindowPortBounds
-GetWindowFromPort
-IsTSMTEDialog
-GetTSMTEDialogDocumentID
-GetTSMTEDialogTSMTERecHandle
-SetTSMTEDialogDocumentID
-SetTSMTEDialogTSMTERecHandle
-GetMenuID
-GetMenuWidth
-GetMenuHeight
-GetMenuTitle
-SetMenuID
-SetMenuWidth
-SetMenuHeight
-SetMenuTitle
-GetGlobalMouse
-GetListViewBounds
-GetListPort
-GetListCellIndent
-GetListCellSize
-GetListVisibleCells
-GetListVerticalScrollBar
-GetListHorizontalScrollBar
-GetListFlags
-GetListSelectionFlags
-GetListActive
-GetListClickTime
-GetListClickLocation
-GetListMouseLocation
-GetListClickLoop
-GetListRefCon
-GetListDefinition
-GetListUserHandle
-GetListDataBounds
-GetListDataHandle
-SetListViewBounds
-SetListPort
-SetListCellIndent
-SetListClickTime
-SetListClickLoop
-SetListLastClick
-SetListRefCon
-SetListFlags
-SetListSelectionFlags
-SetListUserHandle
-GrabSpecifiedCFMSymbol
-CopyPascalStringToC
-CopyCStringToPascal
-p2cstrcpy
-GetQDGlobals
-GetWindowList
-GetNextWindow
diff --git a/Mac/Build/PythonCore.mcp b/Mac/Build/PythonCore.mcp
deleted file mode 100644 (file)
index 6cff596..0000000
Binary files a/Mac/Build/PythonCore.mcp and /dev/null differ
diff --git a/Mac/Build/PythonCoreCarbon.exp b/Mac/Build/PythonCoreCarbon.exp
deleted file mode 100644 (file)
index 6f93cc2..0000000
+++ /dev/null
@@ -1,2215 +0,0 @@
-sSuffices
-GUSISetupConfig
-GUSISetupDevices
-GUSISetupFactories
-__vt__15GUSISIOUXDevice                # GUSISIOUXDevice::__vt
-__vt__15GUSISIOUXSocket                # GUSISIOUXSocket::__vt
-sInstance__15GUSISIOUXDevice           # GUSISIOUXDevice::sInstance
-sInstance__15GUSISIOUXSocket           # GUSISIOUXSocket::sInstance
-__dt__15GUSISIOUXDeviceFv              # GUSISIOUXDevice::~GUSISIOUXDevice()
-GUSISetupConsoleDescriptors
-open__15GUSISIOUXDeviceFR13GUSIFileTokeni              # GUSISIOUXDevice::open(GUSIFileToken&,int)
-Want__15GUSISIOUXDeviceFR13GUSIFileToken               # GUSISIOUXDevice::Want(GUSIFileToken&)
-__dt__10GUSIDeviceFv           # GUSIDevice::~GUSIDevice()
-Instance__15GUSISIOUXDeviceFv          # GUSISIOUXDevice::Instance()
-select__15GUSISIOUXSocketFPbPbPb               # GUSISIOUXSocket::select(bool*,bool*,bool*)
-isatty__15GUSISIOUXSocketFv            # GUSISIOUXSocket::isatty()
-fstat__15GUSISIOUXSocketFP4stat                # GUSISIOUXSocket::fstat(stat*)
-ioctl__15GUSISIOUXSocketFUiPc          # GUSISIOUXSocket::ioctl(unsigned int,char*)
-write__15GUSISIOUXSocketFRC12GUSIGatherer              # GUSISIOUXSocket::write(const GUSIGatherer&)
-read__15GUSISIOUXSocketFRC13GUSIScatterer              # GUSISIOUXSocket::read(const GUSIScatterer&)
-__dt__15GUSISIOUXSocketFv              # GUSISIOUXSocket::~GUSISIOUXSocket()
-Initialize__15GUSISIOUXSocketFv                # GUSISIOUXSocket::Initialize()
-__ct__15GUSISIOUXSocketFv              # GUSISIOUXSocket::GUSISIOUXSocket()
-Instance__15GUSISIOUXSocketFv          # GUSISIOUXSocket::Instance()
-_PyBuiltin_Init
-_PyEval_SliceIndex
-PyEval_CallObjectWithKeywords
-PyEval_CallObject
-Py_FlushLine
-PyEval_GetRestricted
-PyEval_GetFrame
-PyEval_GetGlobals
-PyEval_GetLocals
-PyEval_GetBuiltins
-PyEval_EvalCode
-Py_SetRecursionLimit
-Py_GetRecursionLimit
-Py_MakePendingCalls
-Py_AddPendingCall
-PyEval_RestoreThread
-PyEval_SaveThread
-PyEval_ReInitThreads
-PyEval_ReleaseThread
-PyEval_AcquireThread
-PyEval_ReleaseLock
-PyEval_AcquireLock
-PyEval_InitThreads
-PyArg_GetFloatArray
-PyArg_GetDoubleArray
-PyArg_GetShortArray
-PyArg_GetLongArray
-PyArg_GetShortArraySize
-PyArg_GetLongArraySize
-PyArg_GetChar
-PyArg_GetString
-PyArg_GetFloat
-PyArg_GetShort
-PyArg_GetLong
-PyArg_GetObject
-PyErr_Warn
-PyErr_WriteUnraisable
-PyErr_NewException
-PyErr_Format
-PyErr_BadInternalCall
-_PyErr_BadInternalCall
-PyErr_SetFromErrno
-PyErr_SetFromErrnoWithFilename
-PyErr_NoMemory
-PyErr_BadArgument
-PyErr_Clear
-PyErr_Fetch
-PyErr_NormalizeException
-PyErr_ExceptionMatches
-PyErr_GivenExceptionMatches
-PyErr_Occurred
-PyErr_SetString
-PyErr_SetNone
-PyErr_SetObject
-PyErr_Restore
-PyImport_FrozenModules
-PyArg_ParseTupleAndKeywords
-PyArg_VaParse
-PyArg_ParseTuple
-PyArg_Parse
-Py_GetCopyright
-PyOS_GetLastModificationTime
-_PyOS_opterr
-_PyOS_optind
-_PyOS_optarg
-_PyOS_GetOpt
-Py_GetVersion
-_PyParser_Grammar
-PyImport_Inittab
-_PyImport_Filetab
-PyImport_AppendInittab
-PyImport_ExtendInittab
-initimp
-PyImport_Import
-PyImport_ReloadModule
-PyImport_ImportModuleEx
-PyImport_ImportModule
-PyImport_ImportFrozenModule
-PyImport_ExecCodeModuleEx
-PyImport_ExecCodeModule
-PyImport_AddModule
-_PyImport_FindExtension
-_PyImport_FixupExtension
-PyImport_GetMagicNumber
-PyImport_Cleanup
-PyImport_GetModuleDict
-_PyImport_Fini
-_PyImport_Init
-_PyImport_LoadDynamicModule
-PyMarshal_Init
-PyMarshal_WriteObjectToString
-PyMarshal_ReadObjectFromString
-PyMarshal_ReadObjectFromFile
-PyMarshal_ReadLastObjectFromFile
-PyMarshal_ReadLongFromFile
-PyMarshal_WriteObjectToFile
-PyMarshal_WriteLongToFile
-_Py_PackageContext
-PyModule_AddStringConstant
-PyModule_AddIntConstant
-PyModule_AddObject
-PyEval_CallMethod
-PyEval_CallFunction
-Py_VaBuildValue
-Py_BuildValue
-Py_InitModule4
-PyOS_strtol
-PyOS_strtoul
-Py_UseClassExceptionsFlag
-Py_DebugFlag
-Py_VerboseFlag
-Py_InteractiveFlag
-Py_NoSiteFlag
-Py_FrozenFlag
-_PyThread_Started
-Py_UnicodeFlag
-PyOS_setsig
-PyOS_getsig
-Py_FdIsInteractive
-Py_Exit
-Py_AtExit
-Py_FatalError
-PyParser_SimpleParseString
-PyParser_SimpleParseFile
-Py_SymtableString
-Py_CompileString
-PyRun_FileEx
-PyRun_File
-PyRun_String
-PyErr_PrintEx
-PyErr_Print
-PyRun_SimpleString
-PyRun_SimpleFileEx
-PyRun_SimpleFile
-PyRun_InteractiveOne
-PyRun_InteractiveLoop
-PyRun_AnyFileEx
-PyRun_AnyFile
-Py_GetPythonHome
-Py_SetPythonHome
-Py_GetProgramName
-Py_SetProgramName
-Py_EndInterpreter
-Py_NewInterpreter
-Py_Finalize
-Py_Initialize
-Py_IsInitialized
-_PyThreadState_Current
-PyThreadState_GetDict
-PyThreadState_Swap
-PyThreadState_Get
-PyThreadState_DeleteCurrent
-PyThreadState_Delete
-PyThreadState_Clear
-PyThreadState_New
-PyInterpreterState_Delete
-PyInterpreterState_Clear
-PyInterpreterState_New
-PyMember_Set
-PyMember_Get
-PySys_WriteStderr
-PySys_WriteStdout
-PySys_SetArgv
-PySys_SetPath
-_PySys_Init
-PySys_AddWarnOption
-PySys_ResetWarnOptions
-PySys_SetObject
-PySys_GetFile
-PySys_GetObject
-PyTraceBack_Type
-PyTraceBack_Print
-PyTraceBack_Here
-PyCode_Type
-Py_OptimizeFlag
-PySymtable_Free
-PyCode_Addr2Line
-PyNode_CompileSymtable
-PyNode_Compile
-is_free
-PyCode_New
-PyObject_CallMethod
-PyObject_CallFunction
-PyObject_CallObject
-PyMapping_HasKey
-PyMapping_HasKeyString
-PyMapping_SetItemString
-PyMapping_GetItemString
-PyMapping_Length
-PyMapping_Size
-PyMapping_Check
-PySequence_Index
-PySequence_In
-PySequence_Contains
-PySequence_Count
-PySequence_Fast
-PySequence_List
-PySequence_Tuple
-PySequence_DelSlice
-PySequence_SetSlice
-PySequence_DelItem
-PySequence_SetItem
-PySequence_GetSlice
-PySequence_GetItem
-PySequence_InPlaceRepeat
-PySequence_InPlaceConcat
-PySequence_Repeat
-PySequence_Concat
-PySequence_Length
-PySequence_Size
-PySequence_Check
-PyNumber_Float
-PyNumber_Long
-PyNumber_Int
-PyNumber_Absolute
-PyNumber_Invert
-PyNumber_Positive
-PyNumber_Negative
-PyNumber_InPlacePower
-PyNumber_InPlaceRemainder
-PyNumber_InPlaceMultiply
-PyNumber_InPlaceAdd
-PyNumber_InPlaceDivide
-PyNumber_InPlaceSubtract
-PyNumber_InPlaceRshift
-PyNumber_InPlaceLshift
-PyNumber_InPlaceAnd
-PyNumber_InPlaceXor
-PyNumber_InPlaceOr
-PyNumber_Power
-PyNumber_Remainder
-PyNumber_Add
-PyNumber_Divmod
-PyNumber_Divide
-PyNumber_Multiply
-PyNumber_Subtract
-PyNumber_Rshift
-PyNumber_Lshift
-PyNumber_And
-PyNumber_Xor
-PyNumber_Or
-PyNumber_Check
-PyObject_AsWriteBuffer
-PyObject_AsReadBuffer
-PyObject_AsCharBuffer
-PyObject_DelItem
-PyObject_SetItem
-PyObject_GetItem
-PyObject_Length
-PyObject_Size
-PyObject_Type
-PyObject_Cmp
-PyClass_Type
-PyInstance_Type
-PyMethod_Type
-PyMethod_Fini
-PyMethod_Class
-PyMethod_Self
-PyMethod_Function
-PyMethod_New
-PyInstance_New
-PyInstance_NewRaw
-PyClass_IsSubclass
-PyClass_New
-PyCObject_Type
-PyCObject_Import
-PyCObject_GetDesc
-PyCObject_AsVoidPtr
-PyCObject_FromVoidPtrAndDesc
-PyCObject_FromVoidPtr
-PyComplex_Type
-PyComplex_AsCComplex
-PyComplex_ImagAsDouble
-PyComplex_RealAsDouble
-PyComplex_FromDoubles
-PyComplex_FromCComplex
-_Py_c_pow
-_Py_c_quot
-_Py_c_prod
-_Py_c_neg
-_Py_c_diff
-_Py_c_sum
-PyDict_Type
-PyDict_DelItemString
-PyDict_SetItemString
-PyDict_GetItemString
-PyDict_Items
-PyDict_Values
-PyDict_Keys
-PyDict_Size
-PyDict_Copy
-PyDict_Next
-PyDict_Clear
-PyDict_DelItem
-PyDict_SetItem
-PyDict_GetItem
-PyDict_New
-PyFile_Type
-PyObject_AsFileDescriptor
-PyFile_WriteString
-PyFile_WriteObject
-PyFile_SoftSpace
-PyFile_GetLine
-_portable_ftell
-_portable_fseek
-PyFile_SetBufSize
-PyFile_FromString
-PyFile_FromFile
-PyFile_Name
-PyFile_AsFile
-PyFloat_Type
-PyFloat_Fini
-PyFloat_AsString
-PyFloat_AsStringEx
-PyFloat_AsDouble
-PyFloat_FromString
-PyFloat_FromDouble
-PyFrame_Type
-PyFrame_Fini
-PyFrame_LocalsToFast
-PyFrame_FastToLocals
-PyFrame_BlockPop
-PyFrame_BlockSetup
-PyFrame_New
-PyFunction_Type
-PyFunction_SetClosure
-PyFunction_GetClosure
-PyFunction_SetDefaults
-PyFunction_GetDefaults
-PyFunction_GetGlobals
-PyFunction_GetCode
-PyFunction_New
-_Py_ZeroStruct
-_Py_TrueStruct
-PyInt_Type
-PyInt_Fini
-PyInt_FromUnicode
-PyInt_FromString
-PyInt_AsLong
-PyInt_FromLong
-PyInt_GetMax
-PyList_Type
-PyList_AsTuple
-PyList_Reverse
-PyList_Sort
-PyList_SetSlice
-PyList_GetSlice
-PyList_Append
-PyList_Insert
-PyList_SetItem
-PyList_GetItem
-PyList_Size
-PyList_New
-PyLong_Type
-PyLong_FromUnicode
-PyLong_FromString
-PyLong_AsVoidPtr
-PyLong_FromVoidPtr
-PyLong_AsDouble
-PyLong_AsUnsignedLong
-PyLong_AsLong
-PyLong_FromDouble
-PyLong_FromUnsignedLong
-PyLong_FromLong
-_PyLong_New
-PyCFunction_Type
-PyCFunction_Fini
-Py_FindMethod
-Py_FindMethodInChain
-PyCFunction_GetFlags
-PyCFunction_GetSelf
-PyCFunction_GetFunction
-PyCFunction_New
-PyModule_Type
-_PyModule_Clear
-PyModule_GetFilename
-PyModule_GetName
-PyModule_GetDict
-PyModule_New
-_Py_NoneStruct
-_Py_NotImplementedStruct
-_Py_cobject_hack
-_Py_abstract_hack
-PyObject_ClearWeakRefs
-_PyTrash_delete_later
-_PyTrash_delete_nesting
-_PyTrash_destroy_chain
-_PyTrash_deposit_object
-Py_ReprLeave
-Py_ReprEnter
-PyObject_Free
-PyObject_Realloc
-PyObject_Malloc
-PyMem_Free
-PyMem_Realloc
-PyMem_Malloc
-PyCallable_Check
-PyNumber_Coerce
-PyNumber_CoerceEx
-PyObject_Not
-PyObject_IsTrue
-PyObject_SetAttr
-PyObject_HasAttr
-PyObject_GetAttr
-PyObject_SetAttrString
-PyObject_HasAttrString
-PyObject_GetAttrString
-PyObject_Hash
-_Py_HashPointer
-_Py_HashDouble
-PyObject_RichCompareBool
-PyObject_RichCompare
-PyObject_Compare
-PyObject_Unicode
-PyObject_Str
-PyObject_Repr
-_PyObject_Dump
-PyObject_Print
-_PyGC_Remove
-_PyGC_Insert
-_PyObject_Del
-_PyObject_NewVar
-_PyObject_New
-PyObject_InitVar
-PyObject_Init
-PyRange_Type
-PyRange_New
-_Py_EllipsisObject
-PySlice_Type
-PySlice_GetIndices
-PySlice_New
-PyString_Type
-PyString_Fini
-PyString_InternFromString
-PyString_InternInPlace
-PyString_Format
-_PyString_FormatLong
-_PyString_Resize
-PyString_ConcatAndDel
-PyString_Concat
-PyString_AsStringAndSize
-PyString_AsString
-PyString_Size
-PyString_AsEncodedString
-PyString_Encode
-PyString_Decode
-PyString_FromString
-PyString_FromStringAndSize
-PyTuple_Type
-PyTuple_Fini
-_PyTuple_Resize
-PyTuple_GetSlice
-PyTuple_SetItem
-PyTuple_GetItem
-PyTuple_Size
-PyTuple_New
-PyType_Type
-PyGrammar_RemoveAccelerators
-PyGrammar_AddAccelerators
-PyGrammar_LabelRepr
-PyGrammar_FindDFA
-PyOS_AfterFork
-PyOS_ReadlineFunctionPointer
-PyOS_InputHook
-PyOS_Readline
-PyOS_StdioReadline
-PyNode_Free
-PyNode_AddChild
-PyNode_New
-PyParser_AddToken
-PyParser_Delete
-PyParser_New
-Py_TabcheckFlag
-PyParser_ParseFile
-PyParser_ParseString
-_PyParser_TokenNames
-PyTokenizer_Get
-PyToken_ThreeChars
-PyToken_TwoChars
-PyToken_OneChar
-PyTokenizer_Free
-PyTokenizer_FromFile
-PyTokenizer_FromString
-array_methods
-initarray
-initaudioop
-initbinascii
-initcmath
-initerrno
-Py_GetBuildInfo
-initimageop
-initmath
-_Py_MD5Final
-_Py_MD5Update
-_Py_MD5Init
-initmd5
-new_doc
-initnew
-initoperator
-initparser
-initregex
-_Py_re_syntax_table
-_Py_re_syntax
-_Py_re_search
-_Py_re_match
-_Py_re_compile_pattern
-_Py_re_compile_fastmap
-_Py_re_set_syntax
-_Py_re_compile_initialize
-initrgbimg
-initrotor
-initselect
-gethostbyname_lock
-init_socket
-initstrop
-initstruct
-inittime
-FindApplicationFromCreator
-PyMac_ApplicationFSSpec
-PyMac_ApplicationPath
-open_doc_upp
-open_app_upp
-not_upp
-PyMac_GetArgv
-PyMac_GetFullPath
-PyMac_init_process_location
-strdup
-Py_GetCompiler
-PyMac_PreferenceOptions
-PyMac_GetPythonPath
-PyMac_GetPythonDir
-PyMac_OpenPrefFile
-Py_GetPath
-Py_GetPlatform
-PyMac_ConsoleIsDead
-PyMac_AppearanceCompliant
-PyMac_OSErrException
-PyMac_Buildwide
-PyMac_Getwide
-PyMac_BuildFixed
-PyMac_GetFixed
-PyMac_GetEventRecord
-PyMac_BuildPoint
-PyMac_GetPoint
-PyMac_BuildRect
-PyMac_GetRect
-PyMac_BuildFSSpec
-PyMac_GetFSSpec
-PyMac_BuildOptStr255
-PyMac_BuildStr255
-PyMac_GetStr255
-PyMac_BuildNumVersion
-PyMac_BuildOSType
-PyMac_GetOSType
-SIOUXDoAboutBox
-PyMac_RestoreMenuBar
-PyMac_InitMenuBar
-PyMac_SetSchedParams
-PyMac_GetSchedParams
-PyMac_DoYield
-PyMac_HandleEvent
-PyMac_BuildEventRecord
-PyMac_HandleEventIntern
-PyMac_SetEventHandler
-PyOS_InterruptOccurred
-PyErr_CheckSignals
-PyOS_FiniInterrupts
-PyOS_InitInterrupts
-PyOS_CheckStack
-PyMac_Error
-PyErr_Mac
-PyMac_GetOSErrException
-PyMac_StrError
-Pstring
-PyMac_StopGUSISpin
-RotateCursor
-SpinCursor
-PyMac_getscript
-PyMac_AppRefNum
-PyMac_options
-console_output_state
-PyMac_GetDelayConsoleFlag
-Py_GetExecPrefix
-Py_GetPrefix
-Py_GetArgcArgv
-Py_GetProgramFullPath
-PyMac_Exit
-PyMac_OutputNotSeen
-PyMac_OutputSeen
-PyMac_InitApplication
-PyMac_Initialize
-PyMac_InitApplet
-PyMac_getfiletype
-PyMac_setfiletype
-main
-PyMac_AddLibResources
-__initialize_with_resources
-getwd
-macstat
-sync
-initgestalt
-initmacfs
-newmfssobject
-mfs_GetFSSpecFSSpec
-initmac
-initMacOS
-Pcre_Type
-initpcre
-pcre_lcc
-pcre_fcc
-pcre_cbits
-pcre_ctypes
-pcre_malloc
-pcre_free
-pcre_exec
-pcre_compile
-pcre_info
-pcre_version
-pcre_study
-initcPickle
-Pickler_setattr
-cPickle_PyMapping_HasKey
-initcStringIO
-PyMac_FindModuleExtension
-PyMac_LoadResourceModule
-PyMac_LoadCodeResourceModule
-PyMac_FindCodeResourceModule
-PyMac_FindResourceModule
-_PyImport_Inittab
-CtlObj_chain
-Control_Type
-initCtl
-CtlObj_Convert
-CtlObj_New
-DlgObj_chain
-Dialog_Type
-initDlg
-DlgObj_ConvertToWindow
-DlgObj_Convert
-DlgObj_New
-DlgObj_WhichDialog
-MenuObj_chain
-Menu_Type
-initMenu
-MenuObj_Convert
-MenuObj_New
-GrafObj_chain
-GrafPort_Type
-BMObj_chain
-BitMap_Type
-QDGlobalsAccess_Type
-initQd
-BMObj_NewCopied
-BMObj_Convert
-BMObj_New
-GrafObj_Convert
-GrafObj_New
-QdRGB_Convert
-QdRGB_New
-ResObj_chain
-Resource_Type
-initRes
-OptResObj_Convert
-OptResObj_New
-ResObj_Convert
-ResObj_New
-WinObj_chain
-Window_Type
-initWin
-WinObj_WhichWindow
-WinObj_Convert
-WinObj_New
-PyBuffer_Type
-PyBuffer_New
-PyBuffer_FromReadWriteMemory
-PyBuffer_FromMemory
-PyBuffer_FromReadWriteObject
-PyBuffer_FromObject
-_PyImport_DynLoadFiletab
-_PyImport_GetDynLoadFunc
-init_codecs
-_PyUnicode_Database_Records
-_PyUnicode_CategoryNames
-_PyUnicode_BidirectionalNames
-initunicodedata
-_PyCodecRegistry_Fini
-_PyCodecRegistry_Init
-PyCodec_Decode
-PyCodec_Encode
-PyCodec_StreamWriter
-PyCodec_StreamReader
-PyCodec_Decoder
-PyCodec_Encoder
-_PyCodec_Lookup
-PyCodec_Register
-_PyUnicode_TypeRecords
-_PyUnicode_IsAlpha
-_PyUnicode_ToLowercase
-_PyUnicode_ToUppercase
-_PyUnicode_IsUppercase
-_PyUnicode_IsLowercase
-_PyUnicode_IsWhitespace
-_PyUnicode_IsNumeric
-_PyUnicode_ToNumeric
-_PyUnicode_IsDigit
-_PyUnicode_ToDigit
-_PyUnicode_IsDecimalDigit
-_PyUnicode_ToDecimalDigit
-_PyUnicode_IsTitlecase
-_PyUnicode_ToTitlecase
-_PyUnicode_IsLinebreak
-PyUnicode_Type
-_PyUnicode_Fini
-_PyUnicode_Init
-PyUnicode_Format
-PyUnicode_Split
-PyUnicode_Replace
-PyUnicode_Concat
-PyUnicode_Contains
-PyUnicode_Compare
-PyUnicode_Splitlines
-PyUnicode_Join
-PyUnicode_Tailmatch
-PyUnicode_Find
-PyUnicode_Count
-PyUnicode_EncodeDecimal
-PyUnicode_Translate
-PyUnicode_TranslateCharmap
-PyUnicode_AsCharmapString
-PyUnicode_EncodeCharmap
-PyUnicode_DecodeCharmap
-PyUnicode_AsASCIIString
-PyUnicode_EncodeASCII
-PyUnicode_DecodeASCII
-PyUnicode_AsLatin1String
-PyUnicode_EncodeLatin1
-PyUnicode_DecodeLatin1
-PyUnicode_AsRawUnicodeEscapeString
-PyUnicode_EncodeRawUnicodeEscape
-PyUnicode_DecodeRawUnicodeEscape
-PyUnicode_AsUnicodeEscapeString
-PyUnicode_EncodeUnicodeEscape
-PyUnicode_DecodeUnicodeEscape
-PyUnicode_AsUTF16String
-PyUnicode_EncodeUTF16
-PyUnicode_DecodeUTF16
-PyUnicode_AsUTF8String
-PyUnicode_EncodeUTF8
-PyUnicode_DecodeUTF8
-PyUnicode_SetDefaultEncoding
-PyUnicode_GetDefaultEncoding
-PyUnicode_GetSize
-PyUnicode_AsUnicode
-_PyUnicode_AsDefaultEncodedString
-PyUnicode_AsEncodedString
-PyUnicode_Encode
-PyUnicode_Decode
-PyUnicode_FromEncodedObject
-PyUnicode_FromObject
-PyUnicode_FromUnicode
-PyUnicode_Resize
-initthread
-PyThread_up_sema
-PyThread_down_sema
-PyThread_free_sema
-PyThread_allocate_sema
-PyThread_release_lock
-PyThread_acquire_lock
-PyThread_free_lock
-PyThread_allocate_lock
-PyThread__exit_thread
-PyThread_exit_thread
-PyThread_get_thread_ident
-PyThread_start_new_thread
-PyThread_init_thread
-SystemExit_methods
-SyntaxError_methods
-PyExc_Exception
-PyExc_StandardError
-PyExc_ArithmeticError
-PyExc_LookupError
-PyExc_AssertionError
-PyExc_AttributeError
-PyExc_EOFError
-PyExc_FloatingPointError
-PyExc_EnvironmentError
-PyExc_IOError
-PyExc_OSError
-PyExc_ImportError
-PyExc_IndexError
-PyExc_KeyError
-PyExc_KeyboardInterrupt
-PyExc_MemoryError
-PyExc_NameError
-PyExc_OverflowError
-PyExc_RuntimeError
-PyExc_NotImplementedError
-PyExc_SyntaxError
-PyExc_IndentationError
-PyExc_TabError
-PyExc_SystemError
-PyExc_SystemExit
-PyExc_UnboundLocalError
-PyExc_UnicodeError
-PyExc_TypeError
-PyExc_ValueError
-PyExc_ZeroDivisionError
-PyExc_MemoryErrorInst
-PyExc_Warning
-PyExc_UserWarning
-PyExc_DeprecationWarning
-PyExc_SyntaxWarning
-PyExc_RuntimeWarning
-fini_exceptions
-init_exceptions
-initNav
-AEDesc_chain
-AEDesc_Type
-upp_GenericEventHandler
-upp_AEIdleProc
-initAE
-AEDesc_Convert
-AEDesc_New
-init_locale
-initEvt
-copyright
-init_sre
-initsha
-DragObj_chain
-DragObj_Type
-dragglue_TrackingHandlerUPP
-dragglue_ReceiveHandlerUPP
-dragglue_SendDataUPP
-initDrag
-DragObj_Convert
-DragObj_New
-initxreadlines
-PyCell_Type
-PyCell_Set
-PyCell_Get
-PyCell_New
-PySymtableEntry_Type
-PySymtableEntry_New
-GUSISetupConsoleStdio
-GUSIStdioFlush
-GUSIStdioClose
-_fdopen
-__close_console
-__close_file
-__position_file
-__write_console
-__write_file
-__read_console
-__read_file
-__open_temp_file
-__open_file
-gGUSIEventMask
-h_errno
-gGUSIEventHook
-gGUSIExecHook
-gGUSISpinHook
-GUSI_sprintf__FPcPCce          # GUSI_sprintf(char*,const char*,...)
-GUSI_vsprintf__FPcPCcPc                # GUSI_vsprintf(char*,const char*,char*)
-GUSIHandleNextEvent__Fl                # GUSIHandleNextEvent(long)
-GUSISetMacHostError__Fs                # GUSISetMacHostError(short)
-GUSISetHostError__Fi           # GUSISetHostError(int)
-GUSISetMacError__Fs            # GUSISetMacError(short)
-GUSIMapMacError__Fs            # GUSIMapMacError(short)
-GUSISetPosixError__Fi          # GUSISetPosixError(int)
-GUSIGetHook__FUl               # GUSIGetHook(unsigned long)
-GUSISetHook__FUlPFv_v          # GUSISetHook(unsigned long,void (*)(void))
-__vt__13GUSIScattGath          # GUSIScattGath::__vt
-Peek__Q214GUSIRingBuffer6PeekerFRC13GUSIScattererRUl           # GUSIRingBuffer::Peeker::Peek(const GUSIScatterer&,unsigned long&)
-Peek__Q214GUSIRingBuffer6PeekerFPvRUl          # GUSIRingBuffer::Peeker::Peek(void*,unsigned long&)
-PeekBuffer__Q214GUSIRingBuffer6PeekerFRUl              # GUSIRingBuffer::Peeker::PeekBuffer(unsigned long&)
-__dt__Q214GUSIRingBuffer6PeekerFv              # GUSIRingBuffer::Peeker::~Peeker()
-__ct__Q214GUSIRingBuffer6PeekerFR14GUSIRingBuffer              # GUSIRingBuffer::Peeker::Peeker(GUSIRingBuffer&)
-Valid__14GUSIRingBufferFv              # GUSIRingBuffer::Valid()
-Free__14GUSIRingBufferFv               # GUSIRingBuffer::Free()
-IterateIOVec__14GUSIRingBufferFRC13GUSIScattGathRUlRUlb                # GUSIRingBuffer::IterateIOVec(const GUSIScattGath&,unsigned long&,unsigned long&,bool)
-Consume__14GUSIRingBufferFPvRUl                # GUSIRingBuffer::Consume(void*,unsigned long&)
-Produce__14GUSIRingBufferFPvRUl                # GUSIRingBuffer::Produce(void*,unsigned long&)
-FreeBuffer__14GUSIRingBufferFPvUl              # GUSIRingBuffer::FreeBuffer(void*,unsigned long)
-ValidBuffer__14GUSIRingBufferFPvUl             # GUSIRingBuffer::ValidBuffer(void*,unsigned long)
-ConsumeBuffer__14GUSIRingBufferFRUl            # GUSIRingBuffer::ConsumeBuffer(unsigned long&)
-ProduceBuffer__14GUSIRingBufferFRUl            # GUSIRingBuffer::ProduceBuffer(unsigned long&)
-__dt__14GUSIRingBufferFv               # GUSIRingBuffer::~GUSIRingBuffer()
-ObsoleteBuffer__14GUSIRingBufferFv             # GUSIRingBuffer::ObsoleteBuffer()
-PurgeBuffers__14GUSIRingBufferFv               # GUSIRingBuffer::PurgeBuffers()
-SwitchBuffer__14GUSIRingBufferFUl              # GUSIRingBuffer::SwitchBuffer(unsigned long)
-__ct__14GUSIRingBufferFUl              # GUSIRingBuffer::GUSIRingBuffer(unsigned long)
-Invariant__14GUSIRingBufferFv          # GUSIRingBuffer::Invariant()
-Distance__14GUSIRingBufferFPcPc                # GUSIRingBuffer::Distance(char*,char*)
-__ct__13GUSIScattGathFRC13GUSIScattGath                # GUSIScattGath::GUSIScattGath(const GUSIScattGath&)
-__as__13GUSIScattGathFRC13GUSIScattGath                # GUSIScattGath::operator =(const GUSIScattGath&)
-__dt__13GUSIScattGathFv                # GUSIScattGath::~GUSIScattGath()
-Buffer__13GUSIScattGathCFv             # GUSIScattGath::Buffer() const
-__ct__13GUSIScattGathFPvUlb            # GUSIScattGath::GUSIScattGath(void*,unsigned long,bool)
-__ct__13GUSIScattGathFPC5iovecib               # GUSIScattGath::GUSIScattGath(const iovec*,int,bool)
-sInstance__17GUSIConfiguration         # GUSIConfiguration::sInstance
-ConfigureHandleAppleEvents__17GUSIConfigurationFb              # GUSIConfiguration::ConfigureHandleAppleEvents(bool)
-CmdPeriod__17GUSIConfigurationFPC11EventRecord         # GUSIConfiguration::CmdPeriod(const EventRecord*)
-CheckInterrupt__17GUSIConfigurationFv          # GUSIConfiguration::CheckInterrupt()
-BrokenPipe__17GUSIConfigurationFv              # GUSIConfiguration::BrokenPipe()
-DoAutoInitGraf__17GUSIConfigurationFv          # GUSIConfiguration::DoAutoInitGraf()
-DoAutoSpin__17GUSIConfigurationCFv             # GUSIConfiguration::DoAutoSpin() const
-SetDefaultFType__17GUSIConfigurationCFRC12GUSIFileSpec         # GUSIConfiguration::SetDefaultFType(const GUSIFileSpec&) const
-ConfigureSuffices__17GUSIConfigurationFsPQ217GUSIConfiguration10FileSuffix             # GUSIConfiguration::ConfigureSuffices(short,GUSIConfiguration::FileSuffix*)
-__ct__17GUSIConfigurationFs            # GUSIConfiguration::GUSIConfiguration(short)
-__vt__22GUSIThreadManagerProxy         # GUSIThreadManagerProxy::__vt
-__vt__18GUSIContextFactory             # GUSIContextFactory::__vt
-__vt__11GUSIContext            # GUSIContext::__vt
-sError__11GUSIContext          # GUSIContext::sError
-sHasThreading__11GUSIContext           # GUSIContext::sHasThreading
-sCurrentContext__11GUSIContext         # GUSIContext::sCurrentContext
-sContexts__11GUSIContext               # GUSIContext::sContexts
-sInstance__11GUSIProcess               # GUSIProcess::sInstance
-__dt__Q211GUSIContext5QueueFv          # GUSIContext::Queue::~Queue()
-MakeInstance__22GUSIThreadManagerProxyFv               # GUSIThreadManagerProxy::MakeInstance()
-__dt__22GUSIThreadManagerProxyFv               # GUSIThreadManagerProxy::~GUSIThreadManagerProxy()
-__dt__Q23std76auto_ptr<22GUSIThreadManagerProxy,Q23std33_Single<22GUSIThreadManagerProxy>>Fv           # std::auto_ptr<GUSIThreadManagerProxy, std::_Single<GUSIThreadManagerProxy>>::~auto_ptr()
-Instance__22GUSIThreadManagerProxyFv           # GUSIThreadManagerProxy::Instance()
-SetThreadTerminator__22GUSIThreadManagerProxyFUlPFUlPv_vPv             # GUSIThreadManagerProxy::SetThreadTerminator(unsigned long,void (*)(unsigned long, void*),void*)
-SetThreadSwitcher__22GUSIThreadManagerProxyFUlPFUlPv_vPvUc             # GUSIThreadManagerProxy::SetThreadSwitcher(unsigned long,void (*)(unsigned long, void*),void*,unsigned char)
-NewThread__22GUSIThreadManagerProxyFUlPFPv_PvPvlUlPPvPUl               # GUSIThreadManagerProxy::NewThread(unsigned long,void* (*)(void*),void*,long,unsigned long,void**,unsigned long*)
-GUSIControl__FP7IOParam                # GUSIControl(IOParam*)
-GUSIFinishIO__FP7IOParam               # GUSIFinishIO(IOParam*)
-GUSIStartIO__FP7IOParam                # GUSIStartIO(IOParam*)
-Blocked__11GUSIContextFv               # GUSIContext::Blocked()
-Pending__11GUSIContextFv               # GUSIContext::Pending()
-Raise__11GUSIContextFb         # GUSIContext::Raise(bool)
-Yield__11GUSIProcessF13GUSIYieldMode           # GUSIProcess::Yield(GUSIYieldMode)
-SigSuspend__11GUSIContextFv            # GUSIContext::SigSuspend()
-SigWait__11GUSIContextFUi              # GUSIContext::SigWait(unsigned int)
-Yield__11GUSIContextF13GUSIYieldMode           # GUSIContext::Yield(GUSIYieldMode)
-Done__11GUSIContextFb          # GUSIContext::Done(bool)
-Terminate__11GUSIContextFv             # GUSIContext::Terminate()
-SwitchOut__11GUSIContextFv             # GUSIContext::SwitchOut()
-SwitchIn__11GUSIContextFv              # GUSIContext::SwitchIn()
-SetTerminator__11GUSIContextFPFUlPv_vPv                # GUSIContext::SetTerminator(void (*)(unsigned long, void*),void*)
-GUSISetThreadTerminator
-SetSwitchOut__11GUSIContextFPFUlPv_vPv         # GUSIContext::SetSwitchOut(void (*)(unsigned long, void*),void*)
-SetSwitchIn__11GUSIContextFPFUlPv_vPv          # GUSIContext::SetSwitchIn(void (*)(unsigned long, void*),void*)
-GUSISetThreadSwitcher
-CreateContext__18GUSIContextFactoryFUl         # GUSIContextFactory::CreateContext(unsigned long)
-CreateContext__18GUSIContextFactoryFPFPv_PvPvlUlPPvPUl         # GUSIContextFactory::CreateContext(void* (*)(void*),void*,long,unsigned long,void**,unsigned long*)
-__dt__18GUSIContextFactoryFv           # GUSIContextFactory::~GUSIContextFactory()
-__ct__18GUSIContextFactoryFv           # GUSIContextFactory::GUSIContextFactory()
-__dt__Q23std68auto_ptr<18GUSIContextFactory,Q23std29_Single<18GUSIContextFactory>>Fv           # std::auto_ptr<GUSIContextFactory, std::_Single<GUSIContextFactory>>::~auto_ptr()
-SetInstance__18GUSIContextFactoryFP18GUSIContextFactory                # GUSIContextFactory::SetInstance(GUSIContextFactory*)
-Instance__18GUSIContextFactoryFv               # GUSIContextFactory::Instance()
-GUSINewThread
-Wakeup__11GUSIProcessFv                # GUSIProcess::Wakeup()
-Wakeup__11GUSIContextFv                # GUSIContext::Wakeup()
-Liquidate__11GUSIContextFv             # GUSIContext::Liquidate()
-LiquidateAll__Q211GUSIContext5QueueFv          # GUSIContext::Queue::LiquidateAll()
-__dt__11GUSIContextFv          # GUSIContext::~GUSIContext()
-Lookup__11GUSIContextFUl               # GUSIContext::Lookup(unsigned long)
-__ct__11GUSIContextFPFPv_PvPvlUlPPvPUl         # GUSIContext::GUSIContext(void* (*)(void*),void*,long,unsigned long,void**,unsigned long*)
-__ct__11GUSIContextFUl         # GUSIContext::GUSIContext(unsigned long)
-FinishSetup__11GUSIContextFv           # GUSIContext::FinishSetup()
-GUSIThreadTerminator
-StartSetup__11GUSIContextFv            # GUSIContext::StartSetup()
-Setup__11GUSIContextFb         # GUSIContext::Setup(bool)
-GUSIThreadSwitchOut
-GUSIThreadSwitchIn
-__dt__11GUSIProcessFv          # GUSIProcess::~GUSIProcess()
-QueueForClose__11GUSIProcessFP10GUSISocket             # GUSIProcess::QueueForClose(GUSISocket*)
-__ct__11GUSIProcessFb          # GUSIProcess::GUSIProcess(bool)
-sBlocks__Q216GUSIContextQueue7element          # GUSIContextQueue::element::sBlocks
-Wakeup__16GUSIContextQueueFv           # GUSIContextQueue::Wakeup()
-push_back__16GUSIContextQueueFP11GUSIContext           # GUSIContextQueue::push_back(GUSIContext*)
-remove__16GUSIContextQueueFP11GUSIContext              # GUSIContextQueue::remove(GUSIContext*)
-__dt__16GUSIContextQueueFv             # GUSIContextQueue::~GUSIContextQueue()
-__dl__Q216GUSIContextQueue7elementFPvUl                # GUSIContextQueue::element::operator delete(void*,unsigned long)
-__nw__Q216GUSIContextQueue7elementFUl          # GUSIContextQueue::element::operator new(unsigned long)
-__vt__14GUSIDConSocket         # GUSIDConSocket::__vt
-__vt__14GUSIDConDevice         # GUSIDConDevice::__vt
-sInstance__14GUSIDConDevice            # GUSIDConDevice::sInstance
-__dt__14GUSIDConDeviceFv               # GUSIDConDevice::~GUSIDConDevice()
-isatty__14GUSIDConSocketFv             # GUSIDConSocket::isatty()
-Supports__14GUSIDConSocketFQ210GUSISocket12ConfigOption                # GUSIDConSocket::Supports(GUSISocket::ConfigOption)
-write__14GUSIDConSocketFRC12GUSIGatherer               # GUSIDConSocket::write(const GUSIGatherer&)
-read__14GUSIDConSocketFRC13GUSIScatterer               # GUSIDConSocket::read(const GUSIScatterer&)
-__dt__14GUSIDConSocketFv               # GUSIDConSocket::~GUSIDConSocket()
-__ct__14GUSIDConSocketFPCc             # GUSIDConSocket::GUSIDConSocket(const char*)
-open__14GUSIDConDeviceFR13GUSIFileTokeni               # GUSIDConDevice::open(GUSIFileToken&,int)
-Want__14GUSIDConDeviceFR13GUSIFileToken                # GUSIDConDevice::Want(GUSIFileToken&)
-GUSIwithDConSockets
-sGUSIDescriptorTable__19GUSIDescriptorTable            # GUSIDescriptorTable::sGUSIDescriptorTable
-__ct__19GUSIDescriptorTableFRC19GUSIDescriptorTable            # GUSIDescriptorTable::GUSIDescriptorTable(const GUSIDescriptorTable&)
-LookupSocket__19GUSIDescriptorTableFi          # GUSIDescriptorTable::LookupSocket(int)
-__vc__19GUSIDescriptorTableFi          # GUSIDescriptorTable::operator [](int)
-RemoveSocket__19GUSIDescriptorTableFi          # GUSIDescriptorTable::RemoveSocket(int)
-InstallSocket__19GUSIDescriptorTableFP10GUSISocketi            # GUSIDescriptorTable::InstallSocket(GUSISocket*,int)
-__dt__19GUSIDescriptorTableFv          # GUSIDescriptorTable::~GUSIDescriptorTable()
-CloseAllDescriptors__19GUSIDescriptorTableFv           # GUSIDescriptorTable::CloseAllDescriptors()
-SetInstance__19GUSIDescriptorTableFP19GUSIDescriptorTable              # GUSIDescriptorTable::SetInstance(GUSIDescriptorTable*)
-Instance__19GUSIDescriptorTableFv              # GUSIDescriptorTable::Instance()
-Instance__14GUSINullDeviceFv           # GUSINullDevice::Instance()
-GUSIDefaultSetupConsole
-GUSISetupConsole
-__ct__19GUSIDescriptorTableFv          # GUSIDescriptorTable::GUSIDescriptorTable()
-__vt__10GUSIDevice             # GUSIDevice::__vt
-sInstance__18GUSIDeviceRegistry                # GUSIDeviceRegistry::sInstance
-faccess__18GUSIDeviceRegistryFPCcPUiPv         # GUSIDeviceRegistry::faccess(const char*,unsigned int*,void*)
-fsetfileinfo__18GUSIDeviceRegistryFPCcUlUl             # GUSIDeviceRegistry::fsetfileinfo(const char*,unsigned long,unsigned long)
-fgetfileinfo__18GUSIDeviceRegistryFPCcPUlPUl           # GUSIDeviceRegistry::fgetfileinfo(const char*,unsigned long*,unsigned long*)
-readlink__18GUSIDeviceRegistryFPCcPci          # GUSIDeviceRegistry::readlink(const char*,char*,int)
-symlink__18GUSIDeviceRegistryFPCcPCc           # GUSIDeviceRegistry::symlink(const char*,const char*)
-opendir__18GUSIDeviceRegistryFPCc              # GUSIDeviceRegistry::opendir(const char*)
-rmdir__18GUSIDeviceRegistryFPCc                # GUSIDeviceRegistry::rmdir(const char*)
-mkdir__18GUSIDeviceRegistryFPCc                # GUSIDeviceRegistry::mkdir(const char*)
-access__18GUSIDeviceRegistryFPCci              # GUSIDeviceRegistry::access(const char*,int)
-utime__18GUSIDeviceRegistryFPCcPC7utimbuf              # GUSIDeviceRegistry::utime(const char*,const utimbuf*)
-chmod__18GUSIDeviceRegistryFPCcUs              # GUSIDeviceRegistry::chmod(const char*,unsigned short)
-stat__18GUSIDeviceRegistryFPCcP4statb          # GUSIDeviceRegistry::stat(const char*,stat*,bool)
-rename__18GUSIDeviceRegistryFPCcPCc            # GUSIDeviceRegistry::rename(const char*,const char*)
-remove__18GUSIDeviceRegistryFPCc               # GUSIDeviceRegistry::remove(const char*)
-open__18GUSIDeviceRegistryFPCci                # GUSIDeviceRegistry::open(const char*,int)
-Lookup__18GUSIDeviceRegistryFR13GUSIFileToken          # GUSIDeviceRegistry::Lookup(GUSIFileToken&)
-RemoveDevice__18GUSIDeviceRegistryFP10GUSIDevice               # GUSIDeviceRegistry::RemoveDevice(GUSIDevice*)
-AddDevice__18GUSIDeviceRegistryFP10GUSIDevice          # GUSIDeviceRegistry::AddDevice(GUSIDevice*)
-__ct__18GUSIDeviceRegistryFv           # GUSIDeviceRegistry::GUSIDeviceRegistry()
-faccess__10GUSIDeviceFR13GUSIFileTokenPUiPv            # GUSIDevice::faccess(GUSIFileToken&,unsigned int*,void*)
-fsetfileinfo__10GUSIDeviceFR13GUSIFileTokenUlUl                # GUSIDevice::fsetfileinfo(GUSIFileToken&,unsigned long,unsigned long)
-fgetfileinfo__10GUSIDeviceFR13GUSIFileTokenPUlPUl              # GUSIDevice::fgetfileinfo(GUSIFileToken&,unsigned long*,unsigned long*)
-readlink__10GUSIDeviceFR13GUSIFileTokenPci             # GUSIDevice::readlink(GUSIFileToken&,char*,int)
-symlink__10GUSIDeviceFR13GUSIFileTokenPCc              # GUSIDevice::symlink(GUSIFileToken&,const char*)
-opendir__10GUSIDeviceFR13GUSIFileToken         # GUSIDevice::opendir(GUSIFileToken&)
-rmdir__10GUSIDeviceFR13GUSIFileToken           # GUSIDevice::rmdir(GUSIFileToken&)
-mkdir__10GUSIDeviceFR13GUSIFileToken           # GUSIDevice::mkdir(GUSIFileToken&)
-access__10GUSIDeviceFR13GUSIFileTokeni         # GUSIDevice::access(GUSIFileToken&,int)
-utime__10GUSIDeviceFR13GUSIFileTokenPC7utimbuf         # GUSIDevice::utime(GUSIFileToken&,const utimbuf*)
-chmod__10GUSIDeviceFR13GUSIFileTokenUs         # GUSIDevice::chmod(GUSIFileToken&,unsigned short)
-stat__10GUSIDeviceFR13GUSIFileTokenP4stat              # GUSIDevice::stat(GUSIFileToken&,stat*)
-rename__10GUSIDeviceFR13GUSIFileTokenPCc               # GUSIDevice::rename(GUSIFileToken&,const char*)
-remove__10GUSIDeviceFR13GUSIFileToken          # GUSIDevice::remove(GUSIFileToken&)
-open__10GUSIDeviceFR13GUSIFileTokeni           # GUSIDevice::open(GUSIFileToken&,int)
-Want__10GUSIDeviceFR13GUSIFileToken            # GUSIDevice::Want(GUSIFileToken&)
-__ct__13GUSIFileTokenFsQ213GUSIFileToken7Request               # GUSIFileToken::GUSIFileToken(short,GUSIFileToken::Request)
-__ct__13GUSIFileTokenFRC12GUSIFileSpecQ213GUSIFileToken7Request                # GUSIFileToken::GUSIFileToken(const GUSIFileSpec&,GUSIFileToken::Request)
-StrStdStream__13GUSIFileTokenFPCc              # GUSIFileToken::StrStdStream(const char*)
-__ct__13GUSIFileTokenFPCcQ213GUSIFileToken7Requestb            # GUSIFileToken::GUSIFileToken(const char*,GUSIFileToken::Request,bool)
-StrFragEqual__13GUSIFileTokenFPCcPCc           # GUSIFileToken::StrFragEqual(const char*,const char*)
-GUSI_diag_log
-vdfprintf
-dfprintf
-GUSI_break
-GUSI_log
-GUSI_pos
-__vt__22GUSISocketTypeRegistry         # GUSISocketTypeRegistry::__vt
-__vt__24GUSISocketDomainRegistry               # GUSISocketDomainRegistry::__vt
-__vt__17GUSISocketFactory              # GUSISocketFactory::__vt
-sInstance__24GUSISocketDomainRegistry          # GUSISocketDomainRegistry::sInstance
-__dt__24GUSISocketDomainRegistryFv             # GUSISocketDomainRegistry::~GUSISocketDomainRegistry()
-__dt__22GUSISocketTypeRegistryFv               # GUSISocketTypeRegistry::~GUSISocketTypeRegistry()
-RemoveFactory__22GUSISocketTypeRegistryFii             # GUSISocketTypeRegistry::RemoveFactory(int,int)
-AddFactory__22GUSISocketTypeRegistryFiiP17GUSISocketFactory            # GUSISocketTypeRegistry::AddFactory(int,int,GUSISocketFactory*)
-socketpair__22GUSISocketTypeRegistryFiiiPP10GUSISocket         # GUSISocketTypeRegistry::socketpair(int,int,int,GUSISocket**)
-socket__22GUSISocketTypeRegistryFiii           # GUSISocketTypeRegistry::socket(int,int,int)
-Find__22GUSISocketTypeRegistryFiibRPQ222GUSISocketTypeRegistry5Entry           # GUSISocketTypeRegistry::Find(int,int,bool,GUSISocketTypeRegistry::Entry*&)
-Initialize__22GUSISocketTypeRegistryFv         # GUSISocketTypeRegistry::Initialize()
-__ct__Q222GUSISocketTypeRegistry5EntryFv               # GUSISocketTypeRegistry::Entry::Entry()
-AddFactory__24GUSISocketDomainRegistryFiP17GUSISocketFactory           # GUSISocketDomainRegistry::AddFactory(int,GUSISocketFactory*)
-socketpair__24GUSISocketDomainRegistryFiiiPP10GUSISocket               # GUSISocketDomainRegistry::socketpair(int,int,int,GUSISocket**)
-socket__24GUSISocketDomainRegistryFiii         # GUSISocketDomainRegistry::socket(int,int,int)
-__dt__17GUSISocketFactoryFv            # GUSISocketFactory::~GUSISocketFactory()
-__ct__24GUSISocketDomainRegistryFv             # GUSISocketDomainRegistry::GUSISocketDomainRegistry()
-socketpair__17GUSISocketFactoryFiiiPP10GUSISocket              # GUSISocketFactory::socketpair(int,int,int,GUSISocket**)
-sID__16GUSITempFileSpec                # GUSITempFileSpec::sID
-sScratchSize__12GUSIFileSpec           # GUSIFileSpec::sScratchSize
-sScratch__12GUSIFileSpec               # GUSIFileSpec::sScratch
-GUSIFSpGetCatInfo
-GUSIFSpTouchFolder
-GUSIFSp2Encoding
-GUSIFSp2DirRelPath
-GUSIFSp2RelPath
-GUSIFSp2FullPath
-GUSIFSpResolve
-GUSIFSpIndex
-GUSIFSpDown
-GUSIFSpUp
-GUSIMakeTempFSp
-GUSISpecial2FSp
-GUSIPath2FSp
-GUSIWD2FSp
-GUSIFRefNum2FSp
-TempName__16GUSITempFileSpecFPCUc              # GUSITempFileSpec::TempName(const unsigned char*)
-TempName__16GUSITempFileSpecFv         # GUSITempFileSpec::TempName()
-__ct__16GUSITempFileSpecFslPCUc                # GUSITempFileSpec::GUSITempFileSpec(short,long,const unsigned char*)
-__ct__16GUSITempFileSpecFsPCUc         # GUSITempFileSpec::GUSITempFileSpec(short,const unsigned char*)
-__ct__16GUSITempFileSpecFPCUc          # GUSITempFileSpec::GUSITempFileSpec(const unsigned char*)
-__ct__16GUSITempFileSpecFsl            # GUSITempFileSpec::GUSITempFileSpec(short,long)
-__ct__16GUSITempFileSpecFs             # GUSITempFileSpec::GUSITempFileSpec(short)
-IsParentOf__12GUSIFileSpecCFRC12GUSIFileSpec           # GUSIFileSpec::IsParentOf(const GUSIFileSpec&) const
-__eq__FRC12GUSIFileSpecRC12GUSIFileSpec                # operator ==(const GUSIFileSpec&,const GUSIFileSpec&)
-AliasPath__12GUSIFileSpecCFv           # GUSIFileSpec::AliasPath() const
-Resolve__12GUSIFileSpecFb              # GUSIFileSpec::Resolve(bool)
-EncodedPath__12GUSIFileSpecCFv         # GUSIFileSpec::EncodedPath() const
-RelativePath__12GUSIFileSpecCFv                # GUSIFileSpec::RelativePath() const
-__as__9HFileInfoFRC9HFileInfo          # HFileInfo::operator =(const HFileInfo&)
-__as__7DirInfoFRC7DirInfo              # DirInfo::operator =(const DirInfo&)
-RelativePath__12GUSIFileSpecCFRC6FSSpec                # GUSIFileSpec::RelativePath(const FSSpec&) const
-PrependPathComponent__12GUSIFileSpecCFRPcPCUcb         # GUSIFileSpec::PrependPathComponent(char*&,const unsigned char*,bool) const
-FullPath__12GUSIFileSpecCFv            # GUSIFileSpec::FullPath() const
-CatInfo__12GUSIFileSpecFs              # GUSIFileSpec::CatInfo(short)
-TouchFolder__12GUSIFileSpecFv          # GUSIFileSpec::TouchFolder()
-SetName__12GUSIFileSpecFPCc            # GUSIFileSpec::SetName(const char*)
-SetName__12GUSIFileSpecFPCUc           # GUSIFileSpec::SetName(const unsigned char*)
-SetParID__12GUSIFileSpecFl             # GUSIFileSpec::SetParID(long)
-SetVRef__12GUSIFileSpecFs              # GUSIFileSpec::SetVRef(short)
-__vc__12GUSIFileSpecFs         # GUSIFileSpec::operator [](short)
-__pl__FRC6FSSpecPCc            # operator +(const FSSpec&,const char*)
-__pl__FRC6FSSpecPCUc           # operator +(const FSSpec&,const unsigned char*)
-AddPathComponent__12GUSIFileSpecFPCcib         # GUSIFileSpec::AddPathComponent(const char*,int,bool)
-__pp__12GUSIFileSpecFv         # GUSIFileSpec::operator ++()
-__mm__12GUSIFileSpecFv         # GUSIFileSpec::operator --()
-GetVolume__12GUSIFileSpecFs            # GUSIFileSpec::GetVolume(short)
-__ct__12GUSIFileSpecFPCcb              # GUSIFileSpec::GUSIFileSpec(const char*,bool)
-__ct__12GUSIFileSpecFs         # GUSIFileSpec::GUSIFileSpec(short)
-__ct__12GUSIFileSpecFUls               # GUSIFileSpec::GUSIFileSpec(unsigned long,short)
-__ct__12GUSIFileSpecFsPCUcb            # GUSIFileSpec::GUSIFileSpec(short,const unsigned char*,bool)
-__ct__12GUSIFileSpecFslPCUcb           # GUSIFileSpec::GUSIFileSpec(short,long,const unsigned char*,bool)
-__ct__12GUSIFileSpecFRC6FSSpecb                # GUSIFileSpec::GUSIFileSpec(const FSSpec&,bool)
-__ct__12GUSIFileSpecFRC12GUSIFileSpec          # GUSIFileSpec::GUSIFileSpec(const GUSIFileSpec&)
-CScratch__12GUSIFileSpecFb             # GUSIFileSpec::CScratch(bool)
-ReadHex__FPCciPc               # ReadHex(const char*,int,char*)
-GUSIFSMoveRename
-GUSIFSCatMove
-GUSIFSCatMove__FPC6FSSpecl             # GUSIFSCatMove(const FSSpec*,long)
-GUSIFSRename
-GUSIFSRstFLock
-GUSIFSSetFLock
-GUSIFSDirCreate
-GUSIFSDelete
-GUSIFSCreate
-GUSIFSCreate__FPC6FSSpec               # GUSIFSCreate(const FSSpec*)
-GUSIFSGetVolParms
-GUSIFSHGetVolParms__FP33GUSIIOPBWrapper<14HParamBlockRec>              # GUSIFSHGetVolParms(GUSIIOPBWrapper<HParamBlockRec>*)
-GUSIFSOpenRF
-GUSIFSOpenDF
-GUSIFSSetFInfo
-GUSIFSGetFInfo
-GUSIFSHSetFInfo__FP33GUSIIOPBWrapper<14HParamBlockRec>         # GUSIFSHSetFInfo(GUSIIOPBWrapper<HParamBlockRec>*)
-GUSIFSHGetFInfo__FP33GUSIIOPBWrapper<14HParamBlockRec>         # GUSIFSHGetFInfo(GUSIIOPBWrapper<HParamBlockRec>*)
-GUSIFSHGetVInfo__FP33GUSIIOPBWrapper<14HParamBlockRec>         # GUSIFSHGetVInfo(GUSIIOPBWrapper<HParamBlockRec>*)
-GUSIFSGetFCBInfo__FP26GUSIIOPBWrapper<8FCBPBRec>               # GUSIFSGetFCBInfo(GUSIIOPBWrapper<FCBPBRec>*)
-GUSIFSSetCatInfo__FP30GUSIIOPBWrapper<11GUSICatInfo>           # GUSIFSSetCatInfo(GUSIIOPBWrapper<GUSICatInfo>*)
-GUSIFSGetCatInfo__FP30GUSIIOPBWrapper<11GUSICatInfo>           # GUSIFSGetCatInfo(GUSIIOPBWrapper<GUSICatInfo>*)
-gGUSIInetFactories
-GUSIwithInetSockets
-__vt__16GUSIMacDirectory               # GUSIMacDirectory::__vt
-__vt__13GUSIDirectory          # GUSIDirectory::__vt
-__vt__17GUSIMacFileSocket              # GUSIMacFileSocket::__vt
-__vt__17GUSIMacFileDevice              # GUSIMacFileDevice::__vt
-sWakeupProc__17GUSIMacFileSocket               # GUSIMacFileSocket::sWakeupProc
-sWriteProc__17GUSIMacFileSocket                # GUSIMacFileSocket::sWriteProc
-sReadProc__17GUSIMacFileSocket         # GUSIMacFileSocket::sReadProc
-__dt__16GUSIMacDirectoryFv             # GUSIMacDirectory::~GUSIMacDirectory()
-rewinddir__16GUSIMacDirectoryFv                # GUSIMacDirectory::rewinddir()
-seekdir__16GUSIMacDirectoryFl          # GUSIMacDirectory::seekdir(long)
-telldir__16GUSIMacDirectoryFv          # GUSIMacDirectory::telldir()
-readdir__16GUSIMacDirectoryFv          # GUSIMacDirectory::readdir()
-__dt__13GUSIDirectoryFv                # GUSIDirectory::~GUSIDirectory()
-__ct__16GUSIMacDirectoryFRC6FSSpec             # GUSIMacDirectory::GUSIMacDirectory(const FSSpec&)
-Supports__17GUSIMacFileSocketFQ210GUSISocket12ConfigOption             # GUSIMacFileSocket::Supports(GUSISocket::ConfigOption)
-fstat__17GUSIMacFileSocketFP4stat              # GUSIMacFileSocket::fstat(stat*)
-ftruncate__17GUSIMacFileSocketFl               # GUSIMacFileSocket::ftruncate(long)
-lseek__17GUSIMacFileSocketFli          # GUSIMacFileSocket::lseek(long,int)
-setsockopt__17GUSIMacFileSocketFiiPvUi         # GUSIMacFileSocket::setsockopt(int,int,void*,unsigned int)
-getsockopt__17GUSIMacFileSocketFiiPvPUi                # GUSIMacFileSocket::getsockopt(int,int,void*,unsigned int*)
-ioctl__17GUSIMacFileSocketFUiPc                # GUSIMacFileSocket::ioctl(unsigned int,char*)
-fcntl__17GUSIMacFileSocketFiPc         # GUSIMacFileSocket::fcntl(int,char*)
-fsync__17GUSIMacFileSocketFv           # GUSIMacFileSocket::fsync()
-select__17GUSIMacFileSocketFPbPbPb             # GUSIMacFileSocket::select(bool*,bool*,bool*)
-write__17GUSIMacFileSocketFRC12GUSIGatherer            # GUSIMacFileSocket::write(const GUSIGatherer&)
-read__17GUSIMacFileSocketFRC13GUSIScatterer            # GUSIMacFileSocket::read(const GUSIScatterer&)
-SyncWrite__17GUSIMacFileSocketFv               # GUSIMacFileSocket::SyncWrite()
-SyncRead__17GUSIMacFileSocketFv                # GUSIMacFileSocket::SyncRead()
-__dt__17GUSIMacFileSocketFv            # GUSIMacFileSocket::~GUSIMacFileSocket()
-__dt__17GUSISMInputBufferFv            # GUSISMInputBuffer::~GUSISMInputBuffer()
-__dt__18GUSISMOutputBufferFv           # GUSISMOutputBuffer::~GUSISMOutputBuffer()
-__ct__17GUSIMacFileSocketFsbi          # GUSIMacFileSocket::GUSIMacFileSocket(short,bool,int)
-faccess__17GUSIMacFileDeviceFR13GUSIFileTokenPUiPv             # GUSIMacFileDevice::faccess(GUSIFileToken&,unsigned int*,void*)
-fsetfileinfo__17GUSIMacFileDeviceFR13GUSIFileTokenUlUl         # GUSIMacFileDevice::fsetfileinfo(GUSIFileToken&,unsigned long,unsigned long)
-fgetfileinfo__17GUSIMacFileDeviceFR13GUSIFileTokenPUlPUl               # GUSIMacFileDevice::fgetfileinfo(GUSIFileToken&,unsigned long*,unsigned long*)
-readlink__17GUSIMacFileDeviceFR13GUSIFileTokenPci              # GUSIMacFileDevice::readlink(GUSIFileToken&,char*,int)
-symlink__17GUSIMacFileDeviceFR13GUSIFileTokenPCc               # GUSIMacFileDevice::symlink(GUSIFileToken&,const char*)
-opendir__17GUSIMacFileDeviceFR13GUSIFileToken          # GUSIMacFileDevice::opendir(GUSIFileToken&)
-rmdir__17GUSIMacFileDeviceFR13GUSIFileToken            # GUSIMacFileDevice::rmdir(GUSIFileToken&)
-mkdir__17GUSIMacFileDeviceFR13GUSIFileToken            # GUSIMacFileDevice::mkdir(GUSIFileToken&)
-access__17GUSIMacFileDeviceFR13GUSIFileTokeni          # GUSIMacFileDevice::access(GUSIFileToken&,int)
-utime__17GUSIMacFileDeviceFR13GUSIFileTokenPC7utimbuf          # GUSIMacFileDevice::utime(GUSIFileToken&,const utimbuf*)
-chmod__17GUSIMacFileDeviceFR13GUSIFileTokenUs          # GUSIMacFileDevice::chmod(GUSIFileToken&,unsigned short)
-stat__17GUSIMacFileDeviceFR13GUSIFileTokenP4stat               # GUSIMacFileDevice::stat(GUSIFileToken&,stat*)
-rename__17GUSIMacFileDeviceFR13GUSIFileTokenPCc                # GUSIMacFileDevice::rename(GUSIFileToken&,const char*)
-CleanupTemporaries__17GUSIMacFileDeviceFb              # GUSIMacFileDevice::CleanupTemporaries(bool)
-MarkTemporary__17GUSIMacFileDeviceFRC6FSSpec           # GUSIMacFileDevice::MarkTemporary(const FSSpec&)
-remove__17GUSIMacFileDeviceFR13GUSIFileToken           # GUSIMacFileDevice::remove(GUSIFileToken&)
-open__17GUSIMacFileDeviceFsi           # GUSIMacFileDevice::open(short,int)
-open__17GUSIMacFileDeviceFR13GUSIFileTokeni            # GUSIMacFileDevice::open(GUSIFileToken&,int)
-Want__17GUSIMacFileDeviceFR13GUSIFileToken             # GUSIMacFileDevice::Want(GUSIFileToken&)
-__dt__17GUSIMacFileDeviceFv            # GUSIMacFileDevice::~GUSIMacFileDevice()
-__dt__Q23std66auto_ptr<17GUSIMacFileDevice,Q23std28_Single<17GUSIMacFileDevice>>Fv             # std::auto_ptr<GUSIMacFileDevice, std::_Single<GUSIMacFileDevice>>::~auto_ptr()
-Instance__17GUSIMacFileDeviceFv                # GUSIMacFileDevice::Instance()
-sProtocols__9GUSINetDB         # GUSINetDB::sProtocols
-sServices__20GUSIBuiltinServiceDB              # GUSIBuiltinServiceDB::sServices
-__vt__20GUSIBuiltinServiceDB           # GUSIBuiltinServiceDB::__vt
-__vt__17GUSIFileServiceDB              # GUSIFileServiceDB::__vt
-__vt__13GUSIServiceDB          # GUSIServiceDB::__vt
-__vt__9GUSINetDB               # GUSINetDB::__vt
-sInstance__13GUSIServiceDB             # GUSIServiceDB::sInstance
-sData__13GUSIServiceDB         # GUSIServiceDB::sData
-sEntry__20GUSIBuiltinServiceDB         # GUSIBuiltinServiceDB::sEntry
-sInstance__9GUSINetDB          # GUSINetDB::sInstance
-__dt__12GUSISpecificFv         # GUSISpecific::~GUSISpecific()
-__dt__64GUSISpecificData<Q213GUSIServiceDB4Data,&.GUSIKillServiceDBData>Fv             # GUSISpecificData<GUSIServiceDB::Data, &.GUSIKillServiceDBData>::~GUSISpecificData()
-__dt__80GUSISpecificData<Q220GUSIBuiltinServiceDB5Entry,&.GUSIKillBuiltinServiceDBEntry>Fv             # GUSISpecificData<GUSIBuiltinServiceDB::Entry, &.GUSIKillBuiltinServiceDBEntry>::~GUSISpecificData()
-get__64GUSISpecificData<Q213GUSIServiceDB4Data,&.GUSIKillServiceDBData>FP17GUSISpecificTable           # GUSISpecificData<GUSIServiceDB::Data, &.GUSIKillServiceDBData>::get(GUSISpecificTable*)
-get__80GUSISpecificData<Q220GUSIBuiltinServiceDB5Entry,&.GUSIKillBuiltinServiceDBEntry>FP17GUSISpecificTable           # GUSISpecificData<GUSIBuiltinServiceDB::Entry, &.GUSIKillBuiltinServiceDBEntry>::get(GUSISpecificTable*)
-__dt__9GUSINetDBFv             # GUSINetDB::~GUSINetDB()
-__dt__17GUSIFileServiceDBFv            # GUSIFileServiceDB::~GUSIFileServiceDB()
-__dt__20GUSIBuiltinServiceDBFv         # GUSIBuiltinServiceDB::~GUSIBuiltinServiceDB()
-__ct__11GUSIserventFv          # GUSIservent::GUSIservent()
-GUSIKillHostEnt
-Alloc__11GUSIhostentFUl                # GUSIhostent::Alloc(unsigned long)
-__ct__11GUSIhostentFv          # GUSIhostent::GUSIhostent()
-Instance__13GUSIServiceDBFv            # GUSIServiceDB::Instance()
-GUSIKillServiceDBData
-Next__20GUSIBuiltinServiceDBFv         # GUSIBuiltinServiceDB::Next()
-Reset__20GUSIBuiltinServiceDBFv                # GUSIBuiltinServiceDB::Reset()
-GUSIKillBuiltinServiceDBEntry
-Next__17GUSIFileServiceDBFv            # GUSIFileServiceDB::Next()
-Reset__17GUSIFileServiceDBFv           # GUSIFileServiceDB::Reset()
-__dt__13GUSIServiceDBFv                # GUSIServiceDB::~GUSIServiceDB()
-Instance__17GUSIFileServiceDBFv                # GUSIFileServiceDB::Instance()
-getprotobynumber__9GUSINetDBFi         # GUSINetDB::getprotobynumber(int)
-getprotobyname__9GUSINetDBFPCc         # GUSINetDB::getprotobyname(const char*)
-endprotoent__9GUSINetDBFv              # GUSINetDB::endprotoent()
-setprotoent__9GUSINetDBFi              # GUSINetDB::setprotoent(int)
-getprotoent__9GUSINetDBFv              # GUSINetDB::getprotoent()
-getservbyport__9GUSINetDBFiPCc         # GUSINetDB::getservbyport(int,const char*)
-getservbyname__9GUSINetDBFPCcPCc               # GUSINetDB::getservbyname(const char*,const char*)
-endservent__9GUSINetDBFv               # GUSINetDB::endservent()
-setservent__9GUSINetDBFi               # GUSINetDB::setservent(int)
-getservent__9GUSINetDBFv               # GUSINetDB::getservent()
-gethostname__9GUSINetDBFPci            # GUSINetDB::gethostname(char*,int)
-gethostid__9GUSINetDBFv                # GUSINetDB::gethostid()
-inet_addr__9GUSINetDBFPCc              # GUSINetDB::inet_addr(const char*)
-inet_ntoa__9GUSINetDBF7in_addr         # GUSINetDB::inet_ntoa(in_addr)
-gethostbyaddr__9GUSINetDBFPCvUli               # GUSINetDB::gethostbyaddr(const void*,unsigned long,int)
-gethostbyname__9GUSINetDBFPCc          # GUSINetDB::gethostbyname(const char*)
-__ct__9GUSINetDBFv             # GUSINetDB::GUSINetDB()
-Instance__9GUSINetDBFv         # GUSINetDB::Instance()
-__vt__14GUSINullSocket         # GUSINullSocket::__vt
-__vt__14GUSINullDevice         # GUSINullDevice::__vt
-sInstance__14GUSINullDevice            # GUSINullDevice::sInstance
-__dt__14GUSINullDeviceFv               # GUSINullDevice::~GUSINullDevice()
-__dt__14GUSINullSocketFv               # GUSINullSocket::~GUSINullSocket()
-Supports__14GUSINullSocketFQ210GUSISocket12ConfigOption                # GUSINullSocket::Supports(GUSISocket::ConfigOption)
-fstat__14GUSINullSocketFP4stat         # GUSINullSocket::fstat(stat*)
-write__14GUSINullSocketFRC12GUSIGatherer               # GUSINullSocket::write(const GUSIGatherer&)
-read__14GUSINullSocketFRC13GUSIScatterer               # GUSINullSocket::read(const GUSIScatterer&)
-__ct__14GUSINullSocketFv               # GUSINullSocket::GUSINullSocket()
-stat__14GUSINullDeviceFR13GUSIFileTokenP4stat          # GUSINullDevice::stat(GUSIFileToken&,stat*)
-open__14GUSINullDeviceFv               # GUSINullDevice::open()
-open__14GUSINullDeviceFR13GUSIFileTokeni               # GUSINullDevice::open(GUSIFileToken&,int)
-Want__14GUSINullDeviceFR13GUSIFileToken                # GUSINullDevice::Want(GUSIFileToken&)
-GUSIwithNullSockets
-__vt__14GUSIPipeSocket         # GUSIPipeSocket::__vt
-__vt__15GUSIPipeFactory                # GUSIPipeFactory::__vt
-sInstance__15GUSIPipeFactory           # GUSIPipeFactory::sInstance
-__dt__15GUSIPipeFactoryFv              # GUSIPipeFactory::~GUSIPipeFactory()
-shutdown__14GUSIPipeSocketFi           # GUSIPipeSocket::shutdown(int)
-__dt__14GUSIPipeSocketFv               # GUSIPipeSocket::~GUSIPipeSocket()
-select__14GUSIPipeSocketFPbPbPb                # GUSIPipeSocket::select(bool*,bool*,bool*)
-write__14GUSIPipeSocketFRC12GUSIGatherer               # GUSIPipeSocket::write(const GUSIGatherer&)
-read__14GUSIPipeSocketFRC13GUSIScatterer               # GUSIPipeSocket::read(const GUSIScatterer&)
-Supports__14GUSIPipeSocketFQ210GUSISocket12ConfigOption                # GUSIPipeSocket::Supports(GUSISocket::ConfigOption)
-WakeupPeer__14GUSIPipeSocketFv         # GUSIPipeSocket::WakeupPeer()
-__ct__14GUSIPipeSocketFv               # GUSIPipeSocket::GUSIPipeSocket()
-__dt__14GUSIErrorSaverFv               # GUSIErrorSaver::~GUSIErrorSaver()
-socketpair__15GUSIPipeFactoryFiiiPP10GUSISocket                # GUSIPipeFactory::socketpair(int,int,int,GUSISocket**)
-socket__15GUSIPipeFactoryFiii          # GUSIPipeFactory::socket(int,int,int)
-GUSIwithLocalSockets
-__vt__12GUSIGatherer           # GUSIGatherer::__vt
-__vt__13GUSIScatterer          # GUSIScatterer::__vt
-get__40GUSISpecificData<Q23std2tm,&.GUSIKillTM>FP17GUSISpecificTable           # GUSISpecificData<std::tm, &.GUSIKillTM>::get(GUSISpecificTable*)
-faccess__FPCcPUiPv             # faccess(const char*,unsigned int*,void*)
-fsetfileinfo
-fgetfileinfo
-getservent
-getservbyport
-getservbyname
-getprotoent
-getprotobynumber
-getprotobyname
-gethostbyname
-gethostbyaddr
-endservent
-endprotoent
-setservent
-setprotoent
-gethostname
-gethostid
-inet_ntoa
-inet_addr
-inet_aton
-readlink
-symlink
-usleep
-truncate
-ftruncate
-setsockopt
-getsockopt
-ioctl
-shutdown
-getpeername
-getsockname
-select
-sendmsg
-sendto
-send
-writev
-recvmsg
-recvfrom
-recv
-readv
-accept
-listen
-connect
-bind
-socketpair
-socket
-getdtablesize
-mktime
-gmtime
-localtime
-__dt__40GUSISpecificData<Q23std2tm,&.GUSIKillTM>Fv             # GUSISpecificData<std::tm, &.GUSIKillTM>::~GUSISpecificData()
-GUSIKillTM
-gettimeofday
-time
-getcwd
-chdir
-closedir
-rewinddir
-seekdir
-telldir
-readdir
-opendir
-rmdir
-mkdir
-access
-utime
-chmod
-lstat
-stat
-rename
-unlink
-remove
-creat
-open
-sleep
-isatty
-lseek
-fstat
-dup2
-dup
-fcntl
-__dt__12GUSIGathererFv         # GUSIGatherer::~GUSIGatherer()
-write
-__dt__13GUSIScattererFv                # GUSIScatterer::~GUSIScatterer()
-read
-close
-fsync
-pipe
-sDefault__15GUSIPThreadAttr            # GUSIPThreadAttr::sDefault
-sDefaultAttr__15GUSIPThreadAttr                # GUSIPThreadAttr::sDefaultAttr
-sched_yield
-pthread_once
-pthread_equal
-pthread_self
-pthread_cond_broadcast
-pthread_cond_signal
-pthread_cond_timedwait
-pthread_cond_wait
-pthread_cond_destroy
-pthread_cond_init
-pthread_condattr_destroy
-pthread_condattr_init
-pthread_mutex_unlock
-pthread_mutex_trylock
-pthread_mutex_lock
-pthread_mutex_destroy
-pthread_mutex_init
-pthread_mutexattr_destroy
-pthread_mutexattr_init
-pthread_setspecific
-pthread_getspecific
-pthread_key_delete
-pthread_key_create
-pthread_exit
-pthread_join
-pthread_detach
-pthread_create
-pthread_attr_setstacksize
-pthread_attr_getstacksize
-pthread_attr_setdetachstate
-pthread_attr_getdetachstate
-pthread_attr_destroy
-pthread_attr_init
-__vt__10GUSISocket             # GUSISocket::__vt
-fstat__10GUSISocketFP4stat             # GUSISocket::fstat(stat*)
-sendmsg__10GUSISocketFPC6msghdri               # GUSISocket::sendmsg(const msghdr*,int)
-sendto__10GUSISocketFRC12GUSIGathereriPCvUi            # GUSISocket::sendto(const GUSIGatherer&,int,const void*,unsigned int)
-write__10GUSISocketFRC12GUSIGatherer           # GUSISocket::write(const GUSIGatherer&)
-recvmsg__10GUSISocketFP6msghdri                # GUSISocket::recvmsg(msghdr*,int)
-recvfrom__10GUSISocketFRC13GUSIScattereriPvPUi         # GUSISocket::recvfrom(const GUSIScatterer&,int,void*,unsigned int*)
-read__10GUSISocketFRC13GUSIScatterer           # GUSISocket::read(const GUSIScatterer&)
-select__10GUSISocketFPbPbPb            # GUSISocket::select(bool*,bool*,bool*)
-post_select__10GUSISocketFbbb          # GUSISocket::post_select(bool,bool,bool)
-pre_select__10GUSISocketFbbb           # GUSISocket::pre_select(bool,bool,bool)
-isatty__10GUSISocketFv         # GUSISocket::isatty()
-fsync__10GUSISocketFv          # GUSISocket::fsync()
-lseek__10GUSISocketFli         # GUSISocket::lseek(long,int)
-accept__10GUSISocketFPvPUi             # GUSISocket::accept(void*,unsigned int*)
-shutdown__10GUSISocketFi               # GUSISocket::shutdown(int)
-ftruncate__10GUSISocketFl              # GUSISocket::ftruncate(long)
-ioctl__10GUSISocketFUiPc               # GUSISocket::ioctl(unsigned int,char*)
-fcntl__10GUSISocketFiPc                # GUSISocket::fcntl(int,char*)
-setsockopt__10GUSISocketFiiPvUi                # GUSISocket::setsockopt(int,int,void*,unsigned int)
-getsockopt__10GUSISocketFiiPvPUi               # GUSISocket::getsockopt(int,int,void*,unsigned int*)
-connect__10GUSISocketFPvUi             # GUSISocket::connect(void*,unsigned int)
-listen__10GUSISocketFi         # GUSISocket::listen(int)
-getpeername__10GUSISocketFPvPUi                # GUSISocket::getpeername(void*,unsigned int*)
-getsockname__10GUSISocketFPvPUi                # GUSISocket::getsockname(void*,unsigned int*)
-bind__10GUSISocketFPvUi                # GUSISocket::bind(void*,unsigned int)
-RemoveContext__10GUSISocketFP11GUSIContext             # GUSISocket::RemoveContext(GUSIContext*)
-AddContext__10GUSISocketFP11GUSIContext                # GUSISocket::AddContext(GUSIContext*)
-__dt__10GUSISocketFv           # GUSISocket::~GUSISocket()
-Close__10GUSISocketFUl         # GUSISocket::Close(unsigned long)
-CheckClose__10GUSISocketFUl            # GUSISocket::CheckClose(unsigned long)
-close__10GUSISocketFv          # GUSISocket::close()
-Dequeue__10GUSISocketFv                # GUSISocket::Dequeue()
-Enqueue__10GUSISocketFPP10GUSISocket           # GUSISocket::Enqueue(GUSISocket**)
-Supports__10GUSISocketFQ210GUSISocket12ConfigOption            # GUSISocket::Supports(GUSISocket::ConfigOption)
-__ct__10GUSISocketFv           # GUSISocket::GUSISocket()
-__ct__10GUSImsghdrFRC13GUSIScattGathPCvUi              # GUSImsghdr::GUSImsghdr(const GUSIScattGath&,const void*,unsigned int)
-sKeyAlloc__17GUSISpecificTable         # GUSISpecificTable::sKeyAlloc
-sKeys__17GUSISpecificTable             # GUSISpecificTable::sKeys
-sNextID__12GUSISpecific                # GUSISpecific::sNextID
-Destruct__17GUSISpecificTableFP12GUSISpecific          # GUSISpecificTable::Destruct(GUSISpecific*)
-Register__17GUSISpecificTableFP12GUSISpecific          # GUSISpecificTable::Register(GUSISpecific*)
-DeleteSpecific__17GUSISpecificTableFPC12GUSISpecific           # GUSISpecificTable::DeleteSpecific(const GUSISpecific*)
-SetSpecific__17GUSISpecificTableFPC12GUSISpecificPv            # GUSISpecificTable::SetSpecific(const GUSISpecific*,void*)
-__dt__17GUSISpecificTableFv            # GUSISpecificTable::~GUSISpecificTable()
-__vt__9GUSITimer               # GUSITimer::__vt
-sTimerQueue__9GUSITimer                # GUSITimer::sTimerQueue
-sTimerProc__9GUSITimer         # GUSITimer::sTimerProc
-sTimeZone__8GUSITime           # GUSITime::sTimeZone
-sTimeOffset__8GUSITime         # GUSITime::sTimeOffset
-__dt__53GUSISpecificData<Q29GUSITimer5Queue,&.GUSIKillTimers>Fv                # GUSISpecificData<GUSITimer::Queue, &.GUSIKillTimers>::~GUSISpecificData()
-get__53GUSISpecificData<Q29GUSITimer5Queue,&.GUSIKillTimers>FP17GUSISpecificTable              # GUSISpecificData<GUSITimer::Queue, &.GUSIKillTimers>::get(GUSISpecificTable*)
-__dt__9GUSITimerFv             # GUSITimer::~GUSITimer()
-Kill__9GUSITimerFv             # GUSITimer::Kill()
-Sleep__9GUSITimerFlb           # GUSITimer::Sleep(long,bool)
-__ct__9GUSITimerFbP11GUSIContext               # GUSITimer::GUSITimer(bool,GUSIContext*)
-GUSIKillTimers
-__dt__Q29GUSITimer10TimerQueueFv               # GUSITimer::TimerQueue::~TimerQueue()
-Wakeup__9GUSITimerFv           # GUSITimer::Wakeup()
-GM2LocalTime__8GUSITimeFv              # GUSITime::GM2LocalTime()
-Local2GMTime__8GUSITimeFv              # GUSITime::Local2GMTime()
-Zone__8GUSITimeFv              # GUSITime::Zone()
-Now__8GUSITimeFv               # GUSITime::Now()
-__ct__8GUSITimeFRCQ23std2tm            # GUSITime::GUSITime(const std::tm&)
-__opQ23std2tm__8GUSITimeFv             # GUSITime::operator std::tm()
-__op8timespec__8GUSITimeFv             # GUSITime::operator timespec()
-__op7timeval__8GUSITimeFv              # GUSITime::operator timeval()
-Deconstruct__8GUSITimeFRx              # GUSITime::Deconstruct(long long&)
-Get64__8GUSITimeFQ28GUSITime6Format            # GUSITime::Get64(GUSITime::Format)
-__ct__8GUSITimeFRC8timespec            # GUSITime::GUSITime(const timespec&)
-__ct__8GUSITimeFRC7timeval             # GUSITime::GUSITime(const timeval&)
-Construct__8GUSITimeFxQ28GUSITime6Format               # GUSITime::Construct(long long,GUSITime::Format)
-__vt__9GUSIAlarm               # GUSIAlarm::__vt
-__vt__14GUSISigFactory         # GUSISigFactory::__vt
-__vt__14GUSISigProcess         # GUSISigProcess::__vt
-__vt__14GUSISigContext         # GUSISigContext::__vt
-ualarm
-__dt__9GUSIAlarmFv             # GUSIAlarm::~GUSIAlarm()
-__dt__Q23std48auto_ptr<9GUSIAlarm,Q23std19_Single<9GUSIAlarm>>Fv               # std::auto_ptr<GUSIAlarm, std::_Single<GUSIAlarm>>::~auto_ptr()
-alarm
-Restart__9GUSIAlarmFl          # GUSIAlarm::Restart(long)
-Wakeup__9GUSIAlarmFv           # GUSIAlarm::Wakeup()
-_exit
-abort__Fv              # abort()
-sigwait
-pause
-sigsuspend
-sigprocmask
-pthread_sigmask
-sigpending
-signal
-sigaction
-pthread_kill
-raise
-sigismember
-sigfillset
-sigemptyset
-sigdelset
-sigaddset
-CreateSigContext__14GUSISigFactoryFPC14GUSISigContext          # GUSISigFactory::CreateSigContext(const GUSISigContext*)
-CreateSigProcess__14GUSISigFactoryFv           # GUSISigFactory::CreateSigProcess()
-__dt__14GUSISigFactoryFv               # GUSISigFactory::~GUSISigFactory()
-__dt__Q23std60auto_ptr<14GUSISigFactory,Q23std25_Single<14GUSISigFactory>>Fv           # std::auto_ptr<GUSISigFactory, std::_Single<GUSISigFactory>>::~auto_ptr()
-SetInstance__14GUSISigFactoryFP14GUSISigFactory                # GUSISigFactory::SetInstance(GUSISigFactory*)
-Instance__14GUSISigFactoryFv           # GUSISigFactory::Instance()
-DefaultAction__14GUSISigProcessFiRC9sigaction          # GUSISigProcess::DefaultAction(int,const sigaction&)
-Raise__14GUSISigProcessFiP14GUSISigContext             # GUSISigProcess::Raise(int,GUSISigContext*)
-Post__14GUSISigProcessFi               # GUSISigProcess::Post(int)
-ClearPending__14GUSISigProcessFUi              # GUSISigProcess::ClearPending(unsigned int)
-Pending__14GUSISigProcessCFv           # GUSISigProcess::Pending() const
-SetAction__14GUSISigProcessFiRC9sigaction              # GUSISigProcess::SetAction(int,const sigaction&)
-CantIgnore__14GUSISigProcessFi         # GUSISigProcess::CantIgnore(int)
-CantCatch__14GUSISigProcessFi          # GUSISigProcess::CantCatch(int)
-GetAction__14GUSISigProcessFi          # GUSISigProcess::GetAction(int)
-__dt__14GUSISigProcessFv               # GUSISigProcess::~GUSISigProcess()
-__ct__14GUSISigProcessFv               # GUSISigProcess::GUSISigProcess()
-Raise__14GUSISigContextFP14GUSISigProcessb             # GUSISigContext::Raise(GUSISigProcess*,bool)
-Ready__14GUSISigContextFP14GUSISigProcess              # GUSISigContext::Ready(GUSISigProcess*)
-Pending__14GUSISigContextCFP14GUSISigProcess           # GUSISigContext::Pending(GUSISigProcess*) const
-Post__14GUSISigContextFi               # GUSISigContext::Post(int)
-ClearPending__14GUSISigContextFUi              # GUSISigContext::ClearPending(unsigned int)
-Pending__14GUSISigContextCFv           # GUSISigContext::Pending() const
-SetBlocked__14GUSISigContextFUi                # GUSISigContext::SetBlocked(unsigned int)
-GetBlocked__14GUSISigContextCFv                # GUSISigContext::GetBlocked() const
-CantBlock__14GUSISigContextFv          # GUSISigContext::CantBlock()
-__dt__14GUSISigContextFv               # GUSISigContext::~GUSISigContext()
-__ct__14GUSISigContextFPC14GUSISigContext              # GUSISigContext::GUSISigContext(const GUSISigContext*)
-__vt__20GUSIOTDatagramSocket           # GUSIOTDatagramSocket::__vt
-__vt__18GUSIOTStreamSocket             # GUSIOTStreamSocket::__vt
-__vt__12GUSIOTSocket           # GUSIOTSocket::__vt
-__vt__14GUSIOTStrategy         # GUSIOTStrategy::__vt
-__vt__21GUSIOTDatagramFactory          # GUSIOTDatagramFactory::__vt
-__vt__13GUSIOTFactory          # GUSIOTFactory::__vt
-__vt__19GUSIOTStreamFactory            # GUSIOTStreamFactory::__vt
-sOK__13GUSIOTFactory           # GUSIOTFactory::sOK
-__dt__19GUSIOTStreamFactoryFv          # GUSIOTStreamFactory::~GUSIOTStreamFactory()
-__dt__13GUSIOTFactoryFv                # GUSIOTFactory::~GUSIOTFactory()
-__dt__21GUSIOTDatagramFactoryFv                # GUSIOTDatagramFactory::~GUSIOTDatagramFactory()
-select__20GUSIOTDatagramSocketFPbPbPb          # GUSIOTDatagramSocket::select(bool*,bool*,bool*)
-__dt__Q23std80auto_ptr<24GUSIOTAddr<9TUnitData,5>,Q23std35_Single<24GUSIOTAddr<9TUnitData,5>>>Fv               # std::auto_ptr<GUSIOTAddr<TUnitData, 5>, std::_Single<GUSIOTAddr<TUnitData, 5>>>::~auto_ptr()
-sendto__20GUSIOTDatagramSocketFRC12GUSIGathereriPCvUi          # GUSIOTDatagramSocket::sendto(const GUSIGatherer&,int,const void*,unsigned int)
-recvfrom__20GUSIOTDatagramSocketFRC13GUSIScattereriPvPUi               # GUSIOTDatagramSocket::recvfrom(const GUSIScatterer&,int,void*,unsigned int*)
-connect__20GUSIOTDatagramSocketFPvUi           # GUSIOTDatagramSocket::connect(void*,unsigned int)
-getpeername__20GUSIOTDatagramSocketFPvPUi              # GUSIOTDatagramSocket::getpeername(void*,unsigned int*)
-BindIfUnbound__20GUSIOTDatagramSocketFv                # GUSIOTDatagramSocket::BindIfUnbound()
-__dt__20GUSIOTDatagramSocketFv         # GUSIOTDatagramSocket::~GUSIOTDatagramSocket()
-Clone__20GUSIOTDatagramSocketFv                # GUSIOTDatagramSocket::Clone()
-__ct__20GUSIOTDatagramSocketFP14GUSIOTStrategy         # GUSIOTDatagramSocket::GUSIOTDatagramSocket(GUSIOTStrategy*)
-shutdown__18GUSIOTStreamSocketFi               # GUSIOTStreamSocket::shutdown(int)
-select__18GUSIOTStreamSocketFPbPbPb            # GUSIOTStreamSocket::select(bool*,bool*,bool*)
-sendto__18GUSIOTStreamSocketFRC12GUSIGathereriPCvUi            # GUSIOTStreamSocket::sendto(const GUSIGatherer&,int,const void*,unsigned int)
-__dt__Q210GUSISocket17AddContextInScopeFv              # GUSISocket::AddContextInScope::~AddContextInScope()
-recvfrom__18GUSIOTStreamSocketFRC13GUSIScattereriPvPUi         # GUSIOTStreamSocket::recvfrom(const GUSIScatterer&,int,void*,unsigned int*)
-connect__18GUSIOTStreamSocketFPvUi             # GUSIOTStreamSocket::connect(void*,unsigned int)
-accept__18GUSIOTStreamSocketFPvPUi             # GUSIOTStreamSocket::accept(void*,unsigned int*)
-getpeername__18GUSIOTStreamSocketFPvPUi                # GUSIOTStreamSocket::getpeername(void*,unsigned int*)
-listen__18GUSIOTStreamSocketFi         # GUSIOTStreamSocket::listen(int)
-MopupEvents__18GUSIOTStreamSocketFv            # GUSIOTStreamSocket::MopupEvents()
-Close__18GUSIOTStreamSocketFUl         # GUSIOTStreamSocket::Close(unsigned long)
-__dt__18GUSIOTStreamSocketFv           # GUSIOTStreamSocket::~GUSIOTStreamSocket()
-close__18GUSIOTStreamSocketFv          # GUSIOTStreamSocket::close()
-Clone__18GUSIOTStreamSocketFv          # GUSIOTStreamSocket::Clone()
-__ct__18GUSIOTStreamSocketFP14GUSIOTStrategy           # GUSIOTStreamSocket::GUSIOTStreamSocket(GUSIOTStrategy*)
-Supports__12GUSIOTSocketFQ210GUSISocket12ConfigOption          # GUSIOTSocket::Supports(GUSISocket::ConfigOption)
-setsockopt__12GUSIOTSocketFiiPvUi              # GUSIOTSocket::setsockopt(int,int,void*,unsigned int)
-getsockopt__12GUSIOTSocketFiiPvPUi             # GUSIOTSocket::getsockopt(int,int,void*,unsigned int*)
-ioctl__12GUSIOTSocketFUiPc             # GUSIOTSocket::ioctl(unsigned int,char*)
-fcntl__12GUSIOTSocketFiPc              # GUSIOTSocket::fcntl(int,char*)
-shutdown__12GUSIOTSocketFi             # GUSIOTSocket::shutdown(int)
-getsockname__12GUSIOTSocketFPvPUi              # GUSIOTSocket::getsockname(void*,unsigned int*)
-Unbind__12GUSIOTSocketFv               # GUSIOTSocket::Unbind()
-BindToAddress__12GUSIOTSocketFP20GUSIOTAddr<5TBind,1>          # GUSIOTSocket::BindToAddress(GUSIOTAddr<TBind, 1>*)
-bind__12GUSIOTSocketFPvUi              # GUSIOTSocket::bind(void*,unsigned int)
-__dt__12GUSIOTSocketFv         # GUSIOTSocket::~GUSIOTSocket()
-close__12GUSIOTSocketFv                # GUSIOTSocket::close()
-__ct__12GUSIOTSocketFP14GUSIOTStrategy         # GUSIOTSocket::GUSIOTSocket(GUSIOTStrategy*)
-__dt__Q212GUSIOTSocket4LockFv          # GUSIOTSocket::Lock::~Lock()
-MopupEvents__12GUSIOTSocketFv          # GUSIOTSocket::MopupEvents()
-CopyAddress__14GUSIOTStrategyFRC7TNetbufR7TNetbuf              # GUSIOTStrategy::CopyAddress(const TNetbuf&,TNetbuf&)
-__dt__14GUSIOTStrategyFv               # GUSIOTStrategy::~GUSIOTStrategy()
-CreateConfiguration__14GUSIOTStrategyFv                # GUSIOTStrategy::CreateConfiguration()
-socket__21GUSIOTDatagramFactoryFiii            # GUSIOTDatagramFactory::socket(int,int,int)
-socket__19GUSIOTStreamFactoryFiii              # GUSIOTStreamFactory::socket(int,int,int)
-Initialize__13GUSIOTFactoryFv          # GUSIOTFactory::Initialize()
-GUSIOTNotify
-__vt__15GUSIOTUdpSocket                # GUSIOTUdpSocket::__vt
-__vt__17GUSIOTUdpStrategy              # GUSIOTUdpStrategy::__vt
-__vt__15GUSIOTTcpSocket                # GUSIOTTcpSocket::__vt
-__vt__17GUSIOTTcpStrategy              # GUSIOTTcpStrategy::__vt
-__vt__18GUSIOTInetStrategy             # GUSIOTInetStrategy::__vt
-__vt__16GUSIOTUdpFactory               # GUSIOTUdpFactory::__vt
-__vt__16GUSIOTTcpFactory               # GUSIOTTcpFactory::__vt
-sInstance__16GUSIOTUdpFactory          # GUSIOTUdpFactory::sInstance
-sInstance__16GUSIOTTcpFactory          # GUSIOTTcpFactory::sInstance
-__dt__16GUSIOTTcpFactoryFv             # GUSIOTTcpFactory::~GUSIOTTcpFactory()
-__dt__16GUSIOTUdpFactoryFv             # GUSIOTUdpFactory::~GUSIOTUdpFactory()
-__dt__17GUSIOTTcpStrategyFv            # GUSIOTTcpStrategy::~GUSIOTTcpStrategy()
-__dt__15GUSIOTTcpSocketFv              # GUSIOTTcpSocket::~GUSIOTTcpSocket()
-__dt__17GUSIOTUdpStrategyFv            # GUSIOTUdpStrategy::~GUSIOTUdpStrategy()
-__dt__15GUSIOTUdpSocketFv              # GUSIOTUdpSocket::~GUSIOTUdpSocket()
-GUSIwithOTInetSockets
-GUSIwithOTUdpSockets
-GUSIwithOTTcpSockets
-ioctl__15GUSIOTUdpSocketFUiPc          # GUSIOTUdpSocket::ioctl(unsigned int,char*)
-setsockopt__15GUSIOTUdpSocketFiiPvUi           # GUSIOTUdpSocket::setsockopt(int,int,void*,unsigned int)
-getsockopt__15GUSIOTUdpSocketFiiPvPUi          # GUSIOTUdpSocket::getsockopt(int,int,void*,unsigned int*)
-Clone__15GUSIOTUdpSocketFv             # GUSIOTUdpSocket::Clone()
-ConfigPath__17GUSIOTUdpStrategyFv              # GUSIOTUdpStrategy::ConfigPath()
-ioctl__15GUSIOTTcpSocketFUiPc          # GUSIOTTcpSocket::ioctl(unsigned int,char*)
-setsockopt__15GUSIOTTcpSocketFiiPvUi           # GUSIOTTcpSocket::setsockopt(int,int,void*,unsigned int)
-getsockopt__15GUSIOTTcpSocketFiiPvPUi          # GUSIOTTcpSocket::getsockopt(int,int,void*,unsigned int*)
-Clone__15GUSIOTTcpSocketFv             # GUSIOTTcpSocket::Clone()
-ConfigPath__17GUSIOTTcpStrategyFv              # GUSIOTTcpStrategy::ConfigPath()
-DoIoctl__18GUSIOTMInetOptionsFPiUiPc           # GUSIOTMInetOptions::DoIoctl(int*,unsigned int,char*)
-DoSetSockOpt__18GUSIOTMInetOptionsFPiP9TEndpointiiPvUi         # GUSIOTMInetOptions::DoSetSockOpt(int*,TEndpoint*,int,int,void*,unsigned int)
-DoGetSockOpt__18GUSIOTMInetOptionsFPiP9TEndpointiiPvPUi                # GUSIOTMInetOptions::DoGetSockOpt(int*,TEndpoint*,int,int,void*,unsigned int*)
-UnpackAddress__18GUSIOTInetStrategyFRC7TNetbufPvPUi            # GUSIOTInetStrategy::UnpackAddress(const TNetbuf&,void*,unsigned int*)
-PackAddress__18GUSIOTInetStrategyFPCvUiR7TNetbufb              # GUSIOTInetStrategy::PackAddress(const void*,unsigned int,TNetbuf&,bool)
-socket__16GUSIOTUdpFactoryFiii         # GUSIOTUdpFactory::socket(int,int,int)
-Strategy__16GUSIOTUdpFactoryFiii               # GUSIOTUdpFactory::Strategy(int,int,int)
-Instance__16GUSIOTUdpFactoryFv         # GUSIOTUdpFactory::Instance()
-socket__16GUSIOTTcpFactoryFiii         # GUSIOTTcpFactory::socket(int,int,int)
-__dt__18GUSIOTInetStrategyFv           # GUSIOTInetStrategy::~GUSIOTInetStrategy()
-Strategy__16GUSIOTTcpFactoryFiii               # GUSIOTTcpFactory::Strategy(int,int,int)
-Instance__16GUSIOTTcpFactoryFv         # GUSIOTTcpFactory::Instance()
-__vt__11GUSIOTNetDB            # GUSIOTNetDB::__vt
-get__49GUSISpecificData<11GUSIhostent,&.GUSIKillHostEnt>FP17GUSISpecificTable          # GUSISpecificData<GUSIhostent, &.GUSIKillHostEnt>::get(GUSISpecificTable*)
-__dt__11GUSIOTNetDBFv          # GUSIOTNetDB::~GUSIOTNetDB()
-gethostid__11GUSIOTNetDBFv             # GUSIOTNetDB::gethostid()
-inet_ntoa__11GUSIOTNetDBF7in_addr              # GUSIOTNetDB::inet_ntoa(in_addr)
-gethostbyaddr__11GUSIOTNetDBFPCvUli            # GUSIOTNetDB::gethostbyaddr(const void*,unsigned long,int)
-gethostbyname__11GUSIOTNetDBFPCc               # GUSIOTNetDB::gethostbyname(const char*)
-Resolver__11GUSIOTNetDBFv              # GUSIOTNetDB::Resolver()
-Instantiate__11GUSIOTNetDBFv           # GUSIOTNetDB::Instantiate()
-__dt__49GUSISpecificData<11GUSIhostent,&.GUSIKillHostEnt>Fv            # GUSISpecificData<GUSIhostent, &.GUSIKillHostEnt>::~GUSISpecificData()
-__ct__11GUSIOTNetDBFv          # GUSIOTNetDB::GUSIOTNetDB()
-GUSIOTNetDBNotify
-__dc_arr
-__del_arr
-__new_arr
-__init_arr
-__copy
-__som_check_ev
-__som_check_new
-__vt__Q23std13bad_exception            # std::bad_exception::__vt
-__vt__Q23std9exception         # std::exception::__vt
-what__Q23std9exceptionCFv              # std::exception::what() const
-what__Q23std13bad_exceptionCFv         # std::bad_exception::what() const
-__end__catch
-__throw
-__dt__Q23std9exceptionFv               # std::exception::~exception()
-__unexpected
-__dt__Q23std13bad_exceptionFv          # std::bad_exception::~bad_exception()
-__unregister_fragment
-__register_fragment
-__global_destructor_chain
-__destroy_global_chain
-__register_global_object
-__destroy_new_array3
-__destroy_new_array2
-__destroy_new_array
-__destroy_arr
-__construct_array
-__dt__26__partial_array_destructorFv           # __partial_array_destructor::~__partial_array_destructor()
-__construct_new_array
-__throw_catch_compare
-unexpected__3stdFv             # std::unexpected()
-set_unexpected__3stdFPFv_v             # std::set_unexpected(void (*)(void))
-terminate__3stdFv              # std::terminate()
-set_terminate__3stdFPFv_v              # std::set_terminate(void (*)(void))
-__vt__Q23std8bad_cast          # std::bad_cast::__vt
-__vt__Q23std10bad_typeid               # std::bad_typeid::__vt
-what__Q23std10bad_typeidCFv            # std::bad_typeid::what() const
-what__Q23std8bad_castCFv               # std::bad_cast::what() const
-__dynamic_cast
-__dt__Q23std8bad_castFv                # std::bad_cast::~bad_cast()
-__get_typeid
-__dt__Q23std10bad_typeidFv             # std::bad_typeid::~bad_typeid()
-nothrow__3std          # std::nothrow
-__dla__FPvRCQ23std9nothrow_t           # operator delete[](void*,const std::nothrow_t&)
-__dl__FPvRCQ23std9nothrow_t            # operator delete(void*,const std::nothrow_t&)
-__dla__FPv             # operator delete[](void*)
-__nwa__FUlRCQ23std9nothrow_t           # operator new[](unsigned long,const std::nothrow_t&)
-__nwa__FUl             # operator new[](unsigned long)
-__dl__FPv              # operator delete(void*)
-__nw__FUlRCQ23std9nothrow_t            # operator new(unsigned long,const std::nothrow_t&)
-__nw__FUl              # operator new(unsigned long)
-__throws_bad_alloc__3std               # std::__throws_bad_alloc
-__vt__Q23std9bad_alloc         # std::bad_alloc::__vt
-__new_handler__3std            # std::__new_handler
-what__Q23std9bad_allocCFv              # std::bad_alloc::what() const
-__del_hdl
-__new_hdl
-set_new_handler__3stdFPFv_v            # std::set_new_handler(void (*)(void))
-__throw_bad_alloc__3stdFv              # std::__throw_bad_alloc()
-__dt__Q23std9bad_allocFv               # std::bad_alloc::~bad_alloc()
-qd
-exit
-abort
-clrscr
-getch
-kbhit
-SIOUXSetTitle
-__ttyname
-ReadCharsFromConsole
-WriteCharsToConsole
-RemoveConsole
-InstallConsole
-SIOUXHandleOneEvent
-SIOUXisinrange
-SIOUXDragRect
-SIOUXBigRect
-SIOUXSettings
-SIOUXTextWindow
-SIOUXState
-SIOUXUseWaitNextEvent
-SIOUXQuitting
-SIOUXselstart
-SIOUXDoMenuChoice
-SIOUXDoEditSelectAll
-SIOUXDoEditClear
-SIOUXDoEditPaste
-SIOUXDoEditCopy
-SIOUXDoEditCut
-SIOUXDoSaveText
-SIOUXUpdateMenuItems
-SIOUXSetupMenus
-SIOUXDoPrintText
-SIOUXDoPageSetup
-SIOUXYesNoCancelAlert
-SIOUXCantSaveAlert
-SIOUXSetupTextWindow
-SIOUXDoContentClick
-SIOUXMyGrowWindow
-SIOUXUpdateStatusLine
-MoveScrollBox
-SIOUXUpdateScrollbar
-SIOUXUpdateWindow
-SIOUXDrawGrowBox
-AdjustText
-SIOUXIsAppWindow
-__console_exit
-__stdio_exit
-__aborting
-__exit
-exit
-__atexit
-atexit
-abort
-fix_start
-vec_free
-vec_realloc
-vec_calloc
-vec_malloc
-__pool_free_all
-calloc
-realloc
-free
-malloc
-__msize
-deallocate_from_fixed_pools
-allocate_from_fixed_pools
-__files
-__flush_line_buffered_output_files
-__flush_all
-__close_all
-__init_file
-__find_unopened_file
-__llmod
-__lmod
-__mod
-__lldiv
-__ldiv
-__div
-__llmul
-__lmul
-__mul
-__lladd
-__ladd
-__add
-lldiv
-ldiv
-div
-llabs
-labs
-abs
-__assertion_failed
-bsearch
-setbuf
-setvbuf
-__flush_buffer
-__load_buffer
-__prep_buffer
-__convert_to_newlines
-__convert_from_newlines
-ccommand
-puts
-fputs
-putchar
-putc
-fputc
-__put_char
-__ungotten
-ungetc
-gets
-fgets
-getchar
-getc
-fgetc
-__get_char
-__ctype_map
-__lower_map
-__upper_map
-fwrite
-fread
-errno
-_splitpath
-_makepath
-_strrev
-_itow
-_itoa
-_strspnp
-_strnset
-_strset
-_strdate
-_strupr
-_wstrrev
-_strnicmp
-_stricmp
-_heapmin
-_gcvt
-_ultoa
-_strlwr
-_wcsspnp
-_wcsnset
-_wcsset
-_wcsrev
-_wcsnicmp
-_wcsicmp
-_wcsupr
-_wcslwr
-__temp_file_mode
-__set_idle_proc
-__get_file_modes
-__handle_reopen
-__handle_open
-__reopen
-freopen
-fopen
-fflush
-fclose
-tmpfile
-tmpnam
-__rename_file
-__delete_file
-__temp_file_name
-rewind
-fsetpos
-fseek
-_fseek
-fgetpos
-ftell
-_ftell
-__lconv
-localeconv
-setlocale
-wcstombs
-mbstowcs
-wctomb
-mbtowc
-mblen
-memcmp
-__memrchr
-memchr
-memset
-memmove
-memcpy
-__fill_mem
-__copy_longs_rev_unaligned
-__copy_longs_unaligned
-__copy_longs_rev_aligned
-__copy_longs_aligned
-__move_mem
-__copy_mem
-__stdio_atexit
-perror
-ferror
-feof
-clearerr
-__path2fss
-__sys_pointer_size
-__sys_free
-__sys_alloc
-sprintf
-snprintf
-vsprintf
-vsnprintf
-vfprintf
-vprintf
-fprintf
-printf
-__StringWrite
-__FileWrite
-qsort
-srand
-rand
-sscanf
-vsscanf
-vfscanf
-scanf
-fscanf
-__StringRead
-__FileRead
-__strerror
-strerror
-strstr
-strtok
-strcspn
-strspn
-strpbrk
-strrchr
-strxfrm
-strcoll
-strchr
-strncmp
-strcmp
-strncat
-strcat
-strncpy
-strcpy
-strlen
-atof
-strtod
-strtold
-__strtold
-atol
-atoi
-strtoll
-strtol
-strtoull
-strtoul
-__strtoull
-__strtoul
-system
-getenv
-__month_to_days
-strftime
-ctime
-asctime
-difftime
-clock
-__leap_year
-__to_gm_time
-__get_time
-__get_clock
-_fcntl
-_creat
-_open
-_mkdir
-_fstat
-_stat
-_write
-_unlink
-_ttyname
-_sleep
-_rmdir
-_read
-_lseek
-_isatty
-_getlogin
-_getcwd
-_exec
-_cuserid
-_close
-_chdir
-__new_umask
-_fileno
-_umask
-_ftype
-_fcreator
-_chmod
-__gettype
-__getcreator
-__ctopstring
-__system7present
-utimes
-_uname
-__float_nan
-__float_huge
-__double_min
-__double_max
-__double_epsilon
-__double_tiny
-__double_huge
-__double_nan
-__extended_min
-__extended_max
-__extended_epsilon
-__extended_tiny
-__extended_huge
-__extended_nan
-fwide
-fgetws
-fputws
-ungetwc
-fgetwc
-getwchar
-getwc
-fputwc
-putwchar
-putwc
-watof
-wcstod
-__wcstold
-watol
-watoi
-wcstoll
-wcstol
-wcstoull
-wcstoul
-__wcstoull
-__wcstoul
-wctrans
-towctrans
-__wctype_map
-__wlower_map
-__wupper_map
-iswctype
-wctype
-wctob
-wmemcmp
-wmemchr
-wmemset
-wmemmove
-wmemcpy
-vswprintf
-swprintf
-vfwprintf
-vwprintf
-fwprintf
-wprintf
-__wStringWrite
-__wFileWrite
-swscanf
-vswscanf
-vfwscanf
-vwscanf
-wscanf
-fwscanf
-__wStringRead
-__wFileRead
-wcsstr
-wcstok
-wcscspn
-wcsspn
-wcspbrk
-wcsrchr
-wcsxfrm
-wcscoll
-wcschr
-wcsncmp
-wcscmp
-wcsncat
-wcscat
-wcsncpy
-wcscpy
-wcslen
-wcsftime
-wctime
-wasctime
-__fminl
-__fmaxl
-__fdiml
-__nextafterl
-__remquol
-__copysignl
-__remainderl
-__fmodl
-__modfl
-__truncl
-llroundl
-lroundl
-__roundl
-llrintl
-lrintl
-__rintl
-__nearbyintl
-__floorl
-__ceill
-__lgammal
-__gammal
-__erfcl
-__erfl
-__hypotl
-__sqrtl
-__powl
-__fabsl
-scalblnl
-scalbnl
-__logbl
-__log2l
-__log1pl
-__expm1l
-__exp2l
-__log10l
-__logl
-__ldexpl
-__frexpl
-__expl
-__atanhl
-__asinhl
-__acoshl
-__tanhl
-__sinhl
-__coshl
-__tanl
-__sinl
-__cosl
-__atan2l
-__atanl
-__asinl
-__acosl
-fminf
-fmaxf
-fdimf
-remquof
-copysignf
-remainderf
-fmodf
-truncf
-llroundf
-lroundf
-roundf
-llrintf
-lrintf
-rintf
-nearbyintf
-floorf
-ceilf
-lgammaf
-gammaf
-erfcf
-erff
-hypotf
-sqrtf
-powf
-fabsf
-scalblnf
-scalbnf
-logbf
-log2f
-log1pf
-expm1f
-exp2f
-log10f
-logf
-ldexpf
-frexpf
-expf
-atanhf
-asinhf
-acoshf
-tanhf
-sinhf
-coshf
-tanf
-sinf
-cosf
-atan2f
-atanf
-asinf
-acosf
-nextafter
-llround
-lround
-llrint
-lrint
-scalbln
-scalbn
diff --git a/Mac/Build/PythonInterpreter.mcp b/Mac/Build/PythonInterpreter.mcp
deleted file mode 100644 (file)
index 7d9430c..0000000
Binary files a/Mac/Build/PythonInterpreter.mcp and /dev/null differ
diff --git a/Mac/Build/PythonStandSmall.mcp b/Mac/Build/PythonStandSmall.mcp
deleted file mode 100644 (file)
index 792968a..0000000
Binary files a/Mac/Build/PythonStandSmall.mcp and /dev/null differ
diff --git a/Mac/Build/PythonStandalone.mcp b/Mac/Build/PythonStandalone.mcp
deleted file mode 100644 (file)
index 4f3eb56..0000000
Binary files a/Mac/Build/PythonStandalone.mcp and /dev/null differ
diff --git a/Mac/Build/_dummy_tkinter.mcp b/Mac/Build/_dummy_tkinter.mcp
deleted file mode 100644 (file)
index 4e149b0..0000000
Binary files a/Mac/Build/_dummy_tkinter.mcp and /dev/null differ
diff --git a/Mac/Contrib/AECaptureParser/AECaptureParser.py b/Mac/Contrib/AECaptureParser/AECaptureParser.py
deleted file mode 100644 (file)
index 25a0237..0000000
+++ /dev/null
@@ -1,362 +0,0 @@
-'''
-AECaptureParser makes a brave attempt to convert the text output
-of the very handy Lasso Capture AE control panel
-into close-enough executable python code.
-
-In a roundabout way AECaptureParser offers the way to write lines of AppleScript
-and convert them to python code. Once Pythonised, the code can be made prettier,
-and it can run without Capture or Script Editor being open.
-
-You need Lasso Capture AE from Blueworld:
-ftp://ftp.blueworld.com/Lasso251/LassoCaptureAE.hqx
-
-Lasso Capture AE prints structured ascii representations in a small window.
-As these transcripts can be very complex, cut and paste to AECaptureParser, it parses and writes
-python code that will, when executed, cause the same events to happen.
-It's been tested with some household variety events, I'm sure there will be tons that
-don't work.
-
-All objects are converted to standard aetypes.ObjectSpecifier instances.
-
-How to use:
-       1. Start the Capture window
-       2. Cause the desired appleevent to happen
-               - by writing a line of applescript in Script Editor and running it (!)
-               - by recording some action in Script Editor and running it
-       3. Find the events in Capture:
-               - make sure you get the appropriate events, cull if necessary
-               - sometimes Capture barfs, just quit and start Capture again, run events again
-               - AECaptureParser can process multiple events - it will just make more code.
-       4. Copy and paste in this script and execute
-       5. It will print python code that, when executed recreates the events.
-
-Example:
-       For instance the following line of AppleScript in Script Editor
-                       tell application "Finder"
-                               return application processes
-                       end tell
-       will result in the following transcript:
-                       [event: target="Finder", class=core, id=getd]
-                       '----':obj {form:indx, want:type(pcap), seld:abso(«616C6C20»), from:'null'()}
-                       [/event]
-       Feed a string with this (and perhaps more) events to AECaptureParser
-       
-Some mysteries:
-       *       what is '&subj' - it is sent in an activate event:      &subj:'null'()
-               The activate event works when this is left out. A possibility?
-       *       needs to deal with embedded aliasses
-
-
-'''
-__version__ = '0.002'
-__author__ = 'evb'
-
-
-import string 
-
-opentag = '{'
-closetag = '}'
-
-
-
-import aetools
-import aetypes
-
-class eventtalker(aetools.TalkTo):
-       pass
-
-def processes():
-       '''Helper function to get the list of current processes and their creators
-       This code was mostly written by AECaptureParser! It ain't pretty, but that's not python's fault!'''
-       talker = eventtalker('MACS')
-       _arguments = {}
-       _attributes = {}
-       p = []
-       names = []
-       creators = []
-       results = []
-       # first get the list of process names
-       _arguments['----'] = aetypes.ObjectSpecifier(want=aetypes.Type('pcap'),
-                       form="indx", seld=aetypes.Unknown('abso', "all "), fr=None)
-       _reply, _arguments, _attributes = talker.send('core', 'getd', _arguments, _attributes)
-       if _arguments.has_key('errn'):
-               raise aetools.Error, aetools.decodeerror(_arguments)
-       if _arguments.has_key('----'):
-               p = _arguments['----']
-       for proc in p:
-               names.append(proc.seld)
-       # then get the list of process creators
-       _arguments = {}
-       _attributes = {}
-       AEobject_00 = aetypes.ObjectSpecifier(want=aetypes.Type('pcap'), form="indx", seld=aetypes.Unknown('abso', "all "), fr=None)
-       AEobject_01 = aetypes.ObjectSpecifier(want=aetypes.Type('prop'), form="prop", seld=aetypes.Type('fcrt'), fr=AEobject_00)
-       _arguments['----'] = AEobject_01
-       _reply, _arguments, _attributes = talker.send('core', 'getd', _arguments, _attributes)
-       if _arguments.has_key('errn'):
-               raise aetools.Error, aetools.decodeerror(_arguments)
-       if _arguments.has_key('----'):
-               p = _arguments['----']
-       for proc in p:
-               creators.append(proc.type)
-       # then put the lists together
-       for i in range(len(names)):
-               results.append((names[i], creators[i]))
-       return results
-
-               
-class AECaptureParser:
-       '''convert a captured appleevent-description into executable python code'''
-       def __init__(self, aetext):
-               self.aetext = aetext
-               self.events = []
-               self.arguments = {}
-               self.objectindex = 0
-               self.varindex = 0
-               self.currentevent =  {'variables':{}, 'arguments':{}, 'objects':{}}
-               self.parse()
-       
-       def parse(self):
-               self.lines = string.split(self.aetext, '\n')
-               for l in self.lines:
-                       if l[:7] == '[event:':
-                               self.eventheader(l)
-                       elif l[:7] == '[/event':
-                               if len(self.currentevent)<>0:
-                                       self.events.append(self.currentevent)
-                                       self.currentevent = {'variables':{}, 'arguments':{}, 'objects':{}}
-                                       self.objectindex = 0
-                       else:
-                               self.line(l)
-       
-       def line(self, value):
-               '''interpret literals, variables, lists etc.'''
-               # stuff in [  ], l ists
-               varstart = string.find(value, '[')
-               varstop = string.find(value, ']')
-               if varstart <> -1 and varstop <> -1 and varstop>varstart:
-                       variable = value[varstart:varstop+1]
-                       name = 'aevar_'+string.zfill(self.varindex, 2)
-                       self.currentevent['variables'][name] = variable
-                       value = value[:varstart]+name+value[varstop+1:]
-                       self.varindex = self.varindex + 1
-               # stuff in Â«  Â»
-               # these are 'ordinal' descriptors of 4 letter codes, so translate
-               varstart = string.find(value, '«')
-               varstop = string.find(value, '»')
-               if varstart <> -1 and varstop <> -1 and varstop>varstart:
-                       variable = value[varstart+1:varstop]
-                       t = ''
-                       for i in range(0, len(variable), 2):
-                               c = eval('0x'+variable[i : i+2])
-                               t = t + chr(c)
-                       
-                       name = 'aevar_'+string.zfill(self.varindex, 2)
-                       self.currentevent['variables'][name] = '"' + t + '"'
-                       value = value[:varstart]+name+value[varstop+1:]
-                       self.varindex = self.varindex + 1
-               pos = string.find(value, ':')
-               if pos==-1:return
-               ok = 1
-               while ok <> None:
-                       value, ok = self.parseobject(value)
-               self.currentevent['arguments'].update(self.splitparts(value, ':'))
-               
-               # remove the &subj argument?
-               if self.currentevent['arguments'].has_key('&subj'):
-                       del self.currentevent['arguments']['&subj']
-                       
-               # check for arguments len(a) < 4, and pad with spaces
-               for k in self.currentevent['arguments'].keys():
-                       if len(k)<4:
-                               newk = k + (4-len(k))*' '
-                               self.currentevent['arguments'][newk] = self.currentevent['arguments'][k]
-                               del self.currentevent['arguments'][k]
-
-       def parseobject(self, obj):
-               a, b = self.findtag(obj)
-               stuff = None
-               if a<>None and b<>None:
-                       stuff = obj[a:b]
-                       name = 'AEobject_'+string.zfill(self.objectindex, 2)
-                       self.currentevent['objects'][name] = self.splitparts(stuff, ':')
-                       obj = obj[:a-5] + name + obj[b+1:]
-                       self.objectindex = self.objectindex +1
-               return obj, stuff
-               
-       def nextopen(self, pos, text):
-               return string.find(text, opentag, pos)
-               
-       def nextclosed(self, pos, text):
-               return string.find(text, closetag, pos)
-       
-       def nexttag(self, pos, text):
-               start = self.nextopen(pos, text)
-               stop = self.nextclosed(pos, text)
-               if start == -1:
-                       if stop == -1:
-                               return -1, -1
-                       return 0, stop
-               if start < stop and start<>-1:
-                       return 1, start
-               else:
-                       return 0, stop
-                                       
-       def findtag(self, text):
-               p = -1
-               last = None,None
-               while 1:
-                       kind, p = self.nexttag(p+1, text)
-                       if last[0]==1 and kind==0:
-                               return last[1]+len(opentag), p
-                       if (kind, p) == (-1, -1):
-                               break
-                       last=kind, p
-               return None, None
-       
-       def splitparts(self, txt, splitter):
-               res = {}
-               parts = string.split(txt, ', ')
-               for p in parts:
-                       pos = string.find(p, splitter)
-                       key = string.strip(p[:pos])
-                       value = string.strip(p[pos+1:])
-                       res[key] = self.map(value)
-               return res
-               
-       def eventheader(self, hdr):
-               self.currentevent['event'] = self.splitparts(hdr[7:-1], '=')
-       
-       def printobject(self, d):
-               '''print one object as python code'''
-               t = []
-               obj = {}
-               obj.update(d)
-               t.append("aetypes.ObjectSpecifier(")
-               if obj.has_key('want'):
-                       t.append('want=' + self.map(obj['want']))
-                       del obj['want']
-                       t.append(', ')
-               if obj.has_key('form'):
-                       t.append('form=' + addquotes(self.map(obj['form'])))
-                       del obj['form']
-                       t.append(', ')
-               if obj.has_key('seld'):
-                       t.append('seld=' + self.map(obj['seld']))
-                       del obj['seld']
-                       t.append(', ')
-               if obj.has_key('from'):
-                       t.append('fr=' + self.map(obj['from']))
-                       del obj['from']
-               if len(obj.keys()) > 0:
-                       print '# ', `obj`                       
-               t.append(")")
-               return string.join(t, '')
-       
-       def map(self, t):
-               '''map some Capture syntax to python
-               matchstring : [(old, new), ... ]
-               '''
-               m = {
-                               'type(': [('type(', "aetypes.Type('"), (')', "')")],
-                               "'null'()": [("'null'()", "None")],
-                               'abso(': [('abso(', "aetypes.Unknown('abso', ")],
-                               '³':    [('³', '"')],
-                               '²':    [('²', '"')],
-                               '[':    [('[', '('), (', ', ',')],
-                               ']':    [(']', ')')],
-                               '«':    [('«', "«")],
-                               '»':    [('»', "»")],
-                               
-                       }
-               for k in m.keys():
-                       if string.find(t, k) <> -1:
-                               for old, new in m[k]:
-                                       p = string.split(t, old)
-                                       t = string.join(p, new)
-               return t
-               
-       def printevent(self, i):
-               '''print the entire captured sequence as python'''
-               evt = self.events[i]
-               code = []
-               code.append('\n# start event ' + `i` + ', talking to ' + evt['event']['target'])
-               # get the signature for the target application
-               code.append('talker = eventtalker("'+self.gettarget(evt['event']['target'])+'")')
-               code.append("_arguments = {}")
-               code.append("_attributes = {}")
-               # write the variables
-               for key, value in evt['variables'].items():
-                       value = evt['variables'][key]
-                       code.append(key + ' = ' + value)
-               # write the object in the right order
-               objkeys = evt['objects'].keys()
-               objkeys.sort()
-               for key in objkeys:
-                       value = evt['objects'][key]
-                       code.append(key + ' = ' + self.printobject(value))
-               # then write the arguments
-               for key, value in evt['arguments'].items():
-                       code.append("_arguments[" + addquotes(key) + "] = " + value )
-               code.append('_reply, _arguments, _attributes = talker.send("'+
-                               evt['event']['class']+'", "'+evt['event']['id']+'", _arguments, _attributes)')
-               code.append("if _arguments.has_key('errn'):")
-               code.append('\traise aetools.Error, aetools.decodeerror(_arguments)')   
-               code.append("if _arguments.has_key('----'):")
-               code.append("\tprint _arguments['----']")
-               code.append('# end event ' + `i`)
-               return string.join(code, '\n')
-       
-       def gettarget(self, target):
-               '''get the signature for the target application'''
-               target = target[1:-1]
-               if target == 'Finder':
-                       return "MACS"
-               apps = processes()
-               for name, creator in apps:
-                       if name == target:
-                               return creator
-               return '****'
-                       
-       def makecode(self):
-               code = []
-               code.append("\n\n")
-               code.append("# code generated by AECaptureParser v " + __version__)
-               code.append("# imports, definitions for all events")
-               code.append("import aetools")
-               code.append("import aetypes")
-               code.append("class eventtalker(aetools.TalkTo):")
-               code.append("\tpass")
-               code.append("# the events")
-               # print the events
-               for i in range(len(self.events)):
-                       code.append(self.printevent(i))
-               code.append("# end code")
-               return string.join(code, '\n')
-
-def addquotes(txt):
-       quotes = ['"', "'"]
-       if not txt[0] in quotes and not txt[-1] in quotes:
-               return '"'+txt+'"'
-       return txt 
-       
-       
-
-
-
-
-# ------------------------------------------
-#      the factory
-# ------------------------------------------
-
-# for instance, this event was captured from the Script Editor asking the Finder for a list of active processes.
-
-eventreceptacle = """
-
-[event: target="Finder", class=core, id=setd]
-'----':obj {form:prop, want:type(prop), seld:type(posn), from:obj {form:name, want:type(cfol), seld:³MoPar:Data:DevDev:Python:Python 1.5.2c1:Extensions², from:'null'()}}, data:[100, 10]
-[/event]
-
-"""
-
-aet = AECaptureParser(eventreceptacle)
-print aet.makecode()
diff --git a/Mac/Contrib/BBPy.lm/BBPy.c b/Mac/Contrib/BBPy.lm/BBPy.c
deleted file mode 100644 (file)
index 85f0dd2..0000000
+++ /dev/null
@@ -1,456 +0,0 @@
-#include <AEDataModel.h>
-
-#define DEBUG 0
-
-#define kComponentSignatureString "BBPy.LM"                 
-#include <Debugging.h>
-
-
-#include <BBLMInterface.h>
-#include <BBXTInterface.h>
-//#include <BBLMTextIterator.h>
-
-#include <ctype.h>
-#include <string.h>
-#include <stdio.h>
-#include <stdarg.h>
-
-#include <Sound.h>
-
-#if DEBUG
-void debugf_(const char* func,const char* fileName,long line, const char*fmt,...)
-{
-       va_list arg;
-       char msg[256];
-       va_start(arg, fmt);
-       vsnprintf(msg,256 ,fmt, arg);
-    DebugAssert(COMPONENT_SIGNATURE, DEBUG_NO_OPTIONS, kComponentSignatureString ": " , msg, nil, fileName, line, 0 );
-
-       //debug_string(msg);
-}
-#define debugf(FMT,...)  debugf_( __FUNCTION__,__FILE__, __LINE__,FMT,__VA_ARGS__);
-#else
-#define debugf(FMT,...) 
-#endif
-
-typedef const char *Str; 
-
-
-enum{
-       kPyBBLMStringSubst =  kBBLMFirstUserRunKind
-};
-
-#define iswordchar(x) (isalnum(x)||x=='_')
-
-
-struct runloc{
-       bool past_gap;
-       long pos;
-       long last_start;
-       unsigned char*p;
-};
-
-char start(struct runloc& r,BBLMParamBlock &pb)
-{
-       r.past_gap = false;
-       r.last_start = pb.fCalcRunParams.fStartOffset;
-       r.pos = pb.fCalcRunParams.fStartOffset;
-       r.p = ((unsigned char*)pb.fText) + pb.fCalcRunParams.fStartOffset;
-       // Adjust for the gap if we¹re not already past it.
-       if ((!r.past_gap) && (r.pos >= pb.fTextGapLocation)){
-               r.p += pb.fTextGapLength;
-               r.past_gap = true;
-       }
-       return *r.p;
-
-}
-
-char nextchar(struct runloc&r,BBLMParamBlock &pb)
-{
-       if ( r.pos< pb.fTextLength){
-               ++r.pos;
-               ++r.p;
-               if ((!r.past_gap) && (r.pos >= pb.fTextGapLocation)){
-                       r.p += pb.fTextGapLength;
-                       r.past_gap = true;
-               }
-               return *r.p;
-       }
-       else{
-               return 0;
-       }
-}
-
-bool addRun(BBLMRunCode kind, int  start,int len , const BBLMCallbackBlock& bblm_callbacks)
-{
-       if (len > 0){ // Tie off the code run we were in, unless the length is zero.
-               debugf("Run %d %d:%d", kind, start, start+len-1 );
-               return bblmAddRun(      &bblm_callbacks, 'Pyth',
-                                                       kind, start, len, false);
-                                                       
-       }
-       else{
-               return true;
-       }
-}                                      
-
-bool addRunBefore (BBLMRunCode kind,struct runloc& r, const BBLMCallbackBlock& bblm_callbacks)
-{
-       bool more_runs = addRun(kind, r.last_start, r.pos - r.last_start, bblm_callbacks);
-       r.last_start =  r.pos;
-       return more_runs;
-}
-
-bool addRunTo (BBLMRunCode kind, struct runloc& r, const BBLMCallbackBlock& bblm_callbacks)
-{
-       bool more_runs = addRun(kind, r.last_start, r.pos - r.last_start+1, bblm_callbacks);
-       r.last_start =  r.pos+1;
-       return more_runs;
-}
-
-
-bool colorstr( char delim,
-                               BBLMParamBlock &pb,
-                               struct runloc &r,
-                               const BBLMCallbackBlock &bblm_callbacks)
-{
-       bool tripple = false , pers = false, lookup = false, more_runs = true;
-       char c = nextchar(r,pb);
-
-       if (c == delim){
-               c = nextchar(r,pb);
-               if (c == delim){
-                       tripple = true;
-                       c = nextchar(r,pb);
-               }  
-               else{
-                       //double
-                       return addRunBefore(kBBLMRunIsSingleString,r,bblm_callbacks);
-               }       
-       }
-       while (c && more_runs){
-               if (pers ){
-                       if (isalpha(c)){
-                               more_runs = addRunTo(kPyBBLMStringSubst,r,bblm_callbacks);
-                       }
-                       else if (c == '('){
-                               lookup = true;
-                       }
-               }
-               pers = false;
-               if (c == delim){
-                       if (tripple){
-                               if ((c = nextchar(r,pb))== delim && (c = nextchar(r,pb)) == delim){
-                                       break; // end of tripple-quote.
-                               }  
-                       }
-                       else{
-                               break; // end of single-quote.
-                       }
-                       
-               }
-               else if (c== '\\'){
-                       nextchar(r,pb);
-               }
-               else if (c=='\r'||c=='\n'){
-                       if (!tripple){  
-                               break;
-                       }
-               }
-               else if (c=='%'){
-                       more_runs = addRunBefore(kBBLMRunIsSingleString,r,bblm_callbacks);
-                       pers = true;
-               }
-               else if (c==')' && lookup){
-                       more_runs = addRunTo(kPyBBLMStringSubst,r,bblm_callbacks);
-                       lookup = false;
-               }
-               c = nextchar(r,pb);
-       }
-       return more_runs && addRunTo(lookup?kPyBBLMStringSubst:kBBLMRunIsSingleString,r,bblm_callbacks);
-}
-
-bool colorcomment(BBLMParamBlock &pb,
-                               struct runloc &r,
-                               const BBLMCallbackBlock &bblm_callbacks)
-{
-       while (char c = nextchar(r,pb)){
-               if (c=='\r'|| c=='\n'){
-                       break;
-               }
-       }
-       return addRunTo(kBBLMRunIsLineComment,r,bblm_callbacks);
-}
-
-void CalculateRuns(BBLMParamBlock &pb,
-                       const BBLMCallbackBlock &bblm_callbacks)
-
-{
-       const struct rundesc    *state = NULL;
-       bool more_runs=true;
-               
-       struct runloc r;
-       
-       char c = start(r,pb);
-       
-       while (c && more_runs){
-       loop:
-               // Process a char
-               if (state==NULL){
-                       //If we're in the basic 'code' state, check for each interesting char (rundelims[i].start).
-                       switch (c){
-                       case '\'':
-                       case '"': 
-                               more_runs = addRunBefore(kBBLMRunIsCode,r,bblm_callbacks);
-                               if (more_runs){
-                                       more_runs = colorstr(c,pb,r,bblm_callbacks);
-                               }
-                               break;
-                       case '#' :
-                               more_runs = addRunBefore(kBBLMRunIsCode,r,bblm_callbacks);
-                               if (more_runs){
-                                       more_runs = colorcomment(pb,r,bblm_callbacks); 
-                               }
-                               break;
-                       default:
-                               break;
-                       }
-
-               }
-               c = nextchar(r,pb);
-       }
-       if (more_runs){
-               addRunBefore(kBBLMRunIsCode,r,bblm_callbacks);
-       }
-       
-
-}
-static void AdjustRange(BBLMParamBlock &params,
-                                               const BBLMCallbackBlock &callbacks)
-{      
-       DescType language;
-       BBLMRunCode kind;
-       SInt32 charPos;
-       SInt32 length;
-       UInt32 index = params.fAdjustRangeParams.fStartIndex;
-       
-       while(  index > 0 &&
-                       bblmGetRun(&callbacks, index, language, kind, charPos, length) &&
-                       (kind==kPyBBLMStringSubst||kind==kBBLMRunIsSingleString)){
-               index--;
-       };
-        params.fAdjustRangeParams.fStartIndex = index;
-}
-
-
-// The next couple funcs process the text of a file assumming it's in 1 piece in memory,
-// so they may not be called from CalculateRuns.
-
-bool matchword(BBLMParamBlock &pb, const char *pat ,unsigned long *pos)
-{      
-       const char *asciText = (const char *) (pb.fTextIsUnicode?NULL:pb.fText);
-
-       int i;
-       for (i=0; pat[i]; i++){
-               if (*pos+i>=pb.fTextLength){
-                       return false;
-               }
-               if (asciText[*pos+i] != pat[i]){
-                       return false;
-               }
-       }
-       if ((*pos+i<pb.fTextLength)&&iswordchar(asciText[*pos+i])){
-               return false;
-       }
-       *pos+=i;
-       return true;
-}      
-
-int matchindent(BBLMParamBlock &pb, UInt32 *pos)
-{      
-       const char *asciText = (const char *) (pb.fTextIsUnicode?NULL:pb.fText);
-       int indent=0;
-               
-       while(*pos<pb.fTextLength){
-               switch (/*(char)(pb.fTextIsUnicode?uniText[pos]:*/asciText[*pos]/*)*/){
-               case ' ':
-                       ++*pos;
-                       indent++;
-                       break;  
-               case '\t':
-                       ++*pos;         
-                       indent+=8;
-                       break;
-               case '#':
-                       return -1;
-                       break;
-               default:
-                       return indent;
-                       break;
-               }
-       }       
-}
-
-
-void eat_line(BBLMParamBlock &pb, unsigned long* pos)
-{
-       const char *asciText = (const char *) (pb.fTextIsUnicode?NULL:pb.fText);
-       while (asciText[*pos]!='\r' && asciText[*pos]!='\n' && *pos<pb.fTextLength) {++*pos;}
-       while ((asciText[*pos]=='\r' || asciText[*pos]=='\n') && *pos<pb.fTextLength) {++*pos;}
-
-}
-
-void addItem(BBLMParamBlock &pb, UInt32 pos, int nest, BBLMFunctionKinds kind,
-                       const BBLMCallbackBlock *bblm_callbacks)
-{
-       UInt32 funcstartpos = pos;
-       UInt32 funcnamelen=0;
-       UInt32 offset=0;
-       const char *asciText = (const char *) pb.fText;
-       UInt32 index;
-       OSErr err;
-       
-       while (isspace(asciText[pos]) && pos<pb.fTextLength) {++pos;}
-       UInt32 fnamestart = pos;
-       while ((isalnum(asciText[pos])||asciText[pos]=='_') && pos<pb.fTextLength) {pos++; funcnamelen++;}
-       
-       err = bblmAddTokenToBuffer(     bblm_callbacks, 
-                                                               pb.fFcnParams.fTokenBuffer,
-                                                               (void*)&asciText[fnamestart],
-                                                               funcnamelen,
-                                                               pb.fTextIsUnicode,
-                                                               &offset);
-       BBLMProcInfo procInfo; 
-       procInfo.fFunctionStart = fnamestart;   //      char offset in file of first character of function
-       procInfo.fFunctionEnd = pos;    //      char offset of last character of function
-       
-       procInfo.fSelStart = fnamestart;                //      first character to select when choosing function
-       procInfo.fSelEnd = pos;         //      last character to select when choosing function
-       
-       procInfo.fFirstChar = fnamestart;               //      first character to make visible when choosing function
-       
-       procInfo.fKind = kind;
-       
-       procInfo.fIndentLevel = nest;   //      indentation level of token
-       procInfo.fFlags = 0;                    //      token flags (see BBLMFunctionFlags)
-       procInfo.fNameStart = offset;           //      char offset in token buffer of token name
-       procInfo.fNameLength = funcnamelen;     //      length of token name
-                                                                                                                               
-       err = bblmAddFunctionToList(bblm_callbacks,     
-                                                               pb.fFcnParams.fFcnList,
-                                                               procInfo,
-                                                               &index);
-}
-
-
-
-enum{
-       maxnest=5
-};
-
-void ScanForFunctions(BBLMParamBlock &pb,
-                       const BBLMCallbackBlock &bblm_callbacks)
-{
-
-       const char *asciText = (const char *) (pb.fTextIsUnicode?NULL:pb.fText);
-       UniCharPtr uniText = (UniCharPtr) (pb.fTextIsUnicode?pb.fText:NULL);
-       
-       int indents[maxnest]= {0};
-       int nest = 0;
-       
-       UInt32 pos=0; // current character offset
-
-       
-       while (pos<pb.fTextLength){
-               
-               int indent = matchindent(pb, &pos);
-               
-               if (indent >= 0){
-                       for (int i=0; i <= nest; i++){
-                               if (indent<=indents[i]){
-                                       nest = i;
-                                       indents[nest]=indent;
-                                       goto x;
-                               }
-                       }
-                       indents[++nest]=indent;
-                       x:
-               
-                       if (matchword(pb,"def",&pos)){
-                               addItem( pb, pos, nest, kBBLMFunctionMark, &bblm_callbacks);
-                       }
-                       else if (matchword(pb, "class", &pos)){
-                               addItem( pb, pos, nest, kBBLMTypedef, &bblm_callbacks);
-                       }
-               }
-               eat_line(pb,&pos);
-       }
-       
-}
-
-OSErr main(    BBLMParamBlock &params,
-                       const BBLMCallbackBlock &bblm_callbacks,
-                       const BBXTCallbackBlock &bbxt_callbacks)
-{
-       OSErr result;
-
-       if ((params.fSignature != kBBLMParamBlockSignature) ||
-               (params.fLength < sizeof(BBLMParamBlock)))
-       {
-               return paramErr;
-       }
-       
-       switch (params.fMessage)
-       {
-               case kBBLMInitMessage:
-               case kBBLMDisposeMessage:
-               {
-                       result = noErr; // nothing to do
-                       break;
-               }
-               
-               case kBBLMCalculateRunsMessage:
-                       CalculateRuns(params, bblm_callbacks);
-                       result = noErr;
-                       break;
-
-               case kBBLMScanForFunctionsMessage:
-                       ScanForFunctions(params, bblm_callbacks);
-                       result = noErr;
-                       break;
-
-               case kBBLMAdjustRangeMessage:
-                       AdjustRange(params, bblm_callbacks);
-                       result = noErr;
-                       break;
-               
-               case kBBLMMapRunKindToColorCodeMessage:
-                       switch (params.fMapRunParams.fRunKind){
-                       case kPyBBLMStringSubst:
-                               params.fMapRunParams.fColorCode = kBBLMSGMLAttributeNameColor;
-                               params.fMapRunParams.fMapped =  true;
-                               break;  
-                       default:
-                               params.fMapRunParams.fMapped =  false;
-                       }
-                       result = noErr;
-                       break;
-
-               case kBBLMEscapeStringMessage:
-               case kBBLMAdjustEndMessage:
-               case kBBLMMapColorCodeToColorMessage:
-               case kBBLMSetCategoriesMessage:
-               case kBBLMMatchKeywordMessage:
-               {
-                       result = userCanceledErr;
-                       break;
-               }
-                       
-               default:
-               {
-                       result = paramErr;
-                       break;
-               }
-       }
-       return result;  
-}
\ No newline at end of file
diff --git a/Mac/Contrib/BBPy.lm/PythonBBLM.txt b/Mac/Contrib/BBPy.lm/PythonBBLM.txt
deleted file mode 100644 (file)
index c43727a..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-This is the Python Language Module for BBEdit.
-
-This software is a plugin to  Bare Bones Software's BBEdit 6.0.2 (or more), designed to make editing & browsing Python Language files easer.
-
-It parses any file ending in .py (or extentions of your choice.) providing BBEdit with the information BBEdit needs to provide services for python files similar to those it provides for 'C'. Namely: syntax coloring and populating BBEdit's '\9f' popup menu with file's functions and classes.
-
-This Plug-in needs to be placed in your :BBEdit 6.0:BBEdit Support:Language Modules: folder.
-
-If you wish, I have no objections to redistributing it in whole or in part, modify it, or beating small fury animals to death with rolled up printouts of the source code.
-
-Christopher Stern
-cistern@earthlink.net
\ No newline at end of file
diff --git a/Mac/Contrib/BBPy/PythonSlave.py b/Mac/Contrib/BBPy/PythonSlave.py
deleted file mode 100644 (file)
index cc63e1d..0000000
+++ /dev/null
@@ -1,129 +0,0 @@
-"""PythonSlave.py
-An application that responds to three types of apple event: 
-       'pyth'/'EXEC':  execute direct parameter as Python
-       'aevt', 'quit': quit
-       'aevt', 'odoc': perform python scripts
-
-Copyright Â© 1996, Just van Rossum, Letterror
-"""
-
-__version__ = "0.1.3"
-
-import FrameWork
-import sys
-import traceback
-import aetools
-import string
-import AE
-import EasyDialogs
-import os
-import Qd
-from Types import *
-from Events import charCodeMask, cmdKey
-import MacOS
-import Evt
-
-def dummyfunc(): pass
-
-modulefilename = dummyfunc.func_code.co_filename
-
-def Interact(timeout = 50000000):                      # timeout after 10 days...
-       AE.AEInteractWithUser(timeout)
-
-
-class PythonSlave(FrameWork.Application):
-       def __init__(self):
-               FrameWork.Application.__init__(self)
-               AE.AEInstallEventHandler('pyth', 'EXEC', ExecHandler)
-               AE.AEInstallEventHandler('aevt', 'quit', QuitHandler)
-               AE.AEInstallEventHandler('aevt', 'odoc', OpenDocumentHandler)
-       
-       def makeusermenus(self):
-               self.filemenu = m = FrameWork.Menu(self.menubar, "File")
-               self._quititem = FrameWork.MenuItem(m, "Quit", "Q", self._quit)
-       
-       def do_kHighLevelEvent(self, event):
-               (what, message, when, where, modifiers) = event
-               try:
-                       AE.AEProcessAppleEvent(event)
-               except AE.Error, detail:
-                       print "Apple Event was not handled, error:", detail
-       
-       def do_key(self, event):
-               (what, message, when, where, modifiers) = event
-               c = chr(message & charCodeMask)
-               if modifiers & cmdKey and c == '.':
-                       return
-               FrameWork.Application.do_key(self, event)
-       
-       def idle(self, event):
-               Qd.InitCursor()
-       
-       def quit(self, *args):
-               raise self
-       
-       def getabouttext(self):
-               return "About PythonSlave\8a"
-       
-       def do_about(self, id, item, window, event):
-               EasyDialogs.Message("PythonSlave " + __version__ + "\rCopyright Â© 1996, Letterror, JvR")
-       
-
-def ExecHandler(theAppleEvent, theReply):
-       parameters, args = aetools.unpackevent(theAppleEvent)
-       if parameters.has_key('----'):
-               if parameters.has_key('NAME'):
-                       print '--- executing "' + parameters['NAME'] + '" ---'
-               else:
-                       print '--- executing "<unknown>" ---'
-               stuff = parameters['----']
-               MyExec(stuff + "\n")                    # execute input
-               print '--- done ---'
-       return 0
-
-def MyExec(stuff):
-       stuff = string.splitfields(stuff, '\r') # convert return chars
-       stuff = string.joinfields(stuff, '\n')  # to newline chars
-       Interact()
-       saveyield = MacOS.EnableAppswitch(1)
-       try:
-               exec stuff in {}
-       except:
-               MacOS.EnableAppswitch(saveyield)
-               traceback.print_exc()
-       MacOS.EnableAppswitch(saveyield)
-
-def OpenDocumentHandler(theAppleEvent, theReply):
-       parameters, args = aetools.unpackevent(theAppleEvent)
-       docs = parameters['----']
-       if type(docs) <> ListType:
-               docs = [docs]
-       for doc in docs:
-               fss, a = doc.Resolve()
-               path = fss.as_pathname()
-               if path <> modulefilename:
-                       MyExecFile(path)
-       return 0
-
-def MyExecFile(path):
-       saveyield = MacOS.EnableAppswitch(1)
-       savewd = os.getcwd()
-       os.chdir(os.path.split(path)[0])
-       print '--- Executing file "' + os.path.split(path)[1] + '"'
-       try:
-               execfile(path, {"__name__": "__main__"})
-       except:
-               traceback.print_exc()
-               MacOS.EnableAppswitch(saveyield)
-       MacOS.EnableAppswitch(saveyield)
-       os.chdir(savewd)
-       print "--- done ---"
-
-def QuitHandler(theAppleEvent, theReply):
-       slave.quit()
-       return 0
-
-
-slave = PythonSlave()
-print "PythonSlave", __version__, "ready."
-slave.mainloop()
diff --git a/Mac/Contrib/PythonScript/ReadMe.txt b/Mac/Contrib/PythonScript/ReadMe.txt
deleted file mode 100644 (file)
index 3518423..0000000
+++ /dev/null
@@ -1,86 +0,0 @@
-
-PythonScript
-------------
-v0.5 beta 1 24/04/98
-
-author: Bill Bedford, <billb@mousa.demon.co.uk>
-
-This suite of modules is a first attempt at writing a more user friendly 
-python/appleevent interface. The files in the suite are:
-
-PythonScript
-------------
-
-Loads three dictionaries generated by getaete into __dict__'s of three 
-classes and thus gives us direct assess to all the methods in the aete.  
-Each method now contains all the information needed to build apple events.
-
-The general usage is
-
->>>PythonScript.PsScript(SIGNATURE, TIMEOUT, IGNORING) 
-
-where 
-SIGNATURE is the target application
-TIMEOUT is in ticks
-and IGNORING is a boolean and determines whether the script waits for a reply 
-from the target before going on to the next event 
-
->>>PythonScript.PyScript(Event, Object, keywdarg1..., keywdarg2...etc)
-
-Object is a appleevent object specifier and is of the form
-
-PythonScript.PsClass.Class1(arg).Class2(arg)\8a.Property()
-
-All applescript event, class and property names are capitalised to 
-distinguish them from python methods.
-
-getaete
--------
-
-Reads the aete of the target application and returns it as a list of three 
-dictionaries, which represent all the events, properties and enumeration in 
-the aete.  (the fourth dictionary, comparisons, has never been implemented 
-in applescript so I have not used it) It also reads the applescript aeut 
-and adds any suites that are missing (ie where the application author has 
-set his suite to inherit from the aeut.)  and the applescript suite, which 
-gives the language methods
-
-printaete
----------
-
-Produces a text file with the aete set out in a human readable form, 
-similar to the Open Dictionary command in the applescript editor.
-
-
-baetools, baepack, baetypes
----------------------------
-
-These are direct equivalents of aetools, aepack, aetypes in the standard 
-distribution.  Some methods and classes have been enhanced others are 
-redundant
-
-PyScriptTest, testeudora
-------------------------
-
-A couple of test scripts.  Testeudora is an updated version of the one in 
-the standard distribution.
-        
-        
-        
-        
-        
-Still To Do (in no particular order)
------------
-
-These modules are much slower than applescript.  I believe they could be 
-made faster by rewriting the aete parser in getaete and/or by putting in 
-some form of persistent storage so that the class dictionaries can be cached.
-        
-The parsing of the appleevent replies need rewriting.
-
-Support for the use of scripting additions.
-
-A Python aeut needs to be written, much of the applescript one is redundant 
-in python.
-
-Probably a few other things I haven't thought of yet.
diff --git a/Mac/Demo/applescript/Disk_Copy/Special_Events.py b/Mac/Demo/applescript/Disk_Copy/Special_Events.py
deleted file mode 100644 (file)
index 9538706..0000000
+++ /dev/null
@@ -1,424 +0,0 @@
-"""Suite Special Events: Commands for mounting Disk Copy images
-Level 1, version 1
-
-Generated from Macintosh HD:Hulpprogramma's:Disk Copy
-AETE/AEUT resource version 1/0, language 0, script 0
-"""
-
-import aetools
-import MacOS
-
-_code = 'ddsk'
-
-class Special_Events_Events:
-
-       _argmap_mount = {
-               'access_mode' : 'Acss',
-               'checksum_verification' : 'VChk',
-               'signature_verification' : 'VSig',
-               'RAM_caching' : 'Cach',
-       }
-
-       def mount(self, _object, _attributes={}, **_arguments):
-               """mount: Mounts an Disk Copy image as a disk volume
-               Required argument: a reference to the disk image to be mounted
-               Keyword argument access_mode: the access mode for mounted volume (default is "any", i.e. best possible)
-               Keyword argument checksum_verification: Verify the checksum before mounting?
-               Keyword argument signature_verification: Verify the DigiSign\81 signature before mounting?
-               Keyword argument RAM_caching: Cache the disk image in RAM? (if omitted, don't cache)
-               Keyword argument _attributes: AppleEvent attribute dictionary
-               Returns: a reference to mounted disk
-               """
-               _code = 'ddsk'
-               _subcode = 'Moun'
-
-               aetools.keysubst(_arguments, self._argmap_mount)
-               _arguments['----'] = _object
-
-               aetools.enumsubst(_arguments, 'Acss', _Enum_Acss)
-               aetools.enumsubst(_arguments, 'VChk', _Enum_bool)
-               aetools.enumsubst(_arguments, 'VSig', _Enum_bool)
-               aetools.enumsubst(_arguments, 'Cach', _Enum_bool)
-
-               _reply, _arguments, _attributes = self.send(_code, _subcode,
-                               _arguments, _attributes)
-               if _arguments.has_key('errn'):
-                       raise aetools.Error, aetools.decodeerror(_arguments)
-               # XXXX Optionally decode result
-               if _arguments.has_key('----'):
-                       return _arguments['----']
-
-       _argmap_execute_DiskScript = {
-               'checksum_verification' : 'VChk',
-               'signature_verification' : 'VSig',
-       }
-
-       def execute_DiskScript(self, _object, _attributes={}, **_arguments):
-               """execute DiskScript: Executes a Disk Copy-specific DiskScript
-               Required argument: a reference to the DiskScript to execute
-               Keyword argument checksum_verification: Should checksums be verified when mounting images referenced in the DiskScript?
-               Keyword argument signature_verification: Should the DigiSign\81 signature of the DiskScript and the images it references be verified?
-               Keyword argument _attributes: AppleEvent attribute dictionary
-               """
-               _code = 'ddsk'
-               _subcode = 'XEQd'
-
-               aetools.keysubst(_arguments, self._argmap_execute_DiskScript)
-               _arguments['----'] = _object
-
-               aetools.enumsubst(_arguments, 'VChk', _Enum_bool)
-               aetools.enumsubst(_arguments, 'VSig', _Enum_bool)
-
-               _reply, _arguments, _attributes = self.send(_code, _subcode,
-                               _arguments, _attributes)
-               if _arguments.has_key('errn'):
-                       raise aetools.Error, aetools.decodeerror(_arguments)
-               # XXXX Optionally decode result
-               if _arguments.has_key('----'):
-                       return _arguments['----']
-
-       def unmount(self, _object, _attributes={}, **_arguments):
-               """unmount: Unmount and eject (if necessary) a volume
-               Required argument: a reference to disk to be unmounted (and ejected)
-               Keyword argument _attributes: AppleEvent attribute dictionary
-               """
-               _code = 'ddsk'
-               _subcode = 'Umnt'
-
-               if _arguments: raise TypeError, 'No optional args expected'
-               _arguments['----'] = _object
-
-
-               _reply, _arguments, _attributes = self.send(_code, _subcode,
-                               _arguments, _attributes)
-               if _arguments.has_key('errn'):
-                       raise aetools.Error, aetools.decodeerror(_arguments)
-               # XXXX Optionally decode result
-               if _arguments.has_key('----'):
-                       return _arguments['----']
-
-       _argmap_create = {
-               'saving_as' : 'SvAs',
-               'logical_blocks' : 'Blks',
-               'zeroing' : 'Zero',
-               'leave_image_mounted' : 'Moun',
-               'filesystem' : 'Fsys',
-       }
-
-       def create(self, _object, _attributes={}, **_arguments):
-               """create: Create a new Disk Copy document
-               Required argument: the name of the volume to create
-               Keyword argument saving_as: the disk image to be created
-               Keyword argument logical_blocks: the number of logical blocks
-               Keyword argument zeroing: Should all blocks on the disk be set to zero?
-               Keyword argument leave_image_mounted: Should the image be mounted after it is created?
-               Keyword argument filesystem: file system to use (Mac OS Standard/compatible, Mac OS Enhanced)
-               Keyword argument _attributes: AppleEvent attribute dictionary
-               Returns: a reference to newly created disk image (or newly mounted disk)
-               """
-               _code = 'ddsk'
-               _subcode = 'Crea'
-
-               aetools.keysubst(_arguments, self._argmap_create)
-               _arguments['----'] = _object
-
-               aetools.enumsubst(_arguments, 'SvAs', _Enum_fss_)
-               aetools.enumsubst(_arguments, 'Blks', _Enum_long)
-               aetools.enumsubst(_arguments, 'Zero', _Enum_bool)
-               aetools.enumsubst(_arguments, 'Moun', _Enum_bool)
-               aetools.enumsubst(_arguments, 'Fsys', _Enum_Fsys)
-
-               _reply, _arguments, _attributes = self.send(_code, _subcode,
-                               _arguments, _attributes)
-               if _arguments.has_key('errn'):
-                       raise aetools.Error, aetools.decodeerror(_arguments)
-               # XXXX Optionally decode result
-               if _arguments.has_key('----'):
-                       return _arguments['----']
-
-       def verify_checksum(self, _object, _attributes={}, **_arguments):
-               """verify checksum: Verify the checksum of a Disk Copy 4.2 or a Disk Copy 6.0 read-only document
-               Required argument: the disk image to be verified
-               Keyword argument _attributes: AppleEvent attribute dictionary
-               Returns: the result of the checksum verification
-               """
-               _code = 'ddsk'
-               _subcode = 'Vcrc'
-
-               if _arguments: raise TypeError, 'No optional args expected'
-               _arguments['----'] = _object
-
-
-               _reply, _arguments, _attributes = self.send(_code, _subcode,
-                               _arguments, _attributes)
-               if _arguments.has_key('errn'):
-                       raise aetools.Error, aetools.decodeerror(_arguments)
-               # XXXX Optionally decode result
-               if _arguments.has_key('----'):
-                       return _arguments['----']
-
-       def verify_signature(self, _object, _attributes={}, **_arguments):
-               """verify signature: Verify the DigiSign\81 signature for a Disk Copy document
-               Required argument: the disk image to be verified
-               Keyword argument _attributes: AppleEvent attribute dictionary
-               Returns: Is the DigiSign\81 signature valid?
-               """
-               _code = 'ddsk'
-               _subcode = 'Vsig'
-
-               if _arguments: raise TypeError, 'No optional args expected'
-               _arguments['----'] = _object
-
-
-               _reply, _arguments, _attributes = self.send(_code, _subcode,
-                               _arguments, _attributes)
-               if _arguments.has_key('errn'):
-                       raise aetools.Error, aetools.decodeerror(_arguments)
-               # XXXX Optionally decode result
-               if _arguments.has_key('----'):
-                       return _arguments['----']
-
-       _argmap_sign_image = {
-               'using_signer' : 'Sinr',
-       }
-
-       def sign_image(self, _object, _attributes={}, **_arguments):
-               """sign image: Add a DigiSign\81 signature to a Disk Copy document
-               Required argument: the disk image to be signed
-               Keyword argument using_signer: a reference to signer file to use
-               Keyword argument _attributes: AppleEvent attribute dictionary
-               """
-               _code = 'ddsk'
-               _subcode = 'Asig'
-
-               aetools.keysubst(_arguments, self._argmap_sign_image)
-               _arguments['----'] = _object
-
-               aetools.enumsubst(_arguments, 'Sinr', _Enum_alis)
-
-               _reply, _arguments, _attributes = self.send(_code, _subcode,
-                               _arguments, _attributes)
-               if _arguments.has_key('errn'):
-                       raise aetools.Error, aetools.decodeerror(_arguments)
-               # XXXX Optionally decode result
-               if _arguments.has_key('----'):
-                       return _arguments['----']
-
-       _argmap_create_a_floppy_from = {
-               'signature_verification' : 'VSig',
-               'erase_confirmation' : 'Cfrm',
-               'make_multiple_floppies' : 'Mult',
-       }
-
-       def create_a_floppy_from(self, _object, _attributes={}, **_arguments):
-               """create a floppy from: create a floppy disk from a Disk Copy document
-               Required argument: the disk image to make a floppy from
-               Keyword argument signature_verification: Should the DigiSign\81 signature be verified before creating a floppy disk?
-               Keyword argument erase_confirmation: Should the user be asked to confirm the erasure of the previous contents of floppy disks?
-               Keyword argument make_multiple_floppies: Should the user be prompted to create multiple floppy disks?
-               Keyword argument _attributes: AppleEvent attribute dictionary
-               """
-               _code = 'ddsk'
-               _subcode = 'Bfpy'
-
-               aetools.keysubst(_arguments, self._argmap_create_a_floppy_from)
-               _arguments['----'] = _object
-
-               aetools.enumsubst(_arguments, 'VSig', _Enum_bool)
-               aetools.enumsubst(_arguments, 'Cfrm', _Enum_bool)
-               aetools.enumsubst(_arguments, 'Mult', _Enum_bool)
-
-               _reply, _arguments, _attributes = self.send(_code, _subcode,
-                               _arguments, _attributes)
-               if _arguments.has_key('errn'):
-                       raise aetools.Error, aetools.decodeerror(_arguments)
-               # XXXX Optionally decode result
-               if _arguments.has_key('----'):
-                       return _arguments['----']
-
-       _argmap_check_image = {
-               'details' : 'ChDe',
-       }
-
-       def check_image(self, _object, _attributes={}, **_arguments):
-               """check image: Check the disk image¹s internal data structures for any inconsistencies.  Works on NDIF, Disk Copy 4.2, DART\81, or DiskSet images.
-               Required argument: the disk image to be verified
-               Keyword argument details: Should the disk image details be displayed?
-               Keyword argument _attributes: AppleEvent attribute dictionary
-               Returns: a record containing a boolean (true/false) value if the image passes consistency tests, and the numbers of warnings and errors
-               """
-               _code = 'ddsk'
-               _subcode = 'Chek'
-
-               aetools.keysubst(_arguments, self._argmap_check_image)
-               _arguments['----'] = _object
-
-               aetools.enumsubst(_arguments, 'ChDe', _Enum_bool)
-
-               _reply, _arguments, _attributes = self.send(_code, _subcode,
-                               _arguments, _attributes)
-               if _arguments.has_key('errn'):
-                       raise aetools.Error, aetools.decodeerror(_arguments)
-               # XXXX Optionally decode result
-               if _arguments.has_key('----'):
-                       return _arguments['----']
-
-       _argmap_segment_image = {
-               'segment_count' : 'SGCT',
-               'segment_size' : 'SGSZ',
-               'segment_name' : 'SGNM',
-               'image_ID' : 'SGID',
-       }
-
-       def segment_image(self, _object, _attributes={}, **_arguments):
-               """segment image: Segment a NDIF R/W or R/O image into smaller pieces
-               Required argument: the disk image to be segmented
-               Keyword argument segment_count: the number of image segments to create
-               Keyword argument segment_size: the size of image segments (in blocks) to create
-               Keyword argument segment_name: the root name for each image segment file
-               Keyword argument image_ID: string used to generate a unique image ID to group the segments
-               Keyword argument _attributes: AppleEvent attribute dictionary
-               Returns: a list of references to the image segments created
-               """
-               _code = 'ddsk'
-               _subcode = 'SGMT'
-
-               aetools.keysubst(_arguments, self._argmap_segment_image)
-               _arguments['----'] = _object
-
-
-               _reply, _arguments, _attributes = self.send(_code, _subcode,
-                               _arguments, _attributes)
-               if _arguments.has_key('errn'):
-                       raise aetools.Error, aetools.decodeerror(_arguments)
-               # XXXX Optionally decode result
-               if _arguments.has_key('----'):
-                       return _arguments['----']
-
-       _argmap_create_SMI = {
-               'source_images' : 'SMI1',
-               'launching_application' : 'SMI2',
-               'launching_document' : 'SMI3',
-               'version_string' : 'SMI4',
-               'checksum_verification' : 'VChk',
-               'signature_verification' : 'VSig',
-               'image_signing' : 'SImg',
-       }
-
-       def create_SMI(self, _object, _attributes={}, **_arguments):
-               """create SMI: Creates a self-mounting image (SMI) from a list of NDIF disk images
-               Required argument: the self-mounting image to create
-               Keyword argument source_images: a list of references to sources images
-               Keyword argument launching_application: the path to an application to launch
-               Keyword argument launching_document: the path to a document to open
-               Keyword argument version_string: sets the 'vers' 1 resource of the self-mounting image
-               Keyword argument checksum_verification: Should the checksum of the source images be verified before creating the SMI?
-               Keyword argument signature_verification: Should the DigiSign\81 signature of the source images be verified before creating the SMI?
-               Keyword argument image_signing: Should the SMI be given a digital signature when it is created?
-               Keyword argument _attributes: AppleEvent attribute dictionary
-               Returns: a reference to the self-mounting image created
-               """
-               _code = 'ddsk'
-               _subcode = 'MSMI'
-
-               aetools.keysubst(_arguments, self._argmap_create_SMI)
-               _arguments['----'] = _object
-
-               aetools.enumsubst(_arguments, 'VChk', _Enum_bool)
-               aetools.enumsubst(_arguments, 'VSig', _Enum_bool)
-               aetools.enumsubst(_arguments, 'SImg', _Enum_bool)
-
-               _reply, _arguments, _attributes = self.send(_code, _subcode,
-                               _arguments, _attributes)
-               if _arguments.has_key('errn'):
-                       raise aetools.Error, aetools.decodeerror(_arguments)
-               # XXXX Optionally decode result
-               if _arguments.has_key('----'):
-                       return _arguments['----']
-
-
-class Verify_Checksum_reply_record(aetools.ComponentItem):
-       """Verify Checksum reply record -  """
-       want = 'Rcrc'
-class validity(aetools.NProperty):
-       """validity - true if checksum is valid """
-       which = 'Vlid'
-       want = 'bool'
-class expected_checksum(aetools.NProperty):
-       """expected checksum - checksum value stored in the image header (in hexadecimal) """
-       which = 'crcE'
-       want = 'TEXT'
-class calculated_checksum(aetools.NProperty):
-       """calculated checksum - checksum value actually calculated (in hexadecimal) """
-       which = 'crcA'
-       want = 'TEXT'
-
-class Check_Image_reply_record(aetools.ComponentItem):
-       """Check Image reply record -  """
-       want = 'Rchk'
-class consistency(aetools.NProperty):
-       """consistency - Does the image pass consistency checks? """
-       which = 'Rch1'
-       want = 'bool'
-class error_count(aetools.NProperty):
-       """error count - the number of errors recorded """
-       which = 'Rch2'
-       want = 'long'
-class warning_count(aetools.NProperty):
-       """warning count - the number of warnings recorded """
-       which = 'Rch3'
-       want = 'long'
-Verify_Checksum_reply_record._propdict = {
-       'validity' : validity,
-       'expected_checksum' : expected_checksum,
-       'calculated_checksum' : calculated_checksum,
-}
-Verify_Checksum_reply_record._elemdict = {
-}
-Check_Image_reply_record._propdict = {
-       'consistency' : consistency,
-       'error_count' : error_count,
-       'warning_count' : warning_count,
-}
-Check_Image_reply_record._elemdict = {
-}
-_Enum_Acss = {
-       'read_and_write' : 'RdWr',      # read/write access
-       'read_only' : 'Rdxx',   # read-only access
-       'any' : 'Anyx', # best possible access
-}
-
-_Enum_Fsys = {
-       'Mac_OS_Standard' : 'Fhfs',     # classic HFS file system
-       'compatible_Mac_OS_Extended' : 'Fhf+',  # new HFS+ file system
-}
-
-_Enum_alis = None # XXXX enum alis not found!!
-_Enum_fss_ = None # XXXX enum fss  not found!!
-_Enum_long = None # XXXX enum long not found!!
-_Enum_bool = None # XXXX enum bool not found!!
-
-#
-# Indices of types declared in this module
-#
-_classdeclarations = {
-       'Rchk' : Check_Image_reply_record,
-       'Rcrc' : Verify_Checksum_reply_record,
-}
-
-_propdeclarations = {
-       'crcE' : expected_checksum,
-       'Rch2' : error_count,
-       'crcA' : calculated_checksum,
-       'Rch3' : warning_count,
-       'Vlid' : validity,
-       'Rch1' : consistency,
-}
-
-_compdeclarations = {
-}
-
-_enumdeclarations = {
-       'Acss' : _Enum_Acss,
-       'Fsys' : _Enum_Fsys,
-}
diff --git a/Mac/Demo/applescript/Disk_Copy/Standard_Suite.py b/Mac/Demo/applescript/Disk_Copy/Standard_Suite.py
deleted file mode 100644 (file)
index 1211ec1..0000000
+++ /dev/null
@@ -1,477 +0,0 @@
-"""Suite Standard Suite: Common terms for most applications
-Level 1, version 1
-
-Generated from Macintosh HD:Hulpprogramma's:Disk Copy
-AETE/AEUT resource version 1/0, language 0, script 0
-"""
-
-import aetools
-import MacOS
-
-_code = 'Core'
-
-class Standard_Suite_Events:
-
-       _argmap_save = {
-               '_in' : 'kfil',
-               'using_format' : 'SvAs',
-               'checksum_verification' : 'VChk',
-               'signature_verification' : 'VSig',
-               'image_signing' : 'SImg',
-               'leave_image_mounted' : 'Moun',
-               'percent_free_space' : 'Slop',
-               'logical_blocks' : 'Blks',
-               'zeroing' : 'Zero',
-       }
-
-       def save(self, _object, _attributes={}, **_arguments):
-               """save: Save an object
-               Required argument: the source object
-               Keyword argument _in: the target object
-               Keyword argument using_format: the format for the target
-               Keyword argument checksum_verification: Should the checksum be verified before saving?
-               Keyword argument signature_verification: Should the DigiSign\81 signature be verified before saving?
-               Keyword argument image_signing: Should the image be signed?
-               Keyword argument leave_image_mounted: Should the image be mounted after saving?
-               Keyword argument percent_free_space: percent free space to reserve (for image folder operation, 0-255%)
-               Keyword argument logical_blocks: number of logical blocks in the image (for image folder operation)
-               Keyword argument zeroing: Should all the blocks in the image be set to zeros? (for image folder operation)
-               Keyword argument _attributes: AppleEvent attribute dictionary
-               Returns: the result of the save operation
-               """
-               _code = 'core'
-               _subcode = 'save'
-
-               aetools.keysubst(_arguments, self._argmap_save)
-               _arguments['----'] = _object
-
-               aetools.enumsubst(_arguments, 'kfil', _Enum_obj_)
-               aetools.enumsubst(_arguments, 'SvAs', _Enum_SvAs)
-               aetools.enumsubst(_arguments, 'VChk', _Enum_bool)
-               aetools.enumsubst(_arguments, 'VSig', _Enum_bool)
-               aetools.enumsubst(_arguments, 'SImg', _Enum_bool)
-               aetools.enumsubst(_arguments, 'Moun', _Enum_bool)
-               aetools.enumsubst(_arguments, 'Slop', _Enum_long)
-               aetools.enumsubst(_arguments, 'Blks', _Enum_long)
-               aetools.enumsubst(_arguments, 'Zero', _Enum_bool)
-
-               _reply, _arguments, _attributes = self.send(_code, _subcode,
-                               _arguments, _attributes)
-               if _arguments.has_key('errn'):
-                       raise aetools.Error, aetools.decodeerror(_arguments)
-               # XXXX Optionally decode result
-               if _arguments.has_key('----'):
-                       return _arguments['----']
-
-       def do_script(self, _object, _attributes={}, **_arguments):
-               """do script: Execute an attached script located in the folder "Scripts"
-               Required argument: the script to be executed
-               Keyword argument _attributes: AppleEvent attribute dictionary
-               """
-               _code = 'core'
-               _subcode = 'dosc'
-
-               if _arguments: raise TypeError, 'No optional args expected'
-               _arguments['----'] = _object
-
-
-               _reply, _arguments, _attributes = self.send(_code, _subcode,
-                               _arguments, _attributes)
-               if _arguments.has_key('errn'):
-                       raise aetools.Error, aetools.decodeerror(_arguments)
-               # XXXX Optionally decode result
-               if _arguments.has_key('----'):
-                       return _arguments['----']
-
-
-class application(aetools.ComponentItem):
-       """application - The Disk Copy application """
-       want = 'capp'
-class version(aetools.NProperty):
-       """version - the version of this application """
-       which = 'vers'
-       want = 'vers'
-class name(aetools.NProperty):
-       """name - the name of this application """
-       which = 'pnam'
-       want = 'TEXT'
-class comment(aetools.NProperty):
-       """comment - the comment associated with the application """
-       which = 'comt'
-       want = 'TEXT'
-class driver_version(aetools.NProperty):
-       """driver version - the version of the disk image driver """
-       which = 'dVer'
-       want = 'vers'
-class nonejectable_mode(aetools.NProperty):
-       """nonejectable mode - Should mounted images be non-ejectable? """
-       which = 'otto'
-       want = 'bool'
-class save_log_file(aetools.NProperty):
-       """save log file - Should the log file be saved on disk? """
-       which = 'PSaL'
-       want = 'bool'
-class use_speech(aetools.NProperty):
-       """use speech - Should Disk Copy use spoken feedback? """
-       which = 'PTlk'
-       want = 'bool'
-class smart_Save_As(aetools.NProperty):
-       """smart Save As - Should the Save As... dialog box automatically go to the right folder? """
-       which = 'PSSP'
-       want = 'bool'
-class checksum_verification(aetools.NProperty):
-       """checksum verification - Should image checksums be verified? """
-       which = 'PVeC'
-       want = 'bool'
-class signature_verification(aetools.NProperty):
-       """signature verification - Should digital signatures be verified? """
-       which = 'PVeS'
-       want = 'bool'
-class exclude_DiskScripts(aetools.NProperty):
-       """exclude DiskScripts - Should images referenced in DiskScripts/DiskSets be excluded from verification? """
-       which = 'PExD'
-       want = 'bool'
-class exclude_remote_images(aetools.NProperty):
-       """exclude remote images - Should images that are located on network volumes be excluded from verification? """
-       which = 'PExR'
-       want = 'bool'
-class image_signing(aetools.NProperty):
-       """image signing - Should images be signed with a digital signature? """
-       which = 'PSiI'
-       want = 'bool'
-class leave_image_mounted(aetools.NProperty):
-       """leave image mounted - Should images be mounted after they are created? """
-       which = 'PMoA'
-       want = 'bool'
-class erase_confirmation(aetools.NProperty):
-       """erase confirmation - Should the user be required to confirm commands that erase disks? """
-       which = 'PCoE'
-       want = 'bool'
-class zeroing(aetools.NProperty):
-       """zeroing - Should all blocks of a new image be set to zero? """
-       which = 'PZeB'
-       want = 'bool'
-class default_create_size(aetools.NProperty):
-       """default create size - the default size for a new image, in blocks (512 bytes per block) """
-       which = 'PDeS'
-       want = 'long'
-class default_create_name(aetools.NProperty):
-       """default create name - the default volume name for a new image """
-       which = 'PDeN'
-       want = 'TEXT'
-class make_multiple_floppies(aetools.NProperty):
-       """make multiple floppies - Should the user be prompted to make multiple floppy disk images at a time? """
-       which = 'PBuM'
-       want = 'bool'
-class auto_image_upon_insert(aetools.NProperty):
-       """auto image upon insert - Should a newly-inserted disk automatically be processed into an image? """
-       which = 'Paim'
-       want = 'bool'
-class eject_after_auto_image(aetools.NProperty):
-       """eject after auto image - Should auto-imaged disks be ejected afterwards? """
-       which = 'Pejc'
-       want = 'bool'
-class auto_copy_upon_floppy_insert(aetools.NProperty):
-       """auto copy upon floppy insert - Instead of auto-imaging, should newly-inserted floppy disks be copied? """
-       which = 'Pcpf'
-       want = 'bool'
-class volume_suffix(aetools.NProperty):
-       """volume suffix - the default volume name suffix """
-       which = 'PDiE'
-       want = 'TEXT'
-class image_suffix(aetools.NProperty):
-       """image suffix - the default image name suffix """
-       which = 'PImE'
-       want = 'TEXT'
-class default_file_system(aetools.NProperty):
-       """default file system - the default file system type for new blank images """
-       which = 'Pfsy'
-       want = 'Fsys'
-class default_image_format(aetools.NProperty):
-       """default image format - the default image file format """
-       which = 'Pdfm'
-       want = 'SvAs'
-
-class disk(aetools.ComponentItem):
-       """disk - A mounted volume """
-       want = 'Disk'
-
-name = name
-
-comment = comment
-class locked(aetools.NProperty):
-       """locked - Is the disk locked? """
-       which = 'islk'
-       want = 'bool'
-class creation_date(aetools.NProperty):
-       """creation date - the creation date of disk """
-       which = 'ascd'
-       want = 'ldt '
-class modification_date(aetools.NProperty):
-       """modification date - the modification date of disk """
-       which = 'asmo'
-       want = 'ldt '
-class crc32_checksum(aetools.NProperty):
-       """crc32 checksum - the crc-32 checksum of the disk """
-       which = 'Xcrc'
-       want = 'TEXT'
-class disk_copy_4_2e_2_checksum(aetools.NProperty):
-       """disk copy 4.2 checksum - the Disk Copy 4.2 checksum of the disk """
-       which = 'Xc42'
-       want = 'TEXT'
-class block_count(aetools.NProperty):
-       """block count - the number of blocks on disk """
-       which = 'Xblk'
-       want = 'long'
-class file_system(aetools.NProperty):
-       """file system - the file system used on disk """
-       which = 'Xfsi'
-       want = 'TEXT'
-
-class folder(aetools.ComponentItem):
-       """folder - A folder or directory on a disk """
-       want = 'Fold'
-
-name = name
-
-comment = comment
-
-creation_date = creation_date
-
-modification_date = modification_date
-
-class disk_image(aetools.ComponentItem):
-       """disk image - A disk image file """
-       want = 'DImg'
-
-name = name
-
-comment = comment
-
-locked = locked
-
-creation_date = creation_date
-
-modification_date = modification_date
-class file_format(aetools.NProperty):
-       """file format - the format of the disk image file """
-       which = 'Ifmt'
-       want = 'TEXT'
-class signed(aetools.NProperty):
-       """signed - Does the disk image have a DigiSign\81 signature? """
-       which = 'Isin'
-       want = 'bool'
-class compressed(aetools.NProperty):
-       """compressed - Is the disk image compressed? """
-       which = 'Icom'
-       want = 'bool'
-class segmented(aetools.NProperty):
-       """segmented - Is the disk image segmented? """
-       which = 'Iseg'
-       want = 'bool'
-class segments(aetools.NProperty):
-       """segments - a list of references to other segments that make up a complete image """
-       which = 'Isg#'
-       want = 'fss '
-class disk_name(aetools.NProperty):
-       """disk name - the name of the disk this image represents """
-       which = 'Idnm'
-       want = 'TEXT'
-
-crc32_checksum = crc32_checksum
-
-disk_copy_4_2e_2_checksum = disk_copy_4_2e_2_checksum
-
-block_count = block_count
-
-file_system = file_system
-class data_fork_size(aetools.NProperty):
-       """data fork size - the size (in bytes) of the data fork of the disk image """
-       which = 'Idfk'
-       want = 'long'
-class resource_fork_size(aetools.NProperty):
-       """resource fork size - the size (in bytes) of the resource fork of the disk image """
-       which = 'Irfk'
-       want = 'long'
-
-class Save_reply_record(aetools.ComponentItem):
-       """Save reply record - Result from the save operation """
-       want = 'cpyR'
-class resulting_target_object(aetools.NProperty):
-       """resulting target object - a reference to the target object after it has been saved """
-       which = 'rcpO'
-       want = 'obj '
-class copy_type(aetools.NProperty):
-       """copy type - the way in which the target object was saved """
-       which = 'rcpT'
-       want = 'rcpT'
-application._propdict = {
-       'version' : version,
-       'name' : name,
-       'comment' : comment,
-       'driver_version' : driver_version,
-       'nonejectable_mode' : nonejectable_mode,
-       'save_log_file' : save_log_file,
-       'use_speech' : use_speech,
-       'smart_Save_As' : smart_Save_As,
-       'checksum_verification' : checksum_verification,
-       'signature_verification' : signature_verification,
-       'exclude_DiskScripts' : exclude_DiskScripts,
-       'exclude_remote_images' : exclude_remote_images,
-       'image_signing' : image_signing,
-       'leave_image_mounted' : leave_image_mounted,
-       'erase_confirmation' : erase_confirmation,
-       'zeroing' : zeroing,
-       'default_create_size' : default_create_size,
-       'default_create_name' : default_create_name,
-       'make_multiple_floppies' : make_multiple_floppies,
-       'auto_image_upon_insert' : auto_image_upon_insert,
-       'eject_after_auto_image' : eject_after_auto_image,
-       'auto_copy_upon_floppy_insert' : auto_copy_upon_floppy_insert,
-       'volume_suffix' : volume_suffix,
-       'image_suffix' : image_suffix,
-       'default_file_system' : default_file_system,
-       'default_image_format' : default_image_format,
-}
-application._elemdict = {
-}
-disk._propdict = {
-       'name' : name,
-       'comment' : comment,
-       'locked' : locked,
-       'creation_date' : creation_date,
-       'modification_date' : modification_date,
-       'crc32_checksum' : crc32_checksum,
-       'disk_copy_4_2e_2_checksum' : disk_copy_4_2e_2_checksum,
-       'block_count' : block_count,
-       'file_system' : file_system,
-}
-disk._elemdict = {
-}
-folder._propdict = {
-       'name' : name,
-       'comment' : comment,
-       'creation_date' : creation_date,
-       'modification_date' : modification_date,
-}
-folder._elemdict = {
-}
-disk_image._propdict = {
-       'name' : name,
-       'comment' : comment,
-       'locked' : locked,
-       'creation_date' : creation_date,
-       'modification_date' : modification_date,
-       'file_format' : file_format,
-       'signed' : signed,
-       'compressed' : compressed,
-       'segmented' : segmented,
-       'segments' : segments,
-       'disk_name' : disk_name,
-       'crc32_checksum' : crc32_checksum,
-       'disk_copy_4_2e_2_checksum' : disk_copy_4_2e_2_checksum,
-       'block_count' : block_count,
-       'file_system' : file_system,
-       'data_fork_size' : data_fork_size,
-       'resource_fork_size' : resource_fork_size,
-}
-disk_image._elemdict = {
-}
-Save_reply_record._propdict = {
-       'resulting_target_object' : resulting_target_object,
-       'copy_type' : copy_type,
-}
-Save_reply_record._elemdict = {
-}
-_Enum_UIAc = {
-       'never_interact' : 'eNvr',      # Don¹t allow any interaction at all
-       'interact_with_self' : 'eInS',  # Only allow interaction from internal events
-       'interact_with_local' : 'eInL', # Allow interaction from any event originating on this machine
-       'interact_with_all' : 'eInA',   # Allow interaction from network events
-}
-
-_Enum_SvAs = {
-       'NDIF_RW' : 'RdWr',     # read/write NDIF disk image
-       'NDIF_RO' : 'Rdxx',     # read-only NDIF disk image
-       'NDIF_Compressed' : 'ROCo',     # compressed NDIF disk image
-       'Disk_Copy_4_2e_2' : 'DC42',    # Disk Copy 4.2 disk image
-}
-
-_Enum_rcpT = {
-       'block_disk_copy' : 'cpBl',     # block-by-block disk-level copy
-       'files_and_file_ID_copy' : 'cpID',      # all files including desktop databases and file ID¹s
-       'files_and_desktop_info' : 'cpDT',      # all files and most desktop information
-       'files_only' : 'cpFI',  # all files but no desktop information
-       'disk_image_conversion' : 'cpCV',       # disk image format conversion
-       'disk_image_creation' : 'cpCR', # disk image creation
-}
-
-_Enum_long = None # XXXX enum long not found!!
-_Enum_bool = None # XXXX enum bool not found!!
-_Enum_obj_ = None # XXXX enum obj  not found!!
-
-#
-# Indices of types declared in this module
-#
-_classdeclarations = {
-       'DImg' : disk_image,
-       'capp' : application,
-       'Disk' : disk,
-       'Fold' : folder,
-       'cpyR' : Save_reply_record,
-}
-
-_propdeclarations = {
-       'Xcrc' : crc32_checksum,
-       'PDeS' : default_create_size,
-       'Idnm' : disk_name,
-       'PSSP' : smart_Save_As,
-       'Pcpf' : auto_copy_upon_floppy_insert,
-       'pnam' : name,
-       'Isin' : signed,
-       'otto' : nonejectable_mode,
-       'PExD' : exclude_DiskScripts,
-       'Iseg' : segmented,
-       'islk' : locked,
-       'asmo' : modification_date,
-       'PTlk' : use_speech,
-       'Pfsy' : default_file_system,
-       'PVeC' : checksum_verification,
-       'Xc42' : disk_copy_4_2e_2_checksum,
-       'rcpO' : resulting_target_object,
-       'Paim' : auto_image_upon_insert,
-       'comt' : comment,
-       'PCoE' : erase_confirmation,
-       'dVer' : driver_version,
-       'PDeN' : default_create_name,
-       'PBuM' : make_multiple_floppies,
-       'rcpT' : copy_type,
-       'PDiE' : volume_suffix,
-       'Ifmt' : file_format,
-       'Pdfm' : default_image_format,
-       'ascd' : creation_date,
-       'Pejc' : eject_after_auto_image,
-       'PZeB' : zeroing,
-       'PExR' : exclude_remote_images,
-       'PImE' : image_suffix,
-       'PVeS' : signature_verification,
-       'PSaL' : save_log_file,
-       'Xblk' : block_count,
-       'PMoA' : leave_image_mounted,
-       'Isg#' : segments,
-       'Irfk' : resource_fork_size,
-       'Icom' : compressed,
-       'Xfsi' : file_system,
-       'Idfk' : data_fork_size,
-       'vers' : version,
-       'PSiI' : image_signing,
-}
-
-_compdeclarations = {
-}
-
-_enumdeclarations = {
-       'SvAs' : _Enum_SvAs,
-       'UIAc' : _Enum_UIAc,
-       'rcpT' : _Enum_rcpT,
-}
diff --git a/Mac/Demo/building.html b/Mac/Demo/building.html
deleted file mode 100644 (file)
index 716de8b..0000000
+++ /dev/null
@@ -1,512 +0,0 @@
-<HTML>
-<HEAD>
-<TITLE>Building Mac Python from source</TITLE>
-</HEAD>
-<BODY>
-<H1>Building Mac Python from source</H1>
-<HR>
-
-<B>Note</B>: This document is still for Python 2.0. It is wildly incorrect.
-<p>
-
-This document explains how to build MacPython from source. This is
-necessary if you want to make modifications to the Python core. Building
-Python is not something to be undertaken lightly, you need a reasonable
-working knowledge of the CodeWarrior development environment, a good net
-connection and probably quite some time too. <p>
-
-The information density in this file is high, so you should probably
-print it and read it at your leasure. Most things are explained only
-once (and probably in the wrong place:-). <p>
-
-<blockquote>
-First a warning: this information may become outdated if a new CodeWarrior is
-released after MacPython. The 
-<a href="http://www.cwi.nl/~jack/macpython.html">MacPython homepage</a> will
-hopefully have updated instructions in that case.
-</blockquote>
-
-I am very interested in feedback on this document, send your
-comments to the <A
-HREF="http://www.python.org/sigs/pythonmac-sig/">Mac Python Special
-Interest Group</A>.
-
-<H2>What you need.</H2>
-
-The following things you definitely need:
-
-<UL>
-
-<LI> You need a MacPython source distribution, of course. You can
-obtain one from <A HREF="ftp://ftp.cwi.nl/pub/jack/python/mac">
-ftp://ftp.cwi.nl/pub/jack/python/mac</A> or from the companion webpage
-at <A HREF="http://www.cwi.nl/~jack/macpython.html">
-http://www.cwi.nl/~jack/macpython.html</A> (which has up-to-date links
-to the other packages needed too) and possibly also from the standard
-<A HREF="ftp://ftp.python.org/pub/python/mac">python.org ftp
-site</A>. <BR>
-
-A better alternative is to check the sources straight out of the CVS
-repository, see below. Most of the packages mentioned here are also
-available through CVS. Check the section on <a href="#cvs">CVS
-repository use</a> below.
-
-<LI> You need MetroWerks CodeWarrior. The current distribution has
-been built with CodeWarrior Pro 5.2. Ordering information is
-available on the <A HREF="http://www.metrowerks.com/">MetroWerks
-homepage</A>. Building Python with MPW or Think/Symantec C is
-probably impossible without major surgery.
-
-<LI> You need GUSI version 2, the Grand Unified Socket Interface, by
-Matthias Neeracher. The original GUSI is obtainable from <A
-HREF="ftp://gusi.sourceforge.net/pub/gusi/">
-ftp://gusi.sourceforge.net/pub/gusi/</A>. At
-the moment Python is built with a slightly modified version of GUSI
-2.1.1, so it may be better to check the <A
-HREF="http://www.cwi.nl/~jack/macpython.html">MacPython homepage</A>
-for a GUSI that is most easily used for building Python. 
-<br>
-
-The modified GUSI is also in the MacPython cvs source repository, in the
-directory <code>lib-src/GUSI2</code>. As GUSI is moving to sourceforge
-this info may be outdated by the time you read it so better check the
-MacPython homepage, probably.
-</UL>
-
-<A NAME="optional">The MacPython project files are configured to
-include a plethora of optional modules</A>, and these modules need a
-number of extra packages. To use the project files as-is you have to
-download these packages too. Python has all such modules as
-dynamically loaded modules, so if you don't need a certain package it
-suffices to just refrain from builing the extension module.
-Here are the locations for the various things
-you need:
-
-<UL>
-
-<LI> Tcl and Tk are in a sad state on the Mac, the standard source distributions
-simply don't compile, so I have created a distribution especially for use
-with MacPython. 
-See the section on <A HREF="#tcltk">building Tcl/Tk Python</A>
-below.
-
-<LI> Waste, a TextEdit replacement written by Marco Piovanelli, <A
-HREF="mailto:piovanel@kagi.com">&lt;piovanel@kagi.com&gt;</A>.  Python
-was built using version 1.3, which you can obtain from <A
-HREF="http://www.boingo.com/waste">&lt;http://www.boingo.com/waste&gt;</A>
-and various other places.
-
-<LI> Gdbm library for the Mac. Available from Jack's Mac software page at
-<A HREF="http://www.cwi.nl/~jack/macsoftware.html">
-http://www.cwi.nl/~jack/macsoftware.html</A> and <A HREF="ftp://ftp.cwi.nl/pub/jack/mac">
-ftp://ftp.cwi.nl/pub/jack/mac</A>. Also in the MacPython cvs repository at
-<code>lib-src/gdbm</code>.
-
-<LI> JPEG library by the Independent JPEG Group. A version including
-Mac projects can be found at Jack's page mentioned above. 
-The most recent JPEG library can always be obtained from <A
-HREF="ftp://ftp.uu.net/graphics/jpeg/">ftp://ftp.uu.net/graphics/jpeg/</A>. Again,
-also in the MacPython cvs repository at <code>lib-src/jpeg</code>.
-
-<LI> The netpbm/pbmplus, libtiff, zlib and png libraries. The netpbm distribution
-(which includes libtiff) is generally available on Internet ftp
-servers. For Python pbmplus, an older incarnation of netpbm, is
-functionally identical to netpbm, since Python only uses the library
-and not the complete applications. A distribution with correct
-projects and library source only is available from, you guessed it, Jack's Mac software
-page mentioned above. And, guessed it again, in the MacPython cvs repository
-at <code>lib-src/netpbm</code>, etc. The only gotcha is that libtiff lives in
-<code>lib-src/netpbm/libtiff</code>, for historical reasons.
-
-</UL>
-
-<H2>Setting Up</H2>
-
-Now that you have collected everything you should start with building
-the various parts.  If you don't want to fix
-access paths try to set things up as follows:
-
-<PRE>
-Top-level-folder:
-       GUSI2
-       imglibs
-               jpeg
-               netpbm
-                       libtiff
-               zlib
-               png
-       gdbm
-       Python
-               Modules
-               ...
-               Mac
-                       Modules
-                       Build
-                       ...
-       Tcl/Tk Folder
-               tcl8.0
-               tk8.0
-               MoreFiles 1.4.3
-       Waste 1.3 distribution (if you want waste)
-</PRE>
-
-If your setup of the libraries is exactly the same as mine (which is
-not very likely, unless you happen to work from the same CVS
-repository) you can use the project <code>buildlibs.prj</code> in the
-<code>:Mac:Build</code> folder to build all needed libraries in one
-fell swoop, otherwise you will have to build the libraries one by
-one. <p>
-
-First build GUSI. If you didn't get the python-specific GUSI you have to 
-massage some of the Python code (missing routines) and you'll miss the
-functionality of "delay console".
- <p>
-
-Next, in
-<code>libjpeg</code>, <code>pbmplus</code>,
-<code>zlib</code>, <code>libpng</code>, <code>gdbm</code>,
-and<code>libtiff</code> you build all projects. Usually the projects are in "mac"
-subfolders, sometimes they are in the main folder. Tcl/tk is a special
-case, see below.
-
-<H2><A NAME="tcltk">Building Tcl/Tk</H2>
-
-The Tcl/Tk 8.3.0 source distribution does not work on the Mac. I have created
-an archive of the sources that I used to build _tkinter for MacPython,
-you can obtain this from <a 
-href="ftp://ftp.cwi.nl/pub/jack/python/mac/tcltk830src-for-python.sit">
-ftp://ftp.cwi.nl/pub/jack/python/mac/tcltk830src-for-python.sit</a>. Only the
-libraries needed to build _tkinter for PPC have been fixed. <P>
-
-Note that if you use a different release of Tcl and Tk than the ones
-I have used you may have to adapt the Python <code>tkresources.rsrc</code> file.
-This is easiest done by building <code>SimpleTk</code> and copying the TEXT, ICON
-and CRSR resources from it to <code>tkresources.rsrc</code>. This allows
-the <code>_tkinter</code> module to work without an installed Tk/Tcl on your
-machine. <P>
-
-Also note that the <code>_tkinter.ppc.slb</code> that is normally distributed
-in the <code>PlugIns</code> folder is the one from the Imaging extension,
-which has some extra features needed by PIL (and which features should not
-hinder normal operation).
-
-</UL>
-
-Build first the Tcl library, then
-SimpleTcl (test it by typing <code>ls -l</code> in the window you get)
-then the Tk library, then SimpleTk (which can again be tested with
-<code>ls -l</code>). If this all worked you are all set to try
-building Python.
-
-<H2>Building Waste</H2>
-
-You do not need to build the Waste libraries, as Python includes the
-source modules themselves.
-
-<H2>The organization of the Python source tree</H2>
-
-Time for a short break, while we have a look at the organization of
-the Python source tree.  At the top level, we find the following
-folders:
-
-<DL>
-<DT> Demo
-<DD> Demo programs that are not Mac-specific. Some of these may not
-work.
-
-<DT> Extensions
-<DD> Extensions to the interpreter that are not Mac-specific. Contains
-the <code>img</code>, <code>Imaging</code> and <code>Numerical</code> extensions
-in this distribution.
-
-<DT> Grammar
-<DD> The Python grammar. Included for reference only, you cannot build
-the parser on a Mac.
-
-<DT> Include
-<DD> Machine-independent header files.
-
-<DT> Modules
-<DD> Machine-independent optional modules. Not all of these will work
-on the Mac.
-
-<DT> Objects
-<DD> Machine-independent code for various object types. Most of these are
-not really optional: the interpreter will not function without them.
-
-<DT> Parser
-<DD> The Python parser (machine-independent).
-
-<DT> Python
-<DD> The core interpreter. Most files are machine-independent, some
-are unix-specific and not used on the Mac.
-
-<DT> Tools
-<DD> Tools for python developers. Contains <code>modulator</code> which
-builds skeleton C extension modules, <code>bgen</code> which generates
-complete interface modules from information in C header files and
-<code>freeze</code> which is used to turn Python scripts into real
-applications (used by MacFreeze and BuildApplication) There are some
-readme files, but more documentation is sorely needed.
-
-</DL>
-
-All the mac-specific stuff lives in the <code>Mac</code> folder:
-<DL>
-<DT> Build
-<DD> This is where the project files live and where you build the
-libraries, shared libraries, executables and plugin modules. All the
-resulting binaries, except for intermedeate results, are deposited in
-the toplevel folder or the Mac:PlugIns folder (for plugin modules).
-
-<DT> Compat
-<DD> Unix-compatability routines. Most of these are not used anymore,
-since GUSI provides a rather complete emulation, but you may need
-these if you are trying to build a non-GUSI python.
-
-<DT> Demo
-<DD> Mac-specific demo programs, some of them annotated.
-
-<DT> Include
-<DD> Mac-specific but compiler-independent include files. 
-
-<DT> Lib
-<DD> Mac-specific standard modules. The <code>toolbox</code> folder
-contains modules specifically needed with various MacOS toolbox
-interface modules.
-
-<DT> Modules
-<DD> Mac-specific builtin modules. Theoretically these are all
-optional, but some are rather essential (like
-<code>macmodule</code>). A lot of these modules are generated with
-<code>bgen</code>, in which case the bgen input files are included so
-you can attempt to regenerate them or extend them.
-
-<DT> MPW
-<DD> MPW-specific files. These have not been used or kept up-to-date
-for a long time, so use at your own risk.
-
-<DT> mwerks
-<DD> Mwerks-specific sources and headers. Contains glue code for
-Pythons shared-library architecture, a replacement for
-<code>malloc</code> and a directory with various projects for building
-variations on the Python interpreter. The <code>mwerks_*.h</code>
-files here are the option-setting files for the various interpreters
-and such, comparable to the unix command-line <code>-D</code> options
-to the compiler. Each project uses the correct option file as its
-"prefix file" in the "C/C++ language" settings. Disabling optional
-modules (for the 68K interpreter), building non-GUSI interpreters and
-various other things are accomplished by modifying these files (and
-possibly changing the list of files included in the project window, of
-course).
-
-<DT> PlugIns
-<DD> This is where the PPC and CFM68K dynamically-loaded plugin modules live.
-
-<DT> Python
-<DD> Mac-specific parts of the core interpreter.
-
-<DT> Resources
-<DD> Resource files needed to build the interpreter.
-
-<DT> Scripts
-<DD> A collection of various mac-specific Python scripts. Some are
-essential, some are useful but few are documented, so you will have to
-use your imagination to work them out.
-
-<DT> Tools
-<DD> A collection of tools, usually bigger than those in the scripts
-folder. The important ones here are the IDE and macfreeze. The IDE is built
-with the buildIDE.py script, which puts the resulting applet in the toplevel
-folder. Macfreeze is usually invoked through the BuildApplication script,
-but for more control over the freezing process you can run the main script here.
-
-
-<DT> Unsupported
-<DD> Modules that are not supported any longer but may still work with a little effort.
-</DL>
-
-<H2>Building the 68K interpreter</H2>
-
-68K Python is no longer supported, and the projects are not included in the
-source distirbution anymore. If you really want to build Python for the 68K
-your best bet is to check the sources out of the CVS repository. The latest
-projects (in :Mac:build:) that support 68K development are tagged as such,
-and are dated around August 2000. If you plan on doing this announce it on
-the SIG, please. <p>
-
-<H2>Building the PPC interpreter</H2>
-
-First you optionally build the external libraries with buildlibs.prj. Next, 
-the projects for
-interpreter, core library and applet skeleton  are all linked together, so
-building the fat target in <code>PythonEngine.prj</code> 
-will result in everything being built. The
-resulting applications and fat shared library are deposited in the main
-Python folder. Finally, you build all the plugins with the plugins.prj project.
-
-For completeness sake here is a breakdown of the projects:
-
-<DL>
-
-<DT> PythonCore (with subproject PythonCorePPC)
-<DD> The shared library that contains the bulk of the interpreter and
-its resources. It is a good idea to immedeately put an alias to this
-shared library in the <code>Extensions</code> folder of your system
-folder.  Do exactly that: put an <em>alias</em> there, copying or
-moving the file will cause you grief later if you rebuild the library and
-forget to copy it to the extensions folder again. The InstallPython applet
-will also do this, along with creating the plugin aliases. <br>
-Note that the subproject looks a bit silly nowadays (with no more CFM68K
-support) but you will have to live with that for this release.
-
-<DT> PythonInterpeter
-<DD> The interpreter. This is basically a routine to call out to the
-shared library. Unlike in previous releases the same program is used for
-creating applets (for which formerly PythonApplet was used). <p>
-
-<DT> Plugin projects
-<DD> Each plugin module has a separate project. The <code>Plugins.prj</code>
-project tries to build them all, but is known to be flakey. See <code>fullbuild</code>
-below for a better way to build everything.
-</DL>
-
-After creating the alias to <code>PythonCore</code> you remove any old
-<code>Python 2.0b1 Preferences</code> file from the <code>Preferences</code> folder
-(if you had python installed on your system before) and run the interpreter once
-to create the correct preferences file.  <p>
-
-Next, you have to build the extension modules.
-The <code>PlugIns.ppc</code> project has all the
-other projects as subprojects and builds everything (but see the gotcha above).
-<p>
-
-Finally, you must build the standard applets:
-<code>EditPythonPrefs</code>, <code>BuildApplet</code>, etc. This is
-easiest done with the <code>fullbuild</code> script from
-<code>Mac:scripts</code>. <p>
-
-<BLOCKQUOTE>
-Actually, the <code>fullbuild</code> script can be used to build
-everything, but you need a fully-functional interpreter before you can
-use it (and one that isn't rebuilt in the process: you cannot rebuild
-a running program). You could copy the interpreter to a different
-place and use that to run fullbuild. The <code>PythonStandSmall.prj</code>
-project builds an interpreter that is suited to this, and it can also come
-in handy if you need to debug things (which is easier in a static program). <p>
-
-</BLOCKQUOTE>
-
-You are all set now, and should read the release notes and
-<code>ReadMe</code> file from the <code>Mac</code> folder.
-
-<H2>Rebuilding <code>.exp</code> files for PPC and CFM68K</H2>
-
-Occasionally it may be necessary to rebuild your PythonCore <code>.exp</code>
-file, a file that controls which symbols are exported by your PythonCore
-shared library. Rebuild it if you get unexpected undefined symbols when you
-are building a plugin module. <p>
-
-Rebuilding the .exp file is done by first removing the file and removing the
-reference to it in the project (in the "config" section). Next, build PythonCore.
-This will create a new .exp file. Edit this file to remove the references to
-the symbols <code>__initialize</code>, <code>__terminate</code>, <code>setjmp</code>,
-<code>longjmp</code>, <code>vec_longjmp</code>, <code>main</code> and (for PPC) <code>__ptmf_null</code> or (for
-CFM68K) <code>__start</code> and <code>dummy_init_routine</code>.
-Next, add the .exp file to the project
-again and rebuild PythonCore. <p>
-
-This rather convoluted procedure is needed to ensure that plugin modules don't
-accidentally link with those entrypoints from PythonCore, which will not work because
-those routines have to be in the same code fragment as they are used from.
-
-<H2><a name="cvs">Using the CVS source archive</a></H2>
-
-It is possible (and probably best) to access the Python sources through remote CVS. The
-advantage of this is that you get the very latest sources, so any bug
-fixed or new features will be immedeately available. This is also the
-disadvantage, of course: as this is the same tree as is used for
-development it may sometimes be a little less stable. <p>
-
-The CVS client of choice is Alexandre Parenteau's MacCVS. It can be
-obtained through the <a href="http://www.wincvs.org">WinCVS
-homepage</a>. MacCVS uses Internet Config to set file types correctly
-based on the filename extension. In the maccvs preferences you should
-also set (in the "binary files" section) "use mac encoding:
-applesingle" and (in the "text files" section) "use ISO latin 1
-conversion". <p>
-
-It is also a good idea to disable Quicktime Exchange in the Quicktime
-control panel. Quicktime Exchange will magically map some extensions to
-filetypes, and this can seriously hinder you if, for instance, <code>.bmp</code>
-is not a Windows bitmap file. <p>
-
-The machine-independent Python sources are checked out from the main
-Python CVS archive on sourceforge.net, see the <a
-href="http://www.python.org/download/cvs.html">Source access via
-CVS</a> page for details. When you check the sources out you will get
-something like <code>Python:dist:src</code>, and under that the
-<code>Modules</code>, <code>Lib</code>, etc hierarchy. The
-<code>src</code> folder should be renamed to <code>Python</code>, and
-is what this document refers to as the "toplevel Python folder". <P>
-
-Next, <em>in a separate folder</em>, you check out the
-mac-specific sources. You then move the <code>Mac</code> folder from this
-checkout (the only folder with anything in it) to the Python source folder.
-Note that the checking out in a separate folder and moving is necessary,
-due to the way cvs works.
-
-The CVS path to use for the mac stuff can be found
-at the <a href="http://www.cwi.nl/~jack/macpython.html">MacPython
-homepage</a>. Finally, you check out the external libraries needed in
-the parent of the toplevel Python folder. The CVS path for these libraries is
-also mentioned at the MacPython homepage. <p>
-
-Neither of the pages mentioned above contains the passwords for the
-CVS sites, for obvious reasons, but they do contain instructions on
-how to obtain the passwords. <p>
-
-You should end up with a folder structure as described at the top of this
-document. <p>
-
-Note that while the Mac folder is now a subfolder of your toplevel Python
-folder this does not mean that they "act as one" as far as CVS is concerned.
-To update all your sources you have to do a "cvs update" in the toplevel
-Python folder and another one in the Mac folder. This is again a cvs problem:
-it cannot deal with subpackages coming from different repositories. <p>
-
-<H2>Odds and ends</H2>
-
-Some remarks that I could not fit in elsewhere:
-
-<UL>
-
-<LI> It may be possible to use the <code>PythonCore</code> shared
-library to embed Python in another program, if your program can live
-with using GUSI for I/O. Use PythonCore in stead of your MSL C library
-(or, at the very least, link it before the normal C library).
-
-<LI> It is possible to build PPC extension modules without building a
-complete Python. The binary distribution installer can optionally install
-all the needed folders (the develop option). A template for a dynamic module can be found in
-<code>xx.prj</code>.
-
-<LI> The Python shared library architecture is a variant of the architecture
-described as "application with shared libraries and dropins" in the MetroWerks
-"Targeting MacOS" documentation. The Python Application and applet-template use
-the <code>MSL AppRuntime.Lib</code> runtime library (with properly set CFM
-initialization and termination routines). PythonCore uses <code>MSL Runtime.Lib</code>,
-which is really intended for standalone programs but which we fool into working by
-providing a dummy main program.
-It is linked statically into PythonCore (and exported to the applications and plugins)
-so we do not have to distribute yet another shared library. Plugin modules use
-<code>MSL ShlibRuntime.Lib</code> (not the dropin runtime: modules are never unloaded)
-and obtain the rest from PythonCore. PythonCore uses a
-non-standard initialization entry point, <code>__initialize_with_resources</code>, to
-be able to obtain resources from the library file later on. Plugins can do the same
-(_tkinter does) or use the standard <code>__initialize</code> entry point.
-
-
-</UL>
-</BODY>
-</HTML>
diff --git a/Mac/Demo/calldll/readme b/Mac/Demo/calldll/readme
deleted file mode 100644 (file)
index 989b34a..0000000
+++ /dev/null
@@ -1,57 +0,0 @@
-Preliminary notes/documentation for the calldll module, version 0.2.
-====================================================================
-
-Calldll allows you to call random C functions from python without writing any
-C code. It is mainly meant to call MacOS toolbox routines for which no Python
-wrapper module is available. It is also incomplete, in that only a few argument
-types are currently supported. Please let me know which other argument types
-you need, and/or whether you have any ideas on a general "escape" allowing people
-to pass anything.
-
-The module works *only* on PowerPC currently. It is distributed complete
-with source and project files, so that people willing to look at a CFM68K port
-are welcome to do so. A classic 68K implementation is impossible, I think (so
-prove me wrong, please:-).
-
-The module exports three functions:
-- symtable = getlibrary(libraryname)
-       Get a reference to import library libraryname. "InterfaceLib" is the most commonly
-       used one, containing most toolbox routines. The symbol table can be used
-       to lookup routines to be passed to newcall: "symtable.WaitNextEvent" will
-       return the address of routine WaitNextEvent. and so will "symtable['WaitNextEvent']".
-       The symtable is a mapping, so you can use keys() and len(...) to inspect it.
-- symtable = getdiskfragment(file)
-       Load the specified file (given by fsspec or filename) and return a reference to
-       its symboltable.
-- callable = newcall(routine, returntype, [argtype, ...])
-       Return a callable object. You specify the C routine to be called (as explained above),
-       the type of the return value and the argument types. The resulting object can
-       be called from Python code in the normal way, and typechecking on arguments is
-       performed (but, of course, if you specify incorrect argument types in this call
-       you may well crash your machine). Printing a callable will give you a description
-       of the (C-) calling sequence.
-
-The C return value can be one of 'None', 'Byte', 'Short', 'Long', 'Pstring' (a pascal
-string returned by address, copied to a Python string), 'Cobject' (a wrapper around a void
-pointer), 'Handle' (a new handle, returned as a Res.Resource object) or 'OSErr' (which raises
-MacOS.Error if non-zero).
-
-Arguments can be any of 'InByte', 'InShort', 'InLong', 'InString' (a python string, with the
-address of the data passed to the C routine, so be careful!), 'InPstring' (a python string copied
-to a Str255 and passed by address),  'InCobject', 'InHandle', 'OutByte' (storage is allocated for
-a single byte, the address passed to C and the resulting value returned to Python), 'OutShort',
-'OutLong', 'OutPstring' (again: storage pre-allocated and the address passed to C), 'OutCobject'
-(storage for a void * is allocated, this void ** is passed to C and the resulting void * is
-encapsulated in the Cobject returned) or 'OutHandle' (ditto, which means that this is usually *not*
-what you use, you normally use 'InHandle' because most toolbox calls expect you to preallocate
-the handle).
-
-All values to be returned (from the return value and the Out arguments) are collected. If there
-aren't any None is returned, if there is one value this value is returned, if there are multiple
-values a tuple is returned.
-
-There is test code in testcalldll.py, and a minimal example in samplecalldll.py.
-
-Have fun, and let's discuss the design of this thingy on pythonmac-sig,
-               
-               Jack Jansen, jack@cwi.nl, 23-May-97.
diff --git a/Mac/Demo/quicktime/VerySimplePlayer.py b/Mac/Demo/quicktime/VerySimplePlayer.py
deleted file mode 100644 (file)
index 6e031c2..0000000
+++ /dev/null
@@ -1,92 +0,0 @@
-"""VerySimplePlayer converted to python
-
-Jack Jansen, CWI, December 1995
-"""
-
-import Qt
-import QuickTime
-import Qd
-import QuickDraw
-import Evt
-import Events
-import Win
-import Windows
-import macfs
-import sys
-
-# XXXX maxbounds = (40, 40, 1000, 1000)
-
-def main():
-       print 'hello world' # XXXX
-       # skip the toolbox initializations, already done
-       # XXXX Should use gestalt here to check for quicktime version
-       Qt.EnterMovies()
-       
-       # Get the movie file
-       fss, ok = macfs.StandardGetFile(QuickTime.MovieFileType)
-       if not ok:
-               sys.exit(0)
-               
-       # Open the window
-       bounds = (175, 75, 175+160, 75+120)
-       theWindow = Win.NewCWindow(bounds, fss.as_tuple()[2], 0, 0, -1, 1, 0)
-       # XXXX Needed? SetGWorld((CGrafPtr)theWindow, nil)
-       Qd.SetPort(theWindow)
-       
-       # Get the movie
-       theMovie = loadMovie(fss)
-       
-       # Relocate to (0, 0)
-       bounds = theMovie.GetMovieBox()
-       bounds = 0, 0, bounds[2]-bounds[0], bounds[3]-bounds[1]
-       theMovie.SetMovieBox(bounds)
-       
-       # Create a controller
-       theController = theMovie.NewMovieController(bounds, QuickTime.mcTopLeftMovie)
-       
-       # Get movie size and update window parameters
-       rv, bounds = theController.MCGetControllerBoundsRect()
-       theWindow.SizeWindow(bounds[2], bounds[3], 0)   # XXXX or [3] [2]?
-       Qt.AlignWindow(theWindow, 0)
-       theWindow.ShowWindow()
-       
-       # XXXX MCDoAction(theController, mcActionSetGrowBoxBounds, &maxBounds)
-       theController.MCDoAction(QuickTime.mcActionSetKeysEnabled, '1')
-       
-       # XXXX MCSetActionFilterWithRefCon(theController, movieControllerEventFilter, (long)theWindow)
-       
-       done = 0
-       while not done:
-               gotone, evt = Evt.WaitNextEvent(-1, 0)
-               (what, message, when, where, modifiers) = evt
-##             print what, message, when, where, modifiers # XXXX
-               
-               if theController.MCIsPlayerEvent(evt):
-                       continue
-                       
-               if what == Events.mouseDown:
-                       part, whichWindow = Win.FindWindow(where)
-                       if part == Windows.inGoAway:
-                               done = whichWindow.TrackGoAway(where)
-                       elif part == Windows.inDrag:
-                               Qt.DragAlignedWindow(whichWindow, where, (0, 0, 4000, 4000))
-               elif what == Events.updateEvt:
-                       whichWindow = Win.WhichWindow(message)
-                       if not whichWindow:
-                               # Probably the console window. Print something, hope it helps.
-                               print 'update'
-                       else:
-                               Qd.SetPort(whichWindow)
-                               whichWindow.BeginUpdate()
-                               Qd.EraseRect(whichWindow.GetWindowPort().portRect)
-                               whichWindow.EndUpdate()
-                       
-def loadMovie(theFile):
-       """Load a movie given an fsspec. Return the movie object"""
-       movieResRef = Qt.OpenMovieFile(theFile, 1)
-       movie, d1, d2 = Qt.NewMovieFromFile(movieResRef, 0, QuickTime.newMovieActive)
-       return movie
-       
-if __name__ == '__main__':
-       main()
-       
diff --git a/Mac/Demo/textedit/ped.py b/Mac/Demo/textedit/ped.py
deleted file mode 100644 (file)
index 5c2d0f6..0000000
+++ /dev/null
@@ -1,345 +0,0 @@
-# A minimal text editor.
-#
-# To be done:
-# - Update viewrect after resize
-# - Handle horizontal scrollbar correctly
-# - Functionality: find, etc.
-
-from Menu import DrawMenuBar
-from FrameWork import *
-import Win
-import Qd
-import TE
-import Scrap
-import os
-import macfs
-
-class TEWindow(ScrolledWindow):
-       def open(self, path, name, data):
-               self.path = path
-               self.name = name
-               r = windowbounds(400, 400)
-               w = Win.NewWindow(r, name, 1, 0, -1, 1, 0x55555555)
-               self.wid = w
-               x0, y0, x1, y1 = self.wid.GetWindowPort().portRect
-               x0 = x0 + 4
-               y0 = y0 + 4
-               x1 = x1 - 20
-               y1 = y1 - 20
-               vr = dr = x0, y0, x1, y1
-               ##vr = 4, 0, r[2]-r[0]-15, r[3]-r[1]-15
-               ##dr = (0, 0, vr[2], 0)
-               Qd.SetPort(w)
-               Qd.TextFont(4)
-               Qd.TextSize(9)
-               self.ted = TE.TENew(dr, vr)
-               self.ted.TEAutoView(1)
-               self.ted.TESetText(data)
-               w.DrawGrowIcon()
-               self.scrollbars()
-               self.changed = 0
-               self.do_postopen()
-               self.do_activate(1, None)
-               
-       def do_idle(self):
-               self.ted.TEIdle()
-               
-       def getscrollbarvalues(self):
-               dr = self.ted.destRect
-               vr = self.ted.viewRect
-               height = self.ted.nLines * self.ted.lineHeight
-               vx = self.scalebarvalue(dr[0], dr[2]-dr[0], vr[0], vr[2])
-               vy = self.scalebarvalue(dr[1], dr[1]+height, vr[1], vr[3])
-               print dr, vr, height, vx, vy
-               return None, vy
-               
-       def scrollbar_callback(self, which, what, value):
-               if which == 'y':
-                       if what == 'set':
-                               height = self.ted.nLines * self.ted.lineHeight
-                               cur = self.getscrollbarvalues()[1]
-                               delta = (cur-value)*height/32767
-                       if what == '-':
-                               delta = self.ted.lineHeight
-                       elif what == '--':
-                               delta = (self.ted.viewRect[3]-self.ted.lineHeight)
-                               if delta <= 0:
-                                       delta = self.ted.lineHeight
-                       elif what == '+':
-                               delta = -self.ted.lineHeight
-                       elif what == '++':
-                               delta = -(self.ted.viewRect[3]-self.ted.lineHeight)
-                               if delta >= 0:
-                                       delta = -self.ted.lineHeight
-                       self.ted.TEPinScroll(0, delta)
-                       print 'SCROLL Y', delta
-               else:
-                       pass # No horizontal scrolling
-               
-       def do_activate(self, onoff, evt):
-               print "ACTIVATE", onoff
-               ScrolledWindow.do_activate(self, onoff, evt)
-               if onoff:
-                       self.ted.TEActivate()
-                       self.parent.active = self
-                       self.parent.updatemenubar()
-               else:
-                       self.ted.TEDeactivate()
-
-       def do_update(self, wid, event):
-               Qd.EraseRect(wid.GetWindowPort().portRect)
-               self.ted.TEUpdate(wid.GetWindowPort().portRect)
-               self.updatescrollbars()
-               
-       def do_contentclick(self, local, modifiers, evt):
-               shifted = (modifiers & 0x200)
-               self.ted.TEClick(local, shifted)
-               self.updatescrollbars()
-               self.parent.updatemenubar()
-
-       def do_char(self, ch, event):
-               self.ted.TESelView()
-               self.ted.TEKey(ord(ch))
-               self.changed = 1
-               self.updatescrollbars()
-               self.parent.updatemenubar()
-               
-       def close(self):
-               if self.changed:
-                       save = EasyDialogs.AskYesNoCancel('Save window "%s" before closing?'%self.name, 1)
-                       if save > 0:
-                               self.menu_save()
-                       elif save < 0:
-                               return
-               if self.parent.active == self:
-                       self.parent.active = None
-               self.parent.updatemenubar()
-               del self.ted
-               self.do_postclose()
-               
-       def menu_save(self):
-               if not self.path:
-                       self.menu_save_as()
-                       return # Will call us recursively
-               print 'Saving to ', self.path
-               dhandle = self.ted.TEGetText()
-               data = dhandle.data
-               fp = open(self.path, 'wb')  # NOTE: wb, because data has CR for end-of-line
-               fp.write(data)
-               if data[-1] <> '\r': fp.write('\r')
-               fp.close()
-               self.changed = 0
-               
-       def menu_save_as(self):
-               fss, ok = macfs.StandardPutFile('Save as:')
-               if not ok: return
-               self.path = fss.as_pathname()
-               self.name = os.path.split(self.path)[-1]
-               self.wid.SetWTitle(self.name)
-               self.menu_save()
-               
-       def menu_cut(self):
-               self.ted.TESelView()
-               self.ted.TECut()
-               Scrap.ZeroScrap()
-               TE.TEToScrap()
-               self.updatescrollbars()
-               self.parent.updatemenubar()
-               self.changed = 1
-               
-       def menu_copy(self):
-               self.ted.TECopy()
-               Scrap.ZeroScrap()
-               TE.TEToScrap()
-               self.updatescrollbars()
-               self.parent.updatemenubar()
-               
-       def menu_paste(self):
-               print 'SCRAP', Scrap.InfoScrap(), `Scrap.InfoScrap()[1].data`
-               TE.TEFromScrap()
-               self.ted.TESelView()
-               self.ted.TEPaste()
-               self.updatescrollbars()
-               self.parent.updatemenubar()
-               self.changed = 1
-               
-       def menu_clear(self):
-               self.ted.TESelView()
-               self.ted.TEDelete()
-               self.updatescrollbars()
-               self.parent.updatemenubar()
-               self.changed = 1
-               
-       def have_selection(self):
-               return (self.ted.selStart < self.ted.selEnd)
-
-class Ped(Application):
-       def __init__(self):
-               Application.__init__(self)
-               self.num = 0
-               self.active = None
-               self.updatemenubar()
-               
-       def makeusermenus(self):
-               self.filemenu = m = Menu(self.menubar, "File")
-               self.newitem = MenuItem(m, "New window", "N", self.open)
-               self.openitem = MenuItem(m, "Open...", "O", self.openfile)
-               self.closeitem = MenuItem(m, "Close", "W", self.closewin)
-               m.addseparator()
-               self.saveitem = MenuItem(m, "Save", "S", self.save)
-               self.saveasitem = MenuItem(m, "Save as...", "", self.saveas)
-               m.addseparator()
-               self.quititem = MenuItem(m, "Quit", "Q", self.quit)
-               
-               self.editmenu = m = Menu(self.menubar, "Edit")
-               self.undoitem = MenuItem(m, "Undo", "Z", self.undo)
-               self.cutitem = MenuItem(m, "Cut", "X", self.cut)
-               self.copyitem = MenuItem(m, "Copy", "C", self.copy)
-               self.pasteitem = MenuItem(m, "Paste", "V", self.paste)
-               self.clearitem = MenuItem(m, "Clear", "", self.clear)
-               
-               # Not yet implemented:
-               self.undoitem.enable(0)
-               
-               # Groups of items enabled together:
-               self.windowgroup = [self.closeitem, self.saveitem, self.saveasitem, self.editmenu]
-               self.focusgroup = [self.cutitem, self.copyitem, self.clearitem]
-               self.windowgroup_on = -1
-               self.focusgroup_on = -1
-               self.pastegroup_on = -1
-               
-       def updatemenubar(self):
-               changed = 0
-               on = (self.active <> None)
-               if on <> self.windowgroup_on:
-                       for m in self.windowgroup:
-                               m.enable(on)
-                       self.windowgroup_on = on
-                       changed = 1
-               if on:
-                       # only if we have an edit menu
-                       on = self.active.have_selection()
-                       if on <> self.focusgroup_on:
-                               for m in self.focusgroup:
-                                       m.enable(on)
-                               self.focusgroup_on = on
-                               changed = 1
-                       on = (Scrap.InfoScrap()[0] <> 0)
-                       if on <> self.pastegroup_on:
-                               self.pasteitem.enable(on)
-                               self.pastegroup_on = on
-                               changed = 1
-               if changed:
-                       DrawMenuBar()
-
-       #
-       # Apple menu
-       #
-       
-       def do_about(self, id, item, window, event):
-               EasyDialogs.Message("A simple single-font text editor")
-                       
-       #
-       # File menu
-       #
-
-       def open(self, *args):
-               self._open(0)
-               
-       def openfile(self, *args):
-               self._open(1)
-
-       def _open(self, askfile):
-               if askfile:
-                       fss, ok = macfs.StandardGetFile('TEXT')
-                       if not ok:
-                               return
-                       path = fss.as_pathname()
-                       name = os.path.split(path)[-1]
-                       try:
-                               fp = open(path, 'rb') # NOTE binary, we need cr as end-of-line
-                               data = fp.read()
-                               fp.close()
-                       except IOError, arg:
-                               EasyDialogs.Message("IOERROR: "+`arg`)
-                               return
-               else:
-                       path = None
-                       name = "Untitled %d"%self.num
-                       data = ''
-               w = TEWindow(self)
-               w.open(path, name, data)
-               self.num = self.num + 1
-               
-       def closewin(self, *args):
-               if self.active:
-                       self.active.close()
-               else:
-                       EasyDialogs.Message("No active window?")
-               
-       def save(self, *args):
-               if self.active:
-                       self.active.menu_save()
-               else:
-                       EasyDialogs.Message("No active window?")
-               
-       def saveas(self, *args):
-               if self.active:
-                       self.active.menu_save_as()
-               else:
-                       EasyDialogs.Message("No active window?")
-                       
-               
-       def quit(self, *args):
-               for w in self._windows.values():
-                       w.close()
-               if self._windows:
-                       return
-               self._quit()
-               
-       #
-       # Edit menu
-       #
-       
-       def undo(self, *args):
-               pass
-               
-       def cut(self, *args):
-               if self.active:
-                       self.active.menu_cut()
-               else:
-                       EasyDialogs.Message("No active window?")
-               
-       def copy(self, *args):
-               if self.active:
-                       self.active.menu_copy()
-               else:
-                       EasyDialogs.Message("No active window?")
-               
-       def paste(self, *args):
-               if self.active:
-                       self.active.menu_paste()
-               else:
-                       EasyDialogs.Message("No active window?")
-
-       def clear(self, *args):
-               if self.active:
-                       self.active.menu_clear()
-               else:
-                       EasyDialogs.Message("No active window?")
-               
-       #
-       # Other stuff
-       #       
-
-       def idle(self, *args):
-               if self.active:
-                       self.active.do_idle()
-
-def main():
-       App = Ped()
-       App.mainloop()
-       
-if __name__ == '__main__':
-       main()
-       
diff --git a/Mac/Distributions/(vise)/Python 2.1.vct b/Mac/Distributions/(vise)/Python 2.1.vct
deleted file mode 100644 (file)
index 38a2ac5..0000000
+++ /dev/null
@@ -1 +0,0 @@
-(This file must be converted with BinHex 4.0)\r:!!"@59-a9NPc03!!!!D,D!!#',l@*P0@3e3!N!8'LfLfk2kiJ!%$#`!!!!%!N!8\r'LfJ!N!FXJ!%$#d0@3e3!"N6G!*!'!TF)$J!!8%&$5d*#FQ4$6d4&3N4*8P"56dT\r*6N414'C*6!#3$3C&E3!'8G-!"P-r!!C643!'8l%!"SKp!!D)b3#3$%4@3e3!,`!\r0!H8"Q!2Jrj!%!3He1jp2Y6ZI6`!!!(3!!!!#!J!!!3#3'IRrfa!P!*!&!J#3"!`\r!!!!)"!F!N"(J!*!(rrrrr[["!*!L8(PdD'pZ)$)Z-@)b4&C$9!#3#J)J!,)""lE\rQVebfjUpZ!!!!GJ!!!(3!!#!"!*!F%#S!!!!"!!)!N!3%!!!!#!3(!*!E!BZL!3#\r3)N4PE@p%9N08!*!3YV",+3#3"hF!!!"f!!!J!3#3("!V!!!!!J!#!*!%"`!!!!J\r%"`#3'`'-SJ#3)f0XBA0cCA0'9N08!*!(##!!!!%!N!J(!*!5!94&@&43HA4S!*!\r)X[aEr,0A"lX!!!PH!!!KB`#3#+'&p!F!!!"h!!(X*`!$!!$rrrrq!*!)%#`!!!!\r#!*!%#B3!N"S"MD)!N"m%!*!&BQPdGQ9M,R"j4PC$9!#3"`JJ!!!"!*!)"`#3%J&\rA4%*1690A4!#3#,8QTK'e*UB4!!!%f!!!$2B!N!Mk'Ip@!!!!G`!"l#J!!`!!rrr\rrrJ#3#"!Y!!!!!J#3"!Q%!*!D!BfL!*!I"!#3"@0XBA0c,Q4[BdC@3e3!N!F))!!\r!!3#3#!F!N")"9%9B9&"jG'J!N!Lbr&[fX[aEp`!!#GB!!"k)!*!)EhRR4!!!!(F\r!!H`T!!-!!2rrrri!N!J3,J!!!!)!N!3+K!#3'J'0SJ#3(`3!N!9$Efe`E'9i,R"\rj4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K88(PdD!#3#,,m@rHbr&[h!!!+qJ!!(M!\r!N!J@'LF(!!!!G`!"l#S!!`!!rrrrrJ!!(SJ!N!33,`!!!!)!N!3)K!#3'J'0SJ#\r3(`3!N!9%BA4PFbj`H8C@3e3!N!F))!!!!3#3#!F!N")"9%9B9&"jG'J!N!Lbr&[\riX[aEq!!!!N`!!!6K!*!)C2Jfp3!!!(F!!H`V!!-!!2rrrri!!$bi!*!%%$!!!!!\r#!*!%"S3!N"S"MD)!N"m%!*!&4'*Y,R"j4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K\r88(PdD!#3#,,m@rUbr&[k!!!#rJ!!"T3!N!MS-8fJ!!!!G`!"l#`!!`!!rrrrrJ!\r!3CN!N!33-3!!!!)!N!3)K!#3'J'0SJ#3(`3!N!95B@jRC5j`H8C@3e3!N!F))!!\r!!3#3#!F!N")"9%9B9&"jG'J!N!Lbr&[kX[aEqJ!!#0B!!"ba!*!)r#m1,!!!!(F\r!!H`Y!!-!!2rrrri!!%JY!*!%%$)!!!!#!*!%"S3!N"S"MD)!N"m%!*!&8Q&d,R"\rj4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K88LTMD!#3#,,m@rQbr&[j!!!"DJ!!!P8\r!N!Kq8DRE!!!!G`!"l#i!!`!!rrrrrJ!!C0i!N!33-`!!!!)!N!3'K!#3'J'0SJ#\r3(`3!N!9548&%689'9N08!*!(##!!!!%!N!J(!*!5!94&@&43HA4S!*!)X[aEql,\rm@rX!!!1'!!!(p`#3#$JMKRd!!!"h!!(X,`!$!!$rrrrq!!"R-`#3""!d!!!!!J#\r3"!D%!*!D!BfL!*!I"!#3"9*PGLj`H8C@3e3!N!F))!!!!3#3#!F!N")"9%9B9&"\rjG'J!N!Lbr&[lX[aEq`!!!B)!!!1R!*!)Pb2dkJ!!!(F!!H``!!-!!2rrrri!!'m\rU!*!%%$8!!!!#!*!%"S3!N"S"MD)!N"m%!*!&9Q9M,R"j4&C$9!#3%,D`5c!!N!G\ri!!!!GJ!!!!%!N"`30J!!!!)!!J#3"!X!!!!)"!F!N"X"M+)!N#0MEfe`BA*TFfp\rZFdC@3e3!N!F))!!!!3#3#!F!N")"9%9B9%0A588!N!Lbr&`#X[aF!J!!!#B!!!!\rH!*!)D8djfJ!!!(J!!H`b!!-!!2rrrri!N!J30`!!!!)!N!3)K!#3'J'1SJ#3(`3\r!N!9`BA4dCA*ZFdC@3e3!N!F))!!!!3#3#!F!N")"9%9B9&)UBfJ!N!Lbr&`"X[a\rF!3!!"2S!!!NJ!*!)Kh!,!`!!!(J!!H`c!!-!!2rrrri!!!!H!*!%%$J!!!!#!*!\r%"S3!N"S"MU)!N"m%!*!&8N9"4%e&4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K88(P\rdD!#3#,,mA!1br&`$!!!$0!!!"F8!N!KjVbSr!!!!H!!"l$3!!`!!rrrrrJ!!#6i\r!N!3313!!!!)!N!3-K!#3'J'1SJ#3(`3!N!9bC@GPH(4PFh3ZF(P'9N08!*!(##!\r!!!%!N!J(!*!5!94&@&43HA4S!*!)X[aF"E,mA!8!!!+i!!!%l3#3#"q@LB!!!!"\ri!!(X03!$!!$rrrrq!!!2!`#3""!k!!!!!J#3"!k%!*!D!BkL!*!I"!#3"A0[FR4\rTEQGdCA0d,R"j4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K88(PdD!#3#,,mA!Dbr&`\r'!!!$FJ!!"k%!N!J'PlPF!!!!H!!"l$B!!`!!rrrrrJ!!%r!!N!331`!!!!)!N!3\r0K!#3'J'1SJ#3(`3!N!9cHA0dC@edCA0d,R"j4&C$9!#3%,D`5cN!N!Gk!!!!GJ!\r!!!%!N"`333!!!!)!!J#3"!-!!!!)"!F!N"X"M+)!N#0NER0'9N08!*!(##!!!!%\r!N!J(!*!5!94&@&43HA4S!*!)X[aF$V,mA!i!!!'D!!!$8!#3#1@Y-&J!!!"k!!(\rX23!$!!$rrrrq!*!)%%)!!!!#!*!%$)3!N"S"N!#L!*!I"!#3"@&cCf9dD'pcG#j\r`H8C@3e3!N!F))!!!!3#3#!F!N")"9%9B9&"jG'J!N!Lbr&`2X[aF$`!!!6!!!!(\rV!*!)&bP&Z3!!!(S!!H`q!!-!!2rrrri!!!03!*!%%%-!!!!#!*!%#i3!N"S"N!#\rL!*!I"!#3"@4ZFf0XBA0c,R"j4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K88(PdD!#\r3#,,mA!qdkcLF!!!5+J!!1h-!N!JYCQ8'!!!!HJ!"l$m!!`!!rrrrrJ!!"6X!N!3\r34!!!!!)!N!3*K!#3'J'3!+)!N"m%!*!&C'jcE'PL,R"j4PC$9!#3"`JJ!!!"!*!\r)"`#3%J&849K88(PdD!#3#,,mA"'br&`4!!!!f!!!!8S!N!MpdF!3!!!!HJ!"l%!\r!!`!!rrrrrJ!!3+i!N!3343!!!!)!N!3-K!#3'J'3!+)!N"m%!*!&C'jcEh"MEf4\rP,R"j4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K88(PdD!#3#,,mA"'br&`4!!!#J!!\r!"--!N!L929EL!!!!HJ!"l%%!!`!!rrrrrJ!!3IJ!N!334J!!!!)!N!3+K!#3'J'\r3!+)!N"m%!*!&C'jcG(P`C5j`H8C@3e3!N!F))!!!!3#3#!F!N")"9%9B9&)UBfJ\r!N!Lbr&`0X[aF$3!!!C)!!!+!!*!)0aEpa`!!!(S!!Ha#!!-!!2rrrri!!%Dl!*!\r%%%F!!!!#!*!%"S3!N"S"N!#L!*!I"!#3"9*&3840484@3e3!N"#ehc*qYGmbk`!\r!!(X!!!"f!!!!!3#3("")!!!!!J!#!*!%"3!!!!J&"`#3'Irrrri!!3#3)Q9YBQ9\rN4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K83eG*43#3#,,mA"1fZU2E!!!#E!!!")!\r!N!JACIm5!!!"!!!"URd!!`!!rrrrrJ#3#"GJ!!!!!J#3"!L%!*!D!K`!!3#3(J8\r!N!90B@YPCQPXC8C@3e3!N!F))!!!!3#3#!F!N")"9%9B9&)UBfJ!N!Lbr&`9YSj\rkQ`!!!H)!!!-f!*!)%4fZk!!!!3!!!DTq!!-!!2rrrri!!!5!!*!%&f%!!!!#!*!\r%"S3!N"S#(!!"!*!H"3#3"9*&384048C@3e3!N!F))!!!!3#3#!F!N")"9%9B9%0\rA588!N!Lbr&`@YSjkQ`!!!`3!!!Bh!*!))r6Z!!!!!3!!!DTm!!-!!2rrrri!!!H\rf!*!%&em!!!!#!*!%"S3!N"S#(!!"!*!H"3#3"@4PE@mZBd4@3e3!N"#fXf+c!*!\r'!3%!!!$r!!!!!3#3("GL!!!!!J!#!*!%"J!!!!J&"`#3'`)E!!%!N#*PH(4PEQ4\r'9N08!*!(##!!!!%!N!J(!*!5!94&@&4$9dP&!*!)X[aF'V,mA"S!!!"H!!!!D3#\r3##Va$X-!!!%"!!'UJ!!$!!$rrrrq!*!)&f-!!!!#!*!%#S3!N"S#(3!"!*!H"3#\r3"@eKDf9IBfaPB@j'9N08!*!(##!!!!%!N!J(!*!5!94&@&4$9dP&!*!)X[aF'l,\rmA"X!!!$H!!!"G3#3#'GD1AF!!!%"!!'UJ3!$!!$rrrrq!!!!D3#3""GN!!!!!J#\r3"!Z%!*!D!Kd!!3#3(J8!N!9YB@YPAh0SBA*PC%C@3e3!N!F))!!!!3#3#!F!N")\r"9%9B9%0A588!N!Lbr&`FX[aF(!!!!0S!!!&S!*!)fb6aqJ!!!3%!!DU#!!-!!2r\rrrri!!!(H!*!%&f8!!!!#!*!%#i3!N"S#(3!"!*!H"3#3"@eKDf9IFh4KG'PM4PC\r$9!#3"`JJ!!!"!*!)"`#3%J&849K88LTMD!#3#,,mA"Qbr&`C!!!"9J!!!R8!N!J\rI,Kmj!!!"!3!"US-!!`!!rrrrrJ!!!dB!N!3ACJ!!!!)!N!3'K!#3'J)G!!%!N"i\r&!*!&8N9"4%e&4&C$9!#3%,D`5ci!N!Gq!!!!GJ!!!!%!N"`3@!!!!!)!!J#3"!F\r!!!!)"!F!N"X"M+)!N#0YC$9dCA0d4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K83eG\r*43#3#,,mA#Qbr&`T!!!!$!!!!!-!N!Je*%(#!!!!IJ!"l&3!!`!!rrrrrJ#3#""\rC!!!!!J#3"!1%!*!D!C5L!*!I"!#3"@C[EdC@3e3!N!F))!!!!3#3#!F!N")"9%9\rB9&"jG'J!N!Lbr&`UX[aF+J!!!hB!!!L'!*!)4Ef#0`!!!(i!!Ha9!!-!!2rrrri\r!!!!$!*!%%&S!!!!#!*!%$)3!N"S"P+)!N"m%!*!&E@3eC(*TGQ9b,R"j4PC$9!#\r3"`JJ!!!"!*!)"`#3%J&849K88LTMD!#3#,,mA#Lbr&`S!!!"(J!!!E8!N!J`-4%\r,!!!!IJ!"l&B!!`!!rrrrrJ!!#)N!N!33@`!!!!)!N!3'K!#3'J'8SJ#3(`3!N!9\r548&%689%9N08!*!3YV)Ca!#3"hm!!!"f!!!!!3#3(""F!!!!!J!#!*!%#`!!!!J\r%"`#3'`'-SJ#3)fePG'&ME'&cFf9c4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K88(P\rdD!#3#,,mA#bbr&`X!!!&#!!!$C8!N!KEP@dP!!!!I`!"l&J!!`!!rrrrrJ#3#""\rG!!!!!J#3"!Q%!*!D!C@L!*!I"!#3"89TCQCPE#j`H8C@3e3!N!F))!!!!3#3#!F\r!N")"9%9B9&"jG'J!N!Lbr&`YX[aF,3!!"H3!!"&*!*!)TLH%8`!!!(m!!HaC!!-\r!!2rrrri!!!f9!*!%%&i!!!!#!*!%"i3!N"S"PD)!N"m%!*!&4@jeE5j`H8C@3e3\r!N!F))!!!!3#3#!F!N")"9%9B9%e6588!N!Lbr&`cY-AUDJ!!(C`!!&"M!*!)I5#\r0f3!!!(m!!HaD!!-!!2rrrri!!"lH!*!%%&m!!!!#!*!%#S3!N"S"PD)!N"m%!*!\r&D@jNCAJZD(4YE%C@3e3!N!F))!!!!3#3#!F!N")"9%9B9(4dH(3!N!Lbr&`eX[a\rF03!!$+!!!#d(!*!)b0Y&Z3!!!(m!!HaE!!-!!2rrrri!!'p"!*!%%'!!!!!#!*!\r%%B3!N"S"PD)!N"m%!*!&E@9dB5efE'&ND@eTFLjdH(4'9N08!*!(##!!!!%!N!J\r(!*!5!94&@&43HA4S!*!)X[aF,lD1HTX!!!13!!!!#hd!N!KQrA&5!!!!I`!"l&`\r!!`!!rrrrrJ!!R%J!N!33B3!!!!)!N!3(K!#3'J'9SJ#3(`3!N!90CA4K,R"j4PC\r$9!#3"`JJ!!!"!*!)"`#3%J&849K88(PdD!#3#,,mA$#br&``!!!"V!!!"+J!N!L\rq2F`c!!!!I`!"l&d!!`!!rrrrrJ!!Tm8!N!33BJ!!!!)!N!3*K!#3'J'9SJ#3(`3\r!N!96D@e`E'8ZF(P'9N08!*!(##!!!!%!N!J(!*!5!94&@&43HA4S!*!)X[aF-E,\rmA$%!!!Nf!!!I"J#3#$k"*"%!!!"r!!(XAJ!$!!$rrrrq!!#XE3#3"""M!!!!!J#\r3"!L%!*!D!C@L!*!I"!#3"90jEQ0S,R"j4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K\r88(PdD!#3#,,mA$+br&`b!!!%hJ!!%#8!N!JaddT)!!!!I`!"l&m!!`!!rrrrrJ!\r!bh-!N!33C!!!!!)!N!3)K!#3'J'9SJ#3(`3!N!98FQ&MC5j`H84@3e3!N"#fX%Y\r4!*!(J!!!!(B!!!!"!*!F%'8!!!!#!!)!N!3'!!!!#!3(!*!E!BbL!*!MF'&bFf9\rb4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K88(PdD!#3#,,mA$Zbr&`l!!!!*!!!!"X\r!N!MRM3ia!!!!J!!"l'%!!`!!rrrrrJ#3#""Q!!!!!J#3"!b%!*!D!CDL!*!I"!#\r3"@4[Bh0dFQPZCbj`H8C@3e3!N!F))!!!!3#3#!F!N")"9%9B9&"jG'J!N!Lbr&`\rmY)[hI3!!"a)!!"CD!*!)8Nde*J!!!)!!!HaL!!-!!2rrrri!!!!E!*!%%'F!!!!\r#!*!%#S3!N"S"PU)!N"m%!*!&CAKKEA"XC5j`H8C@3e3!N!F))!!!!3#3#!F!N")\r"9%9B9%0A588!N!Lbr&`iX[aF13!!!%`!!!"E!*!)#jd`9J!!!)!!!HaM!!-!!2r\rrrri!!"Ce!*!%%'J!!!!#!*!%"B3!N"S"PU)!N"m%!*!&4NP-490'9N08!*!(##!\r!!!%!N!J(!*!5!94&@&45+Q0S!*!)X[aF1VBL868!!!&i!!!#j!#3##%ZRBX!!!#\r!!!(XCJ!$!!$rrrrq!!!@d!#3"""U!!!!!J#3"!D%!*!D!CDL!*!I"!#3"9*&384\r048C@3e3!N!F))!!!!3#3#!F!N")"9%9B9&"jG'J!N!Lbr&`pX[aF23!!!#B!!!!\rG!*!)-k[NS`!!!)!!!HaR!!-!!2rrrri!!"Qd!*!%%'X!!!!#!*!%#B3!N"S"PU)\r!N"m%!*!&FfPYF'aP,R"j4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K88(PdD!#3#,,\rmA$kbr&`q!!!"6J!!!Z8!N!L6Qf0G!!!!J!!"l'J!!`!!rrrrrJ!!'G%!N!33E!!\r!!!)!N!3*K!#3'J'@SJ#3(`3!N!9cEh9bBf8ZF(P'9N08!*!(##!!!!%!N!J(!*!\r5!94&@&43HA4S!*!)X[aF2VA,6bX!!!)-!!!%U3#3#+*S1R8!!!#!!!(XD3!$!!$\rrrrrq!!!FYJ#3"""Y!!!!!J#3"!k%!*!D!CDL!*!I"!#3"A4PFh4IF'&bFf9b,R"\rj4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K83eG*43#3#,,mA$qbr&`r!!!&'J!!%2`\r!N!JSeKiM!!!!J!!"l'S!!`!!rrrrrJ!!)9m!N!33EJ!!!!)!N!3,K!#3'J'@SJ#\r3(`3!N!9dCAKTF(*P,Q4KG%4@3e3!N"#fX%YF!*!(J3!!!(B!!!!"!*!F%'m!!!!\r#!!)!N!3&!!!!#!3(!*!E!BbL!*!MF'4TFh4'9N08!*!(##!!!!%!N!J(!*!5!94\r&@&43HA4S!*!)X[aF4,,mA%3!!!9q!!!2V3#3#%NSr"3!!!#"!!(XE!!$!!$rrrr\rq!*!)%(!!!!!#!*!%#B3!N"S"Pk)!N"m%!*!&BfaTC@jd,R"j4PC$9!#3"`JJ!!!\r"!*!)"`#3%J&849K88(PdD!#3#,,mA%@br&a&!!!&p!!!$TF!N!LlfIIL!!!!J3!\r"l'd!!`!!rrrrrJ!!$kd!N!33F3!!!!)!N!3)K!#3'J'ASJ#3(`3!N!9ME@4QGbj\r`H8C@3e3!N!F))!!!!3#3#!F!N")"9%9B9&"jG'J!N!Lbr&a'X[aF4J!!"QS!!"+\rC!*!)9ATNI`!!!)%!!HaZ!!-!!2rrrri!!"j%!*!%%()!!!!#!*!%#S3!N"S"Pk)\r!N"m%!*!&Bfe`G(*PC5j`H8C@3e3!N!F))!!!!3#3#!F!N")"9%9B9&"jG'J!N!L\rbr&a'X[aF4J!!#fB!!#%6!*!)B&MVD`!!!)%!!Ha[!!-!!2rrrri!!$$G!*!%%(-\r!!!!#!*!%#B3!N"S"Pk)!N"m%!*!&BhCcE'PL,R"j4PC$9!#3"`JJ!!!"!*!)"`#\r3%J&849K88(PdD!#3#,,mA%Hbr&a(!!!(l!!!&I)!N!K10#5j!!!!J3!"l(!!!`!\r!rrrrrJ!!8I!!N!33G!!!!!)!N!3+K!#3'J'ASJ#3(`3!N!9MGR0XEf0V,R"j4PC\r$9!#3"`JJ!!!"!*!)"`#3%J&849K88(PdD!#3#,,mA%#br&a"!!!(q!!!'iS!N!M\r"lQFc!!!!J3!"l(%!!`!!rrrrrJ!!Cq)!N!33G3!!!!)!N!3+K!#3'J'ASJ#3(`3\r!N!9'8e"bEhKj,R"j4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K88(PdD!#3#,,mA%L\rbr&a)!!!!XJ!!!3m!N!K5fCCk!!!!J3!"l()!!`!!rrrrrJ!!Jf`!N!33GJ!!!!)\r!N!3'K!#3'J'ASJ#3(`3!N!9YB@-ZF(P'9N08!*!(##!!!!%!N!J(!*!5!94&@&4\r3HA4S!*!)X[aF5,,mA%J!!!4J!!!,aJ#3#29cAd)!!!#"!!(XF`!$!!$rrrrq!!#\r%H`#3"""h!!!!!J#3""#%!*!D!CHL!*!I"!#3"@eKDf9MD'&ZCf9XEfFZF(P'9N0\r8!*!(##!!!!%!N!J(!*!5!94&@&4$9dP&!*!)X[aF5E-G@KX!!!'N!!!#l`#3##Y\rAS`d!!!#"!!(XG!!$!!$rrrrq!!#3!%%!N!33H!!!!!)!N!3(K!#3'J'ASJ#3(`3\r!N!9bBh0LG@e`4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K88(PdD!#3#,,mA%Ubr&a\r+!!!#h!!!"Hm!N!KNd,!3!!!!J3!"l(8!!`!!rrrrrJ!!Nc!!N!33H3!!!!)!N!3\r-K!#3'J'ASJ#3(`3!N!9bBh0ME'PPER3ZF(P'9N08!*!(##!!!!%!N!J(!*!5!94\r&@&43HA4S!*!)X[aF5V@!+AN!!!am!!!T'!#3#,6VT&J!!!#"!!(XGJ!$!!$rrrr\rq!!#C(`#3"""k!!!!!J#3"!Q%!*!D!CHL!*!I"!#3"A*MFfaTBLj`H8C@3e3!N!F\r))!!!!3#3#!F!N")"9%9B9&"jG'J!N!Lbr&a#X[aF3J!!"GJ!!"*`!*!)r62[4!!\r!!)%!!Hah!!-!!2rrrri!!-)h!*!%%(X!!!!#!*!%#i3!N"S"Pk)!N"m%!*!&8N0\r68(*[H(NZF(P'9N08!*!(##!!!!%!N!J(!*!5!94&@&4$9dP&!*!)X[aF6,-G@K`\r!!!"F!!!!G3#3#"-bQ--!!!#"!!(XH!!$!!$rrrrq!!$8T`#3"""m!!!!!J#3"!5\r%!*!D!CHL!*!I"!#3"A*MGR0'9N08!*!(##!!!!%!N!J(!*!5!94&@&43HA4S!*!\r)X[aF6,,mA%`!!!eL!!!Tk3#3#-"q)XS!!!#"!!(XH3!$!!$rrrrq!!$9(!#3"""\rp!!!!!J#3"!H%!*!D!CHL!*!I"!#3"A*MGR-ZF(P'9N08!*!(##!!!!%!N!J(!*!\r5!94&@&45+Q0S!*!)X[aF3V,mA%)!!!Fk!!!3U!#3#"kSFLd!!!#"!!(XHJ!$!!$\rrrrrq!!$r"3#3"""q!!!!!J#3"!D%!*!D!CHL!*!I"!#3"9*&384048C@3e3!N!F\r))!!!!3#3#!F!N")"9%9B9%0A588!N!Lbr&a0XaeD(!!!!&`!!!"e!*!)X84idJ!\r!!)%!!Hal!!-!!2rrrri!!3qY!*!%%(m!!!!#!*!%")3!N"S"Pk)!N"m%!*!&FR*\rMFdC@3e3!N!F))!!!!3#3#!F!N")"9%9B9&"jG'J!N!Lbr&a1X[aF6J!!"9J!!!f\r3!!#3#&,mBP)!!!#"!!(XI!!$!!$rrrrq!!%3)J#3""#!!!!!!J#3"!H%!*!D!CH\rL!*!I"!#3"A*bBh-ZF(P'9N08!*!(##!!!!%!N!J(!*!5!94&@&43HA4S!*!)X[a\rF6V,mA%i!!!'1!!!$@J#3#-Peq08!!!#"!!(XI3!$!!$rrrrq!!%GXJ#3""#"!!!\r!!J#3"!Z%!*!D!CHL!*!I"!#3"A0PBh9bDA4j,R"j4PC$9!#3"`JJ!!!"!*!)"`#\r3%J&849K88(PdD!#3#,,mA%qbr&a2!!!&GJ!!$ZB!N!M5+R&)!!!!J3!"l(i!!`!\r!rrrrrJ!")3`!N!33JJ!!!!)!N!3*K!#3'J'ASJ#3(`3!N!9cCA*fCA)ZF(P'9N0\r8!*!(##!!!!%!N!J(!*!5!94&@&43HA4S!*!)X[aF8,,mA&!!!!%!!!!"c3#3#1c\rEBh!!!!#"!!(XI`!$!!$rrrrq!!%[mJ#3""#$!!!!!J#3"!U%!*!D!CHL!*!I"!#\r3"A0eEA4bC@8ZF(P%9N08!*!3YGmbJ,AI-Zd!!!##!!!!GJ!!!!%!N"`3K!!!!!)\r!!J#3"!8!!!!)"3F!N"Rrrrrq!!%!N#*`HA0fFNC@3e3!N!F))!!!!3#3#!F!N")\r"9%9B9%0A588!N!Lbr&a8YN#aK!!!#P!!!"b"!*!)j!X-(3!!!3)!!DU'!!-!!2r\rrrri!N!JAD3!!!!)!N!3(K!#3'J)H!!%!N"i&!*!&F(PcGR)ZBdC@3e3!N!F))!!\r!!3#3#!F!N")"9%9B9%0A588!N!Lbr&a5YN#aK!!!!X!!!!9!!*!)EVThm`!!!3)\r!!DU&!!-!!2rrrri!!"b"!*!%&fJ!!!!#!*!%#)3!N"S#(J!"!*!H"3#3"8eKDf9\rQD@aP4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K88LTMD!#3#,,m@r@fhl[m!!!$IJ!\r!"``!N!KX!i26!!!!GJ!"l#8!!J!!rrrrrJ!!)F%!N!33K`!!!!)!N!3'K!#3'J'\r-SJ#3(`3!N!9548&%689%9N08!*!3YV",G3#3"i-!!!"f!!!!!3#3("#)!!!!!J!\r#!*!%!`!!!!J%"`#3'`'-SJ#3)h*`BdC@3e3!N!F))!!!!3#3#!F!N")"9%9B9%0\rA588!N!Lbr&aAX[aF9`!!!)B!!!&T!*!)!6@GN`!!!)-!!Hb%!!-!!2rrrri!N!J\r3L3!!!!)!N!3)K!#3'J'CSJ#3(`3!N!9038j*4N969%C@3e3!N!F))!!!!3#3#!F\r!N")"9%9B9&"jG'J!N!Lbr&aCX[aF@3!!#-)!!"GQ!*!)09'1'!!!!)-!!Hb&!!-\r!!2rrrri!!!&T!*!%%)S!!!!#!*!%$S3!N"S"QD)!N"m%!*!&E@peER4ME'PPER3\rZF(P'9N08!*!(##!!!!%!N!J(!*!5!94&@&43HA4S!*!)X[aF@V,mA&S!!!@U!!!\r43J#3#1HXCMF!!!#$!!(XKJ!$!!$rrrrq!!!Bc`#3""#,!!!!!J#3"!b%!*!D!CQ\rL!*!I"!#3"@jQFf0XD@9ZG#j`H8C@3e3!N!F))!!!!3#3#!F!N")"9%9B9&)UBfJ\r!N!Lbr&aAX[aF9`!!!NB!!!3%!*!)k4"!b`!!!)-!!Hb(!!-!!2rrrri!!#S4!*!\r%%)`!!!!#!*!%"S3!N"S"QD)!N"m%!*!&8N9"4%e&4PC$9!#3"`JJ!!!"!*!)"`#\r3%J&849K88(PdD!#3#,,mA&Ubr&aD!!!#jJ!!#2!!N!K"Z!AF!!!!J`!"l)J!!`!\r!rrrrrJ!!,K8!N!33M3!!!!)!N!33K!#3'J'CSJ#3(`3!N!9bER9cCA*cBfaTC@j\rd,R"j4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K88(PdD!#3#,,mA&Zbr&aE!!!BaJ!\r!@NN!N!L+[p3e!!!!J`!"l)N!!`!!rrrrrJ!!0`8!N!33MJ!!!!)!N!3'K!#3'J'\rCSJ#3(`3!N!9bF'-ZF(P'9N08!*!(##!!!!%!N!J(!*!5!94&@&43HA4S!*!)X[a\rF@,,mA&J!!!%S!!!#(!#3#0f#PJ#3")-!!Hb+!!-!!2rrrri!!*&1!*!%%)m!!!!\r#!*!%")3!N"S"QD)!N"m%!*!&9#j`H8C@3e3!N!F))!!!!3#3#!F!N")"9%9B9%0\rA588!N!Lbr&aFX[aFA!!!!0J!!!+j!*!)SHaIcJ!!!)-!!Hb,!!-!!2rrrri!!*0\rU!*!%%*!!!!!!!J#3"!5%!*!D!CQL!*!I"!#3"A4PFh4'9N08!*!(##!!!!%!N!J\r(!*!5!94&@&43HA4S!*!)X[aFAE,mA&d!!!5i!!!3,J#3#2cSAJB!!!#$!!(XM!!\r$!!$rrrrq!!#@)`#3""#4!!!!!J#3"!D%!*!D!CQL!*!I"!#3"AKNFLj`H84@3e3\r!N"#f`G+H!*!(K!!!!(B!!!!"!*!F%*)!!!!#!!)!N!3(!!!!#!3(!*!E!BbL!*!\rMFf0bDA"dFdC@3e3!N!F))!!!!3#3#!F!N")"9%9B9&"jG'J!N!Lbr&aKX[aFB3!\r!!23!!!("!*!)MZM(a3!!!)3!!Hb1!!-!!2rrrri!N!J3N`!!!!)!N!3(K!#3'J'\rDSJ#3(`3!N!9LC@9b,R"j4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K88(PdD!#3#,,\rmA'+br&aL!!!)e!!!&5J!N!JRJXY*!!!!K!!"l)m!!`!!rrrrrJ!!!F%!N!33P!!\r!!!)!N!3)K!#3'J'DSJ#3(`3!N!9PF@CTH#j`H8C@3e3!N!F))!!!!3#3#!F!N")\r"9%9B9&"jG'J!N!Lbr&aMX[aFB`!!!IS!!!1B!*!)8!F$p!!!!)3!!Hb3!!!$!!$\rrrrrq!!!@k3#3""#9!!!!!J#3"!H%!*!D!CUL!*!I"!#3"@CKBh3ZF(P'9N08!*!\r(##!!!!%!N!J(!*!5!94&@&43HA4S!*!)X[aFC,DkSp`!!!'b!!!$CJ#3#2#h5ci\r!!!#%!!(XN3!$!!$rrrrq!!!DJ3#3""#@!!!!!J#3"!H%!*!D!CUL!*!I"!#3"@C\rbEfdZF(P'9N08!*!(##!!!!%!N!J(!*!5!94&@&43HA4S!*!)X[aFCE,mA'8!!!A\rD!!!1``#3#%Rmi1S!!!#%!!(XNJ!$!!$rrrrq!!!Gj`#3""#A!!!!!J#3"!Z%!*!\rD!CUL!*!I"!#3"@CdF(0dBA4c,R"j4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K88(P\rdD!#3#,,mA'Dbr&aQ!!!%&!!!#GF!N!JSmHK9!!!!K!!"l*-!!`!!rrrrrJ!!,+S\r!N!33Q!!!!!)!N!3+K!#3'J'DSJ#3(`3!N!9XF(GKG'0S,R"j4PC$9!#3"`JJ!!!\r"!*!)"`#3%J&849K88(PdD!#3#,,mA'HcPTDY!!!"(!!!!F%!N!K9T3ZV!!!!K!!\r"l*3!!`!!rrrrrJ!!0S%!N!33Q3!!!!)!N!3+K!#3'J'DSJ#3(`3!N!9YB@YPC'P\rb,R"j4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K88(PdD!#3#,,mA'Lbr&aS!!!&!!!\r!#pd!N!J#*!9e!!!!K!!"l*8!!`!!rrrrrJ!!1%)!N!33QJ!!!!)!N!3*K!#3'J'\rDSJ#3(`3!N!9YBA*VEhBZF(P'9N08!*!(##!!!!%!N!J(!*!5!94&@&43HA4S!*!\r)X[aFDE,mA'N!!!4B!!!+"`#3#$d3U5i!!!#%!!(XPJ!$!!$rrrrq!!"%(`#3""#\rE!!!!!J#3"!k%!*!D!CUL!*!I"!#3"@eLEhKMEfjfCA*d,R"j4PC$9!#3"`JJ!!!\r"!*!)"`#3%J&849K88(PdD!#3#,,mA'Ubr&aU!!!#MJ!!"J`!N!L6%YX)!!!!K!!\r"l*F!!`!!rrrrrJ!!6LB!N!33R!!!!!)!N!3)K!#3'J'DSJ#3(`3!N!9YDh*MFbj\r`H8C@3e3!N!F))!!!!3#3#!F!N")"9%9B9&"jG'J!N!Lbr&aVX[aFD`!!"83!!!c\rD!*!)(-i)9`!!!)3!!HbB!!-!!2rrrri!!&3b!*!%%*d!!!!#!*!%#)3!N"S"QU)\r!N"m%!*!&E@pbFf8ZF(P'9N08!*!(##!!!!%!N!J(!*!5!94&@&43HA4S!*!)X[a\rFE,,mA'`!!!)D!!!$V3#3#2(4r@)!!!#%!!(XQ3!$!!$rrrrq!!"K$!#3""#H!!!\r!!J#3"!L%!*!D!CUL!*!I"!#3"@e`HR"T,R"j4PC$9!#3"`JJ!!!"!*!)"`#3%J&\rA4%*1690A4!#3#,8QTL1e*UBM!!!%F!!!#A)!N!Lh%4Yb!!!!K!!"l*S!!`!!rrr\rrrJ#3#"#I!!!!!J#3"!b%!*!D!CUL!*!I"!#3"@jPGh0XDA0d,Q4[BdC@3e3!N!F\r))!!!!3#3#!F!N")"9%9B9&"jG'J!N!Lbr&aYX[aFEJ!!$k!!!#YK!*!)[HaY(J!\r!!)3!!HbE!!-!!2rrrri!N!J3S!!!!!)!N!3,K!#3'J'DSJ#3(`3!N!9ZCAGcE'P\rcG#j`H8C@3e3!N!F))!!!!3#3#!F!N")"9%9B9&"jG'J!N!Lbr&a[YVUMh!!!!I!\r!!!0p!*!)NQ25e`!!!)3!!HbF!!-!!2rrrri!!#YK!*!%%+%!!!!#!*!%"B3!N"S\r"QU)!N"m%!*!&F'NZF(P'9N08!*!(##!!!!%!N!J(!*!5!94&@&43HA4S!*!)X[a\rFEl,mA'm!!!A#!!!1+3#3#!U"JX!!!!#%!!(XR3!$!!$rrrrq!!!ZhJ#3""#L!!!\r!!J#3"!@%!*!D!CUL!*!I"!#3"A"`,R"j4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K\r88(PdD!#3#,,mA(#br&a`!!!!r!!!!E`!N!Lk%fTG!!!!K!!"l*i!!`!!rrrrrJ!\r!23F!N!33S`!!!!)!N!3*K!#3'J'DSJ#3(`3!N!9`FQPYCA-ZF(P'9N08!*!(##!\r!!!%!N!J(!*!5!94&@&45+Q0S!*!)X[aFAl,mA'!!!!(#!!!$$`#3#"(1[B!!!!#\r%!!(XR`!$!!$rrrrq!!!q``#3""#N!!!!!J#3"!D%!*!D!CUL!*!I"!#3"9*&384\r048C@3e3!N!F))!!!!3#3#!F!N")"9%9B9&"jG'J!N!Lbr&aaX[aFF3!!!AJ!!!,\rR!*!)''kT-3!!!)3!!HbJ!!-!!2rrrri!!%(5!*!%%+8!!!!#!*!%#B3!N"S"QU)\r!N"m%!*!&Ff0bDA"d,R"j4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K88(PdD!#3#,,\rmA(+fZU2F!!!%i!!!$0)!N!M#366C!!!!K!!"l+%!!`!!rrrrrJ!!4,N!N!33TJ!\r!!!)!N!30K!#3'J'DSJ#3(`3!N!9eEQ*TFR4SC'&j,R"j4PC$9!#3"`JJ!!!"!*!\r)"`#3%J&849K88(PdD!#3#,,mA(+br&ab!!!$H!!!#,)!N!JHFU#0!!!!K!!"l+)\r!!`!!rrrrrJ!!8BX!N!33T`!!!!)!N!3*K!#3'J'DSJ#3(`3!N!9eF'4KG'8ZF(P\r'9N08!*!(##!!!!%!N!J(!*!5!94&@&43HA4S!*!)X[aFFl,mA(-!!!"5!!!!@`#\r3#'iGkrF!!!#%!!(XS`!$!!$rrrrq!!"D23#3""#S!!!!!J#3"!@%!*!D!CUL!*!\rI"!#3"AGS,R"j4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K88(PdD!#3#,C!XB@f3,'\r&!!!$)!!!#,i!N!Kb0C!!j3!#,c)!!Lp%!!-!!2rrrri!!&UB!*!%'k!!!!!#!*!\r%#B3!N"S"QU)!N"m%!*!&FA9PC@jc,R"j4&C$9!#3%,D`5m)!N!H&!!!!GJ!!!!%\r!N"`3U3!!!!)!!J#3"!-!!!!)"!F!N"X"M+)!N#0cCfP%9N08!*!3YV",``#3"iB\r!!!#&!!!!!3#3("#U!!!!!`!#!*!%!J!!!!J%"`#3'`'ESJ#3)f&X4PC$9!#3"`J\rJ!!!"!*!)"`#3%J&849K88(PdD!#3#,83%H'e%"(K!!!"F!!!!`X!N!L,`p&G!!!\r!KJ!"l+F!"!!!rrrrrJ#3#"#V!!!!!J#3"!U%!*!D!CbL!*!I"!#3"@&XGf&dBfJ\rZF(P'9N08!*!(##!!!!%!N!J(!*!5!94&@&43HA4S!*!)Y4!4iE83%H%!!!(D!!!\r#j3#3#'TAEr8!!!#'!!(XU!!%!!$rrrrq!!!$#`#3""#X!!!!!J#3"!b%!*!D!Cb\rL!*!I"!#3"@*bEf&NBf&cG#j`H8C@3e3!N!F))!!!!3#3#!F!N")"9%9B9&"jG'J\r!N!Le%"(LY4!4iJ!!!X!!!!D6!*!)@0qB)`!!!)B!!HbT!!3!!2rrrri!!!A`!*!\r%%+d!!!!#!*!%#)3!N"S"R+)!N"m%!*!&Bfe`B@BZF(P'9N08!*!(##!!!!%!N!J\r(!*!5!94&@&4$9dP&!*!)Y4!4iV83%H)!!!&U!!!&&`#3#$fkQQ3!!!#'!!(XUJ!\r%!!$rrrrq!!!-J`#3""#Z!!!!!J#3"!f%!*!D!CbL!*!I"!#3"@0YF'&QAfC[FQd\rZCQ4'9N08!*!(##!!!!%!N!J(!*!5!94&@&43HA4S!*!)Y4!4iV83%H)!!!NF!!!\r8P!#3#"#r'm3!!!#'!!(XU`!%!!$rrrrq!!!4QJ#3""#[!!!!!J#3"!Z%!*!D!Cb\rL!*!I"!#3"@PZG'9bBfpY,R"j4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K88(PdD!#\r3#,83%H+e%"(L!!!"cJ!!!b!!N!L@NL$F!!!!KJ!"l+`!"!!!rrrrrJ!!*Li!N!3\r3X!!!!!)!N!3*K!#3'J'FSJ#3(`3!N!9XDA0dC@iZF(P'9N08!*!(##!!!!%!N!J\r(!*!5!94&@&43HA4S!*!)Y4!4iV83%H)!!!$H!!!"4`#3#'lT2ad!!!#'!!(XV3!\r%!!$rrrrq!!!T6J#3""#a!!!!!J#3"!L%!*!D!CbL!*!I"!#3"@jKE@9c,R"j4PC\r$9!#3"`JJ!!!"!*!)"`#3%J&849K88(PdD!#3#,83%H+e%"(L!!!#4!!!"6`!N!M\rf[e%S!!!!KJ!"l+i!"!!!rrrrrJ!!+T8!N!33XJ!!!!)!N!3,K!#3'J'FSJ#3(`3\r!N!9`E'&jB@PQCLj`H8C@3e3!N!F))!!!!3#3#!F!N")"9%9B9&"jG'J!N!Le%"(\rLY4!4iJ!!!5`!!!'j!*!)PfX23!!!!)B!!Hb[!!3!!2rrrri!!#r4!*!%%,-!!!!\r#!*!%#i3!N"S"R+)!N"m%!*!&F'aKH@*KBfXZF(P'9N08!*!(##!!!!%!N!J(!*!\r5!94&@&43HA4S!*!)Y4!4iV83%H)!!!)5!!!$e`#3##SG"@m!!!#'!!(XX!!%!!$\rrrrrq!!!aLJ#3""#d!!!!!J#3"!U%!*!D!CbL!*!I"!#3"A"XBAP[E'3ZF(P'9N0\r8!*!(##!!!!%!N!J(!*!5!94&@&43HA4S!*!)Y4!4iV83%H)!!!%Q!!!"SJ#3#*C\rMRa`!!!#'!!(XX3!%!!$rrrrq!!!eB3#3""#e!!!!!J#3"!L%!*!D!CbL!*!I"!#\r3"A*KC'P[,R"j4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K88LTMD!#3#,83%H'e%"(\rK!!!"SJ!!!ZJ!N!L8e!AY!!!!KJ!"l,)!"!!!rrrrrJ!!0`-!N!33YJ!!!!)!N!3\r'K!#3'J'FSJ#3(`3!N!9548&%689'9N08!*!(##!!!!%!N!J(!*!5!94&@&43HA4\rS!*!)Y4!4iV83%H)!!!$Z!!!"XJ#3#!&LU9-!!!#'!!(XX`!%!!$rrrrq!!!jk`#\r3""#h!!!!!J#3"!Z%!*!D!CbL!*!I"!#3"A*PBep`E'&j,R"j4PC$9!#3"`JJ!!!\r"!*!)"`#3%J&849K88(PdD!#3#,83%H+e%"(L!!!",J!!!Ed!N!LrC,""!!!!KJ!\r"l,3!"!!!rrrrrJ!!1jd!N!33Z!!!!!)!N!3*K!#3'J'FSJ#3(`3!N!9bC@0[FQ3\rZF(P'9N08!*!(##!!!!%!N!J(!*!5!94&@&43HA4S!*!)Y4!4iV83%H)!!!'#!!!\r#8`#3#%K")(8!!!#'!!(XY3!%!!$rrrrq!!!p@J#3""#j!!!!!J#3"!U%!*!D!Cb\rL!*!I"!#3"A9ZD@0KFh3ZF(P'9N08!*!(##!!!!%!N!J(!*!5!94&@&43HA4S!*!\r)Y4!4iV83%H)!!!$'!!!"03#3#03q[38!!!#'!!(XYJ!%!!$rrrrq!!!rV3#3""#\rk!!!!!J#3"!5%!*!D!CbL!*!I"!#3"AJZF(P%9N08!*!3YV",a3#3"iF!!!#&!!!\r!!3#3("#l!!!!!`!#!*!%"3!!!!J%"`#3'`'ESJ#3)f&eC'P[4PC$9!#3"`JJ!!!\r"!*!)"`#3%J&849K88(PdD!#3#,83%H+e%"(L!!!#&!!!"4-!N!J#)#48!!!!K`!\r"l,J!"!!!rrrrrJ#3#"#m!!!!!J#3"!H%!*!D!CfL!*!I"!#3"A"XBANZF(P'9N0\r8!*!(##!!!!%!N!J(!*!5!94&@&45+Q0S!*!)Y4!4iV83%H)!!!$Q!!!"63#3#+`\rPTA-!!!#(!!(XZ3!%!!$rrrrq!!!&%`#3""#p!!!!!J#3"!D%!*!D!CfL!*!I"!#\r3"9*&3840484@3e3!N"#fX%[&!*!(L3!!!)8!!!!"!*!F%--!!!!$!!)!N!3#!!!\r!#!3(!*!E!CZL!*!MBf4'9N08!*!(##!!!!%!N!J(!*!5!9G%3Nj08eG%!*!)Y4!\r4il83%H-!!!1J!!!)6`#3#"X$a!)!!!#*!!(X`!!%!!$rrrrq!*!)%-3!!!!#!*!\r%"S3!N"S"Rk)!N"m%!*!&3d3ZC'pM4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K88(P\rdD!#3#,83%H1e%"(M!!!"@J!!!Nd!N!L#CJr[!!!!L3!"l-%!"!!!rrrrrJ#3#"$\r&!!!!!J#3"!Q%!*!D!CqL!*!I"!#3"@0NB@PQCLj`H8C@3e3!N!F))!!!!3#3#!F\r!N")"9%9B9&"jG'J!N!Le%"(MY4!4i`!!!3S!!!'X!*!)3BCS0J!!!)N!!Hc$!!3\r!!2rrrri!!!*0!*!%%-F!!!!#!*!%#B3!N"S"Rk)!N"m%!*!&E'PcG'0N,R"j4PC\r$9!#3"`JJ!!!"!*!)"`#3%J&849K88(PdD!#3#,83%H1e%"(M!!!%DJ!!#R!!N!J\rqFPd&!!!!L3!"l-3!"!!!rrrrrJ!!!rN!N!33b!!!!!)!N!3*K!#3'J'ISJ#3(`3\r!N!9`E'&jBf3ZF(P'9N08!*!(##!!!!%!N!J(!*!5!94&@&45+Q0S!*!)Y4!4il8\r3%H-!!!)d!!!%)!#3#'D6M2!!!!#*!!(Xa3!%!!$rrrrq!!!1D3#3""$*!!!!!J#\r3"!D%!*!D!CqL!*!I"!#3"9*&384048C@3e3!N!F))!!!!3#3#!F!N")"9%9B9&"\rjG'J!N!Le%"(MY4!4i`!!!F)!!!,p!*!)c!5@D!!!!)N!!Hc'!!3!!2rrrri!!"+\r*!*!%%-S!!!!#!*!%#B3!N"S"Rk)!N"m%!*!&FQ9MGQ0N,R"j4PC$9!#3"`JJ!!!\r"!*!)"`#3%J&849K88(PdD!#3#,83%H1e%"(M!!!&k!!!$Vi!N!MDck$-!!!!L3!\r"l-F!"!!!rrrrrJ!!&BB!N!33b`!!!!)!N!3*K!#3'J'ISJ#3(`3!N!9cC@jNBf3\rZF(P%9N08!*!3YV",aJ#3"iS!!!#&!!!!!3#3("$-!!!!!`!#!*!%!`!!!!J%"`#\r3'`'ESJ#3)fCXF%C@3e3!N!F))!!!!3#3#!F!N")"9%9B9%0A588!N!Le%"(MY4!\r4i`!!!3S!!!,H!*!)"1)Gh3!!!)S!!Hc*!!3!!2rrrri!N!J3c3!!!!)!N!3*K!#\r3'J'JSJ#3(`3!N!9dBf&MD'8ZCQ4'9N08!*!(##!!!!%!N!J(!*!5!94&@&43HA4\rS!*!)Y4!4il83%H-!!!%8!!!"j`#3#+f3!"bm!!!!LJ!"l-S!"!!!rrrrrJ!!!Yi\r!N!33cJ!!!!)!N!3*K!#3'J'JSJ#3(`3!N!9dBf&MD'8ZF(P'9N08!*!(##!!!!%\r!N!J(!*!5!94&@&4$9dP&!*!)Y4!4il83%H-!!!&!!!!%5J#3#1J[r`8!!!#+!!(\rXb`!%!!$rrrrq!!!%a3#3""$2!!!!!J#3"!U%!*!D!D#L!*!I"!#3"A4PFh4IBf)\rZCQ4'9N08!*!(##!!!!%!N!J(!*!5!94&@&43HA4S!*!)Y4!4il83%H-!!!,'!!!\r&k`#3#(,N8TN!!!#+!!(Xc!!%!!$rrrrq!!!*$`#3""$3!!!!!J#3"!U%!*!D!D#\rL!*!I"!#3"A4PFh4IBf)ZF(P'9N08!*!(##!!!!%!N!J(!*!5!94&@&4$9dP&!*!\r)Y4!4il83%H-!!!%b!!!%+3#3#16K@p3!!!#+!!(Xc3!%!!$rrrrq!!!1qJ#3""$\r4!!!!!J#3"!b%!*!D!D#L!*!I"!#3"A4PFh4IEQpMBLjQC%C@3e3!N!F))!!!!3#\r3#!F!N")"9%9B9&"jG'J!N!Le%"(NY4!4j!!!!J3!!!3i!*!)b8d%GJ!!!)S!!Hc\r1!!3!!2rrrri!!"-M!*!%%0)!!!!#!*!%$)3!N"S"S+)!N"m%!*!&G'9cG&pZEf0\rL,R"j4&C$9!#3%,D`5mF!N!H,!!!!K3!!!!%!N"`3d`!!!!-!!J#3"!)!!!!)"!F\r!N"X"Qk)!N#0RE%C@3e3!N!F))!!!!3#3#!F!N")"9%9B9&"jG'J!N!Le%"(NY4!\r4j!!!!`)!!!M8!*!)9CYHh3!!!)X!!Hc3!!3!!2rrrri!N!J3e!!!!!)!N!3,K!#\r3'J'KSJ#3(`3!N!9LB@0VCQ&MC5j`H8C@3e3!N!F))!!!!3#3#!F!N")"9%9B9&"\rjG'J!N!Le%"(NY4!4j!!!!2S!!!'D!*!)`2BR2!!!!)X!!Hc4!!3!!2rrrri!!!M\r8!*!%%08!!!!#!*!%#B3!N"S"SD)!N"m%!*!&CfaTEQC[,R"j4PC$9!#3"`JJ!!!\r"!*!)"`#3%J&849K88(PdD!#3#,83%H5ePp[F!!!'[!!!$f3!N!Ke`Nph!!!!L`!\r"l0)!"!!!rrrrrJ!!#Qi!N!33i!!!!!)!N!3)K!#3'J'KSJ#3(`3!N!9VDA4PFbj\r`H8C@3e3!N!F))!!!!3#3#!F!N")"9%9B9&"jG'J!N!Le%"(NY4!4j!!!#qS!!$%\r"!*!)Z5kjK`!!!)X!!Hc6!!3!!2rrrri!!"R5!*!%%1%!!!!#!*!%#)3!N"S"SD)\r!N"m%!*!&Dh9ZFh3ZF(P'9N08!*!(##!!!!%!N!J(!*!5!9G%3Nj08eG%!*!)Y4!\r4j,83%H3!!!5q!!!*@!#3#+6!BJi!!!#,!!(Xe!!%!!$rrrrq!*!)%1)!!!!#!*!\r%#S3!N"S"SD)!N"m%!*!&E@0XEf0V,Q4[BdC@3e3!N!F))!!!!3#3#!F!N")"9%9\rB9&"jG'J!N!Le%"(NY4!4j!!!&hS!!%RT!*!)Qr,ep!!!!)X!!Hc9!!3!!2rrrri\r!N!J3i`!!!!)!N!3*K!#3'J'KSJ#3(`3!N!9YBfa[BfXZF(P'9N08!*!(##!!!!%\r!N!J(!*!5!94&@&43HA4S!*!)Y4!4j,83%H3!!!2b!!!)D3#3#,B+rG8!!!#,!!(\rXeJ!%!!$rrrrq!!"*k3#3""$N!!!!!J#3"!Q%!*!D!D'L!*!I"!#3"@eTH'PZCbj\r`H8C@3e3!N!F))!!!!3#3#!F!N")"9%9B9&"jG'J!N!Le%"(NY4!4j!!!"13!!!b\rb!*!)(H!j)!!!!)X!!HcA!!3!!2rrrri!!&*5!*!%%18!!!!#!*!%#)3!N"S"SD)\r!N"m%!*!&ER9bBR-ZF(P'9N08!*!(##!!!!%!N!J(!*!5!94&@&45+Q0S!*!)Y4!\r4j,83%H3!!!,d!!!&B!#3#1`@ZCF!!!#,!!(Xf!!%!!$rrrrq!!"I"!#3""$Q!!!\r!!J#3"!D%!*!D!D'L!*!I"!#3"9*&384048C@3e3!N!F))!!!!3#3#!F!N")"9%9\rB9&"jG'J!N!Le%"(NY4!4j!!!"+!!!!Yp!*!)J`S4D!!!!)X!!HcC!!3!!2rrrri\r!!'4N!*!%%1F!!!!#!*!%"i3!N"S"SD)!N"m%!*!&HR*RBLj`H8C@3e3!N!F))!!\r!!3#3#!F!N")"9%9B9&)UBfJ!N!Le%"(KY4!4i3!!!@S!!!,p!*!)6Q`#5J!!!)8\r!!HbP!!-!!2rrrri!!'rK!*!%%1J!!!!#!*!%"S3!N"S"Qk)!N"m%!*!&8N9"4%e\r&4&C$9!#3%,D`5mJ!N!H0!!!!K3!!!!%!N"`3k3!!!!-!!J#3"!)!!!!)"!F!N"X\r"Qk)!N#0cGNC@3e3!N!F))!!!!3#3#!F!N")"9%9B9&"jG'J!N!Le%"(PY4!4j3!\r!!SJ!!!6A!*!)j`A2h!!!!)d!!HcP!!3!!2rrrri!N!J3kJ!!!!)!N!3-K!#3'J'\rMSJ#3(`3!N!9LGA*cG'0KF(3ZF(P'9N08!*!(##!!!!%!N!J(!*!5!94&@&43HA4\rS!*!)Y4!4jE83%H8!!!4+!!!+2`#3#'@8i$!!!!#0!!(XjJ!%!!$rrrrq!!!%e`#\r3""$V!!!!!J#3"!Z%!*!D!D1L!*!I"!#3"@0[ER4MBA"d,R"j4PC$9!#3"`JJ!!!\r"!*!)"`#3%J&849K88LTMD!#3#,83%H@e%"(P!!!#)!!!!mF!N!J'BcID!!!!M3!\r"l1F!"!!!rrrrrJ!!$aB!N!33l!!!!!)!N!3'K!#3'J'MSJ#3(`3!N!9548&%689\r'9N08!*!(##!!!!%!N!J(!*!5!94&@&43HA4S!*!)Y4!4jE83%H8!!!-B!!!([!#\r3#,ACa(`!!!#0!!(Xk!!%!!$rrrrq!!!5h3#3""$Y!!!!!J#3"!U%!*!D!D1L!*!\rI"!#3"A*RBQGbB@)ZF(P'9N08!*!(##!!!!%!N!J(!*!5!94&@&43HA4S!*!)Y4!\r4jE83%H8!!!%Z!!!"p!#3#2%90cB!!!#0!!(Xk3!%!!$rrrrq!!!DQ3#3""$Z!!!\r!!J#3"!k%!*!D!D1L!*!I"!#3"A0TEA"XC@PZF(9d,R"j4&C$9!#3%,D`5mJ!N!H\r1!!!!K3!!!!%!N"`3l`!!!!-!!J#3"!8!!!!)"!F!N"X"Qk)!N#0fD@4PEdC@3e3\r!N!F))!!!!3#3#!F!N")"9%9B9&"jG'J!N!Le%"(TY4!4k3!!"BB!!!p1!*!)8Um\rU&!!!!)i!!HcV!!3!!2rrrri!N!J3m!!!!!)!N!3)K!#3'J'NSJ#3(`3!N!9KF'a\rKH5j`H8C@3e3!N!F))!!!!3#3#!F!N")"9%9B9%0A588!N!Le%"(UY4!4kJ!!#d!\r!!"dr!*!)8k3C13!!!)i!!HcX!!3!!2rrrri!!!p1!*!%%2%!!!!#!*!%$)3!N"S\r"T+)!N"m%!*!&BfeTCLeQD@aY,Qec4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K88(P\rdD!#3#,83%H@e%"(P!!!$Z!!!#QF!N!J5p4Zk!!!!MJ!"l1d!"!!!rrrrrJ!!,)d\r!N!33mJ!!!!)!N!34K!#3'J'NSJ#3(`3!N!9%DA0`E'&j9QPNC@p*ELj`H8C@3e3\r!N!F))!!!!3#3#!F!N")"9%9B9&"jG'J!N!Le%"(PY4!4j3!!"XJ!!"'*!*!)[@m\rYF3!!!)i!!HcZ!!3!!2rrrri!!$Ed!*!%%2-!!!!#!*!%#)3!N"S"T+)!N"m%!*!\r&4(0PEQ3ZF(P'9N08!*!(##!!!!%!N!J(!*!5!94&@&43HA4S!*!)Y4!4kl83%HX\r!!!5Q!!!0lJ#3#&THilN!!!#1!!(Xl`!%!!$rrrrq!!")I3#3""$d!!!!!J#3"!U\r%!*!D!D5L!*!I"!#3"@PYCf0[ERBZF(P'9N08!*!(##!!!!%!N!J(!*!5!94&@&4\r3HA4S!*!)Y4!4jE83%H8!!!BQ!!!3-3#3#2fj3*!!!!!!MJ!"l2!!"!!!rrrrrJ!\r!9QX!N!33p3!!!!)!N!31K!#3'J'NSJ#3(`3!N!9-DACP9QPNC@p*ELj`H8C@3e3\r!N!F))!!!!3#3#!F!N")"9%9B9&"jG'J!N!Le%"(PY4!4j3!!"4!!!!fj!*!)j[S\r3'J!!!)i!!Hca!!3!!2rrrri!!'DF!*!%%2B!!!!#!*!%$i3!N"S"T+)!N"m%!*!\r&6'PfC9CTC'9[6h9d,R"j4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K88(PdD!#3#,8\r3%H@ePp[F!!!%NJ!!$"%!N!MZ2Rk9!!!!MJ!"l2)!"!!!rrrrrJ!!G&8!N!33p`!\r!!!)!N!3,K!#3'J'NSJ#3(`3!N!92E'4@Bfp`H5j`H8C@3e3!N!F))!!!!3#3#!F\r!N")"9%9B9&)UBfJ!N!Le%"(PY4!4jJ!!"Z)!!!la!*!)mA#3!"N!!!#1!!(Xm`!\r%!!$rrrrq!!#!CJ#3""$i!!!!!J#3"!D%!*!D!D5L!*!I"!#3"9*&384048C@3e3\r!N!F))!!!!3#3#!F!N")"9%9B9&"jG'J!N!Le%"(VY4!4k`!!!Xi!!!CV!*!)[d6\r-f!!!!)i!!Hcd!!3!!2rrrri!!)pA!*!%%2N!!!!#!*!%$)3!N"S"T+)!N"m%!*!\r&FQGL-RCTC'9[,R"j4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K88(PdD!#3#,83%HZ\re%"(V!!!!MJ!!!,S!N!L#ckPR!!!!MJ!"l28!"!!!rrrrrJ!!PF)!N!33qJ!!!!)\r!N!3,K!#3'J'NSJ#3(`3!N!9cC@jNC'9QFbj`H8C@3e3!N!F))!!!!3#3#!F!N")\r"9%9B9&"jG'J!N!Le%"(QY4!4jJ!!!P3!!!6[!*!)K&(`6!!!!)i!!Hcf!!3!!2r\rrrri!!*Cm!*!%%2X!!!!#!*!%$)3!N"S"T+)!N"m%!*!&9Q&NC'0KBfKP,R"j4PC\r$9!#3"`JJ!!!"!*!)"`#3%J&849K88(PdD!#3#,83%HDe%"(Q!!!EVJ!!A!#3#G9\r49[F!!!#1!!(Xp`!%!!$rrrrq!!#ED`#3""$m!!!!!J#3"!@%!*!D!D5L!*!I"!#\r3"9CL,R"j4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K83eG*43#3#,83%HDe%"(Q!!!\r%!!!!)F3!N!J6)CIR!!!!MJ!"l2J!"!!!rrrrrJ!!pfX!N!33r3!!!!)!N!3*K!#\r3'J'NSJ#3(`3!N!9@BNC[FQdZCQ4'9N08!*!(##!!!!%!N!J(!*!5!94&@&43HA4\rS!*!)Y4!4jV@!+AS!!!N'!!!CdJ#3#%B$rM-!!!#1!!(Xq3!%!!$rrrrq!!%C,`#\r3""$q!!!!!J#3"!L%!*!D!D5L!*!I"!#3"9CMEh"j,R"j4PC$9!#3"`JJ!!!"!*!\r)"`#3%J&849K88(PdD!#3#,83%HDe%"(Q!!!04J!!,@i!N!LM4kk[!!!!MJ!"l2S\r!"!!!rrrrrJ!"-`%!N!33r`!!!!)!N!3'K!#3'J'NSJ#3(`3!N!9@3e)ZF(P'9N0\r8!*!(##!!!!%!N!J(!*!5!94&@&43HA4S!*!)Y4!4jV83%HB!!!E+!!!G0!#3#+0\rK(,i!!!#1!!(Xq`!%!!$rrrrq!*!)%3#3"!)!N!3,K!#3'J'NSJ#3(`3!N!9@Bh*\r*EQ4PH#j`H8C@3e3!N!F))!!!!3#3#!F!N")"9%9B9&"jG'J!N!Le%"(RY4!4j`!\r!"cJ!!"PD!*!)P"9KRJ!!!)i!!Hcm!!3!!2rrrri!!"dd!*!%%3%!!!!#!*!%#)3\r!N"S"T+)!N"m%!*!&9Q9NDA3ZF(P'9N08!*!(##!!!!%!N!J(!*!5!94&@&4$9dP\r&!*!)Y4!4jl83%HF!!!,D!!!Af`#3#,M%5hX!!!#1!!(Xr3!%!!$rrrrq!!!fMJ#\r3""%#!!!!!J#3"!b%!*!D!D5L!*!I"!#3"9CPC'Pd4QpbE5jQC%C@3e3!N!F))!!\r!!3#3#!F!N")"9%9B9&"jG'J!N!Le%"(QY4!4jJ!!)9B!!(Bq!*!)fq-UZ3!!!)i\r!!Hcq!!3!!2rrrri!!%jT!*!%%3-!!!!#!*!%#)3!N"S"T+)!N"m%!*!&9NCTE'8\rZF(P'9N08!*!(##!!!!%!N!J(!*!5!94&@&43HA4S!*!)Y4!4jl83%HF!!!-@!!!\r(FJ#3#%(XT3N!!!#1!!(Xr`!%!!$rrrrq!!$%T`#3""%%!!!!!J#3"!H%!*!D!D5\rL!*!I"!#3"9CQDAJZF(P'9N08!*!(##!!!!%!N!J(!*!5!94&@&43HA4S!*!)Y4!\r4jl83%HF!!!"+!!!!6`#3#*0Q$`F!!!#1!!(Y!!!%!!$rrrrq!!$-'3#3""%&!!!\r!!J#3"!Z%!*!D!D5L!*!I"!#3"9CRC@jPFQPM,R"j4PC$9!#3"`JJ!!!"!*!)"`#\r3%J&849K88(PdD!#3#,83%HDe%"(Q!!!$P!!!#2d!N!Lf%V@8!!!!MJ!"l3%!"!!\r!rrrrrJ!!c'J!N!34"J!!!!)!N!3,K!#3'J'NSJ#3(`3!N!9@4h*KBQ*PFLj`H8C\r@3e3!N!F))!!!!3#3#!F!N")"9d4#6Ne69d3!N!Le%"(VY4!4k`!!#0S!!"0L!*!\r)2@M$#J!!!)i!!Hd#!!3!!2rrrri!N!J4"`!!!!)!N!3*K!#3'J'NSJ#3(`3!N!9\rfD@4PEbjNEf0'9N08!*!(##!!!!%!N!J(!*!5!94&@&43HA4S!*!)Y4!4l,83%H`\r!!!8U!!!-G`#3#2fXFPi!!!#1!!(Y!`!%!!$rrrrq!*!)%3J!!!!#!*!%$)3!N"S\r"T+)!N"m%!*!&GQPNC@mbFQGL,R"j4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K88(P\rdD!#3#,83%HLe%"(S!!!%[!!!%h)!N!MbL`&I!!!!MJ!"l33!"!!!rrrrrJ!!$(F\r!N!34#3!!!!)!N!3*K!#3'J'NSJ#3(`3!N!9@D@9hCA)ZF(P'9N08!*!(##!!!!%\r!N!J(!*!5!94&@&43HA4S!*!)Y4!4k,83%HJ!!!9N!!!0[`#3#2!&&#J!!!#1!!(\rY"3!%!!$rrrrq!!!Ik3#3""%+!!!!!J#3"!L%!*!D!D5L!*!I"!#3"9CTEQC[,R"\rj4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K88(PdD!#3#,83%HLe%"(S!!!#l!!!"d8\r!N!Lqk'Dk!!!!MJ!"l3B!"!!!rrrrrJ!!,DJ!N!34#`!!!!)!N!3+K!#3'J'NSJ#\r3(`3!N!9@E@YUF'9R,R"j4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K88(PdD!#3#,8\r3%HLe%"(S!!!-#!!!)&!!N!M+re,f!!!!MJ!"l3F!"!!!rrrrrJ!!01d!N!34$!!\r!!!)!N!3)K!#3'J'NSJ#3(`3!N!9@F'aKH5j`H8C@3e3!N!F))!!!!3#3#!F!N")\r"9%9B9&"jG'J!N!Le%"(SYCIEh!!!$V`!!#G#!*!)U`pZ,J!!!)i!!Hd)!!3!!2r\rrrri!!&8p!*!%%3d!!!!#!*!%"i3!N"S"T+)!N"m%!*!&9R*PBbj`H8C@3e3!N!F\r))!!!!3#3#!F!N")"9%9B9&"jG'J!N!Le%"(TYCIEh!!!$bS!!#Pq!*!)[4r'S!!\r!!)i!!Hd*!!3!!2rrrri!!(ar!*!%%3i!!!!#!*!%#)3!N"S"T+)!N"m%!*!&9R*\rPBf)ZF(P'9N08!*!(##!!!!%!N!J(!*!5!94&@&43HA4S!*!)Y4!4kE83%HN!!!@\r+!!!,H`#3#,fU'M3!!!#1!!(Y#J!%!!$rrrrq!!#Pr3#3""%2!!!!!J#3"!Z%!*!\rD!D5L!*!I"!#3"9CbC@0PDACP,R"j4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K88(P\rdD!#3#,83%HQe%"(T!!!&T!!!$Ed!N!Mj"8T9!!!!MJ!"l3X!"!!!rrrrrJ!!XAJ\r!N!34%!!!!!)!N!3)K!#3'J'NSJ#3(`3!N!9@Ff9ZC#j`H8C@3e3!N!F))!!!!3#\r3#!F!N")"9%9B9&"jG'J!N!Le%"(TY4!4k3!!!1i!!!&c!*!)%jZXAJ!!!)i!!Hd\r-!!3!!2rrrri!!,me!*!%%4%!!!!#!*!%#)3!N"S"T+)!N"m%!*!&9R0dBA3ZF(P\r'9N08!*!(##!!!!%!N!J(!*!5!94&@&43HA4S!*!)Y4!4kE@!+AS!!!2B!!!*#`#\r3#%$#+c%!!!#1!!(Y$3!%!!$rrrrq!!$!U!#3""%5!!!!!J#3"!L%!*!D!D5L!*!\rI"!#3"9CdD@eP,R"j4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K88(PdD!#3#,83%HQ\re%"(T!!!$)!!!"lS!N!LJlb,L!!!!MJ!"l3i!"!!!rrrrrJ!!bE-!N!34%`!!!!)\r!N!3+K!#3'J'NSJ#3(`3!N!9@G@jUF'9R,R"j4PC$9!#3"`JJ!!!"!*!)"`#3%J&\r849K88(PdD!#3#,83%Hbe%"(X!!!"FJ!!!`d!N!MaU%JS!!!!MJ!"l3m!"!!!rrr\rrrJ!!d@d!N!34&!!!!!)!N!31K!#3'J'NSJ#3(`3!N!9hBA4MD'0eFR0[FLj`H84\r@3e3!N"#fX%[1!*!(M`!!!(B!!!!"!*!F%48!!!!#!!)!N!3(!!!!#!3(!*!E!Bb\rL!*!MFfpMDf9dFdC@3e3!N!F))!!!!3#3#!F!N")"9%9B9&"jG'J!N!Lbr&c!X[a\rF`!!!!03!!!%4!*!)mb#"E3!!!)m!!Hd4!!-!!2rrrri!N!J4&J!!!!)!N!3-K!#\r3'J'PSJ#3(`3!N!9LFQpKC'0KFh3ZF(P'9N08!*!(##!!!!%!N!J(!*!5!94&@&4\r3HA4S!*!)X[aF`,AE06`!!!'X!!!#T!#3#-c3YUd!!!#2!!(Y%J!$!!$rrrrq!!!\r"%3#3""%A!!!!!J#3"!U%!*!D!D@L!*!I"!#3"@9MD'pcGR)ZF(P'9N08!*!(##!\r!!!%!N!J(!*!5!94&@&43HA4S!*!)X[aF`,AE06`!!!*X!!!%F3#3#+"B"HX!!!#\r2!!(Y%`!$!!$rrrrq!!!$Y3#3""%B!!!!!J#3"!Q%!*!D!D@L!*!I"!#3"@CTEQG\rPFLj`H8C@3e3!N!F))!!!!3#3#!F!N")"9%9B9&"jG'J!N!Lbr&c!YGXe2!!!"Q!\r!!!iT!*!)9BhpQ!!!!)m!!Hd8!!-!!2rrrri!!!JQ!*!%%4N!!!!#!*!%"S3!N"S\r"TD)!N"m%!*!&CR4`,R"j4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K88(PdD!#3#,,\rmA-#br&c!!!!+d!!!)%F!N!KMb#UT!!!!M`!"l48!!`!!rrrrrJ!!&Nm!N!34'J!\r!!!)!N!3*K!#3'J'PSJ#3(`3!N!9REh"SCA)ZF(P'9N08!*!(##!!!!%!N!J(!*!\r5!94&@&43HA4S!*!)X[aF`,3DEJN!!!4-!!!)EJ#3#"G[Yp3!!!#2!!(Y&J!$!!$\rrrrrq!!!fPJ#3""%E!!!!!J#3"!L%!*!D!D@L!*!I"!#3"@eMBA0d,R"j4PC$9!#\r3"`JJ!!!"!*!)"`#3%J&849K88(PdD!#3#,,mA-'br&c"!!!!e!!!!4)!N!L5aFk\rS!!!!M`!"l4F!!`!!rrrrrJ!!2`3!N!34(!!!!!)!N!3)K!#3'J'PSJ#3(`3!N!9\rbB@4TEbj`H8C@3e3!N!F))!!!!3#3#!F!N")"9%9B9&)UBfJ!N!Lbr&brX[aF[`!\r!!F!!!!0Y!*!)&9L3!!#3")m!!HdB!!-!!2rrrri!!%!@!*!%%4d!!!!#!*!%"S3\r!N"S"TD)!N"m%!*!&8N9"4%e&4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K88(PdD!#\r3#,,mA-'br&c"!!!"K!!!!RN!N!MZ#$iG!!!!M`!"l4N!!`!!rrrrrJ!!3i-!N!3\r4(J!!!!)!N!3+K!#3'J'PSJ#3(`3!N!9bF(PdD'pZ,R"j4PC$9!#3"`JJ!!!"!*!\r)"`#3%J&849K88(PdD!#3#,,mA-'efc8m!!!#+J!!"!S!N!L-(),&!!!!M`!"l4S\r!!`!!rrrrrJ!!4I`!N!34(`!!!!)!N!3,K!#3'J'PSJ#3(`3!N!9bF(PdD'pZC#j\r`H8C@3e3!N!F))!!!!3#3#!F!N")"9%9B9&"jG'J!N!Lbr&c"YGXe2!!!"")!!!N\r6!*!)-FebF`!!!)m!!HdE!!-!!2rrrri!!%S'!*!%%5!!!!!#!*!%#B3!N"S"TD)\r!N"m%!*!&G'9XEQ9d,R"j4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K88(PdD!#3#,,\rmA-'efc8m!!!$2!!!"aB!N!KqSl*%!!!!M`!"l4`!!`!!rrrrrJ!!8aN!N!34)3!\r!!!)!N!30K!#3'J'PSJ#3(`3!N!9dD(*[G@GSF(9d,R"j4PC$9!#3"`JJ!!!"!*!\r)"`#3%J&849K88(PdD!#3#,,mA-'efc8p!!!#&J!!"33!N!M3843L!!!!M`!"l4d\r!!`!!rrrrrJ!!@Lm!N!34)J!!!!)!N!3+K!#3'J'PSJ#3(`3!N!9eC("PBfK[,R"\rj4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K88(PdD!#3#,,mA-'br&c#!!!!Y!!!!0`\r!N!LbZU-M!!!!M`!"l4i!!`!!rrrrrJ!!Ac-!N!34)`!!!!)!N!3+K!#3'J'PSJ#\r3(`3!N!9eEQPMBA0d,R"j4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K88(PdD!#3#,,\rmA-+br&c#!!!!YJ!!!0d!N!MbD@!,!!!!M`!"l4m!!`!!rrrrrJ!!B!m!N!34*!!\r!!!)!N!30K!#3'J'PSJ#3(`3!N!9eEQPiBfaTC@jd,R"j4PC$9!#3"`JJ!!!"!*!\r)"`#3%J&849K88(PdD!#3#,,mA-+br&c#!!!"$J!!!Ai!N!MJL6AA!!!!M`!"l5!\r!!`!!rrrrrJ!!B1`!N!34*3!!!!)!N!30K!#3'J'PSJ#3(`3!N!9eEQPiFf9bGQ9\rb,R"j4&C$9!#3%,EQVfUfjUpU!!!!NJ!!!(B!!!!"!*!F%8!!!!!#!!)!N!3(!!!\r!#!3(!*!E!BbL!*!MG'KbC@&NFdC@3e3!N!F))!!!!3#3#!F!N")"9%9B9&"jG'J\r!N!Le%"(bYT1P!!!!"(`!!!L`!*!)11@MG3!!!*)!!Hdm!!-!!2rrrri!N!J433!\r!!!)!N!3'K!#3'J'SSJ#3(`3!N!9LG@FZF(P'9N08!*!(##!!!!%!N!J(!*!5!94\r&@&43HA4S!*!)Y4!4mVD6T3!!!!BN!!!34!#3#*`CD6B!!!#5!!(Y23!$!!$rrrr\rq!!!)X!#3""&#!!!!!J#3"!H%!*!D!DLL!*!I"!#3"@CTEQ3ZF(P'9N08!*!(##!\r!!!%!N!J(!*!5!94&@&43HA4S!*!)Y4!4mE83%I%!!!-+!!!(q`#3#$@T44N!!!#\r5!!(Y2J!$!!$rrrrq!!!Bp!#3""&$!!!!!J#3"!b%!*!D!DLL!*!I"!#3"8GPEQ9\rbBA4[FLj`H8C@3e3!N!F))!!!!3#3#!F!N")"9%9B9&)UBfJ!N!Le%"(aYN#aK3!\r!!9S!!!*`!*!)i![qU!!!!*)!!Hdr!!-!!2rrrri!!#$[!*!%%83!!!!#!*!%"S3\r!N"S"U+)!N"m%!*!&8N9"4%e&4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K88(PdD!#\r3#,83%I+e%"(b!!!BfJ!!9*-!N!Kjq*1)!!!!NJ!"l8!!!`!!rrrrrJ!!)em!N!3\r443!!!!)!N!3(K!#3'J'SSJ#3(`3!N!9cH@jM,R"j4PC$9!#3"`JJ!!!"!*!)"`#\r3%J&849K88(PdD!#3#,83%I+fNk8"!!!%@J!!$!%!N!K*5khr!!!!NJ!"l8%!!`!\r!rrrrrJ!!Gr)!N!344J!!!!)!N!3*K!#3'J'SSJ#3(`3!N!9dC@aZCA3ZF(P'9N0\r8!*!(##!!!!%!N!J(!*!5!94&@&43HA4S!*!)YN#aKEC!XB8!!!HZ!!!9X`#3#2#\r'*5X!!Lqk!!)[[!!$!!$rrrrq!!#$m`#3""ZI!!!!!J#3"!b%!*!D!DLL!*!I"!#\r3"80[FQpeG'PZC5j`H8C@3e3!N!F))!!!!3#3#!F!N")"9%9B9&"jG'J!N!Lf3,'\r3!,EKQ"8!!!*q!!!'h3#3#,GHKd-!!Lqk!!)[[3!$!!$rrrrq!!#CTJ#3""ZH!!!\r!!J#3"!H%!*!D!DLL!*!I"!#3"@CMEA!ZF(P'9N08!*!(##!!!!%!N!J(!*!5!94\r&@&43HA4S!*!)YN#aN!#fiCJ9!!!%G!!!#pi!N!Mr40,L!!)[ZJ!#,m%!!`!!rrr\rrrJ!!S)-!N!3ER3!!!!)!N!3,K!#3'J'SSJ#3(`3!N!9cFA9KFfKPFLj`H84@3e3\r!N"#fX%[3!*!(N`!!!(B!!!!"!*!F%8J!!!!#!!)!N!3(!!!!#!3(!*!E!BbL!*!\rMG'YTER4PFN4@3e3!N"#fX%[3!*!(P!!!!*-!!!!"!*!F%8N!!!!$!!)!N!3&!!!\r!#!3(!*!E!DQL!*!MCh9TC'p'9N08!*!(##!!!!%!N!J(!*!5!94&@&43HA4S!*!\r)X[aFcE,mA-d!!![f!!!Ui3#3#'CUZJX!!!#8!!(Y4J!%!!$rrrrq!*!)%8S!!!!\r#!*!%$B3!N"S"UU)!N"m%!*!&3A4dFN4TB@a[Cbj`H8C@3e3!N!F))!!!!3#3#!F\r!N")"9%9B9&"jG'J!N!Lbr&c0X[aFc3!!!K`!!!4$!*!)E[UNJJ!!!*3!!He(!!3\r!!2rrrri!!#VK!*!%%8X!!!!#!*!%#i3!N"S"UU)!N"m%!*!&BR*[GfjTB@iZF(P\r'9N08!*!(##!!!!%!N!J(!*!5!94&@&43HA4S!*!)X[aFcE,mA-d!!!G`!!!@+3#\r3#&,1k@X!!!#8!!(Y5!!%!!$rrrrq!!![*!#3""&-!!!!!J#3"!q%!*!D!DUL!*!\rI"!#3"@0KERCKFf9fC@jdFbj`H8C@3e3!N!F))!!!!3#3#!F!N")"9%9B9&"jG'J\r!N!Lbr&c1X[aFcJ!!"63!!!Yi!*!)rjem)J!!!*3!!He*!!3!!2rrrri!!%90!*!\r%%8d!!!!#!*!%#B3!N"S"UU)!N"m%!*!&C'PKE'pR,R"j4PC$9!#3"`JJ!!!"!*!\r)"`#3%J&849K88(PdD!#3#,,mA-kbr&c1!!!$UJ!!"ji!N!K`,&b8!!!!P!!"l8S\r!"!!!rrrrrJ!!8-8!N!346J!!!!)!N!3-K!#3'J'USJ#3(`3!N!9PE'9MG(*[ER-\rZF(P'9N08!*!(##!!!!%!N!J(!*!5!94&@&43HA4S!*!)X[aFcV,mA-i!!!A`!!!\r24`#3#&,#8Z%!!!#8!!(Y5`!%!!$rrrrq!!"BB`#3""&2!!!!!J#3"!L%!*!D!DU\rL!*!I"!#3"@KKEQpT,R"j4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K88(PdD!#3#,,\rmA-kbr&c1!!!!b!!!!6!!N!J`X9+B!!!!P!!"l8`!"!!!rrrrrJ!!CkS!N!348!!\r!!!)!N!3)K!#3'J'USJ#3(`3!N!9SC@aXEbj`H8C@3e3!N!F))!!!!3#3#!F!N")\r"9%9B9&"jG'J!N!Lbr&c1X[aFcJ!!!6!!!!(p!*!)P-"Ce3!!!*3!!He0!!3!!2r\rrrri!!'MD!*!%%9%!!!!#!*!%$)3!N"S"UU)!N"m%!*!&D@eKCf9NFQ&h,R"j4PC\r$9!#3"`JJ!!!"!*!)"`#3%J&849K88(PdD!#3#,,mA-kbr&c1!!!!MJ!!!-d!N!K\rFNkBD!!!!P!!"l8i!"!!!rrrrrJ!!DYF!N!348J!!!!)!N!3-K!#3'J'USJ#3(`3\r!N!9TE@&RCACTCAFZF(P'9N08!*!(##!!!!%!N!J(!*!5!94&@&43HA4S!*!)X[a\rFcV,mA-i!!!5N!!!-L!#3#"mVYE3!!!#8!!(Y6`!%!!$rrrrq!!"VT!#3""&6!!!\r!!J#3"!H%!*!D!DUL!*!I"!#3"@YTE'`ZF(P'9N08!*!(##!!!!%!N!J(!*!5!94\r&@&43HA4S!*!)X[aFcl,mA-m!!!(-!!!$KJ#3#!m0&T-!!!#8!!(Y8!!%!!$rrrr\rq!!"i,!#3""&8!!!!!J#3"!Z%!*!D!DUL!*!I"!#3"@aTFh4dFQ9P,R"j4PC$9!#\r3"`JJ!!!"!*!)"`#3%J&849K88(PdD!#3#,,mA-fbr&c0!!!)[J!!&N`!N!L"Lb@\r0!!!!P!!"l9%!"!!!rrrrrJ!!Hl)!N!3493!!!!)!N!3+K!#3'J'USJ#3(`3!N!9\r0B@j3B@GP,R"j4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K88(PdD!#3#,,mA-qbr&c\r2!!!)$!!!'C%!N!MLR,XK!!!!P!!"l9)!"!!!rrrrrJ!!NIi!N!349J!!!!)!N!3\r(K!#3'J'USJ#3(`3!N!9YBQpi,R"j4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K88(P\rdD!#3#,,mA-fbr&c0!!!%Y!!!$4F!N!K+CR8A!!!!P!!"l9-!"!!!rrrrrJ!!Uim\r!N!349`!!!!)!N!30K!#3'J'USJ#3(`3!N!90D@eP9QPPGf9b,R"j4PC$9!#3"`J\rJ!!!"!*!)"`#3%J&849K88(PdD!#3#,,mA-qbr&c2!!!"V!!!"'3!N!Mp041Q!!!\r!P!!"l93!"!!!rrrrrJ!!Z+B!N!34@!!!!!)!N!34K!#3'J'USJ#3(`3!N!9ZCAG\rYC@jeBQ&bC'9YEbj`H8C@3e3!N!F))!!!!3#3#!F!N")"9%9B9&"jG'J!N!Lbr&c\r2X[aFc`!!!4B!!!'j!*!)#,0i)`!!!*3!!He9!!3!!2rrrri!!,d+!*!%%9N!!!!\r#!*!%$B3!N"S"UU)!N"m%!*!&Eh"dD@pZE@9ZG5j`H8C@3e3!N!F))!!!!3#3#!F\r!N")"9%9B9&"jG'J!N!Lbr&c2X[aFd!!!!e`!!!Ca!*!)Xc#1U3!!!*3!!He@!!3\r!!2rrrri!!,l$!*!%%9S!!!!#!*!%#)3!N"S"UU)!N"m%!*!&F'&TER3ZF(P'9N0\r8!*!(##!!!!%!N!J(!*!5!94&@&43HA4S!*!)X[aFd,,mA0!!!!GN!!!3S`#3##U\rcqRi!!!#8!!(Y@3!%!!$rrrrq!!$&0!#3""&G!!!!!J#3"!D%!*!D!DUL!*!I"!#\r3"A*YG#j`H8C@3e3!N!F))!!!!3#3#!F!N")"9%9B9&"jG'J!N!Lbr&c0X[aFc3!\r!"5)!!!eZ!*!)N!#jS-i!!!#8!!(Y@J!%!!$rrrrq!!$9e`#3""&H!!!!!J#3"!k\r%!*!D!DUL!*!I"!#3"90SC@aX9fPZC'ph,R"j4PC$9!#3"`JJ!!!"!*!)"`#3%J&\r849K88(PdD!#3#,,mA0#br&c3!!!8F!!!2!m!N!J)TFP-!!!!P!!"l9X!"!!!rrr\rrrJ!!id8!N!34A`!!!!)!N!3-K!#3'J'USJ#3(`3!N!9cEfaTG'&TFQ8ZF(P'9N0\r8!*!(##!!!!%!N!J(!*!5!94&@&43HA4S!*!)X[aFdE,mA0%!!"#i!!!q*`#3#*f\rPXB`!!!#8!!(YA!!%!!$rrrrq!!%I9!#3""&J!!!!!J#3"!Z%!*!D!DUL!*!I"!#\r3"A0[FR4fDA0e,R"j4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K88(PdD!#3#,,mA0'\rbr&c4!!!&cJ!!$iS!N!Ml#QX@!!!!P!!"l9d!"!!!rrrrrJ!"AAX!N!34B3!!!!)\r!N!3*K!#3'J'USJ#3(`3!N!9cGQYTE'`ZF(P'9N08!*!(##!!!!%!N!J(!*!5!94\r&@&43HA4S!*!)X[aFdE,mA0%!!!)J!!!'&`#3#,D1C"B!!!#8!!(YAJ!%!!$rrrr\rq!!&Y"3#3""&L!!!!!J#3"!Q%!*!D!DUL!*!I"!#3"A0hDA4MD#j`H8C@3e3!N!F\r))!!!!3#3#!F!N")"9%9B9&"jG'J!N!Lbr&c4X[aFd3!!#-J!!"ZM!*!)R"1NF3!\r!!*3!!HeI!!3!!2rrrri!N!J4B`!!!!)!N!3)K!#3'J'USJ#3(`3!N!9dDfeKELj\r`H8C@3e3!N!F))!!!!3#3#!F!N")"9%9B9&"jG'J!N!Lbr&c4X[aFd3!!!83!!!)\rB!*!)5PJX9J!!!*3!!HeJ!!3!!2rrrri!!"ZM!*!%%@3!!!!#!*!%"i3!N"S"UU)\r!N"m%!*!&GfPcD#j`H84@3e3!N"#fX%[8!*!(P3!!!*-!!!!"!*!F%@8!!!!$!!)\r!N!3%!!!!#!3(!*!E!DQL!*!ME@&dG%C@3e3!N!F))!!!!3#3#!F!N")"9%9B9&"\rjG'J!N!Lbr&c5X[aFdJ!!!9)!!!*`!*!)H%K6@!!!!*8!!HeL!!3!!2rrrri!N!J\r4CJ!!!!)!N!34K!#3'J'VSJ#3(`3!N!8`-#e)48a-6beA6e*-4#j`H8C@3e3!N!F\r))!!!!3#3#!F!N")"9%9B9&"jG'J!N!Lbr&c5X[aFdJ!!!E`!!!-e!*!)rDdP4!!\r!!*8!!HeM!!3!!2rrrri!!!*`!*!%%@F!!!!#!*!%%i3!N"S"Uk)!N"m%!*!&B@j\rTE@&dD@pZ,A0TEA"XC5j`H8C@3e3!N!F))!!!!3#3#!F!N")"9%9B9&"jG'J!N!L\rbr&c5X[aFdJ!!!M!!!!3J!*!)5D[0NJ!!!*8!!HeN!!3!!2rrrri!!!@P!*!%%@J\r!!!!#!*!%()3!N"S"Uk)!N"m%!*!&B@jTE@&dD@pZ,AFYGQ9XEf0TG(NYBh4bE#j\r`H8C@3e3!N!F))!!!!3#3#!F!N")"9%9B9&"jG'J!N!Lbr&c5X[aFdJ!!!XB!!!@\rN!*!)#!l6#`!!!*8!!HeP!!3!!2rrrri!!!R&!*!%%@N!!!!#!*!%'i3!N"S"Uk)\r!N"m%!*!&BQPZC#eh,@eeE(3YBf&XE(-YF#edHA"P,R"j4PC$9!#3"`JJ!!!"!*!\r)"`#3%J&849K88(PdD!#3#,,mA0+br&c5!!!"IJ!!!T)!N!J9#kLP!!!!P3!"l@B\r!"!!!rrrrrJ!!$fN!N!34DJ!!!!)!N!39K!#3'J'VSJ#3(`3!N!9MB@jfBA-YC'9\rYEbecD@e`E'8ZF(P'9N08!*!(##!!!!%!N!J(!*!5!94&@&43HA4S!*!)X[aFdl,\rmA0-!!!-'!!!(S`#3#"+MqE)!!!#9!!(YC`!%!!$rrrrq!!!4q`#3""&V!!!!!J#\r3""+%!*!D!DZL!*!I"!#3"@0KERCKFbeRFQPNC'PZCbj`H8C@3e3!N!F))!!!!3#\r3#!F!N")"9%9B9&"jG'J!N!Lbr&c6X[aFd`!!!c)!!!Kr!*!)K$VIP!!!!*8!!He\rS!!3!!2rrrri!!"QH!*!%%@`!!!!#!*!%()3!N"S"Uk)!N"m%!*!&Bf&ZGQ&c,@e\r[GQPZCbe[FLeMFQ9KG'PZCbj`H8C@3e3!N!F))!!!!3#3#!F!N")"9%9B9&"jG'J\r!N!Lbr&c6X[aFd`!!!VJ!!!Gh!*!)b(XkN3!!!*8!!HeT!!3!!2rrrri!!#)G!*!\r%%@d!!!!#!*!%')3!N"S"Uk)!N"m%!*!&Bf&ZGQ&c,@e[GQPZCbeh,@e[GA0P,R"\rj4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K88(PdD!#3#,,mA01br&c6!!!$bJ!!#C%\r!N!Mj!#e@!!!!P3!"l@S!"!!!rrrrrJ!!+C3!N!34EJ!!!!)!N!3AK!#3'J'VSJ#\r3(`3!N!9MB@jfBA-YEA9XG#eTG'9Y,A0PE#j`H8C@3e3!N!F))!!!!3#3#!F!N")\r"9%9B9&"jG'J!N!Lbr&c6X[aFd`!!!V)!!!@Y!*!)j5r,SJ!!!*8!!HeV!!3!!2r\rrrri!!$-P!*!%%@m!!!!#!*!%'S3!N"S"Uk)!N"m%!*!&Bf&ZGQ&c,A*PB@4TEQF\rYG'&R,@PZCQmZF(P'9N08!*!(##!!!!%!N!J(!*!5!94&@&43HA4S!*!)X[aFdl,\rmA0-!!!)Q!!!%"J#3#&RElb-!!!#9!!(YE!!%!!$rrrrq!!!idJ#3""&`!!!!!J#\r3""U%!*!D!DZL!*!I"!#3"@0KERCKFbeh,AGTC'GPG#eNFQ&h,@9X,R"j4PC$9!#\r3"`JJ!!!"!*!)"`#3%J&849K88(PdD!#3#,,mA05br&c8!!!$3!!!"c%!N!L1A81\rL!!!!P3!"l@d!"!!!rrrrrJ!!20J!N!34F3!!!!)!N!3CK!#3'J'VSJ#3(`3!N!9\rMB@jfBA-YGfPdD#ecBh*[E'aLBA*c,R"j4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K\r88(PdD!#3#,,mA05br&c8!!!$SJ!!"p)!N!JA#KGE!!!!P3!"l@i!"!!!rrrrrJ!\r!4!N!N!34FJ!!!!)!N!30K!#3'J'VSJ#3(`3!N!9ND@&XEfFYBQpi,R"j4PC$9!#\r3"`JJ!!!"!*!)"`#3%J&849K88(PdD!#3#,,mA05br&c8!!!"FJ!!!T`!N!LdNYT\rB!!!!P3!"l@m!"!!!rrrrrJ!!5pX!N!34F`!!!!)!N!32K!#3'J'VSJ#3(`3!N!9\rPER4bH5ecD@e`E'8ZF(P'9N08!*!(##!!!!%!N!J(!*!5!94&@&43HA4S!*!)X[a\rFe,,mA03!!!,@!!!'%`#3#16aq``!!!#9!!(YF!!%!!$rrrrq!!"1G`#3""&d!!!\r!!J#3""f%!*!D!DZL!*!I"!#3"@9ZG(*j,AGTG'JYFfKKFQ9N,ACKFQPKBQaP,R"\rj4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K88(PdD!#3#,,mA05br&c8!!!#NJ!!"*`\r!N!M%4`Xp!!!!P3!"lA%!"!!!rrrrrJ!!9)S!N!34G3!!!!)!N!3@K!#3'J'VSJ#\r3(`3!N!9VD@aXD@jR,AGTEQ4[Gbeh,AGY,R"j4PC$9!#3"`JJ!!!"!*!)"`#3%J&\r849K88(PdD!#3#,,mA05br&c8!!!*c!!!)Qd!N!LCr0hS!!!!P3!"lA)!"!!!rrr\rrrJ!!@5B!N!34GJ!!!!)!N!3FK!#3'J'VSJ#3(`3!N!9YC@je,@&XE#edHA"PFbe\r[CLePER4bD@9c,R"j4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K88(PdD!#3#,,mA0@\rbr&c9!!!%3!!!$)m!N!LG$ZX8!!!!P3!"lA-!"!!!rrrrrJ!!Hj-!N!34G`!!!!)\r!N!31K!#3'J'VSJ#3(`3!N!9YC@je,A0TEA"XC5j`H8C@3e3!N!F))!!!!3#3#!F\r!N")"9%9B9&"jG'J!N!Lbr&c9X[aFe3!!!53!!!)J!*!))irhh`!!!*8!!Hed!!3\r!!2rrrri!!)JL!*!%%AJ!!!!#!*!%(B3!N"S"Uk)!N"m%!*!&EQpd,AGSBA3YH@p\re,@eTCfKd,A4SD@jV,6%ZF(P'9N08!*!(##!!!!%!N!J(!*!5!94&@&43HA4S!*!\r)X[aFeE,mA08!!!&5!!!#G!#3#22N,4F!!!#9!!(YG3!%!!$rrrrq!!#+3J#3""&\rj!!!!!J#3""f%!*!D!DZL!*!I"!#3"@j[G#ehD'&d,AP[G5eYD@GSG#edD'PZDbd\rb,R"j4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K88(PdD!#3#,,mA0@br&c9!!!#L!!\r!",m!N!JC+QRB!!!!P3!"lAB!"!!!rrrrrJ!!M,B!N!34HJ!!!!)!N!3GK!#3'J'\rVSJ#3(`3!N!9`B@0VCA)YB@jN,A"XB@0PFLedEfGPG'KPFLj`H8C@3e3!N!F))!!\r!!3#3#!F!N")"9%9B9&"jG'J!N!Lbr&c9X[aFe3!!!8i!!!+T!*!)ip3aC3!!!*8\r!!Heh!!3!!2rrrri!!*&e!*!%%AX!!!!#!*!%%)3!N"S"Uk)!N"m%!*!&F'&MDf9\rb,A0TEA"XC5j`H8C@3e3!N!F))!!!!3#3#!F!N")"9%9B9&"jG'J!N!Lbr&c9X[a\rFe3!!!MJ!!!3j!*!)rC!!($J!!!#9!!(YH!!%!!$rrrrq!!#8(J#3""&m!!!!!J#\r3""#%!*!D!DZL!*!I"!#3"A"XB@0PFLecD@e`E'8ZF(P'9N08!*!(##!!!!%!N!J\r(!*!5!94&@&43HA4S!*!)X[aFeE,mA0B!!!)q!!!&!*!*lGV*f3!!!*8!!Hej!!3\r!!2rrrri!!*KA!*!%%Ad!!!!#!*!%$S3!N"S"Uk)!N"m%!*!&F'pZCbeNC@e[,6%\rZF(P'9N08!*!(##!!!!%!N!J(!*!5!94&@&43HA4S!*!)X[aFeV,mA0B!!!-L!!!\r)BJ#3#'K''hX!!!#9!!(YHJ!%!!$rrrrq!!#G9`#3""&q!!!!!J#3""Z%!*!D!DZ\rL!*!I"!#3"A"bD@jdD@jR,@0[Eh*NFbe[CLeTG'9YFbj`H8C@3e3!N!F))!!!!3#\r3#!F!N")"9%9B9&"jG'J!N!Lbr&c@X[aFeJ!!!X`!!!E`!*!)4SGLYJ!!!*8!!He\rl!!3!!2rrrri!!+@j!*!%%Am!!!!#!*!%&B3!N"S"Uk)!N"m%!*!&FQ&ND@pLGA4\rdEfiYFfPYF'aP,R"j4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K88LTMD!#3#,,mA0+\rbr&c5!!!"4J!!!J%!N!LhmlXB!!!!P3!"lA`!"!!!rrrrrJ!!V+N!N!34J!!!!!)\r!N!3'K!#3'J'VSJ#3(`3!N!9548&%689'9N08!*!(##!!!!%!N!J(!*!5!94&@&4\r3HA4S!*!)X[aFeV,mA0B!!!+S!!!($J#3#'$$b6)!!!#9!!(YI3!%!!$rrrrq!!#\rZUJ#3""'"!!!!!J#3""Q%!*!D!DZL!*!I"!#3"A*eBQ*PFLeLB@jN,@*[H#eNC@e\r[,6%ZF(P'9N08!*!(##!!!!%!N!J(!*!5!94&@&43HA4S!*!)X[aFeV,mA0B!!!*\rk!!!'6!#3#,i9UlX!!!#9!!(YIJ!%!!$rrrrq!!#eZ!#3""'#!!!!!J#3""@%!*!\rD!DZL!*!I"!#3"A*eBQ*PFLeXD@jP,@4PE@mY-5j`H8C@3e3!N!F))!!!!3#3#!F\r!N")"9%9B9&"jG'J!N!Lbr&c@X[aFeJ!!!C!!!!!$*!#3#*a(r(!!!!#9!!(YI`!\r%!!$rrrrq!!#m"!#3""'$!!!!!J#3""#%!*!D!DZL!*!I"!#3"A0XD@4PFLeNC@e\r[,6%ZF(P'9N08!*!(##!!!!%!N!J(!*!5!94&@&43HA4S!*!)X[aFeV,mA0B!!!&\rL!!!#R!#3#%clr#%!!!#9!!(YJ!!%!!$rrrrq!!#r+!#3""'%!!!!!J#3""b%!*!\rD!DZL!*!I"!#3"A0eBQ0XBA0c,@9iDA0dD@jR,AGTC'GPG(-ZF(P'9N08!*!(##!\r!!!%!N!J(!*!5!94&@&43HA4S!*!)X[aFel,mA0F!!!5N!!!-r!#3#)[rd0J!!!#\r9!!(YJ3!%!!$rrrrq!!$"a!#3""'&!!!!!J#3""1%!*!D!DZL!*!I"!#3"A4hEbe\rbB@4TEbeRFQpeF(-ZF(P'9N08!*!(##!!!!%!N!J(!*!5!94&@&43HA4S!*!)X[a\rFel,mA0F!!!'5!!!$5J#3##aUhpF!!!#9!!(YJJ!%!!$rrrrq!!$1`!#3""''!!!\r!!J#3""H%!*!D!DZL!*!I"!#3"AGTEQ4[GbeMFQ9KG'P[ELeYEh*P,R"j4PC$9!#\r3"`JJ!!!"!*!)"`#3%J&849K88(PdD!#3#,,mA0Hbr&cA!!!"D!!!!V3!N!K9MMG\r+!!!!P3!"lB-!"!!!rrrrrJ!!dJS!N!34K`!!!!)!N!3CK!#3'J'VSJ#3(`3!N!9\rhD@jNEhFYBh*PBA4TEfiYFfPYF'aP,R"j4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K\r88(PdD!#3#,,mA0Hc0mI+!!!#(!!!"*S!N!JAE#-'!!!!P3!"lB3!"!!!rrrrrJ!\r!e,i!N!34L!!!!!)!N!3GK!#3'J'VSJ#3(`3!N!9hD@jNEhFYBh*PBA4TEfiYGbe\rXEf0KG'P[ELj`H8C@3e3!N!F))!!!!3#3#!F!N")"9%9B9&)UBfJ!N!Lbr&c-X[a\rFc!!!!3B!!!'R!*!)S)6rd3!!!*-!!He%!!-!!2rrrri!!0PB!*!%%BN!!!!#!*!\r%"S3!N"S"UD)!N"m%!*!&8N9"4%e&4&C$9!#3%,D`5pN!N!HA!!!!GJ!!!!%!N"`\r4R3!!!!)!!J#3"!3!!!!)"!F!N"X"M+)!N#0kE'PL4PC$9!#3"`JJ!!!"!*!)"`#\r3%J&849K88(PdD!#3#,,mA0Zc(9SG!!!&)J!!$[i!N!JPqdf&!!!!P`!"lCN!!`!\r!rrrrrJ#3#"'H!!!!!J#3"!Z%!*!D!DfL!*!I"!#3"@eTEQPRHQP`,R"j4PC$9!#\r3"`JJ!!!"!*!)"`#3%J&849K88(PdD!#3#,,mA0Zc(9SG!!!"[J!!"#`!N!Kd%5Y\r`!!!!P`!"lCS!!`!!rrrrrJ!!$[i!N!34R`!!!!)!N!3,K!#3'J'YSJ#3(`3!N!9\rkE'PLC'9YEbj`H84@3e3!N"#fX%Xp!*!'!3)!!iBi!!!!!3#3("Q2!!!!!J!#!*!\r%"`!!!!J%"`#3'`'-SJ#3)fPYF(9dD@a'9N08!*!(##!!!!%!N!J(!*!5!94&@&4\r3HA4S!*!)YB1L'E@LEMS!!!NN!!!HJ`#3#0A88#d!!iCC!!1'@J!$!!$rrrrq!*!\r)'Bi!!!!#!*!%$)3!N"S#8U)!N"m%!*!&D@e`Eh*dCA*c,R"j4&C$9!#3%,D`5pJ\r!N!B"!`!%KNF!!!!"!*!F'LB!!!!#!!)!N!3$!!!!#!3(!*!E!BbL!*!MH'eX4PC\r$9!#3"`JJ!!!"!*!)"`#3%J&849K88(PdD!#3#,B8Vpff&+rG!!!"GJ!!!qd!N!L\rGrB!a!!5(C3!%KfB!!`!!rrrrrJ#3#"SP!!!!!J#3"!f%!*!D!R5L!*!I"!#3"@9\rXC@eIBfpeER3ZF(P'9N08!*!(##!!!!%!N!J(!*!5!94&@&43HA4S!*!)YK5[hEB\r8Vpd!!!)%!!!%`3#3#'PI+d!!")GP!!5(C`!$!!$rrrrq!!!$l3#3""SN!!!!!J#\r3"!b%!*!D!R5L!*!I"!#3"A*[G@jNG(*TF#j`H8C@3e3!N!F))!!!!3#3#!F!N")\r"9%9B9&"jG'J!N!Lf&+rGYK5[h3!!!V)!!!J5!*!)#%B043!%Kf8!")GS!!-!!2r\rrrri!!!LZ!*!%'L-!!!!#!*!%#i3!N"S#G+)!N"m%!*!&FR0c-QKdE@`ZF(P%9N0\r8!*!3YV)C``#3"J%%!!)Ze`!!!!%!N"`ER!!!!!)!!J#3"!B!!!!)"!F!N"X"M+)\r!N#0MGA*cCA0'9N08!*!(##!!!!%!N!J(!*!5!94&@&43HA4S!*!)YRDc3ECfXd%\r!!!Rf!!!D43#3#12"K`B!!LlU!!)Zk`!$!!$rrrrq!*!)'jX!!!!#!*!%"i3!N"S\r#H+)!N"m%!*!&E'PQC5j`H8C@3e3!N!F))!!!!3#3#!F!N")"9%9B9&"jG'J!N!L\rfGV0"YRDc33!!"AB!!"SQ!*!)-k#Tc3!#,ZS!!LlX!!-!!2rrrri!!"T&!*!%'jS\r!!!!#!*!%#S3!N"S#H+)!N"m%!*!&EQ0eFR0PFbj`H8C@3e3!N!F))!!!!3#3#!F\r!N")"9%9B9&"jG'J!N!LfGV0"YRDc33!!!`!!!!RN!*!)mHL-cJ!#,ZS!!LlY!!-\r!!2rrrri!!$4V!*!%'jN!!!!#!*!%"i3!N"S#H+)!N"m%!*!&FQ&TELj`H8C@3e3\r!N!F))!!!!3#3#!F!N")"9%9B9&)UBfJ!N!LfGV0"YSjkQJ!!!P!!!!3!N!NZ,S,\ra!!)ZkJ!#,Zi!!`!!rrrrrJ!!2Nm!N!3EQ!!!!!)!N!3'K!#3'J*iSJ#3(`3!N!9\r548&%689'9N08!*!(##!!!!%!N!J(!*!5!94&@&43HA4S!*!)YSjkQVD1HTS!!!,\r+!!!&k`#3#&p(qCm!!LlU!!)Zl`!$!!$rrrrq!!"#6`#3""ZA!!!!!J#3"!Q%!*!\rD!RLL!*!I"!#3"A*PF'9KG#j`H8C@3e3!N!F))!!!!3#3#!F!N")"9%9B9&"jG'J\r!N!LfGV0(YRDc4`!!"+i!!!dT!*!)Xa(iF3!#,ZS!!Ll`!!-!!2rrrri!!%Jk!*!\r%'jB!!!!#!*!%#B3!N"S#H+)!N"m%!*!&G'0XEf0V,R"j4PC$9!#3"`JJ!!!"!*!\r)"`#3%J&849K88(PdD!#3#,CfXdHfGV0(!!!3!J!!B6X!N!KCQ8Ue!!)ZkJ!#,[%\r!!`!!rrrrrJ!!9@-!N!3EP3!!!!)!N!3(K!#3'J*iSJ#3(`3!N!9iE@&c,R"j4&C\r$9!#3%,EQVfUfjUpV!!!""3!)1A-!!!!"!*!F(+S!!!!#!!)!N!3$!!!!#!3(!*!\rE!BbL!3#3)R4TH%4@3e3!N"#fjUpUYZD[D`!!!38!#$TG!!!!!3#3("bT!!!!!`!\r#!*!%"`!!!!J%"`#3'`+VSJ#3)f*TG'eKF(0'9N08!*!(##!!!!%!N!J(!*!5!9K\r365"(5dp1!*!)YYqlrVEIZri!!!%)!!!*"J#3#&,ZJh3!#$TL!!JkB`!%!!$rrrr\rq!*!)(+J!!!!#!*!%#B3!N"S#VD)!N"m%!*!&B@*[GA3ZH("Y4PC$9!#3"`JJ!!!\r"!*!)"`#3%J&B3NdJ4dY26J#3#,EIZrqfhl[r!!!!K!!!!4`!N!L5KNP)!!JkBJ!\r)1Q3!"!!!rrrrrJ#3#"bR!!!!!J#3"!L%!*!D!UfL!*!I"!#3"@*[E'3ZH'*Y4PC\r$9!#3"`JJ!!!"!*!)"`#3%J&B3NdJ4dY26J#3#,EIZrqfhl[r!!!!JJ!!!58!N!L\rG9G*T!!JkBJ!)1Q8!"!!!rrrrrJ!!!4`!N!3FTJ!!!!)!N!3,K!#3'J+YSJ#3(`3\r!N!9MBA"TG'&X,RKLE8C@3e3!N!F))!!!!3#3#!F!N")"@%*0)%G,6di!N!Lfhl[\rrYYqlr`!!!)!!!!%P!*!)UfX&&`!)1Q)!#$TQ!!3!!2rrrri!!!*"!*!%(+8!!!!\r#!*!%#i3!N"S#VD)!N"m%!*!&Bf9ZG'9bDLjiBQe'9N08!*!(##!!!!%!N!J(!*!\r5!9K#65"(5dp1!*!)YYqlrlEIZrm!!!#i!!!$J!#3#1PQ*M-!#$TL!!JkC`!%!!$\rrrrrq!!!$CJ#3""bN!!!!!J#3"!b%!*!D!UfL!*!I"!#3"@0[E@*[BQpi,RKLE8C\r@3e3!N!F))!!!!3#3#!F!N")"@&"0)%G,6di!N!Lfhl[rYYqlr`!!!9J!!!N1!*!\r)5Vd%LJ!)1Q)!#$TS!!3!!2rrrri!N!JFS`!!!!)!N!3-K!#3'J+YSJ#3(`3!N!9\rMEfeLEf*[H#jiF'e'9N08!*!(##!!!!%!N!J(!*!5!94&@&4$9dP&!*!)YYqlrlE\rIZrm!!!#m!!!)l!#3#13I-a-!#$TL!!JkD3!%!!$rrrrq!*!)(+)!!!!#!*!%$S3\r!N"S#VD)!N"m%!*!&BfpYBQpLEhJZH("Y,M&'9N08!*!(##!!!!%!N!J(!*!5!9K\r#65"(5dp1!*!)YYqlrlEIZrm!!!#Z!!!$HJ#3##,14&)!#$TL!!JkDJ!%!!$rrrr\rq!*!)(+%!!!!#!*!%#S3!N"S#VD)!N"m%!*!&C(*TGQ9K,RKLE8C@3e3!N!F))!!\r!!3#3#!F!N")"@&"0)%G,6di!N!Lfhl[rYYqlr`!!!0B!!!9E!*!)k2id&J!)1Q)\r!#$TV!!3!!2rrrri!N!JFS!!!!!)!N!3+K!#3'J+YSJ#3(`3!N!9NFQPfC@%ZH("\rY4PC$9!#3"`JJ!!!"!*!)"`#3%J&B8%dJ4dY26J#3#,EIZrqfhl[r!!!![J!!#28\r!N!M2I+(i!!JkBJ!)1Q`!"!!!rrrrrJ!!"9X!N!3FR`!!!!)!N!3)K!#3'J+YSJ#\r3(`3!N!9PH'Pd,RK`E8C@3e3!N!F))!!!!3#3#!F!N")"@%*0)%G,6di!N!Lfhl[\rrYYqlr`!!!+i!!!0p!*!)5#UV@!!)1Q)!#$TY!!3!!2rrrri!N!JFRJ!!!!)!N!3\r,K!#3'J+YSJ#3(`3!N!9QD@aPBQpi,RKLE8C@3e3!N!F))!!!!3#3#!F!N")"@&"\r0)%G,6di!N!Lfhl[rYYqlr`!!!1B!!!N'!*!)XQ0k93!)1Q)!#$TZ!!3!!2rrrri\r!N!JFR3!!!!)!N!3,K!#3'J+YSJ#3(`3!N!9QD@aPBQpi,RK`E8C@3e3!N!F))!!\r!!3#3#!F!N")"@%*0)%G,6di!N!Lfhl[rYYqlr`!!!(i!!!%L!*!)r`ZD6J!)1Q)\r!#$T[!!3!!2rrrri!N!JFR!!!!!)!N!3+K!#3'J+YSJ#3(`3!N!9TG'&XD@-ZH'*\rY4PC$9!#3"`JJ!!!"!*!)"`#3%J&B3NdJ4dY26J#3#,EIZrqfhl[r!!!!I!!!!58\r!N!K-RRGp!!JkBJ!)1R!!"!!!rrrrrJ!!!5)!N!3FQ`!!!!)!N!3,K!#3'J+YSJ#\r3(`3!N!9UGA0dD@Cj,RKLE8C@3e3!N!F))!!!!3#3#!F!N")"@%*0)%G,6di!N!L\rfhl`!YYqm!*!%IJ!!!4m!N!J0mcTN!!JkBJ!)1R%!"!!!rrrrrJ!!!NF!N!3FQJ!\r!!!)!N!3*K!#3'J+YSJ#3(`3!N!9XC@CdDLjiBQe'9N08!*!(##!!!!%!N!J(!*!\r5!9K#65"(5dp1!*!)YYqm!,EI[!#3"0J!!!0d!*!)kMFBmJ!)1Q)!#$Tb!!3!!2r\rrrri!!!0Q!*!%(*N!!!!#!*!%#)3!N"S#VD)!N"m%!*!&EQ9dGbjiBQe'9N08!*!\r(##!!!!%!N!J(!*!5!9K365"(5dp1!*!)YYqm!,EI[!!!!!%i!!!&DJ#3#%*S6f3\r!#$TL!!JkF`!%!!$rrrrq!*!)(*J!!!!#!*!%#)3!N"S#VD)!N"m%!*!&EQ9dGbj\riF'e'9N08!*!(##!!!!%!N!J(!*!5!9K365"(5dp1!*!)YYqm!,EI[!!!!!%J!!!\r)m3#3#'P)i,`!#$TL!!JkG!!%!!$rrrrq!!!&DJ#3""bA!!!!!J#3"!Z%!*!D!Uf\rL!*!I"!#3"@p`G'ePER8ZH("Y4PC$9!#3"`JJ!!!"!*!)"`#3%J&B3NdJ4dY26J#\r3#,EI[!#fhl`!N!4f!!!")J#3#"I-l2F!#$TL!!JkG3!%!!$rrrrq!*!)(*B!!!!\r#!*!%#S3!N"S#VD)!N"m%!*!&FQPRD(4U,RKLE8C@3e3!N!F))!!!!3#3#!F!N")\r"@&"0)%G,6di!N!Lfhl`!YYqm!!!!!6i!!!Nd!*!)KB$c#3!)1Q)!#$Tf!!3!!2r\rrrri!N!JFP3!!!!)!N!3+K!#3'J+YSJ#3(`3!N!9cC@aPBh3ZH("Y4PC$9!#3"`J\rJ!!!"!*!)"`#3%J&(58CQEfGXC3#3#,EI[!#fhl`!!!!V+J!!+b)!N!KdF+EC!!J\rkBJ!)1RF!"!!!rrrrrJ#3#"b8!!!!!J#3"!H%!*!D!UfL!*!I"!#3"A4TH#jRD@C\r'9N08!*!(##!!!!%!N!J(!*!5!9K#65"(5dp1!*!)YYqm!,EI[!#3"(i!!!%V!*!\r),B`1``!)1Q)!#$Ti!!3!!2rrrri!N!JFN`!!!!)!N!30K!#3'J+YSJ#3(`3!N!9\reEQ4PFQaTEQ8ZH'*Y4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K8G(4iG!#3#,EIZrk\rfhl[q!!!"%!!!!AF!N!JL5N(f!!JkA3!)1Pi!!`!!rrrrrJ#3#"b5!!!!!J#3"!L\r%!*!D!UZL!*!I"!#3"8*94e-ZG(Kd4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K8G(4\riG!#3#,EIZrkfhl[q!!!&U!!!$3)!N!JTVlS`!!JkA3!)1Pm!!`!!rrrrrJ!!!AF\r!N!3FN3!!!!)!N!3,K!#3'J+VSJ#3(`3!N!9*6P0838a-,R4iG%C@3e3!N!F))!!\r!!3#3#!F!N")"9%9B9(4dH(3!N!Lfhl[qYYqlrJ!!!DB!!!,8!*!)ZQ@5h`!)1Pd\r!#$TJ!!-!!2rrrri!!!jj!*!%(*!!!!!!!J#3"!U%!*!D!UZL!*!I"!#3"9*&384\r045jdH(4%9N08!*!3YZD[DlEQVfX!!!%&!!JkA3!!!!%!N"`FM`!!!!-!!J#3"!F\r!!!!)"!F!N"X#Uk)!N#0cB@e`E'9c4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K88(P\rdD!#3#,EI[!#fhl`!!!!$(J!!"N)!N!M)dB)f!!JkH3!)1RS!"!!!rrrrrJ#3#"b\r1!!!!!J#3"!U%!*!D!UbL!*!I"!#3"8*KE'a[EfiZF(P'9N08!*!(##!!!!%!N!J\r(!*!5!94&@&43HA4S!*!)YYqm!,EI[!!!!!-3!!!&q3#3#""`Hp)!#$Tj!!JkH`!\r%!!$rrrrq!!!'3J#3""b0!!!!!J#3"!Q%!*!D!UbL!*!I"!#3"8*dEN*[H#j`H8C\r@3e3!N!F))!!!!3#3#!F!N")"9%9B9&"jG'J!N!Lfhl`!YYqm!3!!"M`!!"Zc!*!\r)FRm4IJ!)1RN!#$Tm!!3!!2rrrri!!!`l!*!%()`!!!!#!*!%#B3!N"S#V+)!N"m\r%!*!&3fe`5@eR,R"j4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K88(PdD!#3#,EI[!L\rfhl`)!!!&*J!!$1-!N!JJBjX&!!JkH3!)1Rd!"!!!rrrrrJ!!*qi!N!3FL`!!!!)\r!N!3,K!#3'J+XSJ#3(`3!N!9$EfeLEd*[H#j`H8C@3e3!N!F))!!!!3#3#!F!N")\r"9%9B9&"jG'J!N!Lfhl`)YYqm#!!!"BJ!!!eI!*!)BV#NI`!)1RN!#$Tq!!3!!2r\rrrri!!$64!*!%()S!!!!#!*!%#S3!N"S#V+)!N"m%!*!&3fpZG(*[E#j`H8C@3e3\r!N!F))!!!!3#3#!F!N")"9%9B9&"jG'J!N!Lfhl`)YYqm#!!!"3J!!!p4!*!)#2,\rK-J!)1RN!#$Tr!!3!!2rrrri!!%)`!*!%()N!!!!#!*!%#i3!N"S#V+)!N"m%!*!\r&6QpdC8*[EfXZF(P'9N08!*!(##!!!!%!N!J(!*!5!94&@&43HA4S!*!)YYqm#EE\rI[!N!!!33!!!)r3#3#(Ch4i!!#$Tj!!JkJ!!%!!$rrrrq!!"4J3#3""b)!!!!!J#\r3"!U%!*!D!UbL!*!I"!#3"8p`G%ePER8ZF(P'9N08!*!(##!!!!%!N!J(!*!5!94\r&@&43HA4S!*!)YYqm#EEI[!N!!!1F!!!(r`#3#%`+m@)!#$Tj!!JkJ3!%!!$rrrr\rq!!"DIJ#3""b(!!!!!J#3"!U%!*!D!UbL!*!I"!#3"9"[F%ePER8ZF(P'9N08!*!\r(##!!!!%!N!J(!*!5!94&@&43HA4S!*!)YYqm#EEI[!N!!!@S!!!,Q`#3#"QRDUm\r!#$Tj!!JkJJ!%!!$rrrrq!!"LI3#3""b'!!!!!J#3"!U%!*!D!UbL!*!I"!#3"90\r)6'PcG$%ZF(P'9N08!*!(##!!!!%!N!J(!*!5!94&@&43HA4S!*!)YYqm#EEI[!N\r!!!GN!!!5E!#3#'3#eEi!#$Tj!!JkJ`!%!!$rrrrq!!"Z'!#3""b&!!!!!J#3"!U\r%!*!D!UbL!*!I"!#3"90)6'PcG$)ZF(P'9N08!*!(##!!!!%!N!J(!*!5!94&@&4\r3HA4S!*!)YYqm#EEI[!N!!!6k!!!+GJ#3#*@ab,F!#$Tj!!JkK!!%!!$rrrrq!!#\r!K!#3""b%!!!!!J#3"!H%!*!D!UbL!*!I"!#3"94bC@8ZF(P'9N08!*!(##!!!!%\r!N!J(!*!5!94&@&43HA4S!*!)YYqlrVEIZri!!"f+!!"ePJ#3#'ZYmem!#$TG!!J\rkB3!$!!$rrrrq!!#+qJ#3""b$!!!!!J#3"!f%!*!D!UZL!*!I"!#3"A4TH(GTC'G\rPG(-ZF(P%9N08!*!+!PX!9`%(YZD[FEEQVhB!!!#B!!!!G!!!)!%!N"`4S3!!!!%\r!!J#3"!S!!!!)"!F!N"'J!*!*!B[)`3#3)N9iG'9ZFfP[ER0%9N08!*!3YZD[FEE\rQVh8!!!#C!!!!Q!!!)!%!N"`4SJ!!!!)!!J#3"!F!!!!)"!F!N"'J!*!*!Dl)!3#\r3)NPYB@GTEQG'9N08!*!(##!!!!%!N!J(!*!5!94&@&4$9dP&!*!)Y+[TAVE%D`i\r!!$"F!!"rLJ#3#"#DZIN!!!#C!!(YR3!$!!$rrrrq!*!)%D-!!!!#!*!%"i3!N"S\r"VmJ!N"m%!*!&3dK"6NG&8dC@3e3!N!F))!!!!3#3#!F!N")"9%9B9%0A588!N!L\rb&A,FY@E##!!!!lB!!"-6!*!)FlaaV3!!!*N!!HfH!!-!!2rrrri!!(q+!*!%%D3\r!!!!#!*!%#)3!N"S"VmJ!N"m%!*!&3dp19%919&0'9N08!*!(##!!!!%!N!J(!*!\r5!94&@&4$9dP&!*!)XK9bhE9Q`JJ!!!Ei!!!30`#3#&cSkm)!!!#C!!(YR`!$!!$\rrrrrq!!#5R3#3""'P!!!!!J#3"!H%!*!D!Dr)!*!I"!#3"8C28Ne"9&0%9N08!*!\r3YV",h!#3"jS!!!#C!!!!!3#3("'Q!!!!!`!#!*!%"J!!!!J%"`#3'`'[b!#3)dP\rYB@GPFdC@3e3!N!F))!!!!3#3#!F!N")"4dP'CNT@9e)!N!Lb&A,cXK9bm`!!2PJ\r!!$r3!*!)C$4!#3!!!*S!!HfM!!3!!2rrrri!N!J4T`!!!!)!N!3)K!#3'J'`b!#\r3(`3!N!9XC@jK,QGTCNC@3e3!N!F))!!!!3#3#!F!N")"5P"&4dT@9e)!N!Lb&A,\reXK9bp3!!%Pi!!",N!*!)Z9fTM!!!!*S!!HfN!!3!!2rrrri!N!J4U!!!!!)!N!3\r)K!#3'J'`b!#3(`3!N!9XC@jK,QT`CdC@3e3!N!F))!!!!3#3#!F!N")"8&"(68G\r,6di!N!Lb&A-)XK9c#`!!YN)!!-!2!*!)a$lbB3!!!*S!!HfP!!3!!2rrrri!N!J\r4U3!!!!)!N!3)K!#3'J'`b!#3(`3!N!9XC@jK,R"`E84@3e3!N"#fjUpbYZD[G3!\r!!*`!!!#C!!!!!3#3("'[!!!!!`!#!*!%!`!!!!J%"`#3%D!!N!N"VmJ!N#0358a\r'9N08!*!(##!!!!%!N!J(!*!3"3!"FfKXBP"jG'J!N!LbmbpAYZ9SlJ!#G1J!"AM\r&!!!!D!!!!C+m%pr9!!!!R!!"lD`!"!!!rrrrrJ#3#"'`!!!!!J#3""#%!*!3J!#\r3#3'b`!#3(`B!N!9ID@eKCfPZCbj`F'-ZFfaL4PC$9!#3"`JJ!!!"`!#3"`F!N"!\r&!!&cD'aL8(PdD!#3#,E%E0+fj@T)!!*dkJ!&H-8!!!"S!!!"PJ#Y"UX!"eQr!!G\rC`3!%!!$rrrrq!*!)(&i!!!!#!*!%%i3!N"!J!*!*!E+)!*!I"`#3"!&ID@eKCfP\rZCbjMBA*LEfiZFfaL4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K88(PdD!#3#,)9Fa'\reCX)+!!!0dJ!!,LX!N!KKC3Y[!!!!R!!"lDi!"!!!rrrrrJ#3#"'b!!!!!J#3""'\r%!*!D!E,)!*!I"!#3"8&bCdPYB@GP8'aeCfPZ,R"j4PC$9!#3"`JJ!!!"!*!)"`#\r3%J&849K88(PdD!#3#,)9Fa5bi`PP!!!%SJ!!#dS!N!Lrpf8G!!!!R!!"lDm!"!!\r!rrrrrJ!!,LX!N!34X`!!!!)!N!31K!#3'J'bb!#3(`3!N!9#C'C'Efjd4QPXC5j\r`H8C@3e3!N!F))!!!!3#3#!F!N")"9%9B9&"jG'J!N!Lb&A-BY@E##J!!"a`!!"(\r[!*!)-I4hp`!!!*`!!Hf`!!3!!2rrrri!!$Pe!*!%%E3!!!!#!*!%%B3!N"S"XXJ\r!N"m%!*!&3Qe`5@eKCf93E(9RD@iZF(P'9N08!*!(##!!!!%!N!J(!*!5!94&@&4\r3HA4S!*!)XK9c'V9Q`JS!!!+B!!!'"!#3#'-"ip%!!!#F!!(YX3!%!!$rrrrq!!"\r,C!#3""'e!!!!!J#3"!k%!*!D!E,)!*!I"!#3"80[ER4KD@jPFNP2,R"j4PC$9!#\r3"`JJ!!!"!*!)"`#3%J&849K88(PdD!#3#,)9FaZeCX)+!!!$,J!!"`m!N!JlIAG\r5!!!!R!!"lE)!"!!!rrrrrJ!!8@J!N!34YJ!!!!)!N!34K!#3'J'bb!#3(`3!N!9\r$GA**E@&RC9"XG@GTELj`H8C@3e3!N!F))!!!!3#3#!F!N")"9%9B9&"jG'J!N!L\rb&A-FY@E##J!!!fB!!!CP!*!)Q2HS&`!!!*`!!Hfc!!3!!2rrrri!!&Kh!*!%%EF\r!!!!#!*!%%B3!N"S"XXJ!N"m%!*!&4'0i5@eKCf93E(9RD@iZF(P'9N08!*!(##!\r!!!%!N!J(!*!5!94&@&43HA4S!*!)XK9c(E9Q`JS!!!V5!!!E9!#3#!r["qB!!!#\rF!!(YY!!%!!$rrrrq!!"Hh!#3""'i!!!!!J#3""'%!*!D!E,)!*!I"!#3"89`FdP\rYB@GP8'aeCfPZ,R"j4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K88(PdD!#3#,)9Fb'\reCX)+!!!%iJ!!#bJ!N!J'62[#!!!!R!!"lE8!"!!!rrrrrJ!!HM!!N!34Z3!!!!)\r!N!34K!#3'J'bb!#3(`3!N!9'E'P*E@&RC9"XG@GTELj`H8C@3e3!N!F))!!!!3#\r3#!F!N")"9%9B9&"jG'J!N!Lb&A-PXZ-*D!!!"0`!!!bk!*!)jPK(i3!!!*`!!Hf\rf!!3!!2rrrri!!)9B!*!%%ES!!!!#!*!%#i3!N"S"XXJ!N"m%!*!&4QpZG%CTE'8\rZF(P'9N08!*!(##!!!!%!N!J(!*!5!94&@&43HA4S!*!)XK9c+E9Q`JX!!!LJ!!!\r8%3#3#-K9KHF!!!#F!!(YY`!%!!$rrrrq!!#5%J#3""'l!!!!!J#3""'%!*!D!E,\r)!*!I"!#3"8C`H%PYB@GP8'aeCfPZ,R"j4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K\r88(PdD!#3#,)9FbZeCX),!!!#b!!!"FX!N!L'c5V*!!!!R!!"lEJ!"!!!rrrrrJ!\r!TL-!N!34[!!!!!)!N!34K!#3'J'bb!#3(`3!N!9(BR**E@&RC9"XG@GTELj`H8C\r@3e3!N!F))!!!!3#3#!F!N")"9%9B9&"jG'J!N!Lb&A-[Y@E##`!!!jB!!!CH!*!\r)p+KL4J!!!*`!!Hfj!!3!!2rrrri!!+[Z!*!%%Ed!!!!#!*!%$S3!N"S"XXJ!N"m\r%!*!&4f4*E@&RC8CTE'8ZF(P'9N08!*!(##!!!!%!N!J(!*!5!94&@&43HA4S!*!\r)XK9c-E9Q`JX!!!Y#!!!H#!#3#(%,b-%!!!#F!!(YZJ!%!!$rrrrq!!#b6!#3""'\rq!!!!!J#3""'%!*!D!E,)!*!I"!#3"8GTCNPYB@GP8'aeCfPZ,R"j4PC$9!#3"`J\rJ!!!"!*!)"`#3%J&849K88(PdD!#3#,)9FcDb&A-f!!!%M!!!#e-!N!M!(Fep!!!\r!R!!"lEX!"!!!rrrrrJ!!d&3!N!34[`!!!!)!N!36K!#3'J'bb!#3(`3!N!9(D@e\r`4h*KC'PPER4'D@aP,R"j4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K88(PdD!#3#,)\r9FcHb&A-h!!!#4!!!",!!N!Kd[%,`!!!!R!!"lE`!"!!!rrrrrJ!!fkF!N!34`!!\r!!!)!N!35K!#3'J'bb!#3(`3!N!9(D@e`8'&XCA4dC8CTE'8ZF(P'9N08!*!(##!\r!!!%!N!J(!*!5!94&@&43HA4S!*!)XK9c0l9Q`JX!!!-L!!!'iJ#3#2'49RX!!!#\rF!!(Y[3!%!!$rrrrq!!$J9`#3""("!!!!!J#3""'%!*!D!E,)!*!I"!#3"8PMEdP\rYB@GP8'aeCfPZ,R"j4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K88(PdD!#3#,)9FcL\rfa'X2!!!FYJ!!@q-!N!KGp#'j!!!!R!!"lEi!"!!!rrrrrJ!!jcN!N!34`J!!!!)\r!N!3)K!#3'J'bb!#3(`3!N!9*E@&RC5j`H8C@3e3!N!F))!!!!3#3#!F!N")"9%9\rB9&"jG'J!N!Lb&A-iY@E#$!!!!b)!!!b4!*!))aa%i!!!!*`!!Hfr!!3!!2rrrri\r!!8-F!*!%%F-!!!!#!*!%$B3!N"S"XXJ!N"m%!*!&5@eKCf9$D'p`Fbj`H8C@3e3\r!N!F))!!!!3#3#!F!N")"9%9B9&"jG'J!N!Lb&A-jY@E#$!!!"&i!!!r,!*!)Q#P\rY!`!!!*`!!Hh!!!3!!2rrrri!!8qY!*!%%F3!!!!#!*!%$)3!N"S"XXJ!N"m%!*!\r&5@eKCf9%FQ&h,R"j4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K88(PdD!#3#,)9FcQ\reCX)-!!!#B!!!"8i!N!MA2*P1!!!!R!!"lF%!"!!!rrrrrJ!"AhJ!N!34a3!!!!)\r!N!32K!#3'J'bb!#3(`3!N!9*E@&RC89ZD'&ZBf8ZF(P'9N08!*!(##!!!!%!N!J\r(!*!5!94&@&43HA4S!*!)XK9c1E9Q`J`!!!Yq!!!Jb!#3#+C3`b3!!!#F!!(Y`J!\r%!!$rrrrq!*!)%FB!!!!#!*!%$)3!N"S"XXJ!N"m%!*!&5@eKCf9'D@aP,R"j4PC\r$9!#3"`JJ!!!"!*!)"`#3%J&849K88(PdD!#3#,,M#B'eCX)-!!!"NJ!!!RX!N!M\rN"63P!!!!R!!"lF-!"!!!rrrrrJ!!)-J!N!34a`!!!!)!N!31K!#3'J'bb!#3(`3\r!N!9*E@&RC8CTE'9*6bj`H8C@3e3!N!F))!!!!3#3#!F!N")"9%9B9&"jG'J!N!L\rb&A-kY@E#$!!!!Ji!!!1e!*!)I$)+F!!!!*`!!Hh%!!3!!2rrrri!!#0$!*!%%FJ\r!!!!#!*!%$S3!N"S"XXJ!N"m%!*!&5@eKCf9'D@adCA)ZF(P'9N08!*!(##!!!!%\r!N!J(!*!5!94&@&43HA4S!*!)XK9c1l9Q`J`!!!5)!!!*i3#3#$PRbFd!!!#F!!(\rYa3!%!!$rrrrq!!!Qq!#3""(*!!!!!J#3"!b%!*!D!E,)!*!I"!#3"8PYB@GP4Qp\rZG#j`H8C@3e3!N!F))!!!!3#3#!F!N")"9%9B9&"jG'J!N!Lb&A-lY@E#$!!!!m3\r!!!UK!*!)pPJXU!!!!*`!!Hh'!!3!!2rrrri!!$$C!*!%%FS!!!!#!*!%$i3!N"S\r"XXJ!N"m%!*!&5@eKCf93B@aPG(4P,R"j4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K\r88(PdD!#3#,)9FcbeCX)-!!!!pJ!!!8S!N!K$C`pT!!!!R!!"lFF!"!!!rrrrrJ!\r!1hS!N!34b`!!!!)!N!3-K!#3'J'bb!#3(`3!N!9*E@&RC9"KG'JZF(P'9N08!*!\r(##!!!!%!N!J(!*!5!94&@&43HA4S!*!)XK9c2,)9Fc`!!!'J!!!#P!#3#!-FV5J\r!!!#F!!(Yb!!%!!$rrrrq!!!ma!#3""(-!!!!!J#3""#%!*!D!E,)!*!I"!#3"8P\rYB@GP8f9aG@9ZBf8ZF(P'9N08!*!(##!!!!%!N!J(!*!5!94&@&43HA4S!*!)XK9\rc2,9Q`Jd!!!91!!!1J3#3#*@mlp3!!!#F!!(Yb3!%!!$rrrrq!!!r@!#3""(0!!!\r!!J#3"!b%!*!D!E,)!*!I"!#3"8PYB@GP8h4KG#j`H8C@3e3!N!F))!!!!3#3#!F\r!N")"9%9B9&"jG'J!N!Lb&A-pY@E#$3!!"dB!!"8a!*!)1eGaU!!!!*`!!Hh+!!3\r!!2rrrri!!%hC!*!%%Fi!!!!#!*!%#S3!N"S"XXJ!N"m%!*!&5@eKCf98Dbj`H8C\r@3e3!N!F))!!!!3#3#!F!N")"9%9B9&"jG'J!N!Lb&A-pY@E#$3!!!XB!!!9I!*!\r)V!$eL`!!!*`!!Hh,!!3!!2rrrri!!'-+!*!%%Fm!!!!#!*!%#i3!N"S"XXJ!N"m\r%!*!&5@eKCf9AD@iZF(P'9N08!*!(##!!!!%!N!J(!*!5!94&@&43HA4S!*!)XK9\rc0l9Q`JX!!!YF!!!I2`#3#*`#GHN!!!#F!!(Yc!!%!!$rrrrq!!"SD3#3""(3!!!\r!!J#3""#%!*!D!E,)!*!I"!#3"8PY5@eKCf93E(9RD@iZF(P'9N08!*!(##!!!!%\r!N!J(!*!5!94&@&43HA4S!*!)XK9c2E9Q`Jd!!!0X!!!'e`#3#*h9GSm!!!#F!!(\rYc3!%!!$rrrrq!!#(U!#3""(4!!!!!J#3""'%!*!D!E,)!*!I"!#3"8PYG%PYB@G\rP8'aeCfPZ,R"j4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K88(PdD!#3#,)9FckeCX)\r0!!!'E!!!$a8!N!KZCb%#!!!!R!!"lFi!"!!!rrrrrJ!!MRm!N!34dJ!!!!)!N!3\r5K!#3'J'bb!#3(`3!N!9*F(4M5@eKCf93E(9RD@iZF(P'9N08!*!(##!!!!%!N!J\r(!*!5!94&@&43HA4S!*!)XK9c3,9Q`Jd!!!e!!!!P[`#3#1b3!!ST!!!!R!!"lFm\r!"!!!rrrrrJ!!RC3!N!34d`!!!!)!N!35K!#3'J'bb!#3(`3!N!9+F'9R5@eKCf9\r3E(9RD@iZF(P'9N08!*!(##!!!!%!N!J(!*!5!94&@&43HA4S!*!)XK9c3l)9Fd-\r!!!-S!!!'Y!#3##P*3U%!!!#F!!(Yd!!%!!$rrrrq!!$$8`#3""(8!!!!!J#3""5\r%!*!D!E,)!*!I"!#3"8eM5@4KFdPYB@GP8'aeCfPZ,R"j4PC$9!#3"`JJ!!!"!*!\r)"`#3%J&849K88(PdD!#3#,)9Fd1eCX)0!!!$I!!!"jN!N!MZADH&!!!!R!!"lG%\r!"!!!rrrrrJ!!bJF!N!34e3!!!!)!N!34K!#3'J'bb!#3(`3!N!90D@0*E@&RC9"\rXG@GTELj`H8C@3e3!N!F))!!!!3#3#!F!N")"9%9B9&"jG'J!N!Lb&A0$Y@E#$3!\r!!UJ!!!Bj!*!)XNr5Q`!!!*`!!Hh5!!3!!2rrrri!!0'J!*!%%GB!!!!#!*!%%S3\r!N"S"XXJ!N"m%!*!&6A"PCdPYB@GP8'aeCfPZ,R"j4PC$9!#3"`JJ!!!"!*!)"`#\r3%J&849K88(PdD!#3#,)9Fd5eCX)0!!!$bJ!!"pi!N!M[cbl%!!!!R!!"lG-!"!!\r!rrrrrJ!!epN!N!34e`!!!!)!N!34K!#3'J'bb!#3(`3!N!90Fh"*E@&RC9"XG@G\rTELj`H8C@3e3!N!F))!!!!3#3#!F!N")"9%9B9&"jG'J!N!Lb&A0%XZ-*K!!!%h!\r!!$,j!*!)5UYJGJ!!!*`!!Hh8!!3!!2rrrri!!0qh!*!%%GJ!!!!#!*!%$)3!N"S\r"XXJ!N"m%!*!&6faP4QPXC8P2,R"j4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K88(P\rdD!#3#,)9FdDb&A0'!!!#&J!!"#B!N!LB(X[A!!!!R!!"lG8!"!!!rrrrrJ!"%V!\r!N!34f3!!!!)!N!31K!#3'J'bb!#3(`3!N!93B@aPG(4P4QPXC5j`H8C@3e3!N!F\r))!!!!3#3#!F!N")"9%9B9&"jG'J!N!Lb&A0(Y@E#$J!!!`J!!!@k!*!)f%!lF`!\r!!*`!!Hh@!!3!!2rrrri!!4E@!*!%%GS!!!!#!*!%%B3!N"S"XXJ!N"m%!*!&8'0\rN5@eKCf93E(9RD@iZF(P'9N08!*!(##!!!!%!N!J(!*!5!94&@&43HA4S!*!)XK9\rc5E9Q`Ji!!!F8!!!AB`#3#-+#-8`!!!#F!!(Ye`!%!!$rrrrq!!%FN!!!N!34f`!\r!!!)!N!31K!#3'J'bb!#3(`3!N!93BfC'Efjd4QPXC5j`H8C@3e3!N!F))!!!!3#\r3#!F!N")"9%9B9&"jG'J!N!Lb&A0,Y@E#$J!!"TJ!!!m0!*!)+@Z[+3!!!*`!!Hh\rB!!3!!2rrrri!!62c!*!%%G`!!!!#!*!%%B3!N"S"XXJ!N"m%!*!&8'0i5@eKCf9\r3E(9RD@iZF(P'9N08!*!(##!!!!%!N!J(!*!5!94&@&43HA4S!*!)XK9c6,9Q`Ji\r!!!B@!!!2[3#3#,KSqCd!!!#F!!(Yf3!%!!$rrrrq!!&$!*!&%Gd!!!!#!*!%%B3\r!N"S"XXJ!N"m%!*!&8'4Q5@eKCf93E(9RD@iZF(P'9N08!*!(##!!!!%!N!J(!*!\r5!94&@&43HA4S!*!)XK9c6E)9Fdd!!!0N!!!'F`#3#"Z&-!%!!!#F!!(YfJ!%!!$\rrrrrq!!&5[3#3""(H!!!!!J#3""1%!*!D!E,)!*!I"!#3"9"TH'&b5@eKCf93E(9\rRD@iZF(P'9N08!*!(##!!!!%!N!J(!*!5!94&@&43HA4S!*!)XK9c6V9Q`Ji!!!i\r)!!!QhJ#3#(R`r3`!!!#F!!(Yf`!%!!$rrrrq!*!)%Gm!!!!#!*!%%B3!N"S"XXJ\r!N"m%!*!&8'jR5@eKCf93E(9RD@iZF(P'9N08!*!(##!!!!%!N!J(!*!5!94&@&4\r3HA4S!*!)XK9c8V9Q`Ji!!!4b!!!+m3#3#+TLEK`!!!#F!!(Yh!!%!!$rrrrq!!!\rQhJ#3""(J!!!!!J#3""'%!*!D!E,)!*!I"!#3"9"`E8PYB@GP8'aeCfPZ,R"j4PC\r$9!#3"`JJ!!!"!*!)"`#3%J&849K88(PdD!#3#,)9Fe1eCX)1!!!%1J!!#M3!N!J\rfdVkV!!!!R!!"lGd!"!!!rrrrrJ!!-Fm!N!34i3!!!!)!N!34K!#3'J'bb!#3(`3\r!N!93Ff4*E@&RC9"XG@GTELj`H8C@3e3!N!F))!!!!3#3#!F!N")"9%9B9&"jG'J\r!N!Lb&A0&Y@E#$J!!"k`!!"0j!*!)V3lU$3!!!*`!!HhH!!3!!2rrrri!!$`$!*!\r%%H)!!!!#!*!%#B3!N"S"XXJ!N"m%!*!&8&0%FQ&h,R"j4PC$9!#3"`JJ!!!"!*!\r)"`#3%J&849K88(PdD!#3#,)9FeDeCX)1!!!$IJ!!"mX!N!K!j#&H!!!!R!!"lGm\r!"!!!rrrrrJ!!6h`!N!34i`!!!!)!N!34K!#3'J'bb!#3(`3!N!96CfP*E@&RC9"\rXG@GTELj`H8C@3e3!N!F))!!!!3#3#!F!N")"9%9B9&"jG'J!N!Lb&A0CY@E#$`!\r!!f!!!!EQ!*!)aTl%j`!!!*`!!HhJ!!3!!2rrrri!!&G(!*!%%H3!!!!#!*!%%B3\r!N"S"XXJ!N"m%!*!&8h9Z5@eKCf93E(9RD@iZF(P'9N08!*!(##!!!!%!N!J(!*!\r5!94&@&43HA4S!*!)XK9cA,9Q`Jm!!!)J!!!$RJ#3#1'b4TN!!!#F!!(Yi3!%!!$\rrrrrq!!"H,3#3""(P!!!!!J#3"!L%!*!D!E,)!*!I"!#3"94KFNP2,R"j4PC$9!#\r3"`JJ!!!"!*!)"`#3%J&849K88(PdD!#3#,)9FebeCX)2!!!%[J!!#e!!N!KlNhP\rJ!!!!R!!"lH)!"!!!rrrrrJ!!BFX!N!34jJ!!!!)!N!34K!#3'J'bb!#3(`3!N!9\r8Cf&*E@&RC9"XG@GTELj`H8C@3e3!N!F))!!!!3#3#!F!N")"9%9B9&"jG'J!N!L\rb&A0JYX4V$`!!&1S!!$`j!*!)8G1E`J!!!*`!!HhM!!3!!2rrrri!!'dE!*!%%HF\r!!!!#!*!%%S3!N"S"XXJ!N"m%!*!&9'PQCNPYB@GP8'aeCfPZ,R"j4PC$9!#3"`J\rJ!!!"!*!)"`#3%J&849K88(PdD!#3#,)9Ff'eCX)2!!!*B!!!'0B!N!JBJ#m6!!!\r!R!!"lH3!"!!!rrrrrJ!!U93!N!34k!!!!!)!N!34K!#3'J'bb!#3(`3!N!9AE@C\r*E@&RC9"XG@GTELj`H8C@3e3!N!F))!!!!3#3#!F!N")"9%9B9&"jG'J!N!Lb&A0\rNY@E#$`!!!c!!!!C2!*!)XJZMT`!!!*`!!HhP!!3!!2rrrri!!-)U!*!%%HN!!!!\r#!*!%%B3!N"S"XXJ!N"m%!*!&@'*Y5@eKCf93E(9RD@iZF(P'9N08!*!(##!!!!%\r!N!J(!*!5!94&@&43HA4S!*!)XK9cCV9Q`Jm!!!4m!!!*ZJ#3#1&HdU3!!!#F!!(\rYjJ!%!!$rrrrq!!$)H3#3""(U!!!!!J#3""'%!*!D!E,)!*!I"!#3"9K`E8PYB@G\rP8'aeCfPZ,R"j4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K88(PdD!#3#,,M#BQbi`Q\r*!!!$3J!!"J3!N!LYlS9r!!!!R!!"lHF!"!!!rrrrrJ!!dM-!N!34k`!!!!)!N!3\r9K!#3'J'bb!#3(`3!N!9B9P4SG@eL5@eKCf93E(9RD@iZF(P'9N08!*!(##!!!!%\r!N!J(!*!5!94&@&43HA4S!*!)Y@E#$l9Q`Jm!!!$'!!!!l3#3#$D9CI`!!iGf!!1\r(G`!%!!$rrrrq!!$B0`#3""Q0!!!!!J#3"!Z%!*!D!E,)!*!I"!#3"9pID@jTG&p\rI,R"j4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K88(PdD!#3#,9Q`JqeCX)2!!!&1J!\r!$$B!N!JrhDGR!!1(GJ!$Kl!!"!!!rrrrrJ!!f53!N!3CM!!!!!)!N!3,K!#3'J'\rbb!#3(`3!N!98D@CQ9'&RFbj`H8C@3e3!N!F))!!!!3#3#!F!N")"9%9B9%0A588\r!N!Lb&A,PXK9bj3!!!!`!!!!%!*!)YhmD43!!!*N!!HfJ!!-!!2rrrri!!19D!*!\r%%H`!!!!#!*!%"i3!N"S"VmJ!N"m%!*!&8%P-,R"dD%C@3e3!N!F))!!!!3#3#!F\r!N")"9%9B9&)UBfJ!N!Lb&A,QYX4V$`!!$Y`!!#9V!*!)FM%c3!!!!*N!!HfK!!-\r!!2rrrri!!19H!*!%%Hd!!!!#!*!%"S3!N"S"VmJ!N"m%!*!&8N9"4%e&4&C$9!#\r3%,E"dV!!N!HG!!!!Q3!!!!%!N"`4lJ!!!!-!!J#3"!3!!!!)"!F!N"X"VmJ!N#0\r6B@jP4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K88(PdD!#3#,)9FfQb&A0T!!!"X!!\r!!ZS!N!J[pYI3!!!!R3!"lHN!"!!!rrrrrJ#3#"([!!!!!J#3"!H%!*!D!E2)!*!\rI"!#3"@4PE@mZF(P'9N08!*!(##!!!!%!N!J(!*!5!94&@&45+Q0S!*!)XZ-*LV,\rM#BS!!!$d!!!"E`#3#0p9c(d!!!#G!!(YkJ!%!!$rrrrq!!!#kJ#3""(`!!!!!J#\r3"!D%!*!D!E2)!*!I"!#3"9*&384048C@3e3!N!F))!!!!3#3#!F!N")"9%9B9&"\rjG'J!N!Lb&A0XY@E#%!!!"fJ!!"3!N!N"0e5@!!!!R3!"lHX!"!!!rrrrrJ!!"&N\r!N!34m3!!!!)!N!3(K!#3'J'cb!#3(`3!N!9cB@jP,R"j4PC$9!#3"`JJ!!!"!*!\r)"`#3%J&849K8G(4iG!#3#,9Q`K#eCX)3!!!+q!!!'E8!N!KaB%r3!!1(Y3!$KlN\r!"!!!rrrrrJ!!'&N!N!3CL`!!!!)!N!3,K!#3'J'cb!#3(`3!N!9cB@jPC'pM,R4\riG%4@3e3!N"#fX%[R!*!(RJ!!!*N!!!!"!*!F%I)!!!!$!!)!N!3(!!!!#!3(!*!\rE!Dr)!*!M8f0bDA"dFdC@3e3!N!F))!!!!3#3#!F!N")"9%9B9&"jG'J!N!Lb&A0\r[XK9cE`!!#&i!!"A!!*!)aK+MM3!!!*i!!HhY!!3!!2rrrri!N!J4m`!!!!)!N!3\r+K!#3'J'db!#3(`3!N!9LC'BbF'PX,R"j4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K\r88(PdD!#3#,)9Fh#b&A0`!!!#F!!!"2d!N!MLL$jN!!!!RJ!"lHi!"!!!rrrrrJ!\r!&F!!N!34p!!!!!)!N!3,K!#3'J'db!#3(`3!N!9PEQKKEQ0PFLj`H8C@3e3!N!F\r))!!!!3#3#!F!N")"9%9B9&"jG'J!N!Lb&A0cXZ-*M!!!!rB!!!Pr!*!)CMF3SJ!\r!!*i!!Hh[!!3!!2rrrri!!"Up!*!%%I8!!!!#!*!%#S3!N"S"Y-J!N"m%!*!&CAK\r`E'pNC5j`H8C@3e3!N!F))!!!!3#3#!F!N")"9%9B9&"jG'J!N!Lb&A0fXK9cGJ!\r!"0i!!!UL!*!)X955$J!!!*i!!Hh`!!3!!2rrrri!!#3m!*!%%IB!!!!#!*!%#i3\r!N"S"Y-J!N"m%!*!&CfPQE@&VCA)ZF(P'9N08!*!(##!!!!%!N!J(!*!5!94&@&4\r3HA4S!*!)XK9cHE)9FhN!!!5Z!!!+Q`#3#&Afq`i!!!#H!!(Ym3!%!!$rrrrq!!!\rZhJ#3""(h!!!!!J#3"!Z%!*!D!E6)!*!I"!#3"@PYB@GP-R"j,R"j4PC$9!#3"`J\rJ!!!"!*!)"`#3%J&849K88(PdD!#3#,)9Fi#b&A1!!!!$2!!!"Ud!N!LJmHl#!!!\r!RJ!"lI)!"!!!rrrrrJ!!1AN!N!34q!!!!!)!N!3+K!#3'J'db!#3(`3!N!9`B@P\rZG'9b,R"j4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K88(PdD!#3#,)9Fi#eCX)3!!!\r$UJ!!#%i!N!LEV-[&!!!!RJ!"lI-!"!!!rrrrrJ!!3#B!N!34q3!!!!)!N!30K!#\r3'J'db!#3(`3!N!9`D@aMEfjfCA*d,R"j4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K\r88(PdD!#3#,,M#Bbbi`Q-!!!12!!!1Y`!N!MR1QGh!!!!RJ!"lI3!"!!!rrrrrJ!\r!5(3!N!34qJ!!!!)!N!3-K!#3'J'db!#3(`3!N!9`D@aNFQPfCA)ZF(P'9N08!*!\r(##!!!!%!N!J(!*!5!94&@&43HA4S!*!)XK9cJE)9Fi%!!!0%!!!'j!#3#%6[bAJ\r!!!#H!!(Yp3!%!!$rrrrq!!#$8!#3""(l!!!!!J#3"!U%!*!D!E6)!*!I"!#3"A"\rTE'CTE'8ZF(P'9N08!*!(##!!!!%!N!J(!*!5!94&@&43HA4S!*!)XK9cJV)9Fi)\r!!!*+!!!%K3#3#+HUkQi!!!#H!!(YpJ!%!!$rrrrq!!#+0!#3""(m!!!!!J#3"!U\r%!*!D!E6)!*!I"!#3"A"TE'C[ER3ZF(P'9N08!*!(##!!!!%!N!J(!*!5!94&@&4\r3HA4S!*!)XK9cJl)9Fi-!!!23!!!)0`#3#$m,J'J!!!#H!!(Yp`!%!!$rrrrq!!#\r1Z3#3""(p!!!!!J#3"!Z%!*!D!E6)!*!I"!#3"A"TE("bD@jd,R"j4PC$9!#3"`J\rJ!!!"!*!)"`#3%J&849K88(PdD!#3#,)9Fi5b&A1%!!!$N!!!!!N+!*!)DemTMJ!\r!!*i!!Hhi!!3!!2rrrri!!*E`!*!%%Ii!!!!#!*!%#B3!N"S"Y-J!N"m%!*!&F'a\rKH@9b,R"j4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K88LTMD!#3#,)9Ffqb&A0[!!!\r$d!!!#D8!N!MJmYGp!!!!RJ!"lIN!"!!!rrrrrJ!!RrS!N!34r`!!!!)!N!3'K!#\r3'J'db!#3(`3!N!9548&%689'9N08!*!(##!!!!%!N!J(!*!5!94&@&43HA4S!*!\r)XK9cKE)9Fi8!!!-J!!!'&J#3#0ET[9N!!!#H!!(YqJ!%!!$rrrrq!!#TR`#3"")\r!N!3#!*!%$S3!N"S"Y-J!N"m%!*!&G'KbCA0SEfaNCA)ZF(P'9N08!*!(##!!!!%\r!N!J(!*!5!94&@&43HA4S!*!)XK9cKV)9Fj)!!!'Z!!!$8`#3#*Z,[f8!!!#H!!(\rYq`!%!!$rrrrq!!#[Y3#3"")"!!!!!J#3"!Q%!*!D!E6)!*!I"!#3"ACTCAGPFLj\r`H8C@3e3!N!F))!!!!3#3#!F!N")"9%9B9%0A588!N!LeCX)(Y@E#"`!!!)S!!!#\ra!*!)#Z8aL`!$KfB!!iGR!!-!!2rrrri!!,-)!*!%'BN!!!!#!*!%"B3!N"S"Vi!\r"!*!H"!#3"8*958a%4&C$9!#3%,EQVhDfjUpi!!!!S!!!!*J!!!!"!*!F%J8!!!!\r#!!)!N!3$!!!!#!3(!*!4S!#3#3'ZJ-!!N#*TE@G%9N08!*!3YV",kJ#3"k%!!!#\rJ!!!!!3#3(")'!!!!!`!#!*!%!`!!!!J%"`#3'`'fJ-!!N#*-D@*'9N08!*!(##!\r!!!%!N!J(!*!5!94&@&43HA4S!*!)XK9fHV)9GRS!!!2D!!!*cJ#3#!`2dkd!!!#\rK!!(Z!J!%!!$rrrrq!*!)%JF!!!!#!*!%"S3!N"S"Yi$!!*!H"!#3"@PYCbj`H8C\r@3e3!N!F))!!!!3#3#!F!N")"9%9B9&"jG'J!N!Lb&AClXK9fH`!!"X3!!"A&!*!\r)KeBBKJ!!!+%!!Hi$!!3!!2rrrri!!!R1!*!%%JJ!!!!#!*!%#B3!N"S"Yi$!!*!\rH"!#3"@PYCf*YF#j`H8C@3e3!N!F))!!!!3#3#!F!N")"9%9B9&"jG'J!N!Lb&AC\rmY1)Gm!!!%Ui!!%)T!*!)+R%@A`!!!+%!!Hi%!!3!!2rrrri!!"q6!*!%%JN!!!!\r#!*!%$B3!N"S"Yi$!!*!H"!#3"@PYCf0[ERCPFR3ZF(P'9N08!*!(##!!!!%!N!J\r(!*!5!94&@&43HA4S!*!)XK9fIE,[-U)!!!AB!!!4a!#3#2piV1i!!!#K!!(Z"3!\r%!!$rrrrq!!"K[!#3"")+!!!!!J#3"!U%!*!D!EH!`!#3(J3!N!9TE@GUF'9R,R"\rj4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K88(PdD!#3#,)9GRfb&ACp!!!%Q!!!$*)\r!N!MXDY[N!!!!S3!"lJB!"!!!rrrrrJ!!Fi!!N!35#`!!!!)!N!3+K!#3'J'hJ-!\r!N"i%!*!&D@eRF'PMG#j`H8C@3e3!N!F))!!!!3#3#!F!N")"9%9B9&"jG'J!N!L\rb&ACqXK9fIJ!!!MJ!!!@-!*!)U[4hd`!!!+%!!Hi(!!3!!2rrrri!!)!5!*!%%J`\r!!!!#!*!%#S3!N"S"Yi$!!*!H"!#3"@PYCh"iH(JZF(P'9N08!*!(##!!!!%!N!J\r(!*!5!94&@&43HA4S!*!)XK9fIV)9GRi!!!1b!!!0IJ#3#(e3,+J!!!#K!!(Z#!!\r%!!$rrrrq!!#&RJ#3"")0!!!!!J#3"!Q%!*!D!EH!`!#3(J3!N!9TE@GcCfNZF(P\r'9N08!*!(##!!!!%!N!J(!*!5!94&@&43HA4S!*!)XK9fIV)9GRi!!!1#!!!)a3#\r3#1&,YG8!!!#K!!(Z#3!%!!$rrrrq!!#6(!#3"")1!!!!!J#3"!Q%!*!D!EH!`!#\r3(J3!N!9TE@GiBQdZF(P%9N08!*!3YZD[GVEQVhJ!!!#L!!!!S!!!!!%!N"`5$`!\r!!!-!!J#3"!-!!!!)"!F!N"'J!*!*!ED!`!#3)NeKBdC@3e3!N!F))!!!!3#3#!F\r!N"!&!!&cD'aL8(PdD!#3#,CdpkQfj@Mr!!!F)J!!0ci!!!"S!!!"PS+SJ'S!!!#\rL!!(Z#`!%!!$rrrrq!*!'0ci5%!!!!!)!N!36K!#3%)!!N!N"Z)#!!*!H"J#3"@P\rYCf0[E'pbE@&`,R"`BbjcE'*'9N08!*!(##!!!!%!N!J(!*!3"3!"FfKXBP"jG'J\r!N!LfG2'VYZ9T!!!!#h!!!#$L!!!!D!!!!C+3!(V)B!!!!+)!!Hi-!!3!!2rrrri\r!!$M8!!"CYK)4!!!!!J#3""'%!*!3J!#3#3'iJ)!!N"i'!*!&D@eRCQpbE@&d,R"\r`BbjcE'*'9N08!*!(##!!!!%!N!J(!*!3"3!"FfKXBP"jG'J!N!LfG2IfYZ9T"!!\r!(4!!!$rF!!!!CJ!!!C,(%'e@!!!!SJ!"lJd!"!!!rrrrrJ!!@dJ!!*XN%K)!!!!\r#!*!%$S3!N"#!!*!*!EL!J!#3(JB!N!9TE@GRD@BZF("M,R0XBNC@3e3!N!F))!!\r!!3#3#!F!N"!&!!&cD'aL8(PdD!#3#,Db(TDfj@N'!!$rp!!#(d8!!!"Q!!!"NZS\r(PpS!!!#L!!(Z$J!%!!$rrrrq!*!)%K-!!!!#!*!%$i3!N"#!!*!*!EL!J!#3(JB\r!N!9TE@GUF'9R,R"`BbjcE'*'9N08!*!(##!!!!%!N!J(!*!3"3!"FfKXBP"jG'J\r!N!LfG2(#YZ9T!!!!$@`!!"XV!!!!BJ!!!BiN(Y"2!!!!SJ!"lJm!"!!!rrrrrJ#\r3"KXV%K3!!!!#!*!%$B3!N"#!!*!*!EL!J!#3(JB!N!9TE@G[F#j`F'-ZFfaL4PC\r$9!#3"`JJ!!!"!*!)"`#3%!8!!A0SE'*3HA4S!*!)YR6h`VEPD3%!!"K`!!!eB`!\r!!'3!!!'5a(BTlJ!!!+)!!Hi3!!3!!2rrrri!!"bj!!"5(")9!!!!!J#3"!k%!*!\r3J!#3#3'iJ)!!N"i'!*!&D@eRF'*Y,R"`BbjcE'*'9N08!*!(##!!!!%!N!J(!*!\r3"3!"FfKXBP"jG'J!N!LfG2LSYZ9T!`!!'dS!!$UY!!!!C!!!!C+ESImL!!!!SJ!\r"lK%!"!!!rrrrrJ!!8ki!!)jE%KB!!!!#!*!%$S3!N"#!!*!*!EL!J!#3(JB!N!9\rTE@G`CfdZF("M,R0XBNC@3e3!N!F))!!!!3#3#!F!N"!&!!&cD'aL8(PdD!#3#,C\rdq"Hfj@N*!!#ULJ!"I"m!!!"Q!!!"NP6B,Dm!!!#L!!(Z%J!%!!$rrrrq!*!)%KF\r!!!!#!*!%$S3!N"#!!*!*!EL!J!#3(JB!N!9TE@G`EQFZF("M,R0XBNC@3e3!N!F\r))!!!!3#3#!F!N"!&!!&cD'aL8(PdD!#3#,Cdq+Lfj@N%!!!GH!!!35B!!!"Q!!!\r"NUc*k)3!!!#L!!(Z%`!%!!$rrrrq!*!'35B5'!!!!!)!N!31K!#3%)!!N!N"Z)#\r!!*!H"J#3"@PYCh"`E5j`F'-ZFfaL4PC$9!#3"`JJ!!!"!*!)"`#3%!8!!A0SE'*\r3HA4S!*!)YR6[qEEPD3S!!"N!!!!eP3!!!'3!!!'5SF"Pd!!!!+)!!Hi8!!3!!2r\rrrri!!%+i!!"i64)C!!!!!J#3"!k%!*!3J!#3#3'iJ)!!N"i'!*!&D@eRFfGT,R"\r`BbjcE'*'9N08!*!(##!!!!%!N!J(!*!3"3!"FfKXBP"jG'J!N!LfG2LbYZ9T"`!\r!Qj`!!c!5!!!!CJ!!!C*ji-!#!!!!SJ!"lK8!"!!!rrrrrJ#3#")D!!!!!J#3"!q\r%!*!3J!#3#3'iJ)!!N"i'!*!&D@eRG'PQCLj`F'-ZFfaL4PC$9!#3"`JJ!!!"`!#\r3"`F!N"!&!!&cD'aL8(PdD!#3#,D6cpqfj@TB!!!F)J!!0di!!!"S!!!"QVSGleS\r!!M"j!!)`IJ!%!!$rrrrq!*!'0diEM!!!!!)!N!3@K!#3%#!!N!N"Z)"!!*!H"`#\r3"!&TE@GMEfa[FQeKF#jMBA*LEfiZFfaL4PC$9!#3"`JJ!!!"`!#3"`F!N"!&!!&\rcD'aL8(PdD!#3#,D6d%kfj@TC!!!,HJ!!)2)!!!"U!!!"PP1YU1X!!M"j!!)`KJ!\r%!!$rrrrq!!!ik!!!@GSEK3!!!!)!N!38K!#3%#!!N!N"Z)"!!*!H"`#3"!&TE@G\rQEh*YBA3ZBf&bBQpZ,R0XBNC@3e3!N!F))!!!!F!!N!F(!*!3"3!"FfKXBP"jG'J\r!N!LfNp#5YZ9UAJ!!(4B!!$rF!!!!C!!!!C,a(DJI!!)`H3!#-)i!"!!!rrrrrJ!\r!@h!!!*Y-'hi!!!!#!*!%%B3!N"!J!*!*!EL!3!#3(JF!N!3"D@eRCfPQ,Q0KFQ*\r[ELjcE'*'9N08!*!(##!!!!(!!*!("`#3%!8!!A0SE'*3HA4S!*!)YT23U,EPDPm\r!!2rq!!)I93!!!'J!!!'@VG)RA!!#-(N!!M#@!!3!!2rrrri!N!JEG`!!!!)!N!3\r5K!#3%#!!N!N"Z)"!!*!H"`#3"!&TE@GUF'9R,Q0KFQ*[ELjcE'*'9N08!*!(##!\r!!!(!!*!("`#3%!8!!A0SE'*3HA4S!*!)YT238lEPDPS!!!ed!!!E+`!!!'J!!!'\r5HFf[&`!#-(N!!M#I!!3!!2rrrri!N!BE+aY[!!!!!J#3""#%!*!3)!#3#3'iJ%!\r!N"i(!*!%!@PYCfp`,Q0KFQ*[ELjcE'*'9N08!*!(##!!!!(!!*!("`#3%!8!!A0\rSE'*3HA4S!*!)YT23ClEPDPX!!"Kk!!!eF`!!!'3!!!'51Y3prJ!#-(N!!M#R!!3\r!!2rrrri!!"bp!!"5-"YS!!!!!J#3""'%!*!3)!#3#3'iJ%!!N"i(!*!%!@PYCh"\rLE5jMBA*LEfiZFfaL4PC$9!#3"`JJ!!!"`!#3"`F!N"!&!!&cD'aL8(PdD!#3#,D\r6d(Dfj@TF!!!E6J!!1Vd!!!"Q!!!"NZqQV2X!!M"j!!)`V`!%!!$rrrrq!!"6`J!\r!MRmEB3!!!!)!N!34K!#3%#!!N!N"Z)"!!*!H"`#3"!&TE@G`CfdZBf&bBQpZ,R0\rXBNC@3e3!N!F))!!!!F!!N!F(!*!3"3!"FfKXBP"jG'J!N!LfNp$2YZ9UB3!!USi\r!!A`I!!!!C!!!!C*(2BBE!!)`H3!#-,F!"!!!rrrrrJ#3#"YD!!!!!J#3""'%!*!\r3)!#3#3'iJ%!!N"i(!*!%!@PYCh"ZCbjMBA*LEfiZFfaL4PC$9!#3"`JJ!!!"`!#\r3"`F!N"!&!!&cD'aL8(PdD!#3#,D6d)5fj@TG!!!GIJ!!36B!!!"N!!!"NU,Z4IN\r!!M"j!!)`[`!%!!$rrrrq!*!'36BE8`!!!!)!N!34K!#3%#!!N!N"Z)"!!*!H"`#\r3"!&TE@G`F'dZBf&bBQpZ,R0XBNC@3e3!N!F))!!!!F!!N!F(!*!3"3!"FfKXBP"\rjG'J!N!LfNmTRYZ9UB`!!'3J!!$@9!!!!C!!!!C,@e8d(!!)`H3!#--F!"!!!rrr\rrrJ!!3XJ!!(KG'd`!!!!#!*!%%B3!N"!J!*!*!EL!3!#3(JF!N!3"D@eRFfGT,Q0\rKFQ*[ELjcE'*'9N08!*!(##!!!!(!!*!("`#3%!8!!A0SE'*3HA4S!*!)YT259lE\rPDQ!!!*ZQ!!-`)J!!!'J!!!'@q4$[M!!#-(N!!M$2!!3!!2rrrri!N!JE43!!!!)\r!N!35K!#3%#!!N!N"Z)"!!*!H"`#3"!&TE@GdD@CQ,Q0KFQ*[ELjcE'*'9N08!*!\r(##!!!!%!N!J(!*!5!94&@&4$9dP&!*!)XK9fE,)9GQ`!!!TF!!!9YJ#3#,3F8fN\r!!!#J!!(Z!!!$!!$rrrrq!*!)%KX!!!!#!*!%#S3!N"S"YS$!!*!H"!#3"9*&384\r045jTE@G%9N08!*!3YV",rJ#3"k-!!!#J!!!!!3#3(")F!!!!!`!#!*!%"!!!!!J\r%"`#3'`'fJ-!!N#*dCA0d4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K88(PdD!#3#,)\r9GS+b&AD#!!!#E!!!"@d!N!JH-h8`!!!!S`!"lKF!"!!!rrrrrJ#3#")G!!!!!J#\r3"!f%!*!D!EQ!`!#3(J3!N!9RE(4PFh4fD@9h,R"j4PC$9!#3"`JJ!!!"!*!)"`#\r3%J&38%G04dY26J#3#,)9GSDb&AD'!!!Y!J!!-LS!N!KSUcRr!!!!S`!"lKJ!"!!\r!rrrrrJ#3#")H!!!!!J#3"!q%!*!D!EQ!`!#3(J3!N!9TELeRFQ9j,A3bBLj`Cfe\r'9N08!*!(##!!!!%!N!J(!*!5!9"34de(5dp1!*!)XK9fKV)9GSB!!!6)!!"253#\r3#*qNh2N!!!#M!!(Z'3!%!!$rrrrq!!!b+J#3"")I!!!!!J#3"!Z%!*!D!EQ!`!#\r3(J3!N!9TELeTBfpZ,R"LE8C@3e3!N!F))!!!!3#3#!F!N")"4dP'CNT@9e)!N!L\rb&AD-XK9fM3!!-hJ!!$5G!*!)''mf#3!!!+-!!HiD!!3!!2rrrri!N!J5)!!!!!)\r!N!31K!#3'J'jJ-!!N"i%!*!&D@iYE@&`,A3bBLjRD@C'9N08!*!(##!!!!%!N!J\r(!*!5!9"34de(5dp1!*!)XK9fQE)9GTS!!)0!!!#@I3#3#,4P(1)!!!#M!!(Z'`!\r%!!$rrrrq!*!)%L%!!!!#!*!%$S3!N"S"ZB$!!*!H"!#3"@PZ,A*RBLed-Q)ZF("\rY4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K88(PdD!#3#,)9GTUb09GG!!!"p!!!!rX\r!N!MT@PXD!!!!S`!"lM)!"!!!rrrrrJ#3#")i!!!!!J#3"!k%!*!D!EQ!`!#3(J3\r!N!9dCA0dBfpZGQ9bG#j`H8C@3e3!N!F))!!!!3#3#!F!N")"9%9B9&"jG'J!N!L\rb&ADFXZmbS`!!"YS!!"mC!*!)9JlEJ!!!!+-!!Hic!!3!!2rrrri!!!2l!*!%%MN\r!!!!#!*!%#S3!N"S"ZB$!!*!H"!#3"A4PFh4TE@FZF(P'9N08!*!(##!!!!%!N!J\r(!*!5!94&@&43HA4S!*!)XK9fRE)9GTd!!!*X!!!&E3#3#"icG6!!!!#M!!(Z0!!\r%!!$rrrrq!!!M&!#3"")k!!!!!J#3"!Z%!*!D!EQ!`!#3(J3!N!9dCA0dGQPPGbj\r`H8C@3e3!N!F))!!!!3#3#!F!N")"9%9B9&"jG'J!N!Lb&ADGY1Y)1J!!"ai!!"+\r&!*!))Eh,J!!!!+-!!Hie!!3!!2rrrri!!#L"!*!%%MX!!!!#!*!%$)3!N"S"ZB$\r!!*!H"!#3"AKdCA0dGQPPGbj`H84@3e3!N!S#(3"C!3HfjUpmYZD[SJ!!!+N!!!"\rd!!!!!3#3("*E!!!!!3!#!*!%!`!!!!J%"`#3%H!!N!N"Lr-!N#0-D@*'9N08!*!\r(##!!!!%!N!J(!*!5!94&@&43HA4S!*!)YC&#S,E&dIi!!!Z5!!!Q&`#3#)0C5bm\r!!!#T!!1)j!!#!!$rrrrq!*!)'CJ!!!!#!*!%$B3!N"S"[k)!N"m%!*!&Gf9LBR*\r[Gh0PFLj`H8C@3e3!N!F))!!!!3#3#!F!N")"9%9B9&"jG'J!N!Leb+fcYZ'B,`!\r!#KJ!!"h)!*!)I6hj@!!!!+N!!iM"!!)!!2rrrri!!#BA!*!%'CF!!!!#!*!%#B3\r!N"S"[k)!N"m%!*!&FfpMDf9d,R"j4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K88(P\rdD!#3#,@#PeHfhAY$!!!Ap!!!ALd!N!K[K5,`!!!!U3!$L+8!!J!!rrrrrJ!!3pm\r!N!3CPJ!!!!)!N!3'K!#3'J'rSJ#3(`3!N!9`FQ8ZF(P'9N08!*!(##!!!!%!N!J\r(!*!5!94&@&43HA4S!*!)YB!TLVD[DUN!!"hX!!"JI`#3#-J+#md!!!#T!!1)K`!\r#!!$rrrrq!!#L$!#3""Q9!!!!!J#3"!U%!*!D!EqL!*!I"!#3"@PYF(9dD@`ZF(P\r'9N08!*!(##!!!!%!N!J(!*!5!94&@&43HA4S!*!)YGXe6VD6T4-!!!h#!!!PX3!\r!!()!!!'D(D,je`!!!+N!!iKp!!)!!2rrrri!!3+,!!%S2"Q8!!!!!J#3"!U%!*!\rD!EqL!*!I"!#3"@GPG(4PH(3ZF(P'9N08!*!(##!!!!%!N!J(!*!5!94&@&43HA4\rS!*!)YFLYXVDkSq-!!#"S!!"Jj!#3#"8$hrd!!!#T!!1)E3!#!!$rrrrq!*!)'C-\r!!!!#!*!%#B3!N"S"[k)!N"m%!*!&3fp[DfPP,R"j4PC$9!#3"`JJ!!!"!*!)"`#\r3%J&849K88(PdD!#3#,@!+BLfNk8,!!!#4J!!"@!!N!J+RNJ(!!!!U3!$L&N!!J!\r!rrrrrJ!!B13!N!3CNJ!!!!)!N!3*K!#3'J'rSJ#3(`3!N!9KG'9iDA3ZF(P'9N0\r8!*!(##!!!!%!N!J(!*!5!94&@&43HA4S!*!)X[aGBED6T3X!!"[m!!##A!#3#%c\rXcC)!!!#T!!(Z9J!#!!$rrrrq!*!)%P`!!!!#!*!%"i3!N"S"[k)!N"m%!*!&B@P\rQBbj`H8C@3e3!N!F))!!!!3#3#!F!N")"9%9B9&"jG'J!N!Lbr&eKYVUMi`!!"%B\r!!!Tb!*!)l![mp3!!!+N!!HjA!!)!!2rrrri!N!J5A3!!!!)!N!3*K!#3'J'rSJ#\r3(`3!N!9KERPNBQdZF(P'9N08!*!(##!!!!%!N!J(!*!5!94&@&43HA4S!*!)X[a\rGBVD[DU8!!!cS!!!TE!#3#(bd,a)!!!#T!!(Z@!!#!!$rrrrq!!!+FJ#3""*H!!!\r!!J#3"!Z%!*!D!EqL!*!I"!#3"@&cH@jMD'&d,R"j4PC$9!#3"`JJ!!!"!*!)"`#\r3%J&849K88(PdD!#3#,,mA@+fVfUP!!!5iJ!!3@%!N!L@VRYf!!!!U3!"lPN!!J!\r!rrrrrJ!!-pi!N!35A`!!!!)!N!3,K!#3'J'rSJ#3(`3!N!9KFhPZBfpbC5j`H8C\r@3e3!N!F))!!!!3#3#!F!N")"9%9B9&"jG'J!N!Lbr&eLYT1P#`!!"Ui!!"cX!*!\r)-&VEjJ!!!+N!!HjD!!)!!2rrrri!!(8r!*!%%Q!!!!!#!*!%#i3!N"S"[k)!N"m\r%!*!&BA9ND@pNCABZF(P'9N08!*!(##!!!!%!N!J(!*!5!94&@&43HA4S!*!)X[a\rGBVD6T3X!!!-J!!!(h`#3#1rAlL)!!!#T!!(Z@`!#!!$rrrrq!!#5+`#3""*K!!!\r!!J#3"!Q%!*!D!EqL!*!I"!#3"@*KFf8f0#j`H8C@3e3!N!F))!!!!3#3#!F!N")\r"9%9B9&"jG'J!N!Lbr&eIYUpUS`!!&UB!!%!b!*!)QpM-pJ!!!+N!!HjF!!)!!2r\rrrri!!*S+!*!%%Q)!!!!#!*!%%B3!N"S"[k)!N"m%!*!&3Q&cC8K89&"6CA*fCA)\rZF(P'9N08!*!(##!!!!%!N!J(!*!5!94&@&43HA4S!*!)X[aGAlD6T3F!!!JN!!!\r9UJ#3#'@UXNi!!!#T!!(ZA3!#!!$rrrrq!!$D2!#3""*M!!!!!J#3"!U%!*!D!Eq\rL!*!I"!#3"8*KFh4TEfiZF(P'9N08!*!(##!!!!%!N!J(!*!5!94&@&43HA4S!*!\r)X[aGBVD[DU8!!"&D!!"'IJ#3#)38UG-!!!#T!!(ZAJ!#!!$rrrrq!!$[jJ#3""*\rN!!!!!J#3"!D%!*!D!EqL!*!I"!#3"@*NBLj`H8C@3e3!N!F))!!!!3#3#!F!N")\r"9%9B9&"jG'J!N!Lbr&eLYUpUTJ!!%&B!!$VM!*!)BJRE[!!!!+N!!HjI!!)!!2r\rrrri!!6CN!*!%%Q8!!!!#!*!%#B3!N"S"[k)!N"m%!*!&BQPZD'9i,R"j4PC$9!#\r3"`JJ!!!"!*!)"`#3%J&849K88(PdD!#3#,,mA@1fZU2M!!!"rJ!!#(i!N!KYbQN\rj!!!!U3!"lQ!!!J!!rrrrrJ!"F8F!N!35CJ!!!!)!N!3*K!#3'J'rSJ#3(`3!N!9\rLDA0PBh3ZF(P'9N08!*!(##!!!!%!N!J(!*!5!94&@&43HA4S!*!)X[aGBlD6T3`\r!!!Q`!!!F0`#3#++a59-!!!#T!!(ZB3!#!!$rrrrq!*!)%QF!!!!#!*!%#i3!N"S\r"[k)!N"m%!*!&Bf&XC@jNBA)ZF(P'9N08!*!(##!!!!%!N!J(!*!5!94&@&43HA4\rS!*!)X[aGC,EGHd)!!#*F!!"r&3#3#*!!1de9!!!!U3!"lQ)!!J!!rrrrrJ!!($F\r!N!35D!!!!!)!N!3'K!#3'J'rSJ#3(`3!N!9MCfNZF(P'9N08!*!(##!!!!%!N!J\r(!*!5!94&@&43HA4S!*!)X[aGAlD[DU3!!!cF!!!RP`#3#+jlUkN!!!#T!!(ZB`!\r#!!$rrrrq!!#E6!#3""*T!!!!!J#3""#%!*!D!EqL!*!I"!#3"80(58K89&"6CA*\rfCA)ZF(P'9N08!*!(##!!!!%!N!J(!*!5!94&@&43HA4S!*!)XjD@X,DkSq3!!!C\rU!!!8``#3#'ZS+'-!!!#T!!(ZC!!#!!$rrrrq!!$#i`#3""*U!!!!!J#3"!L%!*!\rD!EqL!*!I"!#3"@0SG@jV,R"j4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K88(PdD!#\r3#,,mA@5fiCJV!!!)X!!!'R)!N!MQ3jh&!!!!U3!"lQ8!!J!!rrrrrJ!!ekB!N!3\r5D`!!!!)!N!3'K!#3'J'rSJ#3(`3!N!9ME@3ZF(P'9N08!*!(##!!!!%!N!J(!*!\r5!94&@&43HA4S!*!)X[aGCED[DUB!!!ad!!!R+J#3#"X%,MX!!!#T!!(ZCJ!#!!$\rrrrrq!!$b'!#3""*X!!!!!J#3"!H%!*!D!EqL!*!I"!#3"@0[C'8ZF(P'9N08!*!\r(##!!!!%!N!J(!*!5!94&@&43HA4S!*!)Y4!2BED6T3i!!"+3!!!!4@m!N!L+Cr*\rS!!!!U3!"lQF!!J!!rrrrrJ!"'8)!N!35E3!!!!)!N!3*K!#3'J'rSJ#3(`3!N!9\rMEf4PBh-ZF(P'9N08!*!(##!!!!%!N!J(!*!5!94&@&43HA4S!*!)X[aGCED[DUB\r!!!5b!!!,)J#3#,F8j'3!!!#T!!(ZD!!#!!$rrrrq!!&HX3#3""*Z!!!!!J#3"!Q\r%!*!D!EqL!*!I"!#3"@0[C'9[F#j`H8C@3e3!N!F))!!!!3#3#!F!N")"9%9B9&"\rjG'J!N!Lbr&ePYT1P$J!!",i!!!aa!*!)k1*,4J!!!+N!!HjT!!)!!2rrrri!!@R\r6!*!%%Qm!!!!#!*!%#i3!N"S"[k)!N"m%!*!&BfpXEh*cHA-ZF(P'9N08!*!(##!\r!!!%!N!J(!*!5!94&@&43HA4S!*!)X[aGCED6T3i!!!2)!!!)j`#3#&DVcmJ!!!#\rT!!(ZDJ!#!!$rrrrq!*!)%R!!!!!#!*!%#i3!N"S"[k)!N"m%!*!&BfpYE@&ZC(-\rZF(P'9N08!*!(##!!!!%!N!J(!*!5!94&@&43HA4S!*!)X[aGCED6T3m!!!@i!!!\r3k!#3#!Z66!J!!!#T!!(ZD`!#!!$rrrrq!!!)j`#3""*a!!!!!J#3"!f%!*!D!Eq\rL!*!I"!#3"@0[EA"TE'9KE'`ZF(P'9N08!*!(##!!!!%!N!J(!*!5!94&@&43HA4\rS!*!)X[aGB,E"b*B!!"'3!!!!3bS!N!LKbCjS!!!!U3!"lQ`!!J!!rrrrrJ!!'Fm\r!N!35FJ!!!!)!N!32K!#3'J'rSJ#3(`3!N!9$EfjQD@G3BA*cCA)ZF(P'9N08!*!\r(##!!!!%!N!J(!*!5!94&@&43HA4S!*!)X[aGCED6T3m!!!QD!!!J53#3#'SCi3#\r3"+N!!HjY!!)!!2rrrri!!&cj!*!%%R-!!!!#!*!%"i3!N"S"[k)!N"m%!*!&Bfp\r`H5j`H8C@3e3!N!F))!!!!3#3#!F!N")"9%9B9&"jG'J!N!Lbr&eQYT1P$`!!!F!\r!!!2S!*!)C4AJ(!!!!+N!!HjZ!!)!!2rrrri!!(e#!*!%%R3!!!!#!*!%#i3!N"S\r"[k)!N"m%!*!&Bfp`H9pbC@FZF(P'9N08!*!(##!!!!%!N!J(!*!5!94&@&43HA4\rS!*!)X[aGCVDBXZi!!!$i!!!"N!!!N!M9Tk15!!!!U3!"lQm!!J!!rrrrrJ!!J5S\r!N!35G3!!!!)!N!3*K!#3'J'rSJ#3(`3!N!9NBQKKFfJZF(P'9N08!*!(##!!!!%\r!N!J(!*!5!94&@&43HA4S!*!)X[aGCVEGHd)!!!(N!!!%A!#3#'Ab*r)!!!#T!!(\rZF!!#!!$rrrrq!!##ZJ#3""*f!!!!!J#3"!Z%!*!D!EqL!*!I"!#3"@4TFQ0KBfK\rP,R"j4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K88(PdD!#3#,,mA@HfVfUR!!!,0!!\r!)U%!N!MFMT!!'!!!!+N!!Hja!!)!!2rrrri!!)F@!*!%%RF!!!!#!*!%"S3!N"S\r"[k)!N"m%!*!&C'Pc,R"j4&C$9!#3%,EQViDfjUq(!!!!UJ!!!+N!!!!"!*!F%RJ\r!!!!#!!)!N!3*!!!!#!3(!*!E!EqL!*!MC'PcG(9dD@ac4PC$9!#3"`JJ!!!"!*!\r)"`#3%J&849K88(PdD!#3#,83%KZfhAY&!!!!c!!!!4%!N!J*VP'`!!!!UJ!"lZB\r!!`!!rrrrrJ#3#"*j!!!!!J#3"!Z%!*!D!F#L!*!I"!#3"9pID@jTG&pI,R"j4PC\r$9!#3"`JJ!!!"!*!)"`#3%J&849K88(PdD!#3#,83%KZf#6d,!!!*2J!!'AJ!N!K\rZ!hq"!!!!UJ!"lZF!!`!!rrrrrJ!!!4%!N!35HJ!!!!)!N!32K!#3'J(!SJ#3(`3\r!N!9KFQ0SDACPAh9dD@`ZF(P'9N08!*!(##!!!!%!N!J(!*!5!94&@&43HA4S!*!\r)Y4!5'lE"b*J!!#am!!#S'3#3#-L'q,8!!!#U!!(Zk!!$!!$rrrrq!*!)%RX!!!!\r#!*!%$)3!N"S"`+)!N"m%!*!&Bf0[EA"TE'9b,R"j4PC$9!#3"`JJ!!!"!*!)"`#\r3%J&849K88(PdD!#3#,83%KZfhl`3!!!A4!!!5pB!N!J"d11T!!!!UJ!"lZN!!`!\r!rrrrrJ#3#"*m!!!!!J#3"!D%!*!D!F#L!*!I"!#3"@0YC#j`H84@3e3!N"#fjUq\r(YZD[L!!!!+X!!!#U!!!!!3#3("*p!!!!!`!#!*!%"`!!!!J%"`#3'`(!SJ#3)f0\r[E@eKEQ4'9N08!*!(##!!!!%!N!J(!*!5!94&@&43HA4S!*!)Y4!5(,@!+C)!!!$\r`!!!#3J#3#)q!ba8!!!#V!!(ZqJ!%!!$rrrrq!*!)%Ri!!!!#!*!%#i3!N"S"`D)\r!N"m%!*!&AepTEQPdAemZF(P'9N08!*!(##!!!!%!N!J(!*!5!94&@&43HA4S!*!\r)Y4!5(,B8Vq8!!!Cm!!!63!#3#$%pE3X!!!#V!!(Zq`!%!!$rrrrq!!!#3J#3""*\rr!!!!!J#3"!L%!*!D!F'L!*!I"!#3"@*NDA0d,R"j4PC$9!#3"`JJ!!!"!*!)"`#\r3%J&849K88(PdD!#3#,83%Kbf#6dC!!!%'J!!$!J!N!J1Hm"B!!!!U`!"l[`!"!!\r!rrrrrJ!!&B)!N!35J!!!!!)!N!30K!#3'J("SJ#3(`3!N!9LC'PcG&pNG@eL,R"\rj4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K88(PdD!#3#,83%Kbf&+rQ!!!&*!!!%08\r!N!LZ"fj6!!!!U`!"l[d!"!!!rrrrrJ!!)BS!N!35J3!!!!)!N!3)K!#3'J("SJ#\r3(`3!N!9LG@PXC#j`H8C@3e3!N!F))!!!!3#3#!F!N")"9%9B9&"jG'J!N!Le%")\rGYK5[jJ!!#D)!!"ql!*!)JaXk'!!!!+X!!Hlq!!3!!2rrrri!!$*I!*!%%S)!!!!\r#!*!%$B3!N"S"`D)!N"m%!*!&BR9TE'4IBfaTBLj`H8C@3e3!N!F))!!!!3#3#!F\r!N")"9%9B9&"jG'J!N!Le%")GYYel4J!!'hS!!'$E!*!)*&m2JJ!!!+X!!Hlr!!3\r!!2rrrri!!&)D!*!%%S-!!!!#!*!%$)3!N"S"`D)!N"m%!*!&BR9TE'4ICAKd,R"\rj4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K88(PdD!#3#,83%Kff#6dK!!!41J!!1`S\r!N!K*CkH)!!!!U`!"l`!!"!!!rrrrrJ!!X[8!N!35K!!!!!)!N!3,K!#3'J("SJ#\r3(`3!N!9LG@PXC&p`H5j`H8C@3e3!N!F))!!!!3#3#!F!N")"9%9B9&"jG'J!N!L\re%")GYK5[jJ!!!i!!!!XJ!*!*%"Um!!!!U`!"l`%!"!!!rrrrrJ!!lIm!N!35K3!\r!!!)!N!3)K!#3'J("SJ#3(`3!N!9ME'9KELj`H8C@3e3!N!F))!!!!3#3#!F!N")\r"9%9B9&"jG'J!N!Le%")GYSjkZ!!!&eB!!&FA!*!))Ce)R!!!!+X!!Hm#!!3!!2r\rrrri!!2NI!*!%%SB!!!!#!*!%#S3!N"S"`D)!N"m%!*!&D@jcG'&XE#j`H8C@3e3\r!N!F))!!!!3#3#!F!N")"9%9B9&"jG'J!N!Le%")GYJNp)J!!#3i!!"m$!*!)8TS\rI(!!!!+X!!Hm$!!3!!2rrrri!!9!f!*!%%SF!!!!#!*!%$S3!N"S"`D)!N"m%!*!\r&D@jcG'&XE&pXD@)ZF(P'9N08!*!(##!!!!%!N!J(!*!5!94&@&43HA4S!*!)Y4!\r5(EEI["%!!"4B!!"'e!#3#&,PP(!!!!#V!!(["!!%!!$rrrrq!*!)%SJ!!!!#!*!\r%#)3!N"S"`D)!N"m%!*!&Ff4TFh3ZF(P'9N08!*!(##!!!!%!N!J(!*!5!94&@&4\r3HA4S!*!)Y@-V)VB*24N!!"+!!!"$-J#3#!NR+m`!!iN)!!1*$!!%!!$rrrrq!!"\r'e!#3""P2!!!!!J#3"!b%!*!D!F'L!*!I"!#3"@*NDA0dAh*`E5j`H8C@3e3!N!F\r))!!!!3#3#!F!N")"9%9B9&"jG'J!N!LeJ#Q6YYel4J!!6S)!!)3X!*!)S2*3fJ!\r$L3J!!iN0!!3!!2rrrri!N!JC6J!!!!)!N!33K!#3'J("SJ#3(`3!N!9LC'PcG&p\rhD@jTER0d,R"j4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K88(PdD!#3#,9M+b1faG(\rr!!!%jJ!!$63!N!L5m$GJ!!1*#!!$L4)!"!!!rrrrrJ#3#"P0!!!!!J#3""#%!*!\rD!F'L!*!I"!#3"@*eD@aNAh0MFQP`G(-ZF(P'9N08!*!(##!!!!%!N!J(!*!5!94\r&@&4$9dP&!*!)Y@-V)l9M+b-!!!&5!!!#c`#3#(2&fPJ!!iN)!!1*&!!%!!$rrrr\rq!!!00!#3""P-!!!!!J#3""#%!*!D!F'L!*!I"!#3"@0[E@eKEQ4IG'9YF'aKG'9\r'9N08!*!(##!!!!%!N!J(!*!5!94&@&43HA4S!*!)Y@-V)lB8VqB!!!jq!!!c53#\r3#%!i%b8!!iN)!!1*&3!%!!$rrrrq!!!3!`#3""P,!!!!!J#3"!Q%!*!D!F'L!*!\rI"!#3"@0[EQCTCbj`H8C@3e3!N!F))!!!!3#3#!F!N")"9%9B9&"jG'J!N!LfS0(\r%YUB9i`!!!f!!!!Ri!*!)J5JI"!!$L3J!!iNA!!3!!2rrrri!!%0-!*!%'8S!!!!\r#!*!%$i3!N"S"`D)!N"m%!*!&D@jcG'&XE&pNBA4K,R"j4PC$9!#3"`JJ!!!"!*!\r)"`#3%J&849K88(PdD!#3#,9M+b1f#6dL!!!#)!!!"E8!N!MC(Ii@!!1*#!!$L4J\r!"!!!rrrrrJ!!683!N!3C53!!!!)!N!35K!#3'J("SJ#3(`3!N!9TER0dB@aXAfK\rPB@4PFR-ZF(P'9N08!*!(##!!!!%!N!J(!*!5!94&@&43HA4S!*!)Y@-V*,B*25)\r!!!-8!!!)1!#3#0bBiAX!!iN)!!1*'J!%!!$rrrrq!!"5q3#3""P)!!!!!J#3""+\r%!*!D!F'L!*!I"!#3"@PZFh4KE'aIFf0bDA"dFbj`H8C@3e3!N!F))!!!!3#3#!F\r!N")"9%9B9&"jG'J!N!Le%")EYJNp$!!!#f!!!#!2!*!)SdGF@!!!!+S!!HlU!!-\r!!2rrrri!!&Xa!*!%%SN!!!!#!*!%"i3!N"S"`+)!N"m%!*!&BfpbC5j`H8C@3e3\r!N!F))!!!!3#3#!F!N")"9%9B9&"jG'J!N!Le%")EYJNp$!!!"S!!!"$b!*!)BdP\rB@3!!!+S!!HlV!!-!!2rrrri!!(Y!!*!%%SS!!!!#!*!%#i3!N"S"`+)!N"m%!*!\r&C'9`Ah9dD@`ZF(P'9N08!*!(##!!!!%!N!J(!*!5!94&@&43HA4S!*!)Y4!5'lB\r*23`!!!Uk!!!He`#3#-&(b4B!!!#U!!(Zl!!$!!$rrrrq!!#--J#3""+,!!!!!J#\r3"!Z%!*!D!F#L!*!I"!#3"@4TFPpeG'PX,R"j4PC$9!#3"`JJ!!!"!*!)"`#3%J&\r849K88(PdD!#3#,B8X%QfiCJc!!!VpJ!!T,-!N!KlT4I!!!!!UJ!"lZd!!`!!rrr\rrrJ#3#"+-!!!!!J#3"!H%!*!D!F#L!*!I"!#3"@4TFh3ZF(P'9N08!*!(##!!!!%\r!N!J(!*!5!94&@&43HA4S!*!)Y4!5'l@VXF`!!!9Q!!!1'`#3#&Eb9$i!!!#U!!(\rZlJ!$!!$rrrrq!*!)%Sd!!!!#!*!%#B3!N"S"`+)!N"m%!*!&CA*bEh*c,R"j4PC\r$9!#3"`JJ!!!"!*!)"`#3%J&849K88(PdD!#3#,83%Kbf#6dB!!!@$!!!4k`!N!J\rAj!9&!!!!UJ!"lZm!!`!!rrrrrJ!!$KX!N!35MJ!!!!)!N!32K!#3'J(!SJ#3(`3\r!N!9QB@jMH9pRCA4[F(3ZF(P'9N08!*!(##!!!!%!N!J(!*!5!94&@&43HA4S!*!\r)Y4!5(,DJd3m!!!Ui!!!J(3#3#"9)BFd!!!#U!!(Zm!!$!!$rrrrq!!"9a`#3""+\r2!!!!!J#3"!b%!*!D!F#L!*!I"!#3"@CTE'9IGA4TE#j`H8C@3e3!N!F))!!!!3#\r3#!F!N")"9%9B9&"jG'J!N!Le%")FYJNp'!!!%Yi!!%F9!*!)X0d9V!!!!+S!!Hl\ra!!-!!2rrrri!!(AN!*!%%T!!!!!!!J#3"!q%!*!D!F#L!*!I"!#3"@ecGQ0MEfe\r`D@aPFLj`H8C@3e3!N!F))!!!!3#3#!F!N")"9%9B9&)UBfJ!N!Le*U8!Y5DP!!!\r!!Ei!!!-G!*!)#,Cbk!!!!+S!!Hlb!!-!!2rrrri!!,cj!*!%%T%!!!!#!*!%"S3\r!N"S"`+)!N"m%!*!&8N9"4%e&4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K88(PdD!#\r3#,83%Kbf#6dB!!!)2J!!&Sd!N!Lf0HUf!!!!UJ!"l[-!!`!!rrrrrJ!!`"B!N!3\r5NJ!!!!)!N!3)K!#3'J(!SJ#3(`3!N!9cF'&hELj`H8C@3e3!N!F))!!!!3#3#!F\r!N")"9%9B9&"jG'J!N!Le%")FYXA4r`!!$di!!$-8!*!)k`AqL3!!!+S!!Hld!!-\r!!2rrrri!!0DM!*!%%T-!!!!#!*!%$)3!N"S"`+)!N"m%!*!&FhPcBfpZCQPR,R"\rj4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K88(PdD!#3#,83%KbelBE3!!!4e!!!1jm\r!N!LFYJL1!!!!UJ!"l[8!!`!!rrrrrJ!"#EF!N!35P!!!!!)!N!3-K!#3'J(!SJ#\r3(`3!N!9dCAKdAfCTE'8ZF(P'9N08!*!(##!!!!%!N!J(!*!5!94&@&43HA4S!*!\r)Y4!5(,B*24J!!!aB!!!SK3#3#0F(U!J!!!#U!!(ZpJ!$!!$rrrrq!!&&9J#3""+\r9!!!!!J#3""#%!*!D!F#L!*!I"!#3"A9ZDAKMBfpYF'PXCA)ZF(P'9N08!*!(##!\r!!!%!N!J(!*!5!94&@&43HA4S!*!)YU$4a,EKQ$-!!"L#!!"$5!#3##603Ei!!!#\rU!!(Zp`!$!!$rrrrq!*!)%TB!!!!#!*!%"i3!N"S"`+)!N"m%!*!&GA4TE#j`H8C\r@3e3!N!F))!!!!3#3#!F!N")"9%9B9&"jG'J!N!Le%")FYYqm%3!!%#J!!#dH!*!\r)HIAH*J!!!+S!!Hli!!-!!2rrrri!!%0)!*!%%TF!!!!#!*!%#S3!N"S"`+)!N"m\r%!*!&GQ9bFfP[ELj`H8C@3e3!N!F))!!!!3#3#!F!N")"9%9B9&"jG'J!N!LeJ#Q\r1YUpUY!!!%'J!!$Jf!*!)A)DUF!!$L2!!!iMc!!-!!2rrrri!!("Q!*!%'8F!!!!\r#!*!%$i3!N"S"`+)!N"m%!*!&BQ0`F'0[EA"TE'9b,R"j4PC$9!#3"`JJ!!!"!*!\r)"`#3%J&849K88(PdD!#3#,@!+Bqfhl`3!!!9$J!!4'S!N!JV@B8T!!1)m!!$L2F\r!!`!!rrrrrJ!!U*`!N!3C4J!!!!)!N!35K!#3'J(!SJ#3(`3!N!9MH@GhD@jMBfp\rYF'PXCA)ZF(P'9N08!*!(##!!!!%!N!J(!*!5!94&@&43HA4S!*!)Y@-V)EEI["%\r!!![@!!!ML3#3#$EmBeX!!iM`!!1)r!!$!!$rrrrq!!$Y"J#3""P&!!!!!J#3"!b\r%!*!D!F#L!*!I"!#3"@9iG'9ZFfP[ELj`H8C@3e3!N!F))!!!!3#3#!F!N")"9%9\rB9&"jG'J!N!LeUl(hYJNp'!!!$VS!!$1H!*!)A(*9q`!$L2!!!iMr!!-!!2rrrri\r!!4#2!*!%'83!!!!#!*!%#i3!N"S"`+)!N"m%!*!&CQPXC@aTFh3ZF(P'9N08!*!\r(##!!!!%!N!J(!*!5!94&@&43HA4S!*!)YSjm),E%CV`!!!SH!!!KH!#3#*R!FrN\r!!M(3!!)ai3!$!!$rrrrq!!&%,3#3""Xi!!!!!J#3""'%!*!D!F#L!*!I"!#3"@e\rhCA*VFf0[EA"TE'9b,R"j4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K88(PdD!#3#,,\rmA@HfNk84!!!-C!!!*@F!N!KCMqdm!!!!U3!"lR)!!J!!rrrrrJ#3#",T!!!!!J#\r3"!U%!*!D!EqL!*!I"!#3"@4[Fh"KG'JZF(P'9N08!*!(##!!!!%!N!J(!*!5!94\r&@&43HA4S!*!)X[aGClE&dIS!!!8N!!!3Q!#3#(aA3LX!!!#T!!(ZF`!#!!$rrrr\rq!!!PC`#3"",U!!!!!J#3"!U%!*!D!EqL!*!I"!#3"@4eE@*NBQdZF(P%9N08!*!\r3YV)CmJ#3"kd!!!#T!!!!!3#3(",V!!!!!J!#!*!%#3!!!!J%"`#3'`'rSJ#3)f9\rZBfpND@jRFdC@3e3!N!F))!!!!3#3#!F!N")"9%9B9&"jG'J!N!Le%")MYPaNr3!\r!"!i!!!R3!!!!G!!!!CS"c0Na!!!!V3!"leF!!`!!rrrrrJ#3"JR3%Z`!!!!#!*!\r%#i3!N"S"`k)!N"m%!*!&AepTEQPdAemZF(P'9N08!*!(##!!!!%!N!J(!*!5!94\r&@&43HA4S!*!)Y4!5)l9NG!m!!!+S!!!(M`#3#,e&1B8!!!#Y!!([@!!$!!$rrrr\rq!!!,DJ#3"",Y!!!!!J#3"!U%!*!D!F1L!*!I"!#3"@&XD@&cCA-ZF(P'9N08!*!\r(##!!!!%!N!J(!*!5!94&@&43HA4S!*!)Y4!5)l83%L-!!!&N!!!#h`!!!()!!!'\rDTS-M83!!!+d!!HpC!!-!!2rrrri!!",j!!!9f",Z!!!!!J#3"!L%!*!D!F1L!*!\rI"!#3"@&cBfPT,R"j4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K88(PdD!#3#,83%L1\re%")M!!!#"!!!"1S!N!KJNc#l!!!!V3!"leS!!`!!rrrrrJ!!&h)!N!35l`!!!!)\r!N!3+K!#3'J($SJ#3(`3!N!9MD'&bE@&`,R"j4PC$9!#3"`JJ!!!"!*!)"`#3%J&\r849K88(PdD!#3#,83%L1fMRUj!!!+c!!!+%%!N!LrD9ll!!!!V3!"leX!!`!!rrr\rrrJ!!(&`!N!35m!!!!!)!N!3)K!#3'J($SJ#3(`3!N!9MF$!c0bj`H8C@3e3!N!F\r))!!!!3#3#!F!N")"9%9B9&"jG'J!N!Le%")MYSjkZ3!!"AS!!"Fc!*!)m&60B`!\r!!+d!!HpF!!-!!2rrrri!!%5G!*!%%[%!!!!#!*!%#B3!N"S"`k)!N"m%!*!&Bh!\ra-$!f,R"j4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K88(PdD!#3#,83%L1fMRUj!!!\r+k!!!+$F!N!KUk""C!!!!V3!"led!!`!!rrrrrJ!!@p!!N!35mJ!!!!)!N!3*K!#\r3'J($SJ#3(`3!N!9MF$%`-MBZF(P'9N08!*!(##!!!!%!N!J(!*!5!94&@&43HA4\rS!*!)Y4!5)lD1HVN!!!8%!!!52J#3#*XPMTJ!!!#Y!!([AJ!$!!$rrrrq!!#%"`#\r3"",c!!!!!J#3"!Q%!*!D!F1L!*!I"!#3"@0`-6)e-#j`H8C@3e3!N!F))!!!!3#\r3#!F!N")"9%9B9&"jG'J!N!Le%")MYSjkZ3!!"KB!!"I"!*!)VESL+J!!!+d!!Hp\rI!!-!!2rrrri!!*C&!*!%%[3!!!!#!*!%#B3!N"S"`k)!N"m%!*!&Bh!a-M8a,R"\rj4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K88(PdD!#3#,83%L1fMRUj!!!$KJ!!#-F\r!N!L9&eq(!!!!V3!"lf!!!`!!rrrrrJ!!VJB!N!35p3!!!!)!N!3*K!#3'J($SJ#\r3(`3!N!9MF$%b06)ZF(P'9N08!*!(##!!!!%!N!J(!*!5!94&@&43HA4S!*!)Y4!\r5)lD1HVN!!!@k!!!9b`#3#,VBc4d!!!#Y!!([B3!$!!$rrrrq!!#fc3#3"",f!!!\r!!J#3"!Q%!*!D!F1L!*!I"!#3"@0`-6)e-bj`H8C@3e3!N!F))!!!!3#3#!F!N")\r"9%9B9&"jG'J!N!Le%")MYSjkZ3!!!mJ!!!R5!*!)M#qkCJ!!!+d!!HpL!!-!!2r\rrrri!!-bB!*!%%[F!!!!#!*!%#B3!N"S"`k)!N"m%!*!&Bh!a-M8d,R"j4PC$9!#\r3"`JJ!!!"!*!)"`#3%J&849K88(PdD!#3#,83%L1fMRUj!!!&a!!!%Km!N!J8"`I\ra!!!!V3!"lf-!!`!!rrrrrJ!!eQS!N!35q!!!!!)!N!3*K!#3'J($SJ#3(`3!N!9\rMF$%b068ZF(P'9N08!*!(##!!!!%!N!J(!*!5!94&@&43HA4S!*!)Y4!5)lD1HVN\r!!!@b!!!3f3#3#*8a&8F!!!#Y!!([C!!$!!$rrrrq!!$SL3#3"",j!!!!!J#3"!Q\r%!*!D!F1L!*!I"!#3"@0`-6)e0Lj`H8C@3e3!N!F))!!!!3#3#!F!N")"9%9B9&"\rjG'J!N!Le%")NYSjkZ3!!"4`!!",e!*!*(S@J!!!!V3!"lf8!!`!!rrrrrJ!!q@)\r!N!35qJ!!!!)!N!3*K!#3'J($SJ#3(`3!N!9MF$%b06FZF(P'9N08!*!(##!!!!%\r!N!J(!*!5!94&@&43HA4S!*!)Y4!5*,D1HVN!!!35!!!+j!#3##EqS2F!!!#Y!!(\r[CJ!$!!$rrrrq!!%-9`#3"",l!!!!!J#3"!Q%!*!D!F1L!*!I"!#3"@0`-6)e1#j\r`H8C@3e3!N!F))!!!!3#3#!F!N")"9%9B9&"jG'J!N!Le%")NYSjkZ3!!#Z)!!#2\r8!*!)+&E'+!!!!+d!!HpR!!-!!2rrrri!!4Fl!*!%%[`!!!!#!*!%#)3!N"S"`k)\r!N"m%!*!&Bh!d-M3ZF(P'9N08!*!(##!!!!%!N!J(!*!5!94&@&43HA4S!*!)Y4!\r5*,D1HVS!!!HD!!!Er`#3#+k&UV!!!!#Y!!([D!!$!!$rrrrq!!%l$`#3"",p!!!\r!!J#3"!L%!*!D!F1L!*!I"!#3"@0`0$-h,R"j4PC$9!#3"`JJ!!!"!*!)"`#3%J&\r849K88(PdD!#3#,83%L5fMRUk!!!+cJ!!+%%!N!M"*`0"!!!!V3!"lfN!!`!!rrr\rrrJ#3#",q!!!!!J#3"!L%!*!D!F1L!*!I"!#3"@0`06!`,R"j4PC$9!#3"`JJ!!!\r"!*!)"`#3%J&849K88(PdD!#3#,83%L5fMRUk!!!(#!!!(#B!N!JX-GRB!!!!V3!\r"lfS!!`!!rrrrrJ!!+%%!N!35r`!!!!)!N!3)K!#3'J($SJ#3(`3!N!9MF$Fc0bj\r`H8C@3e3!N!F))!!!!3#3#!F!N")"9%9B9&"jG'J!N!Le%")NYSjkZJ!!"fB!!"[\rL!*!)B2m8b!!!!+d!!HpV!!-!!2rrrri!!%4R!*!%%`#3"!)!N!3)K!#3'J($SJ#\r3(`3!N!9MF$Fh05j`H8C@3e3!N!F))!!!!3#3#!F!N")"9%9B9&"jG'J!N!Le%")\rNYSjkZJ!!"fS!!"YS!*!)KE0[Q!!!!+d!!HpX!!-!!2rrrri!!'"*!*!%%`%!!!!\r#!*!%#)3!N"S"`k)!N"m%!*!&Bh!i06!ZF(P'9N08!*!(##!!!!%!N!J(!*!5!94\r&@&43HA4S!*!)Y4!5*,D1HVS!!!F'!!!FN`#3#&V%mad!!!#Y!!([E3!$!!$rrrr\rq!!"lX3#3""-#!!!!!J#3"!L%!*!D!F1L!*!I"!#3"@0`1$8b,R"j4PC$9!#3"`J\rJ!!!"!*!)"`#3%J&849K88(PdD!#3#,83%L5fMRUk!!!'N!!!!"X6!*!)F+'p&J!\r!!+d!!HpZ!!-!!2rrrri!!*K%!*!%%`-!!!!#!*!%#)3!N"S"`k)!N"m%!*!&Bh!\ri068ZF(P'9N08!*!(##!!!!%!N!J(!*!5!94&@&43HA4S!*!)Y4!5*,D1HVS!!!C\r@!!!9l3#3#*G`Nr!!!!#Y!!([E`!$!!$rrrrq!!#c9`#3""-%!!!!!J#3"!L%!*!\rD!F1L!*!I"!#3"@0`1$8f,R"j4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K88(PdD!#\r3#,83%L5fMRUk!!!(C!!!'bB!N!JCqCKV!!!!V3!"lh!!!`!!rrrrrJ!!b83!N!3\r6"3!!!!)!N!3)K!#3'J($SJ#3(`3!N!9MF$Je0bj`H8C@3e3!N!F))!!!!3#3#!F\r!N")"9%9B9&"jG'J!N!Le%")NYSjkZJ!!"iB!!"`S!*!)qL[ib`!!!+d!!Hpa!!-\r!!2rrrri!!14U!*!%%`B!!!!#!*!%#)3!N"S"`k)!N"m%!*!&Bh!i0M!ZF(P'9N0\r8!*!(##!!!!%!N!J(!*!5!94&@&43HA4S!*!)Y4!5*,D1HVX!!!H1!!!F'!#3#0k\rHK,S!!!#Y!!([FJ!$!!$rrrrq!!%!NJ#3""-(!!!!!J#3"!L%!*!D!F1L!*!I"!#\r3"@0`1$Ba,R"j4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K88(PdD!#3#,83%L5fMRU\rl!!!(R!!!'R-!N!L8C-'F!!!!V3!"lh-!!`!!rrrrrJ!"(+S!N!36#!!!!!)!N!3\r)K!#3'J($SJ#3(`3!N!9MF$Jf-Lj`H8C@3e3!N!F))!!!!3#3#!F!N")"9%9B9&"\rjG'J!N!Le%")NYSjkZ`!!"jJ!!"ZC!*!)2Jh+D3!!!+d!!Hpd!!-!!2rrrri!!6F\rG!*!%%`N!!!!#!*!%#)3!N"S"`k)!N"m%!*!&Bh!i0M-ZF(P'9N08!*!(##!!!!%\r!N!J(!*!5!94&@&43HA4S!*!)Y4!5*,D1HVX!!!FZ!!!DkJ#3#+'cRc3!!!#Y!!(\r[G3!$!!$rrrrq!!&5YJ#3""-+!!!!!J#3"!L%!*!D!F1L!*!I"!#3"@0`1$Bd,R"\rj4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K88(PdD!#3#,83%L@fMRUl!!!(SJ!!("-\r!N!Jpk)T*!!!!V3!"lhB!!`!!rrrrrJ#3#"-,!!!!!J#3"!L%!*!D!F1L!*!I"!#\r3"@0`1$Be,R"j4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K88(PdD!#3#,83%L@fMRU\rl!!!'ZJ!!'mN!N!KhpVm8!!!!V3!"lhF!!`!!rrrrrJ!!("-!N!36$!!!!!)!N!3\r)K!#3'J($SJ#3(`3!N!9MF$Jf0Lj`H8C@3e3!N!F))!!!!3#3#!F!N")"9%9B9&"\rjG'J!N!Le%")PYSjkZ`!!"[J!!"T*!*!)J%kQ4`!!!+d!!Hpi!!-!!2rrrri!!$I\rF!*!%%`d!!!!#!*!%#)3!N"S"`k)!N"m%!*!&Bh!i0MNZF(P'9N08!*!(##!!!!%\r!N!J(!*!5!94&@&43HA4S!*!)Y4!5*ED1HVX!!!C-!!!@J3#3#*&9JMF!!!#Y!!(\r[H3!$!!$rrrrq!!"5*3#3""-1!!!!!J#3"!L%!*!D!F1L!*!I"!#3"@0`1$Fd,R"\rj4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K88(PdD!#3#,83%L@fMRUl!!!+MJ!!*eB\r!N!LkLI")!!!!V3!"lhS!!`!!rrrrrJ!!D+B!N!36$`!!!!)!N!3)K!#3'J($SJ#\r3(`3!N!9MF$Jh05j`H8C@3e3!N!F))!!!!3#3#!F!N")"9%9B9&"jG'J!N!Le%")\rPYSjkZ`!!!F`!!!1b!*!)SXf-C!!!!+d!!Hpl!!-!!2rrrri!!)rm!*!%%a!!!!!\r#!*!%$)3!N"S"`k)!N"m%!*!&DA0[1$Je19ma,R"j4PC$9!#3"`JJ!!!"!*!)"`#\r3%J&849K88(PdD!#3#,83%L@fMRUm!!!$VJ!!$6N!N!M!GZ[H!!!!V3!"lh`!!`!\r!rrrrrJ!!Nki!N!36%3!!!!)!N!30K!#3'J($SJ#3(`3!N!9TFfmi1$8jAc%`,R"\rj4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K88(PdD!#3#,83%L@fMRUm!!!%'!!!$e`\r!N!Mi&0S5!!!!V3!"lhd!!`!!rrrrrJ!!S1F!N!36%J!!!!)!N!30K!#3'J($SJ#\r3(`3!N!9TFfmi1$8jAc%c,R"j4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K88(PdD!#\r3#,83%L@fMRUm!!!$&J!!#SF!N!LAhQ,b!!!!V3!"lhi!!`!!rrrrrJ!!X%-!N!3\r6%`!!!!)!N!30K!#3'J($SJ#3(`3!N!9TFfmi1$8jAc%d,R"j4PC$9!#3"`JJ!!!\r"!*!)"`#3%J&849K88(PdD!#3#,83%L@fMRUm!!!#9J!!"6N!N!K&LE*r!!!!V3!\r"lhm!!`!!rrrrrJ!!ZXS!N!36&!!!!!)!N!30K!#3'J($SJ#3(`3!N!9TFfmi1$8\rjAc%e,R"j4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K88(PdD!#3#,83%L@fMRUm!!!\r%!J!!$dN!N!Mij$TI!!!!V3!"li!!!`!!rrrrrJ!!`!-!N!36&3!!!!)!N!3-K!#\r3'J($SJ#3(`3!N!9TFfmi1$8jAc)ZF(P'9N08!*!(##!!!!%!N!J(!*!5!94&@&4\r3HA4S!*!)Y4!5*ED1HV`!!!-Q!!!+"J#3#,lP04X!!!#Y!!([J3!$!!$rrrrq!!$\r26!#3""-@!!!!!J#3"!b%!*!D!F1L!*!I"!#3"@PcEcJi06PI-bj`H8C@3e3!N!F\r))!!!!3#3#!F!N")"9%9B9&"jG'J!N!Le%")PYSjk[!!!!m`!!!h@!*!)(k`ErJ!\r!!+d!!Hq#!!-!!2rrrri!!0P5!*!%%aF!!!!#!*!%$)3!N"S"`k)!N"m%!*!&DA0\r[1$Je19md,R"j4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K88(PdD!#3#,83%L@fMRU\rm!!!&$!!!&3N!N!MNKhp`!!!!V3!"li-!!`!!rrrrrJ!!jbJ!N!36'!!!!!)!N!3\r-K!#3'J($SJ#3(`3!N!9TFfmi1$8jAc8ZF(P'9N08!*!(##!!!!%!N!J(!*!5!94\r&@&43HA4S!*!)Y4!5*ED1HV`!!!4B!!!0b3#3##0rc@N!!!#Y!!([K!!$!!$rrrr\rq!!$m-3#3""-C!!!!!J#3"!b%!*!D!F1L!*!I"!#3"@PcEcJi06PI0Lj`H8C@3e3\r!N!F))!!!!3#3#!F!N")"9%9B9&"jG'J!N!Le%")PYSjk[!!!"-i!!")S!*!)'r4\r0b!!!!+d!!Hq&!!-!!2rrrri!!3Rk!*!%%aS!!!!#!*!%$)3!N"S"`k)!N"m%!*!\r&DA0[1$Je19mh,R"j4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K88(PdD!#3#,83%LD\rfMRUm!!!$SJ!!#VS!N!Jq0L#c!!!!V3!"liB!!`!!rrrrrJ!"(#)!N!36'`!!!!)\r!N!3-K!#3'J($SJ#3(`3!N!9TFfmi1$8jAcJZF(P'9N08!*!(##!!!!%!N!J(!*!\r5!94&@&43HA4S!*!)Y4!5*VD1HV`!!!)q!!!%p3#3##m2['B!!!#Y!!([K`!$!!$\rrrrrq!!%Qh!#3""-F!!!!!J#3"!b%!*!D!F1L!*!I"!#3"@PcEcJi06PI15j`H8C\r@3e3!N!F))!!!!3#3#!F!N")"9%9B9&"jG'J!N!Le%")QYSjk[!!!"Y`!!"`*!*!\r)rPEkY`!!!+d!!Hq)!!-!!2rrrri!!5[4!*!%%ad!!!!#!*!%#B3!N"S"`k)!N"m\r%!*!&DfpT1&pb,R"j4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K88(PdD!#3#,83%LD\re%")Q!!!"D!!!!ZN!N!LMPf*M!!!!V3!"liN!!`!!rrrrrJ!"4pS!N!36(J!!!!)\r!N!3+K!#3'J($SJ#3(`3!N!9XBA4TEPma,R"j4PC$9!#3"`JJ!!!"!*!)"`#3%J&\r849K88(PdD!#3#,83%LDfMRUm!!!'U!!!'2%!N!K()GLB!!!!V3!"liS!!`!!rrr\rrrJ!"5X-!N!36(`!!!!)!N!32K!#3'J($SJ#3(`3!N!9YB@0IBhPbD@aXD@-ZF(P\r'9N08!*!(##!!!!%!N!J(!*!5!94&@&43HA4S!*!)Y4!5*VD1HVd!!!FU!!!D3!#\r3#*R!2hF!!!#Y!!([L`!$!!$rrrrq!*!)%b!!!!!#!*!%$)3!N"S"`k)!N"m%!*!\r&E@&MAfGbC@9V,R"j4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K88(PdD!#3#,83%LD\rfMRUp!!!(5J!!'3m!N!LbH,@E!!!!V3!"li`!!`!!rrrrrJ!!'N!!N!36)3!!!!)\r!N!31K!#3'J($SJ#3(`3!N!9YB@0ID@0PE'&ZC#j`H8C@3e3!N!F))!!!!3#3#!F\r!N")"9%9B9&"jG'J!N!Le%")QYSjk[3!!"`)!!"`!N!N+8kQ(!!!!V3!"lid!!`!\r!rrrrrJ!!-dm!N!36)J!!!!)!N!30K!#3'J($SJ#3(`3!N!9YB@0IE'&dD@ib,R"\rj4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K88(PdD!#3#,83%LDfMRUp!!!(9J!!'5m\r!N!KIZM-#!!!!V3!"lii!!`!!rrrrrJ!!6dm!N!36)`!!!!)!N!3-K!#3'J($SJ#\r3(`3!N!9YB@0IFQpYB@iZF(P'9N08!*!(##!!!!%!N!J(!*!5!94&@&43HA4S!*!\r)Y4!5*VD1HVd!!!G%!!!C43#3#(!FCGX!!!#Y!!([M`!$!!$rrrrq!!"SIJ#3""-\rN!!!!!J#3"!k%!*!D!F1L!*!I"!#3"@eKBepdGA*VDA0S,R"j4PC$9!#3"`JJ!!!\r"!*!)"`#3%J&849K88(PdD!#3#,83%LDe%")Q!!!"R!!!!c)!N!Jb0Qa+!!!!V3!\r"lj!!!!-!!2rrrri!!)($!*!%%b8!!!!#!*!%"i3!N"S"`k)!N"m%!*!&E@*MFbj\r`H8C@3e3!N!F))!!!!3#3#!F!N")"9%9B9&"jG'J!N!Le%")QY4!5*J!!!9i!!!+\r3!!#3#%Sl2qX!!!#Y!!([N3!$!!$rrrrq!!#%p3#3""-Q!!!!!J#3""@%!*!D!F1\rL!*!I"!#3"A*KGepeEQPMEf4PAf9cBf&`C5j`H8C@3e3!N!F))!!!!3#3#!F!N")\r"9%9B9&"jG'J!N!Le%")QY4!5*J!!!9B!!!+%!*!)l`paj`!!!+d!!Hq5!!-!!2r\rrrri!!)H&!*!%%bF!!!!#!*!%%B3!N"S"`k)!N"m%!*!&G@jTBfpNC9pPFf0KF'8\rZF(P'9N08!*!(##!!!!%!N!J(!*!5!94&@&43HA4S!*!)Y4!5*V83%LB!!!&D!!!\r#LJ#3#0S,Q#i!!!#Y!!([N`!$!!$rrrrq!!#+#3#3""-S!!!!!J#3""1%!*!D!F1\rL!*!I"!#3"A9ZD@0[C'9ID@jdCA*ZB@`ZF(P'9N08!*!(##!!!!%!N!J(!*!5!94\r&@&43HA4S!*!)Y4!5*V83%LB!!!&8!!!#E3#3#&j`b2%!!!#Y!!([P!!$!!$rrrr\rq!!#-N`#3""-T!!!!!J#3"!Q%!*!D!F1L!*!I"!#3"A9dCPma0Lj`H8C@3e3!N!F\r))!!!!3#3#!F!N")"9%9B9&"jG'J!N!Le%")QY4!5*J!!!9S!!!*f!*!)BMi-Q!!\r!!+d!!Hq9!!-!!2rrrri!!)m!N!86+J!!!!)!N!3-K!#3'J($SJ#3(`3!N!9eG'C\rI-6CIBQ8ZF(P'9N08!*!(##!!!!%!N!J(!*!5!94&@&43HA4S!*!)Y4!5*V83%LB\r!!!&D!!!#GJ#3#0R[KPX!!!#Y!!([PJ!$!!$rrrrq!!#4GJ#3""-V!!!!!J#3"!b\r%!*!D!F1L!*!I"!#3"A9dCPma0PpXC5j`H8C@3e3!N!F))!!!!3#3#!F!N")"9%9\rB9&"jG'J!N!Le%")RY4!5*`!!!9)!!!*U!*!)hX(b5J!!!+d!!HqA!!-!!2rrrri\r!!*2X!*!%%b`!!!!#!*!%#)3!N"S"`k)!N"m%!*!&GA4QAcJZF(P'9N08!*!(##!\r!!!%!N!J(!*!5!94&@&43HA4S!*!)Y@4d$l9NG!m!!!'5!!!$)!#3#'@bM6S!!iQ\r+!!1*aJ!$!!$rrrrq!!#@9J#3""NM!!!!!J#3"!b%!*!D!F1L!*!I"!#3"A9ZC'9\rQD@jPC#j`H8C@3e3!N!F))!!!!3#3#!F!N")"9%9B9&"jG'J!N!Ld3f1cYT1P%3!\r!#mS!!#Jr!*!)mc'E!J!!!+N!!Hje!!)!!2rrrri!!*Pf!*!%%bi!!!!#!*!%#S3\r!N"S"[k)!N"m%!*!&CQPXC@0YF#j`H8C@3e3!N!F))!!!!3#3#!F!N")"9%9B9&"\rjG'J!N!Lbr&eSYT1P%J!!#h!!!#DT!*!)KG+Ec`!!!+N!!Hjf!!)!!2rrrri!!-'\re!*!%%bm!!!!#!*!%$)3!N"S"[k)!N"m%!*!&CQPXC@PZF(9d,R"j4PC$9!#3"`J\rJ!!!"!*!)"`#3%J&849K88(PdD!#3#,,mA@Lfhl`2!!!$L!!!#@m!N!Mk*[-+!!!\r!U3!"lRF!!J!!rrrrrJ!!k&i!N!36-!!!!!)!N!3+K!#3'J'rSJ#3(`3!N!9QEQe\rKG'0S,R"j4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K88(PdD!#3#,,mA@LfVfUR!!!\r-HJ!!0Y)!N!KqaI!@!!!!U3!"lRJ!!J!!rrrrrJ!!mFd!N!36-3!!!!)!N!3-K!#\r3'J'rSJ#3(`3!N!9QEh*YBA4dCA)ZF(P'9N08!*!(##!!!!%!N!J(!*!5!94&@&4\r3HA4S!*!)X[aGDED6T4)!!!AS!!!4e`#3#!LD,L`!!!#T!!(ZH3!#!!$rrrrq!!%\rSR`#3""-b!!!!!J#3"!Z%!*!D!EqL!*!I"!#3"@C`CQpbE@&d,R"j4PC$9!#3"`J\rJ!!!"!*!)"`#3%J&849K88(PdD!#3#,,mA@QfaG(l!!!F+!!!Aei!N!M00fh6!!!\r!U3!"lRS!!J!!rrrrrJ#3#"-c!!!!!J#3"!Q%!*!D!EqL!*!I"!#3"@CdF'aTBLj\r`H8C@3e3!N!F))!!!!3#3#!F!N")"9%9B9&"jG'J!N!Lbr&eTYT1P%`!!"h!!!"3\rq!*!)F)KViJ!!!+N!!Hjl!!)!!2rrrri!!&pH!*!%%c3!!!!#!*!%#B3!N"S"[k)\r!N"m%!*!&Cf9dEh"d,R"j4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K88(PdD!#3#,,\rmA@QfaG(l!!!%EJ!!#e)!N!K$9V&,!!!!U3!"lR`!!J!!rrrrrJ!!Fj`!N!3603!\r!!!)!N!3+K!#3'J'rSJ#3(`3!N!9RCA4`BA0c,R"j4PC$9!#3"`JJ!!!"!*!)"`#\r3%J&849K88(PdD!#3#,,mA@QfNk86!!!"l!!!"DS!N!JZ`RVQ!!!!U3!"lRd!!J!\r!rrrrrJ!!IZi!N!360J!!!!)!N!3(K!#3'J'rSJ#3(`3!N!9RE'pL,R"j4PC$9!#\r3"`JJ!!!"!*!)"`#3%J&849K88(PdD!#3#,,mA@QfVfUS!!!(H!!!&G-!N!K4SAU\rX!!!!U3!"lRi!!J!!rrrrrJ!!K*J!N!360`!!!!)!N!3-K!#3'J'rSJ#3(`3!N!9\rREh"SCA*XD@)ZF(P'9N08!*!(##!!!!%!N!J(!*!5!94&@&43HA4S!*!)X[aGDVE\rGHd)!!!eJ!!!Zk`#3#-RmD9i!!!#T!!(ZI`!#!!$rrrrq!!#DD`#3""-i!!!!!J#\r3"!H%!*!D!EqL!*!I"!#3"@GkDA!ZF(P'9N08!*!(##!!!!%!N!J(!*!5!94&@&4\r3HA4S!*!)X[aGDVDkSq3!!"+-!!"-EJ#3#&5U@KB!!!#T!!(ZJ!!#!!$rrrrq!!$\r*9J#3""-j!!!!!J#3""'%!*!D!EqL!*!I"!#3"@KdE@aPER4TG(PNC@Cc,R"j4PC\r$9!#3"`JJ!!!"!*!)"`#3%J&849K88(PdD!#3#,,mA@UfVfUS!!!)VJ!!+FJ!N!K\rIrJSb!!!!U3!"lS%!!J!!rrrrrJ!"&F3!N!361J!!!!)!N!3+K!#3'J'rSJ#3(`3\r!N!9SG'eXE'PL,R"j4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K88(PdD!#3#,,mA@U\rfS0%-!!!H6J!!E!`!N!Kc2UL)!!!!U3!"lS)!!J!!rrrrrJ#3#"-l!!!!!J#3"!U\r%!*!D!EqL!*!I"!#3"@KdG("XD@)ZF(P'9N08!*!(##!!!!%!N!J(!*!5!94&@&4\r3HA4S!*!)X[aGDVD[DUN!!"$-!!"#j!#3#%`ff4!!!!#T!!(ZJ`!#!!$rrrrq!!"\rX$!#3""-m!!!!!J#3"!Q%!*!D!EqL!*!I"!#3"@PSEfpVFbj`H8C@3e3!N!F))!!\r!!3#3#!F!N")"9%9B9&"jG'J!N!Lbr&eXYVbJH3!!*(S!!)6B!*!)jR3"(J!!!+N\r!!Hk%!!)!!2rrrri!N!J623!!!!)!N!3+K!#3'J'rSJ#3(`3!N!9TE@&`E'PL,R"\rj4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K88(PdD!#3#,,mA@bfPEqZ!!!%DJ!!$9!\r!N!JLP,LK!!!!U3!"lS8!!J!!rrrrrJ#3#"-q!!!!!J#3"!Q%!*!D!EqL!*!I"!#\r3"@PYCfKNFLj`H8C@3e3!N!F))!!!!3#3#!F!N")"9%9B9&"jG'J!N!Lbr&eYYUp\rUU3!!!f)!!!If!*!)"@E0A3!!!+N!!Hk'!!)!!2rrrri!!!e3!*!%%cm!!!!#!*!\r%#S3!N"S"[k)!N"m%!*!&Df9jGfpbC#j`H8C@3e3!N!F))!!!!3#3#!F!N")"9%9\rB9&"jG'J!N!Lbr&eYYUpUU3!!"&B!!!fD!*!)'&!9p`!!!+N!!Hk(!!)!!2rrrri\r!!"9'!*!%%d!!!!!#!*!%"i3!N"S"[k)!N"m%!*!&DfjPC5j`H84@3e3!N"#fXKR\re!*!(VJ!!!+N!!!!"!*!F%d%!!!!#!!)!N!3(!!!!#!3(!*!E!EqL!*!ME'PL,@p\rXC%C@3e3!N!F))!!!!3#3#!F!N")"9%9B9&"jG'J!N!Le%")RY4!5*`!!"$)!!!N\rU!*!)I$AkFJ!!!+i!!HqC!!-!!2rrrri!N!J63J!!!!)!N!3+K!#3'J(%SJ#3(`3\r!N!9KC'4`B@0V,R"j4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K88(PdD!#3#,83%LH\rfGV0e!!!$@!!!"lF!N!KH'-3(!!!!VJ!"ljS!!`!!rrrrrJ!!#5S!N!363`!!!!)\r!N!3'K!#3'J(%SJ#3(`3!N!9MEA!ZF(P'9N08!*!(##!!!!%!N!J(!*!5!94&@&4\r3HA4S!*!)Y4!5*lCfXh8!!!1Q!!!)'`#3#(rZ+a8!!!#Z!!([Q`!$!!$rrrrq!!!\r3i3#3""0%!!!!!J#3"!Z%!*!D!F5L!*!I"!#3"@0YF'0KBfKP,R"j4PC$9!#3"`J\rJ!!!"!*!)"`#3%J&849K88(PdD!#3#,83%LHfVfUi!!!%$!!!#AB!N!J'%p+L!!!\r!VJ!"lj`!!`!!rrrrrJ!!'2`!N!3643!!!!)!N!3,K!#3'J(%SJ#3(`3!N!9MEf4\rPD'&MDbj`H8C@3e3!N!F))!!!!3#3#!F!N")"9%9B9&"jG'J!N!Le%")RYRDcGJ!\r!"V`!!"H9!*!)9-['G!!!!+i!!HqG!!-!!2rrrri!!#*b!*!%%dB!!!!#!*!%#B3\r!N"S"a+)!N"m%!*!&C'PbBfe`,R"j4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K88(P\rdD!#3#,83%LHe%")R!!!#h!!!"NJ!N!LjSRjN!!!!VJ!"lji!!`!!rrrrrJ!!1JF\r!N!364`!!!!)!N!3(K!#3'J(%SJ#3(`3!N!9NG@e`,R"j4PC$9!#3"`JJ!!!"!*!\r)"`#3%J&849K88(PdD!#3#,83%LHe%")R!!!"%J!!!Ni!N!JZR08K!!!!VJ!"ljm\r!!`!!rrrrrJ!!3%m!N!365!!!!!)!N!3(K!#3'J(%SJ#3(`3!N!9QD@jN,R"j4PC\r$9!#3"`JJ!!!"!*!)"`#3%J&849K88(PdD!#3#,83%LHfGV0f!!!43!!!1`%!N!K\r"TcXa!!!!VJ!"lk!!!`!!rrrrrJ!!3Td!N!3653!!!!)!N!3'K!#3'J(%SJ#3(`3\r!N!9QEA3ZF(P'9N08!*!(##!!!!%!N!J(!*!5!94&@&43HA4S!*!)Y4!5*lD[DVJ\r!!!*#!!!(+!#3#"jF'XF!!!#Z!!([S3!$!!$rrrrq!!"pRJ#3""0+!!!!!J#3"!H\r%!*!D!F5L!*!I"!#3"@GbCA!ZF(P'9N08!*!(##!!!!%!N!J(!*!5!94&@&43HA4\rS!*!)Y4!5*l83%LF!!!#J!!!")!#3#2d3B2F!!!#Z!!([SJ!$!!$rrrrq!!#%aJ#\r3""0,!!!!!J#3"!Z%!*!D!F5L!*!I"!#3"@a[BfYQD@aP,R"j4PC$9!#3"`JJ!!!\r"!*!)"`#3%J&849K88(PdD!#3#,83%LLe%")S!!!#A!!!"K!!N!LCi`!b!!!!VJ!\r"lk-!!`!!rrrrrJ!!KHB!N!366!!!!!)!N!3*K!#3'J(%SJ#3(`3!N!9ZCAGNDA)\rZF(P'9N08!*!(##!!!!%!N!J(!*!5!94&@&43HA4S!*!)Y4!5+,D[DVJ!!"'k!!!\rkAJ#3#2J5rhB!!!#Z!!([T!!$!!$rrrrq!!#,pJ#3""00!!!!!J#3"!@%!*!D!F5\rL!*!I"!#3"@jT,R"j4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K88(PdD!#3#,83%LL\rfVfUj!!!$E!!!#Ni!N!KHS2[q!!!!VJ!"lk8!!`!!rrrrrJ!!aP3!N!366J!!!!)\r!N!3,K!#3'J(%SJ#3(`3!N!9`B@0VE@&TE#j`H8C@3e3!N!F))!!!!3#3#!F!N")\r"9%9B9&"jG'J!N!Le%")RYRDcG3!!$()!!#Gi!*!)RrEh#3!!!+i!!HqQ!!-!!2r\rrrri!!0#L!*!%%dm!!!!#!*!%"i3!N"S"a+)!N"m%!*!&8'&bB5j`H8C@3e3!N!F\r))!!!!3#3#!F!N")"9%9B9&"jG'J!N!Le%")SY4!5+!!!!RB!!!8'!*!)Y(69Q`!\r!!+i!!HqR!!-!!2rrrri!!2JD!*!%%e!!!!!#!*!%"i3!N"S"a+)!N"m%!*!&F'p\rXH5j`H8C@3e3!N!F))!!!!3#3#!F!N")"9%9B9&"jG'J!N!Le%")SY4!5+!!!!,3\r!!!%8!*!)!jG0lJ!!!+i!!HqS!!-!!2rrrri!!2dJ!*!%%e%!!!!#!*!%"i3!N"S\r"a+)!N"m%!*!&FQ&ZC#j`H8C@3e3!N!F))!!!!3#3#!F!N")"9%9B9&"jG'J!N!L\re%")SYUpUZ3!!"DS!!!rS!*!)fd%iR!!!!+i!!HqT!!-!!2rrrri!!2id!*!%%e)\r!!!!#!*!%"B3!N"S"a+)!N"m%!*!&G')ZF(P'9N08!*!(##!!!!%!N!J(!*!5!94\r&@&43HA4S!*!)Y4!5+,83%LJ!!!&`!!!#L3#3#"b$9)m!!!#Z!!([UJ!$!!$rrrr\rq!!%1(!#3""06!!!!!J#3"!H%!*!D!F5L!*!I"!#3"A9dD@`ZF(P'9N08!*!(##!\r!!!%!N!J(!*!5!94&@&43HA4S!*!)Y4!5+,83%LJ!!!!H!!!!&3#3#(R9cDS!!!#\rZ!!([U`!$!!$rrrrq!!%3T3#3""08!!!!!J#3"!b%!*!D!F5L!*!I"!#3"AGSBA4\rcEh9ZC#j`H8C@3e3!N!F))!!!!3#3#!F!N")"9%9B9&"jG'J!N!Le%")SYRDcGJ!\r!"!)!!!LJ!*!)(V4F@!!!!+i!!HqX!!-!!2rrrri!!4#k!*!%%e8!!!!#!*!%"i3\r!N"S"a+)!N"m%!*!&HQe[C#j`H84@3e3!N"#fjUq-YZD[M3!!!,!!!!#T!!!!!3#\r3("0j!!!!!J!#!*!%"J!!!!J)"`#3%8!!N!N"[m!!N#0XD@)YG'Y'9N08!*!(##!\r!!!%!N!J(!*!5!94&@&43HA4S!*!)X[aH%,BL88d!!!CN!!!FZJ#3#1Y"DR!!!!#\r`!!([d3!$!!$rrrrq!*!)%hS!!!!#!*!%#B3!N""!!*!*!FE!!*!I#!#3"80KERC\rKFbj`H8C@3e3!N!F))!!!!3#3#!F!N")"9%9B9&"jG'J!N!Lbr&i3YL*463!!!Q`\r!!!BT!*!)5!,R8`!!!,!!!Hr5!!-!!2rrrri!!"bk!*!%%hX!!!!#!*!%#B3!N""\r!!*!*!FE!!*!I#!#3"84TB@a[Cbj`H8C@3e3!N!F))!!!!3#3#!F!N")"9%9B9&"\rjG'J!N!Lbr&i3YCIEk!!!#0S!!#)e!*!)h-%M8J!!!,!!!Hr6!!-!!2rrrri!!#,\rM!*!%%h`!!!!#!*!%$B3!N""!!*!*!FE!!*!I#!#3"8CTE'9%D@&XEfFZF(P'9N0\r8!*!(##!!!!%!N!J(!*!5!94&@&43HA4S!*!)X[aH%,BL88d!!!#Q!!!!i3#3#%k\r[h%N!!!#`!!([e!!$!!$rrrrq!!"&'!#3""0p!!!!!J#3"!L%!*!33!#3#3('`!#\r3(`J!N!9'DAK8Dbj`H8C@3e3!N!F))!!!!3#3#!F!N")"9%9B9&"jG'J!N!Lbr&i\r3YL*463!!!V!!!!Ac!*!)CY$Cb!!!!,!!!Hr9!!-!!2rrrri!!%Aj!*!%%hi!!!!\r#!*!%$i3!N""!!*!*!FE!!*!I#!#3"90MFQpXE'9N9'9iG#j`H8C@3e3!N!F))!!\r!!3#3#!F!N")"9%9B9&"jG'J!N!Lbr&i4X[aH%3!!"+`!!!j%!*!)F2!HKJ!!!,!\r!!Hr@!!-!!2rrrri!!%[X!*!%%hm!!!!#!*!%$i3!N""!!*!*!FE!!*!I#!#3"90\rTEA"XC84TB@a[Cbj`H8C@3e3!N!F))!!!!3#3#!F!N")"9%9B9&"jG'J!N!Lbr&i\r4YCIEk3!!!aS!!!Dl!*!)dSrDk!!!!,!!!HrA!!-!!2rrrri!!&S`!*!%%i!!!!!\r#!*!%%B3!N""!!*!*!FE!!*!I#!#3"A4V3fpXEh*$D'p[Ff9b,R"j4PC$9!#3"`J\rJ!!!"!*!)"`#3%J&849K88(PdD!#3#,,mAK+f)P&1!!!#[J!!"I-!N!L4#`dT!!!\r!X!!"lpJ!!`!!rrrrrJ!!B1X!N!36J3!!!!)!N!34K!#3%%!!N!N"aX!!N"m)!*!\r&G'Y$EfeYEfj%D@&XEfFZF(P'9N08!*!(##!!!!%!N!J(!*!5!94&@&43HA4S!*!\r)X[aH%E@jTAS!!!0H!!!&9J#3#%-jdf-!!!#`!!([f3!$!!$rrrrq!!"QhJ#3""1\r#!!!!!J#3"!k%!*!33!#3#3('`!#3(`J!N!98Df0[ER0dB@jdFbj`H8C@3e3!N!F\r))!!!!3#3#!F!N")"9%9B9&"jG'J!N!Lbr&i4YL*463!!$B)!!#cJ!*!))90%b`!\r!!,!!!HrD!!-!!2rrrri!!'`d!*!%%i-!!!!#!*!%#)3!N""!!*!*!FE!!*!I#!#\r3"94VC'jN,R"j4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K88(PdD!#3#,,mAK+br&i\r5!!!$dJ!!#IX!N!K9S`Hb!!!!X!!"lpX!!`!!rrrrrJ!!Q43!N!36K!!!!!)!N!3\r2K!#3%%!!N!N"aX!!N"m)!*!&G'Y'D@aP4'PKE'pR,R"j4PC$9!#3"`JJ!!!"!*!\r)"`#3%J&849K88(PdD!#3#,,mAK+fVfUk!!!'S!!!%mN!N!MqU-@M!!!!X!!"lp`\r!!`!!rrrrrJ!!S`m!N!36K3!!!!)!N!3*K!#3%%!!N!N"aX!!N"m)!*!&G'Y'Efj\rd,R"j4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K88(PdD!#3#,,mAK'fVfUk!!"Y(!!\r#"i3!N!K*ead4!!!!X!!"lpd!!`!!rrrrrJ#3#"1'!!!!!J#3"!U%!*!33!#3#3(\r'`!#3(`J!N!98DfPZG'9b,R"j4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K88(PdD!#\r3#,,mAK+br&i5!!!%'!!!$"B!N!KpH"Q$!!!!X!!"lpi!!`!!rrrrrJ#3#"1(!!!\r!!J#3"!q%!*!33!#3#3('`!#3(`J!N!9dDdePFh0KCf9#EhJZF(P'9N08!*!(##!\r!!!%!N!J(!*!5!94&@&43HA4S!*!)X[aH%VD[DVS!!!H1!!!D`!#3#)GEj(F!!!#\r`!!([h`!$!!$rrrrq!!!-&J#3""1)!!!!!J#3""'%!*!33!#3#3('`!#3(`J!N!9\rdDe0TEA"XC84TB@a[Cbj`H8C@3e3!N!F))!!!!3#3#!F!N")"9%9B9&"jG'J!N!L\rcFEZ-YRDcG`!!#DS!!#X"!*!)i4%(*!!!!,!!!HrJ!!-!!2rrrri!!#E@!*!%%iN\r!!!!#!*!%#B3!N""!!*!*!FE!!*!I#!#3"A4eFR4XC5j`H8C@3e3!N!F))!!!!3#\r3#!F!N")"9%9B9&"jG'J!N!Lfhl`5YYqm%J!!)-B!!,-8!*!)9R5jH3!)2)8!#$b\r-!!-!!2rrrri!N!JFJJ!!!!)!N!3'K!#3%%!!N!N"aX!!N"m)!*!&9'Pi,R"j4PC\r$9!#3"`JJ!!!"!*!)"`#3%J&849K88(PdD!#3#,,mA@ffPEq[!!!$HJ!!#@B!N!M\r(4-TG!!!!U3!"lSJ!!J!!rrrrrJ#3#"1+!!!!!J#3"!b%!*!D!EqL!*!I"!#3"@a\rTEQ9MB@0SC5j`H8C@3e3!N!F))!!!!3#3#!F!N")"9%9B9&"jG'J!N!Lbr&eYYZ'\rB,3!!'@i!!'V`!!!!FJ!!!CSbL(kT!!!!U3!"lSN!!J!!rrrrrJ!!#@B!!(4@%iX\r!!!!#!*!%#B3!N"S"[k)!N"m%!*!&E'pMB@aP,R"j4PC$9!#3"`JJ!!!"!*!)"`#\r3%J&849K88(PdD!#3#,,mA@ffPEq[!!!)4J!!&jB!N!M-Q8qk!!!!U3!"lSS!!J!\r!rrrrrJ!!GI!!N!36M!!!!!)!N!3+K!#3'J'rSJ#3(`3!N!9YB@0`BA4S,R"j4PC\r$9!#3"`JJ!!!"!*!)"`#3%J&849K88(PdD!#3#,,mA@ffVfUU!!!%-!!!$"X!N!J\r(fBHm!!!!U3!"lSX!!J!!rrrrrJ!!MBB!N!36M3!!!!)!N!31K!#3'J'rSJ#3(`3\r!N!9YB@0eFQ`bF'&dD#j`H8C@3e3!N!F))!!!!3#3#!F!N")"9%9B9&"jG'J!N!L\rbr&eZYU$4$3!!#N`!!#5)!*!)D6T,I3!!!+N!!Hk-!!)!!2rrrri!!*QK!*!%%ii\r!!!!#!*!%#S3!N"S"[k)!N"m%!*!&E@&TE'*[H#j`H8C@3e3!N!F))!!!!3#3#!F\r!N")"9%9B9&"jG'J!N!Lbr&eZYUpUUJ!!#9`!!"de!*!)q`IM#J!!!+N!!Hk0!!)\r!!2rrrri!!,iT!*!%%im!!!!#!*!%#S3!N"S"[k)!N"m%!*!&E@&TE'0KF#j`H8C\r@3e3!N!F))!!!!3#3#!F!N")"9%9B9&"jG'J!N!Lbr&eZYUpUUJ!!(p`!!)(U!*!\r)2rAP)`!!!+N!!Hk1!!)!!2rrrri!N!J6N!!!!!!#!*!%#)3!N"S"[k)!N"m%!*!\r&E@KXD@)ZF(P'9N08!*!(##!!!!%!N!J(!*!5!94&@&43HA4S!*!)X[aGEVDmS(N\r!!!G`!!!CAJ#3#+iQh%`!!!#T!!(ZM`!#!!$rrrrq!*!)%j%!!!!#!*!%$)3!N"S\r"[k)!N"m%!*!&E@PYCA4[Efac,R"j4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K88(P\rdD!#3#,,mA@qfVfUV!!!*!!!!(,F!N!J(+M0f!!!!U3!"lT!!!!)!!2rrrri!!"P\rH!*!%%j)!!!!#!*!%$)3!N"S"[k)!N"m%!*!&E@PYCA4jF'9c,R"j4PC$9!#3"`J\rJ!!!"!*!)"`#3%J&849K88(PdD!#3#,,mA@#fVfUN!!!&bJ!!$X8!N!LQRC49!!!\r!U3!"lT%!!J!!rrrrrJ!!0K8!N!36N`!!!!)!N!30K!#3'J'rSJ#3(`3!N!90D@e\rP9h*TG'9b,R"j4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K88(PdD!#3#,,mA@qfVfU\rV!!!0FJ!!1Kd!N!L5X15E!!!!U3!"lT)!!J!!rrrrrJ!!40S!N!36P!!!!!)!N!3\r*K!#3'J'rSJ#3(`3!N!9YD@eTCRNZF(P'9N08!*!(##!!!!%!N!J(!*!5!94&@&4\r3HA4S!*!)X[aGElEGHd)!!!AB!!!5SJ#3#)j1I)B!!!#T!!(ZN`!#!!$rrrrq!!"\rqp`#3""19!!!!!J#3"!b%!*!D!EqL!*!I"!#3"@eeE(4TCQPXC5j`H8C@3e3!N!F\r))!!!!3#3#!F!N")"9%9B9&"jG'J!N!Lbr&e[YVUMj!!!!S`!!!E"!*!)aCcI`!!\r!!+N!!Hk8!!)!!2rrrri!!*'C!*!%%jB!!!!#!*!%#)3!N"S"[k)!N"m%!*!&EA9\rdCAJZF(P'9N08!*!(##!!!!%!N!J(!*!5!94&@&43HA4S!*!)X[aGElE+rfd!!!6\rJ!!!3-!#3#+5'A8F!!!#T!!(ZP3!#!!$rrrrq!!#B@J#3""1A!!!!!J#3"!L%!*!\rD!EqL!*!I"!#3"@jPG(*M,R"j4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K88(PdD!#\r3#,,mA@qfVfUX!!!4hJ!!4Ti!N!JBb2V(!!!!U3!"lTB!!J!!rrrrrJ!!U)S!N!3\r6Q!!!!!)!N!3+K!#3'J'rSJ#3(`3!N!9ZER4`E'PL,R"j4PC$9!#3"`JJ!!!"!*!\r)"`#3%J&849K88(PdD!#3#,,mAA#fTKAL!!!36J!!-Rd!N!M&GC!!B!!!!+N!!Hk\rA!!)!!2rrrri!!1mS!*!%%jN!!!!#!*!%#B3!N"S"[k)!N"m%!*!&ER4`BA4S,R"\rj4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K88(PdD!#3#,,mAA#fZU2P!!!#S!!!"r)\r!N!MDjK$l!!!!U3!"lTJ!!J!!rrrrrJ!")D8!N!36QJ!!!!)!N!30K!#3'J'rSJ#\r3(`3!N!9ZG(9bE$*`BA4S,R"j4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K88(PdD!#\r3#,EGISZfhAk,!!!3i!!!3rN!N!JR#p-*!!!!U3!"lTN!!J!!rrrrrJ!"+CF!N!3\r6Q`!!!!)!N!3&K!#3'J'rSJ#3(`3!N!9[Fbj`H8C@3e3!N!F))!!!!3#3#!F!N")\r"9d4#6Ne69d3!N!LfA'C'YPaQ4J!!#`3!!"dl!*!)4eG(BJ!!!+N!!HkD!!)!!2r\rrrri!N!J6R!!!!!)!N!3(K!#3'J'rSJ#3(`3!N!9`C')ZC'pM4PC$9!#3"`JJ!!!\r"!*!)"`#3%J&849K88(PdD!#3#,,mAA'fVfUX!!!J`J!!GH-!N!J-Z!Je!!!!U3!\r"lTX!!J!!rrrrrJ#3#"1G!!!!!J#3"!D%!*!D!EqL!*!I"!#3"A"NBLj`H8C@3e3\r!N!F))!!!!3#3#!F!N")"9%9B9&"jG'J!N!Lbr&ebYVUMj3!!&kB!!'@L!*!)Fjm\rdm3!!!+N!!HkF!!)!!2rrrri!!(AM!*!%%ji!!!!#!*!%#B3!N"S"[k)!N"m%!*!\r&F'PMDfaP,R"j4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K88(PdD!#3#,,mAA+fVfU\rY!!!,X!!!*YJ!N!M)"M[a!!!!U3!"lTd!!J!!rrrrrJ!!fi8!N!36R`!!!!)!N!3\r)K!#3'J'rSJ#3(`3!N!9`DA"PFbj`H84@3e3!N"#fX%e#!*!(YJ!!!+N!!!!"!*!\rF%lS!!!!#!!)!N!3-!!!!#!3(!*!E!EqL!*!MF'aKG#eRC@jPFQPM4PC$9!#3"`J\rJ!!!"!*!)"`#3%J&849K83eG*43#3#,,mAKLf#6d[!!!!I!!!!4`!N!L)dL*X!!!\r!YJ!"lr`!!`!!rrrrrJ#3#"1l!!!!!J#3"!@%!*!D!FbL!*!I"!#3"A*PCf9Z4PC\r$9!#3"`JJ!!!"!*!)"`#3%J&849K88(PdD!#3#,,mAA+fVfUY!!!(#!!!'SN!N!K\r`C`,I!!!!U3!"lTi!!J!!rrrrrJ!!!4`!N!38(J!!!!)!N!3*K!#3'J'rSJ#3(`3\r!N!9`Eh"PEM)ZF(P'9N08!*!(##!!!!%!N!J(!*!5!94&@&43HA4S!*!)X[aGFlD\r[DUd!!![Z!!!M#3#3#'ZC$rB!!!#T!!(ZR`!#!!$rrrrq!!!ET3#3""3I!!!!!J#\r3"!Q%!*!D!EqL!*!I"!#3"A"[F'aTBLj`H8C@3e3!N!F))!!!!3#3#!F!N")"9%9\rB9&"jG'J!N!Lbr&ecYVUMj3!!#*B!!"h6!*!)VNRN'`!!!+N!!HkJ!!)!!2rrrri\r!!$kZ!*!%&#!!!!!#!*!%$)3!N"S"[k)!N"m%!*!&F'pcDAKQD@aP,R"j4PC$9!#\r3"`JJ!!!"!*!)"`#3%J&849K88(PdD!#3#,,mAA1fVfUZ!!!1Y!!!+fF!N!LlE!-\rA!!!!U3!"lU%!!J!!rrrrrJ!!A)%!N!38)3!!!!)!N!3-K!#3'J'rSJ#3(`3!N!9\r`Eh0TH("KG'JZF(P'9N08!*!(##!!!!%!N!J(!*!5!94&@&43HA4S!*!)X[aGFlD\r[DUi!!!Mb!!!K9`#3#*4KUpF!!!#T!!(ZSJ!#!!$rrrrq!!#(k!#3""3L!!!!!J#\r3"!Q%!*!D!EqL!*!I"!#3"A"`FQPZG#j`H8C@3e3!N!F))!!!!3#3#!F!N")"9d4\r#6Ne69d3!N!LfA'C@YPaQ9J!!*li!!'li!*!)[PLY@3!!!+N!!HkM!!)!!2rrrri\r!N!J8)`!!!!)!N!3,K!#3'J'rSJ#3(`3!N!9`FQpQD@aP,Q4[BdC@3e3!N!F))!!\r!!3#3#!F!N")"9%9B9&"jG'J!N!Lbr&eeYYel3`!!'5)!!&$M!*!)VJJB`!!!!+N\r!!HkN!!)!!2rrrri!N!J8*!!!!!)!N!3+K!#3'J'rSJ#3(`3!N!9`FQpQD@aP,R"\rj4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K88(PdD!#3#,,mAALfVfUZ!!!8dJ!!52F\r!N!JP86Y[!!!!U3!"lU8!!J!!rrrrrJ!!81-!N!38*3!!!!)!N!3*K!#3'J'rSJ#\r3(`3!N!9`Fh4KG(-ZF(P'9N08!*!(##!!!!%!N!J(!*!5!94&@&43HA4S!*!)X[a\rGH,D[DUm!!!A8!!!3Y3#3#"'EpTi!!!#T!!(ZTJ!#!!$rrrrq!!#CfJ#3""3Q!!!\r!!J#3"!D%!*!D!EqL!*!I"!#3"A"dH5j`H8C@3e3!N!F))!!!!3#3#!F!N")"9%9\rB9&"jG'J!N!Lbr&eiYUpUV`!!"5`!!!Zb!*!)@G#21`!!!+N!!HkR!!)!!2rrrri\r!!+U2!*!%&#F!!!!#!*!%$B3!N"S"[k)!N"m%!*!&F(PIBfpYF'PXC5j`H8C@3e3\r!N!F))!!!!3#3#!F!N")"9%9B9&"jG'J!N!Lbr&eiYUpUV`!!$Fi!!#dH!*!)M*E\rADJ!!!+N!!HkS!!)!!2rrrri!!,C"!*!%&#J!!!!#!*!%#B3!N"S"[k)!N"m%!*!\r&F(PME'*b,R"j4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K88(PdD!#3#,,mA@#fZU2\rM!!!$pJ!!$ad!N!M[9lCA!!!!U3!"lUN!!J!!rrrrrJ!!iem!N!38+3!!!!)!N!3\r)K!#3'J'rSJ#3(`3!N!94G@9eC5j`H8C@3e3!N!F))!!!!3#3#!F!N")"9%9B9&"\rjG'J!N!Lbr&eiYZ'B,J!!"Ci!!"#V!*!)2'H"j!!!!+N!!HkU!!)!!2rrrri!!2*\rm!*!%&#S!!!!#!*!%#B3!N"S"[k)!N"m%!*!&FA9[F(*T,R"j4PC$9!#3"`JJ!!!\r"!*!)"`#3%J&849K88(PdD!#3#,,mAAQfZU2P!!!Ef!!!96m!N!Jic-`C!!!!U3!\r"lUX!!J!!rrrrrJ!"!bF!N!38+`!!!!)!N!3*K!#3'J'rSJ#3(`3!N!9bB@jNEfd\rZF(P'9N08!*!(##!!!!%!N!J(!*!5!94&@&43HA4S!*!)X[aGHEDb&3)!!!(H!!!\r$-3#3#2Xeq8%!!!#T!!(ZV!!#!!$rrrrq!!&BCJ#3""3X!!!!!J#3"!@%!*!D!Eq\rL!*!I"!#3"A*P,R"j4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K88(PdD!#3#,,mAAQ\rfXK8$!!!)3J!!&'%!N!JrX#[Y!!!!U3!"lUd!!J!!rrrrrJ!"@jF!N!38,3!!!!)\r!N!3-K!#3'J'rSJ#3(`3!N!9bC@0[ERCPFR3ZF(P'9N08!*!(##!!!!%!N!J(!*!\r5!94&@&43HA4S!*!)X[aGHEDkSq8!!!0L!!!(C3#3#$HMJq)!!!#T!!(ZVJ!#!!$\rrrrrq!!&[q!#3""3Z!!!!!J#3"!q%!*!D!EqL!*!I"!#3"A*PCf9iAh0jER4KH#j\r`H8C@3e3!N!F))!!!!3#3#!F!N")"9%9B9&"jG'J!N!Lbr&ekYV)9!`!!#%3!!"J\re!*!)5[L-X3!!!+N!!Hk[!!)!!2rrrri!N!J8,`!!!!)!N!3*K!#3'J'rSJ#3(`3\r!N!9bC@GcG@)ZF(P'9N08!*!(##!!!!%!N!J(!*!5!94&@&43HA4S!*!)X[aGHVD\rb&3-!!!0B!!!-D`#3#+V@QrS!!!#T!!(ZX!!#!!$rrrrq!!!B03#3""3`!!!!!J#\r3"!H%!*!D!EqL!*!I"!#3"A*PF()ZF(P'9N08!*!(##!!!!%!N!J(!*!5!94&@&4\r3HA4S!*!)X[aGHVDb&3-!!!kB!!!br`#3#!Zr()B!!!#T!!(ZX3!#!!$rrrrq!!!\rNS!#3""3a!!!!!J#3"!L%!*!D!EqL!*!I"!#3"A*PH'9M,R"j4PC$9!#3"`JJ!!!\r"!*!)"`#3%J&849K88(PdD!#3#,,mAAUfXK8$!!!K2J!!HLN!N!MNq2-5!!!!U3!\r"lV)!!J!!rrrrrJ!!9jm!N!38-J!!!!)!N!3*K!#3'J'rSJ#3(`3!N!9bCQ-i-M)\rZF(P'9N08!*!(##!!!!%!N!J(!*!5!94&@&43HA4S!*!)X[aGHVDb&3-!!!CS!!!\r3,`#3##6Q@bm!!!#T!!(ZX`!#!!$rrrrq!!$4b!#3""3c!!!!!J#3"!k%!*!D!Eq\rL!*!I"!#3"A*XBfpYF'aPG'9b,R"j4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K88(P\rdD!#3#,83$f+fZU2P!!!*lJ!!*1)!N!M(QJ4(!!!!U3!"lV3!!J!!rrrrrJ!!iIF\r!N!380!!!!!)!N!31K!#3'J'rSJ#3(`3!N!9bEf*[G("KFR0PFLj`H8C@3e3!N!F\r))!!!!3#3#!F!N")"9%9B9&"jG'J!N!Lbr&ekYV)9!`!!"M`!!!rF!*!)4Q"N)`!\r!!+N!!Hke!!)!!2rrrri!!3EC!*!%&$8!!!!#!*!%#)3!N"S"[k)!N"m%!*!&Ff0\rSC@3ZF(P'9N08!*!(##!!!!%!N!J(!*!5!94&@&43HA4S!*!)X[aGHlEGHd-!!"$\r%!!"%#`#3#1efDJ%!!!#T!!(ZYJ!#!!$rrrrq!!%@Y3#3""3f!!!!!J#3"!U%!*!\rD!EqL!*!I"!#3"A0RE@aXD@)ZF(P'9N08!*!(##!!!!%!N!J(!*!5!94&@&43HA4\rS!*!)X[aGHlDb&3-!!!9`!!!4KJ#3#$0@LIB!!!#T!!(ZY`!#!!$rrrrq!!&D`!#\r3""3h!!!!!J#3"!Q%!*!D!EqL!*!I"!#3"A0SC@afC5j`H8C@3e3!N!F))!!!!3#\r3#!F!N")"9%9B9&"jG'J!N!Lbr&elYV)9!`!!"d`!!"j*!*!)Q8M'4J!!!+N!!Hk\ri!!)!!2rrrri!N!J81!!!!!)!N!3)K!#3'J'rSJ#3(`3!N!9cD'aPH#j`H8C@3e3\r!N!F))!!!!3#3#!F!N")"9%9B9&"jG'J!N!Lbr&elYV)9"!!!"6S!!!pJ!*!)c`I\r24J!!!+N!!Hkj!!)!!2rrrri!!"j*!*!%&$N!!!!#!*!%#B3!N"S"[k)!N"m%!*!\r&FfKeG'PX,R"j4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K88(PdD!#3#,,mA@#fVfU\rN!!!)Z!!!'+i!N!JdX%%M!!!!U3!"lVS!!J!!rrrrrJ!!,DN!N!381J!!!!)!N!3\r6K!#3'J'rSJ#3(`3!N!96D@e`E'9)9&438f9bGQ9b,R"j4&C$9!#3%,EQVikfjUq\r3!!!!!-!!!!#T!!!!!3#3("3l!!!!!J!#!*!%$3!!!!J%"`#3%D!!N!N"[l-!N#0\rcDA4P,A"KBfYKCf9c4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K88LTMD!#3#,83%M+\re%")b!!!!BJ!!!(F!N!J")c+%!!!!`!!"m'!!!`!!rrrrrJ#3#"3m!!!!!J#3"!D\r%!*!D!GDL!*!I"!#3"9*&3840484@3e3!N"#fjUq1YZD[MJ!!!3B!"eZ,!!!!!3#\r3("aG!!!!!`!#!*!%!`!!!!J%"`#3%D!!N!N"eT%!N#0'4P4'9N08!*!(##!!!!%\r!N!J(!*!5!94&@&43HA4S!*!)YFYQ+lA,CLX!!!$U!!!#P!#3#,DZcJS!"eZ1!!G\rEM`!%!!$rrrrq!*!)(&`!!!!#!*!%#i3!N"S#U*%!N"m%!*!&AepTEQPdAemZF(P\r'9N08!*!(##!!!!%!N!J(!*!5!94&@&43HA4S!*!)YFYQ+lDdZI!!!!k@!!!er`#\r3#!mJTr!!"eZ1!!GEN!!!"!!!rrrrrJ!!!T3!N!3F@`!!!!)!N!3'K!#3'J+SN3#\r3(`3!N!9'4P3ZF(P'9N08!*!(##!!!!(!!*!("`#3%!8!!A0SE'*3HA4S!*!)YX4\rT8EEPC53!!%eB!!#-)J!!!'J!!!'@k1+hTJ!(@ii!"eZ4!!3!!2rrrri!N!JF@J!\r!!!)!N!35K!#3%#!!N!N#U)%!N"m(!*!%!@CQG("KBfXZBf&bBQpZ,R0XBNC@3e3\r!N!F))!!!!3#3#!F!N"!&!!&cD'aL8(PdD!#3#,E%(r'fj@*#!!"05!!!M!)!!!"\rN!!!"NX-P)$%!"eZ1!!GENJ!%!!$rrrrq!*!)(&N!!!!#!*!%$i3!N"#!!*!*!UL\r3!!#3(`B!N!9QCR4`B@0V,R"`BbjcE'*%9N08!*!3YZD[MVEQVii!!!%'!!GEL`!\r!!!%!N"`F@!!!!!-!!J#3"!)!!!!)"!F!N"X"eT%!N#0038C@3e3!N!F))!!!!3#\r3#!F!N")"9%9B9&"jG'J!N!LebfBYYZ3V9`!!-$)!!14"!*!)(E5Qa`!(@j-!"eZ\r8!!3!!2rrrri!N!JF9`!!!!)!N!3,K!#3'J+RN3#3(`3!N!9IAfPZDA4IAbj`H8C\r@3e3!N!F))!!!!3#3#!F!N")"9%9B9&"jG'J!N!Lf1D&`YX3@lJ!!"eS!!"ji!*!\r),M3m9J!(@j-!"eZ9!!3!!2rrrri!N!JF9J!!!!)!N!30K!#3'J+RN3#3(`3!N!9\rKBh4TGQ9KG(4b,R"j4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K88(PdD!#3#,BjS@q\rfiCN9!!!!KJ!!!1B!N!J$ZcJL!!GEN`!(@jB!"!!!rrrrrJ!!(RJ!N!3F93!!!!)\r!N!30K!#3'J+RN3#3(`3!N!9039pfCA*cD@pZ,R"j4&C$9!#3%,EQViqfjUq3!!!\r!!3B!"eZ,!!!!!3#3("a8!!!!!`!#!*!%"`!!!!J%"`#3%D!!N!N"eT%!N#01G@e\rPFQPM4PC$9!#3"`JJ!!!"`!#3"`F!N"!&!!&cD'aL8(PdD!#3#,E%C[@fj@-6!!"\rBjJ!!m4S!!!"N!!!"N[+,$`B!"eZA!!GEQ!!%!!$rrrrq!*!)(&-!!!!#!*!%%B3\r!N"!J!*!*!UD"!*!I"`#3"!&IER9YF(NZBf&bBQpZ,R0XBNC@3e3!N!F))!!!!3#\r3#!F!N"!&!!&cD'aL8(PdD!#3#,E%(1Ufj@&f!!"BiJ!!m4S!!!"Q!!!"NUBS*JF\r!"eZA!!GEQ3!%!!$rrrrq!*!)(&)!!!!#!*!%$S3!N"#!!*!*!UD3!!#3(`B!N!9\rIER9YF(NZF("M,R0XBNC@3e3!N!F))!!!!F!!N!F(!*!3"3!"FfKXBP"jG'J!N!L\rfa'F0YZ9MX`!!)VS!!&%f!!!!D!!!!CE)K85C!!GEP`!(@jS!"!!!rrrrrJ#3"P%\rf(&%!!!!#!*!%%i3!N"S#TS%!N"m(!*!%!@&bFQ&jCQjc,Q0KFQ*[ELjcE'*'9N0\r8!*!(##!!!!%!N!J(!*!3"3!"FfKXBP"jG'J!N!Lfa"hSYZ9KLJ!!)VB!!&%f!!!\r!D!!!!C)cS5@J!!GEP`!(@jX!"!!!rrrrrJ!!8X`!!+3#(&!!!!!#!*!%%)3!N"S\r#TT!!!*!I"J#3"@&bFQ&jCQjc,R"`BbjcE'*'9N08!*!(##!!!!%!N!J(!*!5!94\r&@&43HA4S!*!)YFYQ*,A,CL3!!!J+!!!Hi!#3#04qVTB!"eZA!!GER!!%!!$rrrr\rq!*!)(%m!!!!#!*!%$i3!N"S#TT%!N"m%!*!&3A*bBAP3FQPZG'9b,R"j4PC$9!#\r3"`JJ!!!"`!#3"`F!N"!&!!&cD'aL8(PdD!#3#,E%D,ffj@5V!!0A*J!)[am!!!"\rX!!!"QQL[,l3!"eZA!!GER3!%!!$rrrrq!*!)(%i!!!!#!*!%&S3!N"!J!*!*!UD\r"!*!I"`#3"!&XBA"KBfYIE'PdC5jMBA*LEfiZFfaL4PC$9!#3"`JJ!!!"!*!)"`#\r3%!8!!A0SE'*3HA4S!*!)YX3I(EEPBFS!!eFS!!Lr$`!!!'J!!!'@5%L6,`!(@jF\r!"eZH!!3!!2rrrri!N!JF63!!!!)!N!36K!#3%)!!N!N#TT!!!*!I"J#3"@aKF'&\rMDepXDA4P,R"`BbjcE'*'9N08!*!(##!!!!%!N!J(!*!5!94&@&43HA4S!*!)YI3\rRT,Ad*k3!!!XQ!!!X&`#3#"RGYGJ!"eZA!!GER`!%!!$rrrrq!*!)(%`!!!!#!*!\r%%)3!N"S#TT%!N"m%!*!&6'PZC@&b3@aRC@*bB5j`H8C@3e3!N!F))!!!!3#3#!F\r!N")"9%9B9&"jG'J!N!Lep#HNYI3RT!!!!Ni!!!BT!*!)UhkmL`!(@jF!"eZJ!!3\r!!2rrrri!!#`A!*!%(%X!!!!#!*!%#B3!N"S#TT%!N"m%!*!&6@&dFQPi,R"j4PC\r$9!#3"`JJ!!!"!*!)"`#3%J&849K88(PdD!#3#,Ad*k5feS`"!!!0)J!!*8d!N!L\rXD"f5!!GEP`!(@k%!"!!!rrrrrJ!!-N!!N!3F5J!!!!)!N!3(K!#3'J+QN3#3(`3\r!N!906'&L,R"j4PC$9!#3"`JJ!!!"`!#3"`F!N"!&!!&cD'aL8(PdD!#3#,E%C[L\rfj@0*!!!M8J!!8M8!!!"X!!!"PPh*lUS!"eZA!!GESJ!%!!$rrrrq!*!'8M8F53!\r!!!)!N!39K!#3%#!!N!N#TS%!N"m(!*!%!@eeE(4TBA*bBANZBf&bBQpZ,R0XBNC\r@3e3!N!F))!!!!3#3#!F!N"!&!!&cD'aL8(PdD!#3#,E%(91fj@&p!!!M6!!!8M8\r!!!"S!!!"PN'l(YB!"eZA!!GES`!%!!$rrrrq!!"6b`!!TJ!F5!!!!!)!N!35K!#\r3%)!!N!N#TT!!!*!I"J#3"@eeE(4TBA*bBANZF("M,R0XBNC@3e3!N!F))!!!!3#\r3#!F!N")"9%9B9&"jG'J!N!LebfBUYZ3V9!!!&e`!!%VN!*!)(,[eX`!(@jF!"eZ\rN!!3!!2rrrri!N!JF4`!!!!)!N!3+K!#3'J+QN3#3(`3!N!91G@ePFQPM,R"j4PC\r$9!#3"`JJ!!!"!*!)"`#3%J&849K88(PdD!#3#,BjS@ffj#Y8!!!!'J!!!"%!N!L\rJ)Qad!!GEP`!(@k8!"!!!rrrrrJ!!5Z3!N!3F4J!!!!)!N!35K!#3'J+QN3#3(`3\r!N!9ZG@ePFQPMAhCPFR0TEfiZF(P'9N08!*!(##!!!!%!N!J(!*!5!94&@&43HA4\rS!*!)YFYQ+VA,CLS!!!,%!!!*T!#3#*KkT4F!"eZA!!GETJ!%!!$rrrrq!!"+p3#\r3""a&!!!!!J#3"!b%!*!D!UD4!*!I"!#3"9"bC@0TFfP[ELj`H8C@3e3!N!F))!!\r!!3#3#!F!N")"9%9B9&"jG'J!N!Lep#J@YV5jm`!!$JS!!$A8!*!)*ILBQ3!(@jF\r!"eZR!!3!!2rrrri!!&5C!*!%(%3!!!!#!*!%$S3!N"S#TT%!N"m%!*!&8Q&ZC'p\rY3A*bBANZF(P'9N08!*!(##!!!!(!!*!("`#3%!8!!A0SE'*3HA4S!*!)YX4T+VE\rPC1S!!$!Q!!"Di!!!!'B!!!'5ZdLhDJ!(@jF!"eZS!!3!!2rrrri!N!CDi"a$!!!\r!!J#3""'%!*!3)!#3#3+QJ3#3(`F!N!3"FQ&ZE'PL,Q0KFQ*[ELjcE'*'9N08!*!\r(##!!!!%!N!J(!*!3"3!"FfKXBP"jG'J!N!Lfa"qAYZ9L"!!!-"3!!&U`!!!!CJ!\r!!C+GN!"(L`!(@jF!"eZT!!3!!2rrrri!!&ab!!#h)Ka#!!!!!J#3"!k%!*!3J!#\r3#3+QN!!!N"m'!*!&FQ&ZE'PL,R"`BbjcE'*'9N08!*!(##!!!!(!!*!("`#3%!8\r!!A0SE'*3HA4S!*!)YX4Qr,EPBi-!!#Ri!!#Fr`!!!'S!!!'5cGDk"J!(@jF!"eZ\rU!!3!!2rrrri!N!JF33!!!!)!N!33K!#3%#!!N!N#TS%!N"m(!*!%!A9YBA4S,Q0\rKFQ*[ELjcE'*'9N08!*!(##!!!!%!N!J(!*!3"3!"FfKXBP"jG'J!N!Lfa"fHYZ9\rKJ`!!+I3!!*c[!!!!C!!!!Bl*(Pqh!!GEP`!(@kX!"!!!rrrrrJ#3#"a!!!!!!J#\r3"!f%!*!3J!#3#3+QN!!!N"m'!*!&G@eKG'JZF("M,R0XBNC@3e3!N!F))!!!!3#\r3#!F!N")"9%9B9&"jG'J!N!LebfBVYV5jl`!!!p3!!!fl!*!)Ur9lM3!(@jF!"eZ\rX!!3!!2rrrri!N!JF2`!!!!)!N!3-K!#3'J+QN3#3(`3!N!99Ff9b3A*bBANZF(P\r'9N08!*!(##!!!!%!N!J(!*!5!94&@&45+Q0S!*!)YZ3XC,EPC1i!!!!3!!!!#!#\r3#,5-b1)!"eZ,!!GEM!!$!!$rrrrq!!!0Z`#3""`q!!!!!J#3"!Z%!*!D!GD4!*!\rI"!#3"8jeE@9bD@-ZF(4S4&C$9!#3%,EQVj!!YZD[N!!!!!%'!!GEL`!!!!%!N"`\rF23!!!!-!!J#3"!-!!!!)"!F!N"X"eT%!N#056NG'9N08!*!(##!!!!%!N!J(!*!\r5!94&@&43HA4S!*!)YFYQ,VA,CLi!!!'1!!!$UJ#3##Vc`U)!"eZY!!GEVJ!%!!$\rrrrrq!*!)($`!!!!#!*!%#i3!N"S#TC%!N"m%!*!&AepTEQPdAemZF(P'9N08!*!\r(##!!!!(!!*!("`#3%!8!!A0SE'*3HA4S!*!)YX4SNVEPC(3!!"(5!!!Q$J!!!'B\r!!!'5i'9R(3!(@kd!"eZ[!!3!!2rrrri!N!BQ$K`l!!!!!J#3"!k%!*!D!U@"!*!\rI"`#3"!&56NFZBf&bBQpZ,R0XBNC@3e3!N!F))!!!!3#3#!F!N"!&!!&cD'aL8(P\rdD!#3#,E%(Rffj@'B!!!4f!!!*Li!!!"L!!!"M[*U8i)!"eZY!!GEX!!%!!$rrrr\rq!!!RS!!!6FiF1J!!!!)!N!3,K!#3'J+PN!!!N"m'!*!&8Nj(,R"`BbjcE'*'9N0\r8!*!(##!!!!%!N!J(!*!5!94&@&43HA4S!*!)YFYQ,VA,CLi!!!(X!!!%b!#3#*R\rN9KX!"eZY!!GEX3!%!!$rrrrq!*!)($N!!!!#!*!%$B3!N"S#TC%!N"m%!*!&8h4\rKG'PcG'PMFbj`H8C@3e3!N!F))!!!!3#3#!F!N")"9%9B9&"jG'J!N!Lbr&elYZ'\rB,`!!$,i!!#+F!!!!PJ!!!CSNCYV"!!!!U3!"lVX!!J!!rrrrrJ!!"-J!!#GN&$d\r!!!!#!*!%"i3!N"S"[k)!N"m%!*!&FfPdC5j`H8C@3e3!N!F))!!!!3#3#!F!N")\r"9%9B9&"jG'J!N!Lbr&emYV)9"!!!&XS!!%L2!*!)ZdLa5`!!!+N!!Hkm!!)!!2r\rrrri!!#Mq!*!%&$i!!!!#!*!%#S3!N"S"[k)!N"m%!*!&FfedF'aTBLj`H8C@3e3\r!N!F))!!!!3#3#!F!N")"9%9B9&"jG'J!N!Lbr&emYV)9"!!!#"S!!"G5!*!)3mq\ri'!!!!+N!!Hkp!!)!!2rrrri!!('0!*!%&$m!!!!#!*!%#B3!N"S"[k)!N"m%!*!\r&FfjND'4b,R"j4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K88(PdD!#3#,,mA@#fNk8\r*!!!6$J!!3Mi!N!MfRPh+!!!!U3!"lVi!!J!!rrrrrJ!!L0m!N!383!!!!!)!N!3\r2K!#3'J'rSJ#3(`3!N!96Ef0VCA46CA*fCA)ZF(P'9N08!*!(##!!!!%!N!J(!*!\r5!94&@&43HA4S!*!)Y4!2BVEKQ#m!!!S'!!!IcJ#3#0iQXN`!!!#T!!(Z[`!#!!$\rrrrrq!!$,(3#3""4"!!!!!J#3"!D%!*!D!EqL!*!I"!#3"A0bC5j`H8C@3e3!N!F\r))!!!!3#3#!F!N")"9%9B9&"jG'J!N!Le%!pLYZ'B-!!!#[!!!#i-!*!)LhZZ`!!\r!!+N!!Hl!!!)!!2rrrri!!1VV!*!%&%)!!!!#!*!%$S3!N"S"[k)!N"m%!*!&Fh*\rPAf0[EA"TE'8ZF(P'9N08!*!(##!!!!%!N!J(!*!5!94&@&43HA4S!*!)Y4!2BVE\rKQ$!!!!M'!!!E5`#3#0'PiGF!!!#T!!(Z`3!#!!$rrrrq!!%Bp`#3""4$!!!!!J#\r3""#%!*!D!EqL!*!I"!#3"A0bC9pMEfjcG'&ZG(-ZF(P'9N08!*!(##!!!!%!N!J\r(!*!5!94&@&43HA4S!*!)Y4!2BVEKQ$%!!"9f!!"I1!#3#+#X8'3!!!#T!!(Z`J!\r#!!$rrrrq!*!)&%3!!!!#!*!%$)3!N"S"[k)!N"m%!*!&Fh*PAh"KFR0P,R"j4PC\r$9!#3"`JJ!!!"!*!)"`#3%J&849K88(PdD!#3#,,mAAbfZU2Q!!!#`J!!"S-!N!K\rJRhR$!!!!U3!"lX-!!J!!rrrrrJ!!AcJ!N!3843!!!!)!N!3(K!#3'J'rSJ#3(`3\r!N!9cG'&d,R"j4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K88(PdD!#3#,,mAAbfXK8\r%!!!$h!!!#3`!N!L`SZ'K!!!!U3!"lX3!!J!!rrrrrJ!!CEX!N!384J!!!!)!N!3\r-K!#3'J'rSJ#3(`3!N!9cG'&dBf&MD'8ZF(P'9N08!*!(##!!!!%!N!J(!*!5!94\r&@&43HA4S!*!)X[aGI,DkSqB!!!&B!!!$#`#3#+4P!ki!!!#T!!(Za3!#!!$rrrr\rq!!"Za`#3""4(!!!!!J#3"!U%!*!D!EqL!*!I"!#3"A0dBA4fCR-ZF(P'9N08!*!\r(##!!!!%!N!J(!*!5!94&@&43HA4S!*!)X[aGI,DkSqB!!!dk!!!UaJ#3#!9#c@F\r!!!#T!!(ZaJ!#!!$rrrrq!!"adJ#3""4)!!!!!J#3"!Q%!*!D!EqL!*!I"!#3"A0\rdFQPZCbj`H8C@3e3!N!F))!!!!3#3#!F!N")"9%9B9&"jG'J!N!Lbr&eJYUpUT3!\r!"X!!!"Ij!*!)k'40[`!!!+N!!Hl(!!)!!2rrrri!!*bB!*!%&%N!!!!#!*!%#i3\r!N"S"[k)!N"m%!*!&8h4bD@jR58mZF(P'9N08!*!(##!!!!%!N!J(!*!5!94&@&4\r3HA4S!*!)XkZMUlD[DV%!!!jU!!!`4`#3#*UN6NJ!!!#T!!(Zb!!#!!$rrrrq!!#\rdN3#3""4+!!!!!J#3"!b%!*!D!EqL!*!I"!#3"A0dFQPZCfpXC#j`H8C@3e3!N!F\r))!!!!3#3#!F!N")"9%9B9&"jG'J!N!Lbr&epYSjkY3!!$QJ!!%#$!*!)BI3q%!!\r!!+N!!Hl*!!)!!2rrrri!!16B!*!%&%X!!!!#!*!%#)3!N"S"[k)!N"m%!*!&Fh9\rZBA8ZF(P'9N08!*!(##!!!!%!N!J(!*!5!94&@&43HA4S!*!)X[aGIED1HV8!!!(\r`!!!%d!#3##TQV@`!!!#T!!(ZbJ!#!!$rrrrq!!%P@`#3""4-!!!!!J#3"!Z%!*!\rD!EqL!*!I"!#3"A0eEQ&eC'P[,R"j4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K88(P\rdD!#3#,,mAAfec&09!!!$,J!!"TJ!N!KA60AT!!!!U3!"lXX!!J!!rrrrrJ!"+LX\r!N!3863!!!!)!N!3*K!#3'J'rSJ#3(`3!N!9cH@eLEf`ZF(P'9N08!*!(##!!!!%\r!N!J(!*!5!94&@&43HA4S!*!)Y1XiTEE&dI`!!!hF!!!`p!#3#'Me6$X!!!#T!!(\rZc!!#!!$rrrrq!!%```#3""41!!!!!J#3"!Z%!*!D!EqL!*!I"!#3"A4KBQjKEQj\rj,R"j4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K88(PdD!#3#,,mAAffaG(m!!!4&J!\r!2&`!!!"`!!!"QT68c48!!!#T!!(Zc3!#!!$rrrrq!*!'2&`86`!!!!)!N!3-K!#\r3'J'rSJ#3(`3!N!9dC@aZCA4XD@)ZF(P'9N08!*!(##!!!!%!N!J(!*!5!94&@&4\r3HA4S!*!)X[aGIVE&dI`!!!NN!!!BbJ#3#%(Kh88!!!#T!!(ZcJ!#!!$rrrrq!!!\rppJ#3""43!!!!!J#3"!Z%!*!D!EqL!*!I"!#3"A4PEA"QD@aP,R"j4&C$9!#3%,E\rQVj'fjUqD!!!!`3!!!+N!!!!"!*!F&&%!!!!#!!)!N!3%!!!!#!3(!*!E!EqL!*!\rMG'9cG%C@3e3!N!F))!!!!3#3#!F!N")"9%9B9&"jG'J!N!Lbr&iVX[aH+`!!!$J\r!!!![!*!)N6r3+3!!!-%!!I"M!!-!!2rrrri!N!J88`!!!!)!N!3,K!#3'J(ASJ#\r3(`3!N!9IAfPZDA4IAbj`H8C@3e3!N!F))!!!!3#3#!F!N")"98a"9e4@6d3!N!L\rc*@)`XcI(c`!!3QJ!!&[&!*!)fG*H2J!!!-%!!I"N!!-!!2rrrri!N!J89!!!!!)\r!N!3-K!#3'J(ASJ#3(`3!N!9KG@4TEh4PFh3ZBA9'9N08!*!(##!!!!%!N!J(!*!\r5!94&@&43HA4S!*!)X[aH+lA,6d)!!!#1!!!!b3#3#1LqFNd!!!$"!!(`C3!$!!$\rrrrrq!*!)&&8!!!!#!*!%#i3!N"S"ek)!N"m%!*!&BA9dEh4PFh3ZF(P'9N08!*!\r(##!!!!%!N!J(!*!5!94&@&45+Q0S!*!)X[aH-E,mAM%!!2dm!!&er3#3#)@N8Q`\r!!!$"!!(`CJ!$!!$rrrrq!*!)&&B!!!!#!*!%#i3!N"S"ek)!N"m%!*!&Ch*PHA*\rRBLjeG@9%9N08!*!3YZD[QVEQVk%!!!$#!!!!`3!!!!%!N"`89`!!!!-!!J#3"!B\r!!!!)"!F!N"X"ek)!N#0[GA4`GA4'9N08!*!(##!!!!%!N!J(!*!5!94&@&4$9dP\r&!*!)X[aH6l,mANm!!!!3!!!!#!#3#(M3r03!!!$#!!(``!!%!!$rrrrq!*!)&&J\r!!!!#!*!%"i3!N"S"f+)!N"m%!*!&G'9cG&pKE%C@3e3!N!F))!!!!3#3#!F!N")\r"9%9B9%0A588!N!Lbr&j2X[aH6`!!!"3!!!!,!*!)EXkqh`!!!-)!!I$"!!3!!2r\rrrri!!!!)!*!%&&N!!!!#!*!%#S3!N"S"f+)!N"m%!*!&G'9cG&pKFR*KH8C@3e3\r!N!F))!!!!3#3#!F!N")"9%9B9%0A588!N!Lbr&j2X[aH6`!!!"B!!!!0!*!)*&H\rpj3!!!-)!!I$#!!3!!2rrrri!!!!6!*!%&&S!!!!#!*!%$)3!N"S"f+)!N"m%!*!\r&G'9cG&pKG@4TEfp`4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K83eG*43#3#,,mAP#\rd3f1j!!!%$!!!"F3!N!L9m"jp!!!!`J!"m--!"!!!rrrrrJ!!!#!!N!38@`!!!!)\r!N!30K!#3'J(BSJ#3(`3!N!9dCA0dAf*TEQ&cBfPT4PC$9!#3"`JJ!!!"!*!)"`#\r3%J&849K83eG*43#3#,4$BlQd3f1j!!!!&!!!!!`!N!Kp**LJ!!!!`J!"m-3!"!!\r!rrrrrJ!!"H3!N!38A!!!!!)!N!3,K!#3'J(BSJ#3(`3!N!9dCA0dAf*TEQKPH%C\r@3e3!N!F))!!!!3#3#!F!N")"9%9B9%0A588!N!Lbr&j3X[aH8!!!!"3!!!!,!*!\r)$lANm`!!!-)!!I$&!!3!!2rrrri!!!A`!*!%&&d!!!!#!*!%#S3!N"S"f+)!N"m\r%!*!&G'9cG&pLFf4NBNC@3e3!N!F))!!!!3#3#!F!N")"9%9B9%0A588!N!Lbr&j\r3YSjka3!!!0i!!!&N!*!)694ZF3!!!-)!!I$'!!3!!2rrrri!!!Al!*!%&&i!!!!\r#!*!%$)3!N"S"f+)!N"m%!*!&G'9cG&pLG@PXG'PZ4PC$9!#3"`JJ!!!"!*!)"`#\r3%J&849K83eG*43#3#,,mAP#br&j3!!!!%!!!!!J!N!LcMD+b!!!!`J!"m-F!"!!\r!rrrrrJ!!"em!N!38A`!!!!)!N!3(K!#3'J(BSJ#3(`3!N!9dCA0dAf0N4PC$9!#\r3"`JJ!!!"!*!)"`#3%J&849K83eG*43#3#,,mAP#br&j3!!!!%!!!!!J!N!Kl9#L\rk!!!!`J!"m-J!"!!!rrrrrJ!!"fF!N!38B!!!!!)!N!3(K!#3'J(BSJ#3(`3!N!9\rdCA0dAf0X4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K83eG*43#3#,,mAP'br&j4!!!\r!&!!!!!X!N!M+,U9p!!!!`J!"m-N!"!!!rrrrrJ!!"fm!N!38B3!!!!)!N!3+K!#\r3'J(BSJ#3(`3!N!9dCA0dAf0YBA4S4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K83eG\r*43#3#,6V1+LdkcLS!!!!&J!!!!i!N!LC(D+V!!!!`J!"m-S!"!!!rrrrrJ!!"hS\r!N!38BJ!!!!)!N!30K!#3'J(BSJ#3(`3!N!9dCA0dAf0[ER4KD@jc4PC$9!#3"`J\rJ!!!"!*!)"`#3%J&849K83eG*43#3#,-PB9@fNk8L!!!!9!!!!(N!N!M![Ml1!!!\r!`J!"m-X!"!!!rrrrrJ!!"iJ!N!38B`!!!!)!N!3-K!#3'J(BSJ#3(`3!N!9dCA0\rdAf0`D@0VE'9'9N08!*!(##!!!!%!N!J(!*!5!94&@&4$9dP&!*!)X[aH8E,mAP%\r!!!!8!!!!#`#3#&a0,pm!!!$#!!(`c!!%!!$rrrrq!!!)!3#3""4N!!!!!J#3"!U\r%!*!D!GLL!*!I"!#3"A4PFh4IBh*jF(4'9N08!*!(##!!!!%!N!J(!*!5!94&@&4\r$9dP&!*!)X[aH8E,mAP%!!!!5!!!!#3#3#(A)iji!!!$#!!(`c3!%!!$rrrrq!!!\r)$!#3""4P!!!!!J#3"!L%!*!D!GLL!*!I"!#3"A4PFh4IC'*Y4PC$9!#3"`JJ!!!\r"!*!)"`#3%J&849K83eG*43#3#,,mAP'br&j4!!!!%!!!!!J!N!Kq'cir!!!!`J!\r"m-i!"!!!rrrrrJ!!#"8!N!38CJ!!!!)!N!3(K!#3'J(BSJ#3(`3!N!9dCA0dAf4\rX4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K83eG*43#3#,,mAP'br&j4!!!!&!!!!!X\r!N!MLQ`iM!!!!`J!"m-m!"!!!rrrrrJ!!#"d!N!38C`!!!!)!N!3+K!#3'J(BSJ#\r3(`3!N!9dCA0dAf9bFQj[4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K83eG*43#3#,,\rmAP+fS0%D!!!"%J!!!Nd!N!KB4QJQ!!!!`J!"m0!!"!!!rrrrrJ!!##J!N!38D!!\r!!!)!N!32K!#3'J(BSJ#3(`3!N!9dCA0dAf9iBf9`G'P[ER0'9N08!*!(##!!!!%\r!N!J(!*!5!94&@&4$9dP&!*!)Y4!2C,D6T5)!!!1Q!!!EfJ#3#$Ib$TS!!!$#!!(\r`d3!%!!$rrrrq!!!+G3#3""4T!!!!!J#3"!b%!*!D!GLL!*!I"!#3"A4PFh4ICAK\rdBf&XE%C@3e3!N!F))!!!!3#3#!F!N")"9%9B9%0A588!N!Lbr&j5X[aH8J!!!"3\r!!!!,!*!)'GaIr3!!!-)!!I$5!!3!!2rrrri!!#C2!*!%&'S!!!!#!*!%#S3!N"S\r"f+)!N"m%!*!&G'9cG&pQBfjdE%C@3e3!N!F))!!!!3#3#!F!N")"9%9B9%0A588\r!N!LdkcLSY1XiU!!!!"3!!!!,!*!)hSbGM`!!!-)!!I$6!!3!!2rrrri!!#CD!*!\r%&'X!!!!#!*!%#S3!N"S"f+)!N"m%!*!&G'9cG&pQEh*V-8C@3e3!N!F))!!!!3#\r3#!F!N")"9%9B9%0A588!N!Lbr&j5X[aH8J!!!")!!!!+!*!)Ya[X"J!!!-)!!I$\r8!!3!!2rrrri!!#CP!*!%&'`!!!!#!*!%#B3!N"S"f+)!N"m%!*!&G'9cG&pRC'*\rY4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K83eG*43#3#,,mAP+br&j5!!!!%!!!!!J\r!N!KmAB"Q!!!!`J!"m08!"!!!rrrrrJ!!*Qm!N!38E3!!!!)!N!3(K!#3'J(BSJ#\r3(`3!N!9dCA0dAfGX4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K83eG*43#3#,,mAP+\rfhAY*!!!#!!!!"0`!N!M8iE1F!!!!`J!"m0B!"!!!rrrrrJ!!*RF!N!38EJ!!!!)\r!N!3-K!#3'J(BSJ#3(`3!N!9dCA0dAfGbB@eYBA*'9N08!*!(##!!!!%!N!J(!*!\r5!94&@&4$9dP&!*!)X[aH8l,mAP-!!!!5!!!!#3#3#)3hJa`!!!$#!!(`e`!%!!$\rrrrrq!!!V8`#3""4[!!!!!J#3"!L%!*!D!GLL!*!I"!#3"A4PFh4ICh*`4PC$9!#\r3"`JJ!!!"!*!)"`#3%J&849K83eG*43#3#,-hap#c0mI3!!!!%J!!!!S!N!Mdj%p\rA!!!!`J!"m0J!"!!!rrrrrJ!!+e`!N!38F!!!!!)!N!3*K!#3'J(BSJ#3(`3!N!9\rdCA0dAfGkDA"'9N08!*!(##!!!!%!N!J(!*!5!94&@&4$9dP&!*!)X[aH8l,mAP-\r!!!!@!!!!$3#3##2$Zdm!!!$#!!(`f3!%!!$rrrrq!!!VCJ#3""4a!!!!!J#3"!b\r%!*!D!GLL!*!I"!#3"A4PFh4ID@eKCf9[F%C@3e3!N!F))!!!!3#3#!F!N")"9%9\rB9%0A588!N!Lbr&j6X[aH8`!!!"B!!!!0!*!)Ypq@&`!!!-)!!I$D!!3!!2rrrri\r!!#Yc!*!%&()!!!!#!*!%$)3!N"S"f+)!N"m%!*!&G'9cG&pTE@GQD@aP4PC$9!#\r3"`JJ!!!"!*!)"`#3%J&849K83eG*43#3#,,mAP1eN8+M!!!!9!!!!'i!N!Kb[S&\r`!!!!`J!"m0X!"!!!rrrrrJ!!+i!!N!38F`!!!!)!N!3*K!#3'J(BSJ#3(`3!N!9\rdCA0dAfa[EQG'9N08!*!(##!!!!%!N!J(!*!5!94&@&4$9dP&!*!)X[aH8lB8VqN\r!!!"i!!!!U`#3#-3a)(-!!!$#!!(`h!!%!!$rrrrq!!!VlJ#3""4d!!!!!J#3"!Q\r%!*!D!GLL!*!I"!#3"A4PFh4IE@&dD%C@3e3!N!F))!!!!3#3#!F!N")"9%9B9%0\rA588!N!Lbr&j8X[aH9!!!!5`!!!)(!*!)cP#T)J!!!-)!!I$G!!3!!2rrrri!!#b\rC!*!%&(8!!!!#!*!%#)3!N"S"f+)!N"m%!*!&G'9cG&pYC$9'9N08!*!(##!!!!%\r!N!J(!*!5!94&@&4$9dP&!*!)X[aH6l,mANm!!!2J!!!*Y`#3#$4iUKN!!!$#!!(\r`hJ!%!!$rrrrq!!!ZS!#3""4f!!!!!J#3"!q%!*!D!GLL!*!I"!#3"A4PFh4I6@P\rYC9GbDA4PFNC@3e3!N!F))!!!!3#3#!F!N")"9%9B9%0A588!N!Le%!pPYT@rfJ!\r!!3i!!!)d!*!)'q`&93!!!-)!!I$I!!3!!2rrrri!!$KA!*!%&(F!!!!#!*!%#B3\r!N"S"f+)!N"m%!*!&G'9cG&pYE@&`4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K83eG\r*43#3#,,mAP5br&j8!!!!4J!!!'-!N!M6f-MN!!!!`J!"m1!!"!!!rrrrrJ!!1SX\r!N!38H!!!!!)!N!3)K!#3'J(BSJ#3(`3!N!9dCA0dAfjPGdC@3e3!N!F))!!!!3#\r3#!F!N")"9%9B9%0A588!N!Lbr&j8X[aH9!!!!"`!!!!8!*!)%[$iB!!!!-)!!I$\rK!!3!!2rrrri!!$VZ!*!%&(N!!!!#!*!%#)3!N"S"f+)!N"m%!*!&G'9cG&pZDA0\r'9N08!*!(##!!!!%!N!J(!*!5!94&@&4$9dP&!*!)X[aH9,,mAP3!!!!i!!!!-!#\r3#&apD$`!!!$#!!(`iJ!%!!$rrrrq!!!l!J#3""4k!!!!!J#3"!Z%!*!D!GLL!*!\rI"!#3"A4PFh4IER4`BA4S4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K83eG*43#3#,,\rmAP5br&j8!!!!EJ!!!)J!N!J9Xbr&!!!!`J!"m1-!"!!!rrrrrJ!!1c)!N!38H`!\r!!!)!N!3-K!#3'J(BSJ#3(`3!N!9dCA0dAfp`BfpNCA0'9N08!*!(##!!!!%!N!J\r(!*!5!94&@&4$9dP&!*!)X[aH9EAE0A%!!!##!!!!V3#3#$ZA8)3!!!$#!!(`j!!\r%!!$rrrrq!!!lZJ#3""4m!!!!!J#3"!q%!*!D!GLL!*!I"!#3"A4PFh4IEh"PFQ&\rdD@pZFdC@3e3!N!F))!!!!3#3#!F!N")"9%9B9%0A588!N!Lbr&j9X[aH93!!!,J\r!!!+M!*!)9r0+I`!!!-)!!I$P!!3!!2rrrri!!$aR!*!%&(d!!!!#!*!%$B3!N"S\r"f+)!N"m%!*!&G'9cG&p[F'9bBA4[FNC@3e3!N!F))!!!!3#3#!F!N")"9%9B9%0\rA588!N!Lc*@&@YHf'e3!!!&3!!!"i!*!)L%C4UJ!!!-)!!I$Q!!3!!2rrrri!!$m\r+!*!%&(i!!!!#!*!%#i3!N"S"f+)!N"m%!*!&G'9cG&p`D@0VE'9'9N08!*!(##!\r!!!%!N!J(!*!5!94&@&4$9dP&!*!)X[aH9ED6T5)!!!%3!!!%AJ#3#$E#f!d!!!$\r#!!(`j`!%!!$rrrrq!!!rJJ#3""4r!!!!!J#3"!L%!*!D!GLL!*!I"!#3"A4PFh4\rIF'YR4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K83eG*43#3#,-G@L'efc9a!!!!5J!\r!!)N!N!MXbaS4!!!!`J!"m1J!"!!!rrrrrJ!!3q!!N!38J!!!!!)!N!3,K!#3'J(\rBSJ#3(`3!N!9dCA0dAh"[F'9Z-NC@3e3!N!F))!!!!3#3#!F!N")"9%9B9%0A588\r!N!Lbr&j9X[aH93!!!,S!!!()!*!)S(Kk63!!!-)!!I$T!!3!!2rrrri!!%4T!*!\r%&)%!!!!#!*!%#)3!N"S"f+)!N"m%!*!&G'9cG&p`EhG'9N08!*!(##!!!!%!N!J\r(!*!5!94&@&4$9dP&!*!)X[aH9V,mAPB!!!"-!!!!H`#3#%dKd#m!!!$#!!(`kJ!\r%!!$rrrrq!!"'-3#3""5#!!!!!J#3"!L%!*!D!GLL!*!I"!#3"A4PFh4IF(GN4PC\r$9!#3"`JJ!!!"!*!)"`#3%J&849K83eG*43#3#,83$f@fPErD!!!#1J!!#NS!N!M\re'9NY!!!!`J!"m1X!"!!!rrrrrJ!!4U`!N!38J`!!!!)!N!3-K!#3'J(BSJ#3(`3\r!N!9dCA0dAh"jCAK`BA4'9N08!*!(##!!!!%!N!J(!*!5!94&@&4$9dP&!*!)X[a\rH9V@jTB!!!!!b!!!!+3#3#(CAKpJ!!!$#!!(`l!!%!!$rrrrq!!"3pJ#3""5%!!!\r!!J#3"!H%!*!D!GLL!*!I"!#3"A4PFh4IFQ9'9N08!*!(##!!!!%!N!J(!*!5!94\r&@&4$9dP&!*!)X[aH9V,mAPB!!!&U!!!'F`#3#2KQR!N!!!$#!!(`l3!%!!$rrrr\rq!!"4(`#3""5&!!!!!J#3"!U%!*!D!GLL!*!I"!#3"A4PFh4IFQ9RCAK'9N08!*!\r(##!!!!%!N!J(!*!5!94&@&4$9dP&!*!)X[aH9V,mAPB!!!!8!!!!$!#3#,Y8iK)\r!!!$#!!(`lJ!%!!$rrrrq!!"ANJ#3""5'!!!!!J#3"!Z%!*!D!GLL!*!I"!#3"A4\rPFh4IFQCM1$)b4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K83eG*43#3#,,mAPDbr&j\r@!!!!+!!!!"m!N!KG&0A#!!!!`J!"m1m!"!!!rrrrrJ!!9ji!N!38K`!!!!)!N!3\r,K!#3'J(BSJ#3(`3!N!9dCA0dAh*RBQPYCdC@3e3!N!F))!!!!3#3#!F!N")"9%9\rB9%0A588!N!Lbr&jAYT@rf`!!!'S!!!"f!*!)'VPF2`!!!-)!!I$`!!3!!2rrrri\r!!&Hp!*!%&)J!!!!#!*!%#S3!N"S"f+)!N"m%!*!&G'9cG&pbEh4[FNC@3e3!N!F\r))!!!!3#3#!F!N")"9%9B9%0A588!N!Lbr&jAYC&#S`!!!"3!!!!-!*!)kpehSJ!\r!!-)!!I$a!!3!!2rrrri!!&Jc!*!%&)N!!!!#!*!%#i3!N"S"f+)!N"m%!*!&G'9\rcG&pcC@aPBh4'9N08!*!(##!!!!%!N!J(!*!5!94&@&4$9dP&!*!)Xb9K9l-PB9F\r!!!!S!!!!*`#3#%N*+2X!!!$#!!(`mJ!%!!$rrrrq!!"B2`#3""5+!!!!!J#3"!L\r%!*!D!GLL!*!I"!#3"A4PFh4IFfKK4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K83eG\r*43#3#,,mAPHbr&jA!!!!,J!!!#8!N!L*h'a#!!!!`J!"m2-!"!!!rrrrrJ!!@'B\r!N!38L`!!!!)!N!3,K!#3'J(BSJ#3(`3!N!9dCA0dAh0TCfjKE%C@3e3!N!F))!!\r!!3#3#!F!N")"9%9B9%0A588!N!Lbr&jAX[aH9`!!!#3!!!!F!*!)51dc"`!!!-)\r!!I$d!!3!!2rrrri!!&L,!*!%&)`!!!!#!*!%#i3!N"S"f+)!N"m%!*!&G'9cG&p\rcEf0VCA4'9N08!*!(##!!!!%!N!J(!*!5!94&@&4$9dP&!*!)X[aH9l,mAPF!!!!\r@!!!!$J#3#%bbLr%!!!$#!!(`p3!%!!$rrrrq!!"BT`#3""50!!!!!J#3"!f%!*!\rD!GLL!*!I"!#3"A4PFh4IFh4bCR4TE@9'9N08!*!(##!!!!%!N!J(!*!5!94&@&4\r$9dP&!*!)XjD@Y,1@PV3!!!"`!!"1p!#3#1V$FA8!!!$#!!(`pJ!%!!$rrrrq!!"\rBY3#3""51!!!!!J#3"!Z%!*!D!GLL!*!I"!#3"A4PFh4IFh4bD@jR4PC$9!#3"`J\rJ!!!"!*!)"`#3%J&849K83eG*43#3#,,mAPLbr&jB!!!!EJ!!6[-!N!M'idQh!!!\r!`J!"m2F!"!!!rrrrrJ!!TkN!N!38M`!!!!)!N!3+K!#3'J(BSJ#3(`3!N!9dCA0\rdAh0dFQp`4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K83eG*43#3#,,mAPLbr&jB!!!\r!&!!!!!`!N!LXRYMJ!!!!`J!"m2J!"!!!rrrrrJ!!pT`!N!38N!!!!!!#!*!%#i3\r!N"S"f+)!N"m%!*!&G'9cG&pcG(*eBh4'9N08!*!(##!!!!%!N!J(!*!5!94&@&4\r$9dP&!*!)X[aH@,,mAPJ!!!!D!!!!%3#3#&fBU*!!!!!!`J!"m2N!"!!!rrrrrJ!\r!pUJ!N!38N3!!!!)!N!33K!#3'J(BSJ#3(`3!N!9dCA0dAh0eEQ&eC'P[C'9f4PC\r$9!#3"`JJ!!!"!*!)"`#3%J&849K83eG*43#3#,,mAPLbr&jB!!!!6!!!!')!N!M\rq,N22!!!!`J!"m2S!"!!!rrrrrJ!!pVN!N!38NJ!!!!)!N!3,K!#3'J(BSJ#3(`3\r!N!9dCA0dAh4SFQ9KC%C@3e3!N!F))!!!!3#3#!F!N")"9%9B9%0A588!N!Lbr&j\rBX[aH@!!!!")!!!!+!*!)SE38[!!!!-)!!I$l!!3!!2rrrri!!2FE!*!%&*-!!!!\r#!*!%#B3!N"S"f+)!N"m%!*!&G'9cG&pdD@eP4PC$9!#3"`JJ!!!"!*!)"`#3%J&\r849K83eG*43#3#,,mAPQbr&jC!!!!&!!!!!`!N!K(1FfH!!!!`J!"m2`!"!!!rrr\rrrJ!!pb8!N!38P!!!!!)!N!3,K!#3'J(BSJ#3(`3!N!9dCA0dAh4TE@PZCdC@3e3\r!N!F))!!!!3#3#!F!N")"9%9B9%0A588!N!Lbr&jCYT@rf`!!%V3!!$lB!*!)CZA\r#@3!!!-)!!I$p!!3!!2rrrri!!2Fa!*!%&*8!!!!#!*!%$B3!N"S"f+)!N"m%!*!\r&G'9cG&pdEfYPEQPkC8C@3e3!N!F))!!!!3#3#!F!N")"9%9B9%0A588!N!Lbr&j\rCX[aH@3!!!-`!!!&$!*!)X6[5M`!!!-)!!I$q!!3!!2rrrri!!6B*!*!%&*B!!!!\r#!*!%#S3!N"S"f+)!N"m%!*!&G'9cG&pdHA"PFdC@3e3!N!F))!!!!3#3#!F!N")\r"9%9B9%0A588!N!Le%!pPYEQPJ!!!!))!!!%5!*!)44Uj0!!!!-)!!I$r!!3!!2r\rrrri!!6G-!*!%&*F!!!!#!*!%$)3!N"S"f+)!N"m%!*!&G'9cG&peEQPMEf4P4PC\r$9!#3"`JJ!!!"!*!)"`#3%J&849K83eG*43#3#,83$f@f3,'D!!!!K!!!!*X!N!K\rk-RP*!!!!`J!"m3!!"!!!rrrrrJ!"1&i!N!38Q!!!!!)!N!33K!#3'J(BSJ#3(`3\r!N!9dCA0dAh9ZD@0[C'9NBA4K4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K83eG*43#\r3#,,mAPQbr&jC!!!!&!!!!!`!N!J&iP%4!!!!`J!"m3%!"!!!rrrrrJ!"12N!N!3\r8Q3!!!!)!N!3,K!#3'J(BSJ#3(`3!N!9dCA0dAh9ZF'&MDdC@3e3!N!F))!!!!3#\r3#!F!N")"9%9B9%0A588!N!Lc*@&AXb9K9`!!!"B!!!!1!*!)0[5!0`!!!-)!!I%\r#!!3!!2rrrri!!6N&!*!%&*S!!!!#!*!%$B3!N"S"f+)!N"m%!*!&G'9cG&peFf9\rbC'PMG%C@3e3!N!F))!!!!3#3#!F!N")"9%9B9%0A588!N!Lc*@&AXb9K9`!!!"B\r!!!!1!*!)'U*SKJ!!!-)!!I%$!!3!!2rrrri!!6N6!*!%&*X!!!!#!*!%$B3!N"S\r"f+)!N"m%!*!&G'9cG&peFf9bE'PcG%C@3e3!N!F))!!!!3#3#!F!N")"9%9B9%0\rA588!N!Le%!pPYC&#T!!!!"J!!!!3!*!)`$KacJ!!!-)!!I%%!!3!!2rrrri!!6N\rK!*!%&*`!!!!#!*!%$i3!N"S"f+)!N"m%!*!&G'9cG&peFf9bFh4bD@jR4PC$9!#\r3"`JJ!!!"!*!)"`#3%J&849K83eG*43#3#,83$f@eUl)f!!!!B!!!!(X!N!Lfl@2\r2!!!!`J!"m38!"!!!rrrrrJ!"16%!N!38R3!!!!)!N!3,K!#3'J(BSJ#3(`3!N!9\rdCA0dAhGTER*PCdC@3e3!N!F))!!!!3#3#!F!N")"9%9B9%0A588!N!Le*U8#Y5d\rH[`!!!%3!!!"(!*!),P,Lh!!!!-)!!I%'!!3!!2rrrri!!6QX!*!%&*i!!!!#!*!\r%$B3!N"S"f+)!N"m%!*!&G'9cG&phD@jcEh9ZC%C@3e3!N!F))!!!!3#3#!F!N")\r"9%9B9%0A588!N!Lbr&jCX[aH@3!!!"3!!!!-!*!)DBlH[J!!!-)!!I%(!!3!!2r\rrrri!!6Rc!*!%&*m!!!!#!*!%#i3!N"S"f+)!N"m%!*!&G'9cG&piE@aXD@*'9N0\r8!*!(##!!!!%!N!J(!*!5!94&@&4$9dP&!*!)Y5DP!V8QT3)!!!!@!!!!$3#3#+p\rhYZm!!!$#!!(a#!!%!!$rrrrq!!%jr`#3""5J!!!!!J#3"!b%!*!D!GLL!*!I"!#\r3"A4PFh4IHQP`CQPXC8C@3e3!N!F))!!!!3#3#!F!N")"9%9B9%0A588!N!Lbr&j\rDYVUMk`!!!+S!!!&M!*!)q[VcR!!!!-)!!I%*!!3!!2rrrri!!6S-!*!%&+%!!!!\r#!*!%#B3!N"S"f+)!N"m%!*!&G'9cG&pkE'PL4PC$9!#3"`JJ!!!"!*!)"`#3%J&\r849K83eG*43#3#,@!+CkeJ#QH!!!!3!!!!%!!N!K%rGYB!!1+p3!$L[J!"!!!rrr\rrrJ!"1fm!N!3C)J!!!!)!N!3,K!#3'J(BSJ#3(`3!N!9dCA0dAf&dCAKTG%C@3e3\r!N!F))!!!!3#3#!F!N")"9%9B9%0A588!N!Lebdp'YFY24J!!!*J!!!*T!*!)RZ)\rm4J!$L[8!!iVk!!3!!2rrrri!!6Z[!*!%'5%!!!!#!*!%$S3!N"S"f+)!N"m%!*!\r&G'9cG&pKG@GKFh0TCfj'9N08!*!(##!!!!%!N!J(!*!5!94&@&4$9dP&!*!)YE#\rTKlAYKY3!!!%m!!!#"3#3#*!!**kC!!1+p3!$L`!!"!!!rrrrrJ!"2KJ!N!3C)!!\r!!!)!N!3)K!#3'J(BSJ#3(`3!N!9dCA0dAf0RD8C@3e3!N!F))!!!!3#3#!F!N")\r"9%9B9%0A588!N!Leb+fkYFLYZJ!!!@J!!!I0!*!)dXPjH!!$L[8!!iX#!!3!!2r\rrrri!!8!G!*!%'4m!!!!#!*!%#S3!N"S"f+)!N"m%!*!&G'9cG&pME'&cFdC@3e3\r!N!F))!!!!3#3#!F!N")"9%9B9%0A588!N!LeT4ffYVUMk`!!!$J!!!"!!*!)mi3\r@aJ!$L[8!!iX%!!3!!2rrrri!!8IU!*!%'4i!!!!#!*!%$)3!N"S"f+)!N"m%!*!\r&G'9cG&pMEfe`D@aP4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K83eG*43#3#,A)VEU\rfZU2V!!!",J!!!pN!N!Lp9A2,!!1+p3!$L`B!"!!!rrrrrJ!"5#S!N!3C(3!!!!)\r!N!3,K!#3'J(BSJ#3(`3!N!9dCA0dAf0[EfYTC8C@3e3!N!F))!!!!3#3#!F!N")\r"9%9B9%0A588!N!Lebdp'YFY24J!!!$S!!!!a!*!)%+dD`!!$L[8!!iX,!!3!!2r\rrrri!!8`$!*!%'4`!!!!#!*!%$)3!N"S"f+)!N"m%!*!&G'9cG&pNEh0`BA4S4PC\r$9!#3"`JJ!!!"!*!)"`#3%J&849K83eG*43#3#,AE0A'efc9a!!!!%J!!!!S!N!L\rk9VTT!!1+p3!$La!!"!!!rrrrrJ!"6$3!N!3C'`!!!!)!N!3*K!#3'J(BSJ#3(`3\r!N!9dCA0dAfCTE'9'9N08!*!(##!!!!%!N!J(!*!5!94&@&4$9dP&!*!)YB*r`,@\r#Im!!!!!8!!!!$!#3#'C!-Xm!!iVe!!1,%J!%!!$rrrrq!!&-2J#3""ND!!!!!J#\r3"!Z%!*!D!GLL!*!I"!#3"A4PFh4ICQpbE@&d4PC$9!#3"`JJ!!!"!*!)"`#3%J&\r849K83eG*43#3#,@#Im#eJTGG!!!!%!!!!!J!N!MlaCbT!!1+p3!$La-!"!!!rrr\rrrJ!"6%S!N!3C'3!!!!)!N!3(K!#3'J(BSJ#3(`3!N!9dCA0dAfGM4PC$9!#3"`J\rJ!!!"!*!)"`#3%J&849K83eG*43#3#,A)VEUeb+fk!!!!&!!!!!`!N!KC!Hja!!1\r+p3!$La8!"!!!rrrrrJ!"6&)!N!3C'!!!!!)!N!3,K!#3'J(BSJ#3(`3!N!9dCA0\rdAfGPG'p`G%C@3e3!N!F))!!!!3#3#!F!N")"9%9B9%0A588!N!Lefc9aYGXeF3!\r!!-S!!!-F!*!)KZmSY3!$L[8!!iX@!!3!!2rrrri!!8aH!*!%'4F!!!!#!*!%$)3\r!N"S"f+)!N"m%!*!&G'9cG&pRCA4dCAKd4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K\r83eG*43#3#,@#Im'eJRr"!!!!%J!!!!S!N!KL"VER!!1+p3!$LaX!"!!!rrrrrJ!\r"6hS!N!3C&J!!!!)!N!3*K!#3'J(BSJ#3(`3!N!9dCA0dAfKKFfK'9N08!*!(##!\r!!!%!N!J(!*!5!94&@&4$9dP&!*!)YFLYZVA)VES!!!!B!!!!$`#3#*H02NB!!iV\re!!1,(J!%!!$rrrrq!!&2K!#3""N9!!!!!J#3"!k%!*!D!GLL!*!I"!#3"A4PFh4\rIE'&bCf9QD@aP4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K83eG*43#3#,9a[dZfMRV\r'!!!!R!!!!4X!N!JBmbN&!!1+p3!$Lam!"!!!rrrrrJ!"6j-!N!3C&!!!!!)!N!3\r5K!#3'J(BSJ#3(`3!N!9dCA0dAfaTER9iBA9ND@pNCAC'9N08!*!(##!!!!%!N!J\r(!*!5!94&@&4$9dP&!*!)YB!TRlA,6dB!!!!F!!!!%`#3#0pkea)!!iVe!!1,)3!\r%!!$rrrrq!!&3VJ#3""N6!!!!!J#3"!b%!*!D!GLL!*!I"!#3"A4PFh4IE'pZCf9\riF%C@3e3!N!F))!!!!3#3#!F!N")"9%9B9%0A588!N!LeK$a"YRDcIJ!!!a!!!"P\rp!*!)T23m*`!$L[8!!iXP!!3!!2rrrri!!9$"!*!%'4)!!!!#!*!%$)3!N"S"f+)\r!N"m%!*!&G'9cG&pYD@jTC'pY4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K83eG*43#\r3#,@$SMHeJk)h!!!!(!!!!"-!N!J*0,@0!!1+p3!$LbX!"!!!rrrrrJ!"DMi!N!3\rC%3!!!!)!N!3-K!#3'J(BSJ#3(`3!N!9dCA0dAfp`C@j`G(P'9N08!*!(##!!!!%\r!N!J(!*!5!94&@&4$9dP&!*!)YFLYZVD1HXB!!!(U!!!)VJ#3##&9@rF!!iVe!!1\r,,J!%!!$rrrrq!!&U83#3""N3!!!!!J#3"!Z%!*!D!GLL!*!I"!#3"A4PFh4IF'&\rbFf9b4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K83eG*43#3#,A-8eHefc9a!!!!6!!\r!!5J!N!K2iZPG!!1+p3!$Lc%!"!!!rrrrrJ!"F[m!N!3C$`!!!!)!N!3*K!#3'J(\rBSJ#3(`3!N!9dCA0dAh"[E'a'9N08!*!(##!!!!%!N!J(!*!5!94&@&4$9dP&!*!\r)YC+VkE@5UqN!!!!m!!!!-`#3#!65Y!d!!iVe!!1,-`!%!!$rrrrq!!&d*`#3""N\r1!!!!!J#3"!k%!*!D!GLL!*!I"!#3"A4PFh4IF'pcDAK`BA4S4PC$9!#3"`JJ!!!\r"!*!)"`#3%J&849K83eG*43#3#,@$SMHeJk)h!!!!3!!!!$i!N!K+"F+b!!1+p3!\r$Lc8!"!!!rrrrrJ!"G&S!N!3C$3!!!!)!N!3)K!#3'J(BSJ#3(`3!N!9dCA0dAh"\rdH8C@3e3!N!F))!!!!3#3#!F!N")"9%9B9%0A588!N!LeJRr"YZ'B2`!!!")!!!!\r*!*!)E2QP`!!$L[8!!iY"!!3!!2rrrri!!A5B!*!%'3`!!!!#!*!%#)3!N"S"f+)\r!N"m%!*!&G'9cG&pcFQ9'9N08!*!(##!!!!%!N!J(!*!5!94&@&4$9dP&!*!)YB*\rr`ED1HXB!!!#m!!!"G!#3#(e+@4N!!iVe!!1,6!!%!!$rrrrq!!&dS3#3""N,!!!\r!!J#3"!L%!*!D!GLL!*!I"!#3"A4PFh4IG@0Z4PC$9!#3"`JJ!!!"!*!)"`#3%J&\r849K83eG*43#3#,AE0A'efc9a!!!!&!!!!!`!N!Mkf3m`!!1+p3!$Le!!"!!!rrr\rrrJ!"GK8!N!3C#J!!!!)!N!3,K!#3'J(BSJ#3(`3!N!9dCA0dAh9bE'aTBNC@3e3\r!N!F))!!!!3#3#!F!N")"9%9B9%0A588!N!LeVk9cYSjkaJ!!!3S!!!6p!*!)S1P\rPCJ!$L[8!!iY4!!3!!2rrrri!!ABK!*!%'3N!!!!#!*!%$B3!N"S"f+)!N"m%!*!\r&G'9cG&peFQa`BA*cC8C@3e3!N!F))!!!!3#3#!F!N")"9%9B9%0A588!N!LelBE\r8YUpUaJ!!!+)!!!&i!*!),K@VF!!$d8)!""bI!!3!!2rrrri!N!JCZ3!!!!)!N!3\r0K!#3'J(BSJ#3(`3!N!9dCA0dAe0dFQPZCdP24PC$9!#3"`JJ!!!"!*!)"`#3%J&\r849K83eG*43#3#,B*261f`FLF!!!!F!!!!-)!N!J($'Vj!!3jX!!%1EX!"!!!rrr\rrrJ!!!AJ!N!3Cp`!!!!)!N!31K!#3'J(BSJ#3(`3!N!9dCA0dAf0QCh"KFR0PFNC\r@3e3!N!F))!!!!3#3#!F!N")"9%9B9%0A588!N!Lf#6dcYJNp-`!!!"3!!!!-!*!\r)%fPPl`!%1E!!"$RD!!3!!2rrrri!!!)k!*!%'IB!!!!#!*!%#i3!N"S"f+)!N"m\r%!*!&G'9cG&pTEA"[FR4'9N08!*!(##!!!!%!N!J(!*!5!94&@&4$9dP&!*!)YJN\rp-lB*26-!!!"#!!!!43#3#1k#e"F!"$Q`!!3ji3!%!!$rrrrq!!!#4J#3""Re!!!\r!!J#3"!k%!*!D!GLL!*!I"!#3"A4PFh4IE@PYCA4[Efac4PC$9!#3"`JJ!!!"!*!\r)"`#3%J&849K83eG*43#3#,B*261f)P&B!!!!lJ!!!lF!N!Lb3Vkk!!3jX!!%1IX\r!"!!!rrrrrJ!!!SX!N!3Cp!!!!!)!N!3)K!#3'J(BSJ#3(`3!N!9dCA0dAh0KH%C\r@3e3!N!F))!!!!3#3#!F!N")"9%9B9%0A588!N!Lf#6dcYJNp-`!!!")!!!!+!*!\r)-p-+%J!%1E!!"$S9!!3!!2rrrri!!!C#!*!%'I-!!!!#!*!%#B3!N"S"f+)!N"m\r%!*!&G'9cG&phBACP4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K83eG*43#3#,B8VqQ\rf&+rT!!!!G!!!!0)!N!J5H-1(!!5++`!%LMi!"!!!rrrrrJ!!"N`!N!3D#3!!!!)\r!N!30K!#3'J(BSJ#3(`3!N!9dCA0dAf0[F(PIFQ9R4PC$9!#3"`JJ!!!"!*!)"`#\r3%J&849K83eG*43#3#,D6T5'fNk8K!!!!&J!!!!d!N!KM-[DS!!)c%3!#-a)!"!!\r!rrrrrJ!!"ai!N!3E0`!!!!)!N!3-K!#3'J(BSJ#3(`3!N!9dCA0dAepIB@aXAep\r'9N08!*!(##!!!!%!N!J(!*!5!94&@&4$9dP&!*!)YSjkaED1HX8!!!"m!!!"&3#\r3#-DbAb8!!M-4!!)c'!!%!!$rrrrq!!!(+`#3""Xf!!!!!J#3"!b%!*!D!GLL!*!\rI"!#3"A4PFh4IBQ&cG'P[ENC@3e3!N!F))!!!!3#3#!F!N")"9%9B9%0A588!N!L\rfGV0pYRDcI3!!!"3!!!!-!*!)[`BJm!!#-a%!!M-E!!3!!2rrrri!!!K!!*!%'c8\r!!!!#!*!%#i3!N"S"f+)!N"m%!*!&G'9cG&pLDA0PBh4'9N08!*!(##!!!!%!N!J\r(!*!5!94&@&4$9dP&!*!)YSjkaED1HX8!!!!8!!!!#`#3#*H+0-B!!M-4!!)c(3!\r%!!$rrrrq!!!)6!#3""Xd!!!!!J#3"!U%!*!D!GLL!*!I"!#3"A4PFh4IBR9QD@p\r'9N08!*!(##!!!!%!N!J(!*!5!94&@&4$9dP&!*!)YU$4'VDJd4S!!!!5!!!!#J#\r3#!k,#1i!!M-4!!)c(`!%!!$rrrrq!!!)9`#3""Xc!!!!!J#3"!Q%!*!D!GLL!*!\rI"!#3"A4PFh4IBf&`D8C@3e3!N!F))!!!!3#3#!F!N")"9%9B9%0A588!N!LfMRV\r&YSjka3!!!(i!!!&j!*!)X3rDj!!#-a%!!M-M!!3!!2rrrri!!!KK!*!%'c)!!!!\r#!*!%%B3!N"S"f+)!N"m%!*!&G'9cG&pMD'&bE@&`BfpNC@0'9N08!*!(##!!!!%\r!N!J(!*!5!94&@&4$9dP&!*!)YSjkaED1HX8!!![D!!#+RJ#3#1r(3IN!!M-4!!)\rc*`!%!!$rrrrq!*!)'c%!!!!#!*!%$B3!N"S"f+)!N"m%!*!&G'9cG&pMEf9bBfP\r[ENC@3e3!N!F))!!!!3#3#!F!N")"9%9B9%0A588!N!LfMRV&YSjka3!!!8`!!!A\r"!*!)6V5Fi!!#-a%!!M-S!!3!!2rrrri!N!JE-!!!!!)!N!3-K!#3'J(BSJ#3(`3\r!N!9dCA0dAf0[EA"KFQ9'9N08!*!(##!!!!%!N!J(!*!5!94&@&4$9dP&!*!)YUp\rUaVEI["8!!!4B!!!Eq!#3#(5&S!d!!M-4!!)c-!!%!!$rrrrq!!!&`3#3""X[!!!\r!!J#3"!b%!*!D!GLL!*!I"!#3"A4PFh4IC'PQCQaTBNC@3e3!N!F))!!!!3#3#!F\r!N")"9%9B9%0A588!N!LfVfV(YYqm&3!!"JJ!!"SZ!*!)55e)%J!#-a%!!M-b!!3\r!!2rrrri!!#'j!*!%'bi!!!!#!*!%$)3!N"S"f+)!N"m%!*!&G'9cG&pNEf0dCA0\rd4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K83eG*43#3#,D1HX@fMRV&!!!!&J!!!!d\r!N!JFhDX@!!)c%3!#-c3!"!!!rrrrrJ!!1qF!N!3E,3!!!!)!N!3-K!#3'J(BSJ#\r3(`3!N!9dCA0dAf4eE@*NBQe'9N08!*!(##!!!!%!N!J(!*!5!94&@&4$9dP&!*!\r)YSjkaVD1HXB!!!!B!!!!$`#3#)FkMji!!M-4!!)c2!!%!!$rrrrq!!!lp!#3""X\rX!!!!!J#3"!k%!*!D!GLL!*!I"!#3"A4PFh4ICR9ZBf&dG(*c4PC$9!#3"`JJ!!!\r"!*!)"`#3%J&849K83eG*43#3#,BL89Lf)P&B!!!!1J!!!$F!N!K(ibVQ!!)c%3!\r#-dd!"!!!rrrrrJ!!2!-!N!3E+`!!!!)!N!3-K!#3'J(BSJ#3(`3!N!9dCA0dAfe\rKD@aLEhK'9N08!*!(##!!!!%!N!J(!*!5!94&@&4$9dP&!*!)YSjkaVD1HXB!!!'\r1!!!EN3#3#"XRrQd!!M-4!!)cD3!%!!$rrrrq!!!m1J#3""XU!!!!!J#3"!b%!*!\rD!GLL!*!I"!#3"A4PFh4IFQPMD'0YF%C@3e3!N!F))!!!!3#3#!F!N")"9%9B9%0\rA588!N!LfQ,,iYYqm&3!!!4!!!!("!*!)Sk*cb!!#-a%!!M0X!!3!!2rrrri!!&I\r,!*!%'bN!!!!#!*!%#S3!N"S"f+)!N"m%!*!&G'9cG&pcBfp`C8C@3e3!N!F))!!\r!!3#3#!F!N")"9%9B9%0A588!N!LfMRV'YSjkaJ!!!"3!!!!-!*!)JMhf0J!#-a%\r!!M0i!!3!!2rrrri!!&Q-!*!%'bJ!!!!#!*!%#i3!N"S"f+)!N"m%!*!&G'9cG&p\rcG@jNFRP'9N08!*!(##!!!!%!N!J(!*!5!94&@&4$9dP&!*!)YU$4'lDJd4X!!!!\r@!!!!$J#3#(Em*&-!!M-4!!)cH3!%!!$rrrrq!!"CQ!#3""XR!!!!!J#3"!f%!*!\rD!GLL!*!I"!#3"A4PFh4IFhPYG'&LE'9'9N08!*!(##!!!!%!N!J(!*!5!94&@&4\r$9dP&!*!)YSjkaVD1HXB!!!"'!!!!4`#3#$ST(SF!!M-4!!)cH`!%!!$rrrrq!!"\rCTJ#3""XQ!!!!!J#3""@%!*!D!GLL!*!I"!#3"A4PFh4IG'KbC@&NC@4dC@e`CQP\rXC8C@3e3!N!F))!!!!3#3#!F!N")"9%9B9%0A588!N!LfS0%EYZ'B2`!!!"B!!!!\r0!*!)B#aN&`!#-a%!!M1+!!3!!2rrrri!!&RY!*!%'b8!!!!#!*!%$)3!N"S"f+)\r!N"m%!*!&G'9cG&phC@&VFQ9Q4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K83eG*43#\r3#,D1HXDfMRV(!!!!@!!!!(m!N!LUj@AA!!)c%3!#-ii!"!!!rrrrrJ!!@IS!N!3\rE*!!!!!)!N!31K!#3'J(BSJ#3(`3!N!9dCA0dAhKbC@&NE'PZC8C@3e3!N!F))!!\r!!3#3#!F!N")"9%9B9%0A588!N!Lf`FLFYX()R!!!!"J!!!!3!*!)Y$N4d!!(+(F\r!"bKj!!3!!2rrrri!!&Tj!*!%(#`!!!!#!*!%$i3!N"S"f+)!N"m%!*!&G'9cG&p\rIAfCeG(9bC9pI4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K83eG*43#3#,E"b*bf`FL\rF!!!!&J!!!!d!N!MMJh@`!!FSG`!(+,!!"!!!rrrrrJ!!@SN!N!3F+`!!!!)!N!3\r-K!#3'J(BSJ#3(`3!N!9dCA0dAfPZFh"PBh4'9N08!*!(##!!!!%!N!J(!*!5!94\r&@&4$9dP&!*!)YXA5",E&dJ3!!!!m!!!!P`#3#$,P3SF!"hLa!!GihJ!%!!$rrrr\rq!!"DPJ#3""ab!!!!!J#3"!Z%!*!D!GLL!*!I"!#3"A4PFh4ICR9dGA*P4PC$9!#\r3"`JJ!!!"!*!)"`#3%J&849K83eG*43#3#,E&dJ5faG)%!!!!2!!!!(`!N!K)c%S\r'!!GiX3!(H13!"!!!rrrrrJ!!@bd!N!3FF3!!!!)!N!3,K!#3'J(BSJ#3(`3!N!9\rdCA0dAfGXEf*KE%C@3e3!N!F))!!!!3#3#!F!N")"9%9B9%0A588!N!LfhAY*YYe\rl53!!!"B!!!!0!*!)10Kp%`!)2AF!#$f4!!3!!2rrrri!!&ZT!*!%()%!!!!#!*!\r%$)3!N"S"f+)!N"m%!*!&G'9cG&pMEfe`E'9i4PC$9!#3"`JJ!!!"!*!)"`#3%J&\r849K83eG*43#3#,EI["@fhl`9!!!!&J!!!!d!N!K3,GGL!!JpG`!)2D)!"!!!rrr\rrrJ!!@lB!N!3FJ!!!!!)!N!3-K!#3'J(BSJ#3(`3!N!9dCA0dAfCZE@&dBfK'9N0\r8!*!(##!!!!%!N!J(!*!5!94&@&4$9dP&!*!)YYqm&EEI["8!!!!B!!!!$`#3#*8\rTGkN!#$eh!!Jpk`!%!!$rrrrq!!"E``#3""ar!!!!!J#3"!k%!*!D!GLL!*!I"!#\r3"A4PFh4IG(*KBf9LB@0V4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K88(PdD!#3#,,\rmAM'f)P&3!!!)2!!!'Sd!N!JhD6aV!!!!`3!"m'F!!`!!rrrrrJ!!@p)!N!38SJ!\r!!!)!N!3+K!#3'J(ASJ#3(`3!N!9`HA0dEfjP,R"j4PC$9!#3"`JJ!!!"!*!)"`#\r3%J&849K88(PdD!#3#,,mAM'fiCJm!!!9kJ!!Gr3!N!KUij%S!!!!`3!"m'J!!`!\r!rrrrrJ!!GPm!N!38S`!!!!)!N!3,K!#3'J(ASJ#3(`3!N!9bC9pdCA0dFbj`H8C\r@3e3!N!F))!!!!3#3#!F!N")"9%9B9&"jG'J!N!Lbr&iaYL*48!!!#+!!!#0j!*!\r)3NQ5X`!!!-%!!I"T!!-!!2rrrri!!1j6!*!%&+3!!!!#!*!%$S3!N"S"ek)!N"m\r%!*!&FQ9RCAKIG'9cG(-ZF(P'9N08!*!(##!!!!%!N!J(!*!5!94&@&43HA4S!*!\r)X[aH-VE&dJ)!!!k#!!!VK3#3#,eHfTB!!!$"!!(`DJ!$!!$rrrrq!!%4c!#3""5\rP!!!!!J#3"!Z%!*!D!GHL!*!I"!#3"A*PCh*dCA0d,R"j4PC$9!#3"`JJ!!!"!*!\r)"`#3%J&849K88(PdD!#3#,,mAM+br&ib!!!"&J!!!JB!N!MaV,QN!!!!`3!"m'X\r!!`!!rrrrrJ!"29%!N!38TJ!!!!)!N!3*K!#3'J(ASJ#3(`3!N!9bCA"PFQBZF(P\r'9N08!*!(##!!!!%!N!J(!*!5!94&@&43HA4S!*!)X[aH-VD[DVm!!!9!!!!0l3#\r3#2-fmC3!!!$"!!(`E!!$!!$rrrrq!!%r9`#3""5R!!!!!J#3"!Z%!*!D!GHL!*!\rI"!#3"A0[FR4`CA*Q,R"j4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K88(PdD!#3#,,\rmAM+fMRUr!!!"FJ!!!US!N!JQ%k-3!!!!`3!"m'd!!`!!rrrrrJ!"683!N!38U!!\r!!!)!N!3+K!#3'J(ASJ#3(`3!N!9dCA0dAf&X,R"j4PC$9!#3"`JJ!!!"!*!)"`#\r3%J&849K88(PdD!#3#,,mAM+fMRUr!!!&,!!!'J%!N!Jr2bGa!!!!`3!"m'i!!`!\r!rrrrrJ!"6qi!N!38U3!!!!)!N!30K!#3'J(ASJ#3(`3!N!9dCA0dAf&bFQ&j,R"\rj4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K88(PdD!#3#,,mAM1fMRUr!!!&'J!!'EX\r!N!KYYRN*!!!!`3!"m'm!!`!!rrrrrJ#3#"5U!!!!!J#3"!q%!*!D!GHL!*!I"!#\r3"A4PFh4IBA9ND@p[F#j`H8C@3e3!N!F))!!!!3#3#!F!N")"9%9B9&"jG'J!N!L\rbr&icYT1P(J!!$jJ!!%B!N!NrGkJ3!!!!`3!"m(!!!`!!rrrrrJ!!'EX!N!38U`!\r!!!)!N!3+K!#3'J(ASJ#3(`3!N!9dCA0dAf)a,R"j4PC$9!#3"`JJ!!!"!*!)"`#\r3%J&849K88(PdD!#3#,,mAM1fMRUr!!!+'!!!+YX!N!ME`I&U!!!!`3!"m(%!!`!\r!rrrrrJ!!AlX!N!38V!!!!!)!N!3+K!#3'J(ASJ#3(`3!N!9dCA0dAf)b,R"j4PC\r$9!#3"`JJ!!!"!*!)"`#3%J&849K88(PdD!#3#,,mAM1fMRUr!!!%9J!!#[-!N!J\rT3eIk!!!!`3!"m()!!`!!rrrrrJ!!LTB!N!38V3!!!!)!N!33K!#3'J(ASJ#3(`3\r!N!9dCA0dAf*TEQ&cBfPT,R"j4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K88(PdD!#\r3#,4$BlHfMRUr!!!"RJ!!!mJ!!!"`!!!"QJMeK5J!!!$"!!(`F`!$!!$rrrrq!!#\r9L3!!Q9%8VJ!!!!)!N!31K!#3'J(ASJ#3(`3!N!9dCA0dAf*TEQKPH#j`H8C@3e3\r!N!F))!!!!3#3#!F!N")"9%9B9&"jG'J!N!Lbr&icYYqm&!!!!X)!!!E4!*!)TVK\r#i3!!!-%!!I"d!!-!!2rrrri!!*VV!*!%&+m!!!!#!*!%$B3!N"S"ek)!N"m%!*!\r&G'9cG&pLFf4NBLj`H8C@3e3!N!F))!!!!3#3#!F!N")"9%9B9&"jG'J!N!Lbr&i\rdX[aH0!!!!(B!!!$2!*!)(1"4lJ!!!-%!!I"e!!-!!2rrrri!!+'m!*!%&,!!!!!\r#!*!%$i3!N"S"ek)!N"m%!*!&G'9cG&pLG@PXG'PZ,R"j4PC$9!#3"`JJ!!!"!*!\r)"`#3%J&849K88(PdD!#3#,,mAM5fMRUr!!!"iJ!!!eJ!N!LUc)[e!!!!`3!"m(B\r!!`!!rrrrrJ!!SSX!N!38X3!!!!)!N!3+K!#3'J(ASJ#3(`3!N!9dCA0dAf0N,R"\rj4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K88(PdD!#3#,,mAM5fMRV!!!!'"J!!$e8\r!N!JQNjGa!!!!`3!"m(F!!`!!rrrrrJ!!TH-!N!38XJ!!!!)!N!3+K!#3'J(ASJ#\r3(`3!N!9dCA0dAf0X,R"j4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K88(PdD!#3#,,\rmAM5fMRV!!!!"0J!!!bJ!N!K!FGch!!!!`3!"m(J!!`!!rrrrrJ!!Y6J!N!38X`!\r!!!)!N!30K!#3'J(ASJ#3(`3!N!9dCA0dAf0YBA4S,R"j4PC$9!#3"`JJ!!!"!*!\r)"`#3%J&849K88(PdD!#3#,6V1+Hf)P&4!!!$8!!!$4d!N!L%&N@`!!!!`3!"m(N\r!!`!!rrrrrJ!!Z'!!N!38Y!!!!!)!N!33K!#3'J(ASJ#3(`3!N!9dCA0dAf0[ER4\rKD@jc,R"j4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K88(PdD!#3#,-PB9+fNk8I!!!\r!0!!!!%!!N!Mk!REI!!!!`3!"m(S!!`!!rrrrrJ!!aAd!N!38Y3!!!!)!N!32K!#\r3'J(ASJ#3(`3!N!9dCA0dAf0`D@0VE'8ZF(P'9N08!*!(##!!!!%!N!J(!*!5!94\r&@&43HA4S!*!)X[aH0,D1HX!!!!#L!!!!hJ#3#)(ccim!!!$"!!(`H`!$!!$rrrr\rq!!$&[3#3""5f!!!!!J#3"!f%!*!D!GHL!*!I"!#3"A4PFh4IBh*jF(3ZF(P'9N0\r8!*!(##!!!!%!N!J(!*!5!94&@&43HA4S!*!)X[aH0,EI["3!!!'@!!!$I`#3#"J\raPdB!!!$"!!(`I!!$!!$rrrrq!!$'Q`#3""5h!!!!!J#3"!Z%!*!D!GHL!*!I"!#\r3"A4PFh4IC'*Y,R"j4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K88(PdD!#3#,,mAM5\rfaG)$!!!"CJ!!!Z3!N!K6e-d4!!!!`3!"m(d!!`!!rrrrrJ!!bKS!N!38Z!!!!!)\r!N!3+K!#3'J(ASJ#3(`3!N!9dCA0dAf4X,R"j4PC$9!#3"`JJ!!!"!*!)"`#3%J&\r849K88(PdD!#3#,,mAM@fMRV!!!!$PJ!!#&)!N!LMJ)T%!!!!`3!"m(i!!`!!rrr\rrrJ!!c2i!N!38Z3!!!!)!N!30K!#3'J(ASJ#3(`3!N!9dCA0dAf9bFQj[,R"j4PC\r$9!#3"`JJ!!!"!*!)"`#3%J&849K88(PdD!#3#,,mAM@fS0%A!!!%1!!!#U!!N!L\r#@TV2!!!!`3!"m(m!!`!!rrrrrJ!!e9!!N!38ZJ!!!!)!N!35K!#3'J(ASJ#3(`3\r!N!9dCA0dAf9iBf9`G'P[ER-ZF(P'9N08!*!(##!!!!%!N!J(!*!5!94&@&43HA4\rS!*!)Y4!2BlD[DX)!!!AS!!!5L`#3#*(lL2i!!!$"!!(`J!!$!!$rrrrq!!$Im!#\r3""5l!!!!!J#3"!q%!*!D!GHL!*!I"!#3"A4PFh4ICAKdBf&XE#j`H8C@3e3!N!F\r))!!!!3#3#!F!N")"9%9B9&"jG'J!N!Lbr&ieYSjk`3!!!G`!!!3J!*!)k!m#j!!\r!!-%!!I#"!!-!!2rrrri!!2*l!*!%&,`!!!!#!*!%$B3!N"S"ek)!N"m%!*!&G'9\rcG&pQBfjdE#j`H8C@3e3!N!F))!!!!3#3#!F!N")"9%9B9&"jG'J!N!Le14((YU$\r4'!!!![B!!!C+!*!)4cSEp3!!!-%!!I##!!-!!2rrrri!!2DE!*!%&,d!!!!#!*!\r%$B3!N"S"ek)!N"m%!*!&G'9cG&pQEh*V-5j`H8C@3e3!N!F))!!!!3#3#!F!N")\r"9%9B9&"jG'J!N!LejqMSYYqm&!!!!Bi!!!06!*!)jeI#L`!!!-%!!I#$!!-!!2r\rrrri!!2cP!*!%&,i!!!!#!*!%$)3!N"S"ek)!N"m%!*!&G'9cG&pRC'*Y,R"j4PC\r$9!#3"`JJ!!!"!*!)"`#3%J&849K88(PdD!#3#,,mAM@fMRV"!!!*'!!!'I!!N!K\rah5,X!!!!`3!"m)3!!`!!rrrrrJ!"!$J!N!38[`!!!!)!N!3+K!#3'J(ASJ#3(`3\r!N!9dCA0dAfGX,R"j4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K88(PdD!#3#,,mAM@\rfhAY*!!!69!!!1kN!N!J@p24$!!!!`3!"m)8!!`!!rrrrrJ!"'LJ!N!38`!!!!!)\r!N!32K!#3'J(ASJ#3(`3!N!9dCA0dAfGbB@eYBA)ZF(P'9N08!*!(##!!!!%!N!J\r(!*!5!94&@&43HA4S!*!)X[aH0VD1HX%!!!%5!!!#6`#3#"9`#PX!!!$"!!(`KJ!\r$!!$rrrrq!!&9d3#3""6"!!!!!J#3"!Z%!*!D!GHL!*!I"!#3"A4PFh4ICh*`,R"\rj4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K88(PdD!#3#,-PB91fMRV"!!!#&J!!"0!\r!N!JBYBj2!!!!`3!"m)F!!`!!rrrrrJ!"@#!!N!38`J!!!!)!N!3-K!#3'J(ASJ#\r3(`3!N!9dCA0dAfGkDA!ZF(P'9N08!*!(##!!!!%!N!J(!*!5!94&@&43HA4S!*!\r)X[aH0VD1HX)!!!C+!!!9a3#3#(RiR[`!!!$"!!(`L!!$!!$rrrrq!!&Fm!#3""6\r$!!!!!J#3"!q%!*!D!GHL!*!I"!#3"A4PFh4ID@eKCf9[F#j`H8C@3e3!N!F))!!\r!!3#3#!F!N")"9%9B9&"jG'J!N!Lbr&ifYUpU`J!!"JJ!!""a!*!)K@8C6!!!!-%\r!!I#*!!-!!2rrrri!N!J8a!!!!!)!N!32K!#3'J(ASJ#3(`3!N!9dCA0dAfPYCfC\rTE'8ZF(P'9N08!*!(##!!!!%!N!J(!*!5!94&@&43HA4S!*!)X[aH0VD1HX)!!!S\rQ!!!LC3#3#22Qc&N!!!$"!!(`LJ!$!!$rrrrq!!!3F3#3""6&!!!!!J#3"!b%!*!\rD!GHL!*!I"!#3"A4PFh4IE'pZCbj`H8C@3e3!N!F))!!!!3#3#!F!N")"9%9B9&"\rjG'J!N!Lbr&ifYRDcH`!!"[`!!"H-!*!)DQ3j2`!!!-%!!I#,!!-!!2rrrri!!$,\r@!*!%&-B!!!!#!*!%$)3!N"S"ek)!N"m%!*!&G'9cG&pYBA4S,R"j4PC$9!#3"`J\rJ!!!"!*!)"`#3%J&849K88(PdD!#3#,,mAMDfGV0l!!!"E!!!!`)!N!K9J)ED!!!\r!`3!"m)`!!`!!rrrrrJ!!5Q)!N!38a`!!!!)!N!3,K!#3'J(ASJ#3(`3!N!9dCA0\rdAfeN05j`H8C@3e3!N!F))!!!!3#3#!F!N")"9%9B9&"jG'J!N!Lbr&ibYL*48!!\r!"NB!!"'d!*!)c68UcJ!!!-%!!I#0!!-!!2rrrri!!%eN!*!%&-J!!!!#!*!%%S3\r!N"S"ek)!N"m%!*!&G'9cG&p0D@eP9h*TG'9b,R"j4PC$9!#3"`JJ!!!"!*!)"`#\r3%J&849K88(PdD!#3#,83$f5fVfV$!!!%GJ!!$43!N!LDe"K&!!!!`3!"m)i!!`!\r!rrrrrJ!!AaJ!N!38b3!!!!)!N!3-K!#3'J(ASJ#3(`3!N!9dCA0dAfeYBA!ZF(P\r'9N08!*!(##!!!!%!N!J(!*!5!94&@&43HA4S!*!)X[aH0lEKQ$d!!!0k!!!)MJ#\r3#*QG"(B!!!$"!!(`M`!$!!$rrrrq!!"X,!#3""6+!!!!!J#3"!Z%!*!D!GHL!*!\rI"!#3"A4PFh4IEQ9h,R"j4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K88(PdD!#3#,,\rmAMHfMRV#!!!"I!!!!dS!N!K393[N!!!!`3!"m*!!!!-!!2rrrri!!(5k!*!%&-X\r!!!!#!*!%#i3!N"S"ek)!N"m%!*!&G'9cG&pZDA-ZF(P'9N08!*!(##!!!!%!N!J\r(!*!5!94&@&43HA4S!*!)X[aH0lD[DX-!!!(5!!!'SJ#3#$VX9Z`!!!$"!!(`N3!\r$!!$rrrrq!!"i"!#3""6-!!!!!J#3"!k%!*!D!GHL!*!I"!#3"A4PFh4IER4`BA4\rS,R"j4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K88(PdD!#3#,,mAMHfS0%C!!!#-!!\r!"l)!N!MqH835!!!!`3!"m*)!!`!!rrrrrJ!!IUB!N!38c3!!!!)!N!32K!#3'J(\rASJ#3(`3!N!9dCA0dAfp`BfpNCA-ZF(P'9N08!*!(##!!!!%!N!J(!*!5!94&@&4\r3HA4S!*!)X[aH0lBL893!!!'!!!!#K`#3#)53!#Ee!!!!`3!"m*-!!`!!rrrrrJ!\r!KPJ!N!38cJ!!!!)!N!35K!#3'J(ASJ#3(`3!N!9dCA0dAfp`CA*KG'P[ER-ZF(P\r'9N08!*!(##!!!!%!N!J(!*!5!94&@&43HA4S!*!)X[aH0lCfXh`!!!+L!!!'p!#\r3#+)k2)X!!!$"!!(`P!!$!!$rrrrq!!#)h`#3""62!!!!!J#3""#%!*!D!GHL!*!\rI"!#3"A4PFh4IEh"PFQ&dEh)ZF(P'9N08!*!(##!!!!%!N!J(!*!5!94&@&43HA4\rS!*!)Xb9K8lD6T5!!!!!`!!!!2J#3#)'b#G8!!!$"!!(`P3!$!!$rrrrq!!#2d`#\r3""63!!!!!J#3"!k%!*!D!GHL!*!I"!#3"A4PFh4IF'PMDfaP,R"j4PC$9!#3"`J\rJ!!!"!*!)"`#3%J&849K88(PdD!#3#,,mAMHfVfV$!!!'j!!!'@i!N!K%kAM5!!!\r!`3!"m*B!!`!!rrrrrJ!!N!!4!*!%&0%!!!!#!*!%#i3!N"S"ek)!N"m%!*!&G'9\rcG&p`DfFZF(P'9N08!*!(##!!!!%!N!J(!*!5!94&@&43HA4S!*!)XaeD)EDJd4N\r!!!13!!!!##S!N!K,GGZh!!!!`3!"m*F!!`!!rrrrrJ!!UAm!N!38dJ!!!!)!N!3\r1K!#3'J(ASJ#3(`3!N!9dCA0dAh"[F'9Z-Lj`H8C@3e3!N!F))!!!!3#3#!F!N")\r"9%9B9&"jG'J!N!Lbr&iiYRDcI!!!"!`!!!q$!*!)Xk&F4!!!!-%!!I#B!!-!!2r\rrrri!!,'T!*!%&0-!!!!#!*!%#i3!N"S"ek)!N"m%!*!&G'9cG&p`EhFZF(P'9N0\r8!*!(##!!!!%!N!J(!*!5!94&@&43HA4S!*!)X[aH1,D[DX3!!!*Q!!!'C`#3#'1\rC0cm!!!$"!!(`Q3!$!!$rrrrq!!$",!#3""68!!!!!J#3"!Z%!*!D!GHL!*!I"!#\r3"A4PFh4IF(GN,R"j4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K88(PdD!#3#,83$f5\rfGV0m!!!'-!!!&Dd!N!MedeHC!!!!`3!"m*S!!`!!rrrrrJ!!aj-!N!38e3!!!!)\r!N!32K!#3'J(ASJ#3(`3!N!9dCA0dAh"jCAK`BA3ZF(P'9N08!*!(##!!!!%!N!J\r(!*!5!94&@&43HA4S!*!)X[aH1,EKQ$d!!!YD!!!`V3#3#131Q5B!!!$"!!(`Q`!\r$!!$rrrrq!!$G3!#3""6@!!!!!J#3"!U%!*!D!GHL!*!I"!#3"A4PFh4IFQ8ZF(P\r'9N08!*!(##!!!!%!N!J(!*!5!94&@&43HA4S!*!)X[aH1,D1HX-!!!6S!!!1JJ#\r3#+-#L4B!!!$"!!(`R!!$!!$rrrrq!!%0l3#3""6A!!!!!J#3"!f%!*!D!GHL!*!\rI"!#3"A4PFh4IFQ9RCAJZF(P'9N08!*!(##!!!!%!N!J(!*!5!94&@&43HA4S!*!\r)X[aH1,D1HX-!!!6H!!!14J#3#1U(l6F!!!$"!!(`R3!$!!$rrrrq!!%FE`#3""6\rB!!!!!J#3"!k%!*!D!GHL!*!I"!#3"A4PFh4IFQCM1$)b,R"j4PC$9!#3"`JJ!!!\r"!*!)"`#3%J&849K88(PdD!#3#,,mAMQfMRV$!!!#*!!!"GJ!N!JRh[e4!!!!`3!\r"m*i!!`!!rrrrrJ!"+V8!N!38f3!!!!)!N!31K!#3'J(ASJ#3(`3!N!9dCA0dAh*\rRBQPYCbj`H8C@3e3!N!F))!!!!3#3#!F!N")"9%9B9&"jG'J!N!Lbr&ijYRDcI3!\r!!1)!!!'U!*!)4a8kTJ!!!-%!!I#I!!-!!2rrrri!!6#0!*!%&0S!!!!#!*!%$B3\r!N"S"ek)!N"m%!*!&G'9cG&pbEh4[FLj`H8C@3e3!N!F))!!!!3#3#!F!N")"9%9\rB9&"jG'J!N!Lbr&ijYSjk``!!!KB!!!A(!*!)JkIb6`!!!-%!!I#J!!-!!2rrrri\r!!6)h!*!%&0X!!!!#!*!%$S3!N"S"ek)!N"m%!*!&G'9cG&pcC@aPBh3ZF(P'9N0\r8!*!(##!!!!%!N!J(!*!5!94&@&43HA4S!*!)Xb9K9,-PB93!!!('!!!#j3#3##)\r()%F!!!$"!!(`S3!$!!$rrrrq!!%hrJ#3""6F!!!!!J#3"!Z%!*!D!GHL!*!I"!#\r3"A4PFh4IFfKK,R"j4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K88(PdD!#3#,,mAMQ\rfMRV$!!!#0J!!"Ci!N!M1rf1T!!!!`3!"m+)!!`!!rrrrrJ!"1Z-!N!38h3!!!!)\r!N!31K!#3'J(ASJ#3(`3!N!9dCA0dAh0TCfjKE#j`H8C@3e3!N!F))!!!!3#3#!F\r!N")"9%9B9&"jG'J!N!Lbr&ijYZ'B2J!!"9)!!"$5!*!),a*AUJ!!!-%!!I#M!!-\r!!2rrrri!!8#"!*!%&0i!!!!#!*!%$S3!N"S"ek)!N"m%!*!&G'9cG&pcEf0VCA3\rZF(P'9N08!*!(##!!!!%!N!J(!*!5!94&@&43HA4S!*!)X[aH1VEKQ$i!!!GJ!!!\r@13!!!(`!!!'DD'`8FJ!!!-%!!I#N!!-!!2rrrri!!9&6!!&RM"6I!!!!!J#3""#\r%!*!D!GHL!*!I"!#3"A4PFh4IFh4bCR4TE@8ZF(P'9N08!*!(##!!!!%!N!J(!*!\r5!94&@&43HA4S!*!)XjD@Y,D1HX-!!!')!!!$U`#3#$ieYcd!!!$"!!(`T3!$!!$\rrrrrq!!&T*J#3""6J!!!!!J#3"!k%!*!D!GHL!*!I"!#3"A4PFh4IFh4bD@jR,R"\rj4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K88(PdD!#3#,,mAMUfMRV$!!!&(!!!$NS\r!N!K22e*m!!!!`3!"m+B!!`!!rrrrrJ!"E0%!N!38i3!!!!)!N!30K!#3'J(ASJ#\r3(`3!N!9dCA0dAh0dFQp`,R"j4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K88(PdD!#\r3#,,mAMUfGV0p!!!&+J!!%2%!N!J0++D3!!!!!-%!!I#R!!-!!2rrrri!N!J8iJ!\r!!!)!N!31K!#3'J(ASJ#3(`3!N!9dCA0dAh0dFR9MG#j`H8C@3e3!N!F))!!!!3#\r3#!F!N")"9%9B9&"jG'J!N!Lbr&ikYSjk``!!!0!!!!'1!*!)FP["(J!!!-%!!I#\rS!!-!!2rrrri!!"$a!*!%&1-!!!!#!*!%%i3!N"S"ek)!N"m%!*!&G'9cG&pcG@j\rKG@4TEf4PGLj`H8C@3e3!N!F))!!!!3#3#!F!N")"9%9B9&"jG'J!N!Lbr&ikYZ'\rB2J!!"43!!!aF!*!)Fi@MiJ!!!-%!!I#T!!-!!2rrrri!!"*r!*!%&13!!!!#!*!\r%$i3!N"S"ek)!N"m%!*!&G'9cG&pcGA"`Eh*d,R"j4PC$9!#3"`JJ!!!"!*!)"`#\r3%J&849K88(PdD!#3#,,mAMUfMRV%!!!$0J!!#b3!N!K8'&TY!!!!`3!"m+S!!`!\r!rrrrrJ!!(YX!N!38j3!!!!)!N!31K!#3'J(ASJ#3(`3!N!9dCA0dAh4SFQ9KC#j\r`H8C@3e3!N!F))!!!!3#3#!F!N")"9%9B9&"jG'J!N!Lbr&ilYRDcI3!!!@B!!!1\rJ!*!)3m5f-3!!!-%!!I#V!!-!!2rrrri!!#Rr!*!%&1B!!!!#!*!%$)3!N"S"ek)\r!N"m%!*!&G'9cG&pdD@eP,R"j4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K88(PdD!#\r3#,,mAMZfMRV%!!!!U!!!!@)!N!M%RNb!!!!!`3!"m+`!!`!!rrrrrJ!!,Cm!N!3\r8j`!!!!)!N!31K!#3'J(ASJ#3(`3!N!9dCA0dAh4TE@PZCbj`H8C@3e3!N!F))!!\r!!3#3#!F!N")"9%9B9&"jG'J!N!Lbr&ilYSjka!!!!)3!!!$@!*!)#1dT%J!!!-%\r!!I#Y!!-!!2rrrri!!#m"!*!%&1J!!!!#!*!%%)3!N"S"ek)!N"m%!*!&G'9cG&p\rdEfYPEQPkC5j`H8C@3e3!N!F))!!!!3#3#!F!N")"9%9B9&"jG'J!N!Lbr&ilYRD\rcI3!!#`3!!#d#!*!)513,bJ!!!-%!!I#Z!!-!!2rrrri!!#rA!*!%&1N!!!!#!*!\r%$B3!N"S"ek)!N"m%!*!&G'9cG&pdHA"PFbj`H8C@3e3!N!F))!!!!3#3#!F!N")\r"9%9B9&"jG'J!N!LfNk8pYUpUa3!!%@S!!%Z`!*!)eYUl3J!!!-%!!I#[!!-!!2r\rrrri!!&cC!*!%&1S!!!!#!*!%$i3!N"S"ek)!N"m%!*!&G'9cG&peEQPMEf4P,R"\rj4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K88(PdD!#3#,83$f5fMRV%!!!$e!!!$aJ\r!N!KL"eTc!!!!`3!"m,!!!`!!rrrrrJ!!U)N!N!38k`!!!!)!N!36K!#3'J(ASJ#\r3(`3!N!9dCA0dAh9ZD@0[C'9NBA4K,R"j4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K\r88(PdD!#3#,,mAMZfGV0p!!!#SJ!!#ES!N!JP80jr!!!!`3!"m,%!!`!!rrrrrJ!\r!Yk%!N!38l!!!!!)!N!31K!#3'J(ASJ#3(`3!N!9dCA0dAh9ZF'&MDbj`H8C@3e3\r!N!F))!!!!3#3#!F!N")"9%9B9&"jG'J!N!Lc*@&9YSjka!!!!R3!!!CJ!*!)hHI\rTR`!!!-%!!I#b!!-!!2rrrri!!-&E!*!%&1d!!!!#!*!%%)3!N"S"ek)!N"m%!*!\r&G'9cG&peFf9bC'PMG#j`H8C@3e3!N!F))!!!!3#3#!F!N")"9%9B9&"jG'J!N!L\rc*@&9YSjka!!!"-!!!!m9!*!),N6&j!!!!-%!!I#c!!-!!2rrrri!!-Hl!*!%&1i\r!!!!#!*!%%)3!N"S"ek)!N"m%!*!&G'9cG&peFf9bE'PcG#j`H8C@3e3!N!F))!!\r!!3#3#!F!N")"9%9B9&"jG'J!N!Le%!pNYUpUa3!!!I!!!!5r!*!)58ckN`!!!-%\r!!I#d!!-!!2rrrri!!0E3!*!%&1m!!!!#!*!%%S3!N"S"ek)!N"m%!*!&G'9cG&p\reFf9bFh4bD@jR,R"j4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K88(PdD!#3#,83$f5\rfMRV%!!!'kJ!!&AF!N!L-h#`#!!!!`3!"m,8!!`!!rrrrrJ!!fim!N!38m!!!!!)\r!N!31K!#3'J(ASJ#3(`3!N!9dCA0dAhGTER*PCbj`H8C@3e3!N!F))!!!!3#3#!F\r!N")"9%9B9&"jG'J!N!Le*U8#YL*49`!!!*`!!!$+!*!)p*-DT3!!!-%!!I#f!!-\r!!2rrrri!!2%'!*!%&2%!!!!#!*!%%)3!N"S"ek)!N"m%!*!&G'9cG&phD@jcEh9\rZC#j`H8C@3e3!N!F))!!!!3#3#!F!N")"9%9B9&"jG'J!N!Lbr&ilYSjka!!!!8)\r!!!)8!*!)A5[5K`!!!-%!!I#h!!-!!2rrrri!!2(3!*!%&2)!!!!#!*!%$S3!N"S\r"ek)!N"m%!*!&G'9cG&piE@aXD@)ZF(P'9N08!*!(##!!!!%!N!J(!*!5!94&@&4\r3HA4S!*!)Y5DP!VE&dJ3!!!+m!!!&k3#3#(XQM(8!!!$"!!(`Z!!$!!$rrrrq!!$\rcj!#3""6c!!!!!J#3"!q%!*!D!GHL!*!I"!#3"A4PFh4IHQP`CQPXC5j`H8C@3e3\r!N!F))!!!!3#3#!F!N")"9%9B9&"jG'J!N!Lbr&imYVUMk`!!#%S!!"2)!*!)jf0\r9fJ!!!-%!!I#j!!-!!2rrrri!!2R0!*!%&23!!!!#!*!%$)3!N"S"ek)!N"m%!*!\r&G'9cG&pkE'PL,R"j4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K88(PdD!#3#,,mAMb\rbr&im!!!!G!!!!)J!N!KHDBAG!!!!`3!"m,S!!`!!rrrrrJ!"$C8!N!38p3!!!!)\r!N!3+K!#3'J(ASJ#3(`3!N!9dCA0dB@aX,R"j4PC$9!#3"`JJ!!!"!*!)"`#3%J&\r849K88LTMD!#3#,,mAN'br&j"!!#dI!!"'US!N!Lq,PDT!!!!`3!"m,X!!`!!rrr\rrrJ#3#"6f!!!!!J#3"!Z%!*!D!GHL!*!I"!#3"A4PFh4TE@FZGA9P4PC$9!#3"`J\rJ!!!"!*!)"`#3%J&849K88LTMD!#3#,,mANZbr&j,!!#da!!"'Ui!N!J9GGm%!!!\r!`3!"m,`!!`!!rrrrrJ#3#"6h!!!!!J#3"!b%!*!D!GHL!*!I"!#3"A4PFh4TE@G\rb,R9eC8C@3e3!N!F))!!!!3#3#!F!N")"9%9B9&)UBfJ!N!Lbr&j1X[aH6J!!TG`\r!!1U&!*!)+L)LD`!!!-%!!I#p!!-!!2rrrri!N!J8q!!!!!)!N!3,K!#3'J(ASJ#\r3(`3!N!9dCA0dFQGL,R9eC8C@3e3!N!F))!!!!3#3#!F!N")"9%9B9&"jG'J!N!L\rbr&j1YSjka3!!!ri!!!PV!*!)UprUP!!!!-%!!I#q!!-!!2rrrri!N!J8q3!!!!)\r!N!34K!#3'J(ASJ#3(`3!N!9dEfYPEQPkC9pdCA0dFbj`H8C@3e3!N!F))!!!!3#\r3#!F!N")"9%9B9&)UBfJ!N!LeJRr!YL*48!!!$di!!#91!*!)hp3#GJ!$LRX!!iU\r#!!-!!2rrrri!!!PV!*!%'3J!!!!#!*!%"S3!N"S"ek)!N"m%!*!&8N9"4%e&4PC\r$9!#3"`JJ!!!"!*!)"`#3%J&849K88(PdD!#3#,@43U1fVfV!!!!)9J!!)E!!N!K\r`V08,!!1+H`!$LSF!!`!!rrrrrJ!!,VN!N!3C"`!!!!)!N!32K!#3'J(ASJ#3(`3\r!N!9cG(*TEQGIG'9cG(-ZF(P'9N08!*!(##!!!!%!N!J(!*!5!94&@&4$9dP&!*!\r)YB3m1l@%2$X!!!*B!!!&93#3#%ffR*d!!iTl!!1+L!!$!!$rrrrq!!"3D3#3""N\r'!!!!!J#3"!L%!*!D!GHL!*!I"!#3"A4PFh3ZH'eX4PC$9!#3"`JJ!!!"!*!)"`#\r3%J&849K88(PdD!#3#,@!+CZfMRUr!!!"$!!!!Mi!N!L@(&Aj!!1+H`!$LSX!!`!\r!rrrrrJ!!9Ei!N!3C"3!!!!)!N!31K!#3'J(ASJ#3(`3!N!9dCA0dAf&dCAKTG#j\r`H8C@3e3!N!F))!!!!3#3#!F!N")"9%9B9&"jG'J!N!Lebdp$YL*483!!!TB!!!i\r@!*!)Mi@9V!!$LRX!!iU0!!-!!2rrrri!!&Im!*!%'33!!!!#!*!%%B3!N"S"ek)\r!N"m%!*!&G'9cG&pKG@GKFh0TCfiZF(P'9N08!*!(##!!!!%!N!J(!*!5!94&@&4\r3HA4S!*!)YE#TKlD1HX!!!!J-!!!C23#3#)LZJE-!!iTl!!1+P3!$!!$rrrrq!!"\rQ%J#3""N$!!!!!J#3"!Z%!*!D!GHL!*!I"!#3"A4PFh4IBfGT,R"j4PC$9!#3"`J\rJ!!!"!*!)"`#3%J&849K88(PdD!#3#,A)VELfNk8H!!!%VJ!!$P)!N!LLrRbA!!1\r+H`!$LTF!!`!!rrrrrJ!!Idm!N!3C!J!!!!)!N!30K!#3'J(ASJ#3(`3!N!9dCA0\rdAf0XBA0c,R"j4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K88(PdD!#3#,@P(EDfZU2\rU!!!"2J!!!iX!N!J0V!U`!!1+H`!$LTN!!`!!rrrrrJ!!MD%!N!3C!3!!!!)!N!3\r2K!#3'J(ASJ#3(`3!N!9dCA0dAf0[EA"TE'8ZF(P'9N08!*!(##!!!!%!N!J(!*!\r5!94&@&43HA4S!*!)YFLYZ,DkSqS!!!(m!!!%j`#3#0`d$EX!!iTl!!1+Q`!$!!$\rrrrrq!!#4,!#3""N!N!3#!*!%$S3!N"S"ek)!N"m%!*!&G'9cG&pMEfpVD@8ZF(P\r'9N08!*!(##!!!!%!N!J(!*!5!94&@&43HA4S!*!)YFY23lD[DX%!!!('!!!&m3#\r3#"b%R*8!!iTl!!1+S!!$!!$rrrrq!!#@%`#3""Mr!!!!!J#3"!q%!*!D!GHL!*!\rI"!#3"A4PFh4IC'pcF'&dD#j`H8C@3e3!N!F))!!!!3#3#!F!N")"9%9B9&"jG'J\r!N!Lefc9`YSjk`3!!!63!!!1N!*!)&IhDh!!$LRX!!iUP!!-!!2rrrri!!*`%!*!\r%'2i!!!!#!*!%$)3!N"S"ek)!N"m%!*!&G'9cG&pQD@aP,R"j4PC$9!#3"`JJ!!!\r"!*!)"`#3%J&849K88(PdD!#3#,@#Im#fVfV#!!!'c!!!)LB!N!MC[A,Q!!1+H`!\r$LUF!!`!!rrrrrJ!!RkJ!N!3Br3!!!!)!N!31K!#3'J(ASJ#3(`3!N!9dCA0dAfC\r[FQeKG#j`H8C@3e3!N!F))!!!!3#3#!F!N")"9%9B9&"jG'J!N!LeJRr!YSjk`3!\r!"(3!!!q)!*!)lL!#9J!$LRX!!iUS!!-!!2rrrri!!-(1!*!%'2`!!!!#!*!%#S3\r!N"S"ek)!N"m%!*!&G'9cG&pRBbj`H8C@3e3!N!F))!!!!3#3#!F!N")"9%9B9&"\rjG'J!N!Leb+fiYSjk`3!!"!S!!!r$!*!)c3YMC3!$LRX!!iUU!!-!!2rrrri!!0&\r@!*!%'2X!!!!#!*!%$S3!N"S"ek)!N"m%!*!&G'9cG&pRCA4[F(3ZF(P'9N08!*!\r(##!!!!%!N!J(!*!5!94&@&43HA4S!*!)YGXeF,BL89)!!!M'!!!@r!!!!)!!!!'\rD+aVE2J!$LRX!!iUV!!-!!2rrrri!!1%C!!$i&4Mk!!!!!J#3"!q%!*!D!GHL!*!\rI"!#3"A4PFh4ICf9dG'9iG#j`H8C@3e3!N!F))!!!!3#3#!F!N")"9%9B9&"jG'J\r!N!LeJRr!YL*48`!!!4i!!!)4!*!)Mk"BjJ!$LRX!!iU`!!-!!2rrrri!!2Q[!*!\r%'2N!!!!#!*!%$)3!N"S"ek)!N"m%!*!&G'9cG&pSBA0S,R"j4PC$9!#3"`JJ!!!\r"!*!)"`#3%J&849K88(PdD!#3#,A)VEQf)P&6!!!%j!!!$V3!N!Lqb@pD!!1+H`!\r$LV-!!`!!rrrrrJ!!qm!!N!3Bq!!!!!)!N!34K!#3'J(ASJ#3(`3!N!9dCA0dAfa\rKFQGPCQPXC5j`H8C@3e3!N!F))!!!!3#3#!F!N")"9%9B9&"jG'J!N!LeFEp,YJN\rp-3!!!XB!!!Iq!*!))M"%'`!$LRX!!iUd!!-!!2rrrri!!3Td!*!%'2F!!!!#!*!\r%&B3!N"S"ek)!N"m%!*!&G'9cG&pXD@jeH'&eC'P[C'9f,R"j4PC$9!#3"`JJ!!!\r"!*!)"`#3%J&849K88(PdD!#3#,AE0kUf)P&8!!!!4J!!!$d!N!J2"bY8!!1+H`!\r$LVB!!`!!rrrrrJ!"%R)!N!3BpJ!!!!)!N!32K!#3'J(ASJ#3(`3!N!9dCA0dAfa\r[EQGPH(!ZF(P'9N08!*!(##!!!!%!N!J(!*!5!94&@&43HA4S!*!)YB3m1lDkSqS\r!!!dS!!!p4`#3#$ZLc,m!!iTl!!1+ZJ!$!!$rrrrq!!%5V`#3""Me!!!!!J#3"!q\r%!*!D!GHL!*!I"!#3"A4PFh4IE@PZD@4[E5j`H8C@3e3!N!F))!!!!3#3#!F!N")\r"9%9B9&"jG'J!N!LeJk)hYSjk`J!!!5J!!!*J!*!)jmb-#3!$LRX!!iV!!!-!!2r\rrrri!!8rf!*!%'23!!!!#!*!%$i3!N"S"ek)!N"m%!*!&G'9cG&p[F'9ZF(4j,R"\rj4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K88(PdD!#3#,A)VEUfMRV#!!!%jJ!!%p)\r!N!L,'TZq!!1+H`!$LX-!!`!!rrrrrJ!"8PB!N!3Bm`!!!!)!N!31K!#3'J(ASJ#\r3(`3!N!9dCA0dAh"KFR0PFLj`H8C@3e3!N!F))!!!!3#3#!F!N")"9%9B9&"jG'J\r!N!Lec&0AYSjk`J!!"B`!!"$l!*!)AUI4)!!$LRX!!iV'!!-!!2rrrri!!@BS!*!\r%'2)!!!!#!*!%$)3!N"S"ek)!N"m%!*!&G'9cG&p`EfaX,R"j4PC$9!#3"`JJ!!!\r"!*!)"`#3%J&849K88(PdD!#3#,@5UqQfVfV$!!!"GJ!!",X!N!MI&NRd!!1+H`!\r$LXJ!!`!!rrrrrJ!"Gb-!N!3Bm3!!!!)!N!34K!#3'J(ASJ#3(`3!N!9dCA0dAh"\r[FfPiF'&dD#j`H8C@3e3!N!F))!!!!3#3#!F!N")"9%9B9&"jG'J!N!LeJk)hYZ'\rB23!!"3!!!!`M!*!)j&'+IJ!$LRX!!iV+!!-!!2rrrri!N!JBm!!!!!)!N!3,K!#\r3'J(ASJ#3(`3!N!9dCA0dAh"dH5j`H8C@3e3!N!F))!!!!3#3#!F!N")"9%9B9&"\rjG'J!N!LeJRr!YZ'B2J!!$4)!!$Ae!!!!HJ!!!CT15h3q!!1+H`!$LYB!!`!!rrr\rrrJ!!$#-!!%)B'1m!!!!#!*!%#i3!N"S"ek)!N"m%!*!&G'9cG&pcFQ8ZF(P'9N0\r8!*!(##!!!!%!N!J(!*!5!94&@&43HA4S!*!)YB*r`,D9[pN!!!3N!!!-T3#3#'0\rZh%J!!iTl!!1+iJ!$!!$rrrrq!!"$XJ#3""MZ!!!!!J#3"!Z%!*!D!GHL!*!I"!#\r3"A4PFh4IG@0Z,R"j4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K88(PdD!#3#,AE0A'\rfS0%D!!!%B!!!$4N!N!K1"MXH!!1+H`!$LZB!!`!!rrrrrJ!!8&F!N!3Bl3!!!!)\r!N!31K!#3'J(ASJ#3(`3!N!9dCA0dAh9bE'aTBLj`H8C@3e3!N!F))!!!!3#3#!F\r!N")"9%9B9&"jG'J!N!LeVk9bYSjka!!!!LJ!!!J@!*!)cABamJ!$LRX!!iVR!!-\r!!2rrrri!!&e`!*!%'1`!!!!#!*!%%)3!N"S"ek)!N"m%!*!&G'9cG&peFQa`BA*\rcC5j`H8C@3e3!N!F))!!!!3#3#!F!N")"9%9B9&"jG'J!N!Lf#UfTYUpU`!!!!AB\r!!!1d!*!)'pG$Q!!$d-J!""bH!!-!!2rrrri!!'@'!*!%'EJ!!!!#!*!%%)3!N"S\r"ek)!N"m%!*!&G'9cG&p6G(*TEQG*6bj`H8C@3e3!N!F))!!!!3#3#!F!N")"9%9\rB9'K%EA!!N!Lf*N-6YLC$%`!!!Q3!!!9U!*!)Zp-09J!%15m!"$Np!!-!!2rrrri\r!!'Nk!*!%'I)!!!!#!*!%$)3!N"S"ek)!N"m%!*!&G'9cG#jiE@`ZEh9d4PC$9!#\r3"`JJ!!!"!*!)"`#3%J&849K88(PdD!#3#,B*26#f`FLE!!!'@!!!'(`!N!K1kX`\r4!!3j,`!%18S!!`!!rrrrrJ!!EU3!N!3Cm3!!!!)!N!34K!#3'J(ASJ#3(`3!N!9\rdCA0dAf0QCh"KFR0PFLj`H8C@3e3!N!F))!!!!3#3#!F!N")"9%9B9&"jG'J!N!L\rf#6daYYqm&!!!!L)!!!6T!*!)(I&"B3!%15m!"$PT!!-!!2rrrri!!)FJ!*!%'I!\r!!!!#!*!%$S3!N"S"ek)!N"m%!*!&G'9cG&pTEA"[FR3ZF(P'9N08!*!(##!!!!%\r!N!J(!*!5!94&@&43HA4S!*!)YJNp-EB*26%!!!$S!!!"m!#3#*M(PX8!"$N[!!3\rjF!!$!!$rrrrq!!#-#3#3""R[!!!!!J#3""'%!*!D!GHL!*!I"!#3"A4PFh4IE@P\rYCA4[Efac,R"j4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K88(PdD!#3#,D6T6ffNk8\rp!!!,Y!!!3&3!N!LCJ4dc!!3j,`!%1BS!!`!!rrrrrJ!!MIN!N!3ClJ!!!!)!N!3\r,K!#3'J(ASJ#3(`3!N!9dCA0dAh0KH#j`H8C@3e3!N!F))!!!!3#3#!F!N")"9%9\rB9&"jG'J!N!Lf#6dbYRDcI3!!!8!!!!,c!*!)J#)ThJ!%15m!"$QP!!-!!2rrrri\r!!-j0!*!%'Hd!!!!#!*!%$)3!N"S"ek)!N"m%!*!&G'9cG&phBACP,R"j4PC$9!#\r3"`JJ!!!"!*!)"`#3%J&849K88(PdD!#3#,B8VqLf&+rT!!!!f!!!!Xd!N!MH24[\rG!!5*U3!%LF`!!`!!rrrrrJ!!d8!!N!3D#!!!!!)!N!33K!#3'J(ASJ#3(`3!N!9\rdCA0dAf0[F(PIFQ9R,R"j4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K88(PdD!#3#,D\r6T4kfNk8H!!!&#!!!$G3!N!Lkrh*"!!)bH3!#-Ri!!`!!rrrrrJ!!e!d!N!3E)`!\r!!!)!N!32K!#3'J(ASJ#3(`3!N!9`D@0VE'9dCA0dCA)ZF(P'9N08!*!(##!!!!%\r!N!J(!*!5!94&@&43HA4S!*!)YT1P(VE,$JN!!!83!!!2I`#3#2M,hG%!!M*j!!)\rbL3!$!!$rrrrq!!$Ki3#3""XL!!!!!J#3"!q%!*!D!GHL!*!I"!#3"A4PFh4IAep\rKE'aIAbj`H8C@3e3!N!F))!!!!3#3#!F!N")"9%9B9&"jG'J!N!LfMRUrYSjk[`!\r!!#J!!!!J!*!)B+R[e`!#-RN!!M+4!!-!!2rrrri!!2&J!*!%'b%!!!!#!*!%$i3\r!N"S"ek)!N"m%!*!&G'9cG&pLBA0dD@pZ,R"j4PC$9!#3"`JJ!!!"!*!)"`#3%J&\r849K88(PdD!#3#,CfXhZfGV0l!!!$*!!!&Cd!N!LK$ej3!!)bH3!#-T3!!`!!rrr\rrrJ!!mB!!N!3E)!!!!!)!N!31K!#3'J(ASJ#3(`3!N!9dCA0dAf*TFf9MG#j`H8C\r@3e3!N!F))!!!!3#3#!F!N")"9%9B9&"jG'J!N!LfMRUrYSjk[`!!!j!!!!!([J#\r3#1BV)4B!!M*j!!)bPJ!$!!$rrrrq!!%((3#3""XI!!!!!J#3"!f%!*!D!GHL!*!\rI"!#3"A4PFh4IBR9QD@mZF(P'9N08!*!(##!!!!%!N!J(!*!5!94&@&43HA4S!*!\r)YU$4&lDQ&H3!!!%'!!!"k3#3##Q@(QS!!M*j!!)bQ!!$!!$rrrrq!!%1f`#3""X\rH!!!!!J#3"!b%!*!D!GHL!*!I"!#3"A4PFh4IBf&`D5j`H8C@3e3!N!F))!!!!3#\r3#!F!N")"9%9B9&"jG'J!N!LfMRV!YSjk`!!!!G3!!!6F!*!)66"NM3!#-RN!!M+\rF!!-!!2rrrri!!4$%!*!%'ad!!!!#!*!%&)3!N"S"ek)!N"m%!*!&G'9cG&pMD'&\rbE@&`BfpNC@-ZF(P'9N08!*!(##!!!!%!N!J(!*!5!94&@&43HA4S!*!)YSjk`,D\r1HX!!!!+D!!!,6!#3#%i6I,X!!M*j!!)bS!!$!!$rrrrq!!%9S!#3""XF!!!!!J#\r3""#%!*!D!GHL!*!I"!#3"A4PFh4IBfpPFQ0TEfiZF(P'9N08!*!(##!!!!%!N!J\r(!*!5!94&@&43HA4S!*!)YSjk`,D1HX!!!!&Z!!!%"J#3##'qU6F!!M*j!!)bS3!\r$!!$rrrrq!!%Jl!#3""XE!!!!!J#3"!q%!*!D!GHL!*!I"!#3"A4PFh4IBfpYF'&\rbC5j`H8C@3e3!N!F))!!!!3#3#!F!N")"9%9B9&"jG'J!N!LfVfV!YUpU`!!!!$J\r!!!!m!*!)eped-!!#-RN!!M+T!!-!!2rrrri!!56b!*!%'aS!!!!#!*!%$i3!N"S\r"ek)!N"m%!*!&G'9cG&pND@CQE'PL,R"j4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K\r88(PdD!#3#,D[DX#fVfV"!!!!0!!!!$-!N!MX%V@i!!)bH3!#-UX!!`!!rrrrrJ!\r"*5i!N!3E'3!!!!)!N!32K!#3'J(ASJ#3(`3!N!9dCA0dAf4[Bh4PFh3ZF(P'9N0\r8!*!(##!!!!%!N!J(!*!5!94&@&43HA4S!*!)YSjk`,D1HX!!!!'!!!!#cJ#3#+J\rTZ$%!!M*j!!)bV3!$!!$rrrrq!!%PB3#3""XB!!!!!J#3"!q%!*!D!GHL!*!I"!#\r3"A4PFh4IC(9YBQ4LE5j`H8C@3e3!N!F))!!!!3#3#!F!N")"9%9B9&"jG'J!N!L\rfMRV"YX()Q`!!"$!!!!p!!*!)D$*@J!!#-RN!!M+e!!-!!2rrrri!!5J[!*!%'aF\r!!!!#!*!%%B3!N"S"ek)!N"m%!*!&G'9cG&pQG@jMBA4dFR-ZF(P'9N08!*!(##!\r!!!%!N!J(!*!5!94&@&43HA4S!*!)YL*49,E&dJ3!!!&b!!!$(`#3#!m!Cjm!!M*\rj!!)baJ!$!!$rrrrq!!%hE`#3""X@!!!!!J#3"!q%!*!D!GHL!*!I"!#3"A4PFh4\rIE@&TE'*[H#j`H8C@3e3!N!F))!!!!3#3#!F!N")"9%9B9&"jG'J!N!LfMRV$YSj\rk``!!"DJ!!"Ja!*!)1hLaX3!#-RN!!M,L!!-!!2rrrri!!6U1!*!%'a8!!!!#!*!\r%$i3!N"S"ek)!N"m%!*!&G'9cG&pbD@0SBfe`,R"j4PC$9!#3"`JJ!!!"!*!)"`#\r3%J&849K88(PdD!#3#,D1HX5fNk8J!!!#YJ!!"bN!N!JADHV6!!)bH3!#-[%!!`!\r!rrrrrJ!"8Vm!N!3E%`!!!!)!N!31K!#3'J(ASJ#3(`3!N!9dCA0dAh0eEQ4bH5j\r`H8C@3e3!N!F))!!!!3#3#!F!N")"9%9B9&"jG'J!N!LfS0%CYVUMk`!!!*3!!!$\rI!*!)FcbPk`!#-RN!!M,c!!-!!2rrrri!!9RS!*!%'a)!!!!#!*!%%)3!N"S"ek)\r!N"m%!*!&G'9cG&pcH@edB@*XC5j`H8C@3e3!N!F))!!!!3#3#!F!N")"9%9B9&"\rjG'J!N!LfMRV%YSjka!!!!qS!!!Mq!*!)N49R[`!#-RN!!M,e!!-!!2rrrri!!9V\r(!*!%'a%!!!!#!*!%')3!N"S"ek)!N"m%!*!&G'9cG&pdD(*PB@4PC(4PEA"QD@a\rP,R"j4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K88(PdD!#3#,DJd4UfiCJr!!!'E!!\r!)*F!N!K"ECHT!!)bH3!#-`3!!`!!rrrrrJ#3#"X3!!!!!J#3"!q%!*!D!GHL!*!\rI"!#3"A4PFh4IGf9KDh*PCLj`H8C@3e3!N!F))!!!!3#3#!F!N")"9%9B9&"jG'J\r!N!LfMRV&YSjka3!!!A`!!!21!*!)-B2PFJ!#-RN!!M-)!!-!!2rrrri!!##A!*!\r%'`m!!!!#!*!%%B3!N"S"ek)!N"m%!*!&G'9cG&piFQ9KC'aTEQ8ZF(P'9N08!*!\r(##!!!!%!N!J(!*!5!94&@&43HA4S!*!)YSjkaED1HX8!!!(H!!!%&`#3#"IdS-d\r!!M*j!!)c$!!$!!$rrrrq!!!NC3#3""X1!!!!!J#3"!b%!*!D!GHL!*!I"!#3"A4\rPFh4MEf4PBbj`H8C@3e3!N!F))!!!!3#3#!F!N")"9%9B9&"jG'J!N!Lf`FLEYXA\r5!`!!!M)!!!G2!*!),p!Pd!!(*pi!"bI[!!-!!2rrrri!!#Km!*!%(#S!!!!#!*!\r%%S3!N"S"ek)!N"m%!*!&G'9cG&pIAfCeG(9bC9pI,R"j4PC$9!#3"`JJ!!!"!*!\r)"`#3%J&849K88(PdD!#3#,E"b*ZfiCJp!!!(U!!!'Ti!N!J2Pjh2!!FRhJ!(+#J\r!!`!!rrrrrJ!!,mX!N!3F+3!!!!)!N!32K!#3'J(ASJ#3(`3!N!9dCA0dAfPZFh"\rPBh3ZF(P'9N08!*!(##!!!!%!N!J(!*!5!94&@&43HA4S!*!)YXA5!lE&dJ-!!!%\rU!!!$@J#3#!ZC@f!!"hJ1!!Gi6!!$!!$rrrrq!!"+D3#3""a`!!!!!J#3"!k%!*!\rD!GHL!*!I"!#3"A4PFh4ICR9dGA*P,R"j4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K\r88(PdD!#3#,E&dJ1fhAY*!!!!R!!!!1)!N!Md,25'!!Gi$J!(H%d!!`!!rrrrrJ!\r!6F-!N!3FE`!!!!)!N!32K!#3'J(ASJ#3(`3!N!9dCA0dAfCeG(9bC6%ZF(P'9N0\r8!*!(##!!!!%!N!J(!*!5!94&@&43HA4S!*!)YXA5!lE&dJ-!!!"`!!!!P!#3#1(\rDC2-!"hJ1!!Gi6J!$!!$rrrrq!!"1T3#3""aZ!!!!!J#3"!q%!*!D!GHL!*!I"!#\r3"A4PFh4ICR9dGA*P-Lj`H8C@3e3!N!F))!!!!3#3#!F!N")"9%9B9&"jG'J!N!L\rfaG)$YXA5!`!!!(!!!!#T!*!)5C%5#`!(H!i!"hK2!!-!!2rrrri!!%mj!*!%('d\r!!!!#!*!%$i3!N"S"ek)!N"m%!*!&G'9cG&pQGA4eFQ8c,R"j4PC$9!#3"`JJ!!!\r"!*!)"`#3%J&849K88(PdD!#3#,E&dJ1faG)$!!!!E!!!!*B!N!Jq'45m!!Gi$J!\r(H&!!!`!!rrrrrJ!!6q)!N!3FE!!!!!)!N!32K!#3'J(ASJ#3(`3!N!9dCA0dAfC\reG(9bC63ZF(P'9N08!*!(##!!!!%!N!J(!*!5!94&@&43HA4S!*!)YXA5!lE&dJ-\r!!!"`!!!!Y3#3#+IHZ3F!"hJ1!!Gi83!$!!$rrrrq!!"3H!#3""aV!!!!!J#3"!q\r%!*!D!GHL!*!I"!#3"A4PFh4ICR9dGA*P05j`H8C@3e3!N!F))!!!!3#3#!F!N")\r"9%9B9&"jG'J!N!LfaG)$YXA5!`!!!(B!!!#H!*!)i53MJ!!(H!i!"hK5!!-!!2r\rrrri!!&%Y!*!%('S!!!!#!*!%$i3!N"S"ek)!N"m%!*!&G'9cG&pQGA4eFQ8f,R"\rj4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K88(PdD!#3#,E&dJ1faG)$!!!!I!!!!-%\r!N!MEbbkK!!Gi$J!(H&-!!`!!rrrrrJ!!8FX!N!3FD3!!!!)!N!32K!#3'J(ASJ#\r3(`3!N!9dCA0dAfCeG(9bC6FZF(P'9N08!*!(##!!!!%!N!J(!*!5!94&@&43HA4\rS!*!)YXA5!lE&dJ-!!!&b!!!$iJ#3##9rNad!"hJ1!!Gi@3!$!!$rrrrq!!"5M!#\r3""aS!!!!!J#3"!k%!*!D!GHL!*!I"!#3"A4PFh4ICfa[BQ&X,R"j4PC$9!#3"`J\rJ!!!"!*!)"`#3%J&849K88(PdD!#3#,E&dJ5fhl`8!!!(qJ!!(V)!N!Jl@kNV!!G\ri$J!(H)8!!`!!rrrrrJ!!9Qi!N!3FC`!!!!)!N!30K!#3'J(ASJ#3(`3!N!9dCA0\rdAh0MEh"P,R"j4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K88(PdD!#3#,EI["1fhl`\r6!!!!+J!!!#%!N!MYJHNa!!Jmd!!)208!!`!!rrrrrJ!!G5!!N!3FIJ!!!!)!N!3\r+K!#3'J(ASJ#3(`3!N!9ZEf0KFQ9d,R"j4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K\r88(PdD!#3#,EGHdQfhAY*!!!#hJ!!"c%!N!M%L1kc!!Jmd!!)22`!!`!!rrrrrJ!\r!G8%!N!3FI3!!!!)!N!32K!#3'J(ASJ#3(`3!N!9dCA0dAf0[EA"XCAJZF(P'9N0\r8!*!(##!!!!%!N!J(!*!5!94&@&43HA4S!*!)YYqm&,EI["3!!!'%!!!%[`#3#!6\reZ1N!#$c3!!Jp$3!$!!$rrrrq!!"mFJ#3""am!!!!!J#3"!q%!*!D!GHL!*!I"!#\r3"A4PFh4ICQjYBA4MD#j`H8C@3e3!N!F))!!!!3#3#!F!N")"9%9B9&"jG'J!N!L\rfhl`9YYqm&3!!!J)!!!9%!*!)NVk5"J!)20!!#$eH!!-!!2rrrri!!)%a!*!%((X\r!!!!#!*!%%B3!N"S"ek)!N"m%!*!&G'9cG&pdFQ&MC@*KBfXZF(P'9N08!*!(##!\r!!!%!N!J(!*!5!94&@&43HA4S!*!)X[aGIVD1HV8!!!r#!!"&d3#3##IPMFX!!!#\rT!!(Zc`!#!!$rrrrq!!#'G3#3""6k!!!!!J#3"!b%!*!D!EqL!*!I"!#3"A4SFQ9\rKC'PZCbj`H8C@3e3!N!F))!!!!3#3#!F!N")"9%9B9&"jG'J!N!Lbr&erYXA4r!!\r!"&3!!!ZS!*!)TdEJN`!!!+N!!Hl3!!)!!2rrrri!!-a'!*!%&2X!!!!#!*!%#B3\r!N"S"[k)!N"m%!*!&G'pKD@CQ,R"j4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K88(P\rdD!#3#,,mAAqfVfUb!!!&"J!!#dX!N!MdR#Ef!!!!U3!"lY%!!J!!rrrrrJ!!eqi\r!N!38r!!!!!)!N!3)K!#3'J'rSJ#3(`3!N!9dEfYPELj`H8C@3e3!N!F))!!!!3#\r3#!F!N")"9%9B9&"jG'J!N!Lbr&f!YZ'B-3!!$"`!!#IH!*!)%acq6J!!!+N!!Hl\r5!!)!!2rrrri!!1-j!*!%&2d!!!!#!*!%#i3!N"S"[k)!N"m%!*!&G'pVC@jTHQ8\rZF(P'9N08!*!(##!!!!%!N!J(!*!5!94&@&43HA4S!*!)X[aGJ,EI[!m!!!XQ!!!\rT#!#3#(E,A5m!!!#T!!(Zd`!#!!$rrrrq!!%,&`#3""6q!!!!!J#3"!b%!*!D!Eq\rL!*!I"!#3"A4bB@0PBQ&MDbj`H8C@3e3!N!F))!!!!3#3#!F!N")"9%9B9&"jG'J\r!N!Lbr&f!YXA4r3!!!AJ!!!0[!*!)kDTAA!!!!+N!!Hl8!!)!!2rrrri!!63I!*!\r%&2m!!!!#!*!%"S3!N"S"[k)!N"m%!*!&G(4j,R"j4PC$9!#3"`JJ!!!"!*!)"`#\r3%J&849K88(PdD!#3#,,mAB#e%!pM!!!#2!!!"8m!N!M[B0i[!!!!U3!"lY8!!J!\r!rrrrrJ!"0ii!N!39!*!%!J#3"!L%!*!D!EqL!*!I"!#3"A4jF'9c,R"j4PC$9!#\r3"`JJ!!!"!*!)"`#3%J&849K88(PdD!#3#,,mAB'fhAY%!!!%[!!!$DB!N!JKKRf\rf!!!!U3!"lYB!!J!!rrrrrJ!"20d!N!39!3!!!!)!N!3+K!#3'J'rSJ#3(`3!N!9\rdHR"KFR0P,R"j4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K88(PdD!#3#,,mAB'fhAY\r%!!!`R!!!ZD`!N!JQJ"C4!!!!U3!"lYF!!J!!rrrrrJ#3#"8#!!!!!J#3"!Q%!*!\rD!EqL!*!I"!#3"A9bE'aTBLj`H8C@3e3!N!F))!!!!3#3#!F!N")"9%9B9&"jG'J\r!N!LdaHTkYYel4!!!+5)!!**F!*!)HiAPUJ!!!+N!!HlB!!)!!2rrrri!N!J9!`!\r!!!)!N!3+K!#3'J'rSJ#3(`3!N!9eFQaXD@)b,R"j4PC$9!#3"`JJ!!!"!*!)"`#\r3%J&849K88(PdD!#3#,,mAB'faG(p!!!*bJ!!)G`!N!KJ&0LQ!!!!U3!"lYN!!J!\r!rrrrrJ#3#"8%!!!!!J#3"!Z%!*!D!EqL!*!I"!#3"A9bE("KFR0P,R"j4PC$9!#\r3"`JJ!!!"!*!)"`#3%J&849K88(PdD!#3#,,mAB'e%!pM!!!#a!!!"E`!N!K16,T\r,!!!!U3!"lYS!!J!!rrrrrJ!!)G`!N!39"3!!!!)!N!3(K!#3'J'rSJ#3(`3!N!9\reFf9b,R"j4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K88(PdD!#3#,,mA@'fZU2M!!!\r"c!!!"L8!N!Lc"dq6!!!!U3!"lYX!!J!!rrrrrJ!!*jJ!N!39"J!!!!)!N!3,K!#\r3'J'rSJ#3(`3!N!99Ff9b4'PMG#j`H8C@3e3!N!F))!!!!3#3#!F!N")"9%9B9&"\rjG'J!N!Lbr&eKYVUMi`!!![3!!!h'!*!)fHlpr`!!!+N!!HlF!!)!!2rrrri!!#f\rp!*!%&3F!!!!#!*!%#i3!N"S"[k)!N"m%!*!&9A0PFNaTFh3ZF(P'9N08!*!(##!\r!!!%!N!J(!*!5!94&@&43HA4S!*!)Y4!2BED6T3S!!!GH!!!GDJ#3##"6NcJ!!!#\rT!!(Zh3!#!!$rrrrq!!!lJ`#3""8)!!!!!J#3"!f%!*!D!EqL!*!I"!#3"99cCA*\r6G(*TEQFZF(P'9N08!*!(##!!!!%!N!J(!*!5!94&@&43HA4S!*!)X[aGJVE&dIi\r!!!KZ!!!9hJ#3##*B(mm!!!#T!!(ZhJ!#!!$rrrrq!!"Bl3#3""8*!!!!!J#3"!@\r%!*!D!EqL!*!I"!#3"A9e,R"j4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K88(PdD!#\r3#,,mAB+faG(q!!!2CJ!!43d!N!K#eZfC!!!!U3!"lYm!!J!!rrrrrJ!!EXX!N!3\r9#J!!!!)!N!3(K!#3'J'rSJ#3(`3!N!9hBACP,R"j4PC$9!#3"`JJ!!!"!*!)"`#\r3%J&849K88(PdD!#3#,,mAB+fhAY%!!!#fJ!!#$!!N!Lham(J!!!!U3!"lZ!!!J!\r!rrrrrJ!!XpJ!N!39#`!!!!)!N!3+K!#3'J'rSJ#3(`3!N!9hD'PMD'4L,R"j4PC\r$9!#3"`JJ!!!"!*!)"`#3%J&849K88(PdD!#3#,,mAB+fMRUh!!!'V!!!%US!N!L\rD8#fV!!!!U3!"lZ%!!J!!rrrrrJ!![!J!N!39$!!!!!)!N!3,K!#3'J'rSJ#3(`3\r!N!9hD(*KEQ4[E5j`H8C@3e3!N!F))!!!!3#3#!F!N")"9%9B9&"jG'J!N!Lbr&f\r#YXA4rJ!!"a`!!"aE!*!)qJ-PMJ!!!+N!!HlL!!)!!2rrrri!!-kb!*!%&3d!!!!\r#!*!%#B3!N"S"[k)!N"m%!*!&H'4bE'PL,R"j4PC$9!#3"`JJ!!!"!*!)"`#3%J&\r849K88(PdD!#3#,,mAB1fhAY&!!!GGJ!!L'J!N!Mfa6R4!!!!U3!"lZ-!!J!!rrr\rrrJ#3#"81!!!!!J#3"!Q%!*!D!EqL!*!I"!#3"AKYE'aTBLj`H8C@3e3!N!F))!!\r!!3#3#!F!N")"9%9B9&"jG'J!N!Le%!pMYXA4rJ!!&S3!!&LE!*!)+T!!kY8!!!#\rT!!(Zj!!#!!$rrrrq!*!)&3m!!!!#!*!%#S3!N"S"[k)!N"m%!*!&HQP`CQPXC5j\r`H8C@3e3!N!F))!!!!3#3#!F!N")"9%9B9&"jG'J!N!LeJ#Q)YT1P#`!!!NB!!!9\rJ!*!)#Tj)"`!$L&3!!iKC!!)!!2rrrri!!&LE!*!%'1X!!!!#!*!%#B3!N"S"[q)\r!N"m%!*!&BA4PH'Pd,R"j4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K88(PdD!#3#,A\r)VE+fZU2M!!!JD!!!B13!N!J9!prp!!1)9!!$L'd!!J!!rrrrrJ!!AIX!N!3BkJ!\r!!!)!N!3*K!#3'J'riJ#3(`3!N!9$EfpVD@8ZF(P%9N08!*!3YV)Cl`#3"J%#!!1\r)9!!!!!%!N"`Bk3!!!!)!!J#3"!B!!!!)"!F!N"X"[k)!N#0MGA*cCA0'9N08!*!\r(##!!!!%!N!J(!*!5!94&@&43HA4S!*!)YB1L0,@X8Kd!!!*Z!!!%a!#3#'"rMKi\r!!iMU!!1)k`!$!!$rrrrq!*!)'1J!!!!#!*!%#i3!N"S#4+)!N"m%!*!&AepTEQP\rdAemZF(P'9N08!*!(##!!!!%!N!J(!*!5!94&@&43HA4S!*!)YB1L0,CfXh)!!!0\r'!!!*C3#3#1%KL&m!!iMU!!1)l!!$!!$rrrrq!!!%a!#3""MR!!!!!J#3"!L%!*!\rD!N5L!*!I"!#3"@&cBfPT,R"j4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K88(PdD!#\r3#,@X8KfeV&)G!!!&c!!!&Q%!N!J2p26N!!1)kJ!$L1d!!`!!rrrrrJ!!$LN!N!3\rBjJ!!!!)!N!3+K!#3'J*%SJ#3(`3!N!9SBA0IDf9j,R"j4PC$9!#3"`JJ!!!"!*!\r)"`#3%J&849K88(PdD!#3#,@$SM5eX+P8!!!()!!!&qN!N!MX'N1M!!1)kJ!$L1i\r!!`!!rrrrrJ!!*)S!N!3Bj3!!!!)!N!3+K!#3'J*%SJ#3(`3!N!9dCAKdF'&N,R"\rj4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K88(PdD!#3#,@$SM5eZD9k!!!$CJ!!"l`\r!N!J"`Z8@!!1)kJ!$L1m!!`!!rrrrrJ!!2(-!N!3Bj!!!!!)!N!3+K!#3'J*%SJ#\r3(`3!N!9hFQ&`F'9b,R"j4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K88(PdD!#3#,C\rfXh1fGV0c!!!!KJ!!!+)!N!Kck4,,!!)ab3!#-Fd!!`!!rrrrrJ!!4#m!N!3E$3!\r!!!)!N!3)K!#3'J*%SJ#3(`3!N!9`B@jPE#j`H8C@3e3!N!F))!!!!3#3#!F!N")\r"9%9B9&"jG'J!N!Lefc91YT1P%`!!$F)!!#@a!!!!FJ!!!CSGS[RA!!1)9!!$L(d\r!!J!!rrrrrJ!!40%!!'U#'1-!!!!#!*!%#S3!N"S"[q)!N"m%!*!&Cf9dG'9iG#j\r`H8C@3e3!N!F))!!!!3#3#!F!N")"9%9B9&"jG'J!N!LeJ#Q+YUpUU3!!(H`!!'"\rr!*!)b!S,c3!$L&3!!iL(!!)!!2rrrri!!'`F!*!%'1)!!!!#!*!%#S3!N"S"[q)\r!N"m%!*!&D@e`GA4TE#j`H84@3e3!N"#fX%e"!*!'!3)!!iK8!!!!!3#3("MK!!!\r!!J!#!*!%$3!!!!J%"`#3'`'rSJ#3)h"XBA3YCR*PC@*cC$4'9N08!*!(##!!!!%\r!N!J(!*!5!94&@&43HA4S!*!)YGXeEVAE0@i!!!-X!!!)(`#3#!D1GY!!!iS,!!1\r+$!!$!!$rrrrq!*!)'1!!!!!#!*!%#)3!N"S#3k)!N"m%!*!&4N019%`ZF(P'9N0\r8!*!(##!!!!%!N!J(!*!5!94&@&43HA4S!*!)YGXeEVAE0@i!!!Mk!!!HB3#3#%`\rdI[B!!iS,!!1+$3!$!!$rrrrq!!!)(`#3""MI!!!!!J#3"!@%!*!D!N1L!*!I"!#\r3"8P1,R"j4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K83eG*43#3#,AE0@kefc9Z!!!\r!G!!!!3`!N!KV![lK!!1+#`!$LJi!!`!!rrrrrJ!!*S!!N!3BhJ!!!!)!N!3&K!#\r3'J*$SJ#3(`3!N!9bC@GPEN4@3e3!N"#fX%e#!*!'!3)!!iK8!!!!!3#3("ME!!!\r!!J!#!*!%$3!!!!J%"`#3'`'rSJ#3)h"XBA3YCR*PC@*cC$9'9N08!*!(##!!!!%\r!N!J(!*!5!94&@&43HA4S!*!)YGXeEVAE0@i!!!-f!!!)0J#3#&5"#FX!!iS4!!1\r+%J!$!!$rrrrq!*!)'0S!!!!#!*!%#)3!N"S#3U)!N"m%!*!&4N019%`ZF(P'9N0\r8!*!(##!!!!%!N!J(!*!5!94&@&43HA4S!*!)YGXeEVAE0@i!!!Mk!!!HB3#3#%`\rdI[B!!iS4!!1+%`!$!!$rrrrq!!!)0J#3""MC!!!!!J#3"!@%!*!D!N+L!*!I"!#\r3"8P1,R"j4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K83eG*43#3#,AE0@kefc9Z!!!\r!G!!!!3`!N!KV![lK!!1+%3!$LK3!!`!!rrrrrJ!!*TF!N!3Bf!!!!!)!N!3&K!#\r3'J*#SJ#3(`3!N!9bC@GPENC@3e3!N!F))!!!!3#3#!F!N")"9%9B9&"jG'J!N!L\reJTGAYYel3`!!&r3!!&iY!*!)Ei8Lm!!$L&3!!iLP!!)!!2rrrri!!#HM!*!%'08\r!!!!#!*!%"S3!N"S"[q)!N"m%!*!&F(*P,R"j4PC$9!#3"`JJ!!!"!*!)"`#3%J&\r849K88(PdD!#3#,A)VE1fiCJ[!!!+'!!!(FJ!N!Kp2IPB!!1)9!!$L-%!!J!!rrr\rrrJ!!KG!!N!3Be!!!!!)!N!3*K!#3'J'riJ#3(`3!N!9cEf0VCA3ZF(P'9N08!*!\r(##!!!!%!N!J(!*!5!94&@&43HA4S!*!)YC&#S,E&dIi!!!Z5!!!Q&`#3#)0C5bm\r!!iK8!!1)j!!#!!$rrrrq!!#MQ!#3""M6!!!!!J#3"!f%!*!D!ErL!*!I"!#3"AG\rPBQ*bEhGcCA)ZF(P%9N08!*!3YZD[SVEQVk)!!!%#!!1)9!!!!!%!N"`BdJ!!!!)\r!!J#3"!-!!!!)"!F!N"X"[k)!N#0iE@a'9N08!*!(##!!!!%!N!J(!*!5!94&@&4\r3HA4S!*!)YB1L0lD[DXJ!!!(N!!!$C3#3#(JlNcB!!iYD!!1,@`!$!!$rrrrq!*!\r)'0%!!!!#!*!%#i3!N"S#2k)!N"m%!*!&AepTEQPdAemZF(P%9N08!*!3YZD[SVE\rQVk)!!!%#!!1,@J!!!!%!N"`Bd!!!!!-!!J#3"!-!!!!)"!F!N"X#2k)!N#0NEfe\r'9N08!*!(##!!!!%!N!J(!*!5!94&@&43HA4S!*!)YB1L0lDmS(d!!!6`!!!0NJ#\r3#*ViN!#9!!1,A!!$Led!"!!!rrrrrJ#3#"M2!!!!!J#3"!Z%!*!D!N'L!*!I"!#\r3"9pID@jTG&pI,R"j4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K88(PdD!#3#,@$SMH\rfhAY+!!!ADJ!!E1)!N!LrSrdJ!!1,A!!$Lei!"!!!rrrrrJ!!$C)!N!3BcJ!!!!)\r!N!3+K!#3'J*"SJ#3(`3!N!9YD@jTC'pY,R"j4PC$9!#3"`JJ!!!"!*!)"`#3%J&\r849K88(PdD!#3#,@$SMHfiCK"!!!)[!!!*jm!N!LUQ5Ja!!1,A!!$Lem!"!!!rrr\rrrJ!!HR3!N!3Bc3!!!!)!N!3+K!#3'J*"SJ#3(`3!N!9`G@aXC'pY,R"j4PC$9!#\r3"`JJ!!!"!*!)"`#3%J&849K88(PdD!#3#,DmS(ff[+"p!!!%-J!!#``!N!J$)ET\rl!!FSq`!(+2d!"!!!rrrrrJ!!SK-!N!3F+!!!!!)!N!3*K!#3'J*"SJ#3(`3!N!9\rNEfebC@FZF(P%9N08!*!3YV"06J#3"J%#!!1,@J!!!!%!N"`Bc!!!!!-!!J#3"!F\r!!!!)"!F!N"X#2k)!N#0`BA*cCA*c4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K88(P\rdD!#3#,@ZCCDeVQ@@!!!!K!!!!+F!N!Kk!qQh!!1,B!!$Lf%!"!!!rrrrrJ#3#"M\r,!!!!!J#3"!Z%!*!D!N#L!*!I"!#3"9pID@jTG&pI,R"j4PC$9!#3"`JJ!!!"!*!\r)"`#3%J&849K88(PdD!#3#,B*265f#6dd!!!!DJ!!!(!!N!KCD%h0!!3k)3!%1L-\r!"!!!rrrrrJ!!!+F!N!3Cl!!!!!)!N!3)K!#3'J*!SJ#3(`3!N!9PH("KG#j`H84\r@3e3!N"#fjUqLYZD[SJ!!!3)!!iYD!!!!!3#3("M+!!!!!`!#!*!%!`!!!!J%"`#\r3'`)rSJ#3)h0KH%C@3e3!N!F))!!!!3#3#!F!N")"9%9B9&"jG'J!N!LeJk)iYL*\r4@3!!"1)!!!fN!*!)"caTm3!$Lf)!!iYM!!3!!2rrrri!N!JBb3!!!!)!N!3,K!#\r3'J)qSJ#3(`3!N!9IAfPZDA4IAbj`H8C@3e3!N!F))!!!!3#3#!F!N")"9%9B9&"\rjG'J!N!LeJk)iYZ'B3J!!"JB!!")f!*!)mkPqQ`!$Lf)!!iYN!!3!!2rrrri!!!f\rN!*!%'-J!!!!#!*!%$S3!N"S#2U)!N"m%!*!&Af9iBf9`G'P[ER-ZF(P'9N08!*!\r(##!!!!%!N!J(!*!5!94&@&43HA4S!*!)YB1L1,DBX[N!!!Jb!!!J33#3#&V$dRm\r!!iYL!!1,C3!%!!$rrrrq!!!IfJ#3""M(!!!!!J#3"!k%!*!D!MkL!*!I"!#3"@9\riF'&dFQ9KC'9b,R"j4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K88(PdD!#3#,@$SML\rf)P&C!!!14J!!-`)!N!MDV@"k!!1,BJ!$LfB!"!!!rrrrrJ!!3"X!N!3BaJ!!!!)\r!N!3+K!#3'J)qSJ#3(`3!N!9SB@jNE'9b,R"j4PC$9!#3"`JJ!!!"!*!)"`#3%J&\r849K88(PdD!#3#,@$SMLfGV0q!!!(d!!!(3`!N!K*I6Yf!!1,BJ!$LfF!"!!!rrr\rrrJ!!Fad!N!3Ba3!!!!)!N!3,K!#3'J)qSJ#3(`3!N!9cBAKeG'PXFbj`H8C@3e3\r!N!F))!!!!3#3#!F!N")"9%9B9&"jG'J!N!LeJk)iYYel5`!!$8)!!$%N!*!)Ah4\rrq`!$Lf)!!iYS!!3!!2rrrri!!*!!+3#3""M%!!!!!J#3"!b%!*!D!MkL!*!I"!#\r3"AKYE(*PB@4PFLj`H84@3e3!N"#fX%e"!*!'!33!"$IS!!!!!3#3("RV!!!!!J!\r#!*!%#J!!!!J%"`#3'`'rSJ#3)h"XBA3YBQ9[Fc9'9N08!*!(##!!!!%!N!J(!*!\r5!94&@&43HA4S!*!)YJNp,VB*25i!!!0D!!!*K!#3#*!!&UCJ!!3j'3!%14S!!`!\r!rrrrrJ#3#"RU!!!!!J#3"!L%!*!D!QLL!*!I"!#3"8C$6P4-,R"j4PC$9!#3"`J\rJ!!!"!*!)"`#3%J&849K88(PdD!#3#,B*25qf#6d[!!!(XJ!!)08!N!JJC1bB!!3\rj'3!%14X!!`!!rrrrrJ!!#B3!N!3Ck3!!!!)!N!3&K!#3'J*SSJ#3(`3!N!9*6Lj\r`H8C@3e3!N!F))!!!!3#3#!F!N")"9%9B9%0A588!N!Lf#6d[YJNp,`!!!*`!!!$\rl!*!)Jk@UFJ!%14N!"$NF!!-!!2rrrri!!#TC!*!%'HJ!!!!#!*!%"B3!N"S#D+)\r!N"m%!*!&FQ9RC@j'9N08!*!(##!!!!%!N!J(!*!5!94&@&43HA4S!*!)YUpUTlD\rkSq3!!"h3!!"ai`#3#")-2S%!!M%J!!)a23!#!!$rrrrq!!!V9!#3""X-!!!!!J#\r3"!U%!*!D!ErL!*!I"!#3"@4TCQCXD@)ZF(P'9N08!*!(##!!!!%!N!J(!*!5!94\r&@&43HA4S!*!)YSjkVVEI[!m!!#[H!!#1R3#3#&BH5KN!!M%J!!)a3!!#!!$rrrr\rq!*!)'`X!!!!#!*!%#S3!N"S"[q)!N"m%!*!&C'pMG'9cG#j`H8C@3e3!N!F))!!\r!!3#3#!F!N")"9%9B9&"jG'J!N!LfS0%0YXA4r!!!&,)!!%4j!*!)ZZf@M!!#-5!\r!!M'E!!)!!2rrrri!N!JE#J!!!!)!N!3)K!#3'J'riJ#3(`3!N!9cEA4`C#j`H8C\r@3e3!N!F))!!!!3#3#!F!N")"9%9B9&"jG'J!N!LfGV0ZYXA4rJ!!#CB!!"pS!*!\r)D%YKP!!#-5!!!M(!!!)!!2rrrri!!%4j!*!%'`N!!!!#!*!%#i3!N"S"[q)!N"m\r%!*!&Gf&bEQPZCh-ZF(P'9N08!*!(##!!!!%!N!J(!*!5!94&@&43HA4S!*!)YU$\r4$VE&dIi!!!48!!!4c`#3#&N6@5-!!M%J!!)a`J!#!!$rrrrq!!"Mi3#3""X)!!!\r!!J#3"!U%!*!D!ErL!*!I"!#3"AGPB@YbC@BZF(P'9N08!*!(##!!!!%!N!J(!*!\r5!94&@&43HA4S!*!)YX()PVEGHd%!!!0!!!!)83#3#,4MmPB!"bD3!!!(*T%!!J!\r!rrrrrJ!!GE!!N!3F*`!!!!)!N!30K!#3%%!!N!N"[q)!N"m%!*!&AepQGA4eFQ9\rIAbj`H8C@3e3!N!F))!!!!3#3#!F!N")"9%9B9&"jG'J!N!Lf`FL@YZ'B,3!!'R!\r!!'CN!*!)S@5Xr!!(*T!!!!FQa`!#!!$rrrrq!!"q!3#3""`Q!!!!!J#3"!U%!*!\r33!#3#3'riJ#3(`3!N!9TER0`C@0d,R"j4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K\r88(PdD!#3#,E"b*HfiCJZ!!!k2J!!lmd!N!LJl1*"!!FQN!!!"bEX!!)!!2rrrri\r!N!JF*3!!!!)!N!3)K!#3%%!!N!N"[q)!N"m%!*!&F(PNEf-ZF(P%9N08!*!3YZD\r[MVEQVid!!!%(!!GfQ3!!!!%!N"`FCJ!!!!)!!J#3"!X!!!!)"!F!N"X"[k)!N#0\r`E'&d,A*TFf0[FdC@3e3!N!F))!!!!3#3#!F!N")"9%9B9&"jG'J!N!LfaG)"YYe\rl5!!!!D`!!!8b!*!)AJ6Fm`!(Gq-!"hIN!!-!!2rrrri!N!JFC3!!!!)!N!33K!#\r3'J+TSJ#3(`3!N!9bDA0MEh0PERCTFQpZ,R"j4PC$9!#3"`JJ!!!"!*!)"`#3%J&\r849K88(PdD!#3#,E&dJ'faG)"!!!0&J!!)0J!N!K3,`Zb!!Ghi`!(Gq8!!`!!rrr\rrrJ!!"6)!N!3FC!!!!!)!N!30K!#3'J+TSJ#3(`3!N!9bDA0MEh0`BA4S,R"j4PC\r$9!#3"`JJ!!!"!*!)"`#3%J&849K88(PdD!#3#,E&dJ+faG)#!!!$[J!!#@d!N!L\r',2Mb!!Ghi`!(GqB!!`!!rrrrrJ!!*JS!N!3FB`!!!!)!N!30K!#3'J+TSJ#3(`3\r!N!9bEh9bE$*`BA4S,R"j4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K88(PdD!#3#,E\r&dIUfaG(k!!!"#!!!!D!!N!M#hc4l!!GfQ3!(Gai!!J!!rrrrrJ!!,hF!N!3FBJ!\r!!!)!N!3+K!#3%1!!N!N"[r-!N"m%!*!&9%9568P28bj`H8C@3e3!N!F))!!!!3#\r3#!F!N")"9%9B9&"jG'J!N!LfiCJaYZ'B-3!!"k)!!"dl!*!)qD$4J!!)1eJ!#$[\rD!!)!!2rrrri!!$%A!*!%((S!!!!#!*!%#i3!N"$J!*!*!Erc!*!I"!#3"A0jEA4\rKBQaP,R"j4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K88(PdD!#3#,EI["#fhl`3!!!\rD&!!!@kF!N!K4m6FV!!Jl@!!)1qF!!J!!rrrrrJ!!6P)!N!3FH3!!!!)!N!3,K!#\r3%1!!N!N"[r-!N"m%!*!&G@jTG(4PFh3ZF(P%9N08!*!+!L!"$`%(YZD[SlEQVlS\r!!!$$!!!!G!!!!!%!N"`9%!!!!!%!!J#3"!-!!!!)"!F!N"(J!*!*!B[L!3#3)Ne\rKBdC@3e3!N!F))!!!!3#3#!F!N")"9%9B9&"jG'J!N!Lbed3XYZ9Ym`!!!3`!!!'\rK!*!)TraJ4J!!!--!!I%,!!)!!2rrrri!N!J9%3!!!!)!N!33K!#3'J(CSJ#3(`3\r!N!9IBfKPBfYfCA*cD@pZ,R"j4&C$9!#3%,E83pDfe%2C!!!!a!!!!--!!!!"!*!\rF&4)!!!!#!!)!N!3(!!!!#!3(!*!E!GQL!*!M3fpZG(*TBN4@3e3!N"#fX%e3!*!\r(a3!!!-3!!!!"!*!F&4-!!!!$!!)!N!32!!!!#!3(!*!E!GUL!*!M389$BA"dGA*\rP8'&bFf9b4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K88(PdD!#3#,8Rp'Ze*r4V!!!\r24J!!,*-!N!L&C0[#!!!!a3!"m4%!"!!!rrrrrJ#3#"88!!!!!J#3""+%!*!D!GZ\rL!*!I"!#3"8&&3f&`G(9bC9"KFR0PFLj`H8C@3e3!N!F))!!!!3#3#!F!N")"9%9\rB9&)UBfJ!N!Le*r8PY5Ie*3!!!+S!!!$Y!!!"&!!!"DiY4MGZ!!!!a3!"m4)!"!!\r!rrrrrJ!!,*-!!#f!&48!!!!#!*!%#S3!N"S"fk)!N"m%!*!&FQ9KC'eP,R4iG%4\r@3e3!N"#fe%2@!*!(aJ!!!-3!!!!"!*!F&4B!!!!$!!)!N!3%!!!!#!3(!*!E!GU\rL!*!M3N*3H8C@3e3!N!F))!!!!3#3#!F!N")"9%9B9&"jG'J!N!LeibmZYH-[,J!\r!"6J!!!cF!*!)9Uk[#`!!!-B!!I%8!!3!!2rrrri!N!J9&`!!!!)!N!31K!#3'J(\rFSJ#3(`3!N!93HA4SEfj6E'&fC5j`H8C@3e3!N!F))!!!!3#3#!F!N")"9%9B9&)\rUBfJ!N!Lbed4*YXrSi3!!!VJ!!!6j!*!)p3N#8J!!!-B!!I%9!!3!!2rrrri!!!c\rF!*!%&4J!!!!#!*!%"S3!N"S"h+)!N"m%!*!&8N9"4%e&4PC$9!!M)!#3"!JJ!#!\r"!*!)"`#3%J&#3PK88LTMD!#3#,2DB51cfQ%M!*!+"8i!!!Np%Zk4C!!#-kN!!M1\rX!!3!!2rrrri!N!JE"`!!!!)!N!30K!#3'J(FSJ#3(`3!N!95G@iJBA-J8(PdD'p\rZ4&C$9!#3%,Db'JN!N!I0!!!!a!!!!!%!N"`9+!!!!!-!!J#3"!3!!!!)"!F!N"X\r"fU)!N#0[Ff&Y4PC$9!#3"`JJ!!!"!*!)"`#3%!8!!A0SE'*3HA4S!*!)XZpBUVD\r9`$-!!!M'!!!8c!!!!'J!!!'1em(HUJ!!!-d!!I%Q!!3!!2rrrri!N!J9+3!!!!)\r!N!3-K!#3'J(MSJ#3(`3!N!928d&Y,R"`BbjcE'*%9N08!*!3YV)D#J#3"mi!!!$\r%!!!!!3#3("8U!!!!!`!#!*!%$J!!!!J%"`#3'`(DSJ#3)e"jG'K[EN4PG'9MG'p\rb4PC$9!#3"`JJ!!!"!*!)"`#3%J&TBfpZ68&$8d!!N!Hc4#ZFXd3VR!#3#mB!!!(\rQY23"FJ!'`b)!"X-M!!3!!2rrrri!N!JEYJ!!!!)!N!3&K!#3'J(NSJ#3(`3!N!9\r*BfpZ$8C@3e3"!B!!N!3))!!J!3#3#!F!N")"Eh0KFe4[H9-!N!Lc4#q5Xd3[b`#\r3#KeH!!!c8''"Qr`!!!$1!!(a+3!%!!$rrrrq!*!)&5`!!!!#!*!%$B3!N"S"j+)\r!N"m%!*!&6h"PEP"jG'K[ENaTBNC@3e3"!B!!N!3))!!J!3#3#!F!N")"Eh0KFe4\r[H9-!N!Lf)P9ZYL*9EJ#3#Khm!!!eZh,("5!!!!$1!!(a+J!%!!$rrrrq!*!'-e!\r9,3!!!!)!N!39K!#3'J(NSJ#3(`3!N!92F'9Z8(PdD'pZ6'PL)(GTG'JJ6P0'9N0\r8!*!(##!!!!%!N!J(!*!5!@4dC'*cG'3e!*!)Xd4k'V0%HKS!N!SM,J!!Dd8$Q3*\rD!!!!cJ!"m5X!"!!!rrrrrJ#3#"8Z!!!!!J#3"!k%!*!D!H5L!*!I"!#3"9"jG'K\r[EN4PG'9MG'pb4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K88LTMD!#3#,0+0e+c5MG\r5!!!%0!!!#D8!!!&5!!!"I[L)%G!!!!$1!!(a,!!%!!$rrrrq!*!)&5m!!!!#!*!\r%#S3!N"S"j+)!N"m%!*!&FQ9KC'eP,R4iG%4@3e3!N"#fX%e3!*!(c`!!!-3!!!!\r"!*!F&6!!!!!$!!)!N!3-!!!!#!3(!*!E!GUL!*!M8(PdD'pZ8f0bDA"d4PC$9!#\r3"`JJ!!!"!*!)"`#3%J&849K88(PdD!#3#,,A4&'fA%cI!!!0eJ!!+Ti!N!LG6kU\rZ!!!!c`!"m5i!"!!!rrrrrJ#3#"8a!!!!!J#3"!U%!*!D!H@L!*!I"!#3"@*KCA"\rKBfXZF(P'9N08!*!(##!!!!%!N!J(!*!5!94&@&43HA4S!*!)XYG%8E,A4&%!!!X\r'!!!GA!#3#02$H")!!!$2!!(a,`!%!!$rrrrq!!!URJ#3""8b!!!!!J#3"!Z%!*!\rD!H@L!*!I"!#3"@*KCA4[Efac,R"j4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K88(P\rdD!#3#,,A4&'fA%c+!!!1-!!!-rB!N!J$Q&6Y!!!!c`!"m6!!"!!!rrrrrJ!!4rS\r!N!39-`!!!!)!N!3,K!#3'J(PSJ#3(`3!N!9LB@9dHA"PFbj`H8C@3e3!N!F))!!\r!!3#3#!F!N")"9%9B9&"jG'J!N!Lbed44XYG%83!!$9S!!#D(!*!)1+rGF`!!!-m\r!!I%a!!3!!2rrrri!!([`!*!%&63!!!!#!*!%#S3!N"S"jD)!N"m%!*!&Cf9dB@9\rdC5j`H8C@3e3!N!F))!!!!3#3#!F!N")"9%9B9&"jG'J!N!Lbed44XYG%8J!!$)`\r!!#(P!*!)fDU&EJ!!!-m!!I%b!!3!!2rrrri!!+*h!*!%&68!!!!#!*!%$)3!N"S\r"jD)!N"m%!*!&F(*TER4KCA4P,R"j4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K88(P\rdD!#3#,,A4&#bed43!!!"-!!!!P-!N!MMmKf)!!!!c`!"m6-!"!!!rrrrrJ!!a&`\r!N!390J!!!!)!N!32K!#3'J(PSJ#3(`3!N!93H90MFQP`G&4PFh3ZF(P'9N08!*!\r(##!!!!%!N!J(!*!5!94&@&43HA4S!*!)XYG%8E,A4&%!!!V@!!!I[`#3#%N`aRF\r!!!$2!!(a0!!%!!$rrrrq!!$'V`#3""8h!!!!!J#3"!q%!*!D!H@L!*!I"!#3"9"\rjG'K[EP0MFQP`G#j`H8C@3e3!N!F))!!!!3#3#!F!N")"9%9B9(4dH(3!N!Lbr'k\rKX[aZS3!!"0S!!!Sb!*!)EEHGC`!!!-m!!I%e!!3!!2rrrri!!1CZ!*!%&6J!!!!\r#!*!%#S3!N"S"jD)!N"m%!*!&8Q9KC%eP,R4iG%C@3e3!N!F))!!!!3#3#!F!N")\r"9%9B9&"jG'J!N!Lbed45XYG%8J!!!KS!!!4P!*!)!ehVL`!!!-m!!I%f!!3!!2r\rrrri!!2#J!*!%&6N!!!!#!*!%$B3!N"S"jD)!N"m%!*!&G'9cG'9eC'pbB5j`H84\r@3e3!N"#fX%e4!*!(dJ!!!-3!!!!"!*!F&6m!!!!$!!)!N!3)!!!!#!3(!*!E!GU\rL!*!M8fKPFQa[BfY'9N08!*!(##!!!!%!N!J(!*!5!@PcFh"QEQ4Q!*!)XYG%8V,\rA4&)!!!&5!!!#0!!!!X`!!!TZ(-l%J!!!!0)!!I%p!!3!!2rrrri!N!B#0"9!!!!\r!!J#3"!q%!*!D!HLL!*!I"!#3"9"jG'K[ELeNEf0c,R0bBdC@3e3!N!F))!!!!3#\r3#!F!N")"DA0cF'CZC'B!N!Lf)P9ZYL*9EJ!!!8J!!!)b!!!#fJ!!#Qk+0bb'!!!\r!dJ!"m6i!"!!!rrrrrJ!!$+)!!!l8&8%!!!!#!*!%$S3!N"S"k+)!N"m%!*!&8(P\rdD'pZ,8C"85jcFQ0'9N08!*!(##!!!!%!N!J(!*!5!@PcFh"QEQ4Q!*!)YL*9EVB\rL9@i!!!&H!!!#GJ!!!YB!!!U+$hI0Q!!!!0)!!I%r!!3!!2rrrri!!"P#!!!EZ"9\r#!!!!!J#3"!U%!*!D!HLL!*!I"!#3"9"jG'K[ELjcFQ0'9N08!*!(##!!!!%!N!J\r(!*!5!94&@&4dG(Kd!*!)XYG%8V,A4&)!!!&Z!!!#53#3##rT0fX!!!$5!!(a3!!\r%!!$rrrrq!*!)&8-!!!!#!*!%#S3!N"S"k+)!N"m%!*!&FQ9KC'eP,R4iG%4@3e3\r!N"#fXKS*!*!'!3-!!p'k!!!!!3#3("Qh!!!!!`!#!*!%$!!!!!J%"`#3'`(DSJ#\r3)dPYB@GP5'9XF'9bFdC@3e3!N!F))!!!!3#3#!F!N")"9%9B9&"jG'J!N!Lem6I\rFYI%hh!!!!J3!!!45!*!)leNRN3!%(+!!""bK!!3!!2rrrri!N!JCYJ!!!!)!N!3\r6K!#3'J*ESJ#3(`3!N!9&H(43DAK0BA"AFQ&`F'9b,R"j4PC$9!#3"`JJ!!!"!*!\r)"`#3%J&849K88(PdD!#3#,Aa0pbem6IF!!!,3J!!(FF!N!KERZM9!!3FS!!%(+)\r!"!!!rrrrrJ!!"&)!N!3CY3!!!!)!N!3,K!#3'J*ESJ#3(`3!N!9*E@&RC8eKBbj\r`H8C@3e3!N!F))!!!!3#3#!F!N")"9%9B9&"jG'J!N!Lem6IFYI%hh!!!#)!!!"p\r!!*!)$,[e2`!%(+!!""bM!!3!!2rrrri!!#)C!*!%'E3!!!!#!*!%$B3!N"S#@k)\r!N"m%!*!&6@pfD@99G'PXFbj`H8C@3e3!N!F))!!!!3#3#!F!N")"9%9B9&)UBfJ\r!N!Lem6IZYI%hlJ!!!Li!!!2@!*!)"c#Zj`!%(+!!""bN!!3!!2rrrri!!%&C!*!\r%'E-!!!!#!*!%"S3!N"S#@k)!N"m%!*!&8Q9KC%eP4&C$9!#3%,D`69!!N!B""3!\r%9@J!!!!"!*!F'Id!!!!$!!)!N!32!!!!#!3(!*!E!GUL!*!ME@pbC@CTEQ4PFR4\r[Efac4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K88'PNC3#3#,6mJcbf#*&,!!!3cJ!\r!AEB!!!%i!!!#!al0Nl-!"&9d!!49G3!%!!$rrrrq!*!'AEBCr!!!!!)!N!35K!#\r3'J*USJ#3(`3!N!9YEh*PCQPZC'9bG'p[E(-ZF(P'9N08!*!(##!!!!%!N!J(!*!\r5!94&@&43D@4P!*!)Y2b%ElB)[cX!!!6#!!!,T3!!!A3!!!)$!RZ'p3!%9A3!"&9\rf!!3!!2rrrri!!&qj!!"VAKRl!!!!!J#3""D%!*!D!QUL!*!I"!#3"@e[FQ9QD@j\rNCA*dEfpXFh4PFh3ZF(P'9N08!*!(##!!!!%!N!J(!*!5!94&@&45+Q0S!*!)YJ[\rc2lB,mcm!!!#Q!!!"#`!!!4J!!!@Z"AM&KJ!%9A3!"&9h!!3!!2rrrri!!'eK!!"\rZE"Rk!!!!!J#3"!U%!*!D!QUL!*!I"!#3"A*PB@4YC5jdH(4%9N08!*!3YV"083#\r3"J%&!!49D!!!!!%!N"`Cq3!!!!-!!J#3"!J!!!!)"!F!N"X"fU)!N#0cG(*`G'P\rYC8C@3e3!N!F))!!!!3#3#!F!N")"9%9B9&"jG'J!N!Lf#r14YJ[cQ`!!#bJ!!"k\r1!*!)+QlIk`!%9Bm!"&@3!!!%!!$rrrrq!*!)'IJ!!!!#!*!%#i3!N"S#DD)!N"m\r%!*!&Fh4bF(4TE@8ZF(P%9N08!*!3YV)D#J#3"J%'!!)cT3!!!!%!N"`E"3!!!!-\r!!J#3"!S!!!!)"!F!N"X"fU)!N#08B@*ME'9KEQ9b4PC$9!#3"`JJ!!!"!*!)"`#\r3%J&849K88(PdD!#3#,CfYJ+fGVB#!!!&V!!!$eX!N!J`8U16!!)cc`!#-p!!"!!\r!rrrrrJ#3#"X%!!!!!J#3"!f%!*!D!RHL!*!I"!#3"94KBQ0XC@&ZCA)ZF(P'9N0\r8!*!(##!!!!%!N!J(!*!5!94&@&45+Q0S!*!)YRDf!ECfYJ)!!!2f!!!(a`#3#01\rC2$-!!M22!!)cd3!%!!$rrrrq!!!2@`#3""X$!!!!!J#3""'%!*!D!RHL!*!I"!#\r3"94KBQ0XC@&ZCA)Z8N9"4%e&4&C$9!#3%,E83pF!N!B"#!!(a%-!!#!"!*!F((B\r!!!!$!!)!N!3(!!!!#!3(!*!E!GUL!*!M3N*3H5jXE8C@3e3"!)!!N!3))!!J!3#\r3#!F!N"!&!!&#3Na08LTMD!#3#,E-G-1fc(l2!!!*1!!!&)X!!!&@!!!$"iif@DJ\r!"m4,!!I%6!!%!!$rrrrq!*!)((8!!!!#!*!%"S3!N"S#UU)!N"m%!*!&8(PdD'p\rZ4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K88LTMD!#3#,E'k2HfcqND!!!#"!!!!id\r!!!$3!!!&VT!!pA'Q!!I%5`!(a%i!"!!!rrrrrJ#3#"ad!!!!!J#3"!k%!*!D!UU\rL!*!I"!#3"9"jG'K[EN*#6%dZG(Kd4&C$9!#3%,EQVkDfjUqU!!!!d`!!!--!!!!\r"!*!F&83!!!!#!!)!N!3%!!!!#!3(!*!E!GQL!3#3)N4PE@p%9N08!*!+rj!%!3H\rfjV!SYZD`+!!!!3i!!!%-!!!!!3#3("J6!!!!!`!#!*!%#3!!!!J&"`#3'`)S!!%\r!N#*TER4PFR0XDA"'9N08!*!(##!!!!%!N!J(!*!5!94&@&4$9dP&!*!)XYG%@E,\rA4&N!!!)k!!!(T3#3#1,d[Ai!!!%1!!'V,`!%!!$rrrrq!*!)'"3!!!!#!*!%$S3\r!N"S#+J!"!*!H"3#3"8PZG'9bFfaTF%aTBLjM4PC$9!#3"`JJ!!!"!*!)"`#3%J&\r849K83eG*43#3#,,A4&Qbed4C!!!""J!!!L)!N!LkX(Gb!!!"$J!"Uc!!"!!!rrr\rrrJ!!"k8!N!3B&3!!!!)!N!31K!#3'J)U!!%!N"i&!*!&5@jdCA*cE'P`6'PL,QK\r'9N08!*!(##!!!!%!N!J(!*!5!94&@&4$9dP&!*!)XYG%@E,A4&N!!!F@!!!@b`#\r3#$)IiV%!!!%1!!'V-3!%!!$rrrrq!!!*a`#3""J@!!!!!J#3""'%!*!D!LS!!3#\r3(J8!N!9TER4PFR0XDA"YEf4eE'8ZBdC@3e3!N!F))!!!!3#3#!F!N")"9%9B9&9\rYJ6B!N!Lbed48YZ'GN`!!%&!!!#Iq!*!)cK[N3!!!!0-!!I&#!!-!!2rrrri!!##\r5!*!%&88!!!!#!*!%%)3!N"S"kD)!N"m%!*!&BA"`E'9cBh*TF(3ZD(4YE%C@3e3\r!N!F))!!!!3#3#!F!N")"9%9B9&9YJ6B!N!Lbed48YV0c#!!!(di!!&34!!!!a!!\r!!CVQ!DkP!!!!d`!"m8-!!`!!rrrrrJ!!5*!!!!#FS49'!!!!!J#3"!f%!*!D!HQ\rL!*!I"!#3"@*eD@aND@jR,QKdE@a%9N08!*!3YV"08J#3"p3!!!$6!!!!!3#3("9\r(!!!!!`!#!*!%"`!!!!J%"`#3'`(TSJ#3)f0KE'aNE'a'9N08!*!(##!!!!%!N!J\r(!*!5!94&@&45+Q0S!*!)XaE#JE-@`S%!!!BS!!!0@!#3#$")aC)!!!$8!!(a83!\r%!!$rrrrq!*!)&8J!!!!#!*!%"S3!N"S"kU)!N"m%!*!&FQ9KC'eP4PC$9!#3"`J\rJ!!!"!*!)"`#3%J&849K88(PdD!#3#,-@`S'c&X+"!!!"K!!!!ZX!N!Jfhl@h!!!\r!e!!"m9)!"!!!rrrrrJ!!$9J!N!3953!!!!)!N!33K!#3'J(USJ#3(`3!N!9cB@e\r`E'9MB@aXC'aX,R"j4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K88(PdD!#3#,-@`S'\rc&X+"!!!$+!!!$5S!N!PpilF!!!$8!!(a8`!%!!$rrrrq!!!33`#3""9+!!!!!J#\r3"!k%!*!D!HUL!*!I"!#3"A4PFh4MB@aXC'aX,R"j4&C$9!#3%,Db'JX!N!I9!!!\r!d`!!!!%!N"`95`!!!!-!!J#3"!-!!!!)"!F!N"X"kD)!N#0MCfP'9N08!*!(##!\r!!!%!N!J(!*!5!94&@&43HA4S!*!)XYG%9l,A4&F!!!!m!!!!0!#3#,@'GVd!!!$\r9!!(a9J!%!!$rrrrq!*!)&8d!!!!#!*!%$S3!N"S"kk)!N"m%!*!&BfGTG'9cG#j\rMCfNZF(P'9N08!*!(##!!!!%!N!J(!*!5!A*cFQ058d9%!*!)Y4&lq,84HrJ!N!S\r,9J!!(bBeSG`Z!!!!e3!"m9F!"!!!rrrrrJ#3#"91!!!!!J#3""#%!*!D!HZL!*!\rI"!#3"@0RDA4PFh3ZBfGT,R*cFQ0'9N08!*!(##!!!!%!N!J(!*!5!94&@&43HA4\rS!*!)XYG%9l84HrN!!!+b!!!&Q3#3#$iZfMJ!!!$9!!(a@!!%!!$rrrrq!*!)&8m\r!!!!#!*!%$S3!N"S"kk)!N"m%!*!&FQ9KE'0RDA4PFh3ZF(P'9N08!9+!!*!%##!\r!)!%!N!J(!*!2`!F!!8&38%a3HA3i)!#3"l8"YJfe!EB0!!!$cJ!!"iJ!!"*)!!!\rUA9"kBjF!"X0@!!E$9`!%!!$rrrrq!*!)'l8!!!!#!*!%#i3!N"S"kk)!N"m%!*!\r&BfGTG'9cG#jMCfP'9N08!*!(##!!!!%!N!J(!*!5!94&@&408dP&!*!)XYG%9,8\r4Hpd!!!LL!!!6'!#3#%*m%pJ!!!$6!!(a4!!$!!$rrrrq!*!)&9!!!!!#!*!%#)3\r!N"S"kD)!N"m%!*!&BfGT,QKdE@a'9N08!*!(##!!!!%!N!J(!*!5!94&@&49EB%\rf!*!)XYG%9,AJLIF!!!2U!!!(eJ#3#+VC5b%!!!$6!!(a43!$!!$rrrrq!!!6'!#\r3""94!!!!!J#3"!U%!*!D!HN!!3#3(J8!N!9PE@*PC#jSG'eX4&C$9!#3#[q3"!%\r(YZD`+,EQX#J!!!%0!!!"$!!!!!%!N"`B$`!!!!-!!J#3"!8!!!!)"3F!N"X#+!!\r"!*!LC@eLC@4'9N08!*!(##!!!!%!N!J(!*!5!94&@&4$9dP&!*!)XYG%9l,A4&F\r!!!,1!!!&X3#3#(L58[3!!!%0!!'V,!!%!!$rrrrq!*!)'"!!!!!#!*!%"S3!N"S\r#+3!"!*!H"3#3"@4PE@mZBdC@3e3!N!F))!!!!3#3#!F!N")"68e3FN0A588!N!L\rbed4AXYG%9`!!#eS!!'([!*!)G9V6&J!!!3d!!DXY!!3!!2rrrri!N!JB%3!!!!)\r!N!30K!#3'J)T!!%!N"i&!*!&C@eLC@4NC@e[,R"bDN4@3e3!N"#e1R0'Y6Tc43!\r!!0B!!!$6!!!!!3#3("95!!!!!`!#!*!%#!!!!!J%"`#3'`(TSJ#3)f9iB@e`E'8\r`4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K88(PdD!#3#,,A4&Lbed4B!!!"ZJ!!"!i\r!N!KNTQQc!!!!eJ!"m9S!"!!!rrrrrJ#3#"96!!!!!J#3"!b%!*!D!HbL!*!I"!#\r3"@0SC@0VG'9iG#j`H8C@3e3!N!F))!!!!3#3#!F!N")"9%9B9&9YJ6B!N!Lbed4\r8XYG%9!!!"f)!!"#r!*!)(M%#!*!%d`!"m8B!!`!!rrrrrJ!!"!i!N!399!!!!!)\r!N!30K!#3'J(TSJ#3(`3!N!9PH'&YF'aP-#jSG'eX4&C$9!#3%,D`69)!N!IA!!!\r!d`!!!!%!N"`993!!!!-!!J#3"!J!!!!)"!F!N"X"kD)!N#0PH'&YF'aP-8C@3e3\r!N!F))!!!!3#3#!F!N")"4dP'CQpRE'8!N!LdEZ&eY'lKGJ!!#3`!!!S+!*!)&+I\rek3!!!0F!!I&F!!3!!2rrrri!N!J99J!!!!)!N!32K!#3'J(YSJ#3(`3!N!9NER0\rXEfpVGA!Y-5jRD@C'9N08!*!(##!!!!%!N!J(!*!5!94&@&43HA4S!*!)Y'lKGV9\reVq)!!!+m!!!'2J#3#,Sdi6X!!!$A!!(aA3!%!!$rrrrq!*!)&9F!!!!#!*!%$S3\r!N"S"lD)!N"m%!*!&C'jcE'p[Dh9`,6%ZF(P'9N08!*!(##!!!!%!N!J(!*!5!A*\rcFQ058d9%!*!)Y'lKGV4ZiAB!N!S"JJ!!!IV1U-[P!!!!e`!"m9i!"!!!rrrrrJ#\r3#"9B!!!!!J#3""#%!*!D!HfL!*!I"!#3"@4ZFfa[EfYeF#da,R*cFQ0'9N08!*!\r(##!!!!%!N!J(!*!5!94&@&406e06!*!)XYG%9,4Zi9`!!"!L!!!Q%!#3#&Y#94N\r!!!$6!!(a4`!$!!$rrrrq!*!)&9N!!!!#!*!%$B3!N"S"kD)!N"m%!*!&CAKKEA"\rXC6%ZD(4YE%4@3e3!N"#fXKS-!*!(f!!!!0-!!!!"!*!F&9S!!!!$!!)!N!3)!!!\r!#!3(!*!E!HQL!*!MCAKKEA"XC6*'9N08!*!(##!!!!%!N!J(!*!5!8G*4QC[Cfa\rP!*!)Y'lKGl4ZiAF!!!Ud!!!,U!#3#2MVdiN!!!$B!!(aB!!%!!$rrrrq!*!)&9X\r!!!!#!*!%$i3!N"S"lU)!N"m%!*!&C'jcE'p[Dh9`,6)ZCfPQ4PC$9!#3"`JJ!!!\r"!*!)"`#3%J&849K88(PdD!#3#,4ZiAHfX@FS!!!$dJ!!#MS!N!MUE&BC!!!!f!!\r"m@%!"!!!rrrrrJ#3#"9F!!!!!J#3"!k%!*!D!HkL!*!I"!#3"@4ZFfa[EfYeF#d\rb,R"j4PC$9!#3"`JJ!!!"!*!)"`#3%J&bFh*M8P0&4!#3#,4ZiAHdEZ&h!*!+!FJ\r!!!*KBSQQ@`!!!0J!!I&L!!3!!2rrrri!N!J9A3!!!!)!N!33K!#3'J(ZSJ#3(`3\r!N!9NER0XEfpVGA!Y-LjbFh*M4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K868p68`#\r3#,,A4&@dEZ&G!!!0Y!!!)1J!N!K[D-A&!!!!d`!"m8J!!`!!rrrrrJ#3#"9H!!!\r!!J#3"!f%!*!D!HQL!*!I"!#3"@9iB@e`E'8b,QKdE@a'9N08!*!(##!!!!%!N!J\r(!*!5!94&@&406e06!*!)XYG%9EAJLL-!!![%!!!FX`#3#0b,9UF!!!$6!!(a53!\r$!!$rrrrq!!!Jk!#3""9I!!!!!J#3"!f%!*!D!HQL!*!I"!#3"@CbC@9kD@jR,QK\rdE@a%9N08!*!3YV"08J#3"pN!!!$6!!!!!3#3("9J!!!!!`!#!*!%#J!!!!J%"`#\r3'`(TSJ#3)fKdE@`ZD@0[ER0'9N08!*!(##!!!!%!N!J(!*!5!A4dFQpdG(Kd!*!\r)Y5IQFE8RjR%!!$Ek!!!hK!#3#(SbR,m!!!$C!!(aC!!%!!$rrrrq!*!)&@%!!!!\r#!*!%$S3!N"S"lk)!N"m%!*!&Bh*PBA4PE@&VC5j`EQG'9N08!*!(##!!!!%!N!J\r(!*!5!8G*4QC[CfaP!*!)XaE#JV-@`S)!!!+F!!!$mJ#3#+LUDMB!!!$C!!(aC3!\r%!!$rrrrq!*!)&@)!!!!#!*!%$)3!N"S"lk)!N"m%!*!&E@YKF("XCA3ZCfPQ4PC\r$9!#3"`JJ!!!"!*!)"`#3%J&(58CQEfGXC3#3#,-@`S+c&X+#!!!C@!!!'8m!N!M\rj$&mJ!!!!f3!"m@B!"!!!rrrrrJ!!!r)!N!39B`!!!!)!N!30K!#3'J([SJ#3(`3\r!N!9YEf4eE'&dEh)ZCfPQ4PC$9!#3"`JJ!!!"!*!)"`#3%J&(58CQEfGXC3#3#,-\r@`S+c&X+#!!!2R!!!%)F!N!JVT'kH!!!!f3!"m@F!"!!!rrrrrJ!!(8%!N!39C!!\r!!!)!N!3,K!#3'J([SJ#3(`3!N!9[F(4TEfjc,QGTCNC@3e3!N!F))!!!!3#3#!F\r!N")"4dP'CQpRE'8!N!Lc&X+#XaE#JJ!!%ri!!"6J!*!)APKS5!!!!0N!!I&S!!3\r!!2rrrri!!#h)!*!%&@8!!!!#!*!%$i3!N"S"lk)!N"m%!*!&F(*PCQ9bC@jMCA-\rZCfPQ4PC$9!#3"`JJ!!!"!*!)"`#3%J&(58CQEfGXC3#3#,-@`S+c&X+#!!!#N!!\r!!!2X!*!)F3T5mJ!!!0N!!I&T!!3!!2rrrri!!%+S!*!%&@B!!!!#!*!%#S3!N"S\r"lk)!N"m%!*!&F(PdD'pZ,QGTCN4@3e3!N"#fX%e5!*!(fJ!!!0-!!!!"!*!F&@F\r!!!!$!!)!N!3*!!!!#!3(!*!E!HQL!*!MD@eRBR*[Gh0P4PC$9!#3"`JJ!!!"!*!\r)"`#3%J&849K88(PdD!#3#,,A4&Qbed4C!!!%R!!!$"S!N!M&Qr6D!!!!fJ!"m@X\r!"!!!rrrrrJ#3#"9S!!!!!J#3"!b%!*!D!I#L!*!I"!#3"@PYCf*bEhGcC5j`H8C\r@3e3!N!F))!!!!3#3#!F!N")"9%9B9&"jG'J!N!Lbed4CYKN,Y!!!!VS!!!A5!*!\r)ir#6``!!!0S!!I&X!!3!!2rrrri!!!`D!*!%&@N!!!!#!*!%$)3!N"S"m+)!N"m\r%!*!&E@&MAfPYB@GP,R"j4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K868p68`#3#,,\rA4&@e*r8b!!!+QJ!!'4d!N!MHC9XE!!!!d`!"m8S!!`!!rrrrrJ!!%H`!N!39DJ!\r!!!)!N!3+K!#3'J(TSJ#3(`3!N!9TEQ4PH#jSG'eX4PC$9!#3"`JJ!!!"!*!)"`#\r3%J&849K868p68`#3#,8RjP#e*qUY!!!B,!!!3@)!N!JL$A[l!!!!d`!"m8X!!`!\r!rrrrrJ!!+`N!N!39D`!!!!)!N!35K!#3'J(TSJ#3(`3!N!9YF(GPH(4PER0TEfj\rc,QKdE@a%9N08!*!3YV)D$!#3"pX!!!$6!!!!!3#3("9X!!!!!`!#!*!%#J!!!!J\r%"`#3'`(TSJ#3)e"*3e4LFQphFf9'9N08!*!(##!!!!%!N!J(!*!5!94&@&43HA4\rS!*!)XYG%9lD"0#J!!!Cq!!!3b!#3#&NRG*B!!!$E!!(aEJ!%!!$rrrrq!*!)&@d\r!!!!#!*!%$B3!N"S"mD)!N"m%!*!&BfPMEQ*bEhGcC5j`H8C@3e3!N!F))!!!!3#\r3#!F!N")"9%9B9&"jG'J!N!Lbed4@YS%d-!!!"RS!!"$!!*!)JN%1L!!!!0X!!I&\r[!!3!!2rrrri!!"$)!*!%&@i!!!!#!*!%$B3!N"S"mD)!N"m%!*!&58026Q*bEhG\rcC5j`H8C@3e3!N!F))!!!!3#3#!F!N")"9%9B9&"jG'J!N!LdL8$3YT1Qj3!!"P)\r!!!rM!*!)8E@cS3!!!0X!!I&`!!3!!2rrrri!!#')!*!%&@m!!!!#!*!%%)3!N"S\r"mD)!N"m%!*!&EfaN8%P$9'*bEhGcC5j`H8C@3e3!N!F))!!!!3#3#!F!N")"FR0\rbBe*6483!N!LdL8$3Y)P!d!#3#rJ!!!'8N!$MdSX!!!$E!!(aF3!%!!$rrrrq!*!\r)&A!!!!!#!*!%%S3!N"S"mD)!N"m%!*!&EfaN8%P$9'*bEhGcC5jbFh*M4PC$9!#\r3"`JJ!!!"!*!)"`#3%J&849K88(PdD!#3#,,A4&DfJ63e!!!&YJ!!$F!!N!LE2%9\rc!!!!f`!"mA)!"!!!rrrrrJ#3#"9a!!!!!J#3"!f%!*!D!I'L!*!I"!#3"9"*3e4\rLFQphFf8ZF(P'9N08!*!(##!!!!%!N!J(!*!5!A*cFQ058d9%!*!)Y)P!cl5*3-m\r!N!S"B!!!!Updaqki!!!!f`!"mA-!"!!!rrrrrJ#3#"9b!!!!!J#3"!q%!*!D!I'\rL!*!I"!#3"9"*3e4LFQphFf8ZFR0bBdC@3e3!N!F))!!!!3#3#!F!N")"9%9B9&"\rjG'J!N!Lbed4@YS%d13!!"TS!!"$i!*!))L31P!!!!0X!!I&d!!3!!2rrrri!N!J\r9F`!!!!)!N!31K!#3'J(aSJ#3(`3!N!935808BR*[Gh0P-Lj`H8C@3e3!N!F))!!\r!!3#3#!F!N")"9%9B9&9YJ6B!N!Lbed49XYG%93!!'e`!!%63!*!)JLTCY3!!!0-\r!!I&-!!-!!2rrrri!!"$i!*!%&A3!!!!#!*!%$)3!N"S"kD)!N"m%!*!&F'aeCfP\rZFbjSG'eX4&C$9!#3%,8kFdDe1R0'!!!!h!!!!0-!!!!"!*!F&A8!!!!$!!)!N!3\r)!!!!#!3(!*!E!HQL!*!MF(*TER4TEQG'9N08!*!(##!!!!%!N!J(!*!5!94&@&4\r3HA4S!*!)XYG%@V,A4&S!!!6'!!!+Z3#3#)X%P(`!!!$F!!(aGJ!%!!$rrrrq!*!\r)&AB!!!!#!*!%$i3!N"S"mU)!N"m%!*!&8(*TER4TEQG%C@e[,R"j4&C$9!#3%,8\rkFdDe1R0'!!!!h3!!!0-!!!!"!*!F&AF!!!!$!!)!N!3*!!!!#!3(!*!E!HQL!*!\rMFA9TBfYdD@eP4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K88(PdD!#3#,,A4&Ubed4\rD!!!#iJ!!"Gi!N!M1+Y5J!!!!h3!"mAJ!"!!!rrrrrJ#3#"9i!!!!!J#3""#%!*!\rD!I1L!*!I"!#3"8e[GQPP5@jAD@jNEhFZF(P'9N08!*!(##!!!!%!N!J(!*!5!94\r&@&43HA4S!*!)XYG%@V,A4&S!!!5H!!!+#J#3#"GLEN%!!!$G!!(aH3!%!!$rrrr\rq!!!&hJ#3""9j!!!!!J#3""1%!*!D!I1L!*!I"!#3"9CPFRP6D@e`E'93E'&jCA)\rZF(P%9N08!*!3Y6Tc4l8kFdB!!!$H!!!!d`!!!!%!N"`9HJ!!!!-!!J#3"!N!!!!\r)"!F!N"X"kD)!N#0bCA0[GA*MCA0'9N08!*!(##!!!!%!N!J(!*!5!94&@&43HA4\rS!*!)Y40c-V86Fc)!!!*d!!!&QJ#3#!h%)!B!!!$H!!(aH`!%!!$rrrrq!*!)&AX\r!!!!#!*!%#S3!N"S"p+)!N"m%!*!&Bfp`HA*PFbj`H8C@3e3!N!F))!!!!3#3#!F\r!N")"9%9B9&"jG'J!N!Lbed4DXYG%@J!!!GS!!!82!*!)kV2bm`!!!0i!!I&m!!3\r!!2rrrri!!!@D!*!%&A`!!!!#!*!%#S3!N"S"p+)!N"m%!*!&E'PcG(*PFbj`H84\r@3e3!N"#e1R0(Y6Tc4J!!!1!!!!$6!!!!!3#3("@"!!!!!`!#!*!%"3!!!!J%"`#\r3'`(TSJ#3)h0[G@jN4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K88(PdD!#3#,,A4&Z\rbed4E!!!'FJ!!$r)!N!MS#k6R!!!!i!!"mB)!"!!!rrrrrJ#3#"@#!!!!!J#3"!L\r%!*!D!IDL!*!I"!#3"@e[FR0P,R"j4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K88(P\rdD!#3#,,A4&Zbed4E!!!%d!!!$5S!N!Mq#mHG!!!!i!!"mB-!"!!!rrrrrJ!!$r)\r!N!39J`!!!!)!N!3,K!#3'J(fSJ#3(`3!N!9YEh*cC@aTBLj`H8C@3e3!N!F))!!\r!!3#3#!F!N")"9%9B9&"jG'J!N!Lbed4FXYG%A!!!!B`!!!5-!*!)EePIb!!!!1!\r!!I'%!!3!!2rrrri!!"dF!*!%&B3!!!!#!*!%#i3!N"S"pU)!N"m%!*!&F'aKH@&\rTCQBZF(P%9N08!*!3YV"08`#3"q%!!!$6!!!!!3#3("@&!!!!!`!#!*!%"J!!!!J\r%"`#3'`(TSJ#3)h0`C@9MD%C@3e3!N!F))!!!!3#3#!F!N")"9%9B9&"jG'J!N!L\rbed4FY1Y)rJ!!"dS!!"9b!*!)@-%fj!!!!1%!!I''!!3!!2rrrri!N!J9KJ!!!!)\r!N!3)K!#3'J(hSJ#3(`3!N!9RFQ&TE#j`H8C@3e3!N!F))!!!!3#3#!F!N")"9%9\rB9&"jG'J!N!Lbed4FXYG%A!!!!B)!!!*U!*!)+(Ud6`!!!1%!!I'(!!3!!2rrrri\r!!"9b!*!%&BF!!!!#!*!%"S3!N"S"pk)!N"m%!*!&D(9Y,R"j4PC$9!#3"`JJ!!!\r"!*!)"`#3%J&849K83eG*43#3#,,A4&bbed4F!!!pm!!!X4!!N!K2b*G2!!!!i3!\r"mBJ!"!!!rrrrrJ#3#"@)!!!!!J#3"!D%!*!D!IHL!*!I"!#3"90$8NP39%4@3e3\r!N"#e1R0(Y6Tc4J!!!1)!!!$6!!!!!3#3("@*!!!!!`!#!*!%#!!!!!J%"`#3'`(\rTSJ#3)h4PH(4PC'Pd4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K88(PdD!#3#,,A4&f\rbed4G!!!*`J!!(mS!N!M&9R%U!!!!iJ!"mBS!"!!!rrrrrJ#3#"@+!!!!!J#3"!D\r%!*!D!ILL!*!I"!#3"A"PC#j`H8C@3e3!N!F))!!!!3#3#!F!N")"9%9B9&9YJ6B\r!N!Lbed49XYG%93!!$ZJ!!#8l!*!)R1+-Q!!!!0-!!I&0!!-!!2rrrri!!"r+!*!\r%&BX!!!!#!*!%$B3!N"S"kD)!N"m%!*!&G'9iG'9NDA3ZD(4YE%C@3e3!N!F))!!\r!!3#3#!F!N")"9%9B9&9YJ6B!N!Lbed4@YH#,S`!!(H3!!%eS!*!)ciE3I!!!!0-\r!!I&1!!-!!2rrrri!!%8&!*!%&B`!!!!#!*!%#S3!N"S"kD)!N"m%!*!&GA0TEQF\rZD(4YE%4@3e3!N"#fXKS0!*!(i`!!!0-!!!!"!*!F&Bd!!!!$!!)!N!3&!!!!#!3\r(!*!E!HQL!*!MGf&cG'9'9N08!*!(##!!!!%!N!J(!*!5!94&@&43HA4S!*!)XYG\r%AEDFfjN!!"Ck!!"54!#3#(9-D`X!!!$M!!(aM!!%!!$rrrrq!*!)&Bi!!!!#!*!\r%#B3!N"S"qD)!N"m%!*!&D(4YE'9N,R"j4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K\r88(PdD!#3#,,A4&ffR0ZC!!!4FJ!!2S%!N!MYmQ'd!!!!i`!"mBd!"!!!rrrrrJ!\r!8N3!N!39M`!!!!)!N!3(K!#3'J(jSJ#3(`3!N!9cGf9N,R"j4PC$9!#3"`JJ!!!\r"!*!)"`#3%J&849K88(PdD!#3#,,A4&ffNkEQ!!!-)!!!+'`!N!M!MGG+!!!!i`!\r"mBi!"!!!rrrrrJ!!N!$&!*!%&C!!!!!!!J#3"!D%!*!D!IQL!*!I"!#3"AGPC#j\r`H8C@3e3!N!F))!!!!3#3#!F!N")"9%9B9&9YJ6B!N!Lbed4@XYG%9J!!#-J!!"0\rC!*!)-Z5(%J!!!0-!!I&2!!-!!2rrrri!!,Na!*!%&C%!!!!#!*!%#S3!N"S"kD)\r!N"m%!*!&Gf&cG'8ZD(4YE%4@3e3!N"#fX%e4YV"083!!!3m!!iZJ!!!!!3#3("M\r$!!!!!`!#!*!%#`!!!!J%"`#3'`(TSJ#3)f&`F'aPFf0bDA"d4&C$9!#3%,D`69%\r!N!B"$`!$Lkm!!!!"!*!F'-)!!!!%!!)!N!3*!!!!#!3(!*!E!MbL!*!M4'PcDep\r$Eh"j4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K88(PdD!#3#,A'%*+eaKXp!!!"*J!\r!!Xm!N!L-Nkjp!!1,X3!$Ll)!"3!!rrrrrJ#3#"M"!!!!!J#3"!Z%!*!D!MfL!*!\rI"!#3"9pID@jTG&pI,R"j4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K88(PdD!#3#,A\r'%)QeaK#1!!!,N!!!!$U)!*!)$V)DM3!$Ll%!!iZc!!8!!2rrrri!!!,2!*!%'-!\r!!!!#!*!%%B3!N"S#2D)!N"m%!*!&8h"PBfPKE&p&GQ9ZG(-ZF(P'9N08!*!(##!\r!!!%!N!J(!*!5!94&@&43HA4S!*!)YFB3K,A'%)3!!!lL!!!kr!#3#$#4618!!iZ\ra!!1,Y!!&!!$rrrrq!!!p9`#3""Lr!!!!!J#3""'%!*!D!MfL!*!I"!#3"90dB@j\rNBA*NAe0eDA4P,R"j4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K88(PdD!#3#,A'%)k\reaK#3!!!!!rJ!!"S5!*!)9XJNG!!$Ll%!!iZe!!8!!2rrrri!!(K6!*!%',i!!!!\r#!*!%%B3!N"S#2D)!N"m%!*!&9A4TE'PdH9p&GQ9ZG(-ZF(P'9N08!*!(##!!!!%\r!N!J(!*!5!94&@&43HA4S!*!)YFB2clA''fd!!!$Q!!!"HJ!!!4J!!!@Zr1"dCJ!\r$Lkm!!iZ`!!3!!2rrrri!!**P!!#6haLp!!!!!J#3"!Z%!*!D!MbL!*!I"!#3"@e\rKDf9NDA0V,R"j4&C$9!#3%,Db'Jd!N!B"%!!'`c`!!!!"!*!F'l3!!!!$!!)!N!3\r(!!!!#!3(!*!E!HQL!*!M8'aeCdPZFdC@3e3!N!F))!!!!3#3#!F!N"!&!!&cD'a\rL8(PdD!#3#,AUq`Hek[X(!!!#mJ!!"FX!!!"U!!!"PVVFBe-!"X0h!!E$H!!%!!$\rrrrrq!*!)'l-!!!!#!*!%&)3!N"S#I+)!N"m%!*!&BfpZG(*[E(0dFQP`,R"`Bbj\rcE'*%9N08!*!3YY4$h3#3"q3!!!$$!!!!!3#3("@5!!!!!J!#!*!%!`!!!!J%"`#\r3'`(CSJ#3)daTBNC@3e3!N!F))!!!!3#3#!F!N")"9%9B9&"jG'J!N!Lbed4LYUS\r4b!!!"!i!!!VE!*!)$jfC13!!!13!!I'3!!!$!!$rrrrq!*!)&C-!!!!#!*!%$)3\r!N"S"qU)!N"m%!*!&3A9ND@pIE@&M,R"j4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K\r88(PdD!#3#,,A4'1fY,[I!!!+@J!!(6B!N!J2l1#E!!!!j!!"mC)!!`!!rrrrrJ!\r!#YX!N!39P3!!!!)!N!30K!#3'J(kSJ#3(`3!N!9LG@PXC(4[Efac,R"j4PC$9!#\r3"`JJ!!!"!*!)"`#3%J&849K88(PdD!#3#,,mEU@eGE"C!!!'HJ!!%K%!N!LL3EU\r@!!!!j!!"mC-!!`!!rrrrrJ!!+"%!N!39PJ!!!!)!N!3+K!#3'J(kSJ#3(`3!N!9\rMCQeQD@aP,R"j4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K88(PdD!#3#,,A4'5bed4\rN!!!%`J!!$A-!N!Jmq*%G!!!!j!!"mC3!!`!!rrrrrJ!!1L)!N!39P`!!!!)!N!3\r)K!#3'J(kSJ#3(`3!N!9NBQeKBbj`H8C@3e3!N!F))!!!!3#3#!F!N")"9%9B9&"\rjG'J!N!Lbed4MYVLQl3!!%F)!!$qH!!!"-J!!!KpL,162!!!!j!!"mC8!!`!!rrr\rrrJ!!4j8!!)Fc&CJ!!!!#!*!%$S3!N"S"qU)!N"m%!*!&4@&cH84TB@a[Ch-ZF(P\r'9N08!*!(##!!!!%!N!J(!*!5!94&@&43HA4S!*!)XYG%C,Aa0r!!!!-+!!!,k`#\r3#$IZB-`!!!$N!!(aPJ!$!!$rrrrq!!#*8J#3""@C!!!!!J#3"!k%!*!D!IUL!*!\rI"!#3"@CTEQ4PFR4[Efac,R"j4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K88(PdD!#\r3#,,A4'1fe'#q!!!I)!!!FS-!N!MNM,kF!!!!j!!"mCJ!!`!!rrrrrJ!!P6d!N!3\r9Q`!!!!)!N!3-K!#3'J(kSJ#3(`3!N!9'FQ&YC9G[FQXZF(P'9N08!*!(##!!!!%\r!N!J(!*!5!94&@&43HA4S!*!)XYG%C,DFfj`!!!L1!!!DR!#3#(p+0p8!!!$N!!(\raQ3!$!!$rrrrq!!%(`!#3""@F!!!!!J#3"!@%!*!D!IUL!*!I"!#3"@PM,R"j4&C\r$9!#3%,Db'Jm!N!IP!!!!j!!!!!%!N"`9R3!!!!-!!J#3"!d!!!!)"!F!N"X"qU)\r!N#0XD@)YFf0bDA"dD@jR4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K88(PdD!#3#,,\rmEUDbr'kQ!!!@r!!!QU!!N!K9U#iD!!!!j3!"mDF!"!!!rrrrrJ#3#"@H!!!!!J#\r3""5%!*!D!IZL!*!I"!#3"8&`F'aP8f0bDA"dAe0eDA4P,R"j4PC$9!#3"`JJ!!!\r"!*!)"`#3%J&849K88(PdD!#3#,@jTb'eZDFK!!!*d!!!,@!!N!LKbNX0!!!!j3!\r"mDJ!"!!!rrrrrJ#3#"@I!!!!!J#3""f%!*!D!IZL!*!I"!#3"80[C'9ABA*bD@p\rbAe0dB@jNBA*NAe0eDA4P,R"j4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K88(PdD!#\r3#,,A4'Dbed4Q!!!&+J!!*N!!N!K",hq3!!!!!18!!I'T!!3!!2rrrri!!#eJ!*!\r%&D!!!!!#!*!%%i3!N"S"qk)!N"m%!*!&4QPZC'9bAcGI-&p6G@PdC5j`H8C@3e3\r!N!F))!!!!3#3#!F!N")"9%9B9&"jG'J!N!Lbr'kQX[aZTJ!!)1J!!-T@!*!)dcr\rN6J!!!18!!I'U!!3!!2rrrri!N!J9S3!!!!)!N!32K!#3'J(lSJ#3(`3!N!9'D@j\rNCA*I8h9TG'8ZF(P'9N08!*!(##!!!!%!N!J(!*!5!94&@&43HA4S!*!)YFB"GEA\r'!A8!!#D!!!$GFJ#3#'N+'[`!!!$P!!(aU`!%!!$rrrrq!*!)&D)!!!!#!*!%'B3\r!N"S"qk)!N"m%!*!&6@9dFQphCA*VFep6D'9XE&p6G@PdC5j`H8C@3e3!N!F))!!\r!!3#3#!F!N")"9%9B9&"jG'J!N!Lbed4RXYG%C`!!#J3!!#FH!*!)PH#f6`!!!18\r!!I'X!!3!!2rrrri!N!J9S`!!!!)!N!3EK!#3'J(lSJ#3(`3!N!94G@PMDd4bBAG\rI4h*KF'KTBh0I8h9TG'8ZF(P'9N08!*!(##!!!!%!N!J(!*!5!94&@&4$9dP&!*!\r)XYG%Cl,A4'F!!!*F!!!&k3#3#'ZS&mX!!!$P!!(aV3!%!!$rrrrq!!!R(J#3""@\rN!!!!!J#3""q%!*!D!IZL!*!I"!#3"9&eD@0V4(*KGep(FQ&`D'PMFep6GA"`E'9\rYC@jdB@a'9N08!*!(##!!!!%!N!J(!*!5!94&@&43HA4S!*!)XYG%Cl,A4'F!!!+\rf!!!,KJ#3#,!CSHX!!!$P!!(aVJ!%!!$rrrrq!!!Y"`#3""@P!!!!!J#3""'%!*!\rD!IZL!*!I"!#3"9*PFA9TFQ9NAe0eDA4P,R"j4PC$9!#3"`JJ!!!"!*!)"`#3%J&\r849K88(PdD!#3#,,mEUfbr'kY!!!1Z!!!6'B!N!MrdILD!!!!j3!"mDm!"!!!rrr\rrrJ!!1)d!N!39TJ!!!!)!N!34K!#3'J(lSJ#3(`3!N!96G'&ZC'&bC&p6G@PdC5j\r`H8C@3e3!N!F))!!!!3#3#!F!N")"9%9B9&"jG'J!N!Lbr'kYX[aZV3!!!T!!!!!\r&1!#3#2plBR%!!!$P!!(aX!!%!!$rrrrq!!#%m`#3""@R!!!!!J#3""@%!*!D!IZ\rL!*!I"!#3"90dB@jNBA*NAe956&pcG@PdC5j`H8C@3e3!N!F))!!!!3#3#!F!N")\r"9%9B9&"jG'J!N!Lbed4RXYG%C`!!!Z!!!!Fm!*!))q[aj3!!!18!!I'a!!3!!2r\rrrri!!)SV!*!%&DJ!!!!#!*!%$S3!N"S"qk)!N"m%!*!&9'&LE'9I8h9TG'8ZF(P\r'9N08!*!(##!!!!%!N!J(!*!5!94&@&43HA4S!*!)XYG%D,,A4'J!!!6f!!!1i`#\r3#!%eGdS!!!$P!!(aXJ!%!!$rrrrq!!#4C`#3""@T!!!!!J#3"!f%!*!D!IZL!*!\rI"!#3"94PH(4I8h9TG'8ZF(P'9N08!*!(##!!!!%!N!J(!*!5!94&@&43HA4S!*!\r)XYG%D,,A4'J!!!GU!!!KK`#3##$&GGF!!!$P!!(aX`!%!!$rrrrq!!#J5J#3""@\rU!!!!!J#3""1%!*!D!IZL!*!I"!#3"94jF'9I6Q&YCA0I8h9TG'8ZF(P'9N08!*!\r(##!!!!%!N!J(!*!5!94&@&43HA4S!*!)X[aZVE,mEUd!!!PZ!!!fe!#3#2ZB&,d\r!!!$P!!(aY!!%!!$rrrrq!!$"d3#3""@V!!!!!J#3"!b%!*!D!IZL!*!I"!#3"9G\rA9ep6G@PdC5j`H8C@3e3!N!F))!!!!3#3#!F!N")"9%9B9&"jG'J!N!LeYN%!YEC\r+2!!!$lS!!&13!!#3#%MGd[d!"X1R!!E$UJ!%!!$rrrrq!!$iT3#3""Zb!!!!!J#\r3""5%!*!D!IZL!*!I"!#3"80[C'9ABA*bD@pbAh0eDA4P,R"j4PC$9!#3"`JJ!!!\r"!*!)"`#3%J&849K88(PdD!#3#,@f5P+eYNUP!!!*Z!!!+qS!N!KRGMiT!!E$T`!\r'`ki!"!!!rrrrrJ!"6$8!N!3EX3!!!!)!N!3FK!#3'J(lSJ#3(`3!N!90CA4bEhG\rPFQYcAe0dB@jNBA*NAe0eDA4P,R"j4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K88LT\rMD!#3#,ALh0#eiYc3!!!!6!!!!%m!!!%B!!!&VS+1GAi!"X1R!!E$X3!%!!$rrrr\rq!*!)'l!!!!!#!*!%"S3!N"S"qk)!N"m%!*!&8Q9KC%eP4&C$9!#3%,E$-qd!N!I\rQ!!!!j!!!!!%!N"`9V!!!!!-!!J#3"!X!!!!)"!F!N"X"qU)!N#0XD@)YG'p[E'*\r[H%C@3e3!N!F))!!!!3#3#!F!N")"9%9B9&"jG'J!N!Lbed4VYPa-j!!!$!i!!#@\r%!*!)lSp!(3!!!1B!!I'i!!3!!2rrrri!N!J9V`!!!!)!N!3*K!#3'J(mSJ#3(`3\r!N!9KCA"KBfXZF(P'9N08!*!(##!!!!%!N!J(!*!5!94&@&43HA4S!*!)XYG%DlA\r'!#N!!!Y'!!!H#`#3#'9@Pe3!!!$Q!!(aZJ!%!!$rrrrq!!!PK!#3""@a!!!!!J#\r3"!U%!*!D!IbL!*!I"!#3"@&PG'p[E(-ZF(P'9N08!*!(##!!!!%!N!J(!*!5!94\r&@&43HA4S!*!)XYG%E,CF60%!!!hF!!!ch!#3#1a&cq`!!!$Q!!(aZ`!%!!$rrrr\rq!!"$M`#3""@b!!!!!J#3"!U%!*!D!IbL!*!I"!#3"@&PG(P`CA-ZF(P'9N08!*!\r(##!!!!%!N!J(!*!5!94&@&43HA4S!*!)X`@S%lD[BkS!!""Z!!"AU`!!!(S!!!'\rD)hk4DJ!!!1B!!I'm!!3!!2rrrri!!(GV!!$2&K@c!!!!!J#3"!f%!*!D!IbL!*!\rI"!#3"8&`F'9KFQ&ZBf8ZF(P'9N08!*!(##!!!!%!N!J(!*!5!94&@&43HA4S!*!\r)XYG%DED[BkS!!#"m!!#*R!!!!(`!!!'DNdPcX!!!!1B!!I'p!!3!!2rrrri!N!J\r9Y!!!!!)!N!31K!#3'J(mSJ#3(`3!N!9"F("XC89fC@jdFbj`H8C@3e3!N!F))!!\r!!3#3#!F!N")"9%9B9&"jG'J!N!Lec,UYYUpMUJ!!!Ni!!!D5!*!)(("&9!!!!1B\r!!I'q!!3!!2rrrri!N!J9Y3!!!!)!N!3,K!#3'J(mSJ#3(`3!N!9#B@aXEfpZFbj\r`H8C@3e3!N!F))!!!!3#3#!F!N")"9%9B9&"jG'J!N!Lbed4TYUpMUJ!!!Y!!!!N\rD!*!))Q!X5!!!!1B!!I'r!!3!!2rrrri!!!D5!*!%&EB!!!!#!*!%$B3!N"S"r+)\r!N"m%!*!&3fpYF'pZC@jdFbj`H8C@3e3!N!F))!!!!3#3#!F!N")"9%9B9&"jG'J\r!N!LdI9[!YT1Qj`!!!K)!!!E2!*!)b'%-K`!!!1B!!I(!!!3!!2rrrri!!!qX!*!\r%&EF!!!!#!*!%%S3!N"S"r+)!N"m%!*!&3fpZG(*[E%&MBf9cFfpb,R"j4PC$9!#\r3"`JJ!!!"!*!)"`#3%J&849K88(PdD!#3#,D[CY@fVfE9!!!2Z!!!3DJ!N!L#cLq\rG!!!!jJ!"mF%!"!!!rrrrrJ!!&RX!N!39Z!!!!!)!N!3,K!#3'J(mSJ#3(`3!N!9\r$EfjdFQpXFbj`H8C@3e3!N!F))!!!!3#3#!F!N")"9%9B9%0A588!N!Lbed4TYVL\rUd!!!!X`!!!IT!*!)&1b!3!!!!1B!!I(#!!3!!2rrrri!!&JM!*!%&EN!!!!#!*!\r%#S3!N"S"r+)!N"m%!*!&4'PKE'pRFbj`H8C@3e3!N!F))!!!!3#3#!F!N")"9%9\rB9&"jG'J!N!LcUk6FYUpMZ3!!!`)!!!ZH!*!)m'@(I3!!!1B!!I($!!3!!2rrrri\r!!'!-!*!%&ES!!!!#!*!%$)3!N"S"r+)!N"m%!*!&4(*KCf0[ER0d,R"j4PC$9!#\r3"`JJ!!!"!*!)"`#3%J&849K88(PdD!#3#,A-ZUffVf1j!!!#Z!!!"kX!N!K9cCe\rN!!!!jJ!"mF3!"!!!rrrrrJ!!DkS!N!39Z`!!!!)!N!3*K!#3'J(mSJ#3(`3!N!9\r&GQ9ZG(-ZF(P'9N08!*!(##!!!!%!N!J(!*!5!94&@&43HA4S!*!)XYG%DVD[BlN\r!!!*H!!!&r!#3#&l!AHN!!!$Q!!(aa3!%!!$rrrrq!!"c93#3""@m!!!!!J#3"!L\r%!*!D!IbL!*!I"!#3"8C[ER4c,R"j4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K88(P\rdD!#3#,D[BlqfVf1r!!!-5J!!1dX!N!L2CJUi!!!!jJ!"mFB!"!!!rrrrrJ!!H9%\r!N!39[3!!!!)!N!3)K!#3'J(mSJ#3(`3!N!9*BfpZFbj`H8C@3e3!N!F))!!!!3#\r3#!F!N")"9%9B9&"jG'J!N!Lbed4UYUpMZ3!!!8)!!!+f!*!)R6,!*J!!!1B!!I(\r(!!3!!2rrrri!!,5F!*!%&Ei!!!!#!*!%#)3!N"S"r+)!N"m%!*!&6'PcG(-ZF(P\r'9N08!*!(##!!!!%!N!J(!*!5!94&@&43HA4S!*!)Y1LI5l6SRdX!!!2Z!!!+1J#\r3#2F9alN!!!$Q!!(ab!!%!!$rrrrq!!#h8J#3""@r!!!!!J#3"!f%!*!D!IbL!*!\rI"!#3"8ePC'PK4'9cBh)ZF(P'9N08!*!(##!!!!%!N!J(!*!5!94&@&43HA4S!*!\r)XZ3m`lD[BlN!!!*`!!!'A`#3#2N0I1d!!!$Q!!(ab3!%!!$rrrrq!!$"M!#3""A\r!!!!!!J#3"!L%!*!D!IbL!*!I"!#3"8ePER9c,R"j4PC$9!#3"`JJ!!!"!*!)"`#\r3%J&849K88(PdD!#3#,,A4'UfR0ZG!!!(e!!!&%F!N!JJj['D!!!!jJ!"mFS!"!!\r!rrrrrJ!!aqX!N!39`3!!!!)!N!31K!#3'J(mSJ#3(`3!N!90D@jT389'FQ&YC5j\r`H8C@3e3!N!F))!!!!3#3#!F!N")"9%9B9&"jG'J!N!Lc#C,fYUpMZJ!!!FJ!!!6\rb!*!)GV'H8!!!!1B!!I(,!!3!!2rrrri!!0`b!*!%&F)!!!!#!*!%$S3!N"S"r+)\r!N"m%!*!&8842CQCcBh*PC@iZF(P'9N08!*!(##!!!!%!N!J(!*!5!94&@&43HA4\rS!*!)YUpQeED[CY8!!!B5!!!5jJ#3#2iSccm!!!$Q!!(ac!!%!!$rrrrq!!$K*!#\r3""A$!!!!!J#3"!b%!*!D!IbL!*!I"!#3"9&eD@0V4(*KGbj`H8C@3e3!N!F))!!\r!!3#3#!F!N")"9%9B9&"jG'J!N!LfJ8fNYUpMZJ!!*!3!!)RP!*!)!JEQV3!!!1B\r!!I(0!!3!!2rrrri!N!J9a!!!!!)!N!3-K!#3'J(mSJ#3(`3!N!94G@PMDe4TE@8\rZF(P'9N08!*!(##!!!!%!N!J(!*!5!94&@&43HA4S!*!)XZ3m`lD[BlS!!!%+!!!\r#JJ#3#$L*,Ei!!!$Q!!(acJ!%!!$rrrrq!*!)&F8!!!!#!*!%$)3!N"S"r+)!N"m\r%!*!&8Q9cEh9bBf9c,R"j4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K88(PdD!#3#,D\r[CYHfVfEA!!!1@J!!00N!N!KdI@-i!!!!jJ!"mFm!"!!!rrrrrJ!!!S)!N!39aJ!\r!!!)!N!3)K!#3'J(mSJ#3(`3!N!96Eh9ZC#j`H8C@3e3!N!F))!!!!3#3#!F!N")\r"9%9B9&"jG'J!N!Lbed4VYUpMZJ!!!G3!!!5m!*!)QPmLK3!!!1B!!I(3!!3!!2r\rrrri!!$GE!*!%&FF!!!!#!*!%#i3!N"S"r+)!N"m%!*!&9'9iG%9NDA3ZF(P'9N0\r8!*!(##!!!!%!N!J(!*!5!94&@&43HA4S!*!)YBZN2,D[BlS!!!1U!!!)V`#3#+Q\rcc`-!!!$Q!!(ad3!%!!$rrrrq!!!m&`#3""A)!!!!!J#3"!f%!*!D!IbL!*!I"!#\r3"9G"8e4&BfpZFh3ZF(P'9N08!*!(##!!!!%!N!J(!*!5!94&@&4$9dP&!*!)YUp\rQelE$,VJ!!!G%!!!D$`#3#*A4#$3!!!$Q!!(adJ!%!!$rrrrq!!"%aJ#3""A*!!!\r!!J#3"!U%!*!D!IbL!*!I"!#3"9GTEQ4[Gh-ZF(P'9N08!*!(##!!!!%!N!J(!*!\r5!94&@&4$9dP&!*!)Y86T,E9%leN!!!$N!!!"E!#3#)@A$D8!"X2S!!E$pJ!%!!$\rrrrrq!!"He3#3""Z[!!!!!J#3""#%!*!D!IbL!*!I"!#3"8KdE@a5C@jNCA*TEQF\rZF(P'9N08!*!(##!!!!%!N!J(!*!5!94&@&43HA4S!*!)XYG%C,,A4'3!!!(D!!!\r$m!#3#0V,GD-!!!$N!!(aQJ!$!!$rrrrq!!"J33#3""A+!!!!!J#3"!Z%!*!D!IU\rL!*!I"!#3"@eKBf0KBfKP,R"j4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K88(PdD!#\r3#,,mEU@fGXIU!!#%+!!"NC%!N!MY@,4`!!!!j!!"mCX!!`!!rrrrrJ#3#"A,!!!\r!!J#3"!b%!*!D!IUL!*!I"!#3"@eKBf9bFQpbFbj`H8C@3e3!N!F))!!!!3#3#!F\r!N")"9%9B9&"jG'J!N!Lbr'kPYXrZqJ!!"Li!!""B!*!)S8TaA3!!!13!!I'F!!-\r!!2rrrri!N!J9c!!!!!)!N!3)K!#3'J(kSJ#3(`3!N!90380'8bj`H8C@3e3!N!F\r))!!!!3#3#!F!N")"9%9B9&"jG'J!N!LdJ@CcY68D`3!!!rB!!!h@!!!"EJ!!"FU\r#RG,d!!!!j!!"mCd!!`!!rrrrrJ!!%&J!!"iZ&Fd!!!!#!*!%#B3!N"S"qU)!N"m\r%!*!&E@&MCR0Z,R"j4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K88(PdD!#3#,,A4'@\rfbaB#!!!%m!!!$+-!N!K3rZRR!!!!j!!"mCi!!`!!rrrrrJ!!)rJ!N!39cJ!!!!)\r!N!30K!#3'J(kSJ#3(`3!N!9YB@0[Fh4[Efac,R"j4PC$9!#3"`JJ!!!"!*!)"`#\r3%J&849K88(PdD!#3#,,A4'@bed4P!!!$NJ!!#!`!N!MJB3I)!!!!j!!"mCm!!`!\r!rrrrrJ!!-*X!N!39c`!!!!)!N!3*K!#3'J(kSJ#3(`3!N!9YB@0dG(NZF(P'9N0\r8!*!(##!!!!%!N!J(!*!5!94&@&43HA4S!*!)XdSfD,BC,m%!!!RF!!!DK!#3#2)\r5!SS!!!$N!!(aS!!$!!$rrrrq!!!iT`#3""A3!!!!!J#3""#%!*!D!IUL!*!I"!#\r3"9"TH%eKF&GbBA"`CA)ZF(P'9N08!*!(##!!!!%!N!J(!*!5!94&@&43HA4S!*!\r)XYG%CE,M!pN!!!9%!!!8fJ#3#(ek'[-!!!$N!!(aS3!$!!$rrrrq!!"6+`#3""A\r4!!!!!J#3"!k%!*!D!IUL!*!I"!#3"A"bC@CPFQ9ZBf9c,R"j4PC$9!#3"`JJ!!!\r"!*!)"`#3%J&849K88(PdD!#3#,,A4'@bed4P!!!%8!!!#E%!N!JpNPlp!!!!j!!\r"mD)!!`!!rrrrrJ!!D!8!N!39dJ!!!!)!N!31K!#3'J(kSJ#3(`3!N!9`H9pbCA0\r[GA*MC5j`H8C@3e3!N!F))!!!!3#3#!F!N")"9%9B9&"jG'J!N!Lbed4PYUZK`3!\r!",`!!!iH!*!)6IEckJ!!!13!!I'M!!-!!2rrrri!!('f!*!%&G-!!!!#!*!%$S3\r!N"S"qU)!N"m%!*!&F(PdD'pZF(*PCR-ZF(P'9N08!*!(##!!!!%!N!J(!*!5!94\r&@&43HA4S!*!)XYG%CE,A4'8!!!,U!!!*6`#3#%@@$$m!!!$N!!(aT!!$!!$rrrr\rq!!"re!#3""A8!!!!!J#3"!q%!*!D!IUL!*!I"!#3"A&eD@9dBfpZFfpXC5j`H8C\r@3e3!N!F))!!!!3#3#!F!N")"9%9B9&"jG'J!N!Lbed4MXYG%B`!!!H`!!!3I!*!\r)FPm!m3!!!13!!I'P!!-!!2rrrri!!)NM!*!%&G8!!!!#!*!%#i3!N"S"qU)!N"m\r%!*!&8fpeEQ40Ch)ZF(P%9N08!*!3YV)D&!#3"qF!!!$N!!!!!3#3("A@!!!!!`!\r#!*!%"!!!!!J%"`#3'`(kSJ#3)h4PFh4'9N08!*!(##!!!!%!N!J(!*!5!94&@&4\r3HA4S!*!)XYG%E,DFfjm!!!ID!!!6,!#3#)fSTQB!!!$R!!(ae!!%!!$rrrrq!*!\r)&GF!!!!#!*!%$i3!N"S"rD)!N"m%!*!&389cCA*fCA*dCA0d,R"j4PC$9!#3"`J\rJ!!!"!*!)"`#3%J&bFh*M8P0&4!#3#,BL9)#f)P5!!*!+(KS!!'2$@9+Nh`!!!1F\r!!I(9!!3!!2rrrri!N!J9f!!!!!)!N!34K!#3'J(pSJ#3(`3!N!9"4A0PFRCPFR4\rPFh3ZFR0bBdC@3e3!N!F))!!!!3#3#!F!N")"9%9B9&"jG'J!N!Lbed4XXYG%E!!\r!$J`!!#c'!*!)Bl)8*`!!!1F!!I(@!!3!!2rrrri!N!J9f3!!!!)!N!3(K!#3'J(\rpSJ#3(`3!N!9KCA4P,R"j4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K88(PdD!#3#,,\rA4'fbed4Y!!!"jJ!!"&d!N!LfQ,)0!!!!j`!"mGF!"!!!rrrrrJ!!,-B!N!39fJ!\r!!!)!N!3*K!#3'J(pSJ#3(`3!N!9MEA4PFh3ZF(P'9N08!*!(##!!!!%!N!J(!*!\r5!94&@&43HA4S!*!)XYG%EE,A4'd!!!*f!!!%8J#3##KrM#S!!!$R!!(af!!%!!$\rrrrrq!!!a)`#3""AE!!!!!J#3"!U%!*!D!IfL!*!I"!#3"@0dBR4PFh3ZF(P'9N0\r8!*!(##!!!!%!N!J(!*!5!94&@&43HA4S!*!)XjD@#V1@PJS!!!)S!!!%I3#3#+D\rdfT!!!!!!j`!"mGN!"!!!rrrrrJ!!0A8!N!39h!!!!!)!N!3,K!#3'J(pSJ#3(`3\r!N!9NFQ&RG'9cG#j`H8C@3e3!N!F))!!!!3#3#!F!N")"9%9B9&"jG'J!N!Lbed4\rYYTcER`!!"U3!!!q$!*!)eQ9"K!!!!1F!!I(D!!3!!2rrrri!!$Rb!*!%&Gd!!!!\r#!*!%"i3!N"S"rD)!N"m%!*!&C@0SEbj`H8C@3e3!N!F))!!!!3#3#!F!N")"9%9\rB9&"jG'J!N!Lbed4YXYG%E3!!!*`!!!%9!*!)`BI6,J!!!1F!!I(E!!3!!2rrrri\r!!%Pe!*!%&Gi!!!!#!*!%$i3!N"S"rD)!N"m%!*!&CQGLCh4TE@9dCA0d,R"j4PC\r$9!#3"`JJ!!!"!*!)"`#3%J&849K88(PdD!#3#,,A4'fbed4Y!!!")!!!!GF!N!M\ra&8[5!!!!j`!"mG`!"!!!rrrrrJ!!5SS!N!39h`!!!!)!N!30K!#3'J(pSJ#3(`3\r!N!9TBfGXG@9dCA0d,R"j4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K88(PdD!#3#,,\rA4'fbed4Y!!!"&!!!!GB!N!MpJdcd!!!!j`!"mGd!"!!!rrrrrJ!!6'%!N!39i!!\r!!!)!N!31K!#3'J(pSJ#3(`3!N!9`FQpRFQ9cFf*KFLj`H8C@3e3!N!F))!!!!3#\r3#!F!N")"9%9B9&"jG'J!N!Lbed4YXYG%E3!!"23!!!hZ!*!)$hX-H`!!!1F!!I(\rH!!3!!2rrrri!!%ih!*!%&H%!!!!#!*!%"S3!N"S"rD)!N"m%!*!&G'&P,R"j4PC\r$9!#3"`JJ!!!"!*!)"`#3%J&849K88(PdD!#3#,,A4'kbed4Z!!!!pJ!!!BJ!N!M\r6"1kG!!!!j`!"mGm!"!!!rrrrrJ!!A#8!N!39iJ!!!!)!N!3(K!#3'J(pSJ#3(`3\r!N!9dBh4X,R"j4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K88(PdD!#3#,,A4'kbed4\rZ!!!"Y!!!!VN!N!JV"c()!!!!j`!"mH!!"!!!rrrrrJ!!ADd!N!39i`!!!!)!N!3\r(K!#3'J(pSJ#3(`3!N!9dC'aR,R"j4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K88(P\rdD!#3#,,A4'kbed4Z!!!#%J!!!mJ!N!MF@*ia!!!!j`!"mH%!"!!!rrrrrJ!!B'B\r!N!39j!!!!!)!N!33K!#3'J(pSJ#3(`3!N!9dC'aRAfe[C'9XCA0c,R"j4PC$9!#\r3"`JJ!!!"!*!)"`#3%J&849K88(PdD!#3#,,A4'kbed4Z!!!$hJ!!#)X!N!L'&l5\r4!!!!j`!"mH)!"!!!rrrrrJ!!C#i!N!39j3!!!!)!N!3(K!#3'J(pSJ#3(`3!N!9\rdC@aX,R"j4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K83eG*43#3#,,A4'kbed4Z!!!\r!8!!!!&X!N!JFJ6ZT!!!!j`!"mH-!"!!!rrrrrJ!!E,N!N!39jJ!!!!)!N!31K!#\r3'J(pSJ#3(`3!N!9dCA0dAfCTEQ4PFPpKC8C@3e3!N!F))!!!!3#3#!F!N")"9%9\rB9&"jG'J!N!LdGX2(Y(E$a`!!!*3!!!$H!*!)6+jP5!!!!1F!!I(N!!3!!2rrrri\r!!'d8!*!%&HF!!!!#!*!%&S3!N"S"rD)!N"m%!*!&G'9cG&pcCA4MEfjdFQpXC'&\rdB5j`H8C@3e3!N!F))!!!!3#3#!F!N")"9%9B9&"jG'J!N!Lbed4ZXYG%EJ!!!6!\r!!!*C!*!)qZ)Z8!!!!1F!!I(P!!3!!2rrrri!!'hb!*!%&HJ!!!!#!*!%$B3!N"S\r"rD)!N"m%!*!&G'9cG&pcG@PdC5j`H8C@3e3!N!F))!!!!3#3#!F!N")"9%9B9&"\rjG'J!N!Lbed4ZXYG%EJ!!!C3!!!-!N!Pce*G-!!!!j`!"mHB!"!!!rrrrrJ!!F%X\r!N!39k3!!!!)!N!34K!#3'J(pSJ#3(`3!N!9dCA0dCQPZC'9bEh"PELj`H8C@3e3\r!N!F))!!!!3#3#!F!N")"9%9B9&"jG'J!N!Lbed4[XYG%E`!!"!3!!!MM!*!)R4@\r'6J!!!1F!!I(R!!3!!2rrrri!!(0,!*!%&HS!!!!#!*!%#)3!N"S"rD)!N"m%!*!\r&G'aTFh3ZF(P'9N08!*!(##!!!!%!N!J(!*!5!94&@&43HA4S!*!)XYG%El9eX'3\r!!!0D!!!(%3#3#'chAPB!!!$R!!(ak!!%!!$rrrrq!!"m,J#3""AV!!!!!J#3"!q\r%!*!D!IfL!*!I"!#3"A4XDA0dAf4TB@a[Cbj`H8C@3e3!N!F))!!!!3#3#!F!N")\r"FR0bBe*6483!N!Lf)P5!YL*8J!#3#q!!!!'IrQZ'X`!!!1F!!I(T!!3!!2rrrri\r!N!J9l!!!!!)!N!34K!#3'J(pSJ#3(`3!N!9dE'PcG&pND@&XEfFZFR0bBdC@3e3\r!N!F))!!!!3#3#!F!N")"9%9B9&"jG'J!N!Lbed4[XYG%E`!!!U3!!!A$!*!)4FH\rK,`!!!1F!!I(U!!3!!2rrrri!N!J9l3!!!!)!N!3)K!#3'J(pSJ#3(`3!N!9dE@9\rZG5j`H8C@3e3!N!F))!!!!3#3#!F!N")"9%9B9&"jG'J!N!Lbed4[YT1Qj`!!!cS\r!!!G4!*!))`FP0!!!!1F!!I(V!!3!!2rrrri!!!A$!*!%&Hi!!!!#!*!%$B3!N"S\r"rD)!N"m%!*!&G(0MFQpXE(GTELj`H8C@3e3!N!F))!!!!3#3#!F!N")"9%9B9&"\rjG'J!N!Lbed4[XYG%E`!!!4)!!!'P!*!)'L#VjJ!!!1F!!I(X!!3!!2rrrri!!!d\r8!*!%&Hm!!!!#!*!%"i3!N"S"rD)!N"m%!*!&G(0ZC#j`H8C@3e3!N!F))!!!!3#\r3#!F!N")"9%9B9&"jG'J!N!Lbed4[XYG%E`!!!0B!!!%e!*!)!J"be`!!!1F!!I(\rY!!3!!2rrrri!!!kj!*!%&I!!!!!#!*!%"S3!N"S"rD)!N"m%!*!&G(4P,R"j4PC\r$9!#3"`JJ!!!"!*!)"`#3%J&849K88(PdD!#3#,,A4'qbed4[!!!$1!!!"`B!N!K\r1lCPX!!!!j`!"mHi!"!!!rrrrrJ!!$qi!N!39m3!!!!)!N!3*K!#3'J(pSJ#3(`3\r!N!9dG'9NDA3ZF(P'9N08!*!(##!!!!%!N!J(!*!5!94&@&43HA4S!*!)XYG%El,\rA4'm!!!15!!!(p`#3#1ppF@B!!!$R!!(al`!%!!$rrrrq!!!@p!#3""Ab!!!!!J#\r3"!Q%!*!D!IfL!*!I"!#3"A4hC@4TG#j`H8C@3e3!N!F))!!!!3#3#!F!N")"9%9\rB9&"jG'J!N!Lbed4`XYG%F!!!!)!!!!#L!*!)JV+L1J!!!1F!!I(`!!3!!2rrrri\r!!"lV!*!%&I-!!!!#!*!%"i3!N"S"rD)!N"m%!*!&G(GTELj`H84@3e3!N"#fXKS\r9!*!'!4!!!p+T!!!!!3#3("QY!!!!"!!#!*!%#!!!!!J%"`#3'`(pSJ#3)feVBhG\r`FQpU4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K88(PdD!#3#,AaYU#emEIZ!!!!LJ!\r!!1-!!!%D!!!&VX+9c-J!""be!!3FY`!&!!$rrrrq!*!)'DN!!!!#!*!%$i3!N"S\r#9k)!N"m%!*!&G'9cG'eVBhG`FQpU,R"j4&C$9!#3%,Db'KB!N!B"%3!'a$J!!!!\r"!*!F'ki!!!!&!!)!N!3$!!!!#!3(!*!E!PHL!*!ME'PL4PC$9!#3"`JJ!!!"!*!\r)"`#3%!8!!A0SE'*3HA4S!*!)YI'p8EAd3q`!!!@B!!!-)`!!!'J!!!'5hL"!A`!\r'a$X!"X3m!!B!!2rrrri!N!JEV3!!!!)!N!33K!#3'J*lSJ#3(`3!N!9YDf0hG'9\rcG#j`F'-ZFfaL4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K88LTMD!#3#,Ad3K5ep%2\rF!!!3)!!!c!)!N!K'Z"$U!!E%1!!'a$N!"3!!rrrrrJ#3#"ZX!!!!!J#3""#%!*!\rD!PHL!*!I"!#3"@eVBhGdCA0d,R"bDLjiE@a'9N08!*!(##!!!!%!N!J(!*!5!94\r&@&43HA4S!*!)Y8'BFl9"Q(-!!!1J!!!(G`#3#)RVDKi!!i[a!!1,r3!$!!$rrrr\rq!*!)',J!!!!#!*!%#B3!N"S"qU)!N"m%!*!&D@0[F'9Z,R"j4&C$9!#3%,D`69@\rfX%e@!!!"$`!$Lr%!!!!"!*!F',F!!!!$!!)!N!35!!!!#!3(!*!E!IUL!*!ME'P\rL,A0MFQP`G("KBfYKCf9c4&C$9!#3%,D`698!N!B"$`!$M"`!!!!"!*!F',B!!!!\r%!!)!N!3,!!!!#!3(!*!E!MHL!*!M3fpNC9GKFR*TEh*'9N08!*!(##!!!!%!N!J\r(!*!5!94&@&43HA4S!*!)YF)KGVA$-8%!!!&Q!!!$[J!!!%!!!!%k)Sf'p3!$M"d\r!!i`H!!8!!2rrrri!N!B$[KLe!!!!!J#3"!Z%!*!D!MZL!*!I"!#3"9pID@jTG&p\rI,R"j4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K88(PdD!#3#,A#)@1e`c%r!!!2Z!!\r!8iS!N!Lb4-90!!1-(3!$M"m!"3!!rrrrrJ!!"2J!N!3BY!!!!!)!N!38K!#3'J)\rlSJ#3(`3!N!9$Ef4P9f&bFQP[FPpcG@PdC5j`H8C@3e3!N!F))!!!!3#3#!F!N")\r"9%9B9&"jG'J!N!Le`L&dYF-a2`!!0q!!!5Ih!*!)TDmZbJ!$M"d!!i`J!!8!!2r\rrrri!N!JBX`!!!!)!N!3CK!#3'J)lSJ#3(`3!N!90CA4bEhGPFQYcAe0SC@aXAe0\reDA4P,R"j4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K88(PdD!#3#,A#)1Le`c%r!!!\r#h!!!"G3!!!"!!!!"1XVrcT3!!i`G!!1-)3!&!!$rrrrq!*!'"G3BXJ!!!!)!N!3\r,K!#3'J)lSJ#3(`3!N!95CA&eDA*PC#j`H8C@3e3!N!F))!!!!3#3#!F!N")"9%9\rB9&"jG'J!N!Le`L$SYF-a2`!!#E`!!#[q!*!)c(K@f!!$M"d!!i`L!!8!!2rrrri\r!!!F1!*!%',%!!!!#!*!%%B3!N"S#1k)!N"m%!*!&8h4KEQ4KFQ4I8h9TG'8ZF(P\r%9N08!*!3YV"093#3"J%2!!1-(!!!!!%!N"`BX!!!!!3!!J#3"!J!!!!)"!F!N"X\r#0k)!N#0&H("XEh*PFNC@3e3!N!F))!!!!3#3#!F!N")"9%9B9&"jG'J!N!LeaJK\rIYFB)A`!!!B3!!!4T!*!)!Z89&!!$M#-!!i`N!!8!!2rrrri!N!JBV`!!!!)!N!3\r,K!#3'J)kSJ#3(`3!N!9IAfPZDA4IAbj`H8C@3e3!N!F))!!!!3#3#!F!N")"9%9\rB9&"jG'J!N!LeaJKGYFB)A3!!!a3!!!JS!*!)LhIH!3!$M#-!!i`P!!8!!2rrrri\r!!!4T!*!%'+i!!!!#!*!%(S3!N"S#1U)!N"m%!*!&6@PMFQpcEfCdAdPZG'9bEQ9\rdAd9iF'a[FQ9b,R"j4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K88(PdD!#3#,A'#&f\reaJKG!!!#2J!!"'N!N!MFP1VS!!1-)`!$M#B!"3!!rrrrrJ!!$*%!N!3BV3!!!!)\r!N!34K!#3'J)kSJ#3(`3!N!91CA4cBf&`C9p6G@PdC5j`H8C@3e3!N!F))!!!!3#\r3#!F!N")"9%9B9&"jG'J!N!LeaJKGYFB)A3!!!U!!!!ZE!*!)9#A(!3!$M#-!!i`\rR!!8!!2rrrri!!"$k!*!%'+`!!!!#!*!%%B3!N"S#1U)!N"m%!*!&8Q9aG@PbC@4\rI8h9TG'8ZF(P'9N08!*!(##!!!!%!N!J(!*!5!94&@&43HA4S!*!)YFB)AEA'#&d\r!!!*B!!!%U3#3#*XUlC!!!!1-)`!$M#J!"3!!rrrrrJ!!(*8!N!3BU`!!!!)!N!3\r-K!#3'J)kSJ#3(`3!N!998NaI8h9TG'8ZF(P'9N08!*!(##!!!!%!N!J(!*!5!94\r&@&43HA4S!*!)YFB)AEA'#&d!!!YB!!"6ZJ#3#$m,qL)!!i`M!!1-+3!&!!$rrrr\rq!!!K2J#3""LU!!!!!J#3""5%!*!D!MUL!*!I"!#3"9GPBPp#FQphFf9bAe0eDA4\rP,R"j4&C$9!#3%,D`69B!N!B"$`!$M"`!!!!"!*!F'+N!!!!%!!)!N!3'!!!!#!3\r(!*!E!MHL!*!M4QPZC'9b4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K88(PdD!#3#,A\r'!0Heb,!K!!!#&J!!"pm!N!KK++Q6!!1-+J!$M#X!"3!!rrrrrJ#3#"LS!!!!!J#\r3"!Z%!*!D!MQL!*!I"!#3"9pID@jTG&pI,R"j4PC$9!#3"`JJ!!!"!*!)"`#3%J&\r849K88(PdD!#3#,A'!05eb,!H!!!*pJ!!4+d!N!K'(0BS!!1-+J!$M#`!"3!!rrr\rrrJ!!"pm!N!3BT`!!!!)!N!3CK!#3'J)jSJ#3(`3!N!9$EfjdB@PZCA*cAf&ZC&p\rQEfaNCA*c,R"j4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K88(PdD!#3#,A'!05eb,!\rH!!!85J!!@D3!N!JV&NPY!!1-+J!$M#d!"3!!rrrrrJ!!6)`!N!3BTJ!!!!)!N!3\r3K!#3'J)jSJ#3(`3!N!9&BA*XD@9bAh4PFQec,R"j4PC$9!#3"`JJ!!!"!*!)"`#\r3%J&849K88(PdD!#3#,A'!05eb,!I!!!$2!!!#'8!N!Mi#Erm!!1-+J!$M#i!"3!\r!rrrrrJ!!TM!!N!3BT3!!!!)!N!32K!#3'J)jSJ#3(`3!N!9&ER9YCA*KG'P[ER-\rZF(P'9N08!*!(##!!!!%!N!J(!*!5!94&@&43HA4S!*!)YFB!e,A)X"m!!!EF!!!\rEj`#3#+Ud5l)!!i`U!!1-,`!&!!$rrrrq!!#ZP3#3""LN!!!!!J#3""D%!*!D!MQ\rL!*!I"!#3"8CTE'9cAf&ZC&pcG@PdBf&cCA-ZF(P'9N08!*!(##!!!!%!N!J(!*!\r5!94&@&43HA4S!*!)YFB!e,A)X"i!!!SX!!![[3#3#$l!H9B!!i`U!!1--!!&!!$\rrrrrq!!$+I!#3""LM!!!!!J#3""#%!*!D!MQL!*!I"!#3"8CTEQ4PFPp#BA0TBh-\rZF(P'9N08!*!(##!!!!%!N!J(!*!5!94&@&43HA4S!*!)YFB!e,A)X"i!!!JB!!!\rQ!3#3#1CD18X!!i`U!!1--3!&!!$rrrrq!!$k13#3""LL!!!!!J#3"!q%!*!D!MQ\rL!*!I"!#3"8CTEQ4PFPpTG'9YFbj`H8C@3e3!N!F))!!!!3#3#!F!N")"9%9B9&"\rjG'J!N!LeaJ$8YFL`(`!!"FB!!"F-!*!)16pRi!!$M#S!!i`b!!8!!2rrrri!!5!\rk!*!%'+%!!!!#!*!%%B3!N"S#1D)!N"m%!*!&6f*cEfaPG'9IG'9bEA-ZF(P'9N0\r8!*!(##!!!!%!N!J(!*!5!94&@&43HA4S!*!)YFB!e,A)X"m!!!5Q!!!3f`#3#%Y\r@lAB!!i`U!!1--`!&!!$rrrrq!!%h4J#3""LJ!!!!!J#3""+%!*!D!MQL!*!I"!#\r3"9"bEf0PFh0IBfaKFh0PFbj`H8C@3e3!N!F))!!!!3#3#!F!N")"9%9B9&"jG'J\r!N!LeaJ$2YFL`(J!!"Zi!!#Rb!*!)j4LQ[!!$M#S!!i`d!!8!!2rrrri!!8JK!*!\r%'*m!!!!#!*!%%B3!N"S#1D)!N"m%!*!&8h4KEQ4KFQ4I8h9TG'8ZF(P'9N08!*!\r(##!!!!%!N!J(!*!5!94&@&43HA4S!*!)YFB!e,A)X"m!!!JH!!!L4`#3#"F)%V!\r!!i`U!!1-03!&!!$rrrrq!*!)'*i!!!!#!*!%%i3!N"S#1D)!N"m%!*!&9(P`C9p\r%C@CTEQPdD@pZFbj`H8C@3e3!N!F))!!!!3#3#!F!N")"9%9B9&"jG'J!N!LeaJ$\r8YFL`(`!!#i`!!#p4!*!)lh3%i!!$M#S!!i`f!!8!!2rrrri!!#*(!*!%'*d!!!!\r#!*!%%B3!N"S#1D)!N"m%!*!&9fPZC'phAf0XBA0cCA-ZF(P%9N08!*!3YV"09J#\r3"J%2!!1-(!!!!!%!N"`BR!!!!!3!!J#3"!J!!!!)"!F!N"X#0k)!N#01CA4cBf&\r`C8C@3e3!N!F))!!!!3#3#!F!N")"9%9B9&"jG'J!N!Le`LdcYF-aS3!!!FB!!!8\rp!!!!3!!!!6SD''Rf!!1-0`!$M$J!"3!!rrrrrJ#3"J8p'*X!!!!#!*!%#i3!N"S\r#1+)!N"m%!*!&AepTEQPdAemZF(P'9N08!*!(##!!!!%!N!J(!*!5!94&@&43HA4\rS!*!)YF)Y,lA$-Cm!!!F@!!!L93#3#-JhTf3!!i`h!!1-13!&!!$rrrrq!!!'G`#\r3""LD!!!!!J#3""#%!*!D!MLL!*!I"!#3"8e[HQPXE'&IFh9TG'8ZF(P'9N08!*!\r(##!!!!%!N!J(!*!5!94&@&43HA4S!*!)YF)Y-,A$-Cm!!!0N!!!)q3#3#%(4#2m\r!!i`h!!1-1J!&!!$rrrrq!!!Sc!#3""LC!!!!!J#3"!f%!*!D!MLL!*!I"!#3"9"\r[Gf9b8'aKER3ZF(P'9N08!*!(##!!!!%!N!J(!*!5!94&@&43HA4S!*!)YF)Y*EA\r$-Cm!!!,%!!!,X!!!!%!!!!%kNUIAA!!$M$F!!i`l!!8!!2rrrri!!$(&!!!pG4L\rB!!!!!J#3""'%!*!D!MLL!*!I"!#3"9*PFA9TFQ9NAh0eDA4P,R"j4PC$9!#3"`J\rJ!!!"!*!)"`#3%J&849K88(PdD!#3#,A#,5De`c'I!!!(#!!!'@X!N!MSJ05E!!1\r-0`!$M$`!"3!!rrrrrJ!!2Um!N!3BP`!!!!)!N!34K!#3'J)iSJ#3(`3!N!96G'&\rZC'&bC&p6G@PdC5j`H8C@3e3!N!F))!!!!3#3#!F!N")"9%9B9&"jG'J!N!Le`Ld\rRYF-aR`!!!T`!!!9A!*!)D($8q`!$M$F!!i`p!!8!!2rrrri!!&JD!*!%'*B!!!!\r#!*!%&B3!N"S#1+)!N"m%!*!&8h4KEQ4KFQ4I99*-Ah0eDA4P,R"j4PC$9!#3"`J\rJ!!!"!*!)"`#3%J&849K88(PdD!#3#,A#,6'e`c'I!!!$d!!!#NX!!!"!!!!"1YD\rb3%X!!i`h!!1-2J!&!!$rrrrq!!"GF3!!Cl`BP3!!!!)!N!3(K!#3'J)iSJ#3(`3\r!N!98CAKd,R"j4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K88(PdD!#3#,A#,5fe`c'\rI!!!*CJ!!0Xm!N!MJ0XZi!!1-0`!$M$m!"3!!rrrrrJ!!D2B!N!3BP!!!!!)!N!3\r9K!#3'J)iSJ#3(`3!N!9AEh*XC&GTC'9AC@*IFh9TG'8ZF(P%9N08!*!3YV"09J#\r3"J%2!!1-(!!!!!%!N"`BN`!!!!3!!J#3"!N!!!!)"!F!N"X#0k)!N#06G'46G@P\rdCA0'9N08!*!(##!!!!%!N!J(!*!5!94&@&43HA4S!*!)YF-Y#lA$,3X!!!)B!!!\r(E3#3#-d6j-%!!ia!!!1-33!&!!$rrrrq!*!)'*)!!!!#!*!%#i3!N"S#0U)!N"m\r%!*!&AepTEQPdAemZF(P'9N08!*!(##!!!!%!N!J(!*!5!94&@&43HA4S!*!)YF-\rY#VA$,3S!!#!F!!$#6!#3#"mR6pS!!ia!!!1-3J!&!!$rrrrq!*!)'*%!!!!#!*!\r%&)3!N"S#0U)!N"m%!*!&3A"`E'96Bh*TF(4I8h9TG'8ZF(P'9N08!*!(##!!!!%\r!N!J(!*!5!94&@&43HA4S!*!)YF-Y#VA$,3S!!!NZ!!!R&J#3#+*fKG!!!ia!!!1\r-3`!&!!$rrrrq!*!)'*!!!!!!!J#3""k%!*!D!MDL!*!I"!#3"8eKBfPZG'pcD&p\r$EfjZC@0dDACTG(PI3faKFbj`H8C@3e3!N!F))!!!!3#3#!F!N")"9%9B9&"jG'J\r!N!Le`bd+YF-Y#J!!#HB!!#E+!*!)1HMZN`!$M%!!!ia%!!8!!2rrrri!!#F@!*!\r%')m!!!!#!*!%'i3!N"S#0U)!N"m%!*!&8A9TBfY%FQ&hAdGbBA"SD@0cAe0eDA4\rP,R"j4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K88(PdD!#3#,A$,3Ue`bd+!!!#8J!\r!"Fi!N!K6diT[!!1-3!!$M%8!"3!!rrrrrJ!!6H!!N!3BMJ!!!!)!N!3HK!#3'J)\rfSJ#3(`3!N!94G@PMDd4bBAGI4h*KF'KTBh0I8h9`F'aPE@8ZF(P'9N08!*!(##!\r!!!%!N!J(!*!5!94&@&43HA4S!*!)YF-Y#VA$,3S!!!%8!!!"`!#3#23d31F!!ia\r!!!1-4J!&!!$rrrrq!!"6VJ#3""L0!!!!!J#3""'%!*!D!MDL!*!I"!#3"9*PFA9\rTFQ9NAe0eDA4P,R"j4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K88(PdD!#3#,A$,3U\re`bd+!!!1`J!!8-)!N!M4$l+[!!1-3!!$M%F!"3!!rrrrrJ!!9@i!N!3BM!!!!!)\r!N!34K!#3'J)fSJ#3(`3!N!96G'&ZC'&bC&p6G@PdC5j`H8C@3e3!N!F))!!!!3#\r3#!F!N")"9%9B9&"jG'J!N!Le`bd+YF-Y#J!!!X!!!!Dm!*!)JE8K'`!$M%!!!ia\r)!!8!!2rrrri!!+B`!*!%')X!!!!#!*!%$S3!N"S#0U)!N"m%!*!&9'&LE'9I8h9\rTG'8ZF(P'9N08!*!(##!!!!%!N!J(!*!5!94&@&43HA4S!*!)YF-Y#VA$,3S!!!A\rX!!!82!#3#(DA(Fi!!ia!!!1-53!&!!$rrrrq!!#Xl!#3""L+!!!!!J#3"!f%!*!\rD!MDL!*!I"!#3"94PH(4I8h9TG'8ZF(P'9N08!*!(##!!!!%!N!J(!*!5!94&@&4\r3HA4S!*!)YF-Y#VA$,3S!!!Ck!!!G"J#3#&Z!mk-!!ia!!!1-5J!&!!$rrrrq!!$\r"+!#3""L*!!!!!J#3""1%!*!D!MDL!*!I"!#3"94jF'9I6Q&YCA0I8h9TG'8ZF(P\r'9N08!*!(##!!!!%!N!J(!*!5!94&@&43HA4S!*!)YEQR)EA'"QX!!!,S!!!'!`#\r3#2@C3Ti!!i[a!!1-"!!$!!$rrrrq!!$H,J#3""L)!!!!!J#3"!Z%!*!D!IUL!*!\rI"!#3"@jcFQ9YEh4P,R"j4&C$9!#3%,Db'K-!N!B"%!!$dM%!!!!"!*!F'DJ!!!!\r$!!)!N!3,!!!!#!3(!*!E!IUL!*!ME@YMGh"bEfTPBh4'9N08!*!(##!!!!%!N!J\r(!*!5!94&@&43HA4S!*!)YI'`FlD6[,m!!!2!!!!+ZJ!!!6`!!!B'caQfH3!%(+X\r!""bX!!3!!2rrrri!N!B+ZKQR!!!!!J#3"!Z%!*!D!PDL!*!I"!#3"9pID@jTG&p\rI,R"j4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K88(PdD!#3#,AaXBHep%2C!!!#*J!\r!"*%!!!%8!!!&VJ)U8e`!""bV!!3FV3!%!!$rrrrq!!!3`!!!&9%CTJ!!!!)!N!3\r,K!#3'J*@SJ#3(`3!N!9MGh4KE'YPFLj`H8C@3e3!N!F))!!!!3#3#!F!N")"9%9\rB9&"jG'J!N!Lej'qfYT@qTJ!!"FJ!!"$T!!!"2!!!"JDJBXPr!!3FU`!%(+i!"!!\r!rrrrrJ!!'[m!!#[S'D8!!!!#!*!%#i3!N"S#9U)!N"m%!*!&BhGiE@aRC@iZF(P\r%9N08!*!3YV"0@!#3"J%4!!)dN`!!!!%!N"`E!J!!!!3!!J#3"!m!!!!)"!F!N"X\r#9U)!N#0dC@e`E'&dC5eMBA*LEfj'9N08!*!(##!!!!%!N!J(!*!5!94&@&43CA"\rb!*!)YNG2XVC(6l)!!!"i!!!")3!!!)i!!!(@[bXAD`!#0*F!!M5B!!8!!2rrrri\r!N!B")4X"!!!!!J#3""Q%!*!D!RDL!*!I"!#3"A4PEA"XBA4P,@&XE'aTBR*KFQP\rPFbjiE@a'9N08!*!(##!!!!%!N!J(!*!5!94&@&45+Q0S!*!)YHKZSVASEU)!!!"\r`!!!"&`!!!53!!!B'!1dVl!!#0*F!!M5C!!8!!2rrrri!!!,h!!!%$KX!N!3#!*!\r%&i3!N"S#GU)!N"m%!*!&G'9YF'aKG'8YB@aXFfpeFQ0PFbjiE@a'9N08!*!(##!\r!!!%!N!J(!*!5!94&@&45+Q0S!*!)YHK`-,ASF$!!!!"i!!!!k`!!!4J!!!@Za*6\rLk3!#0*F!!M5D!!8!!2rrrri!!!S8!!!+raVr!!!!!J#3""D%!*!D!RDL!*!I"!#\r3"A4PEA"XBA4P,@GbEh9`E'PcG#jiE@a'9N08!*!(##!!!!%!N!J(!*!5!94&@&4\r3CA"b!*!)YNG31lC(8$X!!!"m!!!!l3!!!)S!!!(@IbE+K!!#0*F!!M5E!!8!!2r\rrrri!!"#Y!!!4QKVq!!!!!J#3""Q%!*!D!RDL!*!I"!#3"A4PEA"XBA4P,@GbEh9\r`E'PcG'aTBLjiE@a'9N08!*!(##!!!!%!N!J(!*!5!94&@&45+Q0S!*!)YHK[6,A\rSEd`!!!"F!!!!``!!!4B!!!@ZClDbi!!#0*F!!M5F!!8!!2rrrri!!"0`!!!8-aV\rp!!!!!J#3""D%!*!D!RDL!*!I"!#3"A4PEA"XBA4P,@aTEQY[FQ4PFLjiE@a'9N0\r8!*!(##!!!!%!N!J(!*!5!94&@&43CA"b!*!)YNG2qEC(8!B!!!"H!!!!a3!!!)B\r!!!(@X8qRpJ!#0*F!!M5G!!8!!2rrrri!!"RK!!!DTKVm!!!!!J#3""Q%!*!D!RD\rL!*!I"!#3"A4PEA"XBA4P,@aTEQY[FQ4PFQaTBLjiE@a'9N08!*!(##!!!!%!N!J\r(!*!5!94&@&45+Q0S!*!)YI'XTEC3HNd!!!#L!!!#D3!!!5!!!!B'"F2ce!!#0*F\r!!M5H!!8!!2rrrri!!"am!!!Hj4Vl!!!!!J#3""H%!*!D!RDL!*!I"!#3"A4PEA"\rXBA4P,A0PBA*MD'4TFR-ZH'eX4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K83eG*43#\r3#,D4*GDfNmhf!!!D6!!")%S!!!#5!!!"QS(Fe&`!!M5A!!)dR`!&!!$rrrrq!*!\r)'[S!!!!#!*!%%)3!N"S#GU)!N"m%!*!&G'9YF'aKG'8ZF(*U,RKYE%4@3e3!N"#\rfX%eB!*!'!4%!!M56!!!!!3#3("Vj!!!!"!!#!*!%$!!!!!J%"`#3'`*@SJ#3)h4\rPEA"XBA4P,A"`BdC@3e3!N!F))!!!!3#3#!F!N")"9%9B9&"PF()!N!Lf4dqbYNG\r2XJ!!!(J!!!%K!!!!M!!!!GDr+aGV!!)dS!!#0+%!"3!!rrrrrJ#3"J%K'[J!!!!\r#!*!%'B3!N"S#GD)!N"m%!*!&G'9YF'aKG'8YB@aXE'PLFQ&bD@9c,RKYE%C@3e3\r!N!F))!!!!3#3#!F!N")"9%9B9&)UBfJ!N!Lek'kLYHKZSJ!!!(!!!!%A!!!"*!!\r!"JB!l5[X!!)dS!!#0+)!"3!!rrrrrJ!!![F!!!31'[F!!!!#!*!%&i3!N"S#GD)\r!N"m%!*!&G'9YF'aKG'8YB@aXFfpeFQ0PFbjiE@a'9N08!*!(##!!!!%!N!J(!*!\r5!94&@&45+Q0S!*!)YHK`-,ASF$!!!!"i!!!!k`!!!4J!!!@Za*6Lk3!#0+!!!M5\rM!!8!!2rrrri!!!S8!!!+raVf!!!!!J#3""D%!*!D!R@L!*!I"!#3"A4PEA"XBA4\rP,@GbEh9`E'PcG#jiE@a'9N08!*!(##!!!!%!N!J(!*!5!94&@&43CA"b!*!)YNG\r31lC(8$X!!!"m!!!!l3!!!)S!!!(@IbE+K!!#0+!!!M5N!!8!!2rrrri!!"#Y!!!\r4QKVe!!!!!J#3""Q%!*!D!R@L!*!I"!#3"A4PEA"XBA4P,@GbEh9`E'PcG'aTBLj\riE@a'9N08!*!(##!!!!%!N!J(!*!5!94&@&45+Q0S!*!)YHK[6,ASEd`!!!"F!!!\r!``!!!4B!!!@ZClDbi!!#0+!!!M5P!!8!!2rrrri!!"0`!!!8-aVd!!!!!J#3""D\r%!*!D!R@L!*!I"!#3"A4PEA"XBA4P,@aTEQY[FQ4PFLjiE@a'9N08!*!(##!!!!%\r!N!J(!*!5!94&@&43CA"b!*!)YNG2qEC(8!B!!!"H!!!!a3!!!)B!!!(@X8qRpJ!\r#0+!!!M5Q!!8!!2rrrri!!"RK!!!DTKVc!!!!!J#3""Q%!*!D!R@L!*!I"!#3"A4\rPEA"XBA4P,@aTEQY[FQ4PFQaTBLjiE@a'9N08!*!(##!!!!%!N!J(!*!5!94&@&4\r5+Q0S!*!)YI'XTEC3HNd!!!#L!!!#D3!!!5!!!!B'"F2ce!!#0+!!!M5R!!8!!2r\rrrri!!"am!!!Hj4Vb!!!!!J#3""H%!*!D!R@L!*!I"!#3"A4PEA"XBA4P,A0PBA*\rMD'4TFR-ZH'eX4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K83eG*43#3#,D6UP5fNkj\rU!!!3GJ!!dIB!!!##!!!"QY&U)0!!!M5J!!)dU!!&!!$rrrrq!*!)'[%!!!!#!*!\r%%)3!N"S#GD)!N"m%!*!&G'9YF'aKG'8ZF(*U,RKYE%C@3e3!N!F))!!!!3#3#!F\r!N")"9%9B9&"jG'J!N!Lejr)AYHIc[J!!#Qi!!#%+!*!)rHZ3!2m!!p)a!!3FUJ!\r$!!$rrrrq!*!)'Ci!!!!#!*!%$S3!N"S"qU)!N"m%!*!&GQPNC@pbC@&NCA)ZF(P\r%9N08!*!3YZD[Y,EQVlF!!!$S!!!!``!!!!%!N"`9p!!!!!)!!J#3"!F!!!!)"!F\r!N"(J!*!*!GRL!*!M8'aeCdPZFdC@3e3!N!F))!!!!3#3#!F!N"!&!!&cD'aL8(P\rdD!#3#,8T1qqfj@Lc!!N[PJ!92i8!!4bb!!4F0E0`H1i!!!$S!!(amJ!$!!$rrrr\rq!*!)&I8!!!!#!*!%%)3!N"$!!*!*!Il!!*!I#!#3"9pdDfPZG'9b,R"`BbjcE'*\r'9N08!*!(##!!!!%!N!J(!*!3"3!"FfKXBP"jG'J!N!Lc"D`#YZ9S[`!!%4B!!%8\rm!!!!C!!!!BiNN!!'5!!!!1J!!I(d!!-!!2rrrri!N!C&2"Ah!!!!!J#3"!Z%!*!\r3J!#3#3(qJJ#3(`B!N!9"F(!ZF("M,R0XBNC@3e3!N!F))!!!!3#3#!F!N"!&!!&\rcD'aL8(PdD!#3#,,Yi55fj@L@!!!5F!!!+i)!!!"L!!!"NU&0-GJ!!!$S!!(ap3!\r$!!$rrrrq!!"'bJ!!FN`9q!!!!!)!N!32K!#3%)!!N!N"rS)!N"m'!*!&Bf&XE'4\rXE#j`F'-ZFfaL4PC$9!#3"`JJ!!!"!*!)"`#3%!8!!A0SE'*3HA4S!*!)XZ5TTlE\rPD--!!!jX!!!Ze!!!!'3!!!'1CG,T"`!!!1J!!I(f!!-!!2rrrri!!(2H!!#LXKA\rj!!!!!J#3"!U%!*!3J!#3#3(qJJ#3(`B!N!9ME5j`F'-ZFfaL4PC$9!#3"`JJ!!!\r"!*!)"`#3%!8!!A0SE'*3HA4S!*!)XZ5TS,EPD,F!!!--!!!&8J!!!'J!!!'@`qY\r#Q3!!!1J!!I(h!!-!!2rrrri!!+4!!!#TNKAk!!!!!J#3""1%!*!3J!#3#3(qJJ#\r3(`B!N!9$Efa[FP"TBfYPFLj`F'-ZFfaL4PC$9!#3"`JJ!!!"!*!)"`#3%!8!!A0\rSE'*3HA4S!*!)XZhK+EEPD*S!!!mF!!!PJ`!!!')!!!'1J-#JF`!!!1J!!I(i!!-\r!!2rrrri!!+XS!!$3UaAl!!!!!J#3"!Z%!*!3J!#3#3(qJJ#3(`B!N!9MG')ZF("\rM,R0XBNC@3e3!N!F))!!!!3#3#!F!N"!&!!&cD'aL8(PdD!#3#,,YiC'fj@M'!!!\r(jJ!!&bi!!!"L!!!"MJ*-"*!!!!!!k!!"mIX!!`!!rrrrrJ!!dMN!!1PR&Ii!!!!\r#!*!%#S3!N"#!!*!*!Ik#!*!I"J#3"8CY,R"`BbjcE'*'9N08!*!(##!!!!%!N!J\r(!*!3"3!"FfKXBP"jG'J!N!Lbj+Q3!,EPD*d!!#ab!!"F8J!!!'B!!!'1AZb&%!!\r!!1J!!I(m!!-!!2rrrri!!1Ve!!&(4aAr!!!!!J#3"!b%!*!3J!#3#3(qJJ#3(`B\r!N!9RC'*Y,R"`BbjcE'*'9N08!*!(##!!!!%!N!J(!*!3"3!"FfKXBP"jG'J!N!L\rblH'9YZ9SbJ!!"S3!!"3I!!!!C!!!!Bi,RMhD!!!!k!!"mId!!`!!rrrrrJ!"508\r!!9cd&J#3"!)!N!3-K!#3%)!!N!N"rS)!N"m'!*!&5'9XF#j`F'-ZFfaL4PC$9!#\r3"`JJ!!!"!*!)"`#3%!8!!A0SE'*3HA4S!*!)XZ5TNVEPD+%!!!ib!!!Q+`!!!'3\r!!!'5ia%[K!!!!1J!!I(q!!-!!2rrrri!N!BQ+aB"!!!!!J#3"!k%!*!3J!#3#3(\rqJJ#3(`B!N!9TBfGXG@8ZF("M,R0XBNC@3e3!N!F))!!!!3#3#!F!N"!&!!&cD'a\rL8(PdD!#3#,,YiCUfj@M1!!!5r!!!6Q8!!!"N!!!"MQ'6DDN!!!$S!!(ar`!$!!$\rrrrrq!!!R[3!!GL)@!J!!!!)!N!3,K!#3%)!!N!N"rS)!N"m'!*!&5@0Z,R"`Bbj\rcE'*'9N08!*!(##!!!!%!N!J(!*!3"3!"FfKXBP"jG'J!N!LblH'HYZ9SdJ!!%%`\r!!$6q!!!!C!!!!Bl)4h5N!!!!k!!"mJ!!!`!!rrrrrJ!!Gl!!!+bZ&J-!!!!#!*!\r%$)3!N"#!!*!*!Ik#!*!I"J#3"8aTFh3ZF("M,R0XBNC@3e3!N!F))!!!!3#3#!F\r!N"!&!!&cD'aL8(PdD!#3#,,N0"Ufj@LP!!!*XJ!!'C`!!!"Q!!!"NJBYPl)!!!$\rS!!(b!3!$!!$rrrrq!!#Z2!!!apJ@"!!!!!)!N!34K!#3%)!!N!N"rS)!N"m'!*!\r&E@&MFh"PC@0S,R"`BbjcE'*'9N08!*!(##!!!!%!N!J(!*!3"3!"FfKXBP"jG'J\r!N!Lbj+QKYZ9SZ`!!"l`!!"E[!!!!D!!!!C,jd`Ec!!!!k!!"mJ-!!`!!rrrrrJ!\r!b@S!!1"C&JB!!!!#!*!%%)3!N"#!!*!*!Ik#!*!I"J#3"9"bD@jdD@jR,R"`Bbj\rcE'*'9N08!*!(##!!!!%!N!J(!*!3"3!"FfKXBP"jG'J!N!Lc#DAkYZ9Se3!!$#3\r!!#3I!!!!C!!!!C+TNT'@!!!!k!!"mJ3!!`!!rrrrrJ!!iHX!!3B+&JF!!!!#!*!\r%$S3!N"#!!*!*!Ik#!*!I"J#3"9&NEfCQFbj`F'-ZFfaL4PC$9!#3"`JJ!!!"!*!\r)"`#3%!8!!A0SE'*3HA4S!*!)XZhKX,EPD0N!!'aN!!(SR3!!!')!!!'1+HV04J!\r!!1J!!I)&!!-!!2rrrri!N!J@#!!!!!)!N!3+K!#3%)!!N!N"rS)!N"m'!*!&8A3\rZF("M,R0XBNC@3e3!N!F))!!!!3#3#!F!N")"9%9B9(4dH(3!N!LfR0ZQYTcETJ!\r!!%J!!!"0!*!))QCpP3!!!1J!!I)'!!-!!2rrrri!N!J@#3!!!!)!N!3+K!#3%)!\r!N!N"rS)!N"m%!*!&FQ9KC'eP,R4iG%C@3e3!N!F))!!!!3#3#!F!N"!&!!&cD'a\rL8(PdD!#3#,,YiE5fj@MF!!!%mJ!!#dS!!!"N!!!"MZGCE2F!!!$S!!(b"`!$!!$\rrrrrq!*!'#dS@#J!!!!)!N!30K!#3%)!!N!N"rS)!N"m'!*!&8f0bBA!ZF("M,R0\rXBNC@3e3!N!F))!!!!3#3#!F!N"!&!!&cD'aL8(PdD!#3#,,YiELfj@MK!!!AeJ!\r!6&N!!!"L!!!"MXr+Xqm!!!$S!!(b#!!$!!$rrrrq!!!-f!!!@6%@#`!!!!)!N!3\r,K!#3%)!!N!N"rS)!N"m'!*!&8fjN,R"`BbjcE'*'9N08!*!(##!!!!%!N!J(!*!\r3"3!"FfKXBP"jG'J!N!LblH'pYZ9Sj!!!#$i!!"A'!!!!D!!!!C+Xha#l!!!!k!!\r"mJN!!`!!rrrrrJ!!@Vm!!(#&&J`!!!!#!*!%%B3!N"#!!*!*!Ik#!*!I"J#3"90\rZC'PSEfpVFbj`F'-ZFfaL4PC$9!#3"`JJ!!!"!*!)"`#3%!8!!A0SE'*3HA4S!*!\r)XZhKcEEPD1J!!"&H!!!k-J!!!')!!!'1AKVE03!!!1J!!I)+!!-!!2rrrri!!()\rA!!#X54B0!!!!!J#3"!U%!*!3J!#3#3(qJJ#3(`B!N!9845j`F'-ZFfaL4PC$9!#\r3"`JJ!!!"!*!)"`#3%!8!!A0SE'*3HA4S!*!)XZ5TPlEPD+N!!*@'!!&d!3!!!'3\r!!!'1'ANJZ`!!!1J!!I),!!-!!2rrrri!N!J@$J!!!!)!N!30K!#3%)!!N!N"rS)\r!N"m'!*!&Gf&cG'8ZF("M,R0XBNC@3e3!N!F))!!!!3#3#!F!N"!&!!&cD'aL8(P\rdD!#3#,,NUCQfj@LY!!"DQJ!!cA8!!!"Q!!!"MR-rlG%!!!$S!!(b$3!$!!$rrrr\rq!*!)&K!!!!!#!*!%$)3!N"#!!*!*!Ik#!*!I"J#3"ATXD@)ZF("M,R0XBNC@3e3\r!N!F))!!!!3#3#!F!N"!&!!&cD'aL8(PdD!#3#,@cUbDfj@L5!!#G+J!"j1S!!!"\rQ!!!"NS+aYfX!!ib+!!1-Q`!$!!$rrrrq!*!)')F!!!!#!*!%$i3!N"#!!*!*!Ik\r#!*!I"J#3"A"jCAK`BA3ZF("M,R0XBNC@3e3!N!F))!!!!3#3#!F!N"!&!!&cD'a\rL8(PdD!#3#,Db(@qfj@L,!!!%K!!!#+%!!!"S!!!"NRjl@r-!!M6*!!)db`!$!!$\rrrrrq!*!'#+%Dl`!!!!)!N!34K!#3%)!!N!N"rS)!N"m'!*!&Ah0jEA4KBQaP,R"\r`BbjcE'*'9N08!*!(##!!!!%!N!J(!*!3"3!"FfKXBP"jG'J!N!LfXKeiYZ9SMJ!\r!"!!!!!Hl!!!!D!!!!C+RSpQ,!!)db3!#0-d!!`!!rrrrrJ!!#M-!!"(Z'Zd!!!!\r#!*!%%B3!N"#!!*!*!Ik#!*!I"J#3"9pdCA0dBf&`D5j`F'-ZFfaL4PC$9!#3"`J\rJ!!!"!*!)"`#3%!8!!A0SE'*3HA4S!*!)YV)GBVEPD)F!!"%#!!!aV!!!!'J!!!'\r5DT8(dJ!#0-N!!M63!!-!!2rrrri!!"1!!!"&,"VV!!!!!J#3""#%!*!3J!#3#3(\rqJJ#3(`B!N!9IGf9KDh*PCLj`F'-ZFfaL4PC$9!#3"`JJ!!!"!*!)"`#3%!8!!A0\rSE'*3HA4S!*!)XZ5TTlEPD--!!!jX!!!Ze!!!!'3!!!'1CG,T"`!#0-N!!M6A!!-\r!!2rrrri!!%Dq!!"eNKVQ!!!!!J#3"!U%!*!3J!#3#3(qJJ#3(`B!N!9$E5j`F'-\rZFfaL4PC$9!#3"`JJ!!!"`!#3"`F!N"!&!!&cD'aL8(PdD!#3#,Db(Xffj@S'!!!\r%LJ!!#+%!!!"Z!!!"PK+I#MB!!M6*!!)dbJ!$!!$rrrrq!!"h)!!!Im%Dm!!!!!)\r!N!38K!#3%#!!N!N"rU!!N"m(!*!%!9pcH@edB@*XC5jMBA*LEfiZFfaL4PC$9!#\r3"`JJ!!!"`!#3"`F!N"!&!!&cD'aL8(PdD!#3#,Db(Yffj@S*!!!%"!!!"lX!!!"\rX!!!"PLVAdmm!!M6*!!)dc!!$!!$rrrrq!!#"9`!!L4)DlJ!!!!)!N!38K!#3%#!\r!N!N"rU!!N"m(!*!%!9pdCA0dBf&`D5jMBA*LEfiZFfaL4PC$9!#3"`JJ!!!"`!#\r3"`F!N"!&!!&cD'aL8(PdD!#3#,Db(VZfj@S$!!!4"J!!-D`!!!"S!!!"PQXf6RJ\r!!M6*!!)dc`!$!!$rrrrq!!#+U!!![&3Dl!!!!!)!N!36K!#3%#!!N!N"rU!!N"m\r(!*!%!9phC@&VFQ9Q,Q0KFQ*[ELjcE'*'9N08!*!(##!!!!(!!*!("`#3%!8!!A0\rSE'*3HA4S!*!)YT2#BVEPDL8!!"&U!!"'G`!!!'3!!!'5Y#[h`J!#0-N!!M65!!-\r!!2rrrri!!,hU!!%%B4VT!!!!!J#3"!k%!*!3)!#3#3(qS!#3(`F!N!3"3A"`,Q0\rKFQ*[ELjcE'*'9N08!*!(##!!!!(!!*!("`#3%!8!!A0SE'*3HA4S!*!)YT2#(VE\rPDK!!!"*f!!!VNJ!!!'J!!!'@MS8DR!!#0-N!!M68!!-!!2rrrri!!3Ac!!%aK4V\rS!!!!!J#3""+%!*!3)!#3#3(qS!#3(`F!N!3"Bf&XE'4XE#jMBA*LEfiZFfaL4PC\r$9!#3"`JJ!!!"`!#3"`F!N"!&!!&cD'aL8(PdD!#3#,D6`RLfj@SR!!!1*J!!,3%\r!!!"Q!!!"MXYpBjS!!M6*!!)deJ!$!!$rrrrq!!%c'`!"B"`Dj`!!!!)!N!30K!#\r3%#!!N!N"rU!!N"m(!*!%!80Y,Q0KFQ*[ELjcE'*'9N08!*!(##!!!!(!!*!("`#\r3%!8!!A0SE'*3HA4S!*!)YT2#9VEPDL%!!!-%!!!&8J!!!'S!!!'Dk3Q!r`!#0-N\r!!M6B!!-!!2rrrri!!@'U!!&Qr"VP!!!!!J#3""D%!*!3)!#3#3(qS!#3(`F!N!3\r"3fpXEh*3D@0VCA)ZBf&bBQpZ,R0XBNC@3e3!N!F))!!!!F!!N!F(!*!3"3!"FfK\rXBP"jG'J!N!LfNm+&YZ9U+`!!"dB!!"5r!!!!CJ!!!BjBHG*'!!)db3!#00d!!`!\r!rrrrrJ#3"K5r'Z3!!!!#!*!%$B3!N"!J!*!*!IkJ!*!I"`#3"!&'E5jMBA*LEfi\rZFfaL4PC$9!#3"`JJ!!!"`!#3"`F!N"!&!!&cD'aL8(PdD!#3#,D6a!1fj@S5!!!\rXGJ!!A&)!!!"Q!!!"NUTC58N!!M6*!!)dh`!$!!$rrrrq!!!@63!!FTmDi`!!!!)\r!N!32K!#3%#!!N!N"rU!!N"m(!*!%!@GNBQdZBf&bBQpZ,R0XBNC@3e3!N!F))!!\r!!F!!N!F(!*!3"3!"FfKXBP"jG'J!N!LfR2ZjYZ9U&3!!#TS!!"S9!!!!CJ!!!C)\r"qF!A!!)db3!#01-!!`!!rrrrrJ!!G$%!!)j''Z%!!!!#!*!%%B3!N"!J!*!*!Ik\rJ!*!I"`#3"!&TBfGXG@8ZBf&bBQpZ,R0XBNC@3e3!N!F))!!!!F!!N!F(!*!3"3!\r"FfKXBP"jG'J!N!LfNm+EYZ9U,3!!%mJ!!&+c!!!!D!!!!C,B4DAM!!)db3!#018\r!!`!!rrrrrJ!!MpJ!!1+,'Z!!!!!#!*!%$S3!N"!J!*!*!IkJ!*!I"`#3"!&*Bfi\rZBf&bBQpZ,R0XBNC@3e3!N!F))!!!!F!!N!F(!*!3"3!"FfKXBP"jG'J!N!LfNm+\rSYZ9U-3!!%0`!!$Ll!!!!D!!!!C)ad9Bq!!)db3!#01F!!`!!rrrrrJ!!j"d!!4c\rB'Ym!!!!#!*!%$i3!N"!J!*!*!IkJ!*!I"`#3"!&-DA0d,Q0KFQ*[ELjcE'*'9N0\r8!*!(##!!!!(!!*!("`#3%!8!!A0SE'*3HA4S!*!)YT2$rVEPDJ`!!*dZ!!(NqJ!\r!!'J!!!'@rI(bfJ!#0-N!!M6X!!-!!2rrrri!N!JDh3!!!!)!N!35K!#3%#!!N!N\r"rU!!N"m(!*!%!A"jCAK`BA3ZBf&bBQpZ,R0XBNC@3e3!N!F))!!!!F!!N!F(!*!\r3"3!"FfKXBP"jG'J!N!LfNm+qYZ9U-`!!$$!!!#3r!!!!CJ!!!C,Ie"`5!!)db3!\r#01i!!`!!rrrrrJ#3#"VF!!!!!J#3""'%!*!3)!#3#3(qS!#3(`F!N!3"8@4[CQC\rc,Q0KFQ*[ELjcE'*'9N08!*!(##!!!!(!!*!("`#3%!8!!A0SE'*3HA4S!*!)YT2\r%&,EPDMF!!'NZ!!(AT`!!!'B!!!'1jMia23!#0-N!!M6`!!-!!2rrrri!N!JDf`!\r!!!)!N!30K!#3%#!!N!N"rU!!N"m(!*!%!9&d,Q0KFQ*[ELjcE'*'9N08!*!(##!\r!!!(!!*!("`#3%!8!!A0SE'*3HA4S!*!)YTcm+VEPDMS!!!4Z!!!+e3!!!'J!!!'\r5+!-$c`!#0-N!!M6c!!-!!2rrrri!N!B+e4VD!!!!!J#3""#%!*!3)!#3#3(qS!#\r3(`F!N!3"8f0bBA!ZBf&bBQpZ,R0XBNC@3e3!N!F))!!!!F!!N!F(!*!3"3!"FfK\rXBP"jG'J!N!LfNm,MYZ9U23!!&#S!!$hX!!!!CJ!!!C+GGAeC!!)db3!#028!!`!\r!rrrrrJ!!$'F!!%T6'YN!!!!#!*!%$S3!N"!J!*!*!IkJ!*!I"`#3"!&6EQ3ZBf&\rbBQpZ,R0XBNC@3e3!N!F))!!!!F!!N!F(!*!3"3!"FfKXBP"jG'J!N!LfNm,`YZ9\rU3!!!#$`!!"A'!!!!E!!!!CC8"f!f!!)db3!#02F!!`!!rrrrrJ!!5q8!!''V'YJ\r!!!!#!*!%&)3!N"!J!*!*!IkJ!*!I"`#3"!&6EQ4TD'p[Dh-ZBf&bBQpZ,R0XBNC\r@3e3!N!F))!!!!F!!N!F(!*!3"3!"FfKXBP"jG'J!N!LfN5@4YZ9U3`!!%DS!!$`\r&!!!!C!!!!BlK"kEh!!)db3!#02N!!`!!rrrrrJ!!Bd%!!*p''YF!!!!#!*!%$B3\r!N"!J!*!*!IkJ!*!I"`#3"!&845jMBA*LEfiZFfaL4PC$9!#3"`JJ!!!"`!#3"`F\r!N"!&!!&cD'aL8(PdD!#3#,DG!I5fj@SC!!$FIJ!##qJ!!!"U!!!"NYN#[#-!!M6\r*!!)dr3!$!!$rrrrq!*!)'Y8!!!!#!*!%%)3!N"!J!*!*!IkJ!*!I"`#3"!&hBA0\rdC5jMBA*LEfiZFfaL4PC$9!#3"`JJ!!!"`!#3"`F!N"!&!!&cD'aL8(PdD!#3#,D\r6a!@fj@SE!!"DS!!!cA8!!!"S!!!"NT+9R()!!M6*!!)e!!!$!!$rrrrq!*!)'Y3\r!!!!#!*!%$i3!N"!J!*!*!IkJ!*!I"`#3"!&kE'PL,Q0KFQ*[ELjcE'*'9N08!*!\r(##!!!!%!N!J(!*!3"3!"FfKXBP"jG'J!N!LfhCjlYZ9U(J!!!IB!!!0K!!!!D!!\r!!CDY5k1U!!Jr43!)2dS!!`!!rrrrrJ#3#"ai!!!!!J#3""1%!*!3i!#3#3(qiJ#\r3(`3!N!9IG'YTER4PFLjMBA*LEfiZFfaL4&C$9!#3%,EQVlLfjUqj!!!!k3!!!--\r!!!!"!*!F&K%!!!!#!!)!N!3(!!!!#!3(!*!E!GQL!*!MFf0bDA"dFdC@3e3!N!F\r))!!!!3#3#!F!N")"9%9B9&"jG'J!N!Lbed5EXYG%Q`!!!Z!!!!C8!*!))d#@%!!\r!!1N!!I)4!!-!!2rrrri!N!J@&!!!!!)!N!31K!#3'J(rSJ#3(`3!N!9#G@PXC%&\r`F'aPG#j`H8C@3e3!N!F))!!!!3#3#!F!N")"FR0bBe*6483!N!Le%AbcYX(V@J#\r3#J3%!!!,PpiK@K3!!!$T!!(b%J!$!!$rrrrq!*!)&K8!!!!#!*!%%)3!N"S"rk)\r!N"m%!*!&3R9TE'4"F("XCA3ZFR0bBdC@3e3!N!F))!!!!3#3#!F!N")"9%9B9&"\rjG'J!N!Lbed5EYPm@%!!!"Bi!!!a8!*!)Nm#,ZJ!!!1N!!I)6!!-!!2rrrri!N!J\r@&J!!!!)!N!36K!#3'J(rSJ#3(`3!N!9#G@PXC%&`F'aTBf&dD@pZ,R"j4PC$9!#\r3"`JJ!!!"!*!)"`#3%J&bFh*M8P0&4!#3#,BL8m1f`HY8!*!+"5B!!!j$lmN%RJ!\r!!1N!!I)8!!-!!2rrrri!N!J@&`!!!!)!N!39K!#3'J(rSJ#3(`3!N!9#G@PXC%&\r`F'aTBf&dD@pZ,R*cFQ0'9N08!*!(##!!!!%!N!J(!*!5!94&@&43HA4S!*!)XYG\r%QlE86C`!!!G5!!!8K3#3#$HJB,i!!!$T!!(b&J!$!!$rrrrq!*!)&KN!!!!#!*!\r%%S3!N"S"rk)!N"m%!*!&3fpZCQPRGA*P8(PdD'pZ,R"j4PC$9!#3"`JJ!!!"!*!\r)"`#3%J&bFh*M8P0&4!#3#,0+1%qfe&Af!*!+$(S!!#)CqS6Z*J!!!1N!!I)A!!-\r!!2rrrri!N!J@'J!!!!)!N!38K!#3'J(rSJ#3(`3!N!9$EfjQD@GeFQ93HA4SEfi\rZFR0bBdC@3e3!N!F))!!!!3#3#!F!N")"9%9B9&"jG'J!N!Lbed5HXYG%RJ!!!9B\r!!!*E!*!)kJcT)`!!!1N!!I)B!!-!!2rrrri!N!J@'`!!!!)!N!3(K!#3'J(rSJ#\r3(`3!N!9MFQaQ,R"j4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K88(PdD!#3#,,A4*b\rfR0ZX!!!(R!!!&IF!N!K!CdlR!!!!k3!"mKN!!`!!rrrrrJ!!!PX!N!3@(!!!!!)\r!N!35K!#3'J(rSJ#3(`3!N!9&C'Pd8(PdD'pZ8(*PCR-ZF(P'9N08!*!(##!!!!%\r!N!J(!*!5!A*cFQ058d9%!*!)Y8'BG,E"kd%!N!S1Y!!!*)CYeRK@!!!!k3!"mKS\r!!`!!rrrrrJ#3#"BG!!!!!J#3""5%!*!D!IqL!*!I"!#3"89NDA43HA4SEfj3FQ9\rQFbjbFh*M4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K83eG*43#3#,,A4*bf&6'$!!!\r%d!!!$+3!!!"d!!!"QKfhSq`!!!$T!!(b'`!$!!$rrrrq!*!)&Ki!!!!#!*!%&)3\r!N"S"rk)!N"m%!*!&4@4TG&"jG'K[EP"bC@Cc3NJZBQK'9N08!*!(##!!!!%!N!J\r(!*!5!9*68N058d9%!*!)YK8aU,B9-DJ!N!S&IJ!!%&3`jKE0!!!!k3!"mK`!!`!\r!rrrrrJ#3#"BI!!!!!J#3""D%!*!D!IqL!*!I"!#3"89NDA43HA4SEfj3FQ9QFd*\r),R*cFQ0'9N08!*!(##!!!!%!N!J(!*!5!94&@&4dG(Kd!*!)X[aZYECfar%!!)#\rS!!&mQJ#3#(44+IN!!!$T!!(b(3!$!!$rrrrq!*!)&L!!!!!#!*!%#S3!N"S"rk)\r!N"m%!*!&CA*bEh*c,R4iG%C@3e3!N!F))!!!!3#3#!F!N")"9%9B9&"jG'J!N!L\rbi`2kXZ-$qJ!!!S!!!!4k!*!)EI*+)!!!!1N!!I)H!!-!!2rrrri!N!J@)3!!!!)\r!N!32K!#3'J(rSJ#3(`3!N!9QD@jNCh*PE@aTER-ZF(P'9N08!*!(##!!!!%!N!J\r(!*!5!94&@&43HA4S!*!)XYG%Rl,A4*m!!!*b!!!%eJ#3#"%aiaB!!!$T!!(b)!!\r$!!$rrrrq!!!%HJ#3""BM!!!!!J#3"!q%!*!D!IqL!*!I"!#3"@CTH'CTE'9dHA"\rPFbj`H8C@3e3!N!F))!!!!3#3#!F!N")"9%9B9&"jG'J!N!Lbed5JYYfMT3!!$1i\r!!#QJ!!!!U!!!!GEQh)N-!!!!k3!"mL)!!`!!rrrrrJ!!#9!!!$,`&L8!!!!#!*!\r%$)3!N"S"rk)!N"m%!*!&CR9XE'*eD@aN,R"j4PC$9!#3"`JJ!!!"!*!)"`#3%J&\rbFh*M8P0&4!#3#,D[BlZfVf1l!*!+!XS!!!D5-"C%C3!!!1N!!I)M!!-!!2rrrri\r!N!J@*J!!!!)!N!31K!#3'J(rSJ#3(`3!N!9QG@aXBR9TE'3ZFR0bBdC@3e3!N!F\r))!!!!3#3#!F!N")"9%9B9&"jG'J!N!Lbed5JYFL[l`!!'i`!!&pK!*!)e!riT!!\r!!1N!!I)N!!-!!2rrrri!N!J@*`!!!!)!N!34K!#3'J(rSJ#3(`3!N!9RC@jcG@P\rdC@e[C(9XC5j`H8C@3e3!N!F))!!!!3#3#!F!N")"9%9B9&"jG'J!N!LblGq4XZh\rIN3!!!M`!!!4m!*!)dcRi$`!!!1N!!I)P!!-!!2rrrri!!&pK!*!%&LJ!!!!#!*!\r%$)3!N"S"rk)!N"m%!*!&E@&VC@0XC@&Z,R"j4PC$9!#3"`JJ!!!"!*!)"`#3%J&\r849K88(PdD!#3#,8T3M1fbaPG!!!*5!!!(-J!N!L0DTb+!!!!k3!"mLB!!`!!rrr\rrrJ!!Bpd!N!3@+3!!!!)!N!3+K!#3'J(rSJ#3(`3!N!90Dd4TFh4b,R"j4PC$9!#\r3"`JJ!!!"!*!)"`#3%J&bFh*M8P0&4!#3#,BL8m1f)P2$!*!+![B!!!@CJFRlD`!\r!!1N!!I)R!!-!!2rrrri!N!J@+J!!!!)!N!3-K!#3'J(rSJ#3(`3!N!90Dd4TFh4\rb,R*cFQ0'9N08!*!(##!!!!%!N!J(!*!5!94&@&43HA4S!*!)XYG%REDaCcX!!!Y\r3!!!M#3#3##F*!k%!!!$T!!(b+!!$!!$rrrrq!*!)&LX!!!!#!*!%$B3!N"S"rk)\r!N"m%!*!&6@Y%DA0dFPpeD5j`H8C@3e3!N!F))!!!!3#3#!F!N")"9%9B9&"jG'J\r!N!Lbed5JYRJ,L`!!"'J!!!dS!*!)*)h%`J!!!1N!!I)T!!-!!2rrrri!!#-*!*!\r%&L`!!!!#!*!%$)3!N"S"rk)!N"m%!*!&E@YPFh4bFQ9c,R"j4PC$9!#3"`JJ!!!\r"!*!)"`#3%J&849K88(PdD!#3#,,A4*fbed5G!!!#B!!!"8)!N!MYBJ2)!!!!k3!\r"mLX!!`!!rrrrrJ!!-$%!N!3@,J!!!!)!N!30K!#3'J(rSJ#3(`3!N!93B@0V6'P\rL4'Pb,R"j4PC$9!#3"`JJ!!!"!*!)"`#3%J&bFh*M8P0&4!#3#,BL8m1f)P2$!*!\r+!jB!!!X,!3*q[3!!!1N!!I)X!!-!!2rrrri!N!J@,`!!!!)!N!32K!#3'J(rSJ#\r3(`3!N!93B@0V6'PL4'Pb,R*cFQ0'9N08!*!(##!!!!%!N!J(!*!5!94&@&43HA4\rS!*!)XYG%SE,A4+%!!!(J!!!$@J#3#&KG%Yd!!!$T!!(b,3!$!!$rrrrq!*!)&M!\r!!!!#!*!%"S3!N"S"rk)!N"m%!*!&FR9Z,R"j4PC$9!#3"`JJ!!!"!*!)"`#3%J&\r849K88(PdD!#3#,,A4*feGE#H!!!$m!!!#Hd!N!L(Ii0M!!!!k3!"mLi!!`!!rrr\rrrJ!!!eS!N!3@-3!!!!)!N!32K!#3'J(rSJ#3(`3!N!95G@j-D@*6Bh*TF(3ZF(P\r'9N08!*!(##!!!!%!N!J(!*!5!A*cFQ058d9%!*!)Y+&YR,5KEC`!N!S&N!!!!!c\rPe'lrR!!!!1N!!I)[!!-!!2rrrri!N!J@-J!!!!)!N!34K!#3'J(rSJ#3(`3!N!9\r5G@j-D@*6Bh*TF(3ZFR0bBdC@3e3!N!F))!!!!3#3#!F!N")"9%9B9&"jG'J!N!L\rbed5KXYG%S3!!!iJ!!!K6!*!))Hph2`!!!1N!!I)`!!-!!2rrrri!N!J@-`!!!!)\r!N!3*K!#3'J(rSJ#3(`3!N!9eER0SBA)ZF(P'9N08!*!(##!!!!%!N!J(!*!5!94\r&@&43HA4S!*!)YNG)AVD[BlX!!!Iq!!!BrJ!!!GS!!!F%`8m`[J!#03)!!M86!!-\r!!2rrrri!!!K6!!!K84V6!!!!!J#3""5%!*!D!IqL!*!I"!#3"@GPER"XG@GTER"\rbEfTPBh4c,R"j4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K88(PdD!#3#,D6TZbfR0Z\rY!!!%i!!!#`m!N!M%QNBd!!)e!J!#04B!!`!!rrrrrJ!!+&8!N!3DdJ!!!!)!N!3\rAK!#3'J(rSJ#3(`3!N!9YDA0cD@jRBf&bBQpZE@9dD'pNFbj`H8C@3e3!N!F))!!\r!!3#3#!F!N")"9%9B9&"jG'J!N!LfADejYV$-,3!!#C3!!"`p!!!"(!!!"DlB)'P\rQ!!)e!J!#05%!!`!!rrrrrJ!!-f3!!%qK'Y%!!!!#!*!%#S3!N"S"rk)!N"m%!*!\r&G@jhC@&fC5j`H8C@3e3!N!F))!!!!3#3#!F!N")"9%9B9&"jG'J!N!Ld8dM1Y&0\r*"J!!!8i!!!*P!!!"AJ!!"DjD-a0h!!)e!J!#05)!!`!!rrrrrJ!!98m!!&Hd'Y!\r!!!!#!*!%$S3!N"S"rk)!N"m%!*!&HQ&`F(PMCQPXCA-ZF(P'9N08!*!(##!!!!%\r!N!J(!*!5!94&@&45+Q0S!*!)YV#ml,D`[1`!!!"Q!!!!H`#3#)'bSRF!"X4S!!E\r%L3!$!!$rrrrq!!"GBJ#3""ZT!!!!!J#3"!k%!*!D!IqL!*!I"!#3"A9ZGf9KGQ8\rZBfpZCQPR4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K88LTMD!#3#,D`Yk@fX,HP!!!\r!CJ!!!(X!N!L"XU*h!!E%D!!'a)X!!`!!rrrrrJ!!AGd!N!3EU!!!!!)!N!34K!#\r3'J(rSJ#3(`3!N!9eERGPBACP,R"j,Q0[EQCTCd4@3e3!N"#fjUqkYZD[[3!!!1S\r!!!$$!!!!!3#3("Bd!!!!!J!#!*!%"3!!!!J%"`#3'`(CSJ#3)e4[Efac4&C$9!#\r3%,EQVlUfjUqk!!!!k`!!!1S!!!!"!*!F&M8!!!!$!!)!N!3$!!!!#!3(!*!E!J#\rL!*!M3dG*4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K88(PdD!#3#,88lJLeGE#S!!!\r$I!!!"jd!N!Ml&jLD!!!!k`!"mM3!"!!!rrrrrJ#3#"Bh!!!!!J#3""'%!*!D!J'\rL!*!I"!#3"8*eD@aN3dG*3A"`E'9d,R"j4PC$9!#3"`JJ!!!"!*!)"`#3%J&bFh*\rM8P0&4!#3#,B8VjHf`HVF!*!+!4)!!!&XeF#$V3!!!1X!!I)e!!3!!2rrrri!N!J\r@1!!!!!)!N!36K!#3'J)"SJ#3(`3!N!9#G@PXC%0(58&`F'aPG#jbFh*M4PC$9!#\r3"`JJ!!!"!*!)"`#3%J&849K8G(4iG!#3#,88lJLe&1i)!!!&@J!!#km!N!JM`P8\rr!!!!k`!"mMB!"!!!rrrrrJ#3#"Bj!!!!!J#3"!k%!*!D!J'L!*!I"!#3"80(59p\r548&%688ZG(Kd4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K88(PdD!#3#,88lJLe&1i\r)!!!*jJ!!&hS!N!MN@GIR!!!!k`!"mMJ!"!!!rrrrrJ!!#km!N!3@1`!!!!)!N!3\r4K!#3'J)"SJ#3(`3!N!93HA4SEfj$4dP6E'&fC5j`H8C@3e3!N!F))!!!!3#3#!F\r!N")"FR0bBe*6483!N!Lf&+qAYX(Ui!#3#J%3!!!"E"C@E8)!!!$V!!(b13!%!!$\rrrrrq!*!)&M`!!!!#!*!%%i3!N"S#!D)!N"m%!*!&8(PdD'pZ3dG*8faKGQ8ZFR0\rbBdC@3e3!N!F))!!!!3#3#!F!N")"9%9B9&0d6@`!N!LeVl+@YFc"93!!""3!!!K\r&!!!!6!!!!6j!ELUL!!1-bJ!$M-i!"!!!rrrrrJ#3"JK&')8!!!!#!*!%#)3!N"S\r#!D)!N"m%!*!&BfGT,QKdE@a'9N08!*!(##!!!!%!N!J(!*!5!94&@&4dG(Kd!*!\r)YDqbDV@[XQS!N"8$M-S!!ic4!!3!!2rrrri!N!JBK!!!!!)!N!39K!#3'J)"SJ#\r3(`3!N!93HA4SEfj$4dP6E'&fC5jPFR*[FR0'9N08!K"J!J!!!!JJ!#!"!*!)"`#\r3%!8!!8&38%a3HA4K)!#3"lEPDRffj@U"!!!"U!!!!`3!!"k+!!"i44Uk`RS!"hV\r0!!GkcJ!%!!$rrrrq!*!)('%!!!!#!*!%$S3!N"S#!D)!N"m%!*!&3R9TE'4$4dP\r"F("XCA4'9N08!K"J!J!!!!JJ!#!"!*!)"`#3%!8!!8&38%a3HA4K)!#3"lEPDRQ\rfj@Tp!!!"U!!!!`3!!#HL!!#-Z609bD)!"hV0!!Gkd`!%!!$rrrrq!*!)('!!!!!\r#!*!%$S3!N"S#!D)!N"m%!*!&8(PdD'pZ3dG*8faKGQ9%9N08!*!3YY4$m3#3"q`\r!!!$U!!!!!3#3("Bp!!!!!`!#!*!%!`!!!!J%"`#3'`)!SJ#3)dP%48C@3e3!N!F\r))!!!!3#3#!F!N")"9%9B9&"jG'J!N!Ld5HeNYA@`b3!!!M!!!!4k!*!)mqYAJ!!\r!!1`!!I)l!!3!!2rrrri!N!J@2J!!!!)!N!3,K!#3'J)#SJ#3(`3!N!9#G@PXC%P\r%45j`H8C@3e3!N!F))!!!!3#3#!F!N")"9%9B9&"jG'J!N!Ld5HeNY%RYC!!!"c)\r!!"ID!*!)c+TGi`!!!1`!!I)m!!3!!2rrrri!!!4k!*!%&Mm!!!!#!*!%$i3!N"S\r#!U)!N"m%!*!&4QpZG&0PG(4TEQGc,R"j4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K\r88(PdD!#3#,4*l@@fe&PR!!!$4!!!#LF!N!M1Cb*X!!!!l!!"mMd!"!!!rrrrrJ!\r!(&3!N!3@3!!!!!)!N!3,K!#3'J)#SJ#3(`3!N!90B@03FQ9QFbj`H8C@3e3!N!F\r))!!!!3#3#!F!N")"9%9B9&"jG'J!N!Ld5HePY%RYC3!!"HJ!!"1q!*!)blCq2`!\r!!1`!!I)q!!3!!2rrrri!!#Cl!*!%&N%!!!!#!*!%%)3!N"S#!U)!N"m%!*!&6@p\rNG@aP3R*[Gh0PFLj`H8C@3e3!N!F))!!!!3#3#!F!N")"9%9B9&"jG'J!N!Ld5He\rPY%RYC3!!"%!!!!Y-!*!)"fY3"J!!!1`!!I)r!!3!!2rrrri!!$Sj!*!%&N)!!!!\r#!*!%%B3!N"S#!U)!N"m%!*!&8(*[CQPXC8*bEhGcCA)ZF(P'9N08!*!(##!!!!%\r!N!J(!*!5!94&@&43HA4S!*!)Y%RYCEE%)@)!!!l+!!!ZA`#3#&Gl1Ii!!!$X!!(\rb3!!%!!$rrrrq!!"&K3#3""C$!!!!!J#3"!b%!*!D!J+L!*!I"!#3"9"j3R*[Gh0\rPFLj`H8C@3e3!N!F))!!!!3#3#!F!N")"9%9B9&"jG'J!N!Ld5HeQYTcET`!!$$S\r!!#`h!*!)@N0L"!!!!1`!!I*"!!3!!2rrrri!!(2N!*!%&N3!!!!#!*!%$)3!N"S\r#!U)!N"m%!*!&8(P$EfjcEfaP,R"j4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K88(P\rdD!#3#,4*l@Dd5HeQ!!!BZJ!!BU3!N!KFhdAh!!!!l!!"mN)!"!!!rrrrrJ!!S"X\r!N!3@43!!!!)!N!30K!#3'J)#SJ#3(`3!N!93H84PBR9RCf9b,R"j4PC$9!#3"`J\rJ!!!"!*!)"`#3%J&849K88(PdD!#3#,4*l@DfZU0m!!!+bJ!!([)!N!JJNcN[!!!\r!l!!"mN-!"!!!rrrrrJ!"!Vm!N!3@4J!!!!)!N!31K!#3'J)#SJ#3(`3!N!93H84\r[Be0PBA*MD#j`H8C@3e3!N!F))!!!!3#3#!F!N")"9%9B9&"jG'J!N!Ld5HeQYVU\rMI!!!*XS!!*!!b`!!!-!!!!(q1HIJ&3!!!1`!!I*%!!3!!2rrrri!N!J@4`!!!!)\r!N!3*K!#3'J)#SJ#3(`3!N!93H89NDA3ZF(P'9N08!*!(##!!!!%!N!J(!*!5!94\r&@&43HA4S!*!)Y%RYClDkSh`!!!H1!!!3ZJ#3#!YU,Ti!!!$X!!(b43!%!!$rrrr\rq!*!)&NJ!!!!#!*!%$)3!N"S#!U)!N"m%!*!&8(P'EfjdD@Cj,R"j4PC$9!#3"`J\rJ!!!"!*!)"`#3%J&849K88(PdD!#3#,4*l@Hd5HeR!!!%%J!!#[S!N!K6A!c+!!!\r!l!!"mNB!"!!!rrrrrJ!!%,S!N!3@53!!!!)!N!33K!#3'J)#SJ#3(`3!N!93H8P\rZG'9bB@0dDACP,R"j4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K88(PdD!#3#,4*l@H\rd5HeR!!!"jJ!!"#S!N!J8Y`@$!!!!l!!"mNF!"!!!rrrrrJ!!'l3!N!3@5J!!!!)\r!N!3-K!#3'J)#SJ#3(`3!N!93HA4SEfj*4%8ZF(P'9N08!3#!!*!%##!!)!%!N!J\r(!*!5!A*cFQ058d9%!*!)Y%RYClE"kbF!N!SAi!!!0D,F4T-5!!!!l!!"mNJ!"!!\r!rrrrrJ#3#"C,!!!!!J#3"!k%!*!D!J+L!*!I"!#3"9"jG'K[ENP%45jbFh*M4PC\r$9!#3"`JJ!!!"!*!)"`#3%J&849K88(PdD!#3#,4*l@HfcEKF!!!*c!!!)1-!N!L\rr1qEX!!!!l!!"mNN!"!!!rrrrrJ#3#"C-!!!!!J#3""#%!*!D!J+L!*!I"!#3"9"\rjG'K[ENP%48eKD@iZF(P'9N08!*!(##!!!!%!N!J(!*!5!94&@&43HA4S!*!)Y%R\rYClE8@1%!!!BS!!!2GJ#3##%!+pJ!!!$X!!(b5J!%!!$rrrrq!!!Ji`#3""C0!!!\r!!J#3"!Q%!*!D!J+L!*!I"!#3"90`E'&cD#j`H8C@3e3!N!F))!!!!3#3#!F!N")\r"9%9B9&"jG'J!N!Ld5HeRY%RYC`!!!Di!!!0Z!*!)DV+@[`!!!1`!!I*,!!3!!2r\rrrri!!$"C!*!%&Ni!!!!#!*!%")3!N"S#!U)!N"m%!*!&9bj`H8C@3e3!N!F))!!\r!!3#3#!F!N")"9%9B9&"jG'J!N!Ld5HeSYXfq%`!!$YB!!$#h!*!)XRBp8!!!!1`\r!!I*-!!3!!2rrrri!!$2(!*!%&Nm!!!!#!*!%$i3!N"S#!U)!N"m%!*!&9f&`F'a\rTBf&dD@pZ,R"j4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K88(PdD!#3#,4*l@LfNkE\rT!!!6m!!!5IF!N!KLNmHI!!!!l!!"mNd!"!!!rrrrrJ!!C(i!N!3@8!!!!!)!N!3\r)K!#3'J)#SJ#3(`3!N!9ABQ&cC5j`H8C@3e3!N!F))!!!!3#3#!F!N")"9%9B9&"\rjG'J!N!Ld5HeSYT1Qk3!!##!!!#I9!*!)BS5U-3!!!1`!!I*1!!3!!2rrrri!!+j\re!*!%&P%!!!!#!*!%$)3!N"S#!U)!N"m%!*!&9f0[ER4bEfac,R"j4PC$9!#3"`J\rJ!!!"!*!)"`#3%J&bFh*M8P0&4!#3#,BL8qQf)P2T!*!+#Bi!!"0hbP+m9!!!!1`\r!!I*2!!3!!2rrrri!N!J@8J!!!!)!N!3-K!#3'J)#SJ#3(`3!N!9AD@4RCA4c,R*\rcFQ0'9N08!*!(##!!!!%!N!J(!*!5!94&@&43HA4S!*!)Y%RYD,@'lDB!!!&m!!!\r$LJ#3#"0Eadd!!!$X!!(b8!!%!!$rrrrq!*!)&P-!!!!#!*!%#)3!N"S#!U)!N"m\r%!*!&9fYPHA-ZF(P'9N08!*!(##!!!!%!N!J(!*!5!94&@&43HA4S!*!)Y%RYD,D\r6TZN!!!aF!!!Za`#3#%5KQ*B!!!$X!!(b83!%!!$rrrrq!!!$LJ#3""C8!!!!!J#\r3"!Q%!*!D!J+L!*!I"!#3"9GXDA0dFbj`H8C@3e3!N!F))!!!!3#3#!F!N")"9%9\rB9&"jG'J!N!Ld5HeTYTcEU!!!"a)!!"P6!*!)9hP)9!!!!1`!!I*5!!3!!2rrrri\r!!$*4!*!%&P8!!!!#!*!%#B3!N"S#!U)!N"m%!*!&9fePER9c,R"j4PC$9!#3"`J\rJ!!!"!*!)"`#3%J&849K88(PdD!#3#,4*l@QfNkET!!!$`!!!#d-!N!Mf2DN#!!!\r!l!!"mP-!"!!!rrrrrJ!!5k3!N!3@9J!!!!)!N!30K!#3'J)#SJ#3(`3!N!9AFA9\rTBfYdD@eP,R"j4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K88(PdD!#3#,4*l@Qd5He\rT!!!-`J!!+3)!N!LjP9-"!!!!l!!"mP3!"!!!rrrrrJ!!9ZF!N!3@9`!!!!)!N!3\r+K!#3'J)#SJ#3(`3!N!9AFfpMDf9d,R"j4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K\r88(PdD!#3#,4*l@QfZU0m!!!CR!!!E3X!N!MiU9G4!!!!l!!"mP8!"!!!rrrrrJ!\r!IqN!N!3@@!!!!!)!N!3)K!#3'J)#SJ#3(`3!N!9AG'9iG#j`H8C@3e3!N!F))!!\r!!3#3#!F!N")"9%9B9&"jG'J!N!Ld5HeTY58m4J!!"J)!!"5e!*!)5H'b-J!!!1`\r!!I*@!!3!!2rrrri!!1cd!*!%&PN!!!!#!*!%$B3!N"S#!U)!N"m%!*!&9h4bB@0\rPBQ&MDbj`H8C@3e3!N!F))!!!!3#3#!F!N")"9%9B9&"jG'J!N!Ld5HeTYT1QkJ!\r!%[S!!%$q!*!)dP+EK`!!!1`!!I*A!!3!!2rrrri!!3'T!*!%&PS!!!!#!*!%#i3\r!N"S#!U)!N"m%!*!&9hGTEQ4[Gh-ZF(P'9N08!*!(##!!!!%!N!J(!*!5!94&@&4\r3HA4S!*!)YBEYTl@'lDF!!!$i!!!"R3#3#!Y#a,N!!ic8!!1-l3!%!!$rrrrq!!&\r#T`#3""L$!!!!!J#3"!Z%!*!D!J+L!*!I"!#3"9GYD@jTBA"`,R"j4&C$9!#3%,E\rQVlffjUqq!!!!l3!!!1S!!!!"!*!F&PX!!!!$!!)!N!3*!!!!#!3(!*!E!J#L!*!\rME@&MCR*PCATP4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K88(PdD!#3#,,A4)HeG1P\re!!!#3J!!"8-!N!K&T2S)!!!!l3!"mPN!"!!!rrrrrJ#3#"CF!!!!!J#3"!f%!*!\rD!J1L!*!I"!#3"@4TFQ9MG'PfCA-ZF(P%9N08!*!3Y6Tc8E8kFe!!!!$Z!!!!l3!\r!!!%!N"`@A3!!!!3!!J#3"!8!!!!)"!F!N"X#!k)!N#0SC@aXEdC@3e3!N!F))!!\r!!3#3#!F!N")"9%9B9&"jG'J!N!Lbed5)XYG%L!!!!&)!!!"I!*!)Z'p$a3!!!1i\r!!I*N!!8!!2rrrri!N!J@AJ!!!!)!N!3)K!#3'J)%SJ#3(`3!N!9SC@aXEbj`H8C\r@3e3!N!F))!!!!3#3#!F!N")"9%9B9&"jG'J!N!Ld'Qr*Y%RU1`!!!pJ!!!Nj!*!\r)HZ&Qd3!!!1d!!I*D!!3!!2rrrri!!!"I!*!%&Pm!!!!#!*!%$)3!N"S#!k)!N"m\r%!*!&E@&MCR*PCATP,R"j4PC$9!#3"`JJ!!!"!*!)"`#3%J&bFh*M8P0&4!#3#,B\rL8qQf)P2T!*!+!IJ!!!1-rR-jV`!!!1d!!I*E!!3!!2rrrri!N!J@B!!!!!)!N!3\r1K!#3'J)$SJ#3(`3!N!9YB@0QFQ9PHQ8ZFR0bBdC@3e3!N!F))!!!!3#3#!F!N")\r"9%9B9&"jG'J!N!Lbed5(YA@`qJ!!"C)!!""e!*!)`jPTZ`!!!1d!!I*F!!3!!2r\rrrri!N!J@B3!!!!)!N!32K!#3'J)$SJ#3(`3!N!9YB@0QFQ9PHQ9RG@NZF(P'9N0\r8!*!(##!!!!%!N!J(!*!5!94&@&43HA4S!*!)XYG%KlEGLTN!!!NX!!!B2!#3#2h\r5$0N!!!$Y!!(bA3!%!!$rrrrq!!!3G3#3""CL!!!!!J#3"!f%!*!D!J1L!*!I"!#\r3"@eKBfGPEPpLD@iZF(P'9N08!*!(##!!!!%!N!J(!*!5!94&@&43HA4S!*!)XYG\r%L,,A4)J!!!#F!!!!j`#3#D[dE3!!!1d!!I*H!!3!!2rrrri!!#La!*!%&Q-!!!!\r#!*!%$S3!N"S#!k)!N"m%!*!&E@&MCf9ZAfPZCQmZF(P'9N08!*!(##!!!!%!N!J\r(!*!5!94&@&43HA4S!*!)XYG%L,,A4)J!!!(8!!!$jJ#3#0DA+N)!!!$Y!!(bA`!\r%!!$rrrrq!!!TQ!#3""CN!!!!!J#3"!k%!*!D!J1L!*!I"!#3"@eKBfGPEPpbFh*\rM,R"j4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K88(PdD!#3#,,A4)Ld3f6I!!!&cJ!\r!$i3!N!LpKG%L!!!!l3!"mQ!!"!!!rrrrrJ!!,Ai!N!3@C3!!!!)!N!30K!#3'J)\r$SJ#3(`3!N!9YB@0RC@jIFh*M,R"j4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K88(P\rdD!#3#,,A4)Lbee+B!!!!R!!!!1N!N!LlLBEX!!!!l3!"mQ%!"!!!rrrrrJ!!23)\r!N!3@CJ!!!!)!N!31K!#3'J)$SJ#3(`3!N!9YB@0RC@jPFQ&dC5j`H8C@3e3!N!F\r))!!!!3#3#!F!N")"9%9B9&"jG'J!N!Lbed5)YYf(Q`!!"*S!!!VJ!*!)AGBaH`!\r!!1d!!I*L!!3!!2rrrri!!$hV!*!%&QF!!!!#!*!%%S3!N"S#!k)!N"m%!*!&E@&\rME@pNG@aPCQPZC'9b,R"j4&C$9!#3#[q3"!%(YZD`+EEQX#S!!!%3!!!""!!!!!%\r!N"`B(J!!!!)!!J#3"!B!!!!)"3F!N"X#)!!"!*!LEAGPFQYc4PC$9!#3"`JJ!!!\r"!*!)"`#3%J&849K83eG*43#3#,,A4)feT5pT!!!%!J!!#$F!!!#!!!!"QQQb(pd\r!!!%3!!'V1J!$!!$rrrrq!*!'#$FB(`!!!!)!N!3-K!#3'J)X!!%!N"i&!*!&CA*\rbEQpIG@jTH#jS4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K83eG*43#3#,,A4)febeZ\rI!!!$"!!!"`i!!!"q!!!"QTCSH6S!!!%3!!'V1`!$!!$rrrrq!!!*d3!!%0mB)!!\r!!!)!N!3@K!#3'J)X!!%!N"i&!*!&EAGPFQYcAf&`F'aPG&pMEfjQD@FZD%C@3e3\r!N!F))!!!!3#3#!F!N")"9%9B9%0A588!N!Lbed50YTB-#`!!!hi!!!IH!!!!N!!\r!!!'D+&5Jd3!!!4!!!DXm!!-!!2rrrri!!"*j!!!D9aJK!!!!!J#3""Q%!*!D!L`\r!!3#3(J8!N!9YGf9bDh0IEQpZFfKKFQ9NAf0[EQCTCbjS4PC$9!#3"`JJ!!!"!*!\r)"`#3%J&849K83eG*43#3#,,A4)feSQ2#!!!"*J!!!IS!!!"f!!!"QRA9@J!!!!%\r3!!'V23!$!!$rrrrq!!!Em3!!(HXB)J!!!!)!N!3@K!#3'J)X!!%!N"i&!*!&EAG\rPFQYcAh"XG@GTEPpMEfjQD@FZD%C@3e3!N!F))!!!!3#3#!F!N")"9%9B9%0A588\r!N!Lbed50YFYEJ`!!!li!!!L9!!!!H!!!!CT0*'jD!!!"%!!"Uci!!`!!rrrrrJ!\r!(i8!!#JD'#-!!!!#!*!%&S3!N"S#,!!"!*!H"3#3"@ehCA*VFepcD'&bC@4IBfp\rZCQPR,QK'9N08!*!(##!!!!%!N!J(!*!5!94&@&4$9dP&!*!)XYG%MED@#im!!!0\rq!!!(f!!!!@B!!!'D*Xfi3J!!!4!!!DXr!!-!!2rrrri!!#Qd!!!aM"JN!!!!!J#\r3""@%!*!D!L`!!3#3(J8!N!9YGf9bDh0IFfeKE'aIBfpZCQPR,QK'9N08!*!(##!\r!!!%!N!J(!*!5!94&@&4$9dP&!*!)Y+UR)EA,@hF!!!0H!!!(SJ!!!(J!!!'Dd%H\ra43!!!4!!!DY!!!-!!2rrrri!!$-Q!!!kb"JP!!!!!J#3""Z%!*!D!L`!!3#3(J8\r!N!9YGf9bDh0IG'KbC@&NFfeKE'aIBfpZCQPR,QK'9N08!*!(##!!!!%!N!J(!*!\r5!94&@&4$9dP&!*!)XYG%ME8kDJ-!!!$d!!!"U`!!!(J!!!'D60BDh!!!!4!!!DY\r"!!-!!2rrrri!!$aL!!!q$4JQ!!!!!J#3""L%!*!D!L`!!3#3(J8!N!9YGf9bDh0\rIG'Y`E(9RD@jIBfpZCQPR,QK'9N08!*!(##!!!!%!N!J(!*!5!94&@&4$9dP&!*!\r)Y6j9$VD@#iB!!!2D!!!)b3!!!)!!!!'D4!h)LJ!$C@`!!f9[!!-!!2rrrri!!$q\rR!!")F"L#!!!!!J#3""D%!*!D!L`!!3#3(J8!N!9YGf9bDh0IBf&bBQpZAf0[EQC\rTCbjS4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K83eG*43#3#,9j3#UebeYM!!!$V!!\r!#(N!!!#!!!!"QN"%6r!!!f9X!!0PF!!$!!$rrrrq!!"+#J!!8S-BJ3!!!!)!N!3\rDK!#3'J)X!!%!N"i&!*!&EAGPFQYcAf0KFQ*[EQGeFfPIBfpZCQPR,QK'9N08!*!\r(##!!!!%!N!J(!*!5!94&@&4$9dP&!*!)YT%NqVD4*2`!!!'8!!!#Z`!!!(B!!!'\rD0PY"X`!#0fJ!!MGY!!-!!2rrrri!!&3G!!"@f"V2!!!!!J#3""b%!*!D!L`!!3#\r3(J8!N!9YGf9bDh0IBf&bBQpZF'aeCfPZAf0[EQCTCbjS4PC$9!#3"`JJ!!!"!*!\r)"`#3%J&849K83eG*43#3#,D0*V1fR0ZT!!!%,!!!#3m!!!"i!!!"Q[*5Xb!!!MG\rS!!)hE`!$!!$rrrrq!!"BFJ!!BB%DcJ!!!!)!N!3BK!#3'J)X!!%!N"i&!*!&EAG\rPFQYcAfjcBf&bBQpZAf0[EQCTCbjS4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K83eG\r*43#3#,D'T@#fKU@q!!!%8J!!#DS!!!"f!!!"QS,!E+J!!MGS!!)hFJ!$!!$rrrr\rq!!"M'`!!E-8Dc3!!!!)!N!3BK!#3'J)X!!%!N"i&!*!&EAGPFQYcAh0SBf&bBQp\rZAf0[EQCTCbjS4&C$9!#3#[q3"!%(YZD`+,EQX#J!!!%&!!!""!!!!!%!N"`AV!!\r!!!)!!J#3"!8!!!!)"3F!N"X#)!!"!*!L3R9TE'4'9N08!*!(##!!!!%!N!J(!*!\r5!8e08(*$9dP&!*!)YMGK9VBhB9B!!"%3!!#''J#3#+mpT9!!!!%&!!'V%!!$!!$\rrrrrq!*!)&r8!!!!#!*!%"S3!N"S#)3!"!*!H"3#3"AKi,R"bDNC@3e3!N!F))!!\r!!3#3#!F!N")"9%9B9%0A588!N!Lf0f&@YMGK9J!!!"!!!!!(!*!)!RBX2J!!!38\r!!DX4!!-!!2rrrri!N!JApJ!!!!)!N!3+K!#3'J)K!!%!N"i&!*!&H(JZF(*U,Q9\riF%4@3e3!N!VrN!3""lEQX#LfjV!T!!!"$`!!!33!!!!"!*!F'"F!!!!#!!)!N!3\r(!!!!#!8(!*!E!L!!!3#3)NPZBfaeC'9'9N08!*!(##!!!!%!N!J(!*!5!94&@&4\r$9dP&!*!)Y%RU1VD[BkS!!"2+!!"+r3!!!(i!!!'DKK+$i3!!!3m!!DXc!!-!!2r\rrrri!N!C+r4JB!!!!!J#3"!L%!*!D!LX!!3#3(J8!N!9MEfjQD@FZD%C@3e3!N!F\r))!!!!3#3#!F!N")"9%9B9%0A588!N!Lbed4LXYG%BJ!!!V)!!!8[!*!)jlD#K!!\r!!3m!!DXd!!-!!2rrrri!!%bA!*!%'"N!!!!#!*!%%S3!N"S#+`!"!*!H"3#3"@G\rPG'&`F'aLH@0bC@&dEh)ZD%C@3e3!N!F))!!!!3#3#!F!N")"9%9B9%0A588!N!L\rbed4LYZ'GV3!!!"S!!!!4!!!!HJ!!!CSIe'))!!!"$`!"Uc8!!`!!rrrrrJ!!8FB\r!!&(A'"S!!!!#!*!%$)3!N"S#+`!"!*!H"3#3"@eKBf*eD@aNEQmZD%C@3e3!N!F\r))!!!!3#3#!F!N")"9%9B9%0A588!N!Lbed4LYC9)U3!!!E!!!!,S!!!!GJ!!!CU\rfqAVP!!!"$`!"UcB!!`!!rrrrrJ!!8h%!!&CC'"X!!!!#!*!%#B3!N"S#+`!"!*!\rH"3#3"@eKBf4PCR-ZD%C@3e3!N!F))!!!!3#3#!F!N")"9%9B9%0A588!N!Ld'QS\rTYUZEb3!!#CJ!!"TU!!!!qJ!!!CUVUZpS!!!"$`!"UcF!!`!!rrrrrJ!!9r-!!(*\rG'"`!!!!#!*!%#B3!N"S#+`!"!*!H"3#3"@eKBfGXG@8ZD%C@3e3!N!F))!!!!3#\r3#!F!N")"9%9B9%0A588!N!Lbed4LYUZAJ!!!#9)!!"E%!!!"&!!!!CTd1T%U!!!\r"$`!"UcJ!!`!!rrrrrJ!!FrF!!)Ul'"d!!!!#!*!%%B3!N"S#+`!"!*!H"3#3"A"\rjG'K[ER*PFfpeFQ0PFbjS4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K83eG*43#3#,@\r94-UfUK()!!!#q!!!#lm!!!%Q!!!&bKIIedd!!f9N!!0PDJ!$!!$rrrrq!!#-93!\r!Q"3BJ!!!!!)!N!31K!#3'J)V!!%!N"i&!*!&F(PYB@0dEfpXBQpi,QK%9N08!*!\r+!P`"%3%(YZD[[VEQVlm!!!$`!!!!G!!!!!%!N"`@F`!!!!%!!J#3"!3!!!!)"!F\r!N"X"Lk)!N#00DA0M4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K83eG*43#3#,,mAPU\rfiCK$!!!00J!!')S!N!M`R5Hm!!!!m!!"mR%!!J!!rrrrrJ#3#"Cd!!!!!J#3"!5\r%!*!D!JDL!*!I"!#3"8&$5e0'9N08!*!(##!!!!%!N!J(!*!5!94&@&4$9dP&!*!\r)X[aH@lBL89S!!!`#!!!GA3#3##ShVc-!!!$`!!(bFJ!#!!$rrrrq!!!BLJ#3""C\re!!!!!J#3"!Q%!*!D!JDL!*!I"!#3"8&*@#e16e4&8dC@3e3!N!F))!!!!3#3#!F\r!N")"9%9B9%0A588!N!Lbr&jEX[aH@`!!!f)!!!D,!*!)ChI83!!!!2!!!I*c!!)\r!!2rrrri!!$AR!*!%&RB!!!!#!*!%"B3!N"S#"U)!N"m%!*!&3Na98N*'9N08!*!\r(##!!!!%!N!J(!*!5!94&@&4$9dP&!*!)X[aH@l,mAPX!!!US!!!@GJ#3#'*a&#S\r!!!$`!!(bG!!#!!$rrrrq!!!mFJ#3""Ch!!!!!J#3"!U%!*!D!JDL!*!I"!#3"8*\r-99*#,Na99&T'9N08!*!(##!!!!%!N!J(!*!5!94&@&4$9dP&!*!)X[aH@l,mAPX\r!!!F8!!!253#3#!(f8Pi!!!$`!!(bG3!#!!$rrrrq!!"5k!#3""Ci!!!!!J#3"!f\r%!*!D!JDL!*!I"!#3"8*-99*#,PG*6N429e0'9N08!*!(##!!!!%!N!J(!*!5!94\r&@&4$9dP&!*!)X[aHHE,mARN!!#(q!!"A13#3#!N3NB-!!!$`!!(bH!!#!!$rrrr\rq!!"L-3#3""Cl!!!!!J#3"!U%!*!D!JDL!*!I"!#3"@0SC@&dFfKPCA4'9N08!*!\r(##!!!!%!N!J(!*!5!94&@&4$9dP&!*!)X[aHHE,mARN!!!Ym!!!DH3#3#-pP*aJ\r!!!$`!!(bH3!#!!$rrrrq!!#jDJ#3""Cm!!!!!J#3"!Z%!*!D!JDL!*!I"!#3"@0\r[EA"KFQPcEfjc4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K83eG*43#3#,,mARUbr&j\rk!!!%R!!!#Cm!N!JSVhdM!!!!m!!"mRX!!J!!rrrrrJ!!dq-!N!3@IJ!!!!)!N!3\r-K!#3'J)'SJ#3(`3!N!9PC'PdE'PZC5eQDAK'9N08!*!(##!!!!%!N!J(!*!5!94\r&@&43HA4S!*!)X[aHHV,mARS!!!Mf!!!D63#3#$&$f5N!!!$`!!(bI!!#!!$rrrr\rq!!$GJJ#3""Cr!!!!!J#3"!Z%!*!D!JDL!*!I"!#3"@CKF6*SG'eX,R"j4PC$9!#\r3"`JJ!!!"!*!)"`#3%J&849K83eG*43#3#,,mARUbr&jk!!!"XJ!!#18!N!M+mQB\rN!!!!m!!"mRi!!J!!rrrrrJ!!pmm!N!3@J3!!!!)!N!31K!#3'J)'SJ#3(`3!N!9\rQDAKQG@jMF(4bFbjcD%C@3e3!N!F))!!!!3#3#!F!N")"9%9B9%0A588!N!Lbr&j\rcYGXeF`!"[R3!"-5Y!*!)`*NTS3!!!2!!!I*r!!)!!2rrrri!N!J@JJ!!!!)!N!3\r(K!#3'J)'SJ#3(`3!N!9)59086e*C4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K83eG\r*43#3#,,mAR1br&jc!!!#HJ!!"#N!N!Jak(#$!!!!m!!"mS!!!J!!rrrrrJ#3#"D\r$!!!!!J#3"!U%!*!D!JDL!*!I"!#3"8K399JY6Np8490'9N08!*!(##!!!!%!N!J\r(!*!5!94&@&4$9dP&!*!)X[aHG,,mAR3!!!DS!!!-L!#3#&lb8[B!!!$`!!(bJ3!\r#!!$rrrrq!!!%+3#3""D%!!!!!J#3"!5%!*!D!JDL!*!I"!#3"8KC8%9'9N08!*!\r(##!!!!%!N!J(!*!5!94&@&4$9dP&!*!)X[aHHV,mARS!!!"!!!!!3J#3#0Tp(ji\r!!!$`!!(bJJ!#!!$rrrrq!!!3X3#3""D&!!!!!J#3"!U%!*!D!JDL!*!I"!#3"@P\rZC'9ZG#j`FQp'9N08!*!(##!!!!%!N!J(!*!5!94&@&4$9dP&!*!)X[aHH,EKQ%-\r!!'(`!!$p-J#3#2VApkN!!!$`!!(bK!!#!!$rrrrq!*!)&SF!!!!#!*!%")3!N"S\r#"U)!N"m%!*!&6N9A8dC@3e3!N!F))!!!!3#3#!F!N")"9%9B9%0A588!N!Lbr&j\riX[aHH!!!"!S!!!M,!*!)3N1d83!!!2!!!I+&!!)!!2rrrri!N!J@L!!!!!)!N!3\r+K!#3'J)'SJ#3(`3!N!9149K8,8j29%964PC$9!#3"`JJ!!!"!*!)"`#3%J&849K\r83eG*43#3#,,mARLbr&ji!!!$X!!!"jF!N!L3!1a)cJ!!!2!!!I+'!!)!!2rrrri\r!!!M,!*!%&SN!!!!#!*!%"i3!N"S#"U)!N"m%!*!&8'pbG'PZCdC@3e3!N!F))!!\r!!3#3#!F!N")"9%9B9&)UBfJ!N!Lbr&jiX[aHH!!!"YJ!!!k+!*!)lH5`1`!!!2!\r!!I+(!!)!!2rrrri!!""L!*!%&SS!!!!#!*!%$B3!N"S#"U)!N"m%!*!&8&9558C\rC,P*&384048C@3e3!N!F))!!!!3#3#!F!N")"9%9B9%0A588!N!Lbr&k"YX()RJ!\r!LKB!!FqP!*!)dh`EQ!!!!2!!!I+)!!)!!2rrrri!N!J@L`!!!!)!N!31K!#3'J)\r'SJ#3(`3!N!9`HA4SEfiYE@pNC5jPE%C@3e3!N!F))!!!!3#3#!F!N")"9%9B9%0\rA588!N!Lbr&k#YRDcI`!!%$!!!#K%!*!)10ZU$`!!!2!!!I+*!!)!!2rrrri!N!J\r@M!!!!!)!N!3+K!#3'J)'SJ#3(`3!N!9`HA4SEfiZE@&Z4PC$9!#3"`JJ!!!"!*!\r)"`#3%J&849K88LTMD!#3#,,mARQefc9c!!!%#!!!"c!!N!L%K`%3!!!!m!!"mSS\r!!J!!rrrrrJ!!+%3!N!3@M3!!!!)!N!3'K!#3'J)'SJ#3(`3!N!9548&%689'9N0\r8!*!(##!!!!%!N!J(!*!5!94&@&43HA4S!*!)X[aHJV,mAS)!!!0m!!!+E3#3#(F\r6Vcm!!!$`!!(bM!!#!!$rrrrq!!![G!#3""D2!!!!!J#3"!Z%!*!D!JDL!*!I"!#\r3"A*PER9YBQ9b,R"j4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K83eG*43#3#,,mARQ\rbr&jj!!!('J!!$i%!N!K9l4Lm!!!!m!!"mSd!!J!!rrrrrJ!!1H%!N!3@N!!!!!!\r#!*!%!i3!N"S#"U)!N"m%!*!&8NC%4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K8G(4\riG!#3#,83$f@f#6de!!!a5!!!Pp!!N!J5BZB9!!!!m!!"mSi!!J!!rrrrrJ#3#"D\r4!!!!!J#3"!Z%!*!D!JDL!*!I"!#3"A9ZD@0[C'8ZG(Kd4PC$9!#3"`JJ!!!"!*!\r)"`#3%J&849K83eG*43#3#,,mAS+br&k#!!!"4J!!!I)!N!MirKA8!!!!m!!"mSm\r!!J!!rrrrrJ#3#"D5!!!!!J#3"!Q%!*!D!JDL!*!I"!#3"ACRFQPZC'9QFdC@3e3\r!N!F))!!!!3#3#!F!N")"9%9B9&"jG'J!N!Lefc9cYGXeF`!!!h!!!!Lr!*!)SEE\rrl!!$M3!!!id+!!)!!2rrrri!!!(b!*!%'(m!!!!#!*!%&S3!N"S#"U)!N"m%!*!\r&CQPZC&pbC@0eFR0TEfjXD@eTG#j`H84@3e3!N"#fX%eLYV"0BJ!!!4%!")`r!!!\r!!3#3("S'!!!!!J!#!*!%!`!!!!J%"`#3'`)'SJ#3)e*368C@3e3!N!F))!!!!3#\r3#!F!N")"9%9B9%0A588!N!Lf&+rUYK5[kJ!!"D!!!"31!*!)A(d$)J!%M&S!")a\rE!!-!!2rrrri!N!JD"3!!!!)!N!3CK!#3'J*XSJ#3(`3!N!9#C8p`C@iY8(PdD'p\rZ,90PG(9`,R"KG'0S4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K83eG*43#3#,B8VqZ\rf&+rV!!!(&J!!'ai!N!Ja1fIp!!5-@J!%M&`!!`!!rrrrrJ!!&!i!N!3D"!!!!!)\r!N!35K!#3'J*XSJ#3(`3!N!9LC@p`C@iYF(PdD'pZ,R0`C@0'9N08!*!(##!!!!%\r!N!J(!*!5!94&@&4$9dP&!*!)YK5[klB8VqX!!!$X!!!"SJ#3#,NPT@N!")aD!!5\r-A3!$!!$rrrrq!!![,!#3""S$!!!!!J#3"!b%!*!D!QbL!*!I"!#3"@eKDf8YFh"\rPBbjcD%C@3e3!N!F))!!!!3#3#!F!N")"9%9B9&)UBfJ!N!Lf&+rUYK5[kJ!!!Di\r!!!0+!*!)'4K)6`!%M&S!")aH!!-!!2rrrri!!$$1!*!%'J)!!!!#!*!%"S3!N"S\r#E+)!N"m%!*!&8N9"4%e&4&C$9!#3%,D`6@)!N!B"%3!%M&S!!!!"!*!F'J%!!!!\r$!!)!N!3(!!!!#!3(!*!E!QbL!*!M9'YTER4PFNC@3e3!N!F))!!!!3#3#!F!N")\r"9%9B9%0A588!N!Lf&+rVYK5[k`!!!&`!!!"J!*!)4`6B,J!%M&m!")aJ!!3!!2r\rrrri!N!JD!*!%!J#3"!Q%!*!D!QZL!*!I"!#3"A0PG(9`,Q0QCdC@3e3!N!F))!!\r!!3#3#!F!N")"9%9B9&"jG'J!N!Lf&+rVYK5[k`!!!K!!!!41!*!)N5p)*3!%M&m\r!")aK!!3!!2rrrri!!!"J!*!%'Im!!!!#!*!%#)3!N"S#Dk)!N"m%!*!&Ff9dGA!\rZF(P'9N08!*!(##!!!!%!N!J(!*!5!94&@&4$9dP&!*!)YT1P*,D9[pi!!!'`!!!\r$JJ#3#%EAr)i!!M9D!!)eCJ!#!!$rrrrq!!!%VJ#3""Se!!!!!J#3"!H%!*!D!JD\rL!*!I"!#3"@GNBQPZDA4'9N08!*!(##!!!!%!N!J(!*!5!94&@&4$9dP&!*!)YVU\rMl,DkSq`!!!IB!!!4-J#3#0*'B9N!"bV*!!FUc!!#!!$rrrrq!!!)-!#3""`N!!!\r!!J#3"!U%!*!D!JDL!*!I"!#3"8*P6e-Y6Np8490'9N08!*!(##!!!!%!N!J(!*!\r3"3!"FfKXBP"jG'J!!!+1!0%!!,BcS5'fj@Ke!!`cI!!G+&8!!+Vm!!'F)e)LKjX\r!!!"d!!(X)3!"!!$rrrrq!*!)&T8!!!!#!*!%#S3!N"#!!*!*!BZ#!*!I"J#3"9"\rjG'K[EN0[FQ9'9N08!*!(##!!!!(!!*!("`#3%!8!!A0SE'*3HA4S!!!#M`!L!!#\rfKpEMYZ9TmJ!,Sa3!(&[-!!#UrJ!"R#I&XGKA!!!!G!!#,Y-!!3!!rrrrrJ#3#"Z\rK!!!!!J#3""#%!*!3)!#3#3',S!#3(`F!N!3"8(PdD'pZ3fpbC80KFQ*[ENC@3e3\r!N!F))!!!!3#3#!F!N")"9%9B9&)UBfJ!!!)Err`!!,,A4#bfj@hE!!!26J!!)Rd\r!N!K9Ei3Z!!!!G!!"l#-!!3!!rrrrrJ#3#"DA!!!!!J#3"!D%!*!D!BZL!*!I"!#\r3"9*&3840484@3e3!N!S#@Irp!3HfjUpBYZD[S`!!!2%!!!"d!!!!!3#3("DB!!!\r!!3!#!*!%#!!!!!J%"`#3'`',SJ#3)e*PE'j[G'9c4PC$9!#3"`JJ!!!"!*!)"`#\r3%J&849K83eG*43#3#,,A4#Zbed3V!!!Xk!!!E--!N!J0piRa!!!!m3!"m3d!!J!\r!rrrrrJ#3#"DC!!!!!J#3"!H%!*!D!JHL!*!I"!#3"8K*8e428PP'9N08!*!(##!\r!!!%!N!J(!*!5!94&@&4$9dP&!*!)XYG%,,EPE(S!!!VF!!!Bf!!!!(J!!!'DN!!\rPS*8!!!$a!!(a$J!#!!$rrrrq!!"X``!!KCX@QJ!!!!)!N!3)K!#3'J)(SJ#3(`3\r!N!95C@aZEh4PFdC@3e3!N!F))!!!!3#3#!F!N")"9%9B9%0A588!N!LeVQ9rYZ'\rB#`!!$FS!!#6Y!*!)YaD)jJ!$[ei!!lpI!!)!!2rrrri!!)Fe!*!%'CN!!!!#!*!\r%"i3!N"S#"k)!N"m%!*!&6%P$48j6484@3e3!N!S#A!#h!3HfjUr"YZD[bJ!!!2)\r!!!"d!!!!!3#3("DE!!!!!3!#!*!%"3!!!!J%"`#3'`',SJ%!N#*8EfpXFd4@3e3\r!N"#fjV!XYZD`,3!!!48!!!%5!!!!!3#3("Jp!!!!!J!#!*!%"J!!!!J&"`#3'`)\rZSJ%!N#*QFQ9PHQ9'9N08!*!(##!!!!%!N!J(!*!5!94&@&43HA4S!*!)X[aHpE8\ri6"m!!!'D!!!&$3#3#+2mI6J!!!%9!!'V9`!$!!$rrrrq!*!)'$m!!!!#!*!%#B3\r!N"S#-D)"!*!H"3#3"@*VCQPXC5j`H8C@3e3!N!F))!!!!3#3#!F!N")"9%9B9&"\rjG'J!N!Lbr&leXkZMV3!!!fS!!!K$!*!)L&5IRJ!!!48!!DYB!!-!!2rrrri!!!8\r0!*!%'%!!!!!#!*!%%S3!N"S#-D)"!*!H"3#3"@0SC@0VCAKdC@jcD@pZFbj`H8C\r@3e3!N!F))!!!!3#3#!F!N")"9%9B9&"jG'J!N!Lbr&lfYCIEm!!!#33!!"BJ!*!\r)&Vb#Y`!!!48!!DYC!!-!!2rrrri!!!e3!*!%'%%!!!!#!*!%')3!N"S#-D)"!*!\rH"3#3"@0SC@0VCAKdC@jcD@pZFephD@ic-Lj`H8C@3e3!N!F))!!!!3#3#!F!N")\r"9%9B9(4dH(3!N!Lbr&lfYVbJJ`!!""i!!!pD!*!)kS8YZ`!!!48!!DYD!!-!!2r\rrrri!!#0`!*!%'%)!!!!#!*!%&)3!N"S#-D)"!*!H"3#3"@9iG'9ZFfP[ER0IGfP\rZ-c)ZD@jT4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K88(PdD!#3#,,mA[Dfhl`G!!!\r6-J!!2KX!N!M&%bp!!!!"&3!"UeX!!`!!rrrrrJ!!-XS!N!3B3`!!!!)!N!3*K!#\r3'J)aSJ%!N"i&!*!&CR*PCATP,R"j4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K88(P\rdD!#3#,,mA[Dbr&lf!!!!)!!!!"F!N!K3ZY5R!!!"&3!"Ue`!!`!!rrrrrJ!!F18\r!N!3B4!!!!!)!N!3)K!#3'J)aSJ%!N"i&!*!&D'9XE'mZF(P'9N08!*!(##!!!!%\r!N!J(!*!5!94&@&43HA4S!*!)X[aHplEI["d!!!*+!!!&1!#3#$[6(M-!!!%9!!'\rVA3!$!!$rrrrq!!"`r!#3""K&!!!!!J#3"!f%!*!D!M'L!3#3(J8!N!9YB@YPBfp\rZCQPR,R"j4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K88(PdD!#3#,,mA[HeN8+b!!!\r$e!!!#@J!N!LKZC([!!!"&3!"Uei!!`!!rrrrrJ!!GM3!N!3B4J!!!!)!N!30K!#\r3'J)aSJ%!N"i&!*!&E@&VC@CbC@9kC5j`H8C@3e3!N!F))!!!!3#3#!F!N")"9%9\rB9&"jG'J!N!Lbr&lhX[aHp`!!!C)!!!0m!*!)2j!!+$%!!!%9!!'VA`!$!!$rrrr\rq!!"rR!#3""K(!!!!!J#3"!q%!*!D!M'L!3#3(J8!N!9YB@YPE@&VC@CTE'8ZF(P\r'9N08!*!(##!!!!%!N!J(!*!5!94&@&43HA4S!*!)X[aHplEI["i!!!r#!!!p@`#\r3#!(UP*3!!!%9!!'VB!!$!!$rrrrq!!#$'!#3""K)!!!!!J#3"!q%!*!D!M'L!3#\r3(J8!N!9YEf4eE'9QD@jNCA)ZF(P'9N08!*!(##!!!!%!N!J(!*!5!94&@&43HA4\rS!*!)X[aHplEI["i!!!18!!!*K3#3#*V9KhF!!!%9!!'VB3!$!!$rrrrq!!$!F`#\r3""K*!!!!!J#3"!f%!*!D!M'L!3#3(J8!N!9`BA*cCA0PG(9`,R"j4PC$9!#3"`J\rJ!!!"!*!)"`#3%J&849K88LTMD!#3#,,mA[@fMRVH!!!69J!!-BB!N!Le)0'8!!!\r"&3!"Uf)!!`!!rrrrrJ!!bIJ!N!3B5J!!!!)!N!3'K!#3'J)aSJ%!N"i&!*!&8N9\r"4%e&4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K8690*43#3#,,mA[HeSQjG!!!+[J!\r!(#B!N!KZ"$3r!!!"&3!"Uf-!!`!!rrrrrJ!!qhi!N!3B5`!!!!)!N!3+K!#3'J)\raSJ%!N"i&!*!&GfPZ-c)ZD(4YE%C@3e3!N!F))!!!!3#3#!F!N")"9%9B9&"jG'J\r!N!Lbr&liYC9$M`!!"b`!!",a!*!)E1B%XJ!!!48!!DYN!!-!!2rrrri!!4HN!*!\r%'%`!!!!#!*!%%S3!N"S#-D)"!*!H"3#3"AGTEQeKDf9YB@YPCQPXC5j`H84@3e3\r!N"#fX&!dYV"303!!!4B!!!%5!!!!!3#3("K0!!!!!J!#!*!%#3!!!!J&"`#3'`)\rZ!!%!N#*YEf4eE'&dEh*'9N08!*!(##!!!!%!N!J(!*!5!94&@&43HA4S!*!)X[a\rI!l,mA`-!!!*5!!!&53#3#*'@+3B!!!%@!!'VCJ!$!!$rrrrq!*!)'%i!!!!#!*!\r%#S3!N"S#-J!"!*!H"3#3"89B38e36%8ZF(P'9N08!*!(##!!!!%!N!J(!*!5!94\r&@&43HA4S!*!)X[aI",,mA`3!!!9X!!!6!*!*6D6QT`!!!4B!!DYR!!-!!2rrrri\r!!!9*!*!%'%m!!!!#!*!%$)3!N"S#-J!"!*!H"3#3"@GPEQe[C(9XC5j`H8C@3e3\r!N!F))!!!!3#3#!F!N")"9%9B9&"jG'J!N!Lbr&m%X[aI"!!!#I!!!$L'!*!)5Mh\rm+`!!!4B!!DYS!!-!!2rrrri!!"K*!*!%'&!!!!!#!*!%$)3!N"S#-J!"!*!H"3#\r3"@e[C(9XBA4[FLj`H8C@3e3!N!F))!!!!3#3#!F!N")"9%9B9&)UBfJ!N!Lbr&m\r$X[aI"!!!!M3!!!28!*!)f'L"-!!!!4B!!DYT!!-!!2rrrri!!&$2!*!%'&%!!!!\r#!*!%"S3!N"S#-J!"!*!H"3#3"9*&384048C@3e3!N!F))!!!!3#3#!F!N")"9%9\rB9&"jG'J!N!Lbr&m%X[aI"!!!!T)!!!8e!*!)kF['NJ!!!4B!!DYU!!-!!2rrrri\r!!&5M!*!%'&)!!!!#!*!%%S3!N"S#-J!"!*!H"3#3"90MFQpXE'9N6'PcG'*[H#j\r`H84@3e3!N"#fX&!e!*!'!4F!!!%@!!!!!3#3("K6!!!!!`!#!*!%#3!!!!J&"`#\r3'`)b!!%!N#*8C@e`E'&dCA0'9N08!*!(##!!!!%!N!J(!*!5!94&@&4$9dP&!*!\r)X[aI"EAE0B`!N"B"&`!"Ufi!"!!!rrrrrJ#3#"K8!!!!!J#3"!Q%!*!D!M-!!3#\r3(J8!N!9MEh"jFQPRD(4'9N08!*!(##!!!!%!N!J(!*!5!94&@&4$9dP&!*!)X[a\rI"E,mA`8!!!"'!!!!F3#3#"SR'Ai!!!%A!!'VE`!%!!$rrrrq!*!)'&8!!!!#!*!\r%#i3!N"S#-`!"!*!H"3#3"@e[C(9XC9pSC@&N4PC$9!#3"`JJ!!!"!*!)"`#3%J&\r849K83eG*43#3#,,mA`@br&m&!!!!V!!!!1d!N!KTEk$"!!!"&`!"Uh!!"!!!rrr\rrrJ!!!(%!N!3B9J!!!!)!N!30K!#3'J)c!!%!N"i&!*!&E@pNG@aPAfePG'K[C%C\r@3e3!N!F))!!!!3#3#!F!N")"9%9B9%0A588!N!Lbr&m&X[aI"3!!!F)!!!-T!*!\r)&lNNH!!!!4F!!DYa!!3!!2rrrri!!!&H!*!%'&F!!!!#!*!%#i3!N"S#-`!"!*!\rH"3#3"@e[C(9XC9pdB@PX4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K83eG*43#3#,,\rmA`@br&m&!!!!PJ!!!2S!N!JJ9GLH!!!"&`!"Uh)!"!!!rrrrrJ!!")F!N!3B@!!\r!!!)!N!3,K!#3'J)c!!%!N"i&!*!&Ef*UC@0dAfKPB@4'9N08!*!(##!!!!%!N!J\r(!*!5!94&@&4$9dP&!*!)X[aI"E,mA`B!!!#N!!!!j3#3#1S%Nk`!!!%A!!'VF`!\r%!!$rrrrq!!!&J3#3""KC!!!!!J#3"!f%!*!D!M-!!3#3(J8!N!9[BQTPBh4IE@9\rdD'pN4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K83eG*43#3#,,mA`Dbr&m'!!!!E!!\r!!(8!N!J)UadL!!!"&`!"Uh3!"!!!rrrrrJ!!"QB!N!3B@J!!!!)!N!3-K!#3'J)\rc!!%!N"i&!*!&Ef*UC@0dAfeXDA0d4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K83eG\r*43#3#,,mA`Dbr&m'!!!!Q!!!!0X!N!Mr,k-Y!!!"&`!"Uh8!"!!!rrrrrJ!!"YX\r!N!3B@`!!!!)!N!3+K!#3'J)c!!%!N"i&!*!&Ef*UC@0dAfjPGdC@3e3!N!F))!!\r!!3#3#!F!N")"9%9B9%0A588!N!Lbr&m'X[aI"J!!!E`!!!1(!*!)IMT"R3!!!4F\r!!DYf!!3!!2rrrri!!!Hf!*!%'&`!!!!#!*!%%)3!N"S#-`!"!*!H"3#3"@pLDQ9\rMG&pcG(*eBh4eFQ9'9N08!*!(##!!!!%!N!J(!*!5!94&@&4$9dP&!*!)X[aI"V,\rmA`B!!!'+!!!$K3#3#!cTiPX!!!%A!!'VG`!%!!$rrrrq!!!,23#3""KG!!!!!J#\r3"!Z%!*!D!M-!!3#3(J8!N!9[BQTPBh4IG'&TE%C@3e3!N!F))!!!!3#3#!F!N")\r"9%9B9%0A588!N!Lbr&m'X[aI"J!!!5S!!!+h!*!)ES*&Z3!!!4F!!DYi!!3!!2r\rrrri!!!l#!*!%'&i!!!!#!*!%&)3!N"S#-`!"!*!H"3#3"@pLDQ9MG&pdF&pKFep\rYBA"`D@jR4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K83eG*43#3#,,mA`Hbr&m(!!!\r#GJ!!$-X!N!J0,9[$!!!"&`!"UhN!"!!!rrrrrJ!!%AN!N!3BA`!!!!)!N!36K!#\r3'J)c!!%!N"i&!*!&Ef*UC@0dAh4`Af&cAfjeE@*PFNC@3e3!N!F))!!!!3#3#!F\r!N")"9%9B9%0A588!N!Lbr&m(X[aI"`!!!F)!!!AC!*!)[$J2B3!!!4F!!DYk!!3\r!!2rrrri!!"j%!*!%''!!!!!#!*!%&B3!N"S#-`!"!*!H"3#3"@pLDQ9MG&pdF&p\rKFepcCA&eC@jMC8C@3e3!N!F))!!!!3#3#!F!N")"9%9B9%0A588!N!Lbr&m(X[a\rI"`!!!)3!!!#f!*!)8DQJa3!!!4F!!DYl!!3!!2rrrri!!#3G!*!%''%!!!!#!*!\r%$S3!N"S#-`!"!*!H"3#3"@pLDQ9MG&pdF&pMB@aX4PC$9!#3"`JJ!!!"!*!)"`#\r3%J&849K83eG*43#3#,,mA`Hbr&m(!!!!B!!!!(%!N!JK!Z(X!!!"&`!"Uh`!"!!\r!rrrrrJ!!*0-!N!3BBJ!!!!)!N!34K!#3'J)c!!%!N"i&!*!&Ef*UC@0dAh4`Af0\r[EA"KFQ9'9N08!*!(##!!!!%!N!J(!*!5!94&@&4$9dP&!*!)X[aI"l,mA`F!!!"\rb!!!!I!#3#*03S3d!!!%A!!'VI3!%!!$rrrrq!!!P4!#3""KM!!!!!J#3""'%!*!\rD!M-!!3#3(J8!N!9[BQTPBh4IG("IC'9KE'a[BdC@3e3!N!F))!!!!3#3#!F!N")\r"9%9B9%0A588!N!Lbr&m)X[aI#!!!!*!!!!!!a!#3#(*@*pJ!!!%A!!'VIJ!%!!$\rrrrrq!!!P`!#3""KN!!!!!J#3""'%!*!D!M-!!3#3(J8!N!9[BQTPBh4IG("ICf9\rdBA4dFNC@3e3!N!F))!!!!3#3#!F!N")"9%9B9%0A588!N!Lbr&m)X[aI#!!!!&`\r!!!"Q!*!)0EXjf`!!!4F!!DYr!!3!!2rrrri!!#D%!*!%''8!!!!#!*!%$S3!N"S\r#-`!"!*!H"3#3"@pLDQ9MG&pdF&pSBA0S4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K\r83eG*43#3#,,mA`Lbr&m)!!!!IJ!!!*F!N!NVkJ8!!!%A!!'VJ!!%!!$rrrrq!!!\rQkJ#3""KQ!!!!!J#3"!q%!*!D!M-!!3#3(J8!N!9[BQTPBh4IG("IF(*TER4'9N0\r8!*!(##!!!!%!N!J(!*!5!94&@&4$9dP&!*!)X[aI#E,mA`N!!!"`!!!!L3#3#!,\rp+A-!!!%A!!'VJ3!%!!$rrrrq!!!RJ3#3""KR!!!!!J#3"!k%!*!D!M-!!3#3(J8\r!N!9[BQTPBh4IG("IFQ9`FNC@3e3!N!F))!!!!3#3#!F!N")"9%9B9%0A588!N!L\rbr&m*X[aI#3!!!+B!!!$D!*!)N[UZC`!!!4F!!DZ#!!3!!2rrrri!!#J+!*!%''J\r!!!!#!*!%%B3!N"S#-`!"!*!H"3#3"@pLDQ9MG&pdF&pcCA4KG(4b4PC$9!#3"`J\rJ!!!"!*!)"`#3%J&849K83eG*43#3#,,mA`Qbr&m*!!!!F!!!!)N!N!MHljZ8!!!\r"&`!"Ui-!"!!!rrrrrJ!!+13!N!3BD3!!!!)!N!30K!#3'J)c!!%!N"i&!*!&Ef*\rUC@0dAh4`Ah0dFNC@3e3!N!F))!!!!3#3#!F!N")"9%9B9&"jG'J!N!Lbr&m%X[a\rI"!!!"Y!!!"eD!*!)`4J6#!!!!4B!!DYV!!-!!2rrrri!!#PY!*!%''S!!!!#!*!\r%#S3!N"S#-J!"!*!H"3#3"94VCAKdFQ%ZF(P'9N08!*!(##!!!!%!N!J(!*!5!94\r&@&43HA4S!*!)X[aI",,mA`3!!!*m!!!'0J#3#'2D"Qm!!!%@!!'VE!!$!!$rrrr\rq!!"'a`#3""KV!!!!!J#3"!Z%!*!D!M)!!3#3(J8!N!9fBA*cG@*cG#j`H84@3e3\r!N"#fX%eM!*!(m`!!!2)!!!!"!*!F&T`!!!!#!!)!N!3(!!!!#!3(!*!E!JLL!*!\rMBA9ND@p`H8C@3e3!N!F))!!!!3#3#!F!N")"9%9B9%0A588!N!Lbr&lQY4!2K!!\r!%)J!!%%`!*!)qZ*b43!!!2-!!I+8!!-!!2rrrri!N!J@R3!!!!)!N!3(K!#3'J)\r*SJ#3(`3!N!9KG@4TEh"j4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K88LTMD!#3#,,\rmAZDd'QiG!!!'aJ!!$kd!N!LEM4,3!!!!m`!"mT8!!`!!rrrrrJ!!36!!N!3@RJ!\r!!!)!N!3'K!#3'J)*SJ#3(`3!N!9548&%689%9N08!*!3YV"0C!#3"r3!!!$b!!!\r!!3#3("DI!!!!!J!#!*!%"J!!!!J%"`#3'`))SJ#3)fCKFAGTHNC@3e3!N!F))!!\r!!3#3#!F!N")"9%9B9&"jG'J!N!Lbr&lYY4!2K!!!&1`!!$Qq!*!)p"!Jm3!!!23\r!!I+A!!-!!2rrrri!N!J@S!!!!!)!N!3+K!#3'J)+SJ#3(`3!N!9QBA&MEfjQ,R"\rj4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K88(PdD!#3#,,mAZkbr&lZ!!!!5!!!!%X\r!N!MTcAE(!!!!p!!"mTJ!!`!!rrrrrJ!!1Ei!N!3@S3!!!!)!N!3+K!#3'J)+SJ#\r3(`3!N!9QBA&MGA0d,R"j4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K88(PdD!#3#,,\rmAZkbr&lZ!!!#TJ!!"6F!N!P,F5`!!!$d!!(bQ3!$!!$rrrrq!!!k#3#3""DL!!!\r!!J#3"!H%!*!D!JUL!*!I"!#3"@CKFAFZF(P'9N08!*!(##!!!!%!N!J(!*!5!94\r&@&43HA4S!*!)X[aHll83$i3!!"P!!!"Kb!#3##&Kp))!!!$d!!(bQJ!$!!$rrrr\rq!!!r3!#3""DM!!!!!J#3"!Q%!*!D!JUL!*!I"!#3"@CKFAGTHLj`H8C@3e3!N!F\r))!!!!3#3#!F!N")"9%9B9&)UBfJ!N!Lbr&lXX[aHl!!!#)3!!",'!*!)!Llbi!!\r!!23!!I+E!!-!!2rrrri!!+%)!*!%&U3!!!!#!*!%"S3!N"S##U)!N"m%!*!&8N9\r"4%e&4&C$9!#3%,E,'J#3#2B!!!$b!!!!!3#3("Dd!!!!!J!#!*!%"!!!!!J%"`#\r3'`))SJ#3)fNa1'j'9N08!*!(##!!!!%!N!J(!*!5!94&@&43HA4S!*!)Y4!4UlE\r&dK)!!"98!!!r)J#3#1dXN3d!!!$f!!(bV!!$!!$rrrrq!*!)&V8!!!!#!*!%$)3\r!N"S#$+)!N"m%!*!&F(PRCA4dCAKd,R"j4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K\r88(PdD!#3#,AE0BbfaG)5!!!(m!!!&Ai!N!J55JAd!!1033!$M8)!!`!!rrrrrJ!\r!2b)!N!3BIJ!!!!)!N!3*K!#3'J)-SJ#3(`3!N!9YFfGQEA3ZF(P%9N08!*!3YZD\r[`lEQVmB!!!$h!!!!mJ!!!!%!N"`@YJ!!!!)!!J#3"!3!!!!)"!F!N"X##+)!N#0\rTC'aP4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K88(PdD!#3#,0A"p'c9`I4!!!!1!!\r!!#m!N!KGL41e!!!!p`!"mUi!!`!!rrrrrJ#3#"Dh!!!!!J#3"!Z%!*!D!JfL!*!\rI"!#3"9pID@jTG&pI,R"j4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K88(PdD!#3#,,\rmA[LfMRVI!!!$"!!!#NJ!N!JZ$8Pc!!!!p`!"mUm!!`!!rrrrrJ!!!#m!N!3@Z!!\r!!!)!N!30K!#3'J)0SJ#3(`3!N!9"GA4[4AK`B@jN,R"j4PC$9!#3"`JJ!!!"!*!\r)"`#3%J&849K88(PdD!#3#,,mA[LcPTDi!!!89J!!8$%!N!Jb51fQ!!!!p`!"mV!\r!!`!!rrrrrJ!!#RF!N!3@Z3!!!!)!N!30K!#3'J)0SJ#3(`3!N!9"GA4[5@jNC@j\rd,R"j4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K88(PdD!#3#,,mA[Ld'QiH!!!#e!!\r!"VB!N!McA5-J!!!!p`!"mV%!!`!!rrrrrJ!!@UJ!N!3@ZJ!!!!)!N!3,K!#3'J)\r0SJ#3(`3!N!9#D@jND@jRFbj`H8C@3e3!N!F))!!!!3#3#!F!N")"9%9B9&"jG'J\r!N!LcJB(#YSjkh`!!#%J!!"R%!*!)l*J8E`!!!2F!!I+b!!-!!2rrrri!!'&H!*!\r%&VX!!!!#!*!%#i3!N"S#$D)!N"m%!*!&3f&XE&4TF(-ZF(P'9N08!*!(##!!!!%\r!N!J(!*!5!94&@&43HA4S!*!)Xi'"`ED1HYm!!!,f!!!(I`#3#2IhGfJ!!!$h!!(\rbX`!$!!$rrrrq!!"l)J#3""Dm!!!!!J#3""#%!*!D!JfL!*!I"!#3"80KE'a8DA"\rAD@jNEhFZF(P'9N08!*!(##!!!!%!N!J(!*!5!94&@&4$9dP&!*!)X[aHqE6V1,N\r!!$Bb!!#6ZJ#3#"'8Z0J!!!$h!!(bY!!$!!$rrrrq!*!)&Vd!!!!#!*!%#B3!N"S\r#$D)!N"m%!*!&3fKKEQGP6'pR4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K88(PdD!#\r3#,,mA[QfMRVI!!!('!!!'-%!N!J,NrcA!!!!p`!"mV8!!`!!rrrrrJ#3#"Dq!!!\r!!J#3"!q%!*!D!JfL!*!I"!#3"80XBA0c3R*[Gh0PFLj`H8C@3e3!N!F))!!!!3#\r3#!F!N")"9%9B9&"jG'J!N!Lbr&ljYZ'B9`!!#5)!!#,f!*!)Q8j)f!!!!2F!!I+\rf!!-!!2rrrri!!"M"!*!%&Vm!!!!#!*!%%B3!N"S#$D)!N"m%!*!&3fpXEh*%C@a\rPCf&dEh)ZF(P'9N08!*!(##!!!!%!N!J(!*!5!94&@&4dG(Kd!*!)Y1Xi[E6V1,d\r!!!!i!!!!-!#3#2M["*X!!!$h!!(bY`!$!!$rrrrq!!!lY`#3""E!!!!!!J#3"!q\r%!*!D!JfL!*!I"!#3"@0[EQCTCbeeEQPi,R4iG%C@3e3!N!F))!!!!3#3#!F!N")\r"9%9B9(4dH(3!N!LdkcLqY1Xi[J!!!$`!!!!d!*!)fcVmm`!!!2F!!I+i!!-!!2r\rrrri!!$[R!*!%&X%!!!!#!*!%$S3!N"S#$D)!N"m%!*!&BfpZCQPR,AGTELjdH(4\r'9N08!*!(##!!!!%!N!J(!*!5!94&@&4dG(Kd!*!)Y1Xi[V9GGT!!!!!$*!!!"[B\r!N!J&Ald"!!!!p`!"mVN!!`!!rrrrrJ!!2"X!N!3@`J!!!!)!N!3+K!#3'J)0SJ#\r3(`3!N!9MEfjQD@FZG(Kd4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K88(PdD!#3#,,\rmA[QfMRVI!!!)q!!!*0N!N!K+#44F!!!!p`!"mVS!!`!!rrrrrJ!!3a%!N!3@``!\r!!!)!N!3,K!#3'J)0SJ#3(`3!N!9%C@*eCfGPFLj`H8C@3e3!N!F))!!!!3#3#!F\r!N")"9%9B9&"jG'J!N!Lbr&lkYSjkh`!!!6)!!!-r!*!)0ki6CJ!!!2F!!I+l!!-\r!!2rrrri!!'IU!*!%&X3!!!!#!*!%$)3!N"S#$D)!N"m%!*!&4'9XC@GKG'pb,R"\rj4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K88(PdD!#3#,,mA[Uf#6e@!!!CZJ!!@d%\r!N!MZZ''E!!!!p`!"mV`!!`!!rrrrrJ!!DbN!N!3@a3!!!!)!N!32K!#3'J)0SJ#\r3(`3!N!9&C'PdEh*AD@jNEhFZF(P'9N08!*!(##!!!!%!N!J(!*!5!94&@&43HA4\rS!*!)X[aI!,,mA`%!!!0d!!!+)`#3#(i9E8X!!!$h!!(b[3!$!!$rrrrq!!$'DJ#\r3""E'!!!!!J#3"!f%!*!D!JfL!*!I"!#3"@9fC@jdF'&bFf8ZF(P'9N08!*!(##!\r!!!%!N!J(!*!5!94&@&4dG(Kd!*!)X[aI!E0A"p)!!!FN!!!4D!#3#2rYVZJ!!!$\rh!!(b[J!$!!$rrrrq!!$3M3#3""E(!!!!!J#3"!U%!*!D!JfL!*!I"!#3"@9iG'9\rZC#jdH(4'9N08!*!(##!!!!%!N!J(!*!5!94&@&43HA4S!*!)X[aHqVD1HZ!!!!4\rB!!!2M!#3#1Ub@,X!!!$h!!(b[`!$!!$rrrrq!!$Kp3#3""E)!!!!!J#3"!Z%!*!\rD!JfL!*!I"!#3"8CTE'9-DA0d,R"j4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K88(P\rdD!#3#,,mA[UfMRVJ!!!(2!!!&Q)!N!LFBN4!!!!!p`!"mX!!!`!!rrrrrJ!!mB%\r!N!3@b3!!!!)!N!35K!#3'J)0SJ#3(`3!N!9'Eh*YBA43BA*KCh*KF'JZF(P'9N0\r8!*!(##!!!!%!N!J(!*!5!94&@&43HA4S!*!)X[aHql,mA[X!!!'f!!!&)3#3#"G\rJ'j3!!!$h!!(b`3!$!!$rrrrq!!%(i`#3""E+!!!!!J#3"!k%!*!D!JfL!*!I"!#\r3"8CbB@eP9QPPGf9b,R"j4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K88(PdD!#3#,,\rmA[ZcJB($!!!&#!!!$hS!N!ME&1hE!!!!p`!"mX)!!`!!rrrrrJ!"$33!N!3@b`!\r!!!)!N!30K!#3'J)0SJ#3(`3!N!9(FQ9`4'PKE'pR,R"j4PC$9!#3"`JJ!!!"!*!\r)"`#3%J&849K8G(4iG!#3#,,mA`'fMRVM!!!*%!!!&3X!N!Mh"BXl!!!!p`!"mX-\r!!`!!rrrrrJ!"((i!N!3@c!!!!!)!N!3)K!#3'J)0SJ#3(`3!N!9SC@a`,R4iG%4\r@3e3!N"#fXKSR!*!(q!!!!2F!!!!"!*!F&Xd!!!!$!!)!N!3&!!!!#!3(!*!E!Jf\rL!*!M5@0[ER0'9N08!*!(##!!!!%!N!J(!*!5!8G*4QC[CfaP!*!)Y4!4V,83%D`\r!!!#!!!!!H!#3#1%#(AX!!!$i!!(bk`!%!!$rrrrq!*!)&Xi!!!!#!*!%#S3!N"S\r#$U)!N"m%!*!&CQpXC'9b,QGTCNC@3e3!N!F))!!!!3#3#!F!N")"4dP'CQpRE'8\r!N!Lf*N,@YRDcK`!!!'J!!!"J!*!)cfELJ!!!!2J!!I,X!!3!!2rrrri!!!"i!*!\r%&Xm!!!!#!*!%$B3!N"S#$U)!N"m%!*!&E@PZGA0ZEf4P,QGTCNC@3e3!N!F))!!\r!!3#3#!F!N")"4dP'CQpRE'8!N!Le%"'XY4!4V!!!!)B!!!"p!*!)d[J(L`!!!2J\r!!I,Y!!3!!2rrrri!!!$B!*!%&Y!!!!!#!*!%$S3!N"S#$U)!N"m%!*!&Eh"PEQC\r[E'4PFLjRD@C'9N08!*!(##!!!!%!N!J(!*!5!8G*4QC[CfaP!*!)YLC#eVBQ3YB\r!!!"B!!!!6`#3#%[f*R-!!!$i!!(blJ!%!!$rrrrq!!!"93#3""E4!!!!!J#3"!b\r%!*!D!JkL!*!I"!#3"A"XGA0ZEf4P,QGTCNC@3e3!N!F))!!!!3#3#!F!N")"4dP\r'CQpRE'8!N!Le%"'ZYRDcK`!!!)B!!!"p!*!)%N-bh3!!!2J!!I,[!!3!!2rrrri\r!!!'N!*!%&Y)!!!!#!*!%#S3!N"S#$U)!N"m%!*!&F(PdD'pZ,QGTCNC@3e3!N!F\r))!!!!3#3#!F!N")"4dP'CQpRE'8!N!Le%"'ZY4!4VJ!!!&i!!!"9!*!)#E81YJ!\r!!2J!!I,`!!3!!2rrrri!!!)K!*!%&Y-!!!!#!*!%"S3!N"S#$U)!N"m%!*!&G'X\rZCfPQ4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K8G(4iG!#3#,,mA`'fhAY5!!!!3!!\r!!$J!N!L,5#2i!!!!p`!"mX3!!`!!rrrrrJ#3#"E8!!!!!J#3"!L%!*!D!JfL!*!\rI"!#3"@PNE'8ZBQ&d4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K88(PdD!#3#,,mA`'\re*U8-!!!!M!!!!0B!N!J8@i"i!!!!p`!"mX8!!`!!rrrrrJ!!!$J!N!3@e3!!!!)\r!N!3(K!#3'J)0SJ#3(`3!N!9TC'aP,R"j4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K\r83eG*43#3#,,mA`'dkcLq!!!!CJ!!!*!!!*!)2SLJ(!!!!2F!!I,'!!-!!2rrrri\r!!!%1!*!%&YB!!!!#!*!%#)3!N"S#$D)!N"m%!*!&D@4XC5j`HAG'9N08!*!(##!\r!!!%!N!J(!*!5!94&@&43HA4S!*!)Y1XiZVD1HZ!!!!51!!!0cJ#3#%R9!(%!!!$\rh!!(ba`!$!!$rrrrq!!!"RJ#3""EA!!!!!J#3"!Z%!*!D!JfL!*!I"!#3"8PNE'9\r$EfjQ,R"j4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K88(PdD!#3#,0aZikfMRVJ!!!\r$)J!!$"`!N!KI0"MN!!!!p`!"mXJ!!`!!rrrrrJ!!$f`!N!3@f!!!!!)!N!31K!#\r3'J)0SJ#3(`3!N!9*C'aP5'PcG'pbH5j`H8C@3e3!N!F))!!!!3#3#!F!N")"9%9\rB9&"jG'J!N!Lbr&m#YZ'B9`!!!"i!!!!9!*!)H$5lH`!!!2F!!I,*!!-!!2rrrri\r!!"Z)!*!%&YN!!!!#!*!%#S3!N"S#$D)!N"m%!*!&D@4XCACPFLj`H8C@3e3!N!F\r))!!!!3#3#!F!N")"9%9B9&"jG'J!N!Lbr&llYUB9lJ!!"NJ!!"ZE!*!)T4Jp,J!\r!!2F!!I,+!!-!!2rrrri!!"ZG!*!%&YS!!!!#!*!%$)3!N"S#$D)!N"m%!*!&58p\r#D@jND@jR,R"j4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K88(PdD!#3#,,mA`+br&m\r#!!!"lJ!!#,X!N!Ja(`Vf!!!!p`!"mXX!!`!!rrrrrJ!!0cJ!N!3@f`!!!!)!N!3\r+K!#3'J)0SJ#3(`3!N!9VCAPNC@Cc,R"j4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K\r88(PdD!#3#,-G@LQfMRVJ!!!%j!!!$`3!N!LDdmD#!!!!p`!"mX`!!`!!rrrrrJ!\r!2r-!N!3@h!!!!!)!N!39K!#3'J)0SJ#3(`3!N!90G@adD90MFQpXE'9N6'PcG(-\rZF(P'9N08!*!(##!!!!%!N!J(!*!5!94&@&43HA4S!*!)Y1XiZVD1HZ%!!!&i!!!\r$(!#3#,5!IU`!!!$h!!(bc3!$!!$rrrrq!!"1p`#3""EG!!!!!J#3""'%!*!D!Jf\rL!*!I"!#3"8eeE(4T8h4KG(9c3Q&b,R"j4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K\r8G(4iG!#3#,,mA[ZdkcLl!!!(3J!!%!-!N!Km6Jc%!!!!p`!"mXi!!`!!rrrrrJ!\r!8K-!N!3@hJ!!!!)!N!3)K!#3'J)0SJ#3(`3!N!9149G6,R4iG%C@3e3!N!F))!!\r!!3#3#!F!N")"9%9B9&"jG'J!N!LcJB($YSjki3!!"+S!!"!V!*!)8#kNe3!!!2F\r!!I,2!!-!!2rrrri!!')@!*!%&Ym!!!!#!*!%%)3!N"S#$D)!N"m%!*!&6f*UC@0\rd3R*[Gh0PFLj`H8C@3e3!N!F))!!!!3#3#!F!N")"9%9B9&"jG'J!N!LdkcLlY1X\riZ`!!#9i!!#+G!*!)b6bk0`!!!2F!!I,3!!-!!2rrrri!!(*"!*!%&Z!!!!!#!*!\r%%B3!N"S#$D)!N"m%!*!&6faN8h4KBfY@D@9hCA)ZF(P'9N08!*!(##!!!!%!N!J\r(!*!5!94&@&43HA4S!*!)X[aHr,D1HZ%!!!@D!!!2cJ#3#,JlB0!!!!$h!!(bd3!\r$!!$rrrrq!!#8hJ#3""EK!!!!!J#3"!q%!*!D!JfL!*!I"!#3"8peG("eG&GTEQ4\r[Gbj`H8C@3e3!N!F))!!!!3#3#!F!N")"9%9B9&"jG'J!N!LdkcLlYSjkiJ!!#6B\r!!"V!!*!)"di'LJ!!!2F!!I,5!!-!!2rrrri!!+5X!*!%&Z)!!!!#!*!%$B3!N"S\r#$D)!N"m%!*!&8'&bC@j0BA4MD#j`H8C@3e3!N!F))!!!!3#3#!F!N")"9%9B9&"\rjG'J!N!Lc(9STYSjkiJ!!!`i!!!Sj!*!)#e'qDJ!!!2F!!I,6!!-!!2rrrri!!,p\rX!*!%&Z-!!!!#!*!%$S3!N"S#$D)!N"m%!*!&8'&dD%*bEhGcCA)ZF(P'9N08!*!\r(##!!!!%!N!J(!*!5!94&@&43HA4S!*!)X[aHrEDQ&Hm!!!,k!!!+0!#3#"bmmh3\r!!!$h!!(be!!$!!$rrrrq!!$*T3#3""EN!!!!!J#3"!f%!*!D!JfL!*!I"!#3"9"\rPFQ0[E'&dEh)ZF(P'9N08!*!(##!!!!%!N!J(!*!5!94&@&43HA4S!*!)Xi'"a,D\rkSr3!!"BB!!",23#3#-@#(Vi!!!$h!!(be3!$!!$rrrrq!!$6f3#3""EP!!!!!J#\r3"!U%!*!D!JfL!*!I"!#3"9"j8'&bFf8ZF(P'9N08!*!(##!!!!%!N!J(!*!5!94\r&@&43HA4S!*!)X[aHrED1HZ)!!"Kk!!"G0!#3##)K*%-!!!$h!!(beJ!$!!$rrrr\rq!*!)&ZB!!!!#!*!%#S3!N"S#$D)!N"m%!*!&8(P6D'9XE#j`H8C@3e3!N!F))!!\r!!3#3#!F!N")"9%9B9(4dH(3!N!Lbr&lpY1Xi[!!!!ii!!!DT!*!)2*`Ll`!!!2F\r!!I,A!!-!!2rrrri!!&dd!*!%&ZF!!!!#!*!%#S3!N"S#$D)!N"m%!*!&8N9"4%e\r&,R4iG%C@3e3!N!F))!!!!3#3#!F!N")"9%9B9&"jG'J!N!Le%!q&YSjkiJ!!#N)\r!!#3T!*!)YD#q[`!!!2F!!I,B!!-!!2rrrri!!'2G!*!%&ZJ!!!!#!*!%$i3!N"S\r#$D)!N"m%!*!&8Q9YEh4P5@jdCA*`,R"j4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K\r88(PdD!#3#,,mA[ff#6e@!!!'#!!!&eN!N!M8DYqJ!!!!p`!"mYN!!`!!rrrrrJ!\r!L!B!N!3@k3!!!!)!N!33K!#3'J)0SJ#3(`3!N!95CA"XB@0P4'PKE'pR,R"j4PC\r$9!#3"`JJ!!!"!*!)"`#3%J&849K88(PdD!#3#,,mA[kfMRVL!!!(G!!!&Q)!N!J\r1#Udl!!!!p`!"mYS!!`!!rrrrrJ!!Rem!N!3@kJ!!!!)!N!33K!#3'J)0SJ#3(`3\r!N!96Bh*TF(4#D@jND@jR,R"j4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K88(PdD!#\r3#,,mA[kfMRVL!!!%8!!!$jX!N!L*,haP!!!!p`!"mYX!!`!!rrrrrJ!!YF%!N!3\r@k`!!!!)!N!32K!#3'J)0SJ#3(`3!N!96Bh*[E'aPC%aTFh3ZF(P'9N08!*!(##!\r!!!%!N!J(!*!5!94&@&43HA4S!*!)X[aHrV,mA[i!!!+'!!!+G`#3#%iTc'J!!!$\rh!!(bh!!$!!$rrrrq!!$&A!#3""EX!!!!!J#3""#%!*!D!JfL!*!I"!#3"90PBA*\rMD%*TEQ4TEQFZF(P'9N08!*!(##!!!!%!N!J(!*!5!94&@&43HA4S!*!)X[aHrV,\rmA[i!!!*H!!!(S!#3#"rGiTB!!!$h!!(bh3!$!!$rrrrq!!$2d`#3""EY!!!!!J#\r3"!q%!*!D!JfL!*!I"!#3"90PBA*MD%4TB@a[Cbj`H8C@3e3!N!F))!!!!3#3#!F\r!N")"9%9B9&"jG'J!N!Lbr&lqX[aHrJ!!!rB!!!mA!*!)HBL&TJ!!!2F!!I,H!!-\r!!2rrrri!!0Gc!*!%&Zi!!!!#!*!%%i3!N"S#$D)!N"m%!*!&8f9KFQ0S4'PKE'p\rR3Q&cC5j`H8C@3e3!N!F))!!!!3#3#!F!N")"9%9B9&"jG'J!N!Lbr&lqXeF(d!!\r!"k`!!"TT!*!)e'4#6`!!!2F!!I,I!!-!!2rrrri!!1D+!*!%&Zm!!!!#!*!%$i3\r!N"S#$D)!N"m%!*!&8f9KFQ0S4@jRD@jP,R"j4PC$9!#3"`JJ!!!"!*!)"`#3%J&\r849K88(PdD!#3#,,mA[qfMRVL!!!$RJ!!$$d!N!Kq`P,&!!!!p`!"mZ!!!`!!rrr\rrrJ!"!2-!N!3@m!!!!!)!N!3-K!#3'J)0SJ#3(`3!N!96CA"KFQ&dEh)ZF(P'9N0\r8!*!(##!!!!%!N!J(!*!5!94&@&43HA4S!*!)X[aHrlD1HZ)!!!5%!!!1Z3#3##R\r9H$J!!!$h!!(bi3!$!!$rrrrq!!%0-!#3""Ea!!!!!J#3"!k%!*!D!JfL!*!I"!#\r3"90dB@0V9QPPGf9b,R"j4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K88(PdD!#3#,,\rmA`1br&m$!!!!HJ!!!1N!N!J#QXYV!!!!p`!"mZ)!!`!!rrrrrJ!"'qN!N!3@mJ!\r!!!)!N!3,K!#3'J)0SJ#3(`3!N!9dCA0dBfpNC5j`H8C@3e3!N!F))!!!!3#3#!F\r!N")"9%9B9(4dH(3!N!Lbr&lrYL*4BJ!!$ZB!!##U!*!)HBKi[`!!!2F!!I,M!!-\r!!2rrrri!!4c5!*!%&[-!!!!#!*!%#)3!N"S#$D)!N"m%!*!&9%p%6bjdH(4'9N0\r8!*!(##!!!!%!N!J(!*!5!94&@&43HA4S!*!)Xi'"aED1HZ-!!!0B!!!*e3#3#&0\ri2-S!!!$h!!(bj!!$!!$rrrrq!!%pI!#3""Ed!!!!!J#3"!U%!*!D!JfL!*!I"!#\r3"94[Efa8DA!ZF(P'9N08!*!(##!!!!%!N!J(!*!5!94&@&43HA4S!*!)Xi'"aV3\rDEKm!!"!!!!!kL`#3#"SYFLm!!!$h!!(bj3!$!!$rrrrq!*!)&[8!!!!#!*!%$B3\r!N"S#$D)!N"m%!*!&9(*PC9GTC'GPG#j`H8C@3e3!N!F))!!!!3#3#!F!N")"9%9\rB9&"jG'J!N!Lbr&m!XeF(d3!!#DS!!#Ia!*!)j(m$TJ!!!2F!!I,Q!!-!!2rrrri\r!!$U,!*!%&[B!!!!#!*!%%)3!N"S#$D)!N"m%!*!&9@jNEd4PE'9RBA4[FLj`H8C\r@3e3!N!F))!!!!3#3#!F!N")"9%9B9&"jG'J!N!Lbr&m!XkZMV`!!![B!!!Q+!*!\r)T$)cT`!!!2F!!I,R!!-!!2rrrri!!'*m!*!%&[F!!!!#!*!%%i3!N"S#$D)!N"m\r%!*!&9fPNCf9d8Q9NDA*PBh4[FLj`H8C@3e3!N!F))!!!!3#3#!F!N")"9%9B9&"\rjG'J!N!Lbr&m!YSjki`!!!Z`!!!MZ!*!)*Dr4``!!!2F!!I,S!!-!!2rrrri!!'`\r'!*!%&[J!!!!#!*!%$B3!N"S#$D)!N"m%!*!&9fPZC'ph6'PcG#j`H8C@3e3!N!F\r))!!!!3#3#!F!N")"9%9B9&"jG'J!N!Lbr&m!Xi'"aJ!!!FJ!!!3L!*!)B[406`!\r!!2F!!I,T!!-!!2rrrri!!(6d!*!%&[N!!!!#!*!%$B3!N"S#$D)!N"m%!*!&@Qp\r[E8KPD@GSG#j`H8C@3e3!N!F))!!!!3#3#!F!N")"9%9B9&"jG'J!N!LeAAD3!,9\rGGT!!!!!&4!!!$am!N!KiM'f4!!104!!$M8N!!`!!rrrrrJ!!H4B!N!3BI3!!!!)\r!N!34K!#3'J)0SJ#3(`3!N!9#FQphFf9b3fpZG(*[E#j`H8C@3e3!N!F))!!!!3#\r3#!F!N")"9%9B9%0A588!N!LfQFcGYTR-h3!!!*J!!!$`!*!)8kcFq`!#0D`!!MA\r%!!-!!2rrrri!!)Je!*!%'M3!!!!#!*!%")3!N"S#$D)!N"m%!*!&D@4XC8C@3e3\r!N!F))!!!!3#3#!F!N")"9%9B9&"jG'J!N!LfQFcGYUpUe`!!"#!!!!aX!*!)Z[(\ri'3!#0D`!!MAL!!-!!2rrrri!!)NP!*!%'M-!!!!#!*!%#)3!N"S#$D)!N"m%!*!\r&Ff9dGA!ZF(P'9N08!*!(##!!!!%!N!J(!*!5!94&@&4dG(Kd!*!)YR6XHECdl)%\r!!!!f!!!!,J!!!%S!!!&-lY!2L`!'a4B!"X8K!!-!!2rrrri!!*@4!!#9[aZR!!!\r!!J#3"!k%!*!D!JfL!*!I"!#3"@0[EQCTCbeYB@-ZG(Kd4&C$9!#3%,Db'LF!N!I\rj!!!!mJ!!!!%!N"`@qJ!!!!)!!J#3"!B!!!!)"!F!N"X##+)!N#0`H@jMD'9'9N0\r8!*!(##!!!!%!N!J(!*!5!94&@&43HA4S!*!)X[aI%,-hapX!!!!i!!!!,`#3#*%\rrd#N!!!$j!!(bmJ!$!!$rrrrq!*!)&[X!!!!#!*!%#i3!N"S#$k)!N"m%!*!&Aep\rTEQPdAemZF(P'9N08!*!(##!!!!%!N!J(!*!5!94&@&43HA4S!*!)X[aI#E0A"p-\r!!!8U!!!33J#3#%DZN9m!!!$j!!(bm`!$!!$rrrrq!!!!,`#3""Em!!!!!J#3"!f\r%!*!D!JqL!*!I"!#3"80SDA"@D@9hCA)ZF(P'9N08!*!(##!!!!%!N!J(!*!5!94\r&@&43HA4S!*!)X[aI#E0A"p-!!!aF!!!Kl!#3#&960&S!!!$j!!(bp!!$!!$rrrr\rq!!!3F3#3""Ep!!!!!J#3"!U%!*!D!JqL!*!I"!#3"80[E'pb4%)ZF(P'9N08!*!\r(##!!!!%!N!J(!*!5!94&@&43HA4S!*!)X[aI#V0A"p-!!!Qf!!!RU3#3#)I'Z`3\r!!!$j!!(bp3!$!!$rrrrq!!!bA3#3""Eq!!!!!J#3""#%!*!D!JqL!*!I"!#3"84\rPG'&TE(0@D@9hCA)ZF(P'9N08!*!(##!!!!%!N!J(!*!5!94&@&4dG(Kd!*!)XeF\r(eE0A"p8!!!#L!!!!p3#3#%`3%$-!!!$j!!(bpJ!$!!$rrrrq!!"D"J#3""Er!!!\r!!J#3""#%!*!D!JqL!*!I"!#3"@KdE@`d-'0[E'pbFbjdH(4'9N08!*!(##!!!!%\r!N!J(!*!5!94&@&43HA4S!*!)X[aI#V0A"p-!!!Jb!!!D)`#3#1lLBbB!!!$j!!(\rbp`!$!!$rrrrq!!"Dq`#3""F!N!3#!*!%$B3!N"S#$k)!N"m%!*!&6'PcG&CTCAG\rPFLj`H8C@3e3!N!F))!!!!3#3#!F!N")"9%9B9&"jG'J!N!Lbr&m+XeF(e!!!#9)\r!!"J&!*!)3-Q0Y3!!!2N!!I,i!!-!!2rrrri!!(8H!*!%&`%!!!!#!*!%"i3!N"S\r#$k)!N"m%!*!&6@&TELj`H8C@3e3!N!F))!!!!3#3#!F!N")"9%9B9(4dH(3!N!L\rc9`I9XeF(e3!!"&`!!"C8!*!)R`EqKJ!!!2N!!I,j!!-!!2rrrri!!)dM!*!%&`)\r!!!!#!*!%$i3!N"S#$k)!N"m%!*!&EQ&YC@4MEfa[FR-ZG(Kd4PC$9!#3"`JJ!!!\r"!*!)"`#3%J&849K88(PdD!#3#,,mAa#fS0%[!!!%YJ!!$V8!N!Jj95cl!!!!q3!\r"m[S!!`!!rrrrrJ!!ShF!N!3A!`!!!!)!N!34K!#3'J)2SJ#3(`3!N!9`H80[E'p\rb3fK[Eh0PFLj`H8C@3e3!N!F))!!!!3#3#!F!N")"9%9B9%0A588!N!Lbr&m4X[a\rI%3!!!)3!!!#h!*!)HA$YC`!!!2N!!I,l!!-!!2rrrri!!,)X!*!%&`3!!!!#!*!\r%"S3!N"S#$k)!N"m%!*!&F(PZBfKP4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K83eG\r*43#3#,,mAa'br&m4!!!!K!!!!,8!N!KERNl3!!!!q3!"m[`!!`!!rrrrrJ!!XZ-\r!N!3A"3!!!!)!N!3+K!#3'J)2SJ#3(`3!N!9`H@jMD'8ZF(Ph4PC$9!#3"`JJ!!!\r"!*!)"`#3%J&849K88(PdD!#3#,,mA`bcUk1`!!!-+J!!+6F!N!K"hl"Q!!!!q3!\r"m[d!!`!!rrrrrJ!!XjJ!N!3A"J!!!!)!N!32K!#3'J)2SJ#3(`3!N!93H@jMD'9\rAD@4RCA3ZF(P'9N08!*!(##!!!!%!N!J(!*!5!94&@&45+Q0S!*!)X[aI$,0A"p3\r!!"C8!!!m5!#3#)hMS@`!!!$j!!(brJ!$!!$rrrrq!!$Fc`#3""F(!!!!!J#3"!D\r%!*!D!JqL!*!I"!#3"9*&384048C@3e3!N!F))!!!!3#3#!F!N")"9%9B9&"jG'J\r!N!Lbr&m0XeF(e3!!$e3!!$P%!*!)rpN+$3!!!2N!!I,r!!-!!2rrrri!!4NA!*!\r%&`J!!!!#!*!%$S3!N"S#$k)!N"m%!*!&8h4bDA"@D@9hCA)ZF(P'9N08!*!(##!\r!!!%!N!J(!*!5!94&@&43HA4S!*!)X[aI$E0A"p8!!!CU!!!5j!#3#1aJ+Ed!!!$\rj!!(c!!!$!!$rrrrq!!&5@`#3""F*!!!!!J#3"!k%!*!D!JqL!*!I"!#3"90hDA4\rMD'*[BA*N,R"j4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K88(PdD!#3#,,mA`fc9`I\r9!!!(j!!!'Z`!N!Kpc"e1!!!!q3!"m`%!!`!!rrrrrJ#3#"F+!!!!!J#3"!f%!*!\rD!JqL!*!I"!#3"94PH(4@D@9hCA)ZF(P'9N08!*!(##!!!!%!N!J(!*!5!94&@&4\r3HA4S!*!)X[aI$lDJd5i!!!F+!!!BK!#3#*HEEqF!!!$j!!(c!J!$!!$rrrrq!!!\rDl!#3""F,!!!!!J#3"!q%!*!D!JqL!*!I"!#3"94jF'9TEPCTCAGPFLj`H8C@3e3\r!N!F))!!!!3#3#!F!N")"9%9B9(4dH(3!N!Lc9`I@XeF(eJ!!"6i!!!`3!*!)lJ[\rkp`!!!2N!!I-$!!-!!2rrrri!!$0`!*!%&``!!!!#!*!%$B3!N"S#$k)!N"m%!*!\r&Gf9LBfpXEh*c,R4iG%C@3e3!N!F))!!!!3#3#!F!N")"9%9B9(4dH(3!N!Lc9`I\r@XeF(eJ!!!C!!!!!'e3#3#,hip4F!!!$j!!(c"!!$!!$rrrrq!!!rJ!#3""F0!!!\r!!J#3"!Z%!*!D!JqL!*!I"!#3"AGPBR0KCQ8ZG(Kd4&C$9!#3%,D`6@J!N!Ik!!!\r!q3!!!!%!N"`A$J!!!!-!!J#3"!%!!!!)"!F!N"X#$k)!N#0B4PC$9!#3"`JJ!!!\r"!*!)"`#3%J&849K8G(4iG!#3#,,mAa'br&m4!!!61J!!3pm!N!Jm5-U(!!!!qJ!\r"m`B!"!!!rrrrrJ#3#"F2!!!!!J#3"!H%!*!D!K#L!*!I"!#3"A*RBLjdH(4'9N0\r8!*!(##!!!!%!N!J(!*!5!94&@&4dG(Kd!*!)X[aI%V,mAa)!!!,q!!!&5!#3#&-\rC2LF!!!$k!!(c"`!%!!$rrrrq!!"$h`#3""F3!!!!!J#3"!b%!*!D!K#L!*!I"!#\r3"AKXD@0PER0P,R4iG%C@3e3!N!F))!!!!3#3#!F!N")"9%9B9&)UBfJ!N!Lbr&l\rQYJNp93!!!NJ!!!3@!*!)m*!!fAi!!!$b!!(bNJ!#!!$rrrrq!!"**`#3""F4!!!\r!!J#3"!D%!*!D!JLL!*!I"!#3"9*&3840484@3e3!N"#fjUr(YZD[b3!!!2X!!!$\rb!!!!!3#3("F5!!!!!J!#!*!%"`!!!!J%"`#3'`))SJ#3)h0MFQP`G(0'9N08!*!\r(##!!!!%!N!J(!*!5!94&@&43HA4S!*!)X[aI%VD1HZ-!!!+D!!!&U!#3#%I`MRm\r!!!$l!!(c#3!$!!$rrrrq!*!)&a-!!!!#!*!%$)3!N"S#%D)!N"m%!*!&BRPdCAP\rPBA*c,R"j4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K88(PdD!#3#,6V1,qdkcLr!!!\r'E!!!%N`!N!KhT@$h!!!!q`!"m`S!!`!!rrrrrJ!!"DJ!N!3A&!!!!!)!N!31K!#\r3'J)4SJ#3(`3!N!9MD'9MDf&`F'9ZC#j`H8C@3e3!N!F))!!!!3#3#!F!N")"9%9\rB9&"jG'J!N!Lbr&m5YSjki`!!!S)!!!HA!*!)NYq`$!!!!2X!!I-,!!-!!2rrrri\r!!"Id!*!%&a8!!!!#!*!%#i3!N"S#%D)!N"m%!*!&BfKPBfY`H@-ZF(P'9N08!*!\r(##!!!!%!N!J(!*!5!94&@&43HA4S!*!)X[aI%VD1HZ3!!!Mi!!!AJ3#3#)fSEa)\r!!!$l!!(c$!!$!!$rrrrq!!!IL`#3""F@!!!!!J#3"!Z%!*!D!K'L!*!I"!#3"@0\rXBA0cCQPi,R"j4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K88(PdD!#3#,,mAa1fMRV\rN!!!"2J!!!RN!N!L-d1cK!!!!q`!"m`d!!`!!rrrrrJ!!0``!N!3A&`!!!!)!N!3\r,K!#3'J)4SJ#3(`3!N!9MEh"jG'PYC5j`H8C@3e3!N!F))!!!!3#3#!F!N")"9%9\rB9&"jG'J!N!Lbr&m6Y1Xi[`!!!3!!!!(J!*!)&+f,b3!!!2X!!I-1!!-!!2rrrri\r!!$Q&!*!%&aJ!!!!#!*!%"i3!N"S#%D)!N"m%!*!&Bh*XCLj`H8C@3e3!N!F))!!\r!!3#3#!F!N")"9%9B9&"jG'J!N!Lbr&m6X[aI%`!!!YB!!!Em!*!)$RDS&J!!!2X\r!!I-2!!-!!2rrrri!!$YP!*!%&aN!!!!#!*!%#i3!N"S#%D)!N"m%!*!&BhCcCQP\rXCA-ZF(P'9N08!*!(##!!!!%!N!J(!*!5!94&@&408eG%!*!)YLC#[lBQ3Vm!!!6\rF!!!)`!#3#0!50bS!!!$l!!(c%!!$!!$rrrrq!!"#B3#3""FD!!!!!J#3"!U%!*!\rD!K'L!*!I"!#3"@4eG(*PC5jNEf0'9N08!*!(##!!!!%!N!J(!*!5!94&@&43HA4\rS!*!)X[aI%lD1HZ3!!!+H!!!'3J#3#2`KIf3!!!$l!!(c%3!$!!$rrrrq!!",)3#\r3""FE!!!!!J#3"!Q%!*!D!K'L!*!I"!#3"@4eG(*PC5j`H8C@3e3!N!F))!!!!3#\r3#!F!N")"9%9B9&"jG'J!N!Lbr&m6YHf'f`!!!Yi!!!@V!*!)"YLfX!!!!2X!!I-\r5!!-!!2rrrri!!&&M!*!%&a`!!!!#!*!%#B3!N"S#%D)!N"m%!*!&CA"dB@Gc,R"\rj4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K88(PdD!#3#,,mAa1fMRVN!!!"b!!!!r`\r!N!N2fQi!!!$l!!(c%`!$!!$rrrrq!!"A$J#3""FG!!!!!J#3"!k%!*!D!K'L!*!\rI"!#3"@CTEQ4XD@jVFh4[,R"j4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K88(PdD!#\r3#,,mAa5fMRVN!!!-c!!!*id!N!MrcHSM!!!!q`!"ma3!!`!!rrrrrJ!!@`S!N!3\rA(J!!!!)!N!3*K!#3'J)4SJ#3(`3!N!9QDAKMD@3ZF(P'9N08!*!(##!!!!%!N!J\r(!*!5!94&@&43HA4S!*!)X[aI&,D1HZ3!!!(3!!!%HJ#3#'C3BbF!!!$l!!(c&3!\r$!!$rrrrq!!##P`#3""FI!!!!!J#3"!b%!*!D!K'L!*!I"!#3"@CTH'KPB@4PFLj\r`H8C@3e3!N!F))!!!!3#3#!F!N")"9%9B9&"jG'J!N!Lbr&m8YSjkj!!!!NJ!!!5\rL!*!)+Ul[T3!!!2X!!I-@!!-!!2rrrri!!)F4!*!%&b!!!!!#!*!%$)3!N"S#%D)\r!N"m%!*!&CQPiEQpdD@0P,R"j4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K88(PdD!#\r3#,,mAa5fMRVN!!!"BJ!!!d-!N!M'MaTC!!!!q`!"maF!!`!!rrrrrJ!!Ll-!N!3\rA)3!!!!)!N!3)K!#3'J)4SJ#3(`3!N!9QDAK`Fbj`H8C@3e3!N!F))!!!!3#3#!F\r!N")"9%9B9&"jG'J!N!Lbr&m8YSjkj!!!$I)!!$'!!*!)hpiLd3!!!2X!!I-B!!-\r!!2rrrri!!)lf!*!%&b)!!!!#!*!%$)3!N"S#%D)!N"m%!*!&CR4`E@PbFQpb,R"\rj4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K88(PdD!#3#,83$iDfMRVN!!!+9J!!(rX\r!N!KJV%A'!!!!q`!"maN!!`!!rrrrrJ!!`(B!N!3A)`!!!!)!N!3,K!#3'J)4SJ#\r3(`3!N!9RC@jMEf4PBbj`H8C@3e3!N!F))!!!!3#3#!F!N")"9%9B9&"jG'J!N!L\rbr&m8YSjkj3!!"V!!!"36!*!)a6[([J!!!2X!!I-D!!-!!2rrrri!!1"a!*!%&b3\r!!!!#!*!%"i3!N"S#%D)!N"m%!*!&D$*`H5j`H8C@3e3!N!F))!!!!3#3#!F!N")\r"9%9B9&"jG'J!N!Lbr&m9YSjkj3!!"3i!!!k(!*!)drJ1D!!!!2X!!I-E!!-!!2r\rrrri!!25%!*!%&b8!!!!#!*!%#)3!N"S#%D)!N"m%!*!&D@CNC@BZF(P'9N08!*!\r(##!!!!%!N!J(!*!5!94&@&43HA4S!*!)X[aI&E6V1,m!!!%#!!!"i`#3#&f8l6i\r!!!$l!!(c(!!$!!$rrrrq!!%$#`#3""FQ!!!!!J#3"!H%!*!D!K'L!*!I"!#3"@a\rQBh)ZF(P'9N08!*!(##!!!!%!N!J(!*!5!94&@&43HA4S!*!)X[aI&ED1HZ8!!!,\rQ!!!*@J#3#'YqPFm!!!$l!!(c(3!$!!$rrrrq!!%%lJ#3""FR!!!!!J#3"!Z%!*!\rD!K'L!*!I"!#3"@aTEQYdFQ9P,R"j4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K88(P\rdD!#3#,,mAa@fMRVP!!!"CJ!!!TN!N!M8C%i3!!!!q`!"mai!!`!!rrrrrJ!"$NJ\r!N!3A+!!!!!)!N!3'K!#3'J)4SJ#3(`3!N!9XE'`ZF(P'9N08!*!(##!!!!%!N!J\r(!*!5!94&@&43HA4S!*!)X[aI&ED1HZ8!!!9U!!!2C!#3#&Lq'6X!!!$l!!(c(`!\r$!!$rrrrq!!%3i3#3""FT!!!!!J#3"!Z%!*!D!K'L!*!I"!#3"@a[CfePFQGP,R"\rj4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K88(PdD!#3#,,mAa@fMRVP!!!+(J!!(dS\r!N!L`3T[f!!!!q`!"mb!!!`!!rrrrrJ!")%8!N!3A+J!!!!)!N!32K!#3'J)4SJ#\r3(`3!N!9YB@PXCA*NB@9YEfiZF(P'9N08!*!(##!!!!%!N!J(!*!5!94&@&43HA4\rS!*!)X[aI&ED1HZ8!!!IU!!!9I3#3#09XV")!!!$l!!(c)3!$!!$rrrrq!!%rM`#\r3""FV!!!!!J#3"!U%!*!D!K'L!*!I"!#3"@ePG'KQDAJZF(P'9N08!*!(##!!!!%\r!N!J(!*!5!94&@&43HA4S!*!)X[aI&VD1HZ8!!!*f!!!',3#3#)qJl38!!!$l!!(\rc)J!$!!$rrrrq!!&9$!#3""FX!!!!!J#3"!Q%!*!D!K'L!*!I"!#3"@eVFQ9KE#j\r`H8C@3e3!N!F))!!!!3#3#!F!N")"9%9B9&"jG'J!N!Lbr&m@YUpUf3!!%GS!!#r\rN!*!)fd$k[3!!!2X!!I-M!!-!!2rrrri!N!JA,3!!!!)!N!3)K!#3'J)4SJ#3(`3\r!N!9ZC'PQCLj`H8C@3e3!N!F))!!!!3#3#!F!N")"9%9B9&"jG'J!N!Lbr&m@YSj\rkj3!!"(J!!!QQ!*!)R38)0`!!!2X!!I-N!!-!!2rrrri!!#rN!*!%&bi!!!!#!*!\r%#B3!N"S#%D)!N"m%!*!&EQdbC'9Q,R"j4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K\r88(PdD!#3#,,mAaDfMRVP!!!(hJ!!&cJ!N!MV6mHl!!!!q`!"mb8!!`!!rrrrrJ!\r!1BS!N!3A,`!!!!)!N!3,K!#3'J)4SJ#3(`3!N!9[BQTRFQ&`D#j`H8C@3e3!N!F\r))!!!!3#3#!F!N")"9%9B9&"jG'J!N!Ld'QiJYSjkjJ!!!b`!!!Dj!*!)6bH*KJ!\r!!2X!!I-Q!!-!!2rrrri!!&$#!*!%&c!!!!!#!*!%%)3!N"S#%D)!N"m%!*!&F'&\rbFf9PER4TG'PPFbj`H8C@3e3!N!F))!!!!3#3#!F!N")"9%9B9&"jG'J!N!Lbr&m\r@YSjkjJ!!"Q!!!"$U!*!)5(5cNJ!!!2X!!I-R!!-!!2rrrri!!&Gl!*!%&c%!!!!\r#!*!%#S3!N"S#%D)!N"m%!*!&F'&dD'CTH#j`H8C@3e3!N!F))!!!!3#3#!F!N")\r"9%9B9&"jG'J!N!Lbr&m@YSjkjJ!!"FS!!!pY!*!)JriYN3!!!2X!!I-S!!-!!2r\rrrri!!'KP!*!%&c)!!!!#!*!%#)3!N"S#%D)!N"m%!*!&F'4PF(-ZF(P'9N08!*!\r(##!!!!%!N!J(!*!5!94&@&43HA4S!*!)X[aI&lD1HZB!!"$S!!"&qJ#3##@jpLB\r!!!$l!!(c+3!$!!$rrrrq!!"hdJ#3""Fc!!!!!J#3"!U%!*!D!K'L!*!I"!#3"A"\rTEQ4PER3ZF(P'9N08!*!(##!!!!%!N!J(!*!5!94&@&43HA4S!*!)X[aI&lD1HZB\r!!!*!!!!%JJ#3#'A#ZfF!!!$l!!(c+J!$!!$rrrrq!!#pc!#3""Fd!!!!!J#3"!L\r%!*!D!K'L!*!I"!#3"A"dB@Gc,R"j4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K88LT\rMD!#3#,,mAa+e%!q&!!!%i!!!#E-!N!J1bkXY!!!!q`!"mbX!!`!!rrrrrJ!!`Ni\r!N!3A03!!!!)!N!3'K!#3'J)4SJ#3(`3!N!9548&%689'9N08!*!(##!!!!%!N!J\r(!*!5!94&@&43HA4S!*!)X[aI&l,mAaF!!!+-!!!&k`#3#$+6"33!!!$l!!(c,!!\r$!!$rrrrq!!$-!3#3""Ff!!!!!J#3"!L%!*!D!K'L!*!I"!#3"A*RFQ9`,R"j4PC\r$9!#3"`JJ!!!"!*!)"`#3%J&849K88(PdD!#3#,,mAaHfMRVQ!!!"$!!!!Lm!N!L\rhlU84!!!!q`!"mbd!!`!!rrrrrJ!!dH`!N!3A0`!!!!)!N!3(K!#3'J)4SJ#3(`3\r!N!9cG@CQ,R"j4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K88(PdD!#3#,,mAaHfMRV\rQ!!!$K!!!#B`!N!KL5MK9!!!!q`!"mbi!!`!!rrrrrJ!!e"X!N!3A1!!!!!)!N!3\r(K!#3'J)4SJ#3(`3!N!9cG@de,R"j4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K88(P\rdD!#3#,,mAaLfMRVQ!!!ZE!!!b`%!N!K*Q(b*!!!!q`!"mbm!!`!!rrrrrJ#3#"F\rj!!!!!J#3"!b%!*!D!K'L!*!I"!#3"A4PH'NbD(4YE#j`H8C@3e3!N!F))!!!!3#\r3#!F!N")"9%9B9&"jG'J!N!Lbr&mBYSjkj`!!"c3!!"DK!*!)6C(K`J!!!2X!!I-\r`!!-!!2rrrri!N!JA1J!!!!)!N!3,K!#3'J)4SJ#3(`3!N!9dFQ9PFhPZBbj`H8C\r@3e3!N!F))!!!!3#3#!F!N")"9%9B9&"jG'J!N!Lbr&mCX[aI'3!!!J!!!!5D!*!\r)"LGip!!!!2X!!I-a!!-!!2rrrri!!"DK!*!%&cX!!!!#!*!%#i3!N"S#%D)!N"m\r%!*!&G@jdB@*TCRNZF(P'9N08!*!(##!!!!%!N!J(!*!5!94&@&43HA4S!*!)X[a\rI'ED1HZF!!!*H!!!&K`#3#%G('rd!!!$l!!(c-J!$!!$rrrrq!!!E1`#3""Fm!!!\r!!J#3"!L%!*!D!K'L!*!I"!#3"AGSD@0S,R"j4PC$9!#3"`JJ!!!"!*!)"`#3%J&\r849K88(PdD!#3#,,mAaQfMRVR!!!%B!!!#Z-!N!L+'jPP!!!!q`!"mc-!!`!!rrr\rrrJ!!)-)!N!3A23!!!!)!N!3(K!#3'J)4SJ#3(`3!N!9iH'0T,R"j4PC$9!#3"`J\rJ!!!"!*!)"`#3%J&849K88(PdD!#3#,@[TB5fMRVR!!!El!!!AMm!N!MkbGLi!!1\r0S!!$MFJ!!`!!rrrrrJ!!+k8!N!3BI!!!!!)!N!3)K!#3'J)4SJ#3(`3!N!9dFQ&\rMC5j`H8C@3e3!N!F))!!!!3#3#!F!N")"9%9B9&"jG'J!N!Lf#6eAYSjkjJ!!"J`\r!!"D,!*!)HZm(,!!%2'J!"$b-!!-!!2rrrri!!)RN!*!%'H8!!!!#!*!%#B3!N"S\r#%D)!N"m%!*!&FQ9NC@e[,R"j4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K88(PdD!#\r3#,B*29Hf#6eA!!!,E!!!)BN!N!L`(L,K!!3mD!!%2)d!!`!!rrrrrJ!!S'm!N!3\rCj!!!!!)!N!3,K!#3'J)4SJ#3(`3!N!9bC@PZC'9ZG#j`H8C@3e3!N!F))!!!!3#\r3#!F!N")"9%9B9%0A588!N!LfaG)6YXA5%`!!!$J!!!!`!*!),10GK!!(HlS!"h[\rG!!-!!2rrrri!!-(i!*!%(&m!!!!#!*!%"B3!N"S#%D)!N"m%!*!&F(PNEf0'9N0\r8!*!(##!!!!%!N!J(!*!5!94&@&4$9dP&!*!)YZ'B@EEKQ&N!!!!L!!!!'3#3#+q\ra-Gd!#%#$!!K!T`!$!!$rrrrq!!$#+!#3""ah!!!!!J#3"!Q%!*!D!K'L!*!I"!#\r3"A"jC'pM,R"jGd4@3e3!N"#fX%eU!*!(r!!!!2)!!!!"!*!F&ci!!!!#!!)!N!3\r-!!!!#!3(!*!E!JLL!*!MGQ9bFfP[EQ0SC@0V4PC$9!#3"`JJ!!!"!*!)"`#3%J&\r849K88(PdD!#3#,,mAaQbr&mC!!!"!J!!!DN!N!JG3RqC!!!!r!!"mc8!!`!!rrr\rrrJ#3#"Fr!!!!!J#3""#%!*!D!K+L!*!I"!#3"9pMD'9MDhCPFR0TEfiZF(P'9N0\r8!*!(##!!!!%!N!J(!*!5!94&@&43HA4S!*!)X[aI'V,mAaS!!!+b!!!&3!#3#*+\rb4'8!!!$m!!(c0J!$!!$rrrrq!!!"U3#3""G!!!!!!J#3""#%!*!D!K+L!*!I"!#\r3"@0SC@0VGQ9bFfP[ER-ZF(P'9N08!*!(##!!!!%!N!J(!*!5!94&@&43HA4S!*!\r)X[aI'V,mAaS!!!4)!!!2k!#3#,Xl%PX!!!$m!!(c0`!$!!$rrrrq!!!'k3#3""G\r"!!!!!J#3""'%!*!D!K+L!*!I"!#3"A"jGQ9bFfP[EQ0SC@0V,R"j4PC$9!#3"`J\rJ!!!"!*!)"`#3%J&849K88LTMD!#3#,,mAaQbr&mC!!!$rJ!!#&m!N!KaX#AQ!!!\r!r!!"mcJ!!`!!rrrrrJ!!&Y%!N!3A3J!!!!)!N!3'K!#3'J)5SJ#3(`3!N!9548&\r%689%9N08!*!3YV"0DJ#3"rd!!!$b!!!!!3#3("G$!!!!!J!#!*!%#J!!!!J%"`#\r3'`))SJ#3)hGPBQ0SC@0VCA*'9N08!*!(##!!!!%!N!J(!*!5!94&@&45+Q0S!*!\r)X[aI'V5,pi`!!!'Z!!!#cJ#3#&82)E)!!!$p!!(c1J!$!!$rrrrq!*!)&d3!!!!\r#!*!%"S3!N"S#%k)!N"m%!*!&8N9"4%e&4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K\r88(PdD!#3#,,mAaUbr&mD!!!-6J!!+mN!N!KhDC4j!!!!r3!"mcX!!`!!rrrrrJ!\r!!Xi!N!3A43!!!!)!N!3+K!#3'J)6SJ#3(`3!N!9dDh4[Efac,R"j4PC$9!#3"`J\rJ!!!"!*!)"`#3%J&849K88(PdD!#3#,,mAaZdLrH-!!!3IJ!!1q8!N!K*CKfi!!!\r!r3!"mc`!!`!!rrrrrJ!!,TF!N!3A4J!!!!)!N!3)K!#3'J)6SJ#3(`3!N!9hBfG\reD5j`H8C@3e3!N!F))!!!!3#3#!F!N")"9%9B9&"jG'J!N!Lbr&mEX[aI'`!!!*B\r!!!$#!*!)&qhA!`!!!2d!!I-p!!-!!2rrrri!!'Tm!*!%&dF!!!!#!*!%#)3!N"S\r#%k)!N"m%!*!&Gf0YB@-ZF(P'9N08!*!(##!!!!%!N!J(!*!5!94&@&43HA4S!*!\r)X[aI'l83$iB!!#!U!!"ULJ#3#+1kqdB!!!$p!!(c2J!$!!$rrrrq!!"V2J#3""G\r)!!!!!J#3"!f%!*!D!K1L!*!I"!#3"AGPBQ0SC@0VCA)ZF(P'9N08!*!(##!!!!%\r!N!J(!*!5!94&@&43HA4S!*!)X[aI'l8Y(X8!!!6k!!!0D`#3#$lIfD3!!!$p!!(\rc2`!$!!$rrrrq!!$9b!#3""G*!!!!!J#3"!b%!*!D!K1L!*!I"!#3"AGPBR0eBfY\rPFLj`H8C@3e3!N!F))!!!!3#3#!F!N")"9%9B9&"jG'J!N!Lbr&mEY)[hM3!!"r3\r!!"Z@!*!)-*rc6`!!!2d!!I0!!!-!!2rrrri!!1-c!*!%&dS!!!!#!*!%#)3!N"S\r#%k)!N"m%!*!&Gh0RG@NZF(P%9N08!*!3YX(6AVE"dei!!!%6!!!"%J!!!!%!N"`\rB+`!!!!)!!J#3"!3!!!!)"3F!N"X#,J!"!*!LBQGPEN4@3e3!N"#f`G0H!*!'!43\r!!!%6!!!!!3#3("JX!!!!!`!#!*!%"!!!!!J&"`#3'`)[!!%!N#*LCf9Z4PC$9!#\r3"`JJ!!!"!*!)"`#3%J&849K88(PdD!#3#,,mAZHbr&lR!!!!M!!!!8X!N!JT3da\r&!!!"&!!"UdB!"!!!rrrrrJ#3#"JY!!!!!J#3"!H%!*!D!M!!!3#3(J8!N!9LCf9\rZ,R"j4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K88(PdD!#3#,,mAZLd'QiG!!!&bJ!\r!'-8!N!J$1SE*!!!"&!!"UdF!"!!!rrrrrJ!!!8X!N!3B,J!!!!)!N!30K!#3'J)\r`!!%!N"i&!*!&BQGPEN*eCQCPFLj`H8C@3e3!N!F))!!!!3#3#!F!N")"9%9B9&"\rjG'J!N!Lbr&lSYPaNA!!!#!S!!"SL!!!!HJ!!!CTV,Die!!!"&!!"UdJ!"!!!rrr\rrrJ!!'K!!!$3b'#m!!!!#!*!%%)3!N"S#-!!"!*!H"3#3"@*RC@j(C@jPFQ&dEh)\rZF(P'9N08!*!(##!!!!%!N!J(!*!5!94&@&43HA4S!*!)X[aHkVCFC&`!!!&`!!!\r#p!!!!(`!!!'DV02R+!!!!43!!DY*!!3!!2rrrri!!$A-!!!i`"J`!!!!!J#3""@\r%!*!D!M!!!3#3(J8!N!9LCf9Z4f9ZCA*KG'pb4h*[GA!ZF(P'9N08!*!(##!!!!%\r!N!J(!*!5!94&@&43HA4S!*!)X[aHkV,mAZS!!!+Z!!!,TJ#3##"6!K`!!!%8!!'\rV5J!%!!$rrrrq!!!k@J#3""Ja!!!!!J#3""'%!*!D!M!!!3#3(J8!N!9LCf9Z5'9\rKF%*eCQCPFLj`H8C@3e3!N!F))!!!!3#3#!F!N")"9%9B9&"jG'J!N!Lbr&lVYS%\rc4!!!!2B!!!&Z!!!!VJ!!!GBL)Dp1!!!"&!!"UdX!"!!!rrrrrJ!!4J!!!%GZ'$)\r!!!!#!*!%%)3!N"S#-!!"!*!H"3#3"@*RC@jXEf0KG'P[ER-ZF(P'9N08!*!(##!\r!!!%!N!J(!*!5!94&@&43HA4S!*!)X[aHkVCFC&`!!!,k!!!)H!!!!(i!!!'Dfp`\rlL3!!!43!!DY-!!3!!2rrrri!!%P%!!"4["Jc!!!!!J#3"!f%!*!D!M!!!3#3(J8\r!N!9LCf9Z6@pNG@aP,R"j4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K88(PdD!#3#,-\rG@b1fA'4G!!!)Q!!!(BB!!!#8!!!"QQhFdCN!!!%8!!'V63!%!!$rrrrq!!"69J!\r!F0`B0!!!!!)!N!3AK!#3'J)`!!%!N"i&!*!&BQGPENpLDQ9MG%4PCQPZDA4TEfi\rZF(P'9N08!*!(##!!!!%!N!J(!*!5!94&@&43HA4S!*!)X[aHkV,mAZS!!!Jm!!!\r9GJ#3#!T*,Yi!!!%8!!'V6J!%!!$rrrrq!!"bGJ#3""Je!!!!!J#3"!f%!*!D!M!\r!!3#3(J8!N!9LCf9Z6h9dF(9d,R"j4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K88(P\rdD!#3#,,mAZZbr&lV!!!"P!!!"Im!N!JCe$X5!!!"&!!"Udm!"!!!rrrrrJ!!Kq`\r!N!3B0J!!!!)!N!35K!#3'J)`!!%!N"i&!*!&BQGPEP0dB@0V3R9QCQ9b,R"j4PC\r$9!#3"`JJ!!!"!*!)"`#3%J&849K88(PdD!#3#,,mAZZbr&lV!!!#TJ!!"X`!N!K\r)-2ZM!!!"&!!"Ue!!"!!!rrrrrJ!!MHX!N!3B0`!!!!)!N!36K!#3'J)`!!%!N"i\r&!*!&BQGPEP0dFQPZCd*eCQCPFLj`H8C@3e3!N!F))!!!!3#3#!F!N")"9%9B9&"\rjG'J!N!Lbr&lVYBZL)J!!"e`!!"J(!*!)8jQA!J!!!43!!DY4!!3!!2rrrri!!*5\rh!*!%'$J!!!!#!*!%#i3!N"S#-!!"!*!H"3#3"@*RC@j8HA"P,R"j4PC$9!#3"`J\rJ!!!"!*!)"`#3%J&849K88(PdD!#3#,,mAZZbr&lV!!!$6!!!#8d!N!MQ8G80!!!\r"&!!"Ue)!"!!!rrrrrJ!!V,i!N!3B13!!!!)!N!32K!#3'J)`!!%!N"i&!*!&BQG\rPEPCKFQPKBQaP,R"j4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K88(PdD!#3#,,mAZZ\rf`FLP!!!(T!!!&B`!!!"!!!!"1Z6M0V3!!!%8!!'V8`!%!!$rrrrq!!#f#`!!bjF\rB1J!!!!)!N!30K!#3'J)`!!%!N"i&!*!&E@&MFh9`F'pbG#j`H8C@3e3!N!F))!!\r!!3#3#!F!N")"9%9B9&"jG'J!N!Lbr&lVYX()T3!!&&`!!%0k!!!!`!!!!I*rGZZ\r%!!!"&!!"Ue3!"!!!rrrrrJ!!c0%!!4",'$X!!!!#!*!%$)3!N"S#-!!"!*!H"3#\r3"A0MB@jdEfpXFbj`H8C@3e3!N!F))!!!!3#3#!F!N")"9%9B9&)UBfJ!N!Lbr&l\rQX[aHjJ!!!0S!!!&e!*!)[AlD)`!!!4-!!DY%!!-!!2rrrri!!4)p!*!%'$`!!!!\r#!*!%"S3!N"S#,`!"!*!H"3#3"9*&3840484@3e3!N"#fX%eU!*!(rJ!!!2)!!!!\r"!*!F&dX!!!!#!!)!N!3&!!!!#!3(!*!E!JLL!*!MGfpbE'4'9N08!*!(##!!!!%\r!N!J(!*!5!94&@&45+Q0S!*!)X[aI(,,mAa`!!!8H!!!,-J#3###c$q)!!!$q!!(\rc3J!$!!$rrrrq!*!)&d`!!!!#!*!%"S3!N"S#&+)!N"m%!*!&8N9"4%e&4PC$9!#\r3"`JJ!!!"!*!)"`#3%J&849K83eG*43#3#,,mAabcJB((!!!9S!!!0XJ!N!K3263\rM!!!!rJ!"md-!!`!!rrrrrJ!!#c)!N!3A63!!!!)!N!3&K!#3'J)8SJ#3(`3!N!9\rhEh*XC%4@3e3!N"#fX%eMYV"0B`!!!4J!!idE!!!!!3#3("Kl!!!!!J!#!*!%#!!\r!!!J%"`#3'`))SJ#3)f0[EA"TE'9b4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K88(P\rdD!#3#,A)VFkf&+rY!!!"AJ!!!aS!N!LIC2N*!!10)!!$M5%!!`!!rrrrrJ#3#"K\rk!!!!!J#3"!U%!*!D!M5L!*!I"!#3"@0[EA"TE'8ZF(P%9N08!*!3YV"0B`#3"J%\rB!!10)!!!!!%!N"`BH3!!!!-!!J#3"!J!!!!)"!F!N"X#0+)!N#0MEfe`D@aPFNC\r@3e3!N!F))!!!!3#3#!F!N")"9%9B9&"jG'J!N!Leb+h1YFLYcJ!!!@i!!!+U!*!\r)M0NmV`!$M5-!!idN!!3!!2rrrri!N!JBH!!!!!)!N!3,K!#3'J)eSJ#3(`3!N!9\rIAfPZDA4IAbj`H8C@3e3!N!F))!!!!3#3#!F!N")"9%9B9&"jG'J!N!Leb+h1YL*\r4B3!!#c3!!%jb!*!)SCqbT!!$M5-!!idP!!3!!2rrrri!!!+U!*!%'(F!!!!#!*!\r%"S3!N"S#0D)!N"m%!*!&BA0d,R"j4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K88(P\rdD!#3#,A)VFkeb+h1!!!!CJ!!!)N!N!Mi"'#9!!10)`!$M5B!"!!!rrrrrJ!!84`\r!N!3BGJ!!!!)!N!3*K!#3'J)eSJ#3(`3!N!9MEfjcG(-ZF(P'9N08!*!(##!!!!%\r!N!J(!*!5!94&@&43HA4S!*!)YFLYcVC!XD)!!!%d!!!$`!#3#%F`(HS!!idM!!1\r0*`!%!!$rrrrq!!"4T3#3""Ke!!!!!J#3"!H%!*!D!M@L!*!I"!#3"@eTFf-ZF(P\r'9N08!*!(##!!!!%!N!J(!*!5!94&@&43HA4S!*!)YFLYcVC!XD)!!"E3!!"3%3#\r3#(%QPh`!!idM!!10+!!%!!$rrrrq!!"9C3#3""Kd!!!!!J#3"!U%!*!D!M@L!*!\rI"!#3"A"jBA0cC@dZF(P'9N08!*!(##!!!!%!N!J(!*!5!94&@&43HA4S!*!)YFL\rYcVC!XD)!!"Uq!!"lb3#3#+ESAIX!!idM!!10+3!%!!$rrrrq!!#PGJ#3""Kc!!!\r!!J#3"!b%!*!D!M@L!*!I"!#3"A"jBfpNC@GPELj`H8C@3e3!N!F))!!!!3#3#!F\r!N")"9%9B9&"jG'J!N!Leb+h2YN#aS`!!)Ai!!+0)!*!)`-,fhJ!$M5-!!idU!!3\r!!2rrrri!N!JBFJ!!!!)!N!31K!#3'J)eSJ#3(`3!N!9dFQ&ZFfC[FQePFLj`H8C\r@3e3!N!F))!!!!3#3#!F!N")"9%9B9&"jG'J!N!Leb+h2YL*4B3!!"CB!!"#5!*!\r)0`1Ka!!$M5-!!idV!!3!!2rrrri!N!JBF3!!!!)!N!3+K!#3'J)eSJ#3(`3!N!9\rfDA0TG'pb,R"j4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K8G(4iG!#3#,BL8@'f)P&\rK!!!#CJ!!"MB!N!L+rVRE!!)eL3!#0B`!"!!!rrrrrJ!!%*)!N!3D-J!!!!)!N!3\r(K!#3'J)eSJ#3(`3!N!9KFh3ZG(Kd4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K88(P\rdD!#3#,BL8@'f)P&K!!!'@!!!%jF!N!L4*E*2!!)eL3!#0Bd!"!!!rrrrrJ!!&XJ\r!N!3D-3!!!!)!N!3*K!#3'J)eSJ#3(`3!N!9KFh4RC@iZF(P'9N08!*!(##!!!!%\r!N!J(!*!5!94&@&43HA4S!*!)YFLYcVA)VFi!!!'S!!!$L3#3#0qPKa3!!idJ!!1\r0)J!$!!$rrrrq!!!UA`#3""K`!!!!!J#3"!H%!*!D!M5L!*!I"!#3"@4PE@mZF(P\r'9N08!*!(##!!!!%!N!J(!*!5!94&@&43HA4S!*!)YJNp9EB*298!!!&S!!!$&`#\r3#"eALAN!"$[Q!!3lk3!$!!$rrrrq!!!Yk!#3""RM!!!!!J#3"!U%!*!D!M5L!*!\rI"!#3"@4eEA"`H@-ZF(P'9N08!*!(##!!!!%!N!J(!*!5!94&@&43HA4S!*!)YJN\rp9EB*298!!!#8!!!!dJ#3#1-HX#N!"$[Q!!3lkJ!$!!$rrrrq!!!`r`#3""RL!!!\r!!J#3"!L%!*!D!M5L!*!I"!#3"A0PG(9`,R"j4PC$9!#3"`JJ!!!"!*!)"`#3%J&\r849K88(PdD!#3#,B8Vqff&+rY!!!#H!!!"CS!N!JEdpe2!!5-C`!%M'X!!`!!rrr\rrrJ!!-G%!N!3CrJ!!!!)!N!3,K!#3'J)dSJ#3(`3!N!9bC@GbG'9cG#j`H84@3e3\r!N"#fXKSU!*!'!4N!"$[K!!!!!3#3("RK!!!!!J!#!*!%"`!!!!J%"`#3'`))SJ#\r3)h9ZD@0[C'9'9N08!*!(##!!!!%!N!J(!*!5!94&@&43HA4S!*!)YJNp9lD6T6)\r!!"E%!!"36!#3#+""$AX!"$bA!!3mQ!!$!!$rrrrq!*!)'H!!!!!#!*!%%S3!N"S\r#Ck)!N"m%!*!&E@&VCA9ZD@0[C'9NBA4K,R"j4PC$9!#3"`JJ!!!"!*!)"`#3%J&\r849K83eG*43!!![i"&J!!XYG%,,BC'`d!!!%S!!!"iJ#3#&S@fmJ!!!"e!!'Ub!!\r"!!$rrrrq!!"36!#3""JT!!!!!J#3"!U%!*!D!KS!!3#3(J3!N!95C@&N6@8YC'9\rf4&C$9!#3#J,r!&F""lEQX#ZfjV!V!!!"%3!!!(8!!!!"!*!F'#F!!!!"!!)!N!3\r(!!!!#!8(!*!E!KS!!3#3)Ne[C(9XCA0'9N08!*!(##!!!!%!N!J(!*!5!94&@&4\r$9dP&!*!)X[aHTEAE0B!!!!FD!!!6&!!!!(!!!!'DIE8R8`!!!4%!!H`A!!)!!2r\rrrri!N!JB+!!!!!)!N!3+K!#3'J)Y!!%!N"i&!*!&H(KYEf4eE'8ZBd4@3e3!N!S\r#r`!'!3HfjV!LYZD`*J!!!3-!!!"e!!!!!3#3("GX!!!!!3!#!*!%"`!!!!J&"`#\r3'`)D!!%!N#**EQ0XG@4P4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K83eG*43#3#,,\rmA81fhl`1!!!CHJ!!IB!!!!!q!!!"1T&)C6!!!!%$!!'ULJ!#!!$rrrrq!*!'IB!\rAE3!!!!)!N!3+K!#3'J)I!!%!N"i&!*!&B@*cG(*KBh3ZD%C@3e3!N!F))!!!!3#\r3#!F!N")"9%9B9%0A588!N!Lbr&e%YGXe5J!!!@3!!!-B!*!)EJdJr3!!!3-!!DU\r,!!)!!2rrrri!!(kk!*!%&fi!!!!#!*!%#)3!N"S#(`!"!*!H"3#3"@*TG(0PG#j\rS4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K83eG*43#3#,,mA85efc9+!!!"1!!!!k%\r!N!J6#'&i!!!"!`!"US`!!J!!rrrrrJ!!JG)!N!3AE`!!!!)!N!31K!#3'J)I!!%\r!N"i&!*!&BR9QCQ9bEf*UC@0d,QK'9N08!*!(##!!!!%!N!J(!*!5!94&@&4$9dP\r&!*!)X[aG4,EI[!i!!!5H!!!0M3!!!1!!!!%kl+-R13!!!3-!!DU0!!)!!2rrrri\r!!)9c!!#6!"G`!!!!!J#3"!H%!*!D!Km!!3#3(J8!N!9MCACKE#jS4PC$9!#3"`J\rJ!!!"!*!)"`#3%J&849K83eG*43#3#,,mA85fiCJT!!!#`!!!#1J!N!LFEqKS!!!\r"!`!"USi!!J!!rrrrrJ!!P$S!N!3AF3!!!!)!N!30K!#3'J)I!!%!N"i&!*!&Bfa\rKFh0[BQTPBh3ZD%C@3e3!N!F))!!!!3#3#!F!N")"9%9B9%0A588!N!Lbr&e%YGX\re5J!!!Pi!!!DF!*!)1XI%2!!!!3-!!DU2!!)!!2rrrri!!*dL!*!%&h)!!!!#!*!\r%#B3!N"S#(`!"!*!H"3#3"@0[BQTPBh3ZD%C@3e3!N!F))!!!!3#3#!F!N")"9%9\rB9%0A588!N!Le%!pGYDqPFJ!!!q3!!!dD!*!)5'+*%3!!!3-!!DU3!!!#!!$rrrr\rq!!#M[J#3""Gc!!!!!J#3"!L%!*!D!Km!!3#3(J8!N!9MEf4PBh-ZD%C@3e3!N!F\r))!!!!3#3#!F!N")"9%9B9%0A588!N!Lbr&e&YYqm$J!!"!!!!!QA!*!)EPLN&J!\r!!3-!!DU4!!)!!2rrrri!!,$B!*!%&h3!!!!#!*!%#B3!N"S#(`!"!*!H"3#3"@0\r[EA"TE'8ZD%C@3e3!N!F))!!!!3#3#!F!N")"9%9B9%0A588!N!Lbr&e&YC&#R!!\r!!HS!!!@k!*!)$[amq`!!!3-!!DU5!!)!!2rrrri!!,T[!*!%&h8!!!!#!*!%$i3\r!N"S#(`!"!*!H"3#3"@0[EA"XCAK[BQTPBh3ZD%C@3e3!N!F))!!!!3#3#!F!N")\r"9%9B9%0A588!N!Lbr&e%YD*Z23!!"VS!!!qc!*!)&p%YSJ!!!3-!!DU6!!)!!2r\rrrri!!-!T!*!%&hB!!!!#!*!%#i3!N"S#(`!"!*!H"3#3"@06G(*TEQG*6bjS4PC\r$9!#3"`JJ!!!"!*!)"`#3%J&849K83eG*43#3#,,mA8@efc9+!!!"A!!!"1!!N!J\r)h)MN!!!"!`!"UT3!!J!!rrrrrJ!!cp`!N!3AG`!!!!)!N!3-K!#3'J)I!!%!N"i\r&!*!&C'PMG'pLDQ9MG#jS4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K83eG*43#3#,,\rmA8@efc9+!!!#6!!!"'3!!!!q!!!"1VLfZL8!!!%$!!'UP3!#!!$rrrrq!!$8[!!\r!f5!AH!!!!!)!N!3*K!#3'J)I!!%!N"i&!*!&CA*bBfpNC5jS4PC$9!#3"`JJ!!!\r"!*!)"`#3%J&849K83eG*43#3#,,mA8@efc9+!!!!T!!!!2X!N!K+L*T5!!!"!`!\r"UTB!!J!!rrrrrJ!!fPS!N!3AH3!!!!)!N!3'K!#3'J)I!!%!N"i&!*!&CACKE#j\rS4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K83eG*43#3#,,mA8Hefc9+!!!"3J!!!lS\r!N!M8dfr)!!!"!`!"UTF!!J!!rrrrrJ!!fe8!N!3AHJ!!!!)!N!3-K!#3'J)I!!%\r!N"i&!*!&CQPXC@pLDQ9MG#jS4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K83eG*43#\r3#,,mA8Lefc9,!!!"C!!!!Y!!N!KCa5q8!!!"!`!"UTJ!!J!!rrrrrJ!!h`m!N!3\rAH`!!!!)!N!30K!#3'J)I!!%!N"i&!*!&CQa[BA4[BQTPBh3ZD%C@3e3!N!F))!!\r!!3#3#!F!N")"9%9B9%0A588!N!Lbr&e+YYel33!!"$i!!!Xf!!!!3!!!!6S'N5`\ra!!!"!`!"UTN!!J!!rrrrrJ!!iGm!!1d9&h`!!!!#!*!%$B3!N"S#(`!"!*!H"3#\r3"@CbB@ePEf*UC@0d,QK'9N08!*!(##!!!!%!N!J(!*!5!94&@&4$9dP&!*!)X[a\rG6VEKQ#N!!!(8!!!&[`#3#)*h(DS!!!%$!!'UQJ!#!!$rrrrq!!$Z6`#3""Gp!!!\r!!J#3"!b%!*!D!Km!!3#3(J8!N!9QG@jMEf*UC@0d,QK'9N08!*!(##!!!!%!N!J\r(!*!5!94&@&4$9dP&!*!)X[aG6VA,6cm!!!(-!!!&E`#3#*J5JDF!!!%$!!'UQ`!\r#!!$rrrrq!!$d$J#3""Gq!!!!!J#3"!U%!*!D!Km!!3#3(J8!N!9RFQ&YD@jTG#j\rS4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K83eG*43#3#,,mA8kefc9,!!!$%J!!"q8\r!N!M'e!m*!!!"!`!"UT`!!J!!rrrrrJ!!qAd!N!3AI`!!!!)!N!3*K!#3'J)I!!%\r!N"i&!*!&Ch*KE@eKFLjS4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K83eG*43#3#,,\rmA8qefc9,!!!"m!!!"J)!N!KF$l46!!!"!`!"UTd!!J!!rrrrrJ!"!@)!N!3AJ!!\r!!!)!N!3)K!#3'J)I!!%!N"i&!*!&D@e`Eh*d,QK'9N08!*!(##!!!!%!N!J(!*!\r5!94&@&4$9dP&!*!)X[aG6lAE08X!!!3@!!!)a3#3#,e`qCi!!!%$!!'URJ!#!!$\rrrrrq!!%(C!#3""H"!!!!!J#3"!Z%!*!D!Km!!3#3(J8!N!9TER4[BQTPBh3ZD%C\r@3e3!N!F))!!!!3#3#!F!N")"9%9B9%0A588!N!Lbr&e2YGXe5`!!!*i!!!%G!*!\r)GJqRmJ!!!3-!!DUI!!)!!2rrrri!!4!T!*!%&i)!!!!#!*!%#i3!N"S#(`!"!*!\rH"3#3"@PZG(*MD'9MDbjS4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K83eG*43#3#,,\rmA8qefc9,!!!#Q!!!"`B!N!L(0jDR!!!"!`!"UU!!!J!!rrrrrJ!"%8B!N!3AJ`!\r!!!)!N!3-K!#3'J)I!!%!N"i&!*!&E'PcG'pLDQ9MG#jS4PC$9!#3"`JJ!!!"!*!\r)"`#3%J&849K83eG*43#3#,,mA8qefc9,!!!$L!!!"Zi!N!L*9aK)!!!"!`!"UU%\r!!J!!rrrrrJ!"'%`!N!3AK!!!!!)!N!30K!#3'J)I!!%!N"i&!*!&E'pZCfPZG(*\rPF()ZD%C@3e3!N!F))!!!!3#3#!F!N")"9%9B9%0A588!N!Lbr&e2YJNp"J!!!J)\r!!!Ar!*!)0r6rQ`!!!3-!!DUL!!)!!2rrrri!!4mk!*!%&i8!!!!#!*!%$)3!N"S\r#(`!"!*!H"3#3"@a[EQG[BQTPBh3ZD%C@3e3!N!F))!!!!3#3#!F!N")"9%9B9%0\rA588!N!Lbr&e2YTR-e`!!!3)!!!,'!*!)A"he03!!!3-!!DUN!!)!!2rrrri!!58\rj!*!%&iF!!!!#!*!%#B3!N"S#(`!"!*!H"3#3"@eKFR0SB@`ZD%C@3e3!N!F))!!\r!!3#3#!F!N")"9%9B9%0A588!N!Lbr&e3YGXe5`!!!*)!!!$p!*!)Dr1T*J!!!3-\r!!DUP!!)!!2rrrri!!5Ir!*!%&iJ!!!!#!*!%$B3!N"S#(`!"!*!H"3#3"@ePG'&\rRFQ&YE@&b,QK'9N08!*!(##!!!!%!N!J(!*!5!94&@&4$9dP&!*!)X[aG8,AE08X\r!!!+'!!!(+!#3#%(S&U8!!!%$!!'UTJ!#!!$rrrrq!!%Sr!#3""H*!!!!!J#3"!k\r%!*!D!Km!!3#3(J8!N!9YCA4SEf4[BQTPBh3ZD%C@3e3!N!F))!!!!3#3#!F!N")\r"9%9B9%0A588!N!Lbr&e3YTLblJ!!"A`!!!cj!!!"L!!!!CUda1EH!!!"!`!"UUF\r!!J!!rrrrrJ!"-#3!!6dG&iS!!!!#!*!%$)3!N"S#(`!"!*!H"3#3"@e[C(0eF("\r[FR3ZD%C@3e3!N!F))!!!!3#3#!F!N")"9%9B9%0A588!N!Lbr&e3YGXe6!!!!2)\r!!!)k!*!)rH!Gj!!!!3-!!DUS!!)!!2rrrri!!6kh!*!%&iX!!!!#!*!%$S3!N"S\r#(`!"!*!H"3#3"@e[C(9XC@pLDQ9MG#jS4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K\r83eG*43#3#,,mA9'efc9-!!!"j!!!!qi!!!"!!!!"1LaZ8P8!!!%$!!'UVJ!#!!$\rrrrrq!!&!m3!"40mAN3!!!!)!N!3'K!#3'J)I!!%!N"i&!*!&EQpNC5jS4PC$9!#\r3"`JJ!!!"!*!)"`#3%J&849K83eG*43#3#,,mA91f`FL9!!!DX!!!8Gi!!!$8!!!\r"QMT@PI-!!!%$!!'UV`!#!!$rrrrq!*!'8GiANJ!!!!)!N!3)K!#3'J)I!!%!N"i\r&!*!&Ef*UC@0d,QK'9N08!*!(##!!!!%!N!J(!*!5!94&@&4$9dP&!*!)X[aG9,E\rKQ#S!!!iU!!!UcJ!!!)!!!!'DUGdlRJ!!!3-!!DU`!!)!!2rrrri!!&0i!!"q4KH\r6!!!!!J#3"!Q%!*!D!Km!!3#3(J8!N!9[BQTTEA"X,QK'9N08!*!(##!!!!%!N!J\r(!*!5!94&@&4$9dP&!*!)X[aG9,DJd3X!!!B'!!!31`#3#(Vj!Ud!!!%$!!'UX3!\r#!!$rrrrq!!"ri!#3""H8!!!!!J#3"!L%!*!D!Km!!3#3(J8!N!9[F'0[C'8ZD%C\r@3e3!N!F))!!!!3#3#!F!N")"9%9B9%0A588!N!Lbr&e8YXA4q3!!!DB!!!1(!*!\r)NXp[5`!!!3-!!DUb!!)!!2rrrri!!*!!'`#3""H9!!!!!J#3"!L%!*!D!Km!!3#\r3(J8!N!9[Ff4PCR-ZD%C@3e3!N!F))!!!!3#3#!F!N")"9%9B9%0A588!N!Lbr&e\r8YGXe6!!!!3i!!!*P!*!)J'N$$3!!!3-!!DUc!!)!!2rrrri!!*1L!*!%&jB!!!!\r#!*!%#S3!N"S#(`!"!*!H"3#3"A"KFR0PG'pV,QK'9N08!*!(##!!!!%!N!J(!*!\r5!94&@&4$9dP&!*!)YXX"YlEGHd%!!!*-!!!%m!#3#%hTFXm!!!%$!!'UY!!#!!$\rrrrrq!!#@"`#3""HA!!!!!J#3"!b%!*!D!Km!!3#3(J8!N!9`BA4MD'aPGQ9X,QK\r'9N08!*!(##!!!!%!N!J(!*!5!94&@&4$9dP&!*!)X[aG9EAE08`!!!(m!!!&-J!\r!!%!!!!%k`+Q9*`!!!3-!!DUe!!)!!2rrrri!!*Vh!!#J+4HB!!!!!J#3"!f%!*!\rD!Km!!3#3(J8!N!9`Cf9ZD'9KC'9bFbjS4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K\r83eG*43#3#,,mA9@efc9-!!!!h!!!!Kd!!!"!!!!"1Tj2qPS!!!%$!!'UYJ!#!!$\rrrrrq!!#KB`!!Si!AQ3!!!!)!N!3*K!#3'J)I!!%!N"i&!*!&F(PNC@*eCbjS4PC\r$9!#3"`JJ!!!"!*!)"`#3%J&849K83eG*43#3#,,mA9@faG(j!!!%"J!!%0)!!!#\r!!!!"QYiki+m!!!%$!!'UY`!#!!$rrrrq!!#NZJ!!YB`AQJ!!!!)!N!3+K!#3'J)\rI!!%!N"i&!*!&F(PPFR*[FR-ZD%C@3e3!N!F))!!!!3#3#!F!N")"9%9B9%0A588\r!N!Lbr&e9X[aG93!!$5`!!#%[!*!)KIRceJ!!!3-!!DUi!!)!!2rrrri!!,FQ!*!\r%&jX!!!!#!*!%"i3!N"S#(`!"!*!H"3#3"A"jCR"P,QK'9N08!*!(##!!!!%!N!J\r(!*!5!94&@&4$9dP&!*!)X[aG9ED6T3F!!!*m!!!(L!!!!%!!!!%k3-RD``!!!3-\r!!DUj!!)!!2rrrri!!0K9!!$Ih4HF!!!!!J#3"!Q%!*!D!Km!!3#3(J8!N!9`HA0\rdBA4P,QK'9N08!*!(##!!!!%!N!J(!*!5!94&@&4$9dP&!*!)X[aG3lDBXZd!!!4\ri!!!+Z`!!!3B!!!'DLEQR%3!!!3-!!DUk!!)!!2rrrri!!1%A!!$VdKHG!!!!!J#\r3"!L%!*!D!Km!!3#3(J8!N!93HA4SEfiZD%C@3e3!N!F))!!!!3#3#!F!N")"9%9\rB9%0A588!N!Lbr&e9YZ'B+J!!",B!!"&c!!!!I!!!!CT#iaQR!!!"!`!"UVX!!J!\r!rrrrrJ!!l@`!!2lI&ji!!!!#!*!%#i3!N"S#(`!"!*!H"3#3"A"jG'K[ER*eELj\rS4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K83eG*43#3#,,mA9Defc90!!!"Y!!!"D3\r!!!"b!!!"QX-FP8d!!!%$!!'U[!!#!!$rrrrq!!%!H3!""KdAR`!!!!)!N!3+K!#\r3'J)I!!%!N"i&!*!&F(PdD(*PB@3ZD%C@3e3!N!F))!!!!3#3#!F!N")"9%9B9%0\rA588!N!Lbr&e@YGXe63!!!4)!!!(2!*!)b(fUV`!!!3-!!DUp!!)!!2rrrri!!3H\rh!*!%&k!!!!!#!*!%$B3!N"S#(`!"!*!H"3#3"A*KEQGPEf*UC@0d,QK'9N08!*!\r(##!!!!%!N!J(!*!5!94&@&4$9dP&!*!)X[aG9V@43Ti!!!(5!!!$b`#3#)d+@"-\r!!!%$!!'U[`!#!!$rrrrq!!%*KJ#3""HL!!!!!J#3"!f%!*!D!Km!!3#3(J8!N!9\rcE'PMC@pLDQ9MG#jS4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K83eG*43#3#,,mA9Q\rf[+"j!!!'(!!!%DN!!!"k!!!"QJLjVUi!!!%$!!'U`!!#!!$rrrrq!!%083!"([S\rAS`!!!!)!N!31K!#3'J)I!!%!N"i&!*!&Fh4bD@jREf*UC@0d,QK'9N08!*!(##!\r!!!%!N!J(!*!5!94&@&4$9dP&!*!)X[aGA,AE08d!!!15!!!(AJ!!!(J!!!'D$A*\r-$3!!!3-!!DV"!!)!!2rrrri!!5#8!!%RmKHN!!!!!J#3"!k%!*!D!Km!!3#3(J8\r!N!9cG(*eBh4YC@eLCA)ZD%C@3e3!N!F))!!!!3#3#!F!N")"9%9B9%0A588!N!L\rbr&eHYRDc9`!!!6)!!!,H!*!)bMGXa`!!!3-!!DV#!!)!!2rrrri!!5Q-!*!%&k8\r!!!!#!*!%#i3!N"S#(`!"!*!H"3#3"A0jFfe[C(9XC5jS4PC$9!#3"`JJ!!!"!*!\r)"`#3%J&849K83eG*43#3#,,mA9kefc90!!!#S!!!"RF!N!KA(5HH!!!"!`!"UX3\r!!J!!rrrrrJ!",'S!N!3AT`!!!!)!N!3(K!#3'J)I!!%!N"i&!*!&G'pVC@iZD%C\r@3e3!N!F))!!!!3#3#!F!N")"9%9B9%0A588!N!Lbr&eHYGXe63!!!4!!!!)l!*!\r)A0lPTJ!!!3-!!DV&!!)!!2rrrri!!6,K!*!%&kJ!!!!#!*!%#i3!N"S#(`!"!*!\rH"3#3"A4bB@0PBQ&MDbjS4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K83eG*43#3#,,\rmA9qefc90!!!#P!!!"LX!N!MibG8`!!!"!`!"UXB!!J!!rrrrrJ!"04`!N!3AU3!\r!!!)!N!30K!#3'J)I!!%!N"i&!*!&G(9`E'9[BQTPBh3ZD%C@3e3!N!F))!!!!3#\r3#!F!N")"9%9B9%0A588!N!Le%!pJYFLYV`!!((3!!(2p!!!!2J!!!6Tdp[Sk!!!\r"!`!"UXF!!J!!rrrrrJ#3"R2p&kS!!!!#!*!%$i3!N"S#(`!"!*!H"3#3"A9ZD@0\r[C'9[BQTPBh3ZD%C@3e3!N!F))!!!!3#3#!F!N")"9%9B9%0A588!N!LeV&)5YGX\re6!!!"i`!!"3l!*!)[,IN23!$C3B!!f8a!!)!!2rrrri!!(8h!*!%''m!!!!#!*!\r%"i3!N"S#(`!"!*!H"3#3"A"jE@9Y,QK'9N08!*!(##!!!!%!N!J(!*!5!94&@&4\r$9dP&!*!)YE*,5EDmVQF!!")Q!!![$J!!!(S!!!'D+jfLT3!$C3B!!f8b!!)!!2r\rrrri!!)Pb!!#iJ"KZ!!!!!J#3"!L%!*!D!Km!!3#3(J8!N!9`HA"[FR3ZD%C@3e3\r!N!F))!!!!3#3#!F!N")"9%9B9%0A588!N!LeJ#Q(YSjkU`!!!A!!!!+U!!!!FJ!\r!!CS4l'bP!!0P"J!$C6m!!J!!rrrrrJ!!ZKS!!,c%''d!!!!#!*!%#B3!N"S#(`!\r"!*!H"3#3"A9MEQKKFfJZD%C@3e3!N!F))!!!!3#3#!F!N")"9%9B9%0A588!N!3\r"!3!!YTLblEDBXZd!!!%F!!!#I!#3#*HaDlJ!!MCQ!!)fDJ!#!!$rrrrq!!#qAJ#\r3""SU!!!!!J#3"!b%!*!D!Km!!3#3(J8!N!9MC@aXEf*UC@0d,QK'9N08!*!(##!\r!!!%!N!J(!*!5!94&@&4$9dP&!!!"jJ!"!!#fGV0AYRDc9`!!")i!!!h2!*!)5fa\rJT!!#0QB!!MD1!!)!!2rrrri!!-$D!*!%'LN!!!!#!*!%#i3!N"S#(`!"!*!H"3#\r3"A"jAf0eFR0PFbjS4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K83eG*43!!!HB"33!\r!YN#aNlC!XC-!!!#U!!!"3`#3#2'BZN!!!MCQ!!)fNJ!#!!$rrrrq!!$1U3#3""S\rS!!!!!J#3"!U%!*!D!Km!!3#3(J8!N!9`H@GPG'p`G#jS4PC$9!#3"`JJ!!!"!*!\r)"`#3%J&849K83eG*43!!!SJ!J3!!YU$4$,EI[!m!!!9Z!!!1*3#3#,m34eF!!MC\rQ!!)fR3!#!!$rrrrq!!$2l!#3""SR!!!!!J#3"!U%!*!D!Km!!3#3(J8!N!9cH@e\rdB@*XC5jS4&C$9!#3%,EQX#DfjV!Q!!!"'J!'bE3!!!!"!*!F'kB!!!!#!!)!N!3\r(!!!!#!8(!*!E!Km!!3#3)NjeE@9bD@0'9N08!*!(##!!!!%!N!J(!*!5!94&@&4\r$9dP&!*!)YV5jlVE@M!!!!!a)!!!d3`!!!%!!!!%kXLFU[!!'bI)!"XRc!!-!!2r\rrrri!N!Bd3aZP!!!!!J#3"!f%!*!D!RS!!3#3(J8!N!9KFR*KH@pLDQ9MG#jS4PC\r$9!#3"`JJ!!!"!*!)"`#3%J&849K83eG*43#3#,Ad*k5ep#HN!!!&N!!!!""V!*!\r)FTrcaJ!'bI)!"XRd!!-!!2rrrri!!$9p!*!%'k3!!!!#!*!%"B3!N"S#HJ!"!*!\rH"3#3"@BbBbjS4PC$9!#3"`JJ!!!"!*!)"`#3%J&849K83eG*43#3#,Ad+"Dep#J\r@!!!"QJ!!"33!N!KcjG$m!!E*mJ!'bI8!!`!!rrrrrJ!!4HJ!N!3ES`!!!!)!N!3\r)K!#3'J*k!!%!N"i&!*!&FQ&ZE'PL,QK'9N08!*!(##!!!!%!N!J(!*!5!94&@&4\r$9dP&!*!)YV5jlVDdZHi!!!9H!!!CLJ#3#-Ybk"!!"XRb!!E*pJ!$!!$rrrrq!!"\r+l!#3""ZL!!!!!J#3"!f%!*!D!RS!!3#3(J8!N!9eCR9ZBfpLDQ9MG#jS4PC$9!!\r!J!#3"!J)!!B"!*!)"`#3$i!!!!%!N!m"Y6TLJ,8kBS!!"!!"!!%!!3!"!!%!!)!\r!!N)!#3!!!!)!!!%B!!%!N!8XY6TLJ,8kBS!BE!!!#!8!N!8I!*!D&@UL!*!I!3#\r3"84[Bh9YC@jdBA4TEfiJ,5"cG'&bG#"SCA*P,QKdE@`I4'pMG@ePER4KG'P[EL!\rY)(0dBA*d)'KPFQ8ZD(4YE%C@3e3#%'!#!!!!##!!)!%!N!J(!*!3"3!"3A4YF&"\rjG'JJ!!,#!0%!!,Db(8Ufj@L$!!!"U!!!!`3!!"I5!!"VXF2)EK)!!!"d!!FY%3!\r"!!$rrrrq!*!'!`3F-!!!!!)!N!3B(`#3%)!!N!N"Li)!N"m'!*!&8(PdD'pZ5@j\rdCA*`FQ9dCA*$E'&cFfPM4PC$9!)3B!)!!!!))!!J!F!!N!F(!*!3"3!"3A4YF&"\rjG'JJ!!,%!"d!!,D(efHfj@Rq!!!"U!!!!`3!!"IB!!"VbFFS5k8!!!"d!!FY%!!\r"!!$rrrrq!!"ZY3!!FENF,`!!!!)!N!3A(`#3%#!!N!N"Lk!!N"m(!*!%!9"jG'K\r[ENPZG'9bF(*PG'9b3f&bBQpZ4PC$9!)3B!)!!!!))!!J!3#3#!F!N"!&!!&"8&"\r-8(Pd-L!!!HJ!r`!!YZ9UFlEPDR8!!!'S!!!$"!!!'K`!!%-3T'Ei5!!!!(3!"b5\r&!!%!!2rrrri!N!B$""`Z!!!!!J#3""BI!*!3J!#3#3',JJ#3(`B!N!9$EfjQD@G\reFQ93HA4SEfj$E'&cFfPM4PC$9!!!J!#3"!J)!!!"!*!)"`#3$i!!!!%!N!m"YX-\rlrVE$1ri!"!!"!!%!!3!"!!%!!)!!!!)!N!8#!!!"'`!"!*!&,,E$1rkf`c[q($-\r!!!3*!*!%$aJ!N"#!!*!,JJ#3(`%!N!9MEfjQD@GeFQ9cBh*TF(46CA3JBfpZCQP\rRGA*P)(4[)%0XBA0cD@-@3fpZCQPRGA*P8(PdD'pZ3faKFh0TBdC@3e3#%'!#!!!\r!##!!)!(!!*!("`#3%!8!!8&38%a3HA3b)8!"k3#&!!#fk#80YZJP$J!!!DJ!!!-\r%!!!DQ!!!4&U#GN(X!!!!G!!(*)3!!3!!rrrrrJ!!4K3!!%NB(#d!!!!#!*!%&4J\r!N"!J!*!*!BZJ!*!I"`#3"!&$EfjQD@GeFQ93HA4SEfj$BA*LEfj'9N08!!#!!*!\r%#!J!!!(!!*!("`#3$i!!!!%!N!m"YX-mAVE$2&i!"!!"!!%!!3!"!!%!!)!!!!)\r!N!8#!!!"'`!"!*!&,,E$2&kf`caH($3!!!3*!*!%$aF!N"!J!*!,S!#3(`%!N!3\r"BfpZCQPRGA*PFf0bDA"d8f9d)%0[EQCTCh9bC5"dEb"$BA*LEfi93fpZCQPRGA*\rP8(PdD'pZ3f&bBQpZ4PC$9!!!J!#3"!J)!!!"!*!)"`#3$i!!!!%!N!m"YX-p'lE\r$24X!"!!!!!%!!3!"!!%!!)!!!!)!N!8#!!!"'`!"!*!&,,E$24Zf`cdE($B!!!3\r+!*!%$aB!N"#!!*!,JJ#3(`%!N!9MEfjQD@GeFQ9cBh*TF(48CA0d)%0[EQCTCh9\rbC5"$E'&cFfPM&N0[EQCTCh9bC9"jG'K[EN0XBA0cD@0'9N08!!#!!*!%#!J!!!(\r!!*!("`#3$i!!!!%!N!m"YX-p4EE$288!"!!!!!%!!3!"!!%!!)!!!!)!N!8#!!!\r"'`!"!*!&,,E$28@f`ce&($F!!!3+!*!%$a8!N"!J!*!,S!#3(`%!N!3"BfpZCQP\rRGA*PFf0bDA"d9'9cG#"$EfjQD@GeFQ8J3f&bBQpZ&80[EQCTCh9bC9"jG'K[EN0\rKFQ*[ENC@3e3!!)!!N!3)#!!!!8!!N!F(!*!2J!!!!3!!!!)!N!RZ!!'fk2`lYZM\rm1`!%!!%!!3!"!!%!!3!!J!!!!J#3"3)!!!%E!!%!N!8XYZMm1lESr$XFU`!!"!B\r!N!8G!*!3)!#3#k!!N"m"!*!&6@9cFf&RC5!LFh9LE'&eEQ0S)'CKD@`JGf&bEL*\r25e4SC5"TER0dB@aXCA)JDA-JB@*[GA3JG'mJFR9Z)%0[EQCTCh9bC9"jG'K[EN0\rKFQ*[EL"dEb"QD@jTFfJJD@jcG'&XE'&dD@pZ,L"2EL"0B@028eJJG'KTFb"hD@a\rX)("bEf*KBQaj)'CKD@`X)'&ZC#"jEh8JFfK[G@aN)(*eEL"$EfjQD@GeFQ93HA4\rSEfj$BA*LEfiJE@&ZG@&XE(NJB@CdCA)JD@jcG'&XE'&dD@pZ)'Pc)'0[EA"XCA4\rP)'&ZC#"LC@C[FQ8JH@pe)(4bH5"KERPdD'PZCb"PE(0P)(GTG'JJ)&"jG'K[ELj\r'9N08!!#!!"`f!!J)!!!"!*!)"`#3$i!!!!%!N!m"YX(`!,E"m!!!"!!"!!%!!3!\r"!!%!!)!!!N)!N!8#!!!"'`!"!*!&,,E"m!#f`I!!($8!!!30!*!&(!#3%)!!N!N\rF,S)!N"m"#!#3"&0eBLeXBA9ZBfJJ3fpZCQPRGA*P)%0XBA0cD@0!!*!'!8C@3e3\r!!)!!($F!#!J!!!(!!*!("`#3$i!!!!%!N!m"YX(`!,E"m!!!"!!"!!%!!3!"!!%\r!!)!!!N)!N!8#!!!"'`!"!*!&,,E"m!#f`I!!($J!!!30!*!&'`#3%#!!N!NF,D!\r!N"m"#!!!!!&6G@)YE'&eEQ0S)%0[EQCTCh9bC5"$BA*LEfj!!*!'!8C@3e3!!)!\r!N!3)#!!!!5!!N!F(!*!2J!!!!3!!!!)!N!QM!!'fcE2YYXfcl3!%!!%!!3!"!!%\r!!3!!J!!!!J#3"3)!!!%E!!%!N!8XYXfclEE0XqdFF`!!"!B!N!8D!*!FSJ#3(`%\r!N!90CA0cB@GP)#*ABA*Z)'&LEh9d)'4PE'&j)Np,3@CdCA)JG'KP)'PZFh4KE'a\rKG'P[EL"TFb"MEfe`E'9dC5"dD'8JCQPZC'9b)(GTE'`JBQ8JGQ9bH5"LGA0j)'C\r[FL"eF#"dEb"K)'CPGb"YD@jeG'9c)(9`C'&dD@jR)'PdFb"NBA4KBQ&cCA-JGfP\rdD#"dD'8JG'K[GA0KEQ4c)'pQ)'CTE'9c)(P[G5"SBACP)'TeFh3JD@jcG'&XE'9\rN,P""3dX!$Ja&BA0j)%PZFh4KE'`!"6)Z-@)b!!!"2MjXL!!!!4J!N*8@8(PdD'p\rZ)'C[FL"$E'&cFfPM)&"33`#3"I`JlS!-!"BB!*!-J!#3"e+!!*"H8S!!N"mI6@P\rZD@eKE#"TER0dB@aX)'C[FL"$E'&cFfPM)&"33cj8D'Pc)'PZFh4KE'ac)&"jG'K\r[EL"QEh)J8'phCA*0B@0c)(*eEQjTEQFJ6@&M6e-J15"[FL"PBA*XD@9b,J-b,M%\r!!!#jdE%J"J!('!#3#`'!!*#)'&4V)#XJ8%P-)'C[FL"$E'&cFfPM)&"33hj8D'P\rc)'PZFh4KE'ac)&4VD@jdCA)J,#"IG'YTER4PFL"KEQ3JG'KP)&"jG'K[EL"*E@&\rRD@jR)%aTBR*KFRNJ+&"*6#NJCQpb)&"[Gf9b6@&MFbiJ$94V)#BJ9'0X)(CPFR0\rTEfiJ1#ic1b"358`JGQ9bFfP[EL!a,M%Z-5i'9'XJ1#ic!!!!,L%*)!%!!KJ!N!X\r"`!#3L!p1G@ePFQPM)'C[FL"38%-m9'KTFb"TER0dB@aXFb"dD'8J6R9YCA*TBf&\rX)&"jG'K[EL"PH(4PER0TEfjc)'C[FL"3EhGPFNeKBh-Z"M%i,M3Z-!!!!!lAYL!\r$!!3B!*!,!B!!N)J,5@eR)'C[FL"38%-`9'KTFb"TER0dB@aXFb"dD'8JdQPYCp-\rJF'&MDf&RC5"QEh)J3faKFh0TBb"38%-Z!c%Z-`!!!!Ue4B!)!"8B!*!,!B!!N)J\r$TkZT!*!)J!8!"JJ!N*8B8(PdD'pZ)'C[FL"$BA*LEfi[6@&M6e0B!!8b,M&L-J!\r!!0h*jS!0!"FB!*!'B!#3"5!!N!FT3!#3ALP!!*!I'NeTEQPYB@`JD@jcG'&XE#"\rQEh)J3f&bBQpZ3NPZFh4KE'`J6@&M8(PdD'pZ)'C[FL"0B@028b!j)'pb)&JX)'p\rb)$JJGfPdD#"$BA*LEfj-D@)JD@jcG'&XE'9N,J-b,M%!!!#if,k!!J!5'!#3"Q!\r!N!3")!#3L!j358`JCQpb)%0KFQ*[ENp8D'Pc)'PZFh4KE'ac)(4SC5"3HA4SEfi\rJ5@eKCfPZCb"-D@*bBA*j)#K358`T)'C[FL"$BA*LEfiZ)!dJ8%P-)(CPFR0TEfi\rJ-5ia,M%Z#9"*6#!a,M%Z-3!!!![Gai!%!"-B!*!'B!#3"!%J!*#)%NjeE@9bD@-\rJCQpb)%0KFQ*[EMP8D'Pc)'PZFh4KE'ac)(4SC5"1G@ePFQPMB@`J8(PdD'pZ)'9\riG'9ZFfP[ER-JCQpb)%0KFQ*[ELi'-6JZ0#i`!!!!$YJDJ!F!&"J!N!CJ!*!%!5!\r!N)J1D@eR)'C[FL"$BA*LEfiV9'KTFb"TER0dB@aXFb"dD'8JdQPYCp-JF'&MDf&\rRC5"QEh)J3f&bBQpZ,J-a,M-!!!!+YFNJ#3!+'!#3"Q!!N!3")!#3L!1RUkN!N!L\r!$J!3#!#3P3j%CACPE'p`CA*c)'YTG$j8D'Pc)'PZFh4KE'ac)(4SC5"NCACPE'p\r`CA*c)'YTG#"ZC@9NC@3JG'mJGh*TG'8J3bePH(4PER0TEfjc,J-b,M!!!!!*'"-\r3$`!4'!#3P8*#FQ3!!3!1!!)!!!!"!!-!N"-@!!-!N"-(!!-!N"-#!!-!N"-%!!-\r!N"-9!!-!N"-'!!-!N"-A!!-!N"-5!!-!N"-6!!-!N"-8!!-!N"-+!!-!N"-3!!-\r!N"-4!!-!N"-"!!-!N"-#!!-!N"*$6d4&!!"#4%P5!!-,D@jME(9NC5"`F'-!N"3\r"!!pTEQ0XG@4P)&4VD@jdCA)!N"!"!!jTEQ0XG@4P)'0KFQ*[EJ#3%3%!8&*25J"\rh!Hi"-!$)!,!!!!+Y!!!KYJ!!%5J!!!")!!!!5!!!!%J!!!")!!!!5!!!!%M3AJC\rXc,"#4%P5!!0#8e*$!!!!1[q3"!!!"e0[GA*MCA0NAJ!!!!)'bE6J4@jN4!!!!!l\rrN!3!!!%"!*!+3P0bB`!!!$S!!!!#!!%-8fpeFQ0P)&"KG'Kc+MRq"[N"Q!!"!*!\r@8&CMG!!!!#B!!!',!!)!!!!1BQPZBA*j)%4TFh4bD@*eG'P[EMT39Q0d!!!!+`!\r!!B`!!J!!!"0LD@jKFRNJ4'PcG(*TBR9dD@pZ1N4PE@mk8&CMG!!!!$-!!!'0!!)\r!!!!+BQPZBA*j)%4TFh4bD@*eG'P[EMT%C@e[1Q0XBA0cCA-k8&CMG!!!!$F!!!'\r1!!)!!!!&BQPZBA*j)%4TFh4bD@*eG'P[EMT%C@e[1Q0[EA"KFQPcEfjc1P"@Bh3\r!!!!b!!!#H!!#!!!!"f*TEQ&bH5"%DA0dFQPLGA4TEfik4'9YEcTMGA*cCA-k8&C\rMG!!!!#m!!!'3!!!#!!!!"Q*TEQ&bH5"%DA0dFQPLGA4TEfik4'9YEcTNER-k8&C\rMG!!!!$-!!!*5!!)!!!!"BQPZBA*j)%4TFh4bD@*eG'P[EMT%C@e[1QPYF(9dD@`\rk8&CMG!!!!$-!!!'8!!)!!!!$BQPZBA*j)%4TFh4bD@*eG'P[EMT%C@e[1QeN0A4\rPFh3k8&CMG!!!!$F!!!'9!!)!!!!)BQPZBA*j)%4TFh4bD@*eG'P[EMT%C@e[1Qe\rPG'&ME'&cFf9c1P"@Bh3!!!!b!!!"PJ!#!!!!#'*TEQ&bH5"%DA0dFQPLGA4TEfi\rk4'9YEcT`BA*cCA)k8&CMG!!!!$%!!!'A!!)!!!!8BQPZBA*j)%4TFh4bD@*eG'P\r[EMT%C@e[1R"NDA0d1P"@Bh3!!!![!!!"Q3!#!!!!#@*TEQ&bH5"%DA0dFQPLGA4\rTEfik4'9YEcTbF'-k8&CMG!!!!$-!!!'D!!)!!!!ABQPZBA*j)%4TFh4bD@*eG'P\r[EMT%C@e[1R0MFQP`G(-k8&CMG!!!!#m!!!'E!!)!!!!)BQPZBA*j)%4TFh4bD@*\reG'P[EMT%C@e[1R0RD6T39Q0d!!!!-J!!!C`!!J!!!""LD@jKFRNJ4'PcG(*TBR9\rdD@pZ1N4PE@mkFfGT1Q&X1P"@Bh3!!!!e!!!"R3!#!!!!!Q*TEQ&bH5"%DA0dFQP\rLGA4TEfik4'9YEcTcCfNkBA9ND@mk8&CMG!!!!$)!!!'I!!)!!!!(BQPZBA*j)%4\rTFh4bD@*eG'P[EMT%C@e[1R0RD6TMC$T39Q0d!!!!-`!!!D!!!J!!!!CLD@jKFRN\rJ4'PcG(*TBR9dD@pZ1N4PE@mkFfGT1QCXF$T39Q0d!!!!-J!!!D%!!J!!!!TLD@j\rKFRNJ4'PcG(*TBR9dD@pZ1N4PE@mkFfGT1QGX1P"@Bh3!!!!b!!!"S`!#!!!!"@*\rTEQ&bH5"%DA0dFQPLGA4TEfik4'9YEcTcCfNkFhBk8&CMG!!!!$8!!!'N!!)!!!!\rPBQPZBA*j)%4TFh4bD@*eG'P[EMT%C@e[1R0RD6TfD@4PEcT39Q0d!!!!-`!!!D8\r!!J!!!""LD@jKFRNJ4'PcG(*TBR9dD@pZ1N4PE@mkFfpMDf9dFcT39Q0d!!!!-`!\r!!DJ!!J!!!!PLD@jKFRNJ4'PcG(*TBR9dD@pZ1N4PE@mkG'KbC@&NFcT39Q0d!!!\r!,`!!!UX!!J!!!!CLD@jKFRNJ4'PcG(*TBR9dD@pZ1N4PE@mkG'Pi1P"@Bh3!!!!\rh!!!#V3!#!!!!&Q*TEQ&bH5"%DA0dFQPLGA4TEfik4'9YEcTdDAJkBQPdE@&`FcT\r39Q0d!!!!0`!!!U`!!J!!!!YLD@jKFRNJ4'PcG(*TBR9dD@pZ1N4PE@mkG'Pi1R0\rKEA"XCA-k8&CMG!!!!$-!!!'T!!)!!!!$BQPZBA*j)%4TFh4bD@*eG'P[EMT%C@e\r[1R4VD@jdCA)k8&CMG!!!!$N!!!'U!!)!!!!CBQPZBA*j)%4TFh4bD@*eG'P[EMT\r%C@e[1R4VD@jdCA)kCh9TC'mk8&CMG!!!!$J!!!'V!!)!!!!MBQPZBA*j)%4TFh4\rbD@*eG'P[EMT%C@e[1R4VD@jdCA)kE@&dG$T39Q0d!!!!,`!!!R3!!J!!!!0LD@j\rKFRNJ4'PcG(*TBR9dD@pZ1N4PE@mkH'eX1P"@Bh3!!!!`!!!"V3!#!!!!!Q*TEQ&\rbH5"%DA0dFQPLGA4TEfik4'9YEcTkE'PL1P"@Bh3!!!!a!!!"VJ!#!!!!!Q*TEQ&\rbH5"%DA0dFQPLGA4TEfik4AKdC@jcD@pZFcT39Q0d!!!!13!!!Dm!!J!!!!TLD@j\rKFRNJ4'PcG(*TBR9dD@pZ1N9iG'9ZFfP[ER-k5@eKCfPZCcT39Q0d!!!!3!!!!E!\r!!J!!!!0LD@jKFRNJ4'PcG(*TBR9dD@pZ1N9iG'9ZFfP[ER-k5@eKCfPZCcT*E@&\rRCA-k8&CMG!!!!$d!!!'b!!)!!!!qBQPZBA*j)%4TFh4bD@*eG'P[EMT&H(4PER0\rTEfjc1NPYB@GTEQFk8%P-1P"@Bh3!!!!q!!!"X`!#!!!!"'*TEQ&bH5"%DA0dFQP\rLGA4TEfik4AKdC@jcD@pZFcT*E@&RD@jR1P0KEQ8k8&CMG!!!!%%!!!'d!!)!!!!\r2BQPZBA*j)%4TFh4bD@*eG'P[EMT&H(4PER0TEfjc1NPYB@GTEQFk8f0bDA"dFcT\r39Q0d!!!!03!!!EB!!J!!!!4LD@jKFRNJ4'PcG(*TBR9dD@pZ1N9iG'9ZFfP[ER-\rkD@eR1P"@Bh3!!!!j!!!"Y`!#!!!!#'*TEQ&bH5"%DA0dFQPLGA4TEfik4AKdC@j\rcD@pZFcTTE@Fk6'PL1P"@Bh3!!!!j!!!"Z!!#!!!!&Q*TEQ&bH5"%DA0dFQPLGA4\rTEfik4AKdC@jcD@pZFcTTE@Fk6@&M1P"@Bh3!!!!k!!!"Z3!#!!!!#@*TEQ&bH5"\r%DA0dFQPLGA4TEfik4AKdC@jcD@pZFcTTE@FkG'9cG$T39Q0d!!!!+J!!!Em!!J!\r!!,4LD@jKFRNJ4'PcG(*TBR9dD@pZ1NaTBMT39Q0d!!!!-3!!!N3!!J!!!!CLD@j\rKFRNJ4'PcG(*TBR9dD@pZ1NaTBMTMGA*cCA-k8&CMG!!!!$3!!!(!!!)!!!!CBQP\rZBA*j)%4TFh4bD@*eG'P[EMT-D@)kC'PcG(9dD@ac1P"@Bh3!!!!m!!!"`3!#!!!\r!%f*TEQ&bH5"%DA0dFQPLGA4TEfik6'PL1Q4TFh4eG'PXFcTMEfeYB@jN1P"@Bh3\r!!!!d!!!"``!#!!!!3Q*TEQ&bH5"%DA0dFQPLGA4TEfik6'PL1Q9ZBfpND@jRFcT\r39Q0d!!!!-J!!!F3!!J!!!"4LD@jKFRNJ4'PcG(*TBR9dD@pZ1NaTBMTXD@)YEfa\rN1P"@Bh3!!!!a!!!"aJ!#!!!!%@*TEQ&bH5"%DA0dFQPLGA4TEfik6'PL1QaTBLe\rdDcT39Q0d!!!!03!!!QJ!!J!!!!0LD@jKFRNJ4'PcG(*TBR9dD@pZ1NaTBMT`E'&\rd,@*PEh-e1P"@Bh3!!!!i!!!#3`!#!!!!!f*TEQ&bH5"%DA0dFQPLGA4TEfik6'P\rL1R"XBA3YCR*PC@*cC$3k8&CMG!!!!$J!!!*#!!)!!!!$BQPZBA*j)%4TFh4bD@*\reG'P[EMT-D@)kF'aKG#eQFQ9PBR0N06T39Q0d!!!!0`!!!F`!!J!!!!&LD@jKFRN\rJ4'PcG(*TBR9dD@pZ1NaTBMT`E'&d,@GPEQ9bD@-k8&CMG!!!!$B!!!+T!!)!!!!\r$BQPZBA*j)%4TFh4bD@*eG'P[EMT-D@)kF'aKG#ebDA0MEh-k8&CMG!!!!$J!!!(\r@!!)!!!!'BQPZBA*j)%4TFh4bD@*eG'P[EMT-D@)kFfPdC5e`B@0VB@GPFcT39Q0\rd!!!!2!!!!UJ!!J!!!!4LD@jKFRNJ4'PcG(*TBR9dD@pZ1NaTBMTcDA4P,A"KBfY\rKCf9c1NC'9$T39Q0d!!!!1`!!!UF!!J!!!!0LD@jKFRNJ4'PcG(*TBR9dD@pZ1Na\rTBMTcDA4P,A"KBfYKCf9c1Ne"1P"@Bh3!!!"!!!!#TJ!#!!!!&@*TEQ&bH5"%DA0\rdFQPLGA4TEfik6'PL1R0TG'8YF'&MDf&RCA-k6R9YCA*TBcT39Q0d!!!!2!!!!U8\r!!J!!!!4LD@jKFRNJ4'PcG(*TBR9dD@pZ1NaTBMTcDA4P,A"KBfYKCf9c1P*14cT\r39Q0d!!!!,`!!!GF!!J!!!+GLD@jKFRNJ4'PcG(*TBR9dD@pZ1NaTBMTdCA0d1P"\r@Bh3!!!!f!!!"f!!#!!!!KQ*TEQ&bH5"%DA0dFQPLGA4TEfik6'PL1R4PFh3kEh9\rdF(9d1P"@Bh3!!!!Z!!!#2`!#!!!!"'*TEQ&bH5"%DA0dFQPLGA4TEfik6'PL1RK\rYE$T39Q0d!!!!-J!!!N%!!J!!!!4LD@jKFRNJ4'PcG(*TBR9dD@pZ1NaTBMTiE@`\rkC'pY1P"@Bh3!!!!f!!!#3!!#!!!!!Q*TEQ&bH5"%DA0dFQPLGA4TEfik6'PL1RK\rYE$T`BA*cCA*c1P"@Bh3!!!!b!!!#2J!#!!!!"Q*TEQ&bH5"%DA0dFQPLGA4TEfi\rk6'PL1RKYE$TcBAJk8&CMG!!!!#S!!!(C!!)!!!!(BQPZBA*j)%4TFh4bD@*eG'P\r[EMT0B@-k8&CMG!!!!$)!!!(D!!)!!!!,BQPZBA*j)%4TFh4bD@*eG'P[EMT0B@-\rk3fpZG(*TBMT39Q0d!!!!3J!!!GX!!J!!!!*LD@jKFRNJ4'PcG(*TBR9dD@pZ1Ne\rKBcT$EfjdFQPL1N&&3f&`G(9bC9"KFR0PFMT39Q0d!!!!1J!!!US!!J!!!!*LD@j\rKFRNJ4'PcG(*TBR9dD@pZ1NeKBcT$EfjdFQPL1N*#8(NZE'dk8&CMG!!!!$F!!!(\rF!!)!!!!$BQPZBA*j)%4TFh4bD@*eG'P[EMT0B@-k3fpZG(*TBMT#3P"j1P"@Bh3\r!!!!r!!!#@`!#!!!!"'*TEQ&bH5"%DA0dFQPLGA4TEfik6@&M1N0[ER4bD@)k5@e\rKCf9)C@a`CA*c1P"@Bh3!!!""!!!"j!!#!!!!"@*TEQ&bH5"%DA0dFQPLGA4TEfi\rk6@&M1N0[ER4bD@)k8(PdD'pZ4'9dC@0dEh)k8&CMG!!!!$m!!!(P!!)!!!!*BQP\rZBA*j)%4TFh4bD@*eG'P[EMT0B@-k3fpZG(*TBMT3HA4SEfj6Bh*TF(3k8&CMG!!\r!!$X!!!(S!!)!!!!%BQPZBA*j)%4TFh4bD@*eG'P[EMT0B@-k3fpZG(*TBMT6D'9\rbE'pMDcT39Q0d!!!!23!!!RF!!J!!!!*LD@jKFRNJ4'PcG(*TBR9dD@pZ1NeKBcT\r$EfjdFQPL1P4KBQ0XC@&ZCA)k8&CMG!!!!%)!!!*U!!)!!!!$BQPZBA*j)%4TFh4\rbD@*eG'P[EMT0B@-k3fpZG(*TBMTYEh*PCQPZC'9bG'p[E(-k8&CMG!!!!$F!!!(\rM!!)!!!!"BQPZBA*j)%4TFh4bD@*eG'P[EMT0B@-k3fpZG(*TBMT[Ff&Y1P"@Bh3\r!!!!l!!!#D3!#!!!!!@*TEQ&bH5"%DA0dFQPLGA4TEfik6@&M1N0[ER4bD@)kFh4\rbF(4TE@8k8&CMG!!!!#m!!!(T!!)!!!!IBQPZBA*j)%4TFh4bD@*eG'P[EMT0B@-\rk4'9YEcT39Q0d!!!!1J!!!I%!!J!!!!GLD@jKFRNJ4'PcG(*TBR9dD@pZ1NeKBcT\r%C@e[1P"*3e4LFQphFf8k8&CMG!!!!$F!!!*m!!)!!!!"BQPZBA*j)%4TFh4bD@*\reG'P[EMT0B@-k4'9YEcT3E(9R5@jc1P"@Bh3!!!!l!!!#2!!#!!!!!Q*TEQ&bH5"\r%DA0dFQPLGA4TEfik6@&M1N4PE@mkBA"`E'9cBh*TF(3k8&CMG!!!!%8!!!)p!!)\r!!!!%BQPZBA*j)%4TFh4bD@*eG'P[EMT0B@-k4'9YEcTKF("XCA0MFQP`G$T%DA0\rVAd0[F(Nk8&CMG!!!!$F!!!(U!!)!!!!$BQPZBA*j)%4TFh4bD@*eG'P[EMT0B@-\rk4'9YEcTMB@aXC'aX1P"@Bh3!!!!c!!!"k`!#!!!!"'*TEQ&bH5"%DA0dFQPLGA4\rTEfik6@&M1N4PE@mkBfGT1P"@Bh3!!!!i!!!"l!!#!!!!!@*TEQ&bH5"%DA0dFQP\rLGA4TEfik6@&M1N4PE@mkCAKKEA"XC6!k8&CMG!!!!$J!!!(Y!!)!!!!$BQPZBA*\rj)%4TFh4bD@*eG'P[EMT0B@-k4'9YEcTPH'&YF'aP-6T39Q0d!!!!1!!!!Hi!!J!\r!!!0LD@jKFRNJ4'PcG(*TBR9dD@pZ1NeKBcT%C@e[1Q9iB@e`E'8b1P"@Bh3!!!!\rk!!!"l`!#!!!!"Q*TEQ&bH5"%DA0dFQPLGA4TEfik6@&M1N4PE@mkD(4YE#jTBfp\rZFcT39Q0d!!!!13!!!I!!!J!!!!*LD@jKFRNJ4'PcG(*TBR9dD@pZ1NeKBcT%C@e\r[1QPYCf*bEhGcC6T39Q0d!!!!1!!!!I)!!J!!!!&LD@jKFRNJ4'PcG(*TBR9dD@p\rZ1NeKBcT%C@e[1R"bD@jdD@jR1P"@Bh3!!!!j!!!"m`!#!!!!!Q*TEQ&bH5"%DA0\rdFQPLGA4TEfik6@&M1N4PE@mkFA9TBfYdD@eP1P"@Bh3!!!!j!!!"p!!#!!!!!Q*\rTEQ&bH5"%DA0dFQPLGA4TEfik6@&M1N4PE@mkFQ9cEh9bBf9c1P"@Bh3!!!!e!!!\r"pJ!#!!!!!f*TEQ&bH5"%DA0dFQPLGA4TEfik6@&M1N4PE@mkFfpeEQ3k8&CMG!!\r!!$B!!!(h!!)!!!!$BQPZBA*j)%4TFh4bD@*eG'P[EMT0B@-k4'9YEcTcF'9PBfJ\rk8&CMG!!!!$J!!!(i!!)!!!!"BQPZBA*j)%4TFh4bD@*eG'P[EMT0B@-k4'9YEcT\rdCAKdC@4TG$T39Q0d!!!!03!!!IN!!J!!!!0LD@jKFRNJ4'PcG(*TBR9dD@pZ1Ne\rKBcT%C@e[1RGKFh4P1P"@Bh3!!!!Z!!!"qJ!#!!!!('*TEQ&bH5"%DA0dFQPLGA4\rTEfik6@&M1NaTBMT39Q0d!!!!2!!!!IX!!J!!!"&LD@jKFRNJ4'PcG(*TBR9dD@p\rZ1NeKBcT-D@)kE'PL,A0MFQP`G'PZCcT39Q0d!!!!33!!!MF!!J!!!!9LD@jKFRN\rJ4'PcG(*TBR9dD@pZ1NeKBcT-D@)kE'PL,A0MFQP`G("KBfYKCf9c1P"@Bh3!!!"\r0!!!#1`!#!!!!"@*TEQ&bH5"%DA0dFQPLGA4TEfik6@&M1NaTBMTXD@)YFf0bDA"\rdF'&MDf&RCA-k3fpNC9GKFR*TEh)k8&CMG!!!!%S!!!)k!!)!!!!'BQPZBA*j)%4\rTFh4bD@*eG'P[EMT0B@-k6'PL1QaTBLecBh*TF(4`B@0VB@GPFcT&H("XEh*PFMT\r39Q0d!!!!5!!!!MN!!J!!!!aLD@jKFRNJ4'PcG(*TBR9dD@pZ1NeKBcT-D@)kE'P\rL,A0MFQP`G("KBfYKCf9c1NCTEQ4PFMT39Q0d!!!!5J!!!MJ!!J!!!!KLD@jKFRN\rJ4'PcG(*TBR9dD@pZ1NeKBcT-D@)kE'PL,A0MFQP`G("KBfYKCf9c1NjPG(0MBA"\rP1P"@Bh3!!!",!!!#0J!#!!!!#Q*TEQ&bH5"%DA0dFQPLGA4TEfik6@&M1NaTBMT\rXD@)YFf0bDA"dF'&MDf&RCA-k8h4N8h9TG'9c1P"@Bh3!!!!k!!!"r!!#!!!!'f*\rTEQ&bH5"%DA0dFQPLGA4TEfik6@&M1NaTBMTXD@)YG'p[E'*[H$T39Q0d!!!!1J!\r!!PB!!J!!!!9LD@jKFRNJ4'PcG(*TBR9dD@pZ1NeKBcT-D@)kE@YMGh"bEfTPBh3\rk8&CMG!!!!%S!!!*f!!)!!!!)BQPZBA*j)%4TFh4bD@*eG'P[EMT0B@-k6'PL1Qe\rVBhG`FQpUC@0d1R4PEA"XBA4P,@0KFQ*[EMT39Q0d!!!!4`!!!R8!!J!!!!KLD@j\rKFRNJ4'PcG(*TBR9dD@pZ1NeKBcT-D@)kE@YMGh"bEfTPBh3kG'9YF'aKG'8YF("\rM1P"@Bh3!!!!c!!!"r3!#!!!!(Q*TEQ&bH5"%DA0dFQPLGA4TEfik6@&M1NaTBMT\rdCA0d1P"@Bh3!!!!m!!!#9`!#!!!!!f*TEQ&bH5"%DA0dFQPLGA4TEfik6@&M1Na\rTBMTdCA0d1QeVBhG`FQpU1P"@Bh3!!!"!!!!#H`!#!!!!!@*TEQ&bH5"%DA0dFQP\rLGA4TEfik6@&M1NaTBMTdCA0d1QeVBhG`FQpU1QaTBMT39Q0d!!!!-J!!!Ii!!J!\r!!$*LD@jKFRNJ4'PcG(*TBR9dD@pZ1NeKBcT3E(9R5@jc1P"@Bh3!!!!`!!!#!!!\r#!!!!!f*TEQ&bH5"%DA0dFQPLGA4TEfik6@&M1P4[Efac1P"@Bh3!!!!d!!!#!3!\r#!!!!#@*TEQ&bH5"%DA0dFQPLGA4TEfik6@&M1P4[Efac1N0(56T39Q0d!!!!0!!\r!!J)!!J!!!"jLD@jKFRNJ4'PcG(*TBR9dD@pZ1NeKBcT8EfpXFcT*4%8k8&CMG!!\r!!$S!!!)$!!)!!!!,BQPZBA*j)%4TFh4bD@*eG'P[EMT0B@-k9'p[E(-kE@&MCR*\rPCATP1P"@Bh3!!!"!!!!#"!!#!!!!!@*TEQ&bH5"%DA0dFQPLGA4TEfik6@&M1P4\r[Efac1QeKBfCbC@9kC6TSC@aXEcT39Q0d!!!!-J!!!Im!!J!!!#*LD@jKFRNJ4'P\rcG(*TBR9dD@pZ1NeKBcTcBh*TF(4c1P"@Bh3!!!!V!!!#"J!#!!!!(@*TEQ&bH5"\r%DA0dFQPLGA4TEfik6@PcBcT39Q0d!!!!,`!!!Q`!!J!!!!9LD@jKFRNJ4'PcG(*\rTBR9dD@pZ1NeTFf-k8P"01P"@Bh3!!!!h!!!#D`!#!!!!!Q*TEQ&bH5"%DA0dFQP\rLGA4TEfik6@PcBcT58%dk9'YTER4PFMT39Q0d!!!!,`!!!JF!!J!!!!0LD@jKFRN\rJ4'PcG(*TBR9dD@pZ1P*PE'j[G'9c1P"@Bh3!!!!X!!!##!!#!!!!$'*TEQ&bH5"\r%DA0dFQPLGA4TEfik9'p[E(-k8&CMG!!!!$3!!!)*!!)!!!!#BQPZBA*j)%4TFh4\rbD@*eG'P[EMT8EfpXFcTKG@4TEh"j1P"@Bh3!!!!e!!!#0!!#!!!!"Q*TEQ&bH5"\r%DA0dFQPLGA4TEfik9'p[E(-kBfpYF'PXCA)k8&CMG!!!!$i!!!)e!!)!!!!+BQP\rZBA*j)%4TFh4bD@*eG'P[EMT8EfpXFcTMEfe`D@aPFMTMEfe`D@aPFMT39Q0d!!!\r!-`!!!JS!!J!!!!9LD@jKFRNJ4'PcG(*TBR9dD@pZ1P4[Efac1QCKFAGTHMT39Q0\rd!!!!-3!!!J`!!J!!!!*LD@jKFRNJ4'PcG(*TBR9dD@pZ1P4[Efac1QNa1'ik8&C\rMG!!!!$%!!!)0!!)!!!""BQPZBA*j)%4TFh4bD@*eG'P[EMT8EfpXFcTTC'aP1P"\r@Bh3!!!!h!!!#$J!#!!!!"Q*TEQ&bH5"%DA0dFQPLGA4TEfik9'p[E(-kD@4XC6T\r*BfpZFcT39Q0d!!!!-`!!!Jm!!J!!!"4LD@jKFRNJ4'PcG(*TBR9dD@pZ1P4[Efa\rc1R"jEQ0SC6T39Q0d!!!!03!!!K!!!J!!!!*LD@jKFRNJ4'PcG(*TBR9dD@pZ1P4\r[Efac1R"jEQ0SC6TB1P"@Bh3!!!!d!!!#%3!#!!!!-'*TEQ&bH5"%DA0dFQPLGA4\rTEfik9'p[E(-kFf0bDA"dFcT39Q0d!!!!0!!!!QF!!J!!!!&LD@jKFRNJ4'PcG(*\rTBR9dD@pZ1P4[Efac1R9ZD@0[C'8k8&CMG!!!!$N!!!)5!!)!!!!%BQPZBA*j)%4\rTFh4bD@*eG'P[EMT8EfpXFcTfCA*cD@pZBfKPBfXk8&CMG!!!!$F!!!)6!!)!!!!\r(BQPZBA*j)%4TFh4bD@*eG'P[EMT8EfpXFcThC@*MD'9MDf9b1P"@Bh3!!!!b!!!\r#&!!#!!!!!Q*TEQ&bH5"%DA0dFQPLGA4TEfik9'p[E(-kGfpbE'3k8&CMG!!!!#-\r!!!)D!!)!!!!$C'9f)%4TFh4bD@*eG'P[EMT39Q0d!!!!+!!!!KX!!J!!!!&NCAB\rJ4'PcG(*TBR9dD@pZ1N4PE@mk8&CMG!!!!#i!!!)F!!)!!!!$C'9f)%4TFh4bD@*\reG'P[EMT%C@e[1Q9YBQ9N1P"@Bh3!!!![!!!#(3!#!!!!"'4PGL"%DA0dFQPLGA4\rTEfik4'9YEcTPH(4PEQ3k8&CMG!!!!#i!!!)H!!)!!!!#C'9f)%4TFh4bD@*eG'P\r[EMT%C@e[1R"jFhCb1P"@Bh3!!!!V!!!#(`!#!!!!2Q4PGL"%DA0dFQPLGA4TEfi\rk5@jME(9NC6T39Q0d!!!!-`!!!RS!!J!!!!4NCABJ4'PcG(*TBR9dD@pZ1NPZBfa\reC'8k6R9YCA*TBcT39Q0d!!!!*`!!!L!!!J!!!!0NCABJ4'PcG(*TBR9dD@pZ1Ne\rKBcT39Q0d!!!!,3!!!L%!!J!!!!*NCABJ4'PcG(*TBR9dD@pZ1NeKBcT#G@PXC$T\r39Q0d!!!!,!!!!LJ!!J!!!!*NCABJ4'PcG(*TBR9dD@pZ1NeKBcT%C@e[1P"@Bh3\r!!!!b!!!#+3!#!!!!!Q4PGL"%DA0dFQPLGA4TEfik6@&M1N4PE@mkC@eLC@3k8&C\rMG!!!!$B!!!)U!!)!!!!$C'9f)%4TFh4bD@*eG'P[EMT0B@-k4'9YEcTTER4PFR0\rXDA!k8&CMG!!!!#m!!!)V!!)!!!!(C'9f)%4TFh4bD@*eG'P[EMT0B@-k5@jME(9\rNC6T39Q0d!!!!,J!!!L`!!J!!!!eNCABJ4'PcG(*TBR9dD@pZ1NeKBcTYGf9bDh-\rk8&CMG!!!!#X!!!)Y!!)!!!!"C'9f)%4TFh4bD@*eG'P[EMT0Ef4eE'9c1P"@Bh3\r!!!!T!!!#,J!#!!!!!f4PGL"%DA0dFQPLGA4TEfik9'p[E(-k8&CMG!!!!#i!!!)\r[!!)!!!!#C'9f)%4TFh4bD@*eG'P[EMT8EfpXFcTLCf9Z1P"@Bh3!!!!c!!!#-!!\r#!!!!$f4PGL"%DA0dFQPLGA4TEfik9'p[E(-kBQGPEMTLCf9Z1P"@Bh3!!!!`!!!\r#-3!#!!!!$Q4PGL"%DA0dFQPLGA4TEfik9'p[E(-kCR*PCATP1P"@Bh3!!!!c!!!\r#-J!#!!!!#'4PGL"%DA0dFQPLGA4TEfik9'p[E(-kE@pNG@aKG'pb1P"@Bh3!!!!\rp!!!#-`!#!!!!&Q4PGL"%DA0dFQPLGA4TEfik9'p[E(-kE@pNG@aKG'pb1P4PEA"\rXBA4PFcT&EQ4%!!!!$[q3"!!!3N469!!!!$S!!!!%!!!(9'&bCf9dFf3!!$S'bCL\r`"XQBX2r$5'`'bE6F"[4%AJ%"!*!+3N4cG!!!!&!!!!+I!!%,4R9XE#"8BA*RCA3\r[D!FpED!'qP-f!!k"MJ!!!!-!N!a39Q0d"`%!N!S"!41)"!!!!%*%G'3!!!8%!!!\r#S!!#!*!Li!#3"e"@Bh396@&M8(PdD'pZ-M&L-QCeE'`ZD(&i!*$r!*!,8&CMG!#\r3r`#3)e"@Bh3!N2m!!!"39Q0d!*$r!'4TE@GNC(0V!!%!!EEQX1@fjV$P!!!!!J!\r"!*!%"N4TFfXJAJ#3(!3!!!!$3!!46@&M8(PdD'pZ-M&L-QCeE'`!N"j#4("M!!!\r$(!!!!U%!!J#3r`#3r`#3r`#3%8*%Fh3!!!"3!!!#SJ!"%N&MG'PfC5"'G@aX)&4\rKFQGPG2T60J!1JBi!!!!$!*!-8&CMG!J"!*!,!41)"!!!!%*%G'3!!!8%!!!#S`!\r#!*!Li!#3"e"@Bh3A6@&M8(PdD'pZ-M&L-Q&MG'PfC5jSFAJ!N2m!N!P39Q0d!*$\rr!*!M8&CMG!#3r`!!!&"@Bh3!N2m!C'PYCf4NFfX!!3!"YZD`plEQX2F!!!!#!!%\r!N!3'4'PcDb"H!*!F"!!!!!0!!"00B@03HA4SEfib-@)bB@0dDACP!*!F3N4`B`!\r!!a`!!!+N!!)!N2m!N2m!N2m!N"&&EQ4%!!!!$[q3"!!!39*$6!!!!$VrN!3!!!e\r"FQ0SDACP)%aTEQYcc,!'E-b`"YAbQ!!akfS'E3Xm!3%!N!T&EQ4%!!!!$[q3"!!\r!8N4043!!!$S!!!!(!!!08Q9KC#"0C5"'D@aPFfpeFQ0P)&"K!*!,!3#3#N9ZC%3\r!!!!1rj!%!!"-580&!!!!1J!!!!J!!"*-D@0PER0P)%&RFQ9PE@9ZG(-J8'%!N!X\r"!*!+4@jN4!!!!!lrN!3!!&*68N-!!!!k!!!!#3!!$e*PFfpeFQ0PFb"'D@aPFfj\rdFb"3B3#3#J%"!*!+4@jN4!!!!!lrN!3!!%*#8N-!!!!k!!!!#J!!$d*TE'aLEf&\rbC#"'D@aPFfjdFb"3B3#3#J%"!*!+4@jN4!!!!!lrN!3!!&0)6%)!!!!k!!!#H!!\r!%&0SBA*PC#"-D@*bBA*TCA2"&[i!,FdH"ce#d!Fi0*!!!3%!N!T&EQ4%!!!!$[q\r3"!!!58j%6J!#"N4TFfXJ-3!!!!3!!!!$3!!46@&M8(PdD'pZ-M&L-QCeE'`'4'P\rcDb"H!!!!"!!!!!0!!"&0B@03HA4SEfib-@)bCR9XE%C-8%lrre*PFfpeFQ0P)'p\rQ)%&bBfKTGQ8qG'&XE'9b1NPZFh4KE'a'BA4"ERPhBANk5@jcG'&XE%CKG%&ZHAG\rKH5"BBfpN!*#q3d&-6!#3HB!!N!3"!3!!!!%)!#!'!58"b3%"!*!%%NPZFh4KE'a\rPFL"-EfFJ4QPXC3#3b3j*ER0dB@aXCA)J4'&dB3#3%`%!!3%!!*h$!!!"!!!"rrd\r!!Ilp!!!B`3!!+P&19[r`51FF"#JZ!!JU,J!-5(J!"#m%5'lrm#*Y%&"jG'K[EL!\ra,M8Z-LjfBh4TG'8J-bifFf9bFf9YBQ8#!&C*8c&@59-a)3!!E!!"!*!5Y"2SF`#\r'Qkd!!!N@rr"J)NKi!qK`R0#%,`")E[r`)QhM#L"C6T!!+Qlrl#!Zrr"5J0D!,`4\rKrj!%!%U!CaC+K'`+F!'kJ'm-8S0J#(!"ZS"Z!P1$)!0-h`!i6Pj1G!!)L@aPBA"\rIC'&jF`!!+P&19[r`,`d[,J!-)'i!##m35'lrm#*Yi`SJ@8k3!#TZrq`!!!&5!*!\r%J!J!N!83!"!!N!P)!!!!5!#3"33!!3!%!*!'!4)!N!N#!*!&%!!3!*!&!J#3"4!\r!%!#3"$!!r-$rm2rirrMrq2rirrMrq2rirrKrq"rm"ri"rJ"m-!$-`,-`M!L$#)$\r)J#L!1)!iJ$M!1(!i($`(2J(q!(`!!$NX!!!!"J!!rj!'!!(-N!6rr`!#QC!%rrm\r!!fD3"-c-!!4%N!B!"5+3"J!2!*!(r`#3"[3Lr`$r!!!!m83Lrb(r!!$a%83L)K,\r`!2%4%83L)[!!m4%4%83Lm!$a%C!%m[!!m4%4%4,cm!$a%4%4%[2`!2%4%4%5mr!\r!mb%4%4,cm!!2mb%4%[2`!!!2mb%5mr8!!!!2mb,cp9!!!!!2mr2e8!#3"!rr93!\r!!!'+!*!%J!J!N!83!"!!N!P)!!!!5!#3"33!!3!%!*!'!4)!N!N#!*!&%!!3!*!\r&!J#3"4!!%!#3"!F!2m$r`2r!rr$rr2rmrrcrr2rmrrarrRrrIrm$rJ"m"`!i`1p\r![m#1m)1-Jq6rp2a8qP6i9(e@IPGre`2H!(`!!%!Y!!!!$3!!rj!'!!(-N!6rr`!\r#CT!%c-`!!`#3"&99!!6GN!B!"EZ3"J!'UT!'!!H)N!B!#(H3"J!*9C!'!!T%N!B\r!#b+3"J!-%C!'!!m!N!J-r`#3"Fc'9mN!!!$lTmrmE`!!!2ElV+Z2!!!!p%ElTlr\r2!!$d4%ElTfIr!24%42MlTR`!rj!&qh`!rb)[%4pDI!$r)r(a(hTm!2mLm4%IHR`\r!$b-[(apkI*!!$b)bm4pkI,N2rj!%HRbl!!!!q2Tkrl!!N!32rmX!!!!"3J#3")!\r)!*!&%!!3!*!*5!!!!%J!N!8%!!%!"!#3"J%5!*!*!J#3"4!!%!#3"3)!N!83!"!\r!N!4rrRrq2r`rr"ri(rJ2m!r`"q!(i!2!!m!"J!'!!*!%IrjrrMrm2r`Iq"TB#"!\r--!3J"#!#3!*!!B!"J!#3"3%MS`!!!!3!!2q3"J!"c*!%rrm!!QD3"-c-!!-cN!4\rQCJ!%-c-!!*QC!L+3"L!#4*!'-!!N4*!%3`!!*%53"%-!!!*%N!3`!!!#)%!8%c!\r!!!!K!3%$!*!%)K!3-`#3"!)"!6!!N!3#%"!`!*!&)4-!N!BK!`#3"J)`!*!'!M!\r!N"8"BJ#3")!)!*!&%!!3!*!*5!!!!%J!N!8%!!%!"!#3"J%5!*!*!J#3"4!!%!#\r3"3)!N!83!"!!N!3`!2c!rr$rq2rirrMrq2rirrMrq2riIrJ2r!(q$ri1I$!!c-#\rcm)ciJcL!b*mS[lLlZ)1iacKq1!im!6i2rJjm!!"#J!!!!!J!!2q3"J!"c*!%rrm\r!!TQ3"2rr!!0QN!6-c!!%-j!%CQB!"GhG!*!&"N53"J!()T!'!!m!N!Ir!*!'pL,\rr!2m!!!$aCL,r42m!!2%4CL*%42!!m4%4CL*%m!$a%4%4CL,`!2%99984m[!!m99\r999,cm!$a99&98[2`!2%4%995mr!!mb%994,cm!!2me94%[2`!!!"99%5mrF!!!!\r"%b,cph!!!&9Imr2hF!!!99!2rhF!!!!"FJ#3")!)!*!&%!!3!*!*5!!!!%J!N!8\r%!!%!"!#3"J%5!*!*!J#3"4!!%!#3"3)!N!83!"!!N!BIJ$r!Im"ri(rJIq"ri$r\r`(rJ!r!"q!$i!(J!-!*!%(`!JJ%#3#L$J(l!!q!"m!$B!(!!)!*!%R$N!!!!+!!$\rrN!B!!Irrc-crr`!#c*!%rrm!!jQCc-crr`!%QC!%rrm!"CQC-j!%!!CQN!6-c!!\r(Zj!'!!L)N!B!#AH3"J!2!*!2$rrrN!!!N!6r-NEj!!!!$r-!-dm!!!!234%L6i!\r!!!ma%L*2J!!!$d)L)dq!!!!23c)dri!!!!$r4%rrq!!!!!rrrrIrJ!#3"IpIq!#\r3"3reri!!N!ArIr!!N!82ri!!N!Ei!*!-qJ#3")!%!*!&%!!3!*!*5!!!!%J!N!8\r#!!%!!J#3"p)!N!N#!*!&%!!3!*!&!J#3"4!!%!#3$Rrqrj!)Iri!N"4rrS!"J!'\r`!B!"Iri!N!``a`!!!!-!!2q3"J!"`!$!!-!!!!*!!%!!3!!!!`#3'Mrrrrc9999\rAe9999pj999I9999A2rrrr!#3&J&D!*!%J!J!N!83!"!!N!P)!!!!5!#3"33!!3!\r%!*!'!4)!N!N#!*!&%!!3!*!&!J#3"4!!%!#3"$!!r-$rm2rirrMrq2rirrMrq2r\rirrKrq(rmIri#rJ"m-!$-`,-`M!L$#)$)JLMrq2aiqRMiH(eiIRarrJ,q!(`!!#9\rB!!!!"`!!rj!'!!(-N!6rr`!#QC!%rrm!!fD3"-c-!!3!N!4993!&4*!'!!BLN!B\r!$`#3"rm!N!Ee)[m!r`!!!2&9)[mKr`!!m4&9)L)5m!$a%4&9)L,`!2%4%4&9)[!\r!m4%4mK(bm!$rN!Acm!$r-cm4(r2`!2mdmI%Imr!!rc2a%4rcm!!20$mI(r2`!!m\rc3r%ImrB!$rq3"22fB!!#)[,cmrCJ!*!%$rpQ!!!!!@)!N!5!#!#3"4!!%!#3#8J\r!!!")!*!&"!!"!!3!N!B"%J#3#3)!N!83!"!!N!8#!*!&%!!3!*!%-!$m`2r`rrM\rrq2rirrMrq2rirrMrq$riIrarrMrq!(``!-c!Xc#-#)-)J-L!+,ii`6M"Z1#i),K\r"[%%q2ri!I!!!++!!!!!)!!$rN!B!!Fb3"2rr!!+CN!6rr`!$CT!%c-`!"0f3"J!\r&UT!'!!C%N!B!"b+3"J!2!*!(r`#3"[BLr`$r!!!!m@BLrb(r!!$a%@BL)K,`!2%\r4%@BL)[!!m4%4%@BLm!$a%C!%m[!!mIrrmK(cm!$r!!"2)I2`!2m%4&mbmr!!rr"\r%!2,cm!!!m%4&m[2`!!m%4&mbmrF!$d99Ab(cph!!rrrcmr2hF!#3"!rrG`!!!!&\rU!*!%J!J!N!83!"!!N!P)!!!!5!#3"33!!3!%!*!'!4)!N!N#!*!&%!!3!*!&!J#\r3"4!!%!#3"$!!r-$rm2rirrMrq2rirrMrq2rirrMrq2rm"ri"rJ"m-!$-`,-`M!L\r$#)$)J#L!12riK(LhH)airr`(2J(q!(`!!#Hd!!!!#3!!rj!'!!(-N!6rr`!#QC!\r%rrm!!fD3"-c-!!6GN!B!"AH3"J!'9C!'!!G%N!B!##+3"J!2!*!(r`#3"[FLr`$\rr!!!!mAFLrb(r!!$a%AFL)K,`!2%4%AFL)[!!m4%4%AFLm!$a%C!%m[!!m4%4%4,\rcm!"9N!4@mr!!8!3'"%rcm!"3CJpQ6r2`!&4%rd42mr!!Erq3"22i!!!!$r-LmrL\r!!!!!$r2cq)!!N!32riJ!!!!"DJ#3")!)!*!&%!!3!*!*5!!!!%J!N!8%!!%!"!#\r3"J%5!*!*!J#3"4!!%!#3"3)!N!83!"!!N!3`!2c!rr$rq2rirrMrq2rirrMrq2r\riIrKrr(rqIri!I$!!c-#c-)`)J`L!b)!SrrM)10fib$K)1&@m5$jrrJ"m!!!TM`!\r!!!N!!2q3"J!"c*!%rrm!!TQ3"2rr!!0QN!6-c!!%lT!'!!AGN!B!"VZ3"J!(4*!\r'!!JLN!B!$`#3"rm!N!Eh)[m!r`!!!2&h)[mKr`!!m4&h)L)5m!$a%4&h)L,`!2%\r4%4&h)[!!m4'3"2,`!2GhN!4cm!$h429%4(2`!2GIIfrfFr!!pdAe999cm!!(42!\r!!(2`!!GI$frfFrJ!"dAe494cq)!(Gj!%FrL!!*!%$rq)!!!!!QS!N!5!%!#3"4!\r!%!#3#8J!!!")!*!&#!!"!!J!N!B"NJ#3#3)!N!83!"!!N!8#!*!&%!!3!*!%-!$\rm`2r`rrMrq2rirrMrq2rirrMrq(ri2r`rrK[q!(``!-c!Xc#-#)-)J-L!+)BiM$L\rr1--iCMJr2$mq'ri!I!!!)-!!!!!C!!$rN!B!![q3"*QC!!Vrrmc--c-!%2rrQCN\rc-`!ArrpQCJ!!!#V-N!6rr`!lc-aQCJ!!!&5CN!6rr`"HQCPQCM-c!(pQN!6-c!#\r2CQB!N!@M-c0QCXc-!-i!!$-cQCN!eqlZ!*!&fEZl!*!&fiL)!*!&j!!!UUS!!!$\rP!!#)L!!!!1B!!(Gh!!!!j`!!998!!!$Z!*!%UUS!l`#3")L)!2AZN!B!r%53"J$\rp)T!'!2m!N!Mrr`#3$2rm9&6rr`!!rrm!N!Er+[cm9&6rre3Urrm!N!6r+LSUr2a\r8N!3U92m!!!$r+T!&r2a8N!6r!!!!rbU3"rcm9&6r!!!!rbU3#Ip8r`!!!2mUN!6\rNjbSU92prr`!!!2mU+LVNje3U+P6rIrm!!!$r+ZANjHAQjbT8rhrr!!!!rr`+!JS\r3ARmU92prr`#3"2ml#KFl1e3U92prr`#3"GRAepREMbT8rhrrr3#3"1kMlXkMlP4\r8rhrrrId!N!6[c[A[rrprrhrrrId!N!Vrrrrpr3#3"!&#!*!%J!J!N!83!"!!N!P\r)!!!!5!#3"33!!3!%!*!'!4)!N!N#!*!&%!!3!*!&!J#3"4!!%!#3"$!!r-$rm2r\rirrMrq2rirrMrq2rirrKrq"rm"ri"rJ"m-!$-`,-`M!L$#)$)J#L!+)!SJ#L!+'!\rS'#`',J'Z!(`!!$aU!!!!"!!!rj!'!!T@!#bG"53!$B!!J!#!!!!13!"!!%!!!!m\r!N!Ir!*!'rYhr!2m!!!$plYhrhIm!!2hGlYhGhI!!rGhGlYhGm!$phGhGlYh`!2h\rGN!6pm!$phC!%rI!!rGf3"2h`!2hGN!6pm!$phC!%rI!!$rhGhGhpm!!!$rhGhIh\rk!!!!$rhGrIUJ!!!!$rhpqU!!N!32rkS!!!!"BJ#3")!)!*!&%!!3!*!*5!!!!%J\r!N!8%!!%!"!#3"J%5!*!*!J#3"4!!%!#3"3)!N!83!"!!N!3`!2c!rr$rq2rirrM\rrq2rirrMrq2riIrJrr"rq$[i!I$!!c-#c-)`)J`L!b)!SJ$L11*'ij,KNZ#5m%Ei\r1rJ"m!!!`*`!!!!J!!2q3"J!"c*!%rrm!!TQ3"2rr!!0QN!6-c!!%hC!'!!@lN!B\r!"N53"J!()T!'!!m!N!Ir!*!'pL,r!2m!!!$aCL,r)Im!!2%4CL)L%[!!m4%4CL)\rLm!$a%4%4CL,`!2%4N!6bm!$a%4%4%[2`!2%4rr%5mr!!m4p!6c,cm!$cp!m&m[2\r`!!r`$`$bmr!!!232"I,cp`!!$d"I-[2hF!!!rr$cmrG`!*!%$rph!!!!!9)!N!5\r!#!#3"4!!%!#3#8J!!!")!*!&"!!"!!3!N!B"%J#3#3)!N!83!"!!N!8#!*!&%!!\r3!*!%-!$m`2r`rrMrq2rirrMrq2rirrMrq(ri(r`(rJ(q!(``!-c!Xc#-#)-)J-L\r!+)!iJ$L!1-!iF$JF2!Fq!Ii!I!!!1%i!!!!'!!$rN!B!!Fb3"2rr!!+CN!6rr`!\r$CT!%c-`!"%53"J!&)T!'!!m!N!Ir!*!'p#,r!2m!!!$a4#,r)Im!!2%44#)L%[!\r!m4%44#)Lm!$a%4%44#,`!2%4N!6bm!$a%4%4%[2`!2%4%4%5mr!!m4%4%4,cm!$\rc)4%4%[2`!!rc)4%5mr!!!!rc)4,cp3!!!!rc)[2e8!!!!!rcmr93!*!%$rp9!!!\r!!A)!N!5!#!#3"4!!%!#3#8J!!!")!*!&"!!"!!3!N!B"%J#3#3)!N!83!"!!N!8\r#!*!&%!!3!*!%-!$m`2r`rrMrq2rirrMrq2rirrMrq2ri2r`rrKrq(r``!-c!Xc#\r-#2-)L-Lm++)iVcLTZ+Lik,Jrr$"q(riIr!!!-[X!!!!+!!$rN!B!!Fb3"2rr!!,\r-N!B!!jQ3"2rr!!4QN!6-c!!&lT!'!!DUN!B!"e@3"J!)4*!'!!NLN!B!$`#3"rm\r!N!Ei-rm!r`!!!2')-rmar`!!m4')-c-6m!$rrc')-c2`!2CQma')-r!!p[rr-4(\rcm!$fmL,c%I6`!2Ebrrmap2!!p[,eAr2dm!$fm[99mr6`!2rbp9Acp2!!!2q3"26\rj!!$rCQC[p2Q3!!!2GhGrp2Q3!!!2rj!%Q3!!!!&D!*!%J!J!N!83!"!!N!P)!!!\r!5!#3"33!!3!%!*!'!4)!N!N#!*!&%!!3!*!&!J#3"4!!%!#3"$!!r-$rm2rirrM\rrq2rirrMrq2rirrKrq(rmjri"rJ"m-!$-`,-`M!L$#)$)J#L$1)FiLcMI1(XiIlc\rRrJ(q!(`!!$3U!!!!"`!!rj!'!!(-N!6rr`!#QC!%rrm!!fD3"-c-!!3c-`!!QCN\r!"853"J!')T!'!!m!N!Ir!*!'p5,r!2m!!!$a95,r)Im!!2%495)L%[!!m4%495)\rLm!$a%4%495,`!2%4N!6bm!$a%4&$%[2`!2%4&%-5mr!!m4&"3a,cm!$c*%4$%[2\r`!!p%-8-5mr!!!d0M3c,cpJ"%3!4%3r2fB!!!!!rcmrCJ!*!%$rpQ!!!!!@)!N!5\r!#!#3"4!!%!#3#8J!!!")!*!&"!!"!!3!N!B"%J#3#3)!N!83!"!!N!8#!*!&%!!\r3!*!%-!$m`2r`rrMrq2rirrMrq2rirrMrq(ri2r`IrJlq!(``!-c!Xc#-#)-)J-L\r!+)!iMML4Z15iC,JN["'q$[i!I!!!-#F!!!!)!!$rN!B!!Fb3"2rr!!+CN!6rr`!\r$CT!%c-`!"0f3"J!&Zj!'!!C%N!B!"b+3"J!2!*!(r`#3"[BLr`$r!!!!m@BLrb(\rr!!$a%@BL)K,`!2%4%@BL)[!!m4%4%@BLm!$a%C!%m[!!m4%4%4,cm!$a%Ira%[2\r`!2%I3%mbmr!!mr32"I,cm!!2m!m!m[2`!!$d$`AbmrF!!!p!Ac,cph!!!2r`mr2\rhF!#3"!rrG`!!!!&U!*!%J!J!N!83!"!!N!P)!!!!5!#3"33!!3!%!*!'!4)!N!N\r#!*!&%!!3!*!&!J#3"4!!%!#3"$!!r-$rm2rirrMrq2rirrMrq2rirrKrq$rm(ri\r2rJ"m-!$-`,-`M!L$L)$)MkL41+8id6M91&%i*6`42Jrq!(`!!$CZ!!!!#3!!rj!\r'!!(-N!6rr`!#c*!'!!1CN!6rr`!%CT!%c-`!"Gf3"J!'L*!'!!G%N!B!##+3"J!\r2!*!(r`#3"[Fcr`$r!!!!mAFcrc(r!!$a%AFc-a2`!2%4%AGc-r!!m4%4%AFcm!$\ra%IrrmI2`!2%I95mMp2!!mI9AEb2dm!$rAb*[)r6`!2pI9fmMp2!!$bmLEb2dm!!\r!mPG[)r6i!!!2CQmMp2L!!!$rrrIdq)!!N!32rrJ!!!!"BJ#3")!)!*!&%!!3!*!\r*5!!!!%J!N!8%!!%!"!#3"J%5!*!*!J#3"4!!%!#3"3)!N!83!"!!N!3`!2c!rr$\rrq2rirrMrq2rirrMrq2ri2rKrr(rq2ri!I$!!c-#c-)`)J`L!b)!S[MM"1-'ii,J\rJZ%'m36irrJ"m!!!Y&`!!!!J!!2q3"J!"c*!%rrm!!TQ3"2rr!!0QN!6-c!!%hC!\r'!!@)N!B!"N53"J!()T!'!!m!N!Ir!*!'pL,r!2m!!!$aCL,r)Im!!2%4CL)L%[!\r!m4%4CL)Lm!$a%4%4CL,`!2%4N!6bm!$a9994%[2`!29%4%85mr!!p84%44,cm!$\re9%4%8[2`!!"84%45mr!!"84%44,cp`!&4%4&)[2hF!"999$cmrG`!*!%$rph!!!\r!!@)!N!5!#!#3"4!!%!#3#8J!!!")!*!&"!!"!!3!N!B"%J#3#3)!N!83!"!!N!8\r#!*!&%!!3!*!%-!$m`2r`rrMrq2rirrMrq2rirrMrq2rirr`(rJ(q!(``!-c!Xc#\r-#)-)J-L!+)!irrL%H,GiM(Mrr!Fq!Ii!I!!!+jS!!!!)!!$rN!B!!Fb3"2rr!!+\rCN!6rr`!$CT!%c-`!"0f3"J!&L*!'!!C%N!B!"b+3"J!2!*!(r`#3"[BLr`$r!!!\r!m@BLrb(r!!$a%@BL)K,`!2%4%@BL)[!!m4%4%@BLm!$a%C!%m[!!m4%4%4,cm!"\r9N!Acm!"84%9%4I2`!&49499&mr!!9%494%Acm!"9N!Acp`!!!!rc)[2hF!!!!!r\rcmrG`!*!%$rph!!!!!@)!N!5!#!#3"4!!%!#3#8J!!!")!*!&"!!"!!3!N!B"%J#\r3#3)!N!83!"!!N!8#!*!&%!!3!*!%'!"qB(riIrarr(rmIrarr(rmIrarr$rm2ri\rrr`&r!$iB!'CJ@CK'"%'%3'4"&(rmIMap2(`m2V`r2Mrr!Am!2J!!3eB!!!!)!!$\rrN!B!!Fb3"2rr!!+CN!6rr`!$CT!%c-`!"0f3"J!&L*!'!!C%N!B!"b+3"J!2!*!\r($r!!N!82BLr`$r!!!!m@BLrb(r!!$a%@BL)K,`!2%4%@BL)[!!m4%4%@BLm!$a%\r4&4%I,`!29C!%Acm!$e4%9%4I2`!29&9&4&mr!!p8484%Acm!!&53"&mr!!"8489\r%Acp`!&@3"&mrG`!!!!822cph!*!&rrG`!!!%*Q!+!!"*6&K$%jF!!%lk!!41G8j\r@rrT)ja!J*'i!#$emrrrrrR$r,8$rqJa5!!4QG&922bS!)#mU!!)I+J!'5'lrrNK\rZrrT1ZJ*m-"mf!%T$Cd*96cmU!#![2'CZC(-I2!!"5'lrrNKZrrT1ZJ*B-"mf!%T\r$Caj96cmU!#![2'9iG'j#*dKZrrj)E[rk6VS#0M!I0J!eE[rq!#!PE[rk!#)e3`!\rH60m%#%jH,Tp1GB4YB@PZ!!!!6PB!!#!m!!#SRkG',`JJ2!!!S+fM4V(IC`iJ,J!\r-SDdLEJ!))SKJ*N(k!$B`21T4)Li!$,+BC`C+Q'F5B2C$qJ!Jdp"1d5*Z!!JLJ%*\r!28!!%%jH)&p3Mdl3-$cU8Q$ZGQ9bF`!!!'"YB@0S!!!!C(0jFhB!!!#)F(*[B`!\r!!**QF(8J!!!!RR&N)#!!!!$SDf*N)!!!!4TKG'aV!!!"3QeYG5!!!!&NFQ&Y)!!\r!!BKXFQ&Y!!!"L!#3#(!"B))LH!+ZF!3-D3"e!!KR%JaT!RB!#'B%8N"J"K!i$,0\rFJ'!!rf"`!$!i!9TJ!2p@F!!31!%[8N"J!2p+$$J!"!%[CcJ)1!!%#b*R0#"2mS!\r!!2-R-"FZ5!a!(aKR&Ja!2aKR%!a!2cKR$Ja!(cKR#(!!B!j`!@!+F!*J"R!$B!*\r`!'!!r`!-H$rr!SjZ($!mU*qR4L3))$`!!+X$TdBJ2!!!!3#dL'B'B!T`!'!')$`\r!!!)!B!$qcK!i!Kj"qJ!@)NJ5''F!rY+b!'EfNFNJ#'!!rV)$%`X#!3B("!8)#3"\r`!%Si!T&V&K)i!IX#!3!2$!%!!@B))(J#h"!S!!GJ!2k%$$J!!J%[E4C`!"!i$,%\r-!!!"C``-!!!$E3463'!#F!"J!2jJ-$bSRkG'*!JJ2!!!U)qR4L!i!3LdL'F+@Bm\rr2!!@U)mJ(f!!rMT19[pd51FF!#JZ!")k,J!@3LlrH&92,caQEfaN5'lrG%kkrG!\r`(fB3)#lrG()"`)&R"Kem!!(rH"!ZrhKR)&922`8[""mZ!"![,J!-,bi!#(!!U#-\r`(ce!!"K1qJ$i$)4YB@0cCd)-K(4PEA"R1Jb%F(*PCQFb$)4PH(4ZCbS-K'0dFQa\rR)Jb%B@eZG@FD$)4cG(*dCa)-K("bER4R#R$128!!'%lk!+j`!#e!rii-4B!!CLa\r96cki#PJ`(ce!rj4#3$e!rjK`!Le!rlC"l[pmF!LLB$J!CRBpE[q`rj*J"$e&rj*\r`"Le!rk""l[ri,8MrR%(Zrha`-+*J1!"`cVK!Ca"+4'C#)#lrqJ+!!!)!!'Bf3N!\rp32qBGJ!Y3rr@,82rV%(ZrhbL"cJ!CL)J,[r@Ca)JEJ!--+lrNL"Z!!JJV[r@B!T\rie@!'5N4Q!RM9-!3p3!!B60m!1%jH)&p2l`!36Y!!!!&5!*!%J!J!N!83!"!!N!P\r)!!!!5!#3"33!!3!%!*!'!4)!N!N#!*!&%!!3!*!&!J#3"4!!%!#3""J!IQ"rq(r\rmIrarr(rmIrarr(rmIr`rr!rq!rm!r`!q'!"QB&QB4J4"K%"N3"4!(%!F3"aJ($J\rF$Ki$R`$r!$i!!"@i!!!!"J!!rj!'!!(-N!6rr`!#QC!%rrm!!fD3"-c-!!4%N!B\r!"5+3"J!2!*!($r!!N!823Lr`$r!!!!m83Lrb(r!!$a%83L)K,`!2%4%83L)[!!m\r4%4%83Lm!$a'3""m[!!m4N!3[2`!2%C!%,cm!$a'3"#mr!!mb%4%4,cm!!2mb%4%\r[2`!!!2mb%5mr8!!!!2mb,cp9!*!%rcmr93#3"Ire8!!!"!*J#J!!58aB3a1-!!"\r1qJ!%6R919[rk51F3)#4Z!!JpI2rrrrj`rbe!rrS-8J!%CP"96cmU!#![+J!#(bS\r!"NKZrrj)E[rk6VS#@$!I0J"+3fFH98mr+J!J,caYB@0c3LG)E[rq5'lrqNkk!MB\r`(cB!0@lrrJ!J*@lrqJ!L08-!(NcI"!K1ALkI6R@%E@&TEJ!!!%j@!!!J2!!!U*q\rR4Lm))$`!!+#YSdDahfF1)#i!$+'Y)Qi!##+)B#C"qJ!f-$cU85)Z!!bbQ'F'5TK\rR%Q$f3rS!)0236Y%LEJ!))S"#3$e!!""1AL"I8)p1d$!mkP*JlRCPFR-!!!"JE@&\rMD!!!!'4cHA0f!!!!L("bEf-!!!#5CR"e)!!!!*jaC#!J!!!!k'YLC#!!!!%DBA4\rXD`!!!8*YEA8J!!!"C(*KE5!!!!')E(*KE3!!!BJ!N!K`!@##)RJ#VR!%$'N!G3!\r)Ca)-D3*f!!KQ"&*!B!B31!bcA)"J!2pJF!!`1!&DB!$r9R!!%$J",e*!B!$r5J`\ri!!3",fFi#$J!"!XLCc3J6r+!!!$c*c!A,NJ-3"mBCaB-3$mBCa!-3$miC`i-3"m\riC`K`!'!1F!&J#R!#B!C`!f!#F!"J!2m!$(Jrr`+1EK``2+LITdBN##!m!!#V!kG\r')$`!!!%!Y)KQ"Q!+F!"J"L!m!!!#!'!!rXi31!)H3IS!&L*)%KKR!2l5XJ"QpT(\r*)!KJ!2kb!a-,!J%'"`3&#!N!F!"+1!+4DaB51!(l!J%!$``"!!&Q##"i!Y`3+!!\r(B!$qK!`i!!)",fd@F!!31!ba$!!!!@F-$!!!!fd%8d"J!R!!B!$qB$!mU*qR4L3\r))$`!!+L2TdBJ1!%)Y)KR#PQ22c`!&UL2)"pJ!2ik6PErG%MR(!!S,J!51Li!&N)\rZrhK96bmmCQpXC%KZrh41Z[h3-"pQ%#!Zrh4b!F#"C`BGI!!"rhJ3,[piCb"96cm\r&,`3I,J!3,bi!$#mZ!!K`!+JM-"mp3!!B6[S!q!b%E@&MFfG#$)4dC@e`CcS-K("\rbC@CR-Jb%CAKdEQFU$)4MG(*XCb)-K'&YER9R'Jb%Fh4bG'F5$)4`FQjdC`T`cMe\r!!"K1qJ#ZF!!Y32q1$%@!!'BX98mqZ!TB-"mp32q83N!p32qBF!)Y32qf3HlrI(!\r)SQ!i!'Cf2@lrX2q5B!3p4Iq5F!BY32qJ3Hlrq#e)rja"l[pmF$#LB$J!F-ki3'F\r35N4Q3L!ZrrS#J!!#!!"Q0N*!28$rQ(B!,82reLe$rka"l[pmSJFi!'BL)#lreQF\r5)'i!$$#Zrj)JEJ!))+lreQ!+H09J"NT%CJ*ie6!%28!!'%cI!$K1AL"I6qm!%%l\r3!!!"8J#3")!)!*!&%!!3!*!*5!!!!%J!N!8%!!%!"!#3"J%5!*!*!J#3"4!!%!#\r3"3)!N!83!"!!N!3B!(jJIrKrr(rmIrarr(rmIrarr(rm2r`2rJ2r!2m!2KJ!CQ"\rCQ%B%3B4!C%!83"a!(%!FB"`i(!iH!jm!r`!q!!!9Z!!!!!B!!2q3"J!"c*!%rrm\r!!TQ3"2rr!!0QN!6-c!!%4*!'!!8LN!B!$`#3"`r`!*!&$d)[m!r`!!!2&%)[mKr\r`!!m4&%)L)5m!$a%4&%)L,`!2%4%4&%)[!!m4N!3I,`!2%C!%,cm!$a'3"#mr!!m\r4N!3[2`!2-K%4%5mr!!$r-K%4,cm!!!$r-K%[2e!!!!$r-Lmr93#3"2mr2e8!N!A\rrp9!!!!D%B!S!!%P-@%-6L3!!6[S!"%je6PErqNMR'#!NEJ!)1#S!)$9mrrm!)($\rr*8!!)Ja5!!4QEJbU!!!)!!!3E$Be4!!J,c`!!J!!,caKFh"Q,ca*6NP8,caKFf0\rb,caPH(4Z,caPH(4Z,`T1ZJ"+0J"2l`!FB#T96cm%,bS!!KmU!!C)E[rq5'lrqR!\r!U#-`(cB!CJ`eE[rq!#!PE[rk!#)e3`!H60m%'%jH,Tp1GB4YB@PZ!!!!6PErh%M\rR'#!NEJ!)1#S!)$9mrrm!)($r*8!!)P922`3[,J!-(bS!"NKZrq*)E[rHF!#S)c!\rI0J"Q!!#b)#i!%,#Z!!aR(P922`3[,J!3(bS!"NKZrpa)E[rNF!#S)c!I0J"J$$e\rZrq,rh#eZrplrj%T$CRJpE[rFrrSYE[rNrr`pEJ!Jrr3pEJ!LrrBGDJ!'rrJYEJ!\r8rqJYEJ!Brq`YEJ!Frr"96cmZrq)[,[rH3UFr2!!"5(S!8%KZrqK1ZJ*U-"mf!'B\rQ)#lrr,#Zrq4Q%(E90Acrr`!JF2mP3!!LB!`eE[rk!#!PE[rm!#)`!dcI""K1ANj\reM%ej4QPZC%C[E'4PFJ!!!%j@rT4)ja``+#i!%#4Z!!LAbhB!H[mJ4#!S!#5`NQB\r!!6)J4#!S!##`UJ!%CJ!"*%)RUCY96b"%2bJ!&L"%,bJ!C#"%,bJ!%Kmm!!'S'M!\rI1J!I2!!"UCY96kQ[-"mf!'B!!0i-UP088L-!#'Bd3LHTQeP2,ca69&)M2bS!$+J\rI)&mQ5"mm!!'TQb!,C`!!ZNKZrT3r+J!-2bS!$Nkk!qCJ0&P2,bS!#$mU!!bS(b"\rI*NK96kQ[-"mf!#!,Ca3J8a!35)"53%M!)&0$l[k8SLjJ"(E1B'T"l[k8,8MrTMe\rU!",rULeU!"6ra%*Zrl""l[q8F!QLB$B!CJieE[qU!")PE[r%!"4J1!a$riKR"Ja\r$rp9Q)%SU!""R'N(Zrj4`"U*J0J"Q$M9ZrkS!%L9Zrm3!&'!-0Acrr`!5F2mP3!!\r8)'i!$"#m!!%-4IrrC`3r"DQD60m-1%jH)&p2l`!-6Y#069P*9%95394&8&*23`!\r!6PB!!%MR'#!S,J!)*'i!$%TU!,4R#M!U!,D`DJ#dC(*f!9*U!,Be3`!J*83!0%(\rU!!4`#D*J08!!X%TU!,"Q,%KU!!4)DJ#b,bS!Z#"56T!!%#S!)J*!!""R%NSU!,*\rQ$#m+,bS!0%kkrjK36e*$5QS!X'B'5LS!XQHX$'Vre3#`C`J-DZai!,"Q"%*U!,"\r6DJ#f60m%'%jH6R@95A4PFQ&dC84TFQ9MG'pbH8aPGQ9X!!"19[mm,`0+VJ!-C`!\r!MP922bi!'LmZ!"B[,J!55'lr3%KZrce1ZJ(5-"mf!'CZ$#i!!ImpCQ"96bmZ!")\rr,J!D5'lr2Nkk!@J`(cB!CNiYEJ!-rd4"l[p%3HJ!F#e)reSpE[mqrej#,[qd3Ql\rrp%)ZrrBpEJ!3rrK#E[rk,@i!#2rm5'lr4#mZrd"1Z[l#0Llrp&"2B!CfL'!#GXi\rr3`$N*Kp1AL"I6qm!&%l3N!"*9%95394&4%P548086e*C!!!!6PEr!%MR%$!QEJ!\r1*'i!##!+CcieEJ!-!"BJ#fB+3US!%N*U!"aJ(L",3qlr!(!!%"053%M!SLj"l[m\r!*8J!%M9mrrm!(#"+SJFf!%+U!"*J!RE12d-"(NcI$!K1AL"I6qm!#Nl3NdG&9&C\r26&9048P14Np16dj"688!!%j@rq")ja!`*Qi!$#4Z!!JJ#fF%5K0Q&%)Zrq""l[r\rJ*8J!%M9mrrm!('!)*8X!%N*U!"`eEJ!8!"BPEJ!3!$!J5R!*SQ!f!%+U!")r3`"\r#60m-#%jH)&p2l`!16Y#3!%G&9%0"9%P14Np16dj"688!!!"19[q',`096bmZ!!i\rr,J!-5'lrKNkkr[``(cB!CJJJEJ!)-+lrR$p$!*!!*Kp1AL"I6qm!#Nl3N!"%494\r&8Ne*6N9@8N9'6P90!!!!6PErP%MR%$!QEJ!-*'i!#&922bi!'#mZ!"3[,J!35'l\rrP%kkrb!`(cB!CKS3,[qb!N!!%&E!4!!8J'F'*Ulra'!%*Ulrq$p$!**-h``)6Pi\rJAdr[!"*1d)j(494%59*&3e428PP*4!!!!%j@!!"C6bmm8e45)cmZ!!UTS#*Z!!a\r#%5!ICb)J3#"3-"Jb,J!)CaDb3')5F!"63@F'%"M4`'$f%""53+!Z6PiJAe#26Y!\r!!!VT5Qpj)A"PCQC`Gh"M!!!!!EBXZ1X!N!d$!!)!N!6rN!3!N!B*&!!!#43!!!N\r8!!!"`!!%"!$rN!3!N!G%!!!!3!!!!!N!!!VJ!J%%!2q3"!#3$J%d!!!!J!3%"!#\r3#!%!!!!`rj!%!*!%rj!%!*!(!3!!!!X!!!!"!!!!L!!!!*!!!!!",!!!!!%!N"-\r,!*!)!J!!#J)!!"S#!!!U!J!!0`)!!%3#!!"2!J!!A!)!!'S#!!"c!J!!IJ)!!)m\r!!3#3"3-!N!4+#N)!4J%!!%0KFQ*[ENaTBJ"33NK(CA4@5@jQEe0jEQ-!8%*%DA*\r$FQ9KG'96H@jM!%GPG$&5CA0[GA*MC3"(CA4*EQ46G(*TEQF!8f9d8Q9c6'pKC!"\r$E'pcC9*PFdCTE'8!3Qa[BfY0EhCP4'&dB3"5CA0&FR*[FJ"'D@jN4QpXC'9b!&"\r#4f9d3f&d5@jQEe0jEQ-!5%p`C@j5CA0'D@aP!*!9I!J#TT2Krrb3!!%!#*3Krl"\rmIaYiU(m!)$J!rrq`(`!J1!$rrj!!(`!LU"m!!#`!!!4!JJ#)J"m!%#`!#!"!J!"\r)X(m!)$Kr!!!mJ'9i2+"PH$c!BA-mi%P123"KFcNJ!!)j3!!!1)4dEMLPG'iiaQ0\rb11G*9$N)F'C)!!"9B!!!!%J!!$5!R`!#L,m!"MM"!$`ii3!i5!!(BB""!"4mB!F\re3))!&+J"!$b`(`!JJ!%!1*!!(`!LX(m!(S!"!&Ji)3"3I!J$TS2Krra1J!!JI!J\r#TVlKrpb3!!%!#*3Krh!l3`!!1Z3!!$X&!!!lCJ!!1iF!!$ZS!!!lb3!!1qS!!+X\rk!#!i!2rrX"S!)$J!rrq3!"S!)MKj!!!iP`!!L,S!"MM"!&`ii3"B5!!'dB""!"4\rmB!Fe3))!d(`BZ%""JJ!N1(N!!$LB!!#)ZJ!'1-%!9$MK!&")!!DPJ%%!&%J!!"5\rS!3"FX!%!9)!"!&L3!!%!8(aJ"c9!JJ#3!+J"!&5`!3"+J!%!8*!!!3"-Xm%!4,2\rK!%D)'J!'Q!%!5*0K!$L6J3!mNk%!3+KK!&b!J3"B1+!!!$M!!!'!iJ!X13%!1%J\r!!iPJ!!!!I'!(08##!$b!J3"-J!%!8(`%!!"!JJ!F1'$re6J!rrq`'J!J1!$rrj!\r!'J!L5!!!&+J"!%U`'J!JJ!%!6*!!'J!LJ!%!Q$JK!*!!I!J$TVVKrpa1J!!JI!J\r#TT2Krrb6`IriNk(rp*1"rr#3!!%!#*3KrN!lJ`!!1k3!!(br+hL!I!!NJ"m!!(`\r$!%"!JJ()J(`!))!I!!4m!`"!3))"Z$KJ!!")!!@YJ%%!&+Km!"D!R!"NJ,`!%MM\r!!!&)!!@YJ%%!&(aq'hJiB!!"5!!&KB""!"4)!!@YJ%%!&(aJ"c9!JJ&8J(m!#$`\r$V+`S!&)M3))!9$KJ!!")!!9CJ%%!&$aJ8e5SR`!-1'05)dJ!"Bf!33!8I(`EH$K\rJ!!&)!!8eJ%%!&#JF!!""JJ%81'%!T+LI!!bS[`!15!!&HB""!"4)!!"3J(m!#+L\rI!!a)!!90J%%!&(am'hK)!!8TJ%%!&#JF!!""JJ$3J(`!!$L"!+5![!!!L!8!!(`\r&"h3iT3!"5!!&5B""!"4)!!!)5!!!U$J"!+53!!%!5UJI!"+`!3"1J"m!&*!!!3"\rS1!!!!,!"!&3iB3!i5!!&,B""!"4mB!Fe3))!'+J"!%k`(`!5J!%!D*!!(`!85!!\r!B(aJ"c3X!2q)3B)!%(aJ"c3X!2r93))!1)JI!"!S!!!!3B)!,$KK!$K)!!6jJ%%\r!&(aJ"c9!JJ!BU!%!6V!I!"+!!3"SN!!I!"4)!!!81!$rrl!I!")i!2rrN!!I!"3\ri!!!"Q"d!!(r!"c3X!2rr3B)!%(r$mhK)!!6&J%%!&)!"!FJi)3(!I!J$TS2Krrb\r$`IriJk(rp)1"rr"1J!!JI!J#TT2Krrb6`IriNk(rp*!!!3!)P#(rX$ZM!!!lj!!\r!S"m!Y#J!!!""JJ!8S(m!YU!I!,4m!`"!3)!![$[!!!'JI`#f1!-!!E!I!,Dch`!\rJNlm!0$Kr!!4)!!39J%%!&,"r!,#S(`#`,!!!!%##!%!iI`!%1*m!XS#r!,L"R`!\r!5!!%6B""!"5)(`!L9!!'pd'#!"b)(`#b+!!!!%##!"#!I`!dIq6lH%[rreNlhJ!\r"U"m!X#`!!!"!JJ!3L"m!XLJ!!!""J[q)U"m!X#`!rp9"JJ!3U"m!X#`!l(K!JJ!\r-1!!!!,!I!,#JI`#f1!2rrl!I!,D!!3"B1#%!8(`)!kD$iIrmJm(rq)1Krr41J!!\rJI!J#TVpKrqb3!!%!#*3KrZ!lB`!!1i8!!$ZQ!!!la`!!1qJ!!#JH!!""JJ#N1(X\r!!$Lm!!!i`3!m11%!1%J!!IPJ!!!!I'!(08##!)L)!3!i+!!!!8##!(!iI!!!1*X\r!!$LK!$T)!!'4B!!!!(aJ"c9!JJ"JNm%!3$J"!,#3!!%!9UJ"!$U`!3"D1!!!!*J\r"!,!i!!!!X!%!m$J!!!#B!3$bXk%!p$J!!!#`!3$fNq%!q)"K!$`iJ3"!5rrq1DK\rK!2")!!!31'$rL%J!!!JiB2r1J!%"+$JK!5"m#!1QZf(rl%k!!#"m#!+QNq(rr*!\r!!3!)P#(q`(br+hJS(`!!3B)!B,#I!"BS!`!!3))!'$J!!!#3!"m!%MJ!!!#`(`!\rF5!!!+$L"!$L)S`!!1+8!!8J!!KQ!33!81!%!1*!!(`!51!$rrl!I!"arirYi5!!\r#AB""!"3i!!!!N!!I!"*)!!!)1'$rcS!"!8Ji)3&!I!J$TS2Krra1J!!JI!J#TT2\rKrrb3!!%!#*3Krk"mhc0i+!8!!%'#!"#)"3!!+!!!!%##!#!i!!!!Q!%!1$J"!$L\r3!"m!%MJ!rrq`(`!F5!!!%*!![`!51!!!!,!I!"b`I`!@N!#I!$"rirYi5!!"MB"\r"!"3i!!!!N!!I!"+!!3"S1#%!B(`)!kD$iIrm6S!!)(`)!UD6iIrmN!!"!!L8)Ip\r!I,mVH$LK!$K,rrlCI'!(08##!!bS!3"1X"m!!)!"!-Ji)3$!I!J$TS2Krra1J!!\rJI!J#TT2Krrb6`IriN!!"!!L8)Ip31mB!!$[R!!!i`3!i5rrr)AaJ"c9!JJ"!L!%\r!9P3%"[Bi!!!!I)3!8$!%rrpm!#%3Q"m!!)JI!!!S!!!!3B)!%)!"!'L3!"i!!%J\r!!!b!!3#FN!!H!!#!!3#i1#%!X(`)!kD$iIrmJm(rq%k!!##"JJ!JN!""!"5!$!!\r!J%`!"(`*!kC1J!3JJB)!%*!!33!8J!`!!)"-!!4m#31Q6S!%))'#!#L3!%%!&)!\r-!!#!6!!%I!N$TNk!"##"JJ!FN!""!"5!$!!!J%`!"(`*!kC1J!3JJB)!#*!!33!\r8J!`!!)"-!!4m#31Q6S!%))'#!!b3!%%!&)!-!!#!6!!%I!N$TNk!"##"JJ!BN!"\r"!"5!$!!!J%`!"(`*!kC1J!3JJB)!**!!33!8J!`!!)"-!!4m#31Q6S!%))'#!!5\r3!%%!&)!-!!#!6!!%I!N$TNk!"##"JJ!8N!""!"5!$!!!J%`!"(`*!kC1J!3JJB)\r!!*!!33!8J!`!!)"-!!4m#31Q6S!%))!-!!#3!%%!&(`*!kD!6!!%6S!%)%k!!#!\r!N!d[)6J+)J)8"!!!!@)!N!5!#!#3"4!!%!#3#8J!!!")!*!&"!!"!!3!N!B"%J#\r3#3)!N!83!"!!N!8#!*!&%!!3!*!%'!"qB(riIrarr(rmIrarr(rmIrarr$rm$ri\rIr`pr"MiB!'CJ@CK'"%'%3'4'&%NF8paeI'Sm-A`*hKHI$hm'2J!!)ii!!!!)!!$\rrN!B!!Fb3"2rr!!+CN!6rr`!$CT!%c-`!"0f3"J!&UT!'!!C%N!B!"b+3"J!2!*!\r($r!!N!82BLr`$r!!!!m@BLrb(r!!$a%@BL)K,`!2%4%@BL)[!!m4%4%@BLm!$a%\rIm4%@,`!2%I"I%5mr!!mI"I2r,cm!$rpIA`rr2`!2mIA`"2mr!!$r"!p2rcm!!!,\r`Arm[2h!!$arcmLmrG`!!rc-[2cph!!!$-J$rrh!!!!EXB!S!!%P-@%-6LJ!!6[S\r!"%je6PErqNMR'#!NEJ!)1#S!)$9mrrm!)($r*8!!)Ja5!!4Q!!$@$+S!!!J!!""\rXDM9%!#![2!!#!!![2'&cF'B[2%P1593[2'&cBh)[2'9iG'i[2'9iG'i[#Nkk!,!\rf!%r[!"aQ!!#3!#mm!!-!!#mmBA0`CLmm58j*9#mmBA0MFLmmCAKdELmmCAKdELm\r+6VS!I$B!6qm!('"F98mr"#mma(0MFKmU!!C)E[rq5'lrqR!!U#-`(cB!CM`eE[r\rq!#!PE[rk!#)[2!!%!!![2'&cF'B[2%P1593[2'&cBh)[2-4cBh)[2'9iG'i[#Nk\rk!"if!%r[!"`e3`!H60m%'%jH,Tp1GB4YB@PZ!!!!6PErh%MR'#!NEJ!)1#S!)$9\rmrrm!)($r*8!!)P922`3[,J!-(bS!"NKZrq*)E[rHF!#S)c!I0J"Q!!#b)#i!%,#\rZ!!aR(P922`3[,J!3(bS!"NKZrpa)E[rNF!#S)c!I0J"J$$eZrq,rh#eZrplrj%T\r$CRJpE[rFrrSYE[rNrr`pEJ!Jrr3pEJ!LrrBGDJ!'rrJYEJ!8rqJYEJ!Brq`YEJ!\rFrr"96cmZrq)[,[rH3UFr2!!"5(S!8%KZrqK1ZJ*U-"mf!'BQ)#lrr,#Zrq4Q%(E\r90Acrr`!JF2mP3!!LB!`eE[rk!#!PE[rm!#)`!dcI""K1ANjeM%ej4QPZC%C[E'4\rPFJ!!!%j@rT4)ja``+#i!%#4Z!!LAbhB!H[mJ4#!S!#5`NQB!!6)J4#!S!##`UJ!\r%CJ!"*%)RUCY96b"%2bJ!&L"%,bJ!C#"%,bJ!%Kmm!!'S'M!I1J!I2!!"UCY96kQ\r[-"mf!'B!!0i-UP088L-!#'Bd3LHTQeP2,ca69&)M2bS!$+JI)&mQ5"mm!!'TQb!\r,C`!!ZNKZrT3r+J!-2bS!$Nkk!qCJ0&P2,bS!#$mU!!bS(b"I*NK96kQ[-"mf!#!\r,Ca3J8a!35)"53%M!)&0$l[k8SLjJ"(E1B'T"l[k8,8MrTMeU!",rULeU!"6ra%*\rZrl""l[q8F!QLB$B!CJieE[qU!")PE[r%!"4J1!a$riKR"Ja$rp9Q)%SU!""R'N(\rZrj4`"U*J0J"Q$M9ZrkS!%L9Zrm3!&'!-0Acrr`!5F2mP3!!8)'i!$"#m!!%-4Ir\rrC`3r"DQD60m-1%jH)&p2l`!-6Y#069P*9%95394&8&*23`!!6PB!!%MR'#!S,J!\r)*'i!$%TU!,4R#M!U!,D`DJ#dC(*f!9*U!,Be3`!J*83!0%(U!!4`#D*J08!!X%T\rU!,"Q,%KU!!4)DJ#b,bS!Z#"56T!!%#S!)J*!!""R%NSU!,*Q$#m+,bS!0%kkrjK\r36e*$5QS!X'B'5LS!XQHX$'Vre3#`C`J-DZai!,"Q"%*U!,"6DJ#f60m%'%jH6R@\r95A4PFQ&dC84TFQ9MG'pbH8aPGQ9X!!"19[mm,`0+VJ!-C`!!MP922bi!'LmZ!"B\r[,J!55'lr3%KZrce1ZJ(5-"mf!'CZ$#i!!ImpCQ"96bmZ!")r,J!D5'lr2Nkk!@J\r`(cB!CNiYEJ!-rd4"l[p%3HJ!F#e)reSpE[mqrej#,[qd3Qlrp%)ZrrBpEJ!3rrK\r#E[rk,@i!#2rm5'lr4#mZrd"1Z[l#0Llrp&"2B!CfL'!#GXir3`$N*Kp1AL"I6qm\r!&%l3N!"*9%95394&4%P548086e*C!!!!6PEr!%MR%$!QEJ!1*'i!##!+CcieEJ!\r-!"BJ#fB+3US!%N*U!"aJ(L",3qlr!(!!%"053%M!SLj"l[m!*8J!%M9mrrm!(#"\r+SJFf!%+U!"*J!RE12d-"(NcI$!K1AL"I6qm!#Nl3NdG&9&C26&9048P14Np16dj\r"688!!%j@rq")ja!`*Qi!$#4Z!!JJ#fF%5K0Q&%)Zrq""l[rJ*8J!%M9mrrm!('!\r)*8X!%N*U!"`eEJ!8!"BPEJ!3!$!J5R!*SQ!f!%+U!")r3`"#60m-#%jH)&p2l`!\r16Y#3!%G&9%0"9%P14Np16dj"688!!!"19[q',`096bmZ!!ir,J!-5'lrKNkkr[`\r`(cB!CJJJEJ!)-+lrR$p$!*!!*Kp1AL"I6qm!#Nl3N!"%494&8Ne*6N9@8N9'6P9\r0!!!!6PErP%MR%$!QEJ!-*'i!#&922bi!'#mZ!"3[,J!35'lrP%kkrb!`(cB!CKS\r3,[qb!N!!%&E!4!!8J'F'*Ulra'!%*Ulrq$p$!**-h``)6PiJAdr[!"*1d)j(494\r%59*&3e428PP*4!!!!%j@!!"C6bmm8e45)cmZ!!UTS#*Z!!a#%5!ICb)J3#"3-"J\rb,J!)CaDb3')5F!"63@F'%"M4`'$f%""53+!Z6PiJAe#26Y!!!!YT5Qpj)A"PCQC\r`Gh"M!!!!!EBXZ0S!N!d$!!)!N!6rN!3!N!B*Q!!!#CJ!!!QB!!!"`!!%"!$rN!3\r!N!G%!!!!3!!!!!N!!!YJ!J%%!2q3"!#3$J%d!!!!J!3%"!#3#!%!!!!`rj!%!*!\r%rj!%!*!(!3!!!!X!!!!"!!!!L!!!!*!!!!!",!!!!!%!N"-,!*!)!J!!#J)!!"S\r#!!!U!J!!0`)!!%3#!!"2!J!!A!)!!'S#!!"c!J!!IJ)!!)m!!3#3"3-!N!4+#N)\r!4J%!!%0KFQ*[ENaTBJ"33NK(CA4@5@jQEe0jEQ-!8%*%DA*$FQ9KG'96H@jM!%G\rPG$&5CA0[GA*MC3"(CA4*EQ46G(*TEQF!8f9d8Q9c6'pKC!"$E'pcC9*PFdCTE'8\r!3Qa[BfY0EhCP4'&dB3"5CA0&FR*[FJ"'D@jN4QpXC'9b!&"#4f9d3f&d5@jQEe0\rjEQ-!5%p`C@j5CA0'D@aP!*!9I!J#TT2Krrb3!!%!#*3Krl"mIaYiU(m!)$J!rrq\r`(`!J1!$rrj!!(`!LU"m!!#`!!!4!JJ%-J"m!%#`!#!"!J!#-X(m!)$Kr!!!mJ'9\ri2+"PH$c!BA-mi%P123"KFcNJ!!)j3!!!1)4dEMLPG'iiaQ0b11G*9$N)F'C)!!$\rCB!!!!(aJ"c9!JJ#d1(m!!$b!CAJmS'9i2-"KFccJ58ip!'&c15!!!cP!!!!iK(4\rZ1+9dEMM'Bh)ijdP813K`CNJ!!*9J!!!!5!!!G$b!a(1)[`!'1-%!2$MK!$JiK'0\rb5!!(RB""!"4mB!Fe3))!8+J"!$b`(`!JJ!%!1*!!(`!L1(m!!$b!CAJmS-4c2-"\rKFccJ58ip!'&c15!!"$P!!!!iK(4Z1+9MFMM'Bh)ijdP813K`CNJ!!#&J!!!!X(m\r!(S!"!&Ji)3"3I!J$TS2Krra1J!!JI!J#TVlKrpb3!!%!#*3Krh!l3`!!1Z3!!$X\r&!!!lCJ!!1iF!!$ZS!!!lb3!!1qS!!+Xk!#!i!2rrX"S!)$J!rrq3!"S!)MKj!!!\riP`!!L,S!"MM"!&`ii3"B5!!'dB""!"4mB!Fe3))!d(`BZ%""JJ!N1(N!!$LB!!#\r)ZJ!'1-%!9$MK!&")!!DPJ%%!&%J!!"5S!3"FX!%!9)!"!&L3!!%!8(aJ"c9!JJ#\r3!+J"!&5`!3"+J!%!8*!!!3"-Xm%!4,2K!%D)'J!'Q!%!5*0K!$L6J3!mNk%!3+K\rK!&b!J3"B1+!!!$M!!!'!iJ!X13%!1%J!!iPJ!!!!I'!(08##!$b!J3"-J!%!8(`\r%!!"!JJ!F1'$re6J!rrq`'J!J1!$rrj!!'J!L5!!!&+J"!%U`'J!JJ!%!6*!!'J!\rLJ!%!Q$JK!*!!I!J$TVVKrpa1J!!JI!J#TT2Krrb6`IriNk(rp*1"rr#3!!%!#*3\rKrN!lJ`!!1k3!!(br+hL!I!!NJ"m!!(`$!%"!JJ()J(`!))!I!!4m!`"!3))"Z$K\rJ!!")!!@YJ%%!&+Km!"D!R!"NJ,`!%MM!!!&)!!@YJ%%!&(aq'hJiB!!"5!!&KB"\r"!"4)!!@YJ%%!&(aJ"c9!JJ&8J(m!#$`$V+`S!&)M3))!9$KJ!!")!!9CJ%%!&$a\rJ8e5SR`!-1'05)dJ!"Bf!33!8I(`EH$KJ!!&)!!8eJ%%!&#JF!!""JJ%81'%!T+L\rI!!bS[`!15!!&HB""!"4)!!"3J(m!#+LI!!a)!!90J%%!&(am'hK)!!8TJ%%!&#J\rF!!""JJ$3J(`!!$L"!+5![!!!L!8!!(`&"h3iT3!"5!!&5B""!"4)!!!)5!!!U$J\r"!+53!!%!5UJI!"+`!3"1J"m!&*!!!3"S1!!!!,!"!&3iB3!i5!!&,B""!"4mB!F\re3))!'+J"!%k`(`!5J!%!D*!!(`!85!!!B(aJ"c3X!2q)3B)!%(aJ"c3X!2r93))\r!1)JI!"!S!!!!3B)!,$KK!$K)!!6jJ%%!&(aJ"c9!JJ!BU!%!6V!I!"+!!3"SN!!\rI!"4)!!!81!$rrl!I!")i!2rrN!!I!"3i!!!"Q"d!!(r!"c3X!2rr3B)!%(r$mhK\r)!!6&J%%!&)!"!FJi)3(!I!J$TS2Krrb$`IriJk(rp)1"rr"1J!!JI!J#TT2Krrb\r6`IriNk(rp*!!!3!)P#(rX$ZM!!!lj!!!S"m!Y#J!!!""JJ!8S(m!YU!I!,4m!`"\r!3)!![$[!!!'JI`#f1!-!!E!I!,Dch`!JNlm!0$Kr!!4)!!39J%%!&,"r!,#S(`#\r`,!!!!%##!%!iI`!%1*m!XS#r!,L"R`!!5!!%6B""!"5)(`!L9!!'pd'#!"b)(`#\rb+!!!!%##!"#!I`!dIq6lH%[rreNlhJ!"U"m!X#`!!!"!JJ!3L"m!XLJ!!!""J[q\r)U"m!X#`!rp9"JJ!3U"m!X#`!l(K!JJ!-1!!!!,!I!,#JI`#f1!2rrl!I!,D!!3"\rB1#%!8(`)!kD$iIrmJm(rq)1Krr41J!!JI!J#TVpKrqb3!!%!#*3KrZ!lB`!!1i8\r!!$ZQ!!!la`!!1qJ!!#JH!!""JJ#N1(X!!$Lm!!!i`3!m11%!1%J!!IPJ!!!!I'!\r(08##!)L)!3!i+!!!!8##!(!iI!!!1*X!!$LK!$T)!!'4B!!!!(aJ"c9!JJ"JNm%\r!3$J"!,#3!!%!9UJ"!$U`!3"D1!!!!*J"!,!i!!!!X!%!m$J!!!#B!3$bXk%!p$J\r!!!#`!3$fNq%!q)"K!$`iJ3"!5rrq1DKK!2")!!!31'$rL%J!!!JiB2r1J!%"+$J\rK!5"m#!1QZf(rl%k!!#"m#!+QNq(rr*!!!3!)P#(q`(br+hJS(`!!3B)!B,#I!"B\rS!`!!3))!'$J!!!#3!"m!%MJ!!!#`(`!F5!!!+$L"!$L)S`!!1+8!!8J!!KQ!33!\r81!%!1*!!(`!51!$rrl!I!"arirYi5!!#AB""!"3i!!!!N!!I!"*)!!!)1'$rcS!\r"!8Ji)3&!I!J$TS2Krra1J!!JI!J#TT2Krrb3!!%!#*3Krk"mhc0i+!8!!%'#!"#\r)"3!!+!!!!%##!#!i!!!!Q!%!1$J"!$L3!"m!%MJ!rrq`(`!F5!!!%*!![`!51!!\r!!,!I!"b`I`!@N!#I!$"rirYi5!!"MB""!"3i!!!!N!!I!"+!!3"S1#%!B(`)!kD\r$iIrm6S!!)(`)!UD6iIrmN!!"!!L8)Ip!I,mVH$LK!$K,rrlCI'!(08##!!bS!3"\r1X"m!!)!"!-Ji)3$!I!J$TS2Krra1J!!JI!J#TT2Krrb6`IriN!!"!!L8)Ip31mB\r!!$[R!!!i`3!i5rrr)AaJ"c9!JJ"!L!%!9P3%"[Bi!!!!I)3!8$!%rrpm!#%3Q"m\r!!)JI!!!S!!!!3B)!%)!"!'L3!"i!!%J!!!b!!3#FN!!H!!#!!3#i1#%!X(`)!kD\r$iIrmJm(rq%k!!##"JJ!JN!""!"5!$!!!J%`!"(`*!kC1J!3JJB)!%*!!33!8J!`\r!!)"-!!4m#31Q6S!%))'#!#L3!%%!&)!-!!#!6!!%I!N$TNk!"##"JJ!FN!""!"5\r!$!!!J%`!"(`*!kC1J!3JJB)!#*!!33!8J!`!!)"-!!4m#31Q6S!%))'#!!b3!%%\r!&)!-!!#!6!!%I!N$TNk!"##"JJ!BN!""!"5!$!!!J%`!"(`*!kC1J!3JJB)!**!\r!33!8J!`!!)"-!!4m#31Q6S!%))'#!!53!%%!&)!-!!#!6!!%I!N$TNk!"##"JJ!\r8N!""!"5!$!!!J%`!"(`*!kC1J!3JJB)!!*!!33!8J!`!!)"-!!4m#31Q6S!%))!\r-!!#3!%%!&(`*!kD!6!!%6S!%)%k!!#!!N!N[)6J+)J+B"!!!!9)!N!5!#!#3"4!\r!%!#3#8J!!!")!*!&"!!"!!3!N!B"%J#3#3)!N!83!"!!N!8#!*!&%!!3!*!%'!"\rqB(riIrarr(rmIrarr(rmIrarr$rm$ri$r`$r!$iB!'CJ@CK'"%'%3'4!&%!F3"a\r!('!F1"`1(J1I!2m!2J!!&EJ!!!!'!!$rN!B!!Fb3"2rr!!+CN!6rr`!$CT!%c-`\r!"%53"J!&)T!'!!m!N!F2m!#3"3p#,r!2m!!!$a4#,r)Im!!2%44#)L%[!!m4%44\r#)Lm!$a%4%44#,`!2%C!%(bm!$a'3"#mr!!m4N!3[2`!2%C!%,cm!$c)4%4%[2`!\r!rc)4%5mr!!!!rc)4,cp3!!!!rc)[2e8!N!6r2cp9!*!&rr93!!!!j'!+!!"*6&K\r$%iX!!%lk!!41G8j@rrT)jaJJ*'i!#$emrrrrrR$r,8$rqLBU!!)-8J!%CJ!!RP9\r22bS!)#m$(bS!"NKZrrj)E[rkF!#S)c!I1!"REJb$a(C[BfBL*MaQGQpM98mr+J!\rJ,`-I2!!"5'lrrNKZrrT`!+JM-"mi!%T%Cd!-JfCXER4Q##BmG'9YF'!'*MaPH(4\rZ98mr+J!J,caPH(4Z$)0dC@e`9m"%!%L!(`")E[rq5'lrqR!!U#-`(cJ!0@lrrJ!\rJ*@lrqJ!L083!(NcI""K1ALkI6R@%E@&TEJ#3"3*"5Qpj)A"PCQC`Gh"M!!!!!EC\rHR!`!N!d$!!)!N!6rN!3!N!B"+!!!!5J!!!%S!!!"%!!%"!$rN!3!N!F3!!!!$!!\r!!!%!!!*!!J%%!2q3"!#3$i3!!!#!"!3%!*!)!3!!!!6rN!3!N!6rN!3!N!F"!!!\r!!3!!!!%!!!"J!!!!C!!!!(`!!!!"!*!6!3#3#!)!!!S!!3#3"3)!N!4+!%B!3f&\rbBQpZ6'PL!%CTEQ4'EfaNCA)!N"Km#!+QNq(rr*2"rrL3!!%!#*3Krl"mIKYi1!$\rrrl!"!$`i!2rrN!!"!$L$rJ!#U"i!!#`!!!4!JJ$%U(i!)(rNqhL)[J!'1-%!2$M\rK!$K)!!$&J%%!&(aJ"c9"JJ#-2"mlLLJ!Ef0!JJ!S2q"QGM[rEf1SIJ!J1*m!!$L\rJ!!%i`3!m11%!1%J!!)f!33!8I'!(08'#!&3m(jQ8+!"ZG%##!"!ri(4P1rpYF%J\r!!!`ri'9i1rpdEUKq!#!mJ'9i2+"dC6LPEA"m(bK3I!!!0&3&hMii`3!m11%!1$L\r%G'j)!!!eJ%%!&+J"!$b`(J!JJ!%!1*!!(J!LX(i!(S!"!&Ji)3"3I!J$TS2Krrb\r$`Iri6S!!))'#!!#3!%%!&)!-!!#!6!!%I!N$TNk!"#!!N!J-!!!"HJ#3")!)!*!\r&%!!3!*!*5!!!!%J!N!8%!!%!"!#3"J%5!*!*!J#3"4!!%!#3"3)!N!83!"!!N!3\rB!(jJIrKrr(rmIrarr(rmIrarr(rm2r`rrMrr(rm2rKJ!CQ"CQ%B%3B4!C%!8Aaa\r4R&5FFT`eh$rH)&mIr`rq!!"(1J!!!!X!!2q3"J!"c*!%rrm!!TQ3"2rr!!0QN!6\r-c!!%-c-!!*QC!!AZN!B!"Yf3"J!(Zj!'!!L)N!B!#853"J!+)T!'!!m!N!F2m!#\r3"3q5,r!2m!!!$aQ5,r)Im!!2%4Q5)L%[!!m4%4Q5)Lm!$a%4%4Q5,`!2%C!%(bm\r!$arrra%I2`!2(e9Im4mr!!mI9&Eb(cm!$jp94[)I2`!!re48rbmr!!$rN!3[2k!\r!q(GhMbmrUJ!2rrrrRcqU!!!c-c2rqU!!!!$NB!S!!%P-@%-6L`!!6[S!"%je6PE\rrqNMR'#!NEJ!)2AcrrrrqF2mY32rk*LS!!Ja5!!4Q!!#H98mr+J!J,`-I+J!'5'l\rrrNKZrrT`!+JM-"mi!'GZ$)2%GQpMCL)Q2'CfEf096cmU!#![!amm!!&)E[rq5'l\rrqR!!U#-`(cJ!5N4R3!b$CQaZG'B)*MadC@e`B!BQ2'9iG'j96cmU!#![2'9iG'i\r-Jh4PEA"A`%3!5)!I!%KZrrj)E[rkF!#S)c!I1!!eE[rq!#!PE[rk!#)e4!!H60m\r%'%jH,Tp1GB4YB@PZ!*!&!N&+EhNKF'9QCR"hF'-!!!!"YPkF$!#3$3-!!J#3"2q\r3"!#3"J%S!!!"+!!!!5J!!!%3!!3%!2q3"!#3"a!!!!!-!!!!!3!!!N!#!33!rj!\r%!*!2K!!!!)!%"!3!N!J"!!!!"2q3"!#3"2q3"!#3"`%!!!!"!!!!!3!!!'!!!!"\rN!!!!I!!!!!%!N"-"!*!)!J!!#J!"!*!&!J#3"%S!4J"$BA*LEfj-D@)!4QPZC%C\r[E'4PFJ#3'(`)!UD6iIrmNm(rq*!!!3!)P#(rX(aq'hJi!2rrX!%!2$J!rrq3!!%\r!1)2q!!+S(J!!,!!!"%##!-5SIJ!JIq6lH)Lq!!Bi`3!m11%!1%J!!-@!33!8I'!\r(08'#!)`m(cZ++!"[Bd##!#Jri'Cf1rp[BkKq!#!iR`!!1+!!!6M"!$`ii3!i5!!\r!MB""!"4mB!Fe3B)!9$`IQC3S!'jd3))!%$rJG'8lrfe`5!!!$$rJCAJlrh4ZU(i\r!)$b!CAJmS(4P1+9YF(`I+&"m!!!d9!AH2MM"!$`ii3!i1)4dENJ!!$@!33!8U!%\r!2,!H!##!!3!iN!!H!#+`IJ!HJ!%!@$JK!&"m#!1QJq(rr)2"rrK1J!!JJB)!!*!\r!33!8J!`!!)"-!!4m#31Q6S!%)!#3#!`!!!&D!*!%J!J!N!83!"!!N!P)!!!!5!#\r3"33!!3!%!*!'!4)!N!N#!*!&%!!3!*!&!J#3"4!!%!#3""J!IQ"rq(rmIrarr(r\rmIrarr(rmIrarr(rq2rm2r`2H'!"QB&QB4J4"K%"N3"4!(%`F@aaeh(VmI[irr`r\rr!pi!!%fC!!!!"`!!rj!'!!(-N!6rr`!#QC!%rrm!!fD3"-c-!!3!!*QCrrm!"85\r3"J!')T!'!!m!N!F2m!#3"3p5,r!2m!!!$a95,r)Im!!2%495)L%[!!m4%495)Lm\r!$a%4%495,`!2%C!%(bm!$a'3""mr!!m4rb%4(cm!$ap"rb%I2`!2p"38rbmr!!m\rr38&2rcm!$d023I2r2f!!rc3r02mrCJ!!rdp2rcpQ!!!!rr-[pQ!!!!$NB!S!!%P\r-@%-6L`!!6[S!"%je6PErqNMR'#!NEJ!)2AcrrrrqF2mY32rk*LS!!Ja5!!4Q!!#\rH98mr+J!J,`-I+J!'5'lrrNKZrrT`!+JM-"mi!'GZ$)2%GQpMCL)Q2'CfEf096cm\rU!#![!amm!!&)E[rq5'lrqR!!U#-`(cJ!5N4R3!b$CQaZG'B)*MadC@e`B!BQ2'9\riG'j96cmU!#![2'9iG'i-Jh4PEA"A`%3!5)!I!%KZrrj)E[rkF!#S)c!I1!!eE[r\rq!#!PE[rk!#)e4!!H60m%'%jH,Tp1GB4YB@PZ!*!&!N&+EhNKF'9QCR"hF'-!!!!\r"YPkF$!#3$3-!!J#3"2q3"!#3"J%S!!!"+!!!!5J!!!%3!!3%!2q3"!#3"a!!!!!\r-!!!!!3!!!N!#!33!rj!%!*!2K!!!!)!%"!3!N!J"!!!!"2q3"!#3"2q3"!#3"`%\r!!!!"!!!!!3!!!'!!!!"N!!!!I!!!!!%!N"-"!*!)!J!!#J!"!*!&!J#3"%S!4J"\r$BA*LEfj-D@)!4QPZC%C[E'4PFJ#3'(`)!UD6iIrmNm(rq*!!!3!)P#(rX(aq'hJ\ri!2rrX!%!2$J!rrq3!!%!1)2q!!+S(J!!,!!!"%##!-5SIJ!JIq6lH)Lq!!Bi`3!\rm11%!1%J!!-@!33!8I'!(08'#!)`m(cZ++!"[Bd##!#Jri'Cf1rp[BkKq!#!iR`!\r!1+!!!6M"!$`ii3!i5!!!MB""!"4mB!Fe3B)!9$`IQC3S!'jd3))!%$rJG'8lrfe\r`5!!!$$rJCAJlrh4ZU(i!)$b!CAJmS(4P1+9YF(`I+&"m!!!d9!AH2MM"!$`ii3!\ri1)4dENJ!!$@!33!8U!%!2,!H!##!!3!iN!!H!#+`IJ!HJ!%!@$JK!&"m#!1QJq(\rrr)2"rrK1J!!JJB)!!*!!33!8J!`!!)"-!!4m#31Q6S!%)!#3#!`!!!&L!*!%J!J\r!N!83!"!!N!P)!!!!5!#3"33!!3!%!*!'!4)!N!N#!*!&%!!3!*!&!J#3"4!!%!#\r3""J!IQ"rq(rmIrarr(rmIrarr(rmIr`rr$rq$rm'r`)q'!"QB&QB4J4"K%"N3K4\r'R%jFHcaL[$+m1ci2A`Er!Mi!!%AP!!!!#!!!rj!'!!(-N!6rr`!#QC!%rrm!!fD\r3"-c-!!3cN!4QCJ!&Gj!'!!C%N!B!"b+3"J!2!*!($r!!N!82BLr`$r!!!!m@BLr\rb(r!!$a%@BL)K,`!2%4%@BL)[!!m4%4%@BLm!$a%4m4%@,`!2%4ra84mr!!m4md%\r@(cm!$rm`4K&[2`!2B3&"B@mr!!$c)N&KEcm!!2mb4K&[2h!!!202*KmrG`!!$r"\r[2rph!!!!m!$rrh!!!!$NB!S!!%P-@%-6L`!!6[S!"%je6PErqNMR'#!NEJ!)2Ac\rrrrrqF2mY32rk*LS!!Ja5!!4Q!!#H98mr+J!J,`-I+J!'5'lrrNKZrrT`!+JM-"m\ri!'GZ$)2%GQpMCL)Q2'CfEf096cmU!#![!amm!!&)E[rq5'lrqR!!U#-`(cJ!5N4\rR3!b$CQaZG'B)*MadC@e`B!BQ2'9iG'j96cmU!#![2'9iG'i-Jh4PEA"A`%3!5)!\rI!%KZrrj)E[rkF!#S)c!I1!!eE[rq!#!PE[rk!#)e4!!H60m%'%jH,Tp1GB4YB@P\rZ!*!&!N&+EhNKF'9QCR"hF'-!!!!"YPkF$!#3$3-!!J#3"2q3"!#3"J%S!!!"+!!\r!!5J!!!%3!!3%!2q3"!#3"a!!!!!-!!!!!3!!!N!#!33!rj!%!*!2K!!!!)!%"!3\r!N!J"!!!!"2q3"!#3"2q3"!#3"`%!!!!"!!!!!3!!!'!!!!"N!!!!I!!!!!%!N"-\r"!*!)!J!!#J!"!*!&!J#3"%S!4J"$BA*LEfj-D@)!4QPZC%C[E'4PFJ#3'(`)!UD\r6iIrmNm(rq*!!!3!)P#(rX(aq'hJi!2rrX!%!2$J!rrq3!!%!1)2q!!+S(J!!,!!\r!"%##!-5SIJ!JIq6lH)Lq!!Bi`3!m11%!1%J!!-@!33!8I'!(08'#!)`m(cZ++!"\r[Bd##!#Jri'Cf1rp[BkKq!#!iR`!!1+!!!6M"!$`ii3!i5!!!MB""!"4mB!Fe3B)\r!9$`IQC3S!'jd3))!%$rJG'8lrfe`5!!!$$rJCAJlrh4ZU(i!)$b!CAJmS(4P1+9\rYF(`I+&"m!!!d9!AH2MM"!$`ii3!i1)4dENJ!!$@!33!8U!%!2,!H!##!!3!iN!!\rH!#+`IJ!HJ!%!@$JK!&"m#!1QJq(rr)2"rrK1J!!JJB)!!*!!33!8J!`!!)"-!!4\rm#31Q6S!%)!#3#!`!!!'D!*!%J!J!N!83!"!!N!P)!!!!5!#3"33!!3!%!*!'!4)\r!N!N#!*!&%!!3!*!&!J#3"4!!%!#3""J!IQ"rq(rmIrarr(rmIrarr(rmIr`rr$r\rq2rmrr`rq'!"QB&QB4J4"K%"N3"4rr'!mCcaK2#)m*6iL2crr$ri!!$X%!!!!$`!\r!rj!'!!(rN!6-c!!#rj!%!!!!!mb3"2rr!!6-N!B!"CQ3"2rr!!CQN!6-c!!(CT!\r'!!JcN!B!#Gf3"J!+UT!'!!YhN!B!$&@3"J!04*!'!!iLN!B!$`#3"`r`!*!&$p9\rIm!r`!!!22G9Ip6r`!!mc2G998em!$c-c2G99A`!2-c-c2G9I!!mcN!3rA`!2Gj!\r%cfm!$h3L)L52E`!2FKhp%Sp[!!pb%8m5Mfm!!(3Kq5U2E`!!G%Y,5Sp[i!"kU[U\rUMfrZ!-L)L)L2Eqi!!'CQC[rqi!!!!14J#J!!58aB3a1,!!"1qJ!%6R919[rk51F\rB)#4Z!!JpI2rrrrj`rbe!rrSQ+J!#$&)!"'B!!*j96cmU!#![!amU!!C)E[rq5'l\rrqR!!U#-`(cJ!Cfi-Jm4fEf0Q)LBmCRC[Be922bS!)#m$(c`!!8KZrrj)E[rkF!#\rS)c!I1!"+4'G!$)0QE'jdCJJQ2(4PEA"J"LBmCAKdEP922bS!)#mmCAKdEJb$G'9\rYF&I!4!")J"m!5'lrrNKZrrT`!+JM-"mi!$9Zrri!)#9ZrrS!)M9%!"j-h`3B6Pi\rZRdjeK'eKD@i!N!8#38T[H5&`C@CQF(G`B`!!!!'fAT`-!*!0!`!#!*!%rj!%!*!\r'!5J!!!%S!!!"+!!!!4!!"!3!rj!%!*!(%!!!!!`!!!!"!!!#3!)""!$rN!3!N!q\r%!!!!J!3%"!#3#!%!!!!%rj!%!*!%rj!%!*!(!3!!!!%!!!!"!!!!B!!!!'3!!!"\rm!!!!!3#3%`%!N!J#!!!+!!%!N!8#!*!%5J"'!%0KFQ*[ENaTBJ"'D@jN4QpXC'9\rb!*!BI!J#TT2Krrb6`IriN!!"!!L8)Iq`I(iEH$J!rrq`!3!m1!$rrj!!!3!iJri\r!!UJH!!!X!!!%3))!a+Kq!#"rj2YiL,i!"MM"!$`ii3!i5!!!aB""!"4mB!Fe3B)\r!M$`I1iSS!'pM3))!+$rJCRBlrfpMU(i!)$LI!!!iS!!"1-%!2$MK!$K)!!#0J%%\r!&(aJ"c9"JJ"82"qCP#J!ER4!JJ!32q"dC6[rEA")!!!-2q"PH$[rG'kSIJ!J2)"\rPH$bJG'8iT@e`I"mS8(`!!$48"Giq1-%!2$MK!$JiK(4Z5!!!0B""!"5S!3!mX"i\r!))!"!$L3!"i!)V"q!"k!!3"B1#%!8(`)!kD$iIrmJm(rq%k!!##"JJ!!N!""!"5\r!$!!!J%`!"(`*!kC1J!3J!*!)$!!!!M)!N!5!%!#3"4!!%!#3#8J!!!")!*!&#!!\r"!!J!N!B"NJ#3#3)!N!83!"!!N!8#!*!&%!!3!*!%'!"qB(riIrarr(rmIrarr(r\rmIrarr(rmIrjrrcrr(liB!'CJ@CK'"%'%3'4!&%!FAKaK(%#FF*aahRRI2rmI[J!\r!2%d!!!!5!!$rN!B!*-c-rj!%!#M-c2rr-c-!+Xb3"2rr!%bCQIrr-c-!6TQCc-c\rrr`"8QC!%rrm!FQCQc-crr`"hCQE-c!!!!(eQCTQC!!!!IfD3"-c-!*`c-jQCrrm\r!S6-cQCN!!!#L-c0QC[rr!-d!!$-cc-`!cJ!!-c1CQ3$m4*!'!2dLN!B!r`#3#Ir\rr!*!-rra892rr!!$rr`#3"[mUr2a892rr9#Vrr`#3"2mU+LVmr&53"#T8r`!!!2m\rUN!Amr&53"2m!!!$r+T!(r2a892m!!!$r+T!*re6r!!!!rbU3#&6rIrm!!!$r+[h\rrrrdU+LT8rhrr!!!!rrp-*#4hrbSU92prr`!!!2eh+(G16RIp9&6rIrm!!!$rcAe\r16R)Sre48rhrr!!!!rmfL6#LFS[pr92prrrd!!2h1cAehGmhpIe6rIrrpr3!!rml\r0SFlrrrprrhrrrId!!!$prrrpIhm!rrrrrId!N!6NB!S!!%P-@%-6L`!!6[S!"%j\re6PErqNMR'#!NEJ!)2AcrrrrqF2mY32rk*LS!!Ja5!!4Q!!#H98mr+J!J,`-I+J!\r'5'lrrNKZrrT`!+JM-"mi!'GZ$)2%GQpMCL)Q2'CfEf096cmU!#![!amm!!&)E[r\rq5'lrqR!!U#-`(cJ!5N4R3!b$CQaZG'B)*MadC@e`B!BQ2'9iG'j96cmU!#![2'9\riG'i-Jh4PEA"A`%3!5)!I!%KZrrj)E[rkF!#S)c!I1!!eE[rq!#!PE[rk!#)e4!!\rH60m%'%jH,Tp1GB4YB@PZ!*!&!N&+EhNKF'9QCR"hF'-!!!!"YPkF$!#3$3-!!J#\r3"2q3"!#3"J%S!!!"+!!!!5J!!!%3!!3%!2q3"!#3"a!!!!!-!!!!!3!!!N!#!33\r!rj!%!*!2K!!!!)!%"!3!N!J"!!!!"2q3"!#3"2q3"!#3"`%!!!!"!!!!!3!!!'!\r!!!"N!!!!I!!!!!%!N"-"!*!)!J!!#J!"!*!&!J#3"%S!4J"$BA*LEfj-D@)!4QP\rZC%C[E'4PFJ#3'(`)!UD6iIrmNm(rq*!!!3!)P#(rX(aq'hJi!2rrX!%!2$J!rrq\r3!!%!1)2q!!+S(J!!,!!!"%##!-5SIJ!JIq6lH)Lq!!Bi`3!m11%!1%J!!-@!33!\r8I'!(08'#!)`m(cZ++!"[Bd##!#Jri'Cf1rp[BkKq!#!iR`!!1+!!!6M"!$`ii3!\ri5!!!MB""!"4mB!Fe3B)!9$`IQC3S!'jd3))!%$rJG'8lrfe`5!!!$$rJCAJlrh4\rZU(i!)$b!CAJmS(4P1+9YF(`I+&"m!!!d9!AH2MM"!$`ii3!i1)4dENJ!!$@!33!\r8U!%!2,!H!##!!3!iN!!H!#+`IJ!HJ!%!@$JK!&"m#!1QJq(rr)2"rrK1J!!JJB)\r!!*!!33!8J!`!!)"-!!4m#31Q6S!%)!#3#!`!!!&D!*!%J!J!N!83!"!!N!P)!!!\r!5!#3"33!!3!%!*!'!4)!N!N#!*!&%!!3!*!&!J#3"4!!%!#3""J!IQ"rq(rmIra\rrr(rmIrarr(rmIr`rr"rq$2m!r`!q'!"QB&QB4J4"K%"N5"4BR(hF@0aDh$MF(Ii\r-h`$I!$i!!%4a!!!!"`!!rj!'!!(-N!6rr`!#QC!%rrm!!fD3"-c-!!4hN!B!"85\r3"J!')T!'!!m!N!F2m!#3"3p5,r!2m!!!$a95,r)Im!!2%495)L%[!!m4%495)Lm\r!$a%4%495,`!2%I)4%48[!!mImK*#(cm!$rrr*I8[2`!2(r!!p5mr!!m[m2$r,cm\r!!2r`!2m[2`!!"Im[rrmrB!!!43$r,cpQ!*!%rbmrCJ#3"IrrB!!!!14J#J!!58a\rB3a1,!!"1qJ!%6R919[rk51FB)#4Z!!JpI2rrrrj`rbe!rrSQ+J!#$&)!"'B!!*j\r96cmU!#![!amU!!C)E[rq5'lrqR!!U#-`(cJ!Cfi-Jm4fEf0Q)LBmCRC[Be922bS\r!)#m$(c`!!8KZrrj)E[rkF!#S)c!I1!"+4'G!$)0QE'jdCJJQ2(4PEA"J"LBmCAK\rdEP922bS!)#mmCAKdEJb$G'9YF&I!4!")J"m!5'lrrNKZrrT`!+JM-"mi!$9Zrri\r!)#9ZrrS!)M9%!"j-h`3B6PiZRdjeK'eKD@i!N!8#38T[H5&`C@CQF(G`B`!!!!'\rfAT`-!*!0!`!#!*!%rj!%!*!'!5J!!!%S!!!"+!!!!4!!"!3!rj!%!*!(%!!!!!`\r!!!!"!!!#3!)""!$rN!3!N!q%!!!!J!3%"!#3#!%!!!!%rj!%!*!%rj!%!*!(!3!\r!!!%!!!!"!!!!B!!!!'3!!!"m!!!!!3#3%`%!N!J#!!!+!!%!N!8#!*!%5J"'!%0\rKFQ*[ENaTBJ"'D@jN4QpXC'9b!*!BI!J#TT2Krrb6`IriN!!"!!L8)Iq`I(iEH$J\r!rrq`!3!m1!$rrj!!!3!iJri!!UJH!!!X!!!%3))!a+Kq!#"rj2YiL,i!"MM"!$`\rii3!i5!!!aB""!"4mB!Fe3B)!M$`I1iSS!'pM3))!+$rJCRBlrfpMU(i!)$LI!!!\riS!!"1-%!2$MK!$K)!!#0J%%!&(aJ"c9"JJ"82"qCP#J!ER4!JJ!32q"dC6[rEA"\r)!!!-2q"PH$[rG'kSIJ!J2)"PH$bJG'8iT@e`I"mS8(`!!$48"Giq1-%!2$MK!$J\riK(4Z5!!!0B""!"5S!3!mX"i!))!"!$L3!"i!)V"q!"k!!3"B1#%!8(`)!kD$iIr\rmJm(rq%k!!##"JJ!!N!""!"5!$!!!J%`!"(`*!kC1J!3J!*!)$!!!!AS!N!5!#!#\r3"4!!%!#3#8J!!!")!*!&"!!"!!3!N!B"%J#3#3)!N!83!"!!N!8#!*!&%!!3!*!\r%'!"qB(riIrarr(rmIrarr(rmIrarr$rm2rirrcrr(riB!'CJ@CK'"%'%3'4!&(r\rdB$4K0'Fd)$3[YLFh2rFIrJ!!Ae!!!!!,!!$rN!B!!Fb3"2rr!!,-N!B!!jQ3"2r\rr!!4QN!6-c!!&lT!'!!DlN!B!"iL3"J!)Gj!'!!P%N!B!#L+3"J!2!*!($r!!N!8\r2Ncr`$r!!!!mCNcrc(r!!$a%CNc-a2`!2%4%CNc-r!!m4%4%CNcm!$a'3""mr!!r\rrN!92!!rb*@)Lrdm!$r*eD5,r6`!2mTrjN[p2!!$h)L)Rrdm!!2,rpj,r6k!!mLq\r*)[p2UJ$rN!92UJ!%4%4%rrqJ!!!!YQpNC@3!!!!8Fh"PBfPKE#eYB@0c1N9NDA4\r[FR0[C'pN!!!!((0`C@0TB@`YE@&MFcT&C'PdEh*c1Np`C@j%Ef0[C(0`!!!!-h0\r`C@0TB@`YE@&MFcT&C'PdEh*c1Np`C@j%Ef-k6h"PEN4[Bb"6D'9XE#"3E(9R,8P\rZF`"[C'aL!!!!(R0`C@0TB@`YCAKdEMT2F'9Z4'pM)%aTBR*KFQPPFfpNFh3!!!!\r,1P0dBA4TEfjPFRN!!!!%k'!+!!"*6&K$%ii!!%lk!!41G8j@rr4)jaJ`*'i!#!a\r5!!4QI&922bS!)#mU!!)I+J!'5'lrrNKZrrT`!+JM-"mf!'G-*QS!'MJV!!496cm\rU!#![2'eKBh0#*dKZrrK)E[rdF!#S)c!I0J"Q-&922blrq#mmEf4PC"mU!!C)E[r\rq5'lrqMm%6VS$0$!I0J"Q$$9Zrri!)#9ZrrS!)M9$!"j-h``B6PiZRdjeK'eKD@i\r!!!"19[rd,`SNEJ!)B!*5LJ`5!#eQq%(U!!&$l[rmF!5J,P922bi!$#mZrra#*dK\rZrrC)E[riF!#S)c!I28$rp#!ZrrJNAdjH6R@84'Pb584'FQpY8h"PBfPKE&"KG'J\r!!!"19J!!51F3-#BZ!!JQEJ!-*%0J!P++$")!1QEi)%U4`b*$F!!3%8M!N!#)8S!\r@J#"+3qX!!A!!%"1J,NcI$!K1ANjeNe"KG'K'FQpY8h"PBfPKE&"KG'J!!%j@!!!\r[#bm+*Qi!$#4Z!!JQNPL+0e)!"&5+8SSA8J!'8SSJ5N2V!!G`!"!V!!DL,R!!%#X\r!"YA!F!!3+`!'5-#"r!!#5%"63'B#8SSJ5L4I*Pp1ANjeN!"(CA41CAKd4Na%H%9\rZG(*j!!!!6PEqqNMR(c!X,J!+H!"f!&P2,caQE'3M2bi!#+JI)&mQ5#!,CK496kQ\r[-"mi!'F%-!4J@M!mrd"J9&P2,`Y1ZJ,')"mZ!#46)%V4abS)B"K)E[lk,`T1Z[m\rq*%LmV[lk8%pQ"(B"B!5ea@AN5J0R&N(Zr`!LEJ!1F!!3,[m!8N")`+)ZB!*ie5m\r,UD-`"%cI$2K1ANjePdGPG&"KG'K'FQpY4Na%H&*PFfpeFQ0P!!"19[qd51FF!(B\r!98qTP$!I1J"96cmZ!!J[2'eKBh0#*dKZrrj)E[rkF!#S)c!I0J"R"$!$B'a96cm\rZrri[,[rk3IS!LNK35'lrY(!"UP)`(cB!C`3`!f"+98p)E[qd(c`!!A!0UP)`(cJ\r!GJ!-42rrCJK96kQ[-"mf!%T$CKir"+QB,bi!$LmZ!!Sr2!#!6VVq`$B!2`5TQNr\r[!!Sr"DQB-!0-h`!i6Pj1GCp(CA4'EfaNCA*'FQpY6h"PEN4[BdC[E'4PFR0'6%4\ri!"!26h"PEN4[BdC[E'4PFR1P6PErP%MR%$!NEJ!)*Qi!$(B!3T-p8[qU,@S!![r\r%)%TFL#e)rkC#E[q`3HlrP(!*SQ!f!'F%-!0J"LDZrm3`!dcI$!K1ANjeN8GPG%4\rTFQ9MG'pbH84TFNP%!!"19[fk51FH-$SZ!"JX,J!8*'i!$LCZ!!Tf!&922`8["Km\rZ!")[#Lm,F!#S)c!I0J!-3rr9C`Jr3`*iB!!!`$5&5'lr!#m'2`91Z[jq0J"2l`!\r+Ca4)E[m!,`Br,J!)6VVpZ$B!6qm!#NT$C`Jr3`*iB!!!LJ`Z!$Vr!@FH2`9)E[m\r!6VVmFLJ!5'lq!%KZr`"1Z[c%6qm!$Q!@3Hlr!%2ZrJ"`!"!Zr`"53%M!S#ji!&9\r22a)["%KZrJ")E[fkF!'U8M!I0J!-3rr9CKa+,J!5CbC96dKZrESr22rr,`Y`"DT\r5-"mf!'!35N0Q$#m,5'lpZNkkrV"36cp$!RK-h`ai6PiJAdr[!"*1d*&'58j%6e"\r&6N423dC26%4&8J!!)PmJAk!P,S"U!N+A6Y%!!!R@5Qpj)A"PCQC`Gh"M!!!!!EB\rXZ,`!N!d$!!)!N!6rN!3!N!B(a!!!"m3!!!I%!!!"m!!%"!$rN!3!N!GB!!!!9!!\r!!"B!!!R!!J%%!2q3"!#3$J&N!!!!J!3%"!#3#!%!!!!mrj!%!*!%rj!%!*!(!3!\r!!!i!!!!"!!!!P!!!!*`!!!&F!!!!!3#3%`i!N!J#!!!+!J!!'!)!!#)#!!!Y!J!\r!1J)!!%F#!!"8!J!!BJ)!!'m#!!"r!J!!L!)!!*-#!!#L!J!!V3!"!*!&!`#3"%S\r03J"'!!!!3f&bBQpZ6'PL!%GPG%KKEQ4XC90THQ8!3Qa[BfY0EhCP!&9cC9*PFdC\rTE'8!4f9d-9*PFfpeFQ0P!%C66@&VC8C68h"PB`"$E'pcC9*PFdCTE'8!3Qa[BfY\r0EhCP4'&dB3"'8h"%DA*$FQ9KG'8!8Q9XC@&cC9*PFfpeFQ0P!&*PFd9bFQpb!%C\rTEQ4'EfaNCA)!4P0`6h"PEP*PFdCTE'8!3h9b8Q9c4QPXC3"33NGPG%0KG%PZCQp\r6H@jM!*!AI!J#TT2Krrb6`IriN!!"!!L8)Iq`I(iEH+JH!!!X!!!%3))!Q+Kq!##\r!RJ!#L,i!"MM"!%3ii3"!5!!&hB""!"4mB!Fe3B)!B)"q!"UVi`!%U(i!)$b!E@%\riS!!!1-%!2$MK!$JiK'0c5!!&VB""!"4mB!Fe3))!3+KK!$`mJ'pNL,i!"MM"!%3\rii3"!14m!!$L%C@4)!!3KB!!!!(aJ"c9!JJ!8U!%!4,!H!##!!3"!N!!H!#+`IJ!\rHJ!%!@$JK!&"m#!1QJq(rr)2"rrK1J!!JI!J#TT2Krrb3!!%!#*3Krl"mRb0i5!!\r!#$KM!!')!`!!+!!!,8##rr3iB`!"1)%!3$LJ!!4)!!BCJ%%!&(rMqhL!J3"!1+!\r!!$M"!$`ii3!i5!!%pB""!"5!B3!iJ!%!@$JK!&"m#!1QJq(rr%k!!#"m#!+QN!!\r"!!L8)Ir!I)BMH(aP'hK)!!!)1+8!!BJ&!!!S!!!k3),rp(b$+&#)!`!!I'3!8$J\r$!!'B"J!!1'8!!$L'!!')TJ!!5!!&PB""!"5!!3")1#%!3(`)!kC1J!!JI!J#TT2\rKrrb6`IriN!!"!!L8)Ir!I*iMH(ar'hL!(`!!N!!H!!!lr`!%U"m!!,!H!!3lr`!\r#1rm!!BJI!!#B(J!'1rm!!6Kr!!!iRJ!(L,i!"NJ!"1@!33!8L"i!"Rrr!K5)IJ!\r'I'!1F(`!!C48!!JmI!!B%#`!!!&!JJ!)1rm!!ArMqhL!!3")1#%!3(`)!kD$iIr\rmJm(rq%k!!#"m#!+Q[d(rk*!!!3!)P#(qS$J$!!!l4!!!1f8!!$[J!!!l`!!!2'"\rQE(`%!hJiBf3M5!!%1B""!"4mI4Yi+"d!!%##!#K)!!2eJ%%!&(ar'hKri!Fe3B)\r!$(rMqhK)!!#)1'$r3%J!!)"rSqYi5!!%&B""!"5!R3!!Ii3D&%J!!#JiC!!!1)%\r!1%[rrYemC"YiJ!%!1(`!d%"!JJ!-1m!!!8J!!!am"1"!3B$rf&I!"Mp"JJ!J1'%\r!2MLE!!#)S3!q1+8!!8J!!p@!33!85!!!#$[Jrp9rSqYi5!!$fB""!"4rirYiJ!%\r"D$JK!@"m#!1QZd(rk%k!!#"m#!+Q[f(rl*!!!3!)P#(rB$ZM!!!lC!!!1i8!!%J\r!!Yf!33!8I(iEH$Kp!!!mJ'eK1+!!!$M"!)3ii3#!1)4MFdJ!!U'!33!8I(mEH(r\rJ"c9"JJ!-Iq2lH%J!!+5SB3#%J)%!J$LL!%3i`3!i5!!#TB""!"4mIaYiIq!(08'\r#!!arirYi5!!!H$KK!$JiJ!!"5!!#QB""!"4mI4Yi1q!!!(qJ"c3X!2rr3))!%%J\r!!T@!33!8I(mEH(rJ"c9!JJ!`Ik2VH%J!!T@!33!81'!!J$LE!!!i[!!!5rrq-Aa\rr'hKrSqYi5!!#lB""!"4r`r0i5!!#DB""!"4rirYiJ!%!U$JK!+"m#!1QZf(rl%k\r!!#"m#!+QNq(rr*!!!3!)P#(r8(bI)hJi!!!!N!!I!!#S!`!!X!%!6S!$!!+3!!%\r!D$J$!!D3!!%!5MJ!!!#`!3"81'%!1%J!!XQ!33!8I'!(08'#!!K)!!!-J!%!D*!\r!(`!!J!%!Z$JK!,"m#!1QJq(rr%k!!#"m#!+Q[b(rj*!!!3!)P#(pB$XM!!!l4!!\r!1f8!!$Z'!!!lT`!!1mJ!!$Kj!!!iQJ!!1,X!!$MF!!!ir3!!5!!"*B""!"4mIaY\riIq!(0#`!rp9"JJ!-Iq2lH%J!!25c2!!!1(N!!$LD!!!iS3&q5rrq&Aar'hKri!F\re3B)!'$Kq!!!iQJ!!1+%"IN[rr3&mIaYiIq!(08'#!!arirYi5!!!X)J"!AmS!!!\rk3B)!*$KK!AiiQ3!!5rrlDAar'hJiB3&q1)%!IN[rqmP)!!!J1'%"IML"!(k)S3&\rq1+8!!8J!!Bf!33!81q!!!+Km!!!iR`!!1+%!IMM"!$K)!!#CJ%%!&(ar'hKri!F\rd,!$re8##!#KAB!Br3B)!0$KK!$JiJ2rr1,d!!%J!!9f!33!8I(mEH%J!!"Kri!F\re3))!%$KK!$JiR3!!5rrq6ArMqhL!!3+S1#%#S(`)!kDl)IrN6S!!))'#!#L3!%%\r!&)!-!!#!6!!%I!N$TNk!"##"JJ!`N!""!"5!$!!!J%`!"(`*!kC1J!3JJB)!%*!\r!33!8J!`!!)"-!!4m#31Q6S!%))'#!#b3!%%!&)!-!!#!6!!%I!N$TNk!"##"JJ!\rNN!""!"5!$!!!J%`!"(`*!kC1J!3JJB)!#*!!33!8J!`!!)"-!!4m#31Q6S!%))'\r#!!b3!%%!&)!-!!#!6!!%I!N$TNk!"##"JJ!!N!""!"5!$!!!J%`!"(`*!kC1J!3\rJJB)!'*!!33!8J!`!!)"-!!4m#31Q6S!%))'#!##3!%%!&)!-!!#!6!!%I!N$TNk\r!"##"JJ!8N!""!"5!$!!!J%`!"(`*!kC1J!3JJB)!"*!!33!8J!`!!)"-!!4m#31\rQ6S!%))'#!"b3!%%!&)!-!!#!6!!%I!N$TNk!"##"JJ!dN!""!"5!$!!!J%`!"(`\r*!kC1J!3J!*!%J!!!d"!!N!E3J!!!F!J!N!8"3)!!!'!!N!B"S)!!!*`3!*!&!Mb\r!!!$i-!#3"3-dJ!!"%#J!N!8%4)!!!(!)!*!&",5!!!&J1!#3%$XK4!J`$dp`C@j\r%Ef0'EfaNCA*cT3!!!@)!N!5!#!#3"4!!%!#3#8J!!!")!*!&"!!"!!3!N!B"%J#\r3#3)!N!83!"!!N!8#!*!&%!!3!*!%'!"qB(riIrarr(rmIrarr(rmIrarr$rm2ri\rrrcrr!$iB!'CJ@CK'"%'%3'4!&&qFIpa`h($F-0``hLrI2rm!2J!!%K`!!!!)!!$\rrN!B!!Fb3"2rr!!+CN!6rr`!$CT!%c-`!",Z3"J!&Gj!'!!C%N!B!"b+3"J!2!*!\r($r!!N!82BLr`$r!!!!m@BLrb(r!!$a%@BL)K,`!2%4%@BL)[!!m4%4%@BLm!$a'\r3""m[!!mIrrra,cm!$rp99Im[2`!2p3!!Abmr!!re"%4I,cm!!28%4&m[2`!!p34\r%AbmrF!$d99Ar,cph!2rrrrBr2hF!N!Arph!!!!#fEf4PC!!!!"4cF'9MD@&X,@e\rKBh-k4@4TG'pbFfpNEf3!!!!FFh"PBfPKE#eYB@0c1N9NDA4[FR-k6h"PEN4[Bfp\rNFh!!!!!cFh"PBfPKE#eYB@0c1N9NDA4[FR-k6h"PEN4[BcT2F'9Z4'pM)&0SC@a\rX)&"XG@FY5@jc!'pNE')!!!!HFh"PBfPKE#ePH(4Z1Np`C@j%Ef-J6'PLFQ&bD@9\rcEf4cG!!!!!Xk8h4KG'P[EQ9bH3!!!!6NB!S!!%P-@%-6M`!!6[S!"%je6PErp%M\rR'$!NEJ!)$&)!"'Ci98mr+J!J,bS!!N)R5'lrrNKZrrT`!+JM-"mf!'G+*QS!'MJ\rV!!496cmU!#![2'eKBh0#*dKZrrK)E[rdF!#S)c!I0J"Q,P922blrq#mU!!)I2!!\r"5'lrrNKZrrSr"%kk!c3`(cB!CJ`eE[rq!#!PE[rk!#)e3`!H60m-'%jH,Tp1GB4\rYB@PZ!!!!6PErp#m+*'i!#'!#8SS-%J!YC[K"kJ!"3qlrr(!%S#j96cmZ!!`[,[r\rm3LG)E[rf5'lrq(!!U#-`(ce!rr3J,[ri*&p1ANjeP%4TFNP%4R*[E90`C@0TB@a\r3BA4S!!!!6PB!!%MR%$!Q,J!)*Qi!$#4$B!*5LJ`5!$TQq#"+NF-L3h!!%"&)`*!\r!L&+!&S!J5N2V!!&`!"!6S#j-h``)6Pj1GC03BA4S4R*[E90`C@0TB@a3BA4S!!"\r19J!!,`X[#LCZ!!`NEJ!)*T*BLMG5!!48LP++&e)!"P++)%T$k`!(F!!3+`!'SLj\r`!"!V!!E9`(!!%#X!"NM!JI`!!NK!8d"Q!P++)%SNAbCI6Pj1GC!!4f9d6Q9iG%C\r-4(K&ER4bH3!!!%j@r[T)jam`,#i!#RJ!GJ"C6bmmCQaN)cmZ!!LS(b"I*NJJ#fB\r898qTVc!I1!"R"$!%B&S`22p!B&4C6bm,6VS#aL!I,J!N8b"+dFFU#'!B5'lqqLm\r+6VVr2L4)[+lqqP"2CJ4f!@!%YF9Pj%S$CaC"l[m!)Qi!$R!!%#lr!&*!5-#L,Q!\r#H08[#kQM-!4-h`ci6Pj1GCG(CA43BA4S4R*[E8C-4(K5CA0[GA*MC3!!6PErY%M\rR(!"f!&92UC3`(cS!98mr,J!),caYB@0c3LG)E[rq5'lrqR!!U#-`(cB!C`3`!f"\rX98mr,[rq,blrqN(k!)T)8%KZrl4`!DT5-"mf!'F%-!0J5P925'lrY"mm!!&`$DT\r5-"mi!(B!$%6rrfB)98qTVc!I0J"+3fBH2`5TQ#mZ!!i[,J!+2c`!J%kkrX!f!$m\r%UCT2l`!+2`@TQ$!$60m!1%jH6R@I4f9d4QpXC'9b4R*[E8p`C@j%Ef0'EfaNCA*\rc4Na%H!!3$dp`C@j%Ef0'EfaNCA*cT8j@rj4)ja!`*'i!##CZ!!af!%+629,rULe\rU!!,ra#"+A)JY52qQ3QlrX%(Zrj4`#D*J0J"R"$!$B!BQV[r%-!0-h``)6Pj1GC&\r(CA4%DA*PBh4[FRP%DA**4!!!6PEpZNMR(M!k,J!B,#i!&#4Z!!iQEJ!+GJ"96cm\r&,`BI,J!5,`S[#h!!U#-`(cB!$%2re@F)2d-#H'!!!-!dK8KZr`!["Mm&6VVqIMB\r!6qm!#QF85'lr!#m'2bi!#%kkrEJf!%r[!!T+3fF)2d-#H'!!!)S-,J!kr`&R(Mm\r&5'lr!%kkr()S!%KZrJ")E[m!6VVma%r[!!jJ&N(Zr`"$l[i!F!!3,[m!8N")`+!\rZH!"96cm5,`4)E[i!5'lpZR!"UP)`(cB!$%2re@BF5Li!%QFQ98p)E[fk2ccrrbm\r,F!@U8M!I0J"J%%T$CJ`[#dKZrET1Z[k`8%mr3`*i60m-H%jH)&p2l`!56Y#44NP\r14%p348j%6d0'6da%49)!!#*I)&qJ*5k!DJ*#Pdl4!!!*CNT[H5&`C@CQF(G`B`!\r!!!'f,,LP!*!0!`!#!*!%rj!%!*!'"f!!!!GJ!!!(B!!!!I!!"!3!rj!%!*!(@!!\r!!&3!!!!@!!!*8!)""!$rN!3!N!i"C!!!!)!%"!3!N!J"!!!!22q3"!#3"2q3"!#\r3"`%!!!!1!!!!!3!!!*3!!!#F!!!"A!!!!!%!N"-1!*!)!J!!#J)!!"J#!!!L!J!\r!,3)!!$S#!!"(!J!!9!)!!')#!!"[!J!!I`)!!)J#!!#6!J!!SJ)!!+d!!3#3"3-\r!N!4+$8)!4J!!!%0KFQ*[ENaTBJ"(CA4)B@jNE'96DATP!%*XEf0V6@pfC3"9Ff9\r5CA0'D@aP!%GPG$&5CA0[GA*MC3"'8deKDf9'8e0`C@-!3fa[Ff95CA0'D@aP!%*\rXEf0V6@pfC84KG'%!4P0`4'Pb3h*PBA4P!&*PE'9KFf95CA0[GA*MC3"5CA0&FR*\r[FJ"'D@jN4QpXC'9b!%C6F%p`C@j5CA0'D@aP!%0eFP*PFdCTE'8!8%*(CA4$BA4\r*EQC[8hPZB`#3&h`)!UD6iIrmNm(rq*!!!3!)P#(rX(aq'hLS(J!!,!!!"%##!*5\rSIJ!JJ*i!!MLJ!!!i`3"%11%!3%J!"GQ!33!8I'!(08'#!&b!IJ!DUq-!"+Kq!#!\rmJ'eK1+!!!$M"!$`ii3!i1)4MFdJ!"DQ!33!8I'!(08##!$bSB3!mJ*i!!MLJ!!%\ri`3"%11%!3$NI!!")!!3KB!!!!(aJ"c9!JJ!8U!%!4,!H!##!!3"!N!!H!#+`IJ!\rHJ!%!@$JK!&"m#!1QJq(rr)2"rrK1J!!JI!J#TT2Krrb3!!%!#*3Krl"mRb0i5!!\r!#$KM!!')!`!!+!!!,8##rr3iB`!"1)%!3$LJ!!4)!!BCJ%%!&(rMqhL!J3"!1+!\r!!$M"!$`ii3!i5!!%pB""!"5!B3!iJ!%!@$JK!&"m#!1QJq(rr%k!!#"m#!+QN!!\r"!!L8)Ir!I)BMH(aP'hK)!!!)1+8!!BJ&!!!S!!!k3),rp(b$+&#)!`!!I'3!8$J\r$!!'B"J!!1'8!!$L'!!')TJ!!5!!&PB""!"5!!3")1#%!3(`)!kC1J!!JI!J#TT2\rKrrb6`IriN!!"!!L8)Ir!I*iMH(ar'hL!(`!!N!!H!!!lr`!%U"m!!,!H!!3lr`!\r#1rm!!BJI!!#B(J!'1rm!!6Kr!!!iRJ!(L,i!"NJ!"1@!33!8L"i!"Rrr!K5)IJ!\r'I'!1F(`!!C48!!JmI!!B%#`!!!&!JJ!)1rm!!ArMqhL!!3")1#%!3(`)!kD$iIr\rmJm(rq%k!!#"m#!+Q[d(rk*!!!3!)P#(qS$J$!!!l4!!!1f8!!$[J!!!l`!!!2'"\rQE(`%!hJiBf3M5!!%1B""!"4mI4Yi+"d!!%##!#K)!!2eJ%%!&(ar'hKri!Fe3B)\r!$(rMqhK)!!#)1'$r3%J!!)"rSqYi5!!%&B""!"5!R3!!Ii3D&%J!!#JiC!!!1)%\r!1%[rrYemC"YiJ!%!1(`!d%"!JJ!-1m!!!8J!!!am"1"!3B$rf&I!"Mp"JJ!J1'%\r!2MLE!!#)S3!q1+8!!8J!!p@!33!85!!!#$[Jrp9rSqYi5!!$fB""!"4rirYiJ!%\r"D$JK!@"m#!1QZd(rk%k!!#"m#!+Q[f(rl*!!!3!)P#(rB$ZM!!!lC!!!1i8!!%J\r!!Yf!33!8I(iEH$Kp!!!mJ'eK1+!!!$M"!)3ii3#!1)4MFdJ!!U'!33!8I(mEH(r\rJ"c9"JJ!-Iq2lH%J!!+5SB3#%J)%!J$LL!%3i`3!i5!!#TB""!"4mIaYiIq!(08'\r#!!arirYi5!!!H$KK!$JiJ!!"5!!#QB""!"4mI4Yi1q!!!(qJ"c3X!2rr3))!%%J\r!!T@!33!8I(mEH(rJ"c9!JJ!`Ik2VH%J!!T@!33!81'!!J$LE!!!i[!!!5rrq-Aa\rr'hKrSqYi5!!#lB""!"4r`r0i5!!#DB""!"4rirYiJ!%!U$JK!+"m#!1QZf(rl%k\r!!#"m#!+QNq(rr*!!!3!)P#(r8(bI)hJi!!!!N!!I!!#S!`!!X!%!6S!$!!+3!!%\r!D$J$!!D3!!%!5MJ!!!#`!3"81'%!1%J!!XQ!33!8I'!(08'#!!K)!!!-J!%!D*!\r!(`!!J!%!Z$JK!,"m#!1QJq(rr%k!!#"m#!+Q[b(rj*!!!3!)P#(pB$XM!!!l4!!\r!1f8!!$Z'!!!lT`!!1mJ!!$Kj!!!iQJ!!1,X!!$MF!!!ir3!!5!!"*B""!"4mIaY\riIq!(0#`!rp9"JJ!-Iq2lH%J!!25c2!!!1(N!!$LD!!!iS3&q5rrq&Aar'hKri!F\re3B)!'$Kq!!!iQJ!!1+%"IN[rr3&mIaYiIq!(08'#!!arirYi5!!!X)J"!AmS!!!\rk3B)!*$KK!AiiQ3!!5rrlDAar'hJiB3&q1)%!IN[rqmP)!!!J1'%"IML"!(k)S3&\rq1+8!!8J!!Bf!33!81q!!!+Km!!!iR`!!1+%!IMM"!$K)!!#CJ%%!&(ar'hKri!F\rd,!$re8##!#KAB!Br3B)!0$KK!$JiJ2rr1,d!!%J!!9f!33!8I(mEH%J!!"Kri!F\re3))!%$KK!$JiR3!!5rrq6ArMqhL!!3+S1#%#S(`)!kDl)IrN6S!!))'#!#L3!%%\r!&)!-!!#!6!!%I!N$TNk!"##"JJ!`N!""!"5!$!!!J%`!"(`*!kC1J!3JJB)!%*!\r!33!8J!`!!)"-!!4m#31Q6S!%))'#!#b3!%%!&)!-!!#!6!!%I!N$TNk!"##"JJ!\rNN!""!"5!$!!!J%`!"(`*!kC1J!3JJB)!#*!!33!8J!`!!)"-!!4m#31Q6S!%))'\r#!!b3!%%!&)!-!!#!6!!%I!N$TNk!"##"JJ!!N!""!"5!$!!!J%`!"(`*!kC1J!3\rJJB)!'*!!33!8J!`!!)"-!!4m#31Q6S!%))'#!##3!%%!&)!-!!#!6!!%I!N$TNk\r!"##"JJ!8N!""!"5!$!!!J%`!"(`*!kC1J!3JJB)!"*!!33!8J!`!!)"-!!4m#31\rQ6S!%))'#!"b3!%%!&)!-!!#!6!!%I!N$TNk!"##"JJ!dN!""!"5!$!!!J%`!"(`\r*!kC1J!3J!$XK4!J`$dp`C@j%Ef0'EfaNCA*cT3!!!AS!N!5!#!#3"4!!%!#3#8J\r!!!")!*!&"!!"!!3!N!B"%J#3#3)!N!83!"!!N!8#!*!&%!!3!*!%'!"qB(riIra\rrr(rmIrarr(rmIrarr$rm2rirrcrr!$iB!'CJ@CK'"%'%3'4!&&qFF0a[A'TF,e`\rJAL$I2rm!2J!!%eS!!!!,!!$rN!B!!Iq3"!!!!!,-N!6rr`!$QCRrN!3!"*Q3"2r\rr!!9QN!6-c!!'!!"QCTQC!!IGN!B!#+U3"J!*4*!'!!SLN!B!$`#3"`r`!*!&$j4\r2m!r`!!!2+C42p#r`!!mL+C4%3Nm!$b)L+C4%6`!2)L)L+C42!!mLN!3[6`!2,rr\rrmNpI!!rrL)Mr6em!$rKQCMp2A`!2m@"J2dpI!!$aCQBr6em!!2&hGcp2Ak!!m4%\r4rdpIUJ$rrrrjAeqU!*!&rrUJ!!!!YQpNC@3!!!!8Fh"PBfPKE#eYB@0c1N9NDA4\r[FR0[C'pN!!!!((0`C@0TB@`YE@&MFcT&C'PdEh*c1Np`C@j%Ef0[C(0`!!!!-h0\r`C@0TB@`YE@&MFcT&C'PdEh*c1Np`C@j%Ef-k6h"PEN4[Bb"6D'9XE#"3E(9R,8P\rZF`"[C'aL!!!!(R0`C@0TB@`YCAKdEMT2F'9Z4'pM)%aTBR*KFQPPFfpNFh3!!!!\r,1P0dBA4TEfjPFRN!!!!%j'!+!!"*6&K$%im!!%lk!!41G8j@rr4)jaJ`*'i!#!a\r5!!4QH&922bS!)#mU!!*#*dKZrrj)E[rkF!#S)c!I0J"R5LCU!"Si+`!%98mr+J!\rJ,caYB@0c3LG)E[ri5'lrp(!!U#-`(cB!CLj96cmZrrJ[+J!#(c`!!8KZrrj)E[r\rk2`41ZJ-d-"mf!'B-0@lrrJ!J*@lrqJ!L08-!(NcI$"K1ALkI6R@%E@&TEJ!!!%j\r@rr3[#L4Z!!KJ!P++$")!,@Ei3HS!!82Zrra`"+!Z98mr,J!-,blrr%)R5'lrpNK\rZrrK`!+JM-"mp32rd)#lrq#4I6Pj1GC4%DA**4%CbEfe6F'9MD@&X8'&dD!!!!%j\r@!!")ja!`*Li!##CZ!!`N3f!#8SS-%J!kC[JJ5T($)N0`!"!45-#3!)K5J"D!)%T\r$k`!"F!!3%k!Z60m-#%jH6R@68'&dD%CbEfe6F'9MD@&X8'&dD!!!6PB!!#m,,`S\rQEJ!-*'i!##D5@)Sh8J!%9)T5LKG5!!C5LL"+3qX!"h!!%#X!"U)ZF!!3+`!'eF"\r`!"!V!!C)`)(m!!*)3&0!CJ*5LL"+*&mQAdjH6R@3!%GPG%jPH(4'6%4i4@jdFRN\r!!!"19[lk51FI-#`Z!!Ti!(B!@8m[2'CXC#-r,J!)U"mJAbC))!YQ&&92UDm`(cJ\r!C`3`"'"D-$cr3'"8@8m[#dkk!XBJ(bi!*&-J5Y((+JKJ'%KZr[S[#NkkrciN5,b\rZr[T36fB%GJ&J",A&CH4+!fF@3Hlr!#*Z!!j`!"!Zr`"53%M!SLjJ!RM9,`ZTSc!\r%60m-q%jH6R@A4f9d8'&dD%CbEfe'6%4i8Q9cEh9bBf8!!%j@rl4)ja`!GJ"96kQ\r8-"mk!&922bi!##mmE@&MFd)R5'lrrNKZrrT`!+JM-"mf!'F%-!0JE&922blrrLm\rZrrT"qJ#+5&")E[qdF!'U8M!I0J"R"$!$B%T96dKZrl3I2!!"F!fU8M!I1!"f!!a\r%rrpQ#&92UDm`(cB!5N0Q(Mm%UCJ[,J!1,bi!#Mmm!)"1Z[l!0J!r"+QD6qm!#Mm\r&UCJ`!dcI!$K1ANjeRdGPG%C[E'4PFNCbEfe2F'9Z4'pM4QpXC'9bFdC-4(J!%!p\r2F'9Z4'pM4QpXC'9bFk919[q851F3-#4Z!!JQEJ!-GJ"#Nce5rkSYDJ!#rm3J5Pb\r),8MrTN*Zrl""l[q8F!QLB$B!C`3`!f!'*Ulra$!$60m-#%jH6R@44f9d4'PbC@0\rdEh*j4'Pb583!!%j@rET)jai`1Li!'#`Z!"3NEJ!1*Qi!#RB!98mr"5m'(bi!%Lm\r+,`Y`!+JM-"mf!!a$rp9R#$p$!RKJ!!$!0)9)E[m!,`Br"8kkrRif!%r[!!TR&%K\rZr`!["MmZ!!K1Z[fi0J"2l`!+5N0R#$p$!RKJ!!#+$#i!1[m"Cair"8KZr`"1Z[a\rb+!")E[i!5'lr!%kkr-42l`!1B"C"l[m!3qlq!(!!%#lr!&*!5-#J,RJ!98mr%Lm\r%5'lq!%KZrET`!DT5-"mf!!a$rp9Q(%SZ!"*R*P925'lpZMmmrrm[#h!&UP)`(cB\r!B""+3fB-,`Y)E[fk6VVqX&"22d-#H%cI$(K1AL"I6qm!%Nl3N8C*6N428%914%p\r$4Np-4%95!!!LAb"IS#8ZJ'S#3TG1d3!!#@C+EhNKF'9QCR"hF'-!!!!"YLb"T!#\r3$3-!!J#3"2q3"!#3"JGJ!!!(B!!!"f!!!!(`!!3%!2q3"!#3"eJ!!!"8!!!!&J!\r!#9!#!33!rj!%!*!1!@3!!!#!"!3%!*!)!3!!!$crN!3!N!6rN!3!N!F"!!!!$J!\r!!!%!!!#8!!!!R!!!!9`!!!!"!*!6$J#3#!)!!!S#!!!B!J!!)J)!!#d#!!!k!J!\r!4`)!!&3#!!"L!J!!E`)!!(m#!!#)!J!!N`)!!+)#!!#Y!!%!N!8$!*!%5Je#!%B\r!!!"$BA*LEfj-D@)!4f9d5'&ZC'aP8fPkC3"#E'pMDde[GQ8!9A0P8Q9c4QPXC3"\r(CA3a8Q9cEh9bBf8!4P00B@YP4P06F'9M!%0XEh0P8Q9c4QPXC3"#E'pMDde[GQ9\r%BA4K!%C6F%4TFN0bC@&dC3"5C@aPBA0P8Q9cEh9bBf8!8Q9c4A*bEh)!4QPZC%C\r[E'4PFJ"'8h"2F'9Z8Q9c4QPXC3"$GA*5CA0'D@aP!&"#4f9d3f&d5@jQEe0jEQ-\r!N"Gm#!+QNq(rr*2"rrL3!!%!#*3Krl"mIKYiU"i!!#`!!!4!JJ#8U(i!))#H!!)\riS!!!1-%!4$MK!%")!!ACJ%%!&(aJ"c9"JJ"FJ(i!'U[M!!5SIJ!J2)"YB6LJ!!!\ri`3!m11%!1$L%Bh0)!!@TJ%%!&(aJ"c9!JJ!mU'%!2)#H!!)iS!!"1-%!4$MK!%!\rj(`!!5!!%)@!!!!"mB!Fe3))!&+J"!%5`(J!JJ!%!3*!!(J!LX(i!(S!"!&Ji)3"\r3I!J$TS2Krrb$`Iri6S!!)(`)!UD6iIrmN!!"!!L8)Iq`I*mMH%J!!!JiB`!"L!-\r!!#J!!#e!J[rd1'-!!6L"!%!iS!!%5!!''B""!"4rirYiJ)%!3$LJ!!!i`3!m11%\r!1%J!"2@!33!8J'%!1)!"!&Ji)3"3I!J$TS2Krra1J!!JI!J#TT!!!3!)P#(r`(b\r')hKmC4Yi5!!!#$LP!!')"3!!+!!!1N##rr4mJbK3L!-!!(aN!&!i!`!"Q!B!!$K\rP!!!iKJ!"L+B!!%J!"C@!33!8J!%!5$JK!%"m#!1Q6S!!)(`)!UD6iIrmNm(rq*!\r!!3!)P#(r`(bH)hKmIaYiJ"m!!*!!(J!!1rm!"+JI!!#`(J!%1rm!!M[r!!')(`!\r!Q"i!"M[r!!%iI`!!1*i!"iLq!!C)!!6PJ%%!&)JH!!Crr`)8L(i!"RaJ$R"m!!'\r89!!)2(`!'"!X!!!"3))!#$[r!!&rirYiJ!%!5$JK!%"m#!1QJq(rr)2"rrK1J!!\rJI!J#TVp"rqL3!!%!#*3KrU!i!`!!1d3!!$YP!!!li!!!1m!!!$aJCQam"!0i1'0\rN)dJ!"$Q!33!8I(dEH#JG!!"!JJ!S5!!$pB""!"4mIaYiIq!(08'#!!arirYi5!!\r!L$KJrd")!!#!Ik2VH%J!""@!33!8J*d!!(q%'K4)!!!S1'3!!$L"!$K,rrlGI'3\rEH)!"!$Km!0"!3))!$$[!!!&)!!!-I!6J3%'!rpKA`!Br3B)!)$KK!$iiQ`!!L+%\r!2MLP!!&)!!29J%%!&%J!!!Jli2r9Ik2VH%J!!pQ!33!8Iq2lH)!"!@Ji)3&JI!J\r$TVY"rqK1J!!JI!J#TVpKrqb3!!%!#*3Krf!lS`!!1f3!!$Z&!!")!!,GJ%%!&(a\rq'hJiI3!!2)"YB6LJ!!!i`3#%11%!J$L%Bh0)!!+KJ%%!&(ar'hKri!Fe3B)!$(r\rMqhK)!!#NU'%!K)#"!)!iSJ"%1-%!1%J!!U@!33!8I(mEH(rJ"c9"JJ!-Iq2lH%J\r!!(JiB3!i1)!!!8J!!TQ!33!8I(dEH$[J!!"rS!Fd,!$rrd##!"")!!+9J%%!&(a\rr'hKri!Fe3))!-(qMkhK)!!+9J%%!&$KJ!)!iQ`!!1,`!!%[rrM&mIaYiIk2VH%J\r!!Zf!33!8Im2cH%J!!QQ!33!8Iq2lH)!"!+Ji)3#JI!J$TVYKrqa1J!!JI!J#TT2\rKrrb3!!%!#*3Kre"mRb0i1!!!!*!!(`!!U!-!!,!"!%k!!`!#N!!"!'Ji!`!'N!!\r"!%Si!!!!X!%!9$KK!$K)!!,*J%%!&(aJ"c9"JJ!)5!!!$)!"!'L3!"m!!)!"!,J\ri)3#`I!J$TS2Krra1J!!JI!J#TVmKrq53!!%!#*3Kr@!l)`!!1d3!!$YP!!!lKJ!\r!1kF!!$[)!!!iH3!!1*S!!$Ll!!!ih!!!12d!!%J!!5@!33!8I(mEH(rJ"c3X!2r\r93B)!$(rMqhK)!!$dXc`!!$Kj!!!iQJ!!1+%"IN[rrK9mIaYiIq!(08'#!"JiIJ!\r!1*S!!$LK!Aj,rrd"I(mEH(rJ"c9"JJ!-Iq2lH%J!!,#)!3&r+!!!1N'#!#3iB3&\rq1*N!!%[rqfPmIaYi1'%"IML"!(j,rr[*5!!!)$KK!AiiJ3"qL+%"IMLP!!&)!!'\r0J%%!&$[J!!#SI!!!1*m!!$LK!(ii`3!i5!!!QB""!"4mIaYiIq!(0#`!rp9!JJ!\rS9f!'2d'#!$3iB3!i1)$rrcLp!!")!!&GJ%%!&(ar'hK)!!!BIq!(08##!"!iB3!\ri1*d!!%[rrNerirYiJ!%#U$JK!U"m#!1QZb(rj%k!!##"JJ!SN!""!"5!$!!!J%`\r!"(`*!kC1J!3JJB)!-*!!33!8J!`!!)"-!!4m#31Q6S!%))'#!"#3!%%!&)!-!!#\r!6!!%I!N$TNk!"##"JJ!XN!""!"5!$!!!J%`!"(`*!kC1J!3JJB)!**!!33!8J!`\r!!)"-!!4m#31Q6S!%))'#!!L3!%%!&)!-!!#!6!!%I!N$TNk!"##"JJ!-N!""!"5\r!$!!!J%`!"(`*!kC1J!3JJB)!!*!!33!8J!`!!)"-!!4m#31Q6S!%))'#!"L3!%%\r!&)!-!!#!6!!%I!N$TNk!"##"JJ!JN!""!"5!$!!!J%`!"(`*!kC1J!3JJB)!&*!\r!33!8J!`!!)"-!!4m#31Q6S!%))'#!!53!%%!&)!-!!#!6!!%I!N$TNk!"##"JJ!\rFN!""!"5!$!!!J%`!"(`*!kC1J!3JJB)!0*!!33!8J!`!!)"-!!4m#31Q6S!%)!!\rl)83)-!p2F'9Z4'pM4QpXC'9bFk8!!!&b!*!%J!J!N!83!"!!N!P)!!!!5!#3"33\r!!3!%!*!'!4)!N!N#!*!&%!!3!*!&!J#3"4!!%!#3""J!IQ"rq(rmIrarr(rmIra\rrr(rmIr`rr$rq2rmrr`!q'!"QB&QB4J4"K%"N3"4IR($FEea[A#pF,eiJhcrr!$i\r!!"5%!!!!#J!!rj!'!!(rN!3!!!!#rrr-c*QC!!2-N!6rr`!%QCRrN!3!"CQ3"2r\rr!!CQN!6-c!!(!!"QN!3!#%53"J!*)T!'!!m!N!F2m!#3"3q&Ar!2m!!!$cL&Ar8\rrm!!2-cL&990I!!mc-cL&99m!$c-c-cL&A`!2-j!%2em!$crrrr0IE`!2re99rep\r[!!raGhG2Afm!$r*hGdpIE`!!mAGh6ep[!!$bGhG2Afq3!!$a)5(rAfqC!2rrrrP\r[EjN!N!ArqC!!!!!!YQpNC@3!!!!8Fh"PBfPKE#eYB@0c1N9NDA4[FR0[C'pN!!!\r!((0`C@0TB@`YE@&MFcT&C'PdEh*c1Np`C@j%Ef0[C(0`!!!!-h0`C@0TB@`YE@&\rMFcT&C'PdEh*c1Np`C@j%Ef-k6h"PEN4[Bb"6D'9XE#"3E(9R,8PZF`"[C'aL!!!\r!(R0`C@0TB@`YCAKdEMT2F'9Z4'pM)%aTBR*KFQPPFfpNFh3!!!!,1P0dBA4TEfj\rPFRN!!!!%j'!+!!"*6&K$%im!!%lk!!41G8j@rr4)jaJ`*'i!#!a5!!4QH&922bS\r!)#mU!!*#*dKZrrj)E[rkF!#S)c!I0J"R5LCU!"Si+`!%98mr+J!J,caYB@0c3LG\r)E[ri5'lrp(!!U#-`(cB!CLj96cmZrrJ[+J!#(c`!!8KZrrj)E[rk2`41ZJ-d-"m\rf!'B-0@lrrJ!J*@lrqJ!L08-!(NcI$"K1ALkI6R@%E@&TEJ!!!%j@rr3[#L4Z!!K\rJ!P++$")!,@Ei3HS!!82Zrra`"+!Z98mr,J!-,blrr%)R5'lrpNKZrrK`!+JM-"m\rp32rd)#lrq#4I6Pj1GC4%DA**4%CbEfe6F'9MD@&X8'&dD!!!!%j@!!")ja!`*Li\r!##CZ!!`N3f!#8SS-%J!kC[JJ5T($)N0`!"!45-#3!)K5J"D!)%T$k`!"F!!3%k!\rZ60m-#%jH6R@68'&dD%CbEfe6F'9MD@&X8'&dD!!!6PB!!#m,,`SQEJ!-*'i!##D\r5@)Sh8J!%9)T5LKG5!!C5LL"+3qX!"h!!%#X!"U)ZF!!3+`!'eF"`!"!V!!C)`)(\rm!!*)3&0!CJ*5LL"+*&mQAdjH6R@3!%GPG%jPH(4'6%4i4@jdFRN!!!"19[lk51F\rI-#`Z!!Ti!(B!@8m[2'CXC#-r,J!)U"mJAbC))!YQ&&92UDm`(cJ!C`3`"'"D-$c\rr3'"8@8m[#dkk!XBJ(bi!*&-J5Y((+JKJ'%KZr[S[#NkkrciN5,bZr[T36fB%GJ&\rJ",A&CH4+!fF@3Hlr!#*Z!!j`!"!Zr`"53%M!SLjJ!RM9,`ZTSc!%60m-q%jH6R@\rA4f9d8'&dD%CbEfe'6%4i8Q9cEh9bBf8!!%j@rl4)ja`!GJ"96kQ8-"mk!&922bi\r!##mmE@&MFd)R5'lrrNKZrrT`!+JM-"mf!'F%-!0JE&922blrrLmZrrT"qJ#+5&"\r)E[qdF!'U8M!I0J"R"$!$B%T96dKZrl3I2!!"F!fU8M!I1!"f!!a%rrpQ#&92UDm\r`(cB!5N0Q(Mm%UCJ[,J!1,bi!#Mmm!)"1Z[l!0J!r"+QD6qm!#Mm&UCJ`!dcI!$K\r1ANjeRdGPG%C[E'4PFNCbEfe2F'9Z4'pM4QpXC'9bFdC-4(J!%!p2F'9Z4'pM4Qp\rXC'9bFk919[q851F3-#4Z!!JQEJ!-GJ"#Nce5rkSYDJ!#rm3J5Pb),8MrTN*Zrl"\r"l[q8F!QLB$B!C`3`!f!'*Ulra$!$60m-#%jH6R@44f9d4'PbC@0dEh*j4'Pb583\r!!%j@rET)jai`1Li!'#`Z!"3NEJ!1*Qi!#RB!98mr"5m'(bi!%Lm+,`Y`!+JM-"m\rf!!a$rp9R#$p$!RKJ!!$!0)9)E[m!,`Br"8kkrRif!%r[!!TR&%KZr`!["MmZ!!K\r1Z[fi0J"2l`!+5N0R#$p$!RKJ!!#+$#i!1[m"Cair"8KZr`"1Z[ab+!")E[i!5'l\rr!%kkr-42l`!1B"C"l[m!3qlq!(!!%#lr!&*!5-#J,RJ!98mr%Lm%5'lq!%KZrET\r`!DT5-"mf!!a$rp9Q(%SZ!"*R*P925'lpZMmmrrm[#h!&UP)`(cB!B""+3fB-,`Y\r)E[fk6VVqX&"22d-#H%cI$(K1AL"I6qm!%Nl3N8C*6N428%914%p$4Np-4%95!!!\rLAb"IS#8ZJ'S#3TG1d3!!#@C+EhNKF'9QCR"hF'-!!!!"YLb"T!#3$3-!!J#3"2q\r3"!#3"JGJ!!!(B!!!"f!!!!(`!!3%!2q3"!#3"eJ!!!"8!!!!&J!!#9!#!33!rj!\r%!*!1!@3!!!#!"!3%!*!)!3!!!$crN!3!N!6rN!3!N!F"!!!!$J!!!!%!!!#8!!!\r!R!!!!9`!!!!"!*!6$J#3#!)!!!S#!!!B!J!!)J)!!#d#!!!k!J!!4`)!!&3#!!"\rL!J!!E`)!!(m#!!#)!J!!N`)!!+)#!!#Y!!%!N!8$!*!%5Je#!%B!!!"$BA*LEfj\r-D@)!4f9d5'&ZC'aP8fPkC3"#E'pMDde[GQ8!9A0P8Q9c4QPXC3"(CA3a8Q9cEh9\rbBf8!4P00B@YP4P06F'9M!%0XEh0P8Q9c4QPXC3"#E'pMDde[GQ9%BA4K!%C6F%4\rTFN0bC@&dC3"5C@aPBA0P8Q9cEh9bBf8!8Q9c4A*bEh)!4QPZC%C[E'4PFJ"'8h"\r2F'9Z8Q9c4QPXC3"$GA*5CA0'D@aP!&"#4f9d3f&d5@jQEe0jEQ-!N"Gm#!+QNq(\rrr*2"rrL3!!%!#*3Krl"mIKYiU"i!!#`!!!4!JJ#8U(i!))#H!!)iS!!!1-%!4$M\rK!%")!!ACJ%%!&(aJ"c9"JJ"FJ(i!'U[M!!5SIJ!J2)"YB6LJ!!!i`3!m11%!1$L\r%Bh0)!!@TJ%%!&(aJ"c9!JJ!mU'%!2)#H!!)iS!!"1-%!4$MK!%!j(`!!5!!%)@!\r!!!"mB!Fe3))!&+J"!%5`(J!JJ!%!3*!!(J!LX(i!(S!"!&Ji)3"3I!J$TS2Krrb\r$`Iri6S!!)(`)!UD6iIrmN!!"!!L8)Iq`I*mMH%J!!!JiB`!"L!-!!#J!!#e!J[r\rd1'-!!6L"!%!iS!!%5!!''B""!"4rirYiJ)%!3$LJ!!!i`3!m11%!1%J!"2@!33!\r8J'%!1)!"!&Ji)3"3I!J$TS2Krra1J!!JI!J#TT!!!3!)P#(r`(b')hKmC4Yi5!!\r!#$LP!!')"3!!+!!!1N##rr4mJbK3L!-!!(aN!&!i!`!"Q!B!!$KP!!!iKJ!"L+B\r!!%J!"C@!33!8J!%!5$JK!%"m#!1Q6S!!)(`)!UD6iIrmNm(rq*!!!3!)P#(r`(b\rH)hKmIaYiJ"m!!*!!(J!!1rm!"+JI!!#`(J!%1rm!!M[r!!')(`!!Q"i!"M[r!!%\riI`!!1*i!"iLq!!C)!!6PJ%%!&)JH!!Crr`)8L(i!"RaJ$R"m!!'89!!)2(`!'"!\rX!!!"3))!#$[r!!&rirYiJ!%!5$JK!%"m#!1QJq(rr)2"rrK1J!!JI!J#TVp"rqL\r3!!%!#*3KrU!i!`!!1d3!!$YP!!!li!!!1m!!!$aJCQam"!0i1'0N)dJ!"$Q!33!\r8I(dEH#JG!!"!JJ!S5!!$pB""!"4mIaYiIq!(08'#!!arirYi5!!!L$KJrd")!!#\r!Ik2VH%J!""@!33!8J*d!!(q%'K4)!!!S1'3!!$L"!$K,rrlGI'3EH)!"!$Km!0"\r!3))!$$[!!!&)!!!-I!6J3%'!rpKA`!Br3B)!)$KK!$iiQ`!!L+%!2MLP!!&)!!2\r9J%%!&%J!!!Jli2r9Ik2VH%J!!pQ!33!8Iq2lH)!"!@Ji)3&JI!J$TVY"rqK1J!!\rJI!J#TVpKrqb3!!%!#*3Krf!lS`!!1f3!!$Z&!!")!!,GJ%%!&(aq'hJiI3!!2)"\rYB6LJ!!!i`3#%11%!J$L%Bh0)!!+KJ%%!&(ar'hKri!Fe3B)!$(rMqhK)!!#NU'%\r!K)#"!)!iSJ"%1-%!1%J!!U@!33!8I(mEH(rJ"c9"JJ!-Iq2lH%J!!(JiB3!i1)!\r!!8J!!TQ!33!8I(dEH$[J!!"rS!Fd,!$rrd##!"")!!+9J%%!&(ar'hKri!Fe3))\r!-(qMkhK)!!+9J%%!&$KJ!)!iQ`!!1,`!!%[rrM&mIaYiIk2VH%J!!Zf!33!8Im2\rcH%J!!QQ!33!8Iq2lH)!"!+Ji)3#JI!J$TVYKrqa1J!!JI!J#TT2Krrb3!!%!#*3\rKre"mRb0i1!!!!*!!(`!!U!-!!,!"!%k!!`!#N!!"!'Ji!`!'N!!"!%Si!!!!X!%\r!9$KK!$K)!!,*J%%!&(aJ"c9"JJ!)5!!!$)!"!'L3!"m!!)!"!,Ji)3#`I!J$TS2\rKrra1J!!JI!J#TVmKrq53!!%!#*3Kr@!l)`!!1d3!!$YP!!!lKJ!!1kF!!$[)!!!\riH3!!1*S!!$Ll!!!ih!!!12d!!%J!!5@!33!8I(mEH(rJ"c3X!2r93B)!$(rMqhK\r)!!$dXc`!!$Kj!!!iQJ!!1+%"IN[rrK9mIaYiIq!(08'#!"JiIJ!!1*S!!$LK!Aj\r,rrd"I(mEH(rJ"c9"JJ!-Iq2lH%J!!,#)!3&r+!!!1N'#!#3iB3&q1*N!!%[rqfP\rmIaYi1'%"IML"!(j,rr[*5!!!)$KK!AiiJ3"qL+%"IMLP!!&)!!'0J%%!&$[J!!#\rSI!!!1*m!!$LK!(ii`3!i5!!!QB""!"4mIaYiIq!(0#`!rp9!JJ!S9f!'2d'#!$3\riB3!i1)$rrcLp!!")!!&GJ%%!&(ar'hK)!!!BIq!(08##!"!iB3!i1*d!!%[rrNe\rrirYiJ!%#U$JK!U"m#!1QZb(rj%k!!##"JJ!SN!""!"5!$!!!J%`!"(`*!kC1J!3\rJJB)!-*!!33!8J!`!!)"-!!4m#31Q6S!%))'#!"#3!%%!&)!-!!#!6!!%I!N$TNk\r!"##"JJ!XN!""!"5!$!!!J%`!"(`*!kC1J!3JJB)!**!!33!8J!`!!)"-!!4m#31\rQ6S!%))'#!!L3!%%!&)!-!!#!6!!%I!N$TNk!"##"JJ!-N!""!"5!$!!!J%`!"(`\r*!kC1J!3JJB)!!*!!33!8J!`!!)"-!!4m#31Q6S!%))'#!"L3!%%!&)!-!!#!6!!\r%I!N$TNk!"##"JJ!JN!""!"5!$!!!J%`!"(`*!kC1J!3JJB)!&*!!33!8J!`!!)"\r-!!4m#31Q6S!%))'#!!53!%%!&)!-!!#!6!!%I!N$TNk!"##"JJ!FN!""!"5!$!!\r!J%`!"(`*!kC1J!3JJB)!0*!!33!8J!`!!)"-!!4m#31Q6S!%)!!l)83)-!p2F'9\rZ4'pM4QpXC'9bFk8!!!&5!*!%J!J!N!83!"!!N!P)!!!!5!#3"33!!3!%!*!'!4)\r!N!N#!*!&%!!3!*!&!J#3"4!!%!#3""J!IQ"rq(rmIrarr(rmIrarr(rmIr`rr!r\rq!rm!r`!q'!"QB&QB4J4"K%"N3"4!(%!F3"aJ($JF$Ki$R`$r!$i!!"@i!!!!"J!\r!rj!'!!(-N!6rr`!#QC!%rrm!!fD3"-c-!!4%N!B!"5+3"J!2!*!($r!!N!823Lr\r`$r!!!!m83Lrb(r!!$a%83L)K,`!2%4%83L)[!!m4%4%83Lm!$a'3""m[!!m4N!3\r[2`!2%C!%,cm!$a'3"#mr!!mb%4%4,cm!!2mb%4%[2`!!!2mb%5mr8!!!!2mb,cp\r9!*!%rcmr93#3"Ire8!!!!,C[C'9N!!!!&(0`C@0TB@`YE@&MFcT&C'PdEh*cEf4\r[C!!!!"acF'9MD@&X,@eKBh-k4@4TG'pbFcT2F'9Z4'pMEf4cF!!!!$0cF'9MD@&\rX,@eKBh-k4@4TG'pbFcT2F'9Z4'pM1Np`C@j%Ef-J8fKPE'`J8'aeCbe*ER-!Ef4\rXBJ!!!"jcF'9MD@&X,@9iG'ik6h"PEN4[Bb"-D@*bBA*TCA0[C(0d!!!!#cT6G'&\rdD@pZCA*j!!!!"14J#J!!58aB3a12!!"1qJ!%6R919[rd51FB-#4Z!!J-8J!%CRK\r96cmU!#![+J!#3LG)E[rq5'lrqR!!U#-`(cB!CdSQDJ!D1#X!"&922bS!)#mmE@&\rMFd)R5'lrq%KZrr4`!+JM-"mf!'BZ98mr,[ri,bS!!Kmm!!&)E[rq5'lrqMm%6VS\r$0$!I0J"Q$$9Zrri!)#9ZrrS!)M9$!"j-h``B6PiZRdjeK'eKD@i!!!"19[rd,`S\rNEJ!)B!*5LJ`5!#eQq%(U!!&$l[rmF!5J,P922bi!$#mZrra#*dKZrrC)E[riF!#\rS)c!I28$rp#!ZrrJNAdjH6R@84'Pb584'FQpY8h"PBfPKE&"KG'J!!!"19J!!51F\r3-#BZ!!JQEJ!-*%0J!P++$")!1QEi)%U4`b*$F!!3%8M!N!#)8S!@J#"+3qX!!A!\r!%"1J,NcI$!K1ANjeNe"KG'K'FQpY8h"PBfPKE&"KG'J!!%j@!!![#bm+*Qi!$#4\rZ!!JQNPL+0e)!"&5+8SSA8J!'8SSJ5N2V!!G`!"!V!!DL,R!!%#X!"YA!F!!3+`!\r'5-#"r!!#5%"63'B#8SSJ5L4I*Pp1ANjeN!"(CA41CAKd4Na%H%9ZG(*j!!!!6PE\rqqNMR(c!X,J!+H!"f!&P2,caQE'3M2bi!#+JI)&mQ5#!,CK496kQ[-"mi!'F%-!4\rJ@M!mrd"J9&P2,`Y1ZJ,')"mZ!#46)%V4abS)B"K)E[lk,`T1Z[mq*%LmV[lk8%p\rQ"(B"B!5ea@AN5J0R&N(Zr`!LEJ!1F!!3,[m!8N")`+)ZB!*ie5m,UD-`"%cI$2K\r1ANjePdGPG&"KG'K'FQpY4Na%H&*PFfpeFQ0P!!"19[qd51FF!(B!98qTP$!I1J"\r96cmZ!!J[2'eKBh0#*dKZrrj)E[rkF!#S)c!I0J"R"$!$B'a96cmZrri[,[rk3IS\r!LNK35'lrY(!"UP)`(cB!C`3`!f"+98p)E[qd(c`!!A!0UP)`(cJ!GJ!-42rrCJK\r96kQ[-"mf!%T$CKir"+QB,bi!$LmZ!!Sr2!#!6VVq`$B!2`5TQNr[!!Sr"DQB-!0\r-h`!i6Pj1GCp(CA4'EfaNCA*'FQpY6h"PEN4[BdC[E'4PFR0'6%4i!"!26h"PEN4\r[BdC[E'4PFR1P6PErP%MR%$!NEJ!)*Qi!$(B!3T-p8[qU,@S!![r%)%TFL#e)rkC\r#E[q`3HlrP(!*SQ!f!'F%-!0J"LDZrm3`!dcI$!K1ANjeN8GPG%4TFQ9MG'pbH84\rTFNP%!!"19[fk51FH-$SZ!"JX,J!8*'i!$LCZ!!Tf!&922`8["KmZ!")[#Lm,F!#\rS)c!I0J!-3rr9C`Jr3`*iB!!!`$5&5'lr!#m'2`91Z[jq0J"2l`!+Ca4)E[m!,`B\rr,J!)6VVpZ$B!6qm!#NT$C`Jr3`*iB!!!LJ`Z!$Vr!@FH2`9)E[m!6VVmFLJ!5'l\rq!%KZr`"1Z[c%6qm!$Q!@3Hlr!%2ZrJ"`!"!Zr`"53%M!S#ji!&922a)["%KZrJ"\r)E[fkF!'U8M!I0J!-3rr9CKa+,J!5CbC96dKZrESr22rr,`Y`"DT5-"mf!'!35N0\rQ$#m,5'lpZNkkrV"36cp$!RK-h`ai6PiJAdr[!"*1d*&'58j%6e"&6N423dC26%4\r&8J!!)PmJAk!P,S"U!N+A6Y%!!!PQ5Qpj)A"PCQC`Gh"M!!!!!EBXJD3!N!d$!!)\r!N!6rN!3!N!B(B!!!"f!!!!GJ!!!"m!!%"!$rN!3!N!GB!!!!9!!!!"B!!!P3!J%\r%!2q3"!#3$J&N!!!!J!3%"!#3#!%!!!!mrj!%!*!%rj!%!*!(!3!!!!i!!!!"!!!\r!P!!!!*`!!!&F!!!!!3#3%`i!N!J#!!!+!J!!'!)!!#)#!!!Y!J!!1J)!!%F#!!"\r8!J!!BJ)!!'m#!!"r!J!!L!)!!*-#!!#L!J!!V3!"!*!&!`#3"%S03J"'!!!!3f&\rbBQpZ6'PL!%GPG%KKEQ4XC90THQ8!3Qa[BfY0EhCP!&9cC9*PFdCTE'8!4f9d-9*\rPFfpeFQ0P!%C66@&VC8C68h"PB`"$E'pcC9*PFdCTE'8!3Qa[BfY0EhCP4'&dB3"\r'8h"%DA*$FQ9KG'8!8Q9XC@&cC9*PFfpeFQ0P!&*PFd9bFQpb!%CTEQ4'EfaNCA)\r!4P0`6h"PEP*PFdCTE'8!3h9b8Q9c4QPXC3"33NGPG%0KG%PZCQp6H@jM!*!AI!J\r#TT2Krrb6`IriN!!"!!L8)Iq`I(iEH+JH!!!X!!!%3))!P+Kq!##!RJ!#1+!!!$M\r"!%3ii3"!5!!&fB""!"4mB!Fe3B)!A)"q!"UVi`!%U(i!)$b!E@%iS!!!1-%!2$M\rK!$JiK'0c5!!&UB""!"4mB!Fe3))!2+KK!$b!RJ!#1+!!!6M"!%3ii3"!14m!!%J\r!"#&J!!!!I'!(08##!"5S!3"%X"i!))!"!%#3!"i!)V"q!"k!!3"B1#%!8(`)!kD\r$iIrmJm(rq%k!!#"m#!+QNq(rr*!!!3!)P#(rX(bI)hK)!!!)1'-!!BJ$!!!S!!!\rY3),rp$KM!!%iJ3"!1+!!"%J!"KQ!33!8Iq2lH)#"!%!iS!!!1-%!2$MK!$K)!!6\reJ%%!&)"K!$L!!3"B1#%!8(`)!kD$iIrm6S!!)(`)!UD3!!%!#*3Krm"mKL0iI'8\rEH%J!!!JiT3!"L!8!!#J!!$T!J[rdI)-S8)J$!!"mC!"31!-!!CJ'!!!iC3!!1)B\r!!BLQ!!")!!@9J%%!&)!"!%Ji)3"!I!J$TNk!!#"m#!+QNq(rr*2"rrL3!!%!#*3\rKrm"mRL0iI(mEH)!I!!#3!"i!!$[r!!5S(`!!X"i!"$[r!!)lr`!"L"m!!*JH!!B\rlr`!"1(m!!$LH!!H)[J!'5!!%jB""!"5)(J!'Irm#&)Kq!!CmB!j`I!!"P&3!#$a\rm!"J3,!!!!8##!!Jlr`!"Iq2lH)!"!%Ji)3"!I!J$TS2Krrb$`Iri6S!!)(`)!UD\rr3IrSN!!"!!L8)IkJ1!-!!$Y%!!!lC3!!1q!!!$[!!!!mB'CXI!3$H$KMC#0)!!3\rjJ%%!&(ap'hJS(3!!3))!+%J!!r@!33!8I(mEH(rJ"c9"JJ!-Iq2lH%J!!)JiB2p\r!5!!!J(qMkhK)!!39J%%!&)#G!!"rK"S85!!!+$KN!!!iJ3!i5rrqhAaN'hL!!3!\riI!$33%##!!`l`!!"5!!!$(`%i%""J2rB9m!'2d'#!#!iB3!q1*X!!)LK!$iiT3!\r"5!!$eB""!"4)!!!)1q$reAqMkhK)!!2CJ%%!&(rMqhL!!3&S1#%"B(`)!kDl3Ir\rS6S!!)(`)!UDrBIrXN!!"!!L8)IpJ1k-!!$YN!!!lK3!!5!!#hB""!"4mIKYi1(d\r!!$b!E@%iS!!!1-%!K$MK!)!iK'0c5!!#SB""!"4mIaYiIq!(08'#!!arirYi5!!\r!T+KK!)5!J3#!1+)!4$M"!$K)!!+PJ%%!&(ar'hKri!Fe3B)!$(rMqhK)!!"i1'%\r!1$L!!!&)!!+CJ%%!&(ap'hJli!!!Ik!(0#`!rrp!JJ!35!!#PB""!"4mIaYiIq!\r(08##!$"rSqYi5!!#PB""!"3iB!#!1*X!!$Lm!!",rriaI(mEH(qMkhK)!!,YJ%%\r!&(r$mhK)!!*TJ%%!&(rMqhL!!3#S1#%!S(`)!kDlBIrX6S!!)(`)!UD6iIrmN!!\r"!!L8)Ip3I*mMH$J!!!#3!"m!!+J$!!#`!3"1J!-!!T!!!3"S1!-!"T!!!3"+1!!\r!!,!"!&3iB3!i5!!#bB""!"4mB!Fe3B)!#%J!!!b!!3"SN!!I!!#!!3#i1#%!X(`\r)!kD$iIrm6S!!)(`)!UDr)IrNN!!"!!L8)IeJ1b-!!$Y%!!!lC3!!1iB!!$ZR!!!\rlb!!!1(N!!$LD!!!iZ`!!10`!!$Mp!!")!!%PJ%%!&(ar'hKri!Fd,!$re8'#!!a\rrirYi5!!!p,-m!!!iH3!!1*S!!$LK!Aj,rri9I(mEH(rJ"c9"JJ!B1(i!!$LD!!!\riS3&q5rrp!Aar'hKri!Fe3B)!$(rMqhK)!!#`L!%"IbJ!!$T"JJ!N1'%"IMLC!!"\r,rrYTI(mEH$KK!AiiJ3"q5rrlb8J!!#!iB3&q1)%!ISLK!AiiT3!"5!!"MB""!"3\rli!!!U(`!!$LI!!!iS3"q1-%!1%J!!*Q!33!8I(mEH(rJ"c3X!2r93))!+&GJ"Mp\r"JJ!d1'%!1$L!rrmi[3!!5!!"AB""!"4mIaYi5!!!'(rJ"c9!JJ!31'%!1$LG!!"\r,rrj0Iq2lH)!"!UJi)3+JI!J$TVXKrq41J!!JJB)!+*!!33!8J!`!!)"-!!4m#31\rQ6S!%))'#!$#3!%%!&)!-!!#!6!!%I!N$TNk!"##"JJ!3N!""!"5!$!!!J%`!"(`\r*!kC1J!3JJB)!,*!!33!8J!`!!)"-!!4m#31Q6S!%))'#!#53!%%!&)!-!!#!6!!\r%I!N$TNk!"##"JJ!)N!""!"5!$!!!J%`!"(`*!kC1J!3JJB)!$*!!33!8J!`!!)"\r-!!4m#31Q6S!%))'#!!#3!%%!&)!-!!#!6!!%I!N$TNk!"##"JJ!BN!""!"5!$!!\r!J%`!"(`*!kC1J!3JJB)!)*!!33!8J!`!!)"-!!4m#31Q6S!%))'#!"53!%%!&)!\r-!!#!6!!%I!N$TNk!"##"JJ!%N!""!"5!$!!!J%`!"(`*!kC1J!3JJB)!(*!!33!\r8J!`!!)"-!!4m#31Q6S!%))'#!$53!%%!&)!-!!#!6!!%I!N$TNk!"#!!1b&%#$!\r26h"PEN4[BdC[E'4PFR1P!!!"@J#3")!)!*!&%!!3!*!*5!!!!%J!N!8%!!%!"!#\r3"J%5!*!*!J#3"4!!%!#3"3)!N!83!"!!N!3B!(jJIrKrr(rmIrarr(rmIrarr(r\rm2r`IrJIr"rm!2KJ!CQ"CQ%B%3B4!C%!8Aaa4(&(FGe`eA"jH"&m(r`!q!!"9d!!\r!!!F!!2q3"J!"c*!%rrm!!TQ3"2rr!!0QN!6-c!!%UT!'!!9%N!B!"L+3"J!2!*!\r($r!!N!828Lr`$r!!!!m98Lrb(r!!$a%98L)K,`!2%4%98L)[!!m4%4%98Lm!$a'\r3""m[!!mIrrm4,cm!$am!$a%[2`!2(`!2rbmr!!mr$rp2,cm!!2m26dm[2`!!$rr\rd$bmrB!!!$d!2,cpQ!!!2rrmr2fB!N!ArpQ!!!!H`B!S!!%P-@%-6M3!!6[S!"%j\re6PEqb%MR(#!NEJ!)1#S!)$9mrrm!)($r*8!!)Ja5!!4Q!!'D$+S!!!J!!""Y!!%\rS$+S!!!K3!""X!!%FHJ"96cm%,bS!!N)R5'lrNNKZrij`!+JM-"mf!'B%HJ&J(&9\r22`3[+J!#(bS!"NKZrj*)E[q1F!#S)c!I0J"+3fB!!,C#,[mH3UlrS%(ZraiY52q\rQ2@lrN[qU,@lrM[r%2Acrrrq`3HlrP(!*SQ!f!'B!!)C96cm%,caPH(4Z3LG)E[m\rF5'lqb(!!U#-`(cB!CQC#V[qJ3Hlr(Le)rkBpE[mFrkSYE[l)rm4#E[q`3HlrP(!\r*SQ!f!'B10@lrUJ!J*@lra!!LB$"#V[p+3Hlr(Le)re!pE[mFre3YE[l)rfj"l[m\rqF!DLB$B!CJ`eE[mF!#!PE[pZ!#*+3fB!!)"+"@Ck3UlqhMeZrj,qiLeZrilqr%(\rZrXbL#@"L98mr"#mma'e[C"mU!!C)E[q55'lrMR!!U#-`(cB!CcBe4!!J,c`MM`!\r+,ca69&)M,caMC'9f,caYEf4Y,caPH(4Z,caMG(*X,`T1ZJ!X0J"2l`!FB!`eE[q\r5!#!PE[q1!#)e3`!H60m%1%jH,Tp1GB4YB@PZ!!!!6PErh%MR'#!NEJ!)1#S!)$9\rmrrm!)($r*8!!)P922`3[,J!-(bS!"NKZrq*)E[rHF!#S)c!I0J"Q!!#b)#i!%,#\rZ!!aR(P922`3[,J!3(bS!"NKZrpa)E[rNF!#S)c!I0J"J$$eZrq,rh#eZrplrj%T\r$CRJpE[rFrrSYE[rNrr`pEJ!Jrr3pEJ!LrrBGDJ!'rrJYEJ!8rqJYEJ!Brq`YEJ!\rFrr"96cmZrq)[,[rH3UFr2!!"5(S!8%KZrqK1ZJ*U-"mf!'BQ)#lrr,#Zrq4Q%(E\r90Acrr`!JF2mP3!!LB!`eE[rk!#!PE[rm!#)`!dcI""K1ANjeM%ej4QPZC%C[E'4\rPFJ!!!%j@rT4)ja``+#i!%#4Z!!LAbhB!H[mJ4#!S!#5`NQB!!6)J4#!S!##`UJ!\r%CJ!"*%)RUCY96b"%2bJ!&L"%,bJ!C#"%,bJ!%Kmm!!'S'M!I1J!I2!!"UCY96kQ\r[-"mf!'B!!0i-UP088L-!#'Bd3LHTQeP2,ca69&)M2bS!$+JI)&mQ5"mm!!'TQb!\r,C`!!ZNKZrT3r+J!-2bS!$Nkk!qCJ0&P2,bS!#$mU!!bS(b"I*NK96kQ[-"mf!#!\r,Ca3J8a!35)"53%M!)&0$l[k8SLjJ"(E1B'T"l[k8,8MrTMeU!",rULeU!"6ra%*\rZrl""l[q8F!QLB$B!CJieE[qU!")PE[r%!"4J1!a$riKR"Ja$rp9Q)%SU!""R'N(\rZrj4`"U*J0J"Q$M9ZrkS!%L9Zrm3!&'!-0Acrr`!5F2mP3!!8)'i!$"#m!!%-4Ir\rrC`3r"DQD60m-1%jH)&p2l`!-6Y#069P*9%95394&8&*23`!!6PB!!%MR'#!S,J!\r)*'i!$%TU!,4R#M!U!,D`DJ#dC(*f!9*U!,Be3`!J*83!0%(U!!4`#D*J08!!X%T\rU!,"Q,%KU!!4)DJ#b,bS!Z#"56T!!%#S!)J*!!""R%NSU!,*Q$#m+,bS!0%kkrjK\r36e*$5QS!X'B'5LS!XQHX$'Vre3#`C`J-DZai!,"Q"%*U!,"6DJ#f60m%'%jH6R@\r95A4PFQ&dC84TFQ9MG'pbH8aPGQ9X!!"19[mm,`0+VJ!-C`!!MP922bi!'LmZ!"B\r[,J!55'lr3%KZrce1ZJ(5-"mf!'CZ$#i!!ImpCQ"96bmZ!")r,J!D5'lr2Nkk!@J\r`(cB!CNiYEJ!-rd4"l[p%3HJ!F#e)reSpE[mqrej#,[qd3Qlrp%)ZrrBpEJ!3rrK\r#E[rk,@i!#2rm5'lr4#mZrd"1Z[l#0Llrp&"2B!CfL'!#GXir3`$N*Kp1AL"I6qm\r!&%l3N!"*9%95394&4%P548086e*C!!!!6PEr!%MR%$!QEJ!1*'i!##!+CcieEJ!\r-!"BJ#fB+3US!%N*U!"aJ(L",3qlr!(!!%"053%M!SLj"l[m!*8J!%M9mrrm!(#"\r+SJFf!%+U!"*J!RE12d-"(NcI$!K1AL"I6qm!#Nl3NdG&9&C26&9048P14Np16dj\r"688!!%j@rq")ja!`*Qi!$#4Z!!JJ#fF%5K0Q&%)Zrq""l[rJ*8J!%M9mrrm!('!\r)*8X!%N*U!"`eEJ!8!"BPEJ!3!$!J5R!*SQ!f!%+U!")r3`"#60m-#%jH)&p2l`!\r16Y#3!%G&9%0"9%P14Np16dj"688!!!"19[q',`096bmZ!!ir,J!-5'lrKNkkr[`\r`(cB!CJJJEJ!)-+lrR$p$!*!!*Kp1AL"I6qm!#Nl3N!"%494&8Ne*6N9@8N9'6P9\r0!!!!6PErP%MR%$!QEJ!-*'i!#&922bi!'#mZ!"3[,J!35'lrP%kkrb!`(cB!CKS\r3,[qb!N!!%&E!4!!8J'F'*Ulra'!%*Ulrq$p$!**-h``)6PiJAdr[!"*1d)j(494\r%59*&3e428PP*4!!!!%j@!!"C6bmm8e45)cmZ!!UTS#*Z!!a#%5!ICb)J3#"3-"J\rb,J!)CaDb3')5F!"63@F'%"M4`'$f%""53+!Z6PiJAe#26Y!!!!cT5Qpj)A"PCQC\r`Gh"M!!!!!EBXX0S!N!d$!!)!N!6rN!3!N!B,"!!!#`3!!!X%!!!"d!!%"!$rN!3\r!N!G)!!!!4!!!!!N!!!cJ!J%%!2q3"!#3$J&)!!!!J!3%"!#3#!%!!!!drj!%!*!\r%rj!%!*!(!3!!!!`!!!!"!!!!M!!!!*3!!!&!!!!!!3#3%``!N!J#!!!+!J!!'J)\r!!#S#!!!h!J!!4!)!!%m#!!"F!J!!DJ)!!(J#!!#"!J!!M!)!!*d!!3#3"3-!N!4\r+#d)!4J%!!%0KFQ*[ENaTBJ"33NK(CA4@5@jQEe0jEQ-!8%*%DA*$FQ9KG'96H@j\rM!%GPG$&5CA0[GA*MC3"(CA4*EQ46G(*TEQF!8f9d8Q9c6'pKC!"$E'pcC9*PFdC\rTE'8!3Qa[BfY0EhCP4'&dB3"33NK%C@aPG'96H@jM!&*PFd9bFQpb!%CTEQ4'Efa\rNCA)!8%*(CA4$BA4*EQC[8hPZB`")6h"PEP*PFdCTE'8!N"0m#!+QNq(rr*2"rrL\r6SIrdNi(rm*!!!3!)P#(qF(am'hLVh!!J1!$rrl!F!#!i!2rrN!!F!#+S(!!!,!!\r!"%##!NL!(!!3,!!)!%'!!E5!(!!3,!!)8%#!!DJlS!!!Im2cH)#F!!)iS!!!1-%\r"F$MK!@a)!!PGJ%%!&(ar'hKri!Fe3))!$$ZJ!!&)!!!NIm2cH)#F!!+)[!!'1-%\r"F$MK!@a)!!NYJ%%!&(ar'hKri!Fe3))"&$J!!!#B!3$H1!!!!*!!!3%-1!%!hT!\r!!3%5U!%"F,!"!4D!!3&XN!!"!6!i!2rrX!%"($KK!3")!!MpJ%%!&(ar'hKri!F\re3))!c$Kq!!!mJ'9i1+!!!$M"!0`ii3$B1)4dENJ!#,Q!33!8I(mEH(rJ"c9!JJ#\rJ1!!!!*!!!3%-1!%!hT!!!3%5U!%!h,!"!4D!!3$BN!!"!6!i!!!!X!%"($KK!3"\r)!!L4J%%!&(ar'hKri!Fe3))!'+J"!4D`(!!JJ!%"-*!!(!!L5!!!6$J!!!#3!!%\r!P$J"!0k3!!%!QUJ"!0b`!3#HJ!%!f*!!!3#i1'%!L%J!#&f!33!8I(mEH(rJ"c9\r!JJ!8U!%!h,!F!##!!3#iN!!F!#*ri!Fe3))!Z&HJ"Mp!JJ#`1!!!!*!!!3"+U!%\r"F,!"!%k!!3&XN!!"!'JiB3!i5!!)*B""!"4)!!#)1(i!!$b!a'f)[!!'1-%"F$M\rK!@`iK'pN5!!(ZB""!"4mIaYiIq!(08'#!%bch!!J1(`!!$b!Bh3mS'9i2-"YEcc\rJBf3p!&0815!MMcP!!!SiK(*X1+9dEMM'C'dijf9f13K5)dJ!!%9J!!!!I(mEH%J\r!!"5S!3&`X"`!))!"!@b3!"`!)V2m!"k!!3'B1#%"N!"m#!1QJq(rr)2"rrL$SIr\rdJi(rm%k!!#"m#!+Q[Z(rh*!!!3!)P#(rF$Y$!!!kj!!!1`8!!$YQ!!!lK`!!1kJ\r!!$[*!!!lkJ!!UcS!)$J!rrq`'J!J1!$rrj!!'J!L1(N!!$LA!!#)ZJ!'1-%!A$M\rK!&K)!!E4J%%!&(aJ"c9!JJ$3I"Li3%'#!#3iH3!!1*J!!)Lk!!Bi`3"811%!8%J\r!"U@!33!85!!!&+J"!&b`!3"8J!%!@*!!!3"3I'!(08##!*!!U!%!9,!"!%U!!3"\r3N!!"!%bc`3"%Xq%!4SJD!!DB!3")Nf%!1*1"!$b6S3"!U'%!A)#"!&JiS!!!1-!\r!!B$L!$!j!3!i5!!$L@!!!!"mB!Fe3))!2)#"!%b!!3"3I!3!!%##!"`iB2r91!$\rrrl!D!#!i!2rrN!!D!#*)!!!8U!%!5V!D!##!!3"-N!!D!#+!!3#B1#%!N!"m#!1\rQZZ(rh%k!!#"m#!+QNq(rr*2"rrL6SIrdNi(rm*!!!3!)P#(q3$Z$!!!lT!!!I,m\rVH)"m!#5!(`!!I!-!3%##!FL!I!!JJ"m!"(`$!%"!JJ'i1'!!!%J!"I@!33!8U(`\r!&S#F!'5![!!51-!!!8J!"I@!33!8I(iEH$KJ!!&)!!A0J%%!&%J!"I@!33!8I'!\r(08##!95!I`!)2!1XV#J!8L0!JJ"81'!!!%J!"D'!33!82'"69+LI!!`iBe)M5!!\r&eB""!"4mI"Yi1'!!!8J!"Af!33!8+"`!!%'#!43iB3#NU*m!$+Lr!!j)!!A"J%%\r!&%J!!&#!I`!)U*m!$%J!"C@!33!8I(`EH%J!"A'!33!8+"`!!%'#!0#!I!!!1)%\r!T)#m!!#)"3!!I!8(G$LP!!&)!!@4J%%!&%J!!!K)!!#S1!%!T*!!!3"+U"m!%V!\r"!%k!(`!8N!!"!'Ji!!!!X!%!9$KK!$K)!!5GJ%%!&(aJ"c9!JJ!BU!%!6V!I!"+\r!!3"SN!!I!"4)!!"JI'!(0#`!riK"JJ!3I'!(0#`!rp9!JJ!iL"m!%#J!!!""JJ!\rX1'%!1%J!"'Q!33!8I'!(08##!"LS!3"1X"m!%S!"!'L3!"m!&%J!!"3i!2rrX"m\r!%MJ!rrq3!"m!&$J!!!'B(3!!Im!(0#`!rrp"JJ!3Im2cH%J!"0f!33!8J!%"b$J\rK!F"m#!1QJq(rr)2"rrL$SIrdJi(rm%k!!#"m#!+QNq(rr*2"rrL6SIrdN!!"!!L\r8)Iq`1k-!!$[N!!#J(`#d+!!!!%'#!"5JI`#fS"m!Y(`$!%"!J!#m1m!!!D"r!,B\ri!`!"X"m!YV2I!##6[`!d1(m!"%J!!i@!33!8X(m!X+JI!,!X!!!!3))!3$Kr!!3\riR`#bJ,m!Z)'I!!")!!4PJ%%!&)JI!#*8!!Eh3B)!()JI!,)S!!!!3))!%)"r!$4\rrj2Yi5rrr@6[H!!'S(`#`,!!!!%##!"#)(`#b+!!!!%'#riLS(`#`,!$re8'#!"#\rS(`#`,!$XH%##!!`i!!!!X"m!X+"r!,Bi!rrrX"m!YS!"!&Ji)3"3I!J$TS2Krrb\r$`IriJk(rp%k!!#"m#!+Q[f(rl*!!!3!)P#(qi$YM!!!lK3!!1kB!!$[(!!!lk!!\r!+"i!!%'#!+3iH`!!1,`!!$M"!$`ii3!i5!!"q@!!!!"mB!Fe3))!L)J"!$JS!!!\r"3))!F$Km!!!iQ`!!1+%!1NJ!!C&J!!!!I'!(08##!'#6`3"!1!%!X*!!!3"@U!%\r!1V!"!&Si!!!!Q!%!X$J!!!#`!3$`1!!!!*J"!2+cS3$d1!!!!,!"!2D6i3$iJ'%\r!2$L"!%",rrijU'%!m%J!!"!iB2q)5!!!#$KJrmk!!3%S1#%")(`)!kDlBIrX6S!\r!)(`)!UD6iIrmN!!"!!L8)Il!I,mVH#JI!!""JJ"JX*m!&LJ$!!"!JJ!B1!!!!*!\r!(`!51!!!!,!I!"a)!!!S1)%!1)LM!!!iT3!"5!!#BB""!"3i!3!iN!!I!")i!2r\rrX"m!((rMqhK)!!*eJ%%!&$J!!!#3!"m!%NJ!!!JiB2r1J!%"5$JK!8"m#!1QJq(\rrr%k!!#"m#!+QNq(rr*!!!3!)P#(rS(cI-hJS"3!!3B)!%)J&!!!S!!!!3))!)$J\r!!!#B!3!i1!%!1*!!(`!51!$rrl!I!"a)!!!3N!#r!")i!!!!X"m!(,"r!"D3!*m\r!-(rMqhK)!!$pJ%%!&$J!!!#3!"m!%S!"!'Ji)3"JI!J$TS2Krra1J!!JI!J#TT2\rKrrb3!!%!#*3Krd"m[bYi1+%!1%[rrYPmB!Fe3))!$+J"!%k`(`!!J!%!b$JK!-"\rm#!1QJq(rr%k!!#"m#!+QNq(rr*2"rrL3!!%!#*3Kre!laJ!!1qF!!$M"!$K,rrm\rKI'!(08##!%#)!3"@9!3'pMJ!!!"mK!"3-!6rrh`!)4#B(`!!L"m!!#J!!!""JJ!\r3J!%!D*!!(J!!5!!!$)!"!*b3!"i!!)!"!,Ji)3#`I!J$TS2Krrb$`Iri6S!!))'\r#!#53!%%!&)!-!!#!6!!%I!N$TNk!"##"JJ!SN!""!"5!$!!!J%`!"(`*!kC1J!3\rJJB)!"*!!33!8J!`!!)"-!!4m#31Q6S!%))'#!"b3!%%!&)!-!!#!6!!%I!N$TNk\r!"##"JJ!3N!""!"5!$!!!J%`!"(`*!kC1J!3JJB)!,*!!33!8J!`!!)"-!!4m#31\rQ6S!%))'#!##3!%%!&)!-!!#!6!!%I!N$TNk!"##"JJ!)N!""!"5!$!!!J%`!"(`\r*!kC1J!3JJB)!$*!!33!8J!`!!)"-!!4m#31Q6S!%))'#!"L3!%%!&)!-!!#!6!!\r%I!N$TNk!"##"JJ!8N!""!"5!$!!!J%`!"(`*!kC1J!3JJB)!!*!!33!8J!`!!)"\r-!!4m#31Q6S!%))!-!!#3!%%!&(`*!kD!6!!%6S!%)%k!!#!!N!dc)6`+)J2X"!!\r!!9)!N!5!#!#3"4!!%!#3#8J!!!")!*!&"!!"!!3!N!B"%J#3#3)!N!83!"!!N!8\r#!*!&%!!3!*!%'!"qB(riIrarr(rmIrarr(rmIrarr$rm$ri$r`$r!$iB!'CJ@CK\r'"%'%3'4!&%!F3"a!('!F1"`1(J1I!2m!2J!!&EJ!!!!'!!$rN!B!!Fb3"2rr!!+\rCN!6rr`!$CT!%c-`!"%53"J!&)T!'!!m!N!F2m!#3"3p#,r!2m!!!$a4#,r)Im!!\r2%44#)L%[!!m4%44#)Lm!$a%4%44#,`!2%C!%(bm!$a'3"#mr!!m4N!3[2`!2%C!\r%,cm!$c)4%4%[2`!!rc)4%5mr!!!!rc)4,cp3!!!!rc)[2e8!N!6r2cp9!*!&rr9\r3!!!(V'!+!!"*6&K$%j-!!%lk!!41G8j@rXK)ja`J*'i!#$JU!#!eI2rr!#"`rb9\r!!#)-8J!%CJ!"PJbU!!!)!!!3E3!"*JbU!!!)8!!3E!!"'RS!98mr"#mU!!*#*dK\rZrj*)E[q1F!#S)c!I0J"Q"(S"B"a96cm%,bS!!KmU!!C)E[q55'lrMR!!U#-`(cB\r!5N0Q!!#f3Llr(N+Zrk""l[mH,8MrTMeZrj,rULeZrilra$emrrrrX%(Zrj4`#D*\rJ0J"Q!!#'98mr"#mmCAKdEN)R5'lr(%KZrXK`!+JM-"mf!'CQ3UlrS%(ZraiY52q\rQ2@lr(2qU,@lqb2r%3QlrX%(Zrj4`#D*J0J"Q$M9ZrkS!)#9Zrm3!)Q!`3Ulr5N(\rZraiY52p32@lr(2p8,@lqb2pZ3Hlr2R!'SQ!f!'B-0@lr(!!J*@lrEJ!L5N0QI%S\r&CRK#V[lH2@lrN[lL,@lrM[lm3Hlqc+)*B'"96cm%,bS!!KmU!!C)E[q55'lrMR!\r!U#-`(cB!CcBe4!!J,ccJ!3!!,ca69&)J,ca38N95,cafCh*N,caPH(4Z,caPH(4\rZ,`T1ZJ!X0J"2l`!FB!`eE[q5!#!PE[q1!#)e3`!H60m%1%jH,Tp1GB4YB@PZ!!!\r!6PErh%MR'#!NEJ!)1#S!)$9mrrm!)($r*8!!)P922`3[,J!-(bS!"NKZrq*)E[r\rHF!#S)c!I0J"Q!!#b)#i!%,#Z!!aR(P922`3[,J!3(bS!"NKZrpa)E[rNF!#S)c!\rI0J"J$$eZrq,rh#eZrplrj%T$CRJpE[rFrrSYE[rNrr`pEJ!Jrr3pEJ!LrrBGDJ!\r'rrJYEJ!8rqJYEJ!Brq`YEJ!Frr"96cmZrq)[,[rH3UFr2!!"5(S!8%KZrqK1ZJ*\rU-"mf!'BQ)#lrr,#Zrq4Q%(E90Acrr`!JF2mP3!!LB!`eE[rk!#!PE[rm!#)`!dc\rI""K1ANjeM%ej4QPZC%C[E'4PFJ!!!%j@rT4)ja``+#i!%#4Z!!LAbhB!H[mJ4#!\rS!#5`NQB!!6)J4#!S!##`UJ!%CJ!"*%)RUCY96b"%2bJ!&L"%,bJ!C#"%,bJ!%Km\rm!!'S'M!I1J!I2!!"UCY96kQ[-"mf!'B!!0i-UP088L-!#'Bd3LHTQeP2,ca69&)\rM2bS!$+JI)&mQ5"mm!!'TQb!,C`!!ZNKZrT3r+J!-2bS!$Nkk!qCJ0&P2,bS!#$m\rU!!bS(b"I*NK96kQ[-"mf!#!,Ca3J8a!35)"53%M!)&0$l[k8SLjJ"(E1B'T"l[k\r8,8MrTMeU!",rULeU!"6ra%*Zrl""l[q8F!QLB$B!CJieE[qU!")PE[r%!"4J1!a\r$riKR"Ja$rp9Q)%SU!""R'N(Zrj4`"U*J0J"Q$M9ZrkS!%L9Zrm3!&'!-0Acrr`!\r5F2mP3!!8)'i!$"#m!!%-4IrrC`3r"DQD60m-1%jH)&p2l`!-6Y#069P*9%95394\r&8&*23`!!6PB!!%MR'#!S,J!)*'i!$%TU!,4R#M!U!,D`DJ#dC(*f!9*U!,Be3`!\rJ*83!0%(U!!4`#D*J08!!X%TU!,"Q,%KU!!4)DJ#b,bS!Z#"56T!!%#S!)J*!!""\rR%NSU!,*Q$#m+,bS!0%kkrjK36e*$5QS!X'B'5LS!XQHX$'Vre3#`C`J-DZai!,"\rQ"%*U!,"6DJ#f60m%'%jH6R@95A4PFQ&dC84TFQ9MG'pbH8aPGQ9X!!"19[mm,`0\r+VJ!-C`!!MP922bi!'LmZ!"B[,J!55'lr3%KZrce1ZJ(5-"mf!'CZ$#i!!ImpCQ"\r96bmZ!")r,J!D5'lr2Nkk!@J`(cB!CNiYEJ!-rd4"l[p%3HJ!F#e)reSpE[mqrej\r#,[qd3Qlrp%)ZrrBpEJ!3rrK#E[rk,@i!#2rm5'lr4#mZrd"1Z[l#0Llrp&"2B!C\rfL'!#GXir3`$N*Kp1AL"I6qm!&%l3N!"*9%95394&4%P548086e*C!!!!6PEr!%M\rR%$!QEJ!1*'i!##!+CcieEJ!-!"BJ#fB+3US!%N*U!"aJ(L",3qlr!(!!%"053%M\r!SLj"l[m!*8J!%M9mrrm!(#"+SJFf!%+U!"*J!RE12d-"(NcI$!K1AL"I6qm!#Nl\r3NdG&9&C26&9048P14Np16dj"688!!%j@rq")ja!`*Qi!$#4Z!!JJ#fF%5K0Q&%)\rZrq""l[rJ*8J!%M9mrrm!('!)*8X!%N*U!"`eEJ!8!"BPEJ!3!$!J5R!*SQ!f!%+\rU!")r3`"#60m-#%jH)&p2l`!16Y#3!%G&9%0"9%P14Np16dj"688!!!"19[q',`0\r96bmZ!!ir,J!-5'lrKNkkr[``(cB!CJJJEJ!)-+lrR$p$!*!!*Kp1AL"I6qm!#Nl\r3N!"%494&8Ne*6N9@8N9'6P90!!!!6PErP%MR%$!QEJ!-*'i!#&922bi!'#mZ!"3\r[,J!35'lrP%kkrb!`(cB!CKS3,[qb!N!!%&E!4!!8J'F'*Ulra'!%*Ulrq$p$!**\r-h``)6PiJAdr[!"*1d)j(494%59*&3e428PP*4!!!!%j@!!"C6bmm8e45)cmZ!!U\rTS#*Z!!a#%5!ICb)J3#"3-"Jb,J!)CaDb3')5F!"63@F'%"M4`'$f%""53+!Z6Pi\rJAe#26Y!!!!cC5Qpj)A"PCQC`Gh"M!!!!!EBXXJX!N!d$!!)!N!6rN!3!N!B,!!!\r!#`!!!!X!!!!"d!!%"!$rN!3!N!G)!!!!4!!!!!N!!!c3!J%%!2q3"!#3$J&)!!!\r!J!3%"!#3#!%!!!!drj!%!*!%rj!%!*!(!3!!!!`!!!!"!!!!M!!!!*3!!!&!!!!\r!!3#3%``!N!J#!!!+!J!!'J)!!#S#!!!h!J!!4!)!!%m#!!"F!J!!DJ)!!(J#!!#\r"!J!!M!)!!*d!!3#3"3-!N!4+#d)!4J%!!%0KFQ*[ENaTBJ"33NK(CA4@5@jQEe0\rjEQ-!8%*%DA*$FQ9KG'96H@jM!%GPG$&5CA0[GA*MC3"(CA4*EQ46G(*TEQF!8f9\rd8Q9c6'pKC!"$E'pcC9*PFdCTE'8!3Qa[BfY0EhCP4'&dB3"33NK%C@aPG'96H@j\rM!&*PFd9bFQpb!%CTEQ4'EfaNCA)!8%*(CA4$BA4*EQC[8hPZB`")6h"PEP*PFdC\rTE'8!N"0m#!+QNq(rr*2"rrL6SIrdNi(rm*!!!3!)P#(qF(am'hLVh!!J1!$rrl!\rF!#!i!2rrN!!F!#+S(!!!,!!!"%##!N5!(!!3,!!)!%'!!E5!(!!3,!!)8%#!!DJ\rlS!!!Im2cH)#F!!)iS!!!1-%"F$MK!@a)!!PCJ%%!&(ar'hKri!Fe3))!$$ZJ!!&\r)!!!NIm2cH)#F!!+)[!!'1-%"F$MK!@a)!!NTJ%%!&(ar'hKri!Fe3))"&$J!!!#\rB!3$H1!!!!*!!!3%-1!%!hT!!!3%5U!%"F,!"!4D!!3&XN!!"!6!i!2rrX!%"($K\rK!3")!!MjJ%%!&(ar'hKri!Fe3))!c$Kq!!!mJ'9i1+!!!$M"!0`ii3$B1)4dENJ\r!#,@!33!8I(mEH(rJ"c9!JJ#J1!!!!*!!!3%-1!%!hT!!!3%5U!%!h,!"!4D!!3$\rBN!!"!6!i!!!!X!%"($KK!3")!!L0J%%!&(ar'hKri!Fe3))!'+J"!4D`(!!JJ!%\r"-*!!(!!L5!!!6$J!!!#3!!%!P$J"!0k3!!%!QUJ"!0b`!3#HJ!%!f*!!!3#i1'%\r!L%J!#&Q!33!8I(mEH(rJ"c9!JJ!8U!%!h,!F!##!!3#iN!!F!#*ri!Fe3))!Y&H\rJ"Mp!JJ#X1!!!!*!!!3"+U!%"F,!"!%k!!3&XN!!"!'JiB3!i5!!))B""!"4)!!#\r%Im2cH)#F!!+)[!!'1-%"F$MK!@a)!!HjJ%%!&(ar'hKri!Fe3B)!6,2F!#!iI!!\r!2)"PH$bJCAJm`(CR21"38Md!8e3j)1!"18!!!$L%G'iiTA4Z1-CbC$MR49)j#&)\rJ5!!!4@!!!!"mIaYi5!!!&+J"!A#`(!!JJ!%"E*!!(!!LXr`!(S!"!CJi)3'3!(`\r)!kD$iIrmJm(rq)1Krr5$JIr`6S!!)(`)!UDqiIrFN!!"!!L8)Ip`1d-!!$VN!!!\rl"3!!1fB!!$Z(!!!lU!!!1mN!!$[U!!#V1J!J1!$rrl!D!#!i!2rrN!!D!#)iH3!\r!1*F!!)Lk!!Bi`3"F11%!@%J!"Y'!33!8I'!(08##!0"m',K!3B)!*$Kj!!!iQ!!\r!L,S!"MM"!&3ii3"35!!'TB""!"4)!!!8U!%!A,!"!&5!!3"BN!!"!&"mB!Fe3))\r!N!#S!3"8X!%!5S!"!&#3!!%!6,2"!%5ci3"'L"S!"TJ"!%L6B3!iNi%!2*1K!%#\rSB3"FJ)%!@$LJ!!!i`!!"J1)!-$N"!$K)!!1*B!!!!(aJ"c9!JJ!mJ)%!6)!"!&"\rm"!!!3))!($KJrp8i!2rrX"S!)$J!rrq3!"S!)NJ!!"5S!3"+X"S!))!"!%b3!"S\r!)S!"!*Ji)3#3!(`)!kDkiIrF6S!!)(`)!UD6iIrmNm(rq*1Krr56JIr`N!!"!!L\r8)Ij!1i-!!$ZN!!"m[bYiJ(`!*)!I!!"m!`"!3))"b)"m!##!(`!%I!-!3%##!EJ\riB!!!5!!&pB""!"5SI!!@J*`!C)#m!")i`!!"5!!&pB""!"4mIKYi1'!!!8J!"Ff\r!33!85!!&pB""!"4mB!Fe3))"9)"r!!Jm!kbX+!"5)d##!&3iB!!!5!!&SB""!"3\rmB&08U*m!$$KM8L0)!!A9J%%!&(am'hJiB!!"5!!&IB""!"3S(!!!3B)"&$KK!+5\rSR`!-U,m!$NJ!"F'!33!85!!!8)"r!!LSR`!-5!!&PB""!"4mI"Yi5!!&FB""!"3\rS(!!!3B)!d)"m!!!iJ3#NJ,`!!)J&!!"m"3Gd1+8!!8J!"C'!33!85!!!#%J!!+J\ri!3#NN!!"!%US(`!5X!%!6S!I!"53!!%!D$J!!!#`!3"81'%!1%J!"*f!33!8I'!\r(08##!"LS!3"1X"m!%S!"!'L3!"m!&%J!!'"mB!Fd,!$rL%'#!""mB!Fd,!$re8#\r#!$L)(`!3+!!!!%'#!#`iB3!i5!!%DB""!"4mB!Fe3))!'+J"!%k`(`!5J!%!D*!\r!(`!85!!!&$J!rrq`(`!51!$rrj!!(`!81!!!!CJG!!"r`!Fd,!$rrd'#!""r`r0\ri5!!%hB""!"5!!3()1#%"`(`)!kD$iIrmJm(rq)1Krr5$JIr`6S!!)(`)!UD6iIr\rmNm(rq*1Krr53!!%!#*3Krl!lS`!!1q3!!+!I!,3S!!!!3B)!&+"r!,DJ(`#dI!-\r!3%#!!,`l`!!"S(m!YMJ$!!'`(`#fXpm!)*1r!$3iI`!%5!!$KB""!"5`I`#`U"m\r!X#`!!!"!JJ"!1(m!"$LI!,+![`#iJCm!!%J!"'@!33!8L"m!)P3!"[G"JJ!FL"m\r!XLJ!!!"!JJ!3J(m!0(rNqhK,rrpC1pi!!DJI!,!X!!!!3))!%)JI!,)S!!!!3B,\rrL+JI!,!X!2r93B)!%+JI!,!X!1ai3))!$$J!!!#`(`#`S(m!YMJ$rrq`(`#fJ!%\r!@$JK!&"m#!1QJq(rr)2"rrL$SIrd6S!!)(`)!UDrBIrXN!!"!!L8)IlJ1f-!!$Z\r&!!!lTJ!!1mF!!$[S!!!S(J!!3B)!T$Kl!!!i[!!!1-%!2$MK!$K)!!(jB!!!!(a\rJ"c9!JJ#)L!%!1#J!!!&!JJ"`1(`!!$LE!!!iS3!k5!!"N@!!!!"mB!Fe3))!B*2\r"!%!i!3#`N!!"!&DS!3!kX!%!@MJ!!!#B!3#`1!!!!,!"!2!i!!!!Q!%!mV1K!23\ri!!!!X!%!pT2K!2L!B3!m1)%!3%[rrMQSB3$`5!!!%$KJriK)!!!)1'$rcS!"!5J\ri)3%JI!J$TVYKrqa1J!!JI!J#TT2Krrb3!!%!#*3KrX"m[bYi+"m!!%'#!'#`R`!\r@+!-!!%##!"Ji!!!!N!!I!")i!!!!X"m!(%J!!#JiJ3!iL+-!!$LP!!&)!!*KJ%%\r!&$J"!$L3!"m!%MJ!rrq`(`!FIq2lH%J!!R@!33!81!!!!*!!(`!55!!!#$KJrmk\r!!3&)1#%"3(`)!kD$iIrm6S!!)(`)!UD6iIrmN!!"!!L8)IqJI0mcH#J&!!""JJ!\r3L!8!!#J!!!"!JJ!J1!!!!*J"!$Ji!3!iN!!I!")i!2rrX"m!(%J!!"#3!,m!%MJ\r!!!#`(`!FX(m!&T!!R`!`Iq2lH%J!!2f!33!81!!!!*!!(`!5J!%!D$JK!'"m#!1\rQJq(rr%k!!#"m#!+QNq(rr*!!!3!)P#(r3(br+hJiS3!i5rrqfAaJ"c9!JJ!-U!%\r!6V!I!!#!!3$)1#%!`(`)!kD$iIrm6S!!)(`)!UD6iIrmNm(rq*!!!3!)P#(r8$[\r'!!!lj`!!1-%!1%[rrb&mB!Fe3))!3)J"!&C8"!Ef1!!!!(b%!&!`"2rrI!!K%*J\rI!!#)(`!!+!!!!%'#!"#!!3"SN!!H!!")!!!-J!%!R*!!(J!!J!%!Z$JK!,"m#!1\rQJq(rr)2"rrK1J!!JJB)!**!!33!8J!`!!)"-!!4m#31Q6S!%))'#!#L3!%%!&)!\r-!!#!6!!%I!N$TNk!"##"JJ!%N!""!"5!$!!!J%`!"(`*!kC1J!3JJB)!(*!!33!\r8J!`!!)"-!!4m#31Q6S!%))'#!"#3!%%!&)!-!!#!6!!%I!N$TNk!"##"JJ!XN!"\r"!"5!$!!!J%`!"(`*!kC1J!3JJB)!)*!!33!8J!`!!)"-!!4m#31Q6S!%))'#!!L\r3!%%!&)!-!!#!6!!%I!N$TNk!"##"JJ!-N!""!"5!$!!!J%`!"(`*!kC1J!3JJB)\r!'*!!33!8J!`!!)"-!!4m#31Q6S!%))'#!"53!%%!&)!-!!#!6!!%I!N$TNk!"##\r"JJ!!N!""!"5!$!!!J%`!"(`*!kC1J!3JJ!`!!*!!33!8I!N$TS"-!!41J!3J6S!\r!)!!c)6`+)J2S"!!!!@S!N!5!#!#3"4!!%!#3#8J!!!")!*!&"!!"!!3!N!B"%J#\r3#3)!N!83!"!!N!8#!*!&%!!3!*!%'!"qB(riIrarr(rmIrarr(rmIrarr$rm(ri\rIrarr(riB!'CJ@CK'"%'%3'4!&&qF89a4h(*F09`5AK9I%(mIrJ!!4*F!!!!*!!$\rrN!B!!Fb3"2rr!!+CN!6rr`!$CT!%c-`!"$-c!!#CQ3!&lT!'!!DlN!B!"d53"J!\r))T!'!!m!N!F2m!#3"3pb,r!2m!!!$aGb,r)Im!!2%4Gb)L%[!!m4%4Gb)Lm!$a%\r4%4Gb,`!2%C!%(bm!$arrrr%I2`!2(e9IAamr!!mI99rr(cm!$cp94@mI2`!!re4\r8Eamr!!!28N9[(cq!!!p8*'m[2iJ!$e99EcmrL!!2rj!&J!!!!*!!B!S!!%P-@%-\r6M!!!6[S!"%je6PErqLm+,`-NEJ!)2AcrrrrqF2mY32rk$&)!"'C198mr+J!J,bS\r!!KmU!!C)E[rq5'lrqR!!U#-`(cB!Caj96cmU!#![2'eKBh0#*dKZrrj)E[rkF!#\rS)c!I0J!eE[rq!#!PE[rk!#)e3`!H*KmNAdjH,Tp1GB4YB@PZ!*!&!G&+EhNKF'9\rQCR"hF'-!!!!"YLbi&J#3$3-!!J#3"2q3"!#3"l3!!!#d!!!!Y!!!!4!!"!3!rj!\r%!*!(%!!!!!`!!!!"!!!"d!)""!$rN!3!N!q%!!!!J!3%"!#3#!%!!!!%rj!%!*!\r%rj!%!*!(!3!!!!%!!!!"!!!!B!!!!'3!!!"m!!!!!3#3%`%!N!J#!!!+!!%!N!8\r#!*!%5J"'!%0KFQ*[ENaTBJ"'D@jN4QpXC'9b!*!BI!J#TT2Krrb3!!%!#*3Krl"\rmIaYi1!$rrl!"!$`i!2rrN!!"!$LS(`!!,!!!"%##!&bSI`!JJ*m!!SLr!!Bi`3!\rm11%!1%J!!&Q!33!8I'!(08'#!#5SI`!J2)"YB6LJ!!!i`3!m11%!1$L%Bh0)!!!\raJ%%!&+J"!$b`(`!JJ!%!1*!!(`!LX(m!(S!"!&Ji)3"3I!J$TS2Krra1J!!JJB)\r!!*!!33!8J!`!!)"-!!4m#31Q6S!%)!#3$!`!!!'+!*!%J!J!N!83!"!!N!P)!!!\r!5!#3"33!!3!%!*!'!4)!N!N#!*!&%!!3!*!&!J#3"4!!%!#3""J!IQ"rq(rmIra\rrr(rmIrarr(rmIrarr$rq(rm2I`Bq'!"QB&QB4J4"K%"N4G41[&8FDla1r&YF)0i\r4R`Yr"Mi!!#2a!!!!$3!!rj!'!!(rN!6-c!!#rj!%!!!!!rrrc-bCQ3!%rrpQCXc\r-!!A-N!6rr`!'c-bCQ@CQ!!HCN!6rr`!)CT!%c-`!#6-c!!#CQ3!+lT!'!!Y%N!B\r!$#+3"J!2!*!($r!!N!82Yhr`$r!!!!pEYhrhAr!!$e9EYhGeI`!2999EYhGr!!p\r9999EYhm!$e9IArPrI`!29IrdNCq2!!pIVbm32im!$rVbrj1IM`!2U[rfQCq2!!q\r[q[p[Iim!!2UUU[prMm!!$kU[Yhq2c!!!q[J2[ir-!!!2J!$rrm!!!!#3!'!+!!"\r*6&K$%j3!!%lk!!41G8j@rrS[#Lm$*'i!#$emrrrrrR$r,8$rqJa5!!4Q6P922bS\r!)#mU!!)I+J!'5'lrrNKZrrT`!+JM-"mf!'FH98mr+J!J,cacG(*d3LG)E[rq5'l\rrqR!!U#-`(cB!0@lrrJ!J*@lrqJ!L08-!(LBI*&p1ALkI6R@%E@&TEJ#3"3(45Qp\rj)A"PCQC`Gh"M!!!!!EBXZ!J!N!d$!!)!N!6rN!3!N!Hd!!!!Y!!!!,3!!!%3!!3\r%!2q3"!#3"a!!!!!-!!!!!3!!!G!#!33!rj!%!*!2K!!!!)!%"!3!N!J"!!!!"2q\r3"!#3"2q3"!#3"`%!!!!"!!!!!3!!!'!!!!"N!!!!I!!!!!%!N"-"!*!)!J!!#J!\r"!*!&!J#3"%S!4J"$BA*LEfj-D@)!4QPZC%C[E'4PFJ#3'(`)!UD6iIrmN!!"!!L\r8)Iq`I(mEH$J!rrq`!3!m1!$rrj!!!3!iU"m!!#`!!!4!JJ"FU(m!))#I!!+)[`!\r'1-%!2$MK!$K)!!"CJ%%!&(aJ"c9"JJ!NU(m!)$b!Fh3iS!!!1-%!2$MK!$JiK(*\rd5!!!-B""!"5S!3!mX"m!))!"!$L3!"m!)V"r!"k!!3"B1#%!8(`)!kD$iIrm6S!\r!))'#!!#3!%%!&)!-!!#!6!!%I!N$TNk!"#!!N!`-!!!"BJ#3")!)!*!&%!!3!*!\r*5!!!!%J!N!8%!!%!"!#3"J%5!*!*!J#3"4!!%!#3"3)!N!83!"!!N!3B!(jJIrK\rrr(rmIrarr(rmIrarr(rm2r`IrJrr"hm!2KJ!CQ"CQ%B%3B4!C%!83"a((%MFFP`\rbA"*H#0m(I`!q!!!J"`!!!!J!!2q3"J!"c*!%rrm!!TQ3"2rr!!0QN!6-c!!%hC!\r'!!@)N!B!"N53"J!()T!'!!m!N!F2m!#3"3pL,r!2m!!!$aCL,r)Im!!2%4CL)L%\r[!!m4%4CL)Lm!$a%4%4CL,`!2%C!%(bm!$a'3"#mr!!m4&984,cm!$a&84&%[2`!\r2084845mr!!$e4&4&,cm!!!9%9%8[2h!!!&4%8bmrG`!!"9822cph!*!&rrG`!!!\r!N!"J#J!!58aB3a19!!"1qJ!%6R919[rk,`S[!b4Z!!JpI2rrrrj`rbe!rrS-8J!\r%CNj96cmU!#![+J!#(bS!"NKZrrj)E[rkF!#S)c!I0J"R(P922bS!)#mmFfKNCN)\rR5'lrrNKZrrT`!+JM-"mf!$9Zrri!)#9ZrrS!)M9$!"iQ(b4I6PiZRdjeK'eKD@i\r!N!8"d8T[H5&`C@CQF(G`B`!!!!'f,,Id!*!0!`!#!*!%rj!%!*!(Y!!!!,3!!!#\rd!!!"%!!%"!$rN!3!N!F3!!!!$!!!!!%!!!(3!J%%!2q3"!#3$i3!!!#!"!3%!*!\r)!3!!!!6rN!3!N!6rN!3!N!F"!!!!!3!!!!%!!!"J!!!!C!!!!(`!!!!"!*!6!3#\r3#!)!!!S!!3#3"3)!N!4+!%B!3f&bBQpZ6'PL!%CTEQ4'EfaNCA)!N"Km#!+QNq(\rrr*!!!3!)P#(rX(ar'hJi!2rrX!%!2$J!rrq3!!%!1+JI!!!X!!!%3))!A+Kr!##\r!R`!#L,m!"MM"!$`ii3!i5!!!@B""!"4mB!Fe3B)!*+Kr!#!mJ(0S1+!!!$M"!$`\rii3!i1)4NCNJ!!$'!33!8U!%!2,!I!##!!3!iN!!I!#+`I`!HJ!%!@$JK!&"m#!1\rQJq(rr%k!!##"JJ!!N!""!"5!$!!!J%`!"(`*!kC1J!3J!*!-$!!!!@)!N!5!#!#\r3"4!!%!#3#8J!!!")!*!&"!!"!!3!N!B"%J#3#3)!N!83!"!!N!8#!*!&%!!3!*!\r%'!"qB(riIrarr(rmIrarr(rmIrarr$rm(ri2r`Gr!$iB!'CJ@CK'"%'%3'4!&%!\rF4aa)h(*F-P`5AJMI"hm!2J!!)!F!!!!)!!$rN!B!!Fb3"2rr!!+CN!6rr`!$CT!\r%c-`!"0f3"J!&L*!'!!C%N!B!"b+3"J!2!*!($r!!N!82BLr`$r!!!!m@BLrb(r!\r!$a%@BL)K,`!2%4%@BL)[!!m4%4%@BLm!$a'3""m[!!m4N!3[2`!2%499%5mr!!m\r49%44,cm!$c9%9%8[2`!!p84845mr!!!&4&4&,cp`!!"84&-[2hF!!!99$cmrG`#\r3"IrhF!!!!14J#J!!58aB3a1,!!"1qJ!%6R919[rk51FB)#4Z!!JpI2rrrrj`rbe\r!rrSQ+J!#$&)!"'B!!*j96cmU!#![!amU!!C)E[rq5'lrqR!!U#-`(cJ!Cfi-Jm4\rfEf0Q)LBmCRC[Be922bS!)#m$(c`!!8KZrrj)E[rkF!#S)c!I1!"+4'G!$)0QE'j\rdCJJQ2(4PEA"J"LBmCAKdEP922bS!)#mmCAKdEJb$G'9YF&I!4!")J"m!5'lrrNK\rZrrT`!+JM-"mi!$9Zrri!)#9ZrrS!)M9%!"j-h`3B6PiZRdjeK'eKD@i!N!8#38T\r[H5&`C@CQF(G`B`!!!!'fAT`-!*!0!`!#!*!%rj!%!*!'!5J!!!%S!!!"+!!!!4!\r!"!3!rj!%!*!(%!!!!!`!!!!"!!!#3!)""!$rN!3!N!q%!!!!J!3%"!#3#!%!!!!\r%rj!%!*!%rj!%!*!(!3!!!!%!!!!"!!!!B!!!!'3!!!"m!!!!!3#3%`%!N!J#!!!\r+!!%!N!8#!*!%5J"'!%0KFQ*[ENaTBJ"'D@jN4QpXC'9b!*!BI!J#TT2Krrb6`Ir\riN!!"!!L8)Iq`I(iEH$J!rrq`!3!m1!$rrj!!!3!iJri!!UJH!!!X!!!%3))!a+K\rq!#"rj2YiL,i!"MM"!$`ii3!i5!!!aB""!"4mB!Fe3B)!M$`I1iSS!'pM3))!+$r\rJCRBlrfpMU(i!)$LI!!!iS!!"1-%!2$MK!$K)!!#0J%%!&(aJ"c9"JJ"82"qCP#J\r!ER4!JJ!32q"dC6[rEA")!!!-2q"PH$[rG'kSIJ!J2)"PH$bJG'8iT@e`I"mS8(`\r!!$48"Giq1-%!2$MK!$JiK(4Z5!!!0B""!"5S!3!mX"i!))!"!$L3!"i!)V"q!"k\r!!3"B1#%!8(`)!kD$iIrmJm(rq%k!!##"JJ!!N!""!"5!$!!!J%`!"(`*!kC1J!3\rJ!*!)$!!!!@S!N!5!#!#3"4!!%!#3#8J!!!")!*!&"!!"!!3!N!B"%J#3#3)!N!8\r3!"!!N!8#!*!&%!!3!*!%'!"qB(riIrarr(rmIrarr(rmIrarr$rm(riIrarr$ri\rB!'CJ@CK'"%'%3'4!&&rF8&aIh("F-&`3AK"I(rm2rJ!!*%`!!!!*!!$rN!B!!Fb\r3"2rr!!+CN!6rr`!$CT!%c-`!"!!!QCRrr`!&hC!'!!D)N!B!"d53"J!))T!'!!m\r!N!F2m!#3"3pb,r!2m!!!$aGb,r)Im!!2%4Gb)L%[!!m4%4Gb)Lm!$a%4%4Gb,`!\r2%C!%(bm!$arrrrmI2`!2(e99Abmr!!mI4%42,cm!$hpQCQm[2`!!re99Abmr!!!\r2CQC[,cq!!!p999m[2iJ!$rrrrhmrL!!!-c-crrL!!!!!N!"J#J!!58aB3a1-!!"\r1qJ!%6R919[rk,`S[!b4Z!!JpI2rrrrj`rbe!rrS-8J!%CNj96cmU!#![+J!#(bS\r!"NKZrrj)E[rkF!#S)c!I0J"R(P922bS!)#mmE@&MFd)R5'lrrNKZrrT`!+JM-"m\rf!$9Zrri!)#9ZrrS!)M9$!"iQ(b4I6PiZRdjeK'eKD@i!N!8"d8T[H5&`C@CQF(G\r`B`!!!!'f,,J@!*!0!`!#!*!%rj!%!*!(Y!!!!,3!!!#d!!!"%!!%"!$rN!3!N!F\r3!!!!$!!!!!%!!!(3!J%%!2q3"!#3$i3!!!#!"!3%!*!)!3!!!!6rN!3!N!6rN!3\r!N!F"!!!!!3!!!!%!!!"J!!!!C!!!!(`!!!!"!*!6!3#3#!)!!!S!!3#3"3)!N!4\r+!%B!3f&bBQpZ6'PL!%CTEQ4'EfaNCA)!N"Km#!+QNq(rr*!!!3!)P#(rX(ar'hJ\ri!2rrX!%!2$J!rrq3!!%!1+JI!!!X!!!%3))!A+Kr!##!R`!#L,m!"MM"!$`ii3!\ri5!!!@B""!"4mB!Fe3B)!*+Kr!#!mJ'eK1+!!!$M"!$`ii3!i1)4MFdJ!!$'!33!\r8U!%!2,!I!##!!3!iN!!I!#+`I`!HJ!%!@$JK!&"m#!1QJq(rr%k!!##"JJ!!N!"\r"!"5!$!!!J%`!"(`*!kC1J!3J!*!-$!!!!A)!N!5!#!#3"4!!%!#3#8J!!!")!*!\r&"!!"!!3!N!B"%J#3#3)!N!83!"!!N!8#!*!&%!!3!*!%-!$m`2r`rrMrq2rirrM\rrq2rirrMrq(riIrarrRrq(r``!-c!Xc#-#)-)J-Mrk-!ShUM3+01S4'K6V%!ZIqi\rIr!!!0Yi!!!!+!!$rN!B!!Fb3"2rr!!+CN!6rr`!$CT!%c-`!"0f3"J!&Zj!'!!D\rUN!B!"hH3"J!)4*!'!!NLN!B!$`#3"rm!N!Ei)[m!r`!!!2'))[mKr`!!m4'))L)\r5m!$a%4'))L,`!2%4%4'))[!!rj!&m[!!rd53"22`!2p2riGPmr!!rdp%4%6cm!$\rr5%HIpr2`!!p(5842mr!!$dC(rrIcq3!2484%422jN!!2rj!%mrQ3!!!$-c-rrjN\r!N!5!B!S!!%P-@%-6PJ!!6[S!"%je6PErqLm+,`-NEJ!)2AcrrrrqF2mY32rk$&)\r!"'Bq98mr+J!J,bS!!KmU!!C)E[rq5'lrqR!!U#-`(cB!C`j`!Le!rrSpDJ!)rrj\rf!$9Zrri!)#9ZrrS!)M9$!"iQ(b4I6PiZRdjeK'eKD@i!N!8"`8T[H5&`C@CQF(G\r`B`!!!!'f,,IQ!*!0!`!#!*!%rj!%!*!(U!!!!+J!!!#S!!!"%!!%"!$rN!3!N!F\r3!!!!$!!!!!%!!!(!!J%%!2q3"!#3$i3!!!#!"!3%!*!)!3!!!!6rN!3!N!6rN!3\r!N!F"!!!!!3!!!!%!!!"J!!!!C!!!!(`!!!!"!*!6!3#3#!)!!!S!!3#3"3)!N!4\r+!%B!3f&bBQpZ6'PL!%CTEQ4'EfaNCA)!N"Km#!+QNq(rr*!!!3!)P#(rX(ar'hJ\ri!2rrX!%!2$J!rrq3!!%!1+JI!!!X!!!%3))!8+Kr!##!R`!#L,m!"MM"!$`ii3!\ri5!!!6B""!"4mB!Fe3B)!'$J!!!+3!!%!1+JI!!L`!3!m1'!!!+J"!$b`(`!JJ!%\r!1*!!(`!LX(m!(S!"!&Ji)3"3I!J$TS2Krra1J!!JJB)!!*!!33!8J!`!!)"-!!4\rm#31Q6S!%)!#3#!`!!!)b!*!%J"!!N!83!"!!N!P)!!!!5!#3"3J!!3!)!*!'!C)\r!N!N#!*!&%!!3!*!&!J#3"4!!%!#3"$!!r-$rm2rirrMrq2rirrMrq2rirrMrq2r\rmrrjrrKjm-!$-`,-`M!L$#*!!b+fSaZMmD*ESMqL'D)CXaQjhlKjm!!!p"J!!!")\r!!2q3"J!+rrr-c$-c!#6-c2q3"!!Uc*!%rrm!,mb3"!!!!&5CN!6rr`"CQC!%!!!\r!HQCQQC!%!(pQN!6-c!#$CT!%!!!!UM13"*QC!+dcN!3!!!$1!!!c-jQC!0!!!$1\r3"!$9!*!%CQB!mJ#3"%4%!2AZN!B!r5+3"J$r!*!)UUS!N!bUUP48UUS!!+UU!*!\r'e5TrUP48UUVe+UUU!*!%e5S!9(qU9*!%p969!!!!e5SU+J"8IkT89&4re3!!!2m\rU+S08+J"8IkT8Ip8!!!$r+S-+VAp8cXj8URr9!!!!ri-+,bqYcJ$bcUTre3!!!2q\rUUPQUcJ!!!2+UIp8!!!$99(qU9+V1!2,bURr9!!!!e5T8IkTrc[,bd+Tre3!!!08\rU+LT8UY8NHY#UIp8!!!$9+LSU9+V9*(V3URr9r3!!eDT8+P5Ue54kd+TreIhp!!$\r9URp8UYA3d0#UIpApr3#3"0@UUY9rIrr9eIhp!*!&J'!+!!"*6&K$%jB!!%lk!!4\r1G8j@rrS[#Lm$*'i!#$emrrrrrR$r,8$rqJa5!!4Q2P922bS!)#mU!!)I+J!'5'l\rrrNKZrrT`!+JM-"mf!'F1F!)Y32rk2@S!#2rqGJ!eE[rq!#!PE[rk!#)e3`!H*Km\rNAdjH,Tp1GB4YB@PZ!*!&!F&+EhNKF'9QCR"hF'-!!!!"YLbhjJ#3$3-!!J#3"2q\r3"!#3"kJ!!!#S!!!!U!!!!4!!"!3!rj!%!*!(%!!!!!`!!!!"!!!"`!)""!$rN!3\r!N!q%!!!!J!3%"!#3#!%!!!!%rj!%!*!%rj!%!*!(!3!!!!%!!!!"!!!!B!!!!'3\r!!!"m!!!!!3#3%`%!N!J#!!!+!!%!N!8#!*!%5J"'!%0KFQ*[ENaTBJ"'D@jN4Qp\rXC'9b!*!BI!J#TT2Krrb3!!%!#*3Krl"mIaYi1!$rrl!"!$`i!2rrN!!"!$LS(`!\r!,!!!"%##!&#SI`!JJ*m!!SLr!!Bi`3!m11%!1%J!!%f!33!8I'!(08'#!"Ji!!!\r#N!!"!$LS(`!)X!%!2$KJ!!#S!3!mX"m!))!"!$L3!"m!)V"r!"k!!3"B1#%!8(`\r)!kD$iIrm6S!!))'#!!#3!%%!&)!-!!#!6!!%I!N$TNk!"#!!N!J-!!!"HJ#3")!\r)!*!&%!!3!*!*5!!!!%J!N!8%!!%!"!#3"J%5!*!*!J#3"4!!%!#3"3)!N!83!"!\r!N!3`!2c!rr$rq2rirrMrq2rirrMrq2riIrJrr"rq$[i%I$!!c-#c-)`)J`L!b)@\rSMUL9U+YScQKED#$X%5i+VJ4m!!!lY!!!!!X!!2q3"J!"rj!%!!!!![rrc-bCQ3!\r$rrpQCXc-!!6-N!6rr`!&c-bCQ@CQ!!DCN!6rr`!(CT!%c-`!#1k3"J!*4*!'!!S\rLN!B!$`#3"rm!N!EjC[m!r`!!!25CC[pNr`!!p%5CCQC'm!$d4%5CCQE`!24%4%5\rCC[!!p%426r6fm!$d42rcp[I`!242Marfpr!!p2Marerhm!$rL2re,rI`!!q2q2p\rIpr!!!2L)L2rhqJ!!$iL2GrIkS!!!q26jprUJ!!!2!!rrqJ#3")"J#J!!58aB3a1\r@!!"1qJ!%6R919[rk,`S[!b4Z!!JpI2rrrrj`rbe!rrS-8J!%CMj96cmU!#![+J!\r#(bS!"NKZrrj)E[rkF!#S)c!I0J"R$R!#,8$rqMeU!!MrrRB!0@lrrJ!J*@lrqJ!\rL08-!(LBI*&p1ALkI6R@%E@&TEJ#3"3("5Qpj)A"PCQC`Gh"M!!!!!EBXYqB!N!d\r$!!)!N!6rN!3!N!HS!!!!U!!!!+J!!!%3!!3%!2q3"!#3"a!!!!!-!!!!!3!!!F!\r#!33!rj!%!*!2K!!!!)!%"!3!N!J"!!!!"2q3"!#3"2q3"!#3"`%!!!!"!!!!!3!\r!!'!!!!"N!!!!I!!!!!%!N"-"!*!)!J!!#J!"!*!&!J#3"%S!4J"$BA*LEfj-D@)\r!4QPZC%C[E'4PFJ#3'(`)!UD6iIrmN!!"!!L8)Iq`I(mEH$J!rrq`!3!m1!$rrj!\r!!3!iU"m!!#`!!!4!JJ"3U(m!))#I!!+)[`!'1-%!2$MK!$K)!!"0J%%!&(aJ"c9\r"JJ!B1!!!!T!!!3!iU"m!#,!"!$`iB!!!U!%!2,!I!##!!3!iN!!I!#+`I`!HJ!%\r!@$JK!&"m#!1QJq(rr%k!!##"JJ!!N!""!"5!$!!!J%`!"(`*!kC1J!3J!*!)$!!\r!!AS!N!5!#!#3"4!!%!#3#8J!!!")!*!&"!!"!!3!N!B"%J#3#3)!N!83!"!!N!8\r#!*!&%!!3!*!%-!$m`2r`rrMrq2rirrMrq2rirrMrq(riIrarrRrq!(``!-c!Xc#\r-#)-)J-L!+2qSdUMHU0+S3+K!V%#ZIki!I!!!53B!!!!,!!$rN!B!!Fb3"2rr!!+\rCN!6rr`!$CT!%c-`!"1k3"J!&hC!'!!DlN!B!"kU3"J!)Gj!'!!P%N!B!#L+3"J!\r2!*!(r`#3"[NLr`$r!!!!mCNLrb(r!!$a%CNL)K,`!2%4%CNL)[!!m4%4%CNLm!$\ra%C!%m[!!rj!%m[2`!2pB")Ebmr!!reL)K[,cm!$r@!5'm[2`!!pA"(Ebmr!!$eC\rAC[,cqJ!29QGQm[2kS!rrrrrcmrUJ!*!%$rqU!*!%j'!+!!"*6&K$%iX!!%lk!!4\r1G8j@rrT)jaJJ*'i!#$emrrrrrR$r,8$rqLBU!!)-8J!%CJ!!RP922bS!)#m$(bS\r!"NKZrrj)E[rkF!#S)c!I1!"REJb$a(C[BfBL*MaQGQpM98mr+J!J,`-I2!!"5'l\rrrNKZrrT`!+JM-"mi!%T%Cd!-JfCXER4Q##BmG'9YF'!'*MaPH(4Z98mr+J!J,ca\rPH(4Z$)0dC@e`9m"%!%L!(`")E[rq5'lrqR!!U#-`(cJ!0@lrrJ!J*@lrqJ!L083\r!(NcI""K1ALkI6R@%E@&TEJ#3"3*"5Qpj)A"PCQC`Gh"M!!!!!ECHR!`!N!d$!!)\r!N!6rN!3!N!B"+!!!!5J!!!%S!!!"%!!%"!$rN!3!N!F3!!!!$!!!!!%!!!*!!J%\r%!2q3"!#3$i3!!!#!"!3%!*!)!3!!!!6rN!3!N!6rN!3!N!F"!!!!!3!!!!%!!!"\rJ!!!!C!!!!(`!!!!"!*!6!3#3#!)!!!S!!3#3"3)!N!4+!%B!3f&bBQpZ6'PL!%C\rTEQ4'EfaNCA)!N"Km#!+QNq(rr*2"rrL3!!%!#*3Krl"mIKYi1!$rrl!"!$`i!2r\rrN!!"!$L$rJ!#U"i!!#`!!!4!JJ$%U(i!)(rNqhL)[J!'1-%!2$MK!$K)!!$&J%%\r!&(aJ"c9"JJ#-2"mlLLJ!Ef0!JJ!S2q"QGM[rEf1SIJ!J1*m!!$LJ!!%i`3!m11%\r!1%J!!)f!33!8I'!(08'#!&3m(jQ8+!"ZG%##!"!ri(4P1rpYF%J!!!`ri'9i1rp\rdEUKq!#!mJ'9i2+"dC6LPEA"m(bK3I!!!0&3&hMii`3!m11%!1$L%G'j)!!!eJ%%\r!&+J"!$b`(J!JJ!%!1*!!(J!LX(i!(S!"!&Ji)3"3I!J$TS2Krrb$`Iri6S!!))'\r#!!#3!%%!&)!-!!#!6!!%I!N$TNk!"#!!N!J-!!!"8J#3")!)!*!&%!!3!*!*5!!\r!!%J!N!8%!!%!"!#3"J%5!*!*!J#3"4!!%!#3"3)!N!83!"!!N!3`!2c!rr$rq2r\rirrMrq2rirrMrq2riIrJIr!Iq!Ii!I$!!c-#c-)`)J`L!b)!SJ$L!1)!i`$K`1"`\rm"ci"rJ"m!!!j,!!!!!B!!2q3"J!"c*!%rrm!!TQ3"2rr!!0QN!6-c!!%4*!'!!8\rLN!B!$`#3"rm!N!Ed)[m!r`!!!2&%)[mKr`!!m4&%)L)5m!$a%4&%)L,`!2%4%4&\r%)[!!m4'3"2,`!2%4%4%5mr!!m4%4%4,cm!$a%4%4%[2`!2-K%4%5mr!!$r-K%4,\rcm!!!$r-K%[2e!!!!$r-Lmr93!!!!$r2cp9!!N!32re8!N!53!'!+!!"*6&K$%i`\r!!%lk!!41G8j@rrS[#Lm$*'i!#$emrrrrrR$r,8$rqJa5!!4Q6P922bS!)#mU!!)\rI+J!'5'lrrNKZrrT`!+JM-"mf!'FH98mr+J!J,caYB@0c3LG)E[rq5'lrqR!!U#-\r`(cB!0@lrrJ!J*@lrqJ!L08-!(LBI*&p1ALkI6R@%E@&TEJ#3"3(45Qpj)A"PCQC\r`Gh"M!!!!!EBXZ"B!N!d$!!)!N!6rN!3!N!Hd!!!!Y!!!!,3!!!%3!!3%!2q3"!#\r3"a!!!!!-!!!!!3!!!G!#!33!rj!%!*!2K!!!!)!%"!3!N!J"!!!!"2q3"!#3"2q\r3"!#3"`%!!!!"!!!!!3!!!'!!!!"N!!!!I!!!!!%!N"-"!*!)!J!!#J!"!*!&!J#\r3"%S!4J"$BA*LEfj-D@)!4QPZC%C[E'4PFJ#3'(`)!UD6iIrmN!!"!!L8)Iq`I(m\rEH$J!rrq`!3!m1!$rrj!!!3!iU"m!!#`!!!4!JJ"FU(m!))#I!!+)[`!'1-%!2$M\rK!$K)!!"CJ%%!&(aJ"c9"JJ!NU(m!)$b!E@%iS!!!1-%!2$MK!$JiK'0c5!!!-B"\r"!"5S!3!mX"m!))!"!$L3!"m!)V"r!"k!!3"B1#%!8(`)!kD$iIrm6S!!))'#!!#\r3!%%!&)!-!!#!6!!%I!N$TNk!"#!!N!`-!!!#-J#3")!3!*!&%!!3!*!*5!!!!%J\r!N!8)!!%!#!#3"J'5!*!*!J#3"4!!%!#3"3)!N!83!"!!N!3`!2c!rr$rq2rirrM\rrq2rirrMrq2riIrKrr(rq2riII$!!c-#c-)`)J`L!b)!SRbLrU28SkLKe+'SXG5i\rrVKpm!!!QEJ!!!")!!2q3"J!&rj!%!!!!&[rrCQBc-`!Uc*!%rrm!9*Q3"2rr!'Q\rCQ3!!CQB!IfD3"-c-!*)c-rrrQCN!T6-cCT!%!+ScN!5CQ3$!!!#CQIrr!08!N!4\rQCJ$BhGd!N!AM!!#lZ`!!!2AZN!B!r%53"J$p)T!'!2i4N!B!r`#3#+UU!*!-UUT\r89+UU!!#UUJ#3"Y8UIkT89+UUp5UUUJ#3"08U!&4rUP53"298e3!!!08U+LS!9(q\rU9&48Ip8!!!$9+T!&!&4rUP4re3!!!08UN!K8URr9!!!!e5SUIrlrrRp8+UTre3!\r!!08UrIq3"IdUURr9!!!!eArrrGMBDIe8+UTre3!!!0AqraB@f'R!9#UUIp8!N!6\rrr`8&&X$!9#UUIp8!N!6qr`@5ik@P9#UUIpAp!!!!r2rpNZ2Mr93UURr9rId!!!$\rprj!&UP5UIpApr3#3"2cqrrkUUYA9eIhp!*!&N!"J#J!!58aB3a1-!!"1qJ!%6R9\r19[rk,`S[!b4Z!!JpI2rrrrj`rbe!rrS-8J!%CNj96cmU!#![+J!#(bS!"NKZrrj\r)E[rkF!#S)c!I0J"R(P922bS!)#mmE@&MFd)R5'lrrNKZrrT`!+JM-"mf!$9Zrri\r!)#9ZrrS!)M9$!"iQ(b4I6PiZRdjeK'eKD@i!N!8"d8T[H5&`C@CQF(G`B`!!!!'\rf,,J@!*!0!`!#!*!%rj!%!*!(Y!!!!,3!!!#d!!!"%!!%"!$rN!3!N!F3!!!!$!!\r!!!%!!!(3!J%%!2q3"!#3$i3!!!#!"!3%!*!)!3!!!!6rN!3!N!6rN!3!N!F"!!!\r!!3!!!!%!!!"J!!!!C!!!!(`!!!!"!*!6!3#3#!)!!!S!!3#3"3)!N!4+!%B!3f&\rbBQpZ6'PL!%CTEQ4'EfaNCA)!N"Km#!+QNq(rr*!!!3!)P#(rX(ar'hJi!2rrX!%\r!2$J!rrq3!!%!1+JI!!!X!!!%3))!A+Kr!##!R`!#L,m!"MM"!$`ii3!i5!!!@B"\r"!"4mB!Fe3B)!*+Kr!#!mJ'eK1+!!!$M"!$`ii3!i1)4MFdJ!!$'!33!8U!%!2,!\rI!##!!3!iN!!I!#+`I`!HJ!%!@$JK!&"m#!1QJq(rr%k!!##"JJ!!N!""!"5!$!!\r!J%`!"(`*!kC1J!3J!*!-$!!!!9)!N!5!#!#3"4!!%!#3#8J!!!")!*!&"!!"!!3\r!N!B"%J#3#3)!N!83!"!!N!8#!*!&%!!3!*!%-!$m`2r`rrMrq2rirrMrq2rirrM\rrq(ri(r`(rJ(q!(``!-c!Xc#-#)-)J-L!+)!iJ$L!1-!iF$JF2!Fq!Ii!I!!!15`\r!!!!'!!$rN!B!!Fb3"2rr!!+CN!6rr`!$CT!%c-`!"%53"J!&)T!'!!m!N!Ir!*!\r'p#,r!2m!!!$a4#,r)Im!!2%44#)L%[!!m4%44#)Lm!$a%4%44#,`!2%4N!6bm!$\ra%4%4%[2`!2%4%4%5mr!!m4%4%4,cm!$c)4%4%[2`!!rc)4%5mr!!!!rc)4,cp3!\r!!!rc)[2e8!!!!!rcmr93!*!%$rp9!*!%J'!+!!"*6&K$%jB!!%lk!!41G8j@rrS\r[#Lm$*'i!#$emrrrrrR$r,8$rqJa5!!4Q2P922bS!)#mU!!)I+J!'5'lrrNKZrrT\r`!+JM-"mf!'F1F!)Y32rk2@S!#2rqGJ!eE[rq!#!PE[rk!#)e3`!H*KmNAdjH,Tp\r1GB4YB@PZ!*!&!F&+EhNKF'9QCR"hF'-!!!!"YLbhjJ#3$3-!!J#3"2q3"!#3"kJ\r!!!#S!!!!U!!!!4!!"!3!rj!%!*!(%!!!!!`!!!!"!!!"`!)""!$rN!3!N!q%!!!\r!J!3%"!#3#!%!!!!%rj!%!*!%rj!%!*!(!3!!!!%!!!!"!!!!B!!!!'3!!!"m!!!\r!!3#3%`%!N!J#!!!+!!%!N!8#!*!%5J"'!%0KFQ*[ENaTBJ"'D@jN4QpXC'9b!*!\rBI!J#TT2Krrb3!!%!#*3Krl"mIaYi1!$rrl!"!$`i!2rrN!!"!$LS(`!!,!!!"%#\r#!&#SI`!JJ*m!!SLr!!Bi`3!m11%!1%J!!%f!33!8I'!(08'#!"Ji!!!#N!!"!$L\rS(`!)X!%!2$KJ!!#S!3!mX"m!))!"!$L3!"m!)V"r!"k!!3"B1#%!8(`)!kD$iIr\rm6S!!))'#!!#3!%%!&)!-!!#!6!!%I!N$TNk!"#!!N!J-!!!"BJ#3")!)!*!&%!!\r3!*!*5!!!!%J!N!8%!!%!"!#3"J%5!*!*!J#3"4!!%!#3"3)!N!83!"!!N!3`!2c\r!rr$rq2rirrMrq2rirrMrq2riIrJrr$rq2rirr$!!c-#c-)`)J`L!b)!S[bLLU+1\rSS+KJU##X)+iJVMrm!!"9!J!!!!J!!2q3"J!"c*!%rrm!!TQ3"2rr!!0QN!6-c!!\r%lT!'!!@lN!B!"N53"J!()T!'!!m!N!Ir!*!'pL,r!2m!!!$aCL,r)Im!!2%4CL)\rL%[!!m4%4CL)Lm!$a%4%4CL,`!2%4N!6bm!$arrrr%I2`!2(d426amr!!mI4%rr(\rcm!$cp%4&mI2`!!rd4%Aamr!!!24%4I(cp`!!p%4&m[2hF!$d4%AcmrG`!2q3"IF\r!N!53!'!+!!"*6&K$%i`!!%lk!!41G8j@rrS[#Lm$*'i!#$emrrrrrR$r,8$rqJa\r5!!4Q6P922bS!)#mU!!)I+J!'5'lrrNKZrrT`!+JM-"mf!'FH98mr+J!J,caYB@0\rc3LG)E[rq5'lrqR!!U#-`(cB!0@lrrJ!J*@lrqJ!L08-!(LBI*&p1ALkI6R@%E@&\rTEJ#3"3(45Qpj)A"PCQC`Gh"M!!!!!EBXZ"B!N!d$!!)!N!6rN!3!N!Hd!!!!Y!!\r!!,3!!!%3!!3%!2q3"!#3"a!!!!!-!!!!!3!!!G!#!33!rj!%!*!2K!!!!)!%"!3\r!N!J"!!!!"2q3"!#3"2q3"!#3"`%!!!!"!!!!!3!!!'!!!!"N!!!!I!!!!!%!N"-\r"!*!)!J!!#J!"!*!&!J#3"%S!4J"$BA*LEfj-D@)!4QPZC%C[E'4PFJ#3'(`)!UD\r6iIrmN!!"!!L8)Iq`I(mEH$J!rrq`!3!m1!$rrj!!!3!iU"m!!#`!!!4!JJ"FU(m\r!))#I!!+)[`!'1-%!2$MK!$K)!!"CJ%%!&(aJ"c9"JJ!NU(m!)$b!E@%iS!!!1-%\r!2$MK!$JiK'0c5!!!-B""!"5S!3!mX"m!))!"!$L3!"m!)V"r!"k!!3"B1#%!8(`\r)!kD$iIrm6S!!))'#!!#3!%%!&)!-!!#!6!!%I!N$TNk!"#!!N!`-!!!#)J#3")!\r3!*!&%!!3!*!*5!!!!%J!N!8)!!%!#!#3"J'5!*!*!J#3"4!!%!#3"3)!N!83!"!\r!N!3`!2c!rr$rq2rirrMrq2rirrMrq2riIrJrr$rq2ri1I$!!h-#c-+')SiLLb+)\rSSLLL++)SiLKU+#SX+biVlJTm!!"Al`!!!"!!!2q3"J!'rrr-c2rr!!crrjQCrrm\r!%[rrCQErr`!Brrmc-rrr!"rrr`!!c-`!+Xb3"2rr!%6-c!!!QCN!9*Q3"2rr!'Q\rCQ3!!CQB!IfD3"-c-!)eQCJ!!CQB!UM13"*QC!,%c-`!!CQB!e3#3"'CQ!2AZN!B\r!r5+3"J!!UUS!N!bUUP4rME%!!+UU!*!'e5UUD4*%ME&8+UUU!*!%e5TT'!B54)f\ra9298e3!!!08UD4J5$)faURp8Ip8!!!$9+QNB%Kq09(qU9(r9!!!!e5TT'")IM93\rU9+Tre3!!!08UD4J5(ie8+P5UIp8!!!$9+QNB%Kq09#T8URr9!!!!e5TT'")IM93\rU9+Tre3!!!09rD4J5(ie8+P5UIp8!N!69D4KT(ie8+P5UIp8!N!9T''NIM93U9+T\rreId!N!4T''NIMAp89+TreIhp!!!!D4KT(ih9URqUIpApr3#3"@NIM3!!eGA9rId\r!N!ANB!S!!%P-@%-6L`!!6[S!"%je6PErqNMR'#!NEJ!)2AcrrrrqF2mY32rk*LS\r!!Ja5!!4Q!!#H98mr+J!J,`-I+J!'5'lrrNKZrrT`!+JM-"mi!'GZ$)2%GQpMCL)\rQ2'CfEf096cmU!#![!amm!!&)E[rq5'lrqR!!U#-`(cJ!5N4R3!b$CQaZG'B)*Ma\rdC@e`B!BQ2'9iG'j96cmU!#![2'9iG'i-Jh4PEA"A`%3!5)!I!%KZrrj)E[rkF!#\rS)c!I1!!eE[rq!#!PE[rk!#)e4!!H60m%'%jH,Tp1GB4YB@PZ!*!&!N&+EhNKF'9\rQCR"hF'-!!!!"YPkF$!#3$3-!!J#3"2q3"!#3"J%S!!!"+!!!!5J!!!%3!!3%!2q\r3"!#3"a!!!!!-!!!!!3!!!N!#!33!rj!%!*!2K!!!!)!%"!3!N!J"!!!!"2q3"!#\r3"2q3"!#3"`%!!!!"!!!!!3!!!'!!!!"N!!!!I!!!!!%!N"-"!*!)!J!!#J!"!*!\r&!J#3"%S!4J"$BA*LEfj-D@)!4QPZC%C[E'4PFJ#3'(`)!UD6iIrmNm(rq*!!!3!\r)P#(rX(aq'hJi!2rrX!%!2$J!rrq3!!%!1)2q!!+S(J!!,!!!"%##!-5SIJ!JIq6\rlH)Lq!!Bi`3!m11%!1%J!!-@!33!8I'!(08'#!)`m(cZ++!"[Bd##!#Jri'Cf1rp\r[BkKq!#!iR`!!1+!!!6M"!$`ii3!i5!!!MB""!"4mB!Fe3B)!9$`IQC3S!'jd3))\r!%$rJG'8lrfe`5!!!$$rJCAJlrh4ZU(i!)$b!CAJmS(4P1+9YF(`I+&"m!!!d9!A\rH2MM"!$`ii3!i1)4dENJ!!$@!33!8U!%!2,!H!##!!3!iN!!H!#+`IJ!HJ!%!@$J\rK!&"m#!1QJq(rr)2"rrK1J!!JJB)!!*!!33!8J!`!!)"-!!4m#31Q6S!%)!#3#!`\r!!!&5!*!%J!J!N!83!"!!N!P)!!!!5!#3"33!!3!%!*!'!4)!N!N#!*!&%!!3!*!\r&!J#3"4!!%!#3"$!!r-$rm2rirrMrq2rirrMrq2rirrKrq"rm"ri"rJ"m-!$-`,-\r`M!L$#)$)J#L!1)!iJ$M!1(!i($`(2J(q!(`!!$NX!!!!"J!!rj!'!!(-N!6rr`!\r#QC!%rrm!!fD3"-c-!!4%N!B!"5+3"J!2!*!(r`#3"[3Lr`$r!!!!m83Lrb(r!!$\ra%83L)K,`!2%4%83L)[!!m4%4%83Lm!$a%C!%m[!!m4%4%4,cm!$a%4%4%[2`!2%\r4%4%5mr!!mb%4%4,cm!!2mb%4%[2`!!!2mb%5mr8!!!!2mb,cp9!!!!!2mr2e8!#\r3"!rr93#3"*!!B!S!!%P-@%-6M!!!6[S!"%je6PErqLm+,`-NEJ!)2AcrrrrqF2m\rY32rk$&)!"'C198mr+J!J,bS!!KmU!!C)E[rq5'lrqR!!U#-`(cB!Caj96cmU!#!\r[2'eKBh0#*dKZrrj)E[rkF!#S)c!I0J!eE[rq!#!PE[rk!#)e3`!H*KmNAdjH,Tp\r1GB4YB@PZ!*!&!G&+EhNKF'9QCR"hF'-!!!!"YLbi&J#3$3-!!J#3"2q3"!#3"l3\r!!!#d!!!!Y!!!!4!!"!3!rj!%!*!(%!!!!!`!!!!"!!!"d!)""!$rN!3!N!q%!!!\r!J!3%"!#3#!%!!!!%rj!%!*!%rj!%!*!(!3!!!!%!!!!"!!!!B!!!!'3!!!"m!!!\r!!3#3%`%!N!J#!!!+!!%!N!8#!*!%5J"'!%0KFQ*[ENaTBJ"'D@jN4QpXC'9b!*!\rBI!J#TT2Krrb3!!%!#*3Krl"mIaYi1!$rrl!"!$`i!2rrN!!"!$LS(`!!,!!!"%#\r#!&bSI`!JJ*m!!SLr!!Bi`3!m11%!1%J!!&Q!33!8I'!(08'#!#5SI`!J2)"YB6L\rJ!!!i`3!m11%!1$L%Bh0)!!!aJ%%!&+J"!$b`(`!JJ!%!1*!!(`!LX(m!(S!"!&J\ri)3"3I!J$TS2Krra1J!!JJB)!!*!!33!8J!`!!)"-!!4m#31Q6S!%)!#3$!`!!!&\r5!*!%J!J!N!83!"!!N!P)!!!!5!#3"33!!3!%!*!'!4)!N!N#!*!&%!!3!*!&!J#\r3"4!!%!#3"$!!r-$rm2rirrMrq2rirrMrq2rirrKrq"rm"ri"rJ"m-!$-`,-`M!L\r$#)$)J#L!1)!iJ$M!1(!i($`(2J(q!(`!!$NX!!!!"J!!rj!'!!(-N!6rr`!#QC!\r%rrm!!fD3"-c-!!4%N!B!"5+3"J!2!*!(r`#3"[3Lr`$r!!!!m83Lrb(r!!$a%83\rL)K,`!2%4%83L)[!!m4%4%83Lm!$a%C!%m[!!m4%4%4,cm!$a%4%4%[2`!2%4%4%\r5mr!!mb%4%4,cm!!2mb%4%[2`!!!2mb%5mr8!!!!2mb,cp9!!!!!2mr2e8!#3"!r\rr93#3")"J#J!!58aB3a1@!!"1qJ!%6R919[rk,`S[!b4Z!!JpI2rrrrj`rbe!rrS\r-8J!%CMj96cmU!#![+J!#(bS!"NKZrrj)E[rkF!#S)c!I0J"R$R!#,8$rqMeU!!M\rrrRB!0@lrrJ!J*@lrqJ!L08-!(LBI*&p1ALkI6R@%E@&TEJ#3"3("5Qpj)A"PCQC\r`Gh"M!!!!!EBXYqB!N!d$!!)!N!6rN!3!N!HS!!!!U!!!!+J!!!%3!!3%!2q3"!#\r3"a!!!!!-!!!!!3!!!F!#!33!rj!%!*!2K!!!!)!%"!3!N!J"!!!!"2q3"!#3"2q\r3"!#3"`%!!!!"!!!!!3!!!'!!!!"N!!!!I!!!!!%!N"-"!*!)!J!!#J!"!*!&!J#\r3"%S!4J"$BA*LEfj-D@)!4QPZC%C[E'4PFJ#3'(`)!UD6iIrmN!!"!!L8)Iq`I(m\rEH$J!rrq`!3!m1!$rrj!!!3!iU"m!!#`!!!4!JJ"3U(m!))#I!!+)[`!'1-%!2$M\rK!$K)!!"0J%%!&(aJ"c9"JJ!B1!!!!T!!!3!iU"m!#,!"!$`iB!!!U!%!2,!I!##\r!!3!iN!!I!#+`I`!HJ!%!@$JK!&"m#!1QJq(rr%k!!##"JJ!!N!""!"5!$!!!J%`\r!"(`*!kC1J!3J!*!)$!!!!9)!N!5!#!#3"4!!%!#3#8J!!!")!*!&"!!"!!3!N!B\r"%J#3#3)!N!83!"!!N!8#!*!&%!!3!*!%-!$m`2r`rrMrq2rirrMrq2rirrMrq(r\ri(r`(rJ(q!(``!-c!Xc#-#)-)J-L!+)!iJ$L!1-!iF$JF2!Fq!Ii!I!!!15`!!!!\r'!!$rN!B!!Fb3"2rr!!+CN!6rr`!$CT!%c-`!"%53"J!&)T!'!!m!N!Ir!*!'p#,\rr!2m!!!$a4#,r)Im!!2%44#)L%[!!m4%44#)Lm!$a%4%44#,`!2%4N!6bm!$a%4%\r4%[2`!2%4%4%5mr!!m4%4%4,cm!$c)4%4%[2`!!rc)4%5mr!!!!rc)4,cp3!!!!r\rc)[2e8!!!!!rcmr93!*!%$rp9!*!%J'!+!!"*6&K$%jB!!%lk!!41G8j@rrS[#Lm\r$*'i!#$emrrrrrR$r,8$rqJa5!!4Q2P922bS!)#mU!!)I+J!'5'lrrNKZrrT`!+J\rM-"mf!'F1F!)Y32rk2@S!#2rqGJ!eE[rq!#!PE[rk!#)e3`!H*KmNAdjH,Tp1GB4\rYB@PZ!*!&!F&+EhNKF'9QCR"hF'-!!!!"YLbhjJ#3$3-!!J#3"2q3"!#3"kJ!!!#\rS!!!!U!!!!4!!"!3!rj!%!*!(%!!!!!`!!!!"!!!"`!)""!$rN!3!N!q%!!!!J!3\r%"!#3#!%!!!!%rj!%!*!%rj!%!*!(!3!!!!%!!!!"!!!!B!!!!'3!!!"m!!!!!3#\r3%`%!N!J#!!!+!!%!N!8#!*!%5J"'!%0KFQ*[ENaTBJ"'D@jN4QpXC'9b!*!BI!J\r#TT2Krrb3!!%!#*3Krl"mIaYi1!$rrl!"!$`i!2rrN!!"!$LS(`!!,!!!"%##!&#\rSI`!JJ*m!!SLr!!Bi`3!m11%!1%J!!%f!33!8I'!(08'#!"Ji!!!#N!!"!$LS(`!\r)X!%!2$KJ!!#S!3!mX"m!))!"!$L3!"m!)V"r!"k!!3"B1#%!8(`)!kD$iIrm6S!\r!))'#!!#3!%%!&)!-!!#!6!!%I!N$TNk!"#!!N!J-!!!#-J#3")!3!*!&%!!3!*!\r*5!!!!%J!N!8)!!%!#!#3"J'5!*!*!J#3"4!!%!#3"3)!N!83!"!!N!3`!2c!rr$\rrq2rirrMrq2rirrMrq2rirrMrr2rqIrirI$!!c-#c-)`)J`L!b)!SJ#Lm+1BSmbL\rM+*NXR5j,VMpm!!"IcJ!!!")!!2q3"J!Nc-crN!3!+-c-rrmc-`!Uc*!%rrm!6*Q\rCrrmc-`"1QCR-c2rr!&5CN!6rr`"bCQE-c2rr!(GQCXc-!!!!I@CQQCN!!!"rCT!\r%c-`!R$-cQCRrr`#K-c1CQ3!!!+)c-fCQrrm!c3!!-c2-c!$1!!!c-jQC!2a%N!B\r!r5+3"J$r!*!)rrm!N!crr&48rrm!!2rr!*!'rbVmr&48rrp8+[rr!*!%rbSU+[c\rm9*!%+P6r!!!!rbU3"Icm9*!%r`!!!2mUN!Imr&48r`!!!2mUN!Rr92m!!!$r+T!\r)92prr`!!!2mUrIrrr5SU+P6rIrm!!!$rrd`N*(Ir+LT8rhrr!!!!rAFSGdj1Gre\r892prr`!!!2r0I8j1FLMr9&6rIrm!!!$rcD*-+*bLrhp8rhrrr3!!rFl0IAGhcIe\rr92prrrhp!!$rcXfKc[rrrhrrIrrpr3!!!2hrrrerI`$rrrrpr3#3"C!!B!S!!%P\r-@%-6M!!!6[S!"%je6PErqLm+,`-NEJ!)2AcrrrrqF2mY32rk$&)!"'C198mr+J!\rJ,bS!!KmU!!C)E[rq5'lrqR!!U#-`(cB!Caj96cmU!#![2'eKBh0#*dKZrrj)E[r\rkF!#S)c!I0J!eE[rq!#!PE[rk!#)e3`!H*KmNAdjH,Tp1GB4YB@PZ!*!&!G&+EhN\rKF'9QCR"hF'-!!!!"YLbi&J#3$3-!!J#3"2q3"!#3"l3!!!#d!!!!Y!!!!4!!"!3\r!rj!%!*!(%!!!!!`!!!!"!!!"d!)""!$rN!3!N!q%!!!!J!3%"!#3#!%!!!!%rj!\r%!*!%rj!%!*!(!3!!!!%!!!!"!!!!B!!!!'3!!!"m!!!!!3#3%`%!N!J#!!!+!!%\r!N!8#!*!%5J"'!%0KFQ*[ENaTBJ"'D@jN4QpXC'9b!*!BI!J#TT2Krrb3!!%!#*3\rKrl"mIaYi1!$rrl!"!$`i!2rrN!!"!$LS(`!!,!!!"%##!&bSI`!JJ*m!!SLr!!B\ri`3!m11%!1%J!!&Q!33!8I'!(08'#!#5SI`!J2)"YB6LJ!!!i`3!m11%!1$L%Bh0\r)!!!aJ%%!&+J"!$b`(`!JJ!%!1*!!(`!LX(m!(S!"!&Ji)3"3I!J$TS2Krra1J!!\rJJB)!!*!!33!8J!`!!)"-!!4m#31Q6S!%)!#3$!`!!!+D!*!%J"!!N!83!"!!N!P\r)!!!!5!#3"3J!!3!)!*!'!C)!N!N#!*!&%!!3!*!&!J#3"4!!%!#3"$!!r-$rm2r\rirrMrq2rirrMrq2rirrKrq(rmIrlrrRrm-!$-`,-`M!L$#)$)J#LH+,-SlkM6U(1\rSEDaEVVrZIr`!!#UT!!!!(`!!rj!'!"(rrjQC!!!!+Xb3"2rr!%UCQIrrQCN!9*Q\r3"2rr!&@CN!6-c!"XCQErN!3!F'CQrrmc-`"fCQE-c$-c!(eQCTQC!!!!IfD3"-c\r-!+!c-jQC-c-!SM-cCQErr`#M-c0QCXc-!+3c-fCQQCN!UM13"*QC!+XcN!4QCJ#\rX-j!'!-i!!$-cQCN!c`!!-c0QCJ$3!!!cN!3!e3#3"'CQ!1J!!%4%!!!!k3!!)L)\r!!!$U!!!4%3!!!2-!N!3L)J$elT!'!2Y9N!B!r%53"J$p)T!'!2i4N!B!r`#3#+U\rU!*!-UUT89+UU!!#UUJ#3"Y8UIkT89+UUp5UUUJ#3"08U!&4rUP53"298e3!!!08\rU+LS!9(qU9&48Ip8!!!$9+T!&!&4rUP4re3!!!08UN!K8URr9!!!!e5T8qrlqqe3\rU9+Tre3!!!098k+"fF+UX995UIp8!!!$9che`rrqLT2a8URr9!!!!eHTfrdTXrk2\rq9+Tre3#3"21MrfaXrk2q9+Tre3#3"-rr%IrrF+Vl9+TreId!!!$r%IqMF-l3UP5\rUIpApr3$r%IqUkIqVrhprURr9rId!!2qUIj!&rpA9eIhp!*!&J'!+!!"*6&K$%jB\r!!%lk!!41G8j@rrS[#Lm$*'i!#$emrrrrrR$r,8$rqJa5!!4Q2P922bS!)#mU!!)\rI+J!'5'lrrNKZrrT`!+JM-"mf!'F1F!)Y32rk2@S!#2rqGJ!eE[rq!#!PE[rk!#)\re3`!H*KmNAdjH,Tp1GB4YB@PZ!*!&!F&+EhNKF'9QCR"hF'-!!!!"YLbhjJ#3$3-\r!!J#3"2q3"!#3"kJ!!!#S!!!!U!!!!4!!"!3!rj!%!*!(%!!!!!`!!!!"!!!"`!)\r""!$rN!3!N!q%!!!!J!3%"!#3#!%!!!!%rj!%!*!%rj!%!*!(!3!!!!%!!!!"!!!\r!B!!!!'3!!!"m!!!!!3#3%`%!N!J#!!!+!!%!N!8#!*!%5J"'!%0KFQ*[ENaTBJ"\r'D@jN4QpXC'9b!*!BI!J#TT2Krrb3!!%!#*3Krl"mIaYi1!$rrl!"!$`i!2rrN!!\r"!$LS(`!!,!!!"%##!&#SI`!JJ*m!!SLr!!Bi`3!m11%!1%J!!%f!33!8I'!(08'\r#!"Ji!!!#N!!"!$LS(`!)X!%!2$KJ!!#S!3!mX"m!))!"!$L3!"m!)V"r!"k!!3"\rB1#%!8(`)!kD$iIrm6S!!))'#!!#3!%%!&)!-!!#!6!!%I!N$TNk!"#!!N!J-!!!\r"BJ#3")!)!*!&%!!3!*!*5!!!!%J!N!8%!!%!"!#3"J%5!*!*!J#3"4!!%!#3"3)\r!N!83!"!!N!3`!2c!rr$rq2rirrMrq2rirrMrq2riIrKrr(rq2riIr$!!c-#c-)`\r)J`L!b)!S[bM!U-#S`+K!U%#X3+irlKrm!!!4#!!!!!J!!2q3"J!"c*!%rrm!!TQ\r3"2rr!!0QN!6-c!!%Zj!'!!9hN!B!"N53"J!()T!'!!m!N!Ir!*!'pL,r!2m!!!$\raCL,r)Im!!2%4CL)L%[!!m4%4CL)Lm!$a%4%4CL,`!2%4N!6bm!$arrrr%[2`!2m\r!!!6bmr!!r`4%4I,cm!$r"%4&m[2`!!m%4%Abmr!!$`4%4I,cp`!24999m[2hF!$\rrrrrcmrG`!!-c-crrG`#3")"J#J!!58aB3a1@!!"1qJ!%6R919[rk,`S[!b4Z!!J\rpI2rrrrj`rbe!rrS-8J!%CMj96cmU!#![+J!#(bS!"NKZrrj)E[rkF!#S)c!I0J"\rR$R!#,8$rqMeU!!MrrRB!0@lrrJ!J*@lrqJ!L08-!(LBI*&p1ALkI6R@%E@&TEJ#\r3"3("5Qpj)A"PCQC`Gh"M!!!!!EBXYqB!N!d$!!)!N!6rN!3!N!HS!!!!U!!!!+J\r!!!%3!!3%!2q3"!#3"a!!!!!-!!!!!3!!!F!#!33!rj!%!*!2K!!!!)!%"!3!N!J\r"!!!!"2q3"!#3"2q3"!#3"`%!!!!"!!!!!3!!!'!!!!"N!!!!I!!!!!%!N"-"!*!\r)!J!!#J!"!*!&!J#3"%S!4J"$BA*LEfj-D@)!4QPZC%C[E'4PFJ#3'(`)!UD6iIr\rmN!!"!!L8)Iq`I(mEH$J!rrq`!3!m1!$rrj!!!3!iU"m!!#`!!!4!JJ"3U(m!))#\rI!!+)[`!'1-%!2$MK!$K)!!"0J%%!&(aJ"c9"JJ!B1!!!!T!!!3!iU"m!#,!"!$`\riB!!!U!%!2,!I!##!!3!iN!!I!#+`I`!HJ!%!@$JK!&"m#!1QJq(rr%k!!##"JJ!\r!N!""!"5!$!!!J%`!"(`*!kC1J!3J!*!)$!!!!B)!N!5!#!#3"4!!%!#3#8J!!!"\r)!*!&"!!"!!3!N!B"%J#3#3)!N!83!"!!N!8#!*!&%!!3!*!%-!$m`2r`rrMrq2r\rirrMrq2rirrMrq(riIrarrMrq(r``!-c!Xc#-#)-)J-L!+2qSbZM9k2rSEZKIl'l\rZ2qiIr!!!BP3!!!!-!!$rN!B!!Fb3"2rr!!,-N!B!!jQ3"2rr!!4QN!6-c!!&-j!\r%CQB!"Zk3"J!(UT!'!!KhN!B!#9@3"J!+4*!'!!XLN!B!$`#3"rm!N!Er-rm!r`!\r!!2'U-rmar`!!m4'U-c-6m!$a%4'U-c2`!2%4%4'U-r!!m4'3"22`!2q3"2(dm!$\rrCfGRp26`!2prIhrdp2!!rrRjqI6dm!!2B[mQp26`!!m[L2,dp2X!$f,r*[6dql!\r!rrrrp2AlX!!%4%42rrX!N!5!B!S!!%P-@%-6PJ!!6[S!"%je6PErqLm+,`-NEJ!\r)2AcrrrrqF2mY32rk$&)!"'Bq98mr+J!J,bS!!KmU!!C)E[rq5'lrqR!!U#-`(cB\r!C`j`!Le!rrSpDJ!)rrjf!$9Zrri!)#9ZrrS!)M9$!"iQ(b4I6PiZRdjeK'eKD@i\r!N!8"`8T[H5&`C@CQF(G`B`!!!!'f,,IQ!*!0!`!#!*!%rj!%!*!(U!!!!+J!!!#\rS!!!"%!!%"!$rN!3!N!F3!!!!$!!!!!%!!!(!!J%%!2q3"!#3$i3!!!#!"!3%!*!\r)!3!!!!6rN!3!N!6rN!3!N!F"!!!!!3!!!!%!!!"J!!!!C!!!!(`!!!!"!*!6!3#\r3#!)!!!S!!3#3"3)!N!4+!%B!3f&bBQpZ6'PL!%CTEQ4'EfaNCA)!N"Km#!+QNq(\rrr*!!!3!)P#(rX(ar'hJi!2rrX!%!2$J!rrq3!!%!1+JI!!!X!!!%3))!8+Kr!##\r!R`!#L,m!"MM"!$`ii3!i5!!!6B""!"4mB!Fe3B)!'$J!!!+3!!%!1+JI!!L`!3!\rm1'!!!+J"!$b`(`!JJ!%!1*!!(`!LX(m!(S!"!&Ji)3"3I!J$TS2Krra1J!!JJB)\r!!*!!33!8J!`!!)"-!!4m#31Q6S!%)!#3#!`!!!&k!*!%J!J!N!83!"!!N!P)!!!\r!5!#3"33!!3!%!*!'!4)!N!N#!*!&%!!3!*!&!J#3"4!!%!#3"$!!r-$rm2rirrM\rrq2rirrMrq2rirrKrq$rm(ri2rJ4m-!$-`,-`M!L$#)$)KDL1U*@SUfM1D&YS)1`\r4,JUZ"(`!!"C@!!!!#`!!rj!'!!(rN!3!!!!#rrr-c*QC!!2rrfCQc-`!"-b3"2r\rr!!A-c*QCCQB!"TQ3"2rr!!GQN!6-c!!)lT!'!!P%N!B!#L+3"J!2!*!(r`#3"[P\rQr`$r!!!!p*PQrf6r!!$d4*PQCNE`!24%4*PQC[!!p%4%4*PQm!$d4%p2p2E`!24\r%rr2fpr!!p%q2(rEhm!$dq2(rArI`!2q)rr8[pr!!$irirerhm!!!q)L)rrIk!!!\r2L)phprUJ!!$ip2RhqU!!!!m!$rrk!*!%J'!+!!"*6&K$%jB!!%lk!!41G8j@rrS\r[#Lm$*'i!#$emrrrrrR$r,8$rqJa5!!4Q2P922bS!)#mU!!)I+J!'5'lrrNKZrrT\r`!+JM-"mf!'F1F!)Y32rk2@S!#2rqGJ!eE[rq!#!PE[rk!#)e3`!H*KmNAdjH,Tp\r1GB4YB@PZ!*!&!F&+EhNKF'9QCR"hF'-!!!!"YLbhjJ#3$3-!!J#3"2q3"!#3"kJ\r!!!#S!!!!U!!!!4!!"!3!rj!%!*!(%!!!!!`!!!!"!!!"`!)""!$rN!3!N!q%!!!\r!J!3%"!#3#!%!!!!%rj!%!*!%rj!%!*!(!3!!!!%!!!!"!!!!B!!!!'3!!!"m!!!\r!!3#3%`%!N!J#!!!+!!%!N!8#!*!%5J"'!%0KFQ*[ENaTBJ"'D@jN4QpXC'9b!*!\rBI!J#TT2Krrb3!!%!#*3Krl"mIaYi1!$rrl!"!$`i!2rrN!!"!$LS(`!!,!!!"%#\r#!&#SI`!JJ*m!!SLr!!Bi`3!m11%!1%J!!%f!33!8I'!(08'#!"Ji!!!#N!!"!$L\rS(`!)X!%!2$KJ!!#S!3!mX"m!))!"!$L3!"m!)V"r!"k!!3"B1#%!8(`)!kD$iIr\rm6S!!))'#!!#3!%%!&)!-!!#!6!!%I!N$TNk!"#!!N!J-!!!"DJ#3")!)!*!&%!!\r3!*!*5!!!!%J!N!8%!!%!"!#3"J%5!*!*!J#3"4!!%!#3"3)!N!83!"!!N!3`!2c\r!rr$rq2rirrMrq2rirrMrq2riIrJrr$rq2rirr$!!c-#c-)`)J`L!b)!S[bLLU+1\rSS+KZU##X,UiJVMrm!!!ClJ!!!!N!!2q3"J!"c*!%rrm!!TQ3"2rr!!0QN!6-c!!\r%lT!'!!@lN!B!"SL3"J!(4*!'!!JLN!B!$`#3"rm!N!Eh)[m!r`!!!2&h)[mKr`!\r!m4&h)L)5m!$a%4&h)L,`!2%4%4&h)[!!m4'3"2,`!2(rrrm4mr!!mI4%p2(cm!$\rap%6rmI2`!22d4%Aamr!!$r4QCI(cm!!!p%4&mI2i!!$dCQAbmrL!!24%4I2cq)!\r!rj!&q!#3")"J#J!!58aB3a1@!!"1qJ!%6R919[rk,`S[!b4Z!!JpI2rrrrj`rbe\r!rrS-8J!%CMj96cmU!#![+J!#(bS!"NKZrrj)E[rkF!#S)c!I0J"R$R!#,8$rqMe\rU!!MrrRB!0@lrrJ!J*@lrqJ!L08-!(LBI*&p1ALkI6R@%E@&TEJ#3"3("5Qpj)A"\rPCQC`Gh"M!!!!!EBXYqB!N!d$!!)!N!6rN!3!N!HS!!!!U!!!!+J!!!%3!!3%!2q\r3"!#3"a!!!!!-!!!!!3!!!F!#!33!rj!%!*!2K!!!!)!%"!3!N!J"!!!!"2q3"!#\r3"2q3"!#3"`%!!!!"!!!!!3!!!'!!!!"N!!!!I!!!!!%!N"-"!*!)!J!!#J!"!*!\r&!J#3"%S!4J"$BA*LEfj-D@)!4QPZC%C[E'4PFJ#3'(`)!UD6iIrmN!!"!!L8)Iq\r`I(mEH$J!rrq`!3!m1!$rrj!!!3!iU"m!!#`!!!4!JJ"3U(m!))#I!!+)[`!'1-%\r!2$MK!$K)!!"0J%%!&(aJ"c9"JJ!B1!!!!T!!!3!iU"m!#,!"!$`iB!!!U!%!2,!\rI!##!!3!iN!!I!#+`I`!HJ!%!@$JK!&"m#!1QJq(rr%k!!##"JJ!!N!""!"5!$!!\r!J%`!"(`*!kC1J!3J!*!)$!!!!AS!N!5!#!#3"4!!%!#3#8J!!!")!*!&"!!"!!3\r!N!B"%J#3#3)!N!83!"!!N!8#!*!&%!!3!*!%-!$m`2r`rrMrq2rirrMrq2rirrK\rrq2rirr`(r[rqII``!-c!Xc#-#)-)lFLkD)dSK+M&+(rSJ#Mrl!FZrkjpr!!!(%F\r!!!!,!!$rN!B!!Iq3"-c-!!,-N!6rr`!$c-bCQ@CQ!!5CQIq3"!!&QC!%rrm!"QD\r3"-c-!!HUN!B!#&@3"J!*4*!'!!SLN!B!$`#3"rm!N!Ej9Im!r`!!!2+C9Ip5r`!\r!mL+C998Pm!$b)L+C99A`!2rbrbrr9I!!mQrap%rem!$b*@mI42E`!28LAa(dp[!\r!rr9I(h6fm!!2rj!%p[!!mc13"2E`!2q3"IEk!!!!$rP9p[UJLDVrEkRfqU!'CQB\r'Errk!*!%N!"J#J!!58aB3a1-!!"1qJ!%6R919[rk,`S[!b4Z!!JpI2rrrrj`rbe\r!rrS-8J!%CNj96cmU!#![+J!#(bS!"NKZrrj)E[rkF!#S)c!I0J"R(P922bS!)#m\rmE@&MFd)R5'lrrNKZrrT`!+JM-"mf!$9Zrri!)#9ZrrS!)M9$!"iQ(b4I6PiZRdj\reK'eKD@i!N!8"d8T[H5&`C@CQF(G`B`!!!!'f,,J@!*!0!`!#!*!%rj!%!*!(Y!!\r!!,3!!!#d!!!"%!!%"!$rN!3!N!F3!!!!$!!!!!%!!!(3!J%%!2q3"!#3$i3!!!#\r!"!3%!*!)!3!!!!6rN!3!N!6rN!3!N!F"!!!!!3!!!!%!!!"J!!!!C!!!!(`!!!!\r"!*!6!3#3#!)!!!S!!3#3"3)!N!4+!%B!3f&bBQpZ6'PL!%CTEQ4'EfaNCA)!N"K\rm#!+QNq(rr*!!!3!)P#(rX(ar'hJi!2rrX!%!2$J!rrq3!!%!1+JI!!!X!!!%3))\r!A+Kr!##!R`!#L,m!"MM"!$`ii3!i5!!!@B""!"4mB!Fe3B)!*+Kr!#!mJ'eK1+!\r!!$M"!$`ii3!i1)4MFdJ!!$'!33!8U!%!2,!I!##!!3!iN!!I!#+`I`!HJ!%!@$J\rK!&"m#!1QJq(rr%k!!##"JJ!!N!""!"5!$!!!J%`!"(`*!kC1J!3J!*!-$!!!!@S\r!N!5!#!#3"4!!%!#3#8J!!!")!*!&"!!"!!3!N!B"%J#3#3)!N!83!"!!N!8#!*!\r&%!!3!*!%-!$m`2r`rrMrq2rirrMrq2rirrMrq(ri(r`rrMrq(r``!-c!Xc#-#)-\r)KmL)U*'SZbLQU1aSF'JBl#fZ*qiHI!!!,+3!!!!*!!$rN!B!!Fb3"2rr!!+CN!6\rrr`!$CT!%c-`!"$13"*QC!!8!N!4QCJ!'!*!%4%3!"qk3"J!))T!'!!m!N!G%!*!\r'4#*%!%3!!!"40#*%F83!!&%#0#)LFP!!84%#0#)M8!"4%5CQ0#03!&%5B"*K3e!\r!85B"*N&$8!"4Er*N)803!&(c4N&#3e!!8f,d%"C$8!!&4J%"*N03!!!'m"*M3eJ\r!!')f*M&$@)!!BKCP3d0BJ!!'CM)P9BJ!N!53!'!+!!"*6&K$%i`!!%lk!!41G8j\r@rrS[#Lm$*'i!#$emrrrrrR$r,8$rqJa5!!4Q6P922bS!)#mU!!)I+J!'5'lrrNK\rZrrT`!+JM-"mf!'FH98mr+J!J,caYB@0c3LG)E[rq5'lrqR!!U#-`(cB!0@lrrJ!\rJ*@lrqJ!L08-!(LBI*&p1ALkI6R@%E@&TEJ#3"3(45Qpj)A"PCQC`Gh"M!!!!!EB\rXZ"B!N!d$!!)!N!6rN!3!N!Hd!!!!Y!!!!,3!!!%3!!3%!2q3"!#3"a!!!!!-!!!\r!!3!!!G!#!33!rj!%!*!2K!!!!)!%"!3!N!J"!!!!"2q3"!#3"2q3"!#3"`%!!!!\r"!!!!!3!!!'!!!!"N!!!!I!!!!!%!N"-"!*!)!J!!#J!"!*!&!J#3"%S!4J"$BA*\rLEfj-D@)!4QPZC%C[E'4PFJ#3'(`)!UD6iIrmN!!"!!L8)Iq`I(mEH$J!rrq`!3!\rm1!$rrj!!!3!iU"m!!#`!!!4!JJ"FU(m!))#I!!+)[`!'1-%!2$MK!$K)!!"CJ%%\r!&(aJ"c9"JJ!NU(m!)$b!E@%iS!!!1-%!2$MK!$JiK'0c5!!!-B""!"5S!3!mX"m\r!))!"!$L3!"m!)V"r!"k!!3"B1#%!8(`)!kD$iIrm6S!!))'#!!#3!%%!&)!-!!#\r!6!!%I!N$TNk!"#!!N!`-!!!"8J#3")!)!*!&%!!3!*!*5!!!!%J!N!8%!!%!"!#\r3"J%5!*!*!J#3"4!!%!#3"3)!N!83!"!!N!3`!2c!rr$rq2rirrMrq2rirrMrq2r\riIrJIr!Iq!Ii!I$!!c-#c-)`)J`L!b)!SJ$L!1)!i`$K`1"`m"ci"rJ"m!!!j,!!\r!!!B!!2q3"J!"c*!%rrm!!TQ3"2rr!!0QN!6-c!!%4*!'!!8LN!B!$`#3"rm!N!E\rd)[m!r`!!!2&%)[mKr`!!m4&%)L)5m!$a%4&%)L,`!2%4%4&%)[!!m4'3"2,`!2%\r4%4%5mr!!m4%4%4,cm!$a%4%4%[2`!2-K%4%5mr!!$r-K%4,cm!!!$r-K%[2e!!!\r!$r-Lmr93!!!!$r2cp9!!N!32re8!N!5!B!S!!%P-@%-6PJ!!6[S!"%je6PErqLm\r+,`-NEJ!)2AcrrrrqF2mY32rk$&)!"'Bq98mr+J!J,bS!!KmU!!C)E[rq5'lrqR!\r!U#-`(cB!C`j`!Le!rrSpDJ!)rrjf!$9Zrri!)#9ZrrS!)M9$!"iQ(b4I6PiZRdj\reK'eKD@i!N!8"`8T[H5&`C@CQF(G`B`!!!!'f,,IQ!*!0!`!#!*!%rj!%!*!(U!!\r!!+J!!!#S!!!"%!!%"!$rN!3!N!F3!!!!$!!!!!%!!!(!!J%%!2q3"!#3$i3!!!#\r!"!3%!*!)!3!!!!6rN!3!N!6rN!3!N!F"!!!!!3!!!!%!!!"J!!!!C!!!!(`!!!!\r"!*!6!3#3#!)!!!S!!3#3"3)!N!4+!%B!3f&bBQpZ6'PL!%CTEQ4'EfaNCA)!N"K\rm#!+QNq(rr*!!!3!)P#(rX(ar'hJi!2rrX!%!2$J!rrq3!!%!1+JI!!!X!!!%3))\r!8+Kr!##!R`!#L,m!"MM"!$`ii3!i5!!!6B""!"4mB!Fe3B)!'$J!!!+3!!%!1+J\rI!!L`!3!m1'!!!+J"!$b`(`!JJ!%!1*!!(`!LX(m!(S!"!&Ji)3"3I!J$TS2Krra\r1J!!JJB)!!*!!33!8J!`!!)"-!!4m#31Q6S!%)!#3#!`!!!&5!*!%J!J!N!83!"!\r!N!P)!!!!5!#3"33!!3!%!*!'!4)!N!N#!*!&%!!3!*!&!J#3"4!!%!#3"$!!r-$\rrm2rirrMrq2rirrMrq2rirrKrq"rm"ri"rJ"m-!$-`,-`M!L$#)$)J#L!1)!iJ$M\r!1(!i($`(2J(q!(`!!$NX!!!!"J!!rj!'!!(-N!6rr`!#QC!%rrm!!fD3"-c-!!4\r%N!B!"5+3"J!2!*!(r`#3"[3Lr`$r!!!!m83Lrb(r!!$a%83L)K,`!2%4%83L)[!\r!m4%4%83Lm!$a%C!%m[!!m4%4%4,cm!$a%4%4%[2`!2%4%4%5mr!!mb%4%4,cm!!\r2mb%4%[2`!!!2mb%5mr8!!!!2mb,cp9!!!!!2mr2e8!#3"!rr93#3")"J#J!!58a\rB3a1@!!"1qJ!%6R919[rk,`S[!b4Z!!JpI2rrrrj`rbe!rrS-8J!%CMj96cmU!#!\r[+J!#(bS!"NKZrrj)E[rkF!#S)c!I0J"R$R!#,8$rqMeU!!MrrRB!0@lrrJ!J*@l\rrqJ!L08-!(LBI*&p1ALkI6R@%E@&TEJ#3"3("5Qpj)A"PCQC`Gh"M!!!!!EBXYqB\r!N!d$!!)!N!6rN!3!N!HS!!!!U!!!!+J!!!%3!!3%!2q3"!#3"a!!!!!-!!!!!3!\r!!F!#!33!rj!%!*!2K!!!!)!%"!3!N!J"!!!!"2q3"!#3"2q3"!#3"`%!!!!"!!!\r!!3!!!'!!!!"N!!!!I!!!!!%!N"-"!*!)!J!!#J!"!*!&!J#3"%S!4J"$BA*LEfj\r-D@)!4QPZC%C[E'4PFJ#3'(`)!UD6iIrmN!!"!!L8)Iq`I(mEH$J!rrq`!3!m1!$\rrrj!!!3!iU"m!!#`!!!4!JJ"3U(m!))#I!!+)[`!'1-%!2$MK!$K)!!"0J%%!&(a\rJ"c9"JJ!B1!!!!T!!!3!iU"m!#,!"!$`iB!!!U!%!2,!I!##!!3!iN!!I!#+`I`!\rHJ!%!@$JK!&"m#!1QJq(rr%k!!##"JJ!!N!""!"5!$!!!J%`!"(`*!kC1J!3J!*!\r)$!!!!9)!N!5!#!#3"4!!%!#3#8J!!!")!*!&"!!"!!3!N!B"%J#3#3)!N!83!"!\r!N!8#!*!&%!!3!*!%-!$m`2r`rrMrq2rirrMrq2rirrMrq(ri(r`(rJ(q!(``!-c\r!Xc#-#)-)J-L!+)!iJ$L!1-!iF$JF2!Fq!Ii!I!!!15`!!!!'!!$rN!B!!Fb3"2r\rr!!+CN!6rr`!$CT!%c-`!"%53"J!&)T!'!!m!N!Ir!*!'p#,r!2m!!!$a4#,r)Im\r!!2%44#)L%[!!m4%44#)Lm!$a%4%44#,`!2%4N!6bm!$a%4%4%[2`!2%4%4%5mr!\r!m4%4%4,cm!$c)4%4%[2`!!rc)4%5mr!!!!rc)4,cp3!!!!rc)[2e8!!!!!rcmr9\r3!*!%$rp9!*!%N!"J#J!!58aB3a1-!!"1qJ!%6R919[rk,`S[!b4Z!!JpI2rrrrj\r`rbe!rrS-8J!%CNj96cmU!#![+J!#(bS!"NKZrrj)E[rkF!#S)c!I0J"R(P922bS\r!)#mmE@&MFd)R5'lrrNKZrrT`!+JM-"mf!$9Zrri!)#9ZrrS!)M9$!"iQ(b4I6Pi\rZRdjeK'eKD@i!N!8"d8T[H5&`C@CQF(G`B`!!!!'f,,J@!*!0!`!#!*!%rj!%!*!\r(Y!!!!,3!!!#d!!!"%!!%"!$rN!3!N!F3!!!!$!!!!!%!!!(3!J%%!2q3"!#3$i3\r!!!#!"!3%!*!)!3!!!!6rN!3!N!6rN!3!N!F"!!!!!3!!!!%!!!"J!!!!C!!!!(`\r!!!!"!*!6!3#3#!)!!!S!!3#3"3)!N!4+!%B!3f&bBQpZ6'PL!%CTEQ4'EfaNCA)\r!N"Km#!+QNq(rr*!!!3!)P#(rX(ar'hJi!2rrX!%!2$J!rrq3!!%!1+JI!!!X!!!\r%3))!A+Kr!##!R`!#L,m!"MM"!$`ii3!i5!!!@B""!"4mB!Fe3B)!*+Kr!#!mJ'e\rK1+!!!$M"!$`ii3!i1)4MFdJ!!$'!33!8U!%!2,!I!##!!3!iN!!I!#+`I`!HJ!%\r!@$JK!&"m#!1QJq(rr%k!!##"JJ!!N!""!"5!$!!!J%`!"(`*!kC1J!3J!*!-$!!\r!!9)!N!5!#!#3"4!!%!#3#8J!!!")!*!&"!!"!!3!N!B"%J#3#3)!N!83!"!!N!8\r#!*!&%!!3!*!%-!$m`2r`rrMrq2rirrMrq2rirrMrq(ri(r`(rJ(q!(``!-c!Xc#\r-#)-)J-L!+)!iJ$L!1-!iF$JF2!Fq!Ii!I!!!15`!!!!'!!$rN!B!!Fb3"2rr!!+\rCN!6rr`!$CT!%c-`!"%53"J!&)T!'!!m!N!Ir!*!'p#,r!2m!!!$a4#,r)Im!!2%\r44#)L%[!!m4%44#)Lm!$a%4%44#,`!2%4N!6bm!$a%4%4%[2`!2%4%4%5mr!!m4%\r4%4,cm!$c)4%4%[2`!!rc)4%5mr!!!!rc)4,cp3!!!!rc)[2e8!!!!!rcmr93!*!\r%$rp9!*!%J'!+!!"*6&K$%jB!!%lk!!41G8j@rrS[#Lm$*'i!#$emrrrrrR$r,8$\rrqJa5!!4Q2P922bS!)#mU!!)I+J!'5'lrrNKZrrT`!+JM-"mf!'F1F!)Y32rk2@S\r!#2rqGJ!eE[rq!#!PE[rk!#)e3`!H*KmNAdjH,Tp1GB4YB@PZ!*!&!F&+EhNKF'9\rQCR"hF'-!!!!"YLbhjJ#3$3-!!J#3"2q3"!#3"kJ!!!#S!!!!U!!!!4!!"!3!rj!\r%!*!(%!!!!!`!!!!"!!!"`!)""!$rN!3!N!q%!!!!J!3%"!#3#!%!!!!%rj!%!*!\r%rj!%!*!(!3!!!!%!!!!"!!!!B!!!!'3!!!"m!!!!!3#3%`%!N!J#!!!+!!%!N!8\r#!*!%5J"'!%0KFQ*[ENaTBJ"'D@jN4QpXC'9b!*!BI!J#TT2Krrb3!!%!#*3Krl"\rmIaYi1!$rrl!"!$`i!2rrN!!"!$LS(`!!,!!!"%##!&#SI`!JJ*m!!SLr!!Bi`3!\rm11%!1%J!!%f!33!8I'!(08'#!"Ji!!!#N!!"!$LS(`!)X!%!2$KJ!!#S!3!mX"m\r!))!"!$L3!"m!)V"r!"k!!3"B1#%!8(`)!kD$iIrm6S!!))'#!!#3!%%!&)!-!!#\r!6!!%I!N$TNk!"#!!N!J-!!!#)J#3")!3!*!&%!!3!*!*5!!!!%J!N!8)!!%!#!#\r3"J'5!*!*!J#3"4!!%!#3"3)!N!83!"!!N!3`!2c!rr$rq2rirrMrq2rirrMrq2r\rirrMrr2rq2ri2I$!!c-#c-)`)J`Lib,BS[DLrD1rSXqL0k*DXa+ielJpm!!"N)`!\r!!"!!!2q3"J!Uc*!%rrm!+mb3"J")QCRrN!3!9*Q3"2rr!(pQN!6-c!$!!!#CQIr\rr!2EGN!B!plZ3"J$iUT!'!2Q)N!B!qRH3"J$l9C!'!2a%N!B!r5+3"J$q%C!'!2m\r!N!Mrr`#3$2rm9&6rr`!!rrm!N!Er+[cm9&6rre3Urrm!N!6r+LSUr2a8N!3U92m\r!!!$r+T!&r2a8N!6r!!!!rbVpr2mU+LVmr&48r`!!!2mUrrrkr2mU+LVr92m!!!$\rr+[rprrrkr2mUrhrr!!!!rbVrr[hprrrkrrprr`!!!2rrIm$qr[hrqrrrIrm!!!$\rrqrrp5-$qrr[rrhrr!!!!rrRiqrrp`2q3"(rr!!!!rrMhr5[rrrRr92prrrd!!2r\rr+rEfrrRkre6rIrrpr3!!!2rmq2rkrrrmrhrrrId!N!Arrrpr!2rrrrhp!*!%"T*\rJ#J!!58aB3a1C!!"1qJ!%6R9)jaJJA8mNE`!@1#S!)$9mrrm!)($r*8!!)Ja5!!4\rQ!!%f98mr"#mU!!)I+J!'5'm!$NK[!!j`!+JM-"mf!'F!!3Je4!!J,c`!J!!8,ca\r69&)M,ca"58j*,caQB@aX,caPH(4Z,caPH(4Z,`T1ZJ$b0J"2l`!FC`!!fM9%!#!\r[2!#!!"3[2&088L-[2%&*6NN[2'CKE'`[2'9iG'i[2'9iG%3[#Nkk!,Sf!%r[!"a\rR!!#L083!)#mm!)!!&#mm8e45)bmm38P155mmGf&XDbmmCAKdELmmCAKdELm+6VS\r!JMB!6qm!('GU083!)#mm!)!!&#mm8e45)bmm38P155mmGf&XDbmmCAKdELmmCAK\rd4#m+6VS!6$B!6qm!('Fd98mr"#mmCAKdEN)R5'm!$NK[!!j`!+JM-"mf!'B@0@m\r!"!!J*9F!)Q!+0@m!"!!J*9F!)M9$!"jF6dcI""JZRdje51FB)%r[rp`NE`!d1#S\r!)$9mrrm!)($r*8!!)P922`3[,`!m(bS!"NK[!"")E`!3F!#S)c!I0J"Q!!#Z)#m\r!2,#[!$KR(P922`3[,`"!(bS!"NK[!!T)E`!@F!#S)c!I0J"J#Mk[!!B[E`!#!!K\r+3fCf2eF!(Lp[!!J!)$p[!%`!'$p[!%i!'KpU!!B!(#p[!%!!$#p[!%3!%#p[!%J\r!&&922bm!##m[!!C#Tcmm!!&)HJ"#5'm!(Nkk!L!`(cB!CLBJ,`!JX+m!#'B3GY8\reI2rr!#"`rb9!!#*J$$9[!"i!)#9[!#!!)M!$6qm!*%cI""K1G8MR'$*2lrk8,'m\r"M#4[!B5AbhB!H2mJ,J!NX**Q!!%N)#i!),#U!!4Q!!%B3LHTQe922bi!&LmZ!'3\r[,J!5(c`!!DJD-"mi!"mm!!'TQe92UDm`(cB!CJ!!f!bU8e45)`!)CM*#*kQE@8m\r[2&088L-r+J!-U"mJAbC)(c`!!DQE)!YR!!#d5&Fr+J!-2bS!$Nkk!e4J-PP2,bS\r!#$mU!!bS(b"I*NK96kQ[-"mf!#!,Ca)J8a!35)"53%M!)&0$ek)ZB!4fcQ"S3GF\r[5!%52fS!%J%@,fS!&!%`3Qm"(%([!3"`#D*J0J"Q$M9[!4B!%L9[!6!!&'!i$%2\rrL'F'$%2re@BJ5LS!%'FD3Hm"!(!'SQ!f!'B10@m"&J!5*@m"-!!8B!`eI2rr!"*\r`rb9!!"3JE`')%,`!!3a%rrpR"$m%UCT2l`&X60p-'#"I6qm!$%l351FB)#J[!"!\rNE`!85QS!Y'F+-#S!YV"U!,4NFRB"8QS!YM9$!#!P4!!d3HS!"(!*SQ!e3!#`5QS\r!X'BX5'S!"%KU!,)[+J#i)&*1N!!3+J!L!N!!%'F55LS!XQB-,`S[+J!d6VVrR&"\r28N0+DJ#`CJC++J#bCk`-D[r9!,"R#!aUl(J!X'B%3QS!X&0U!,C-h`3B6R8[!dr\r[rca+V`$3C`!!MP922bm!i#m[!0i[,`$H5'm!%%K[!"&1ZJ'!-"mf!'CZ$#m!!3!\r"CQ"96bm[!0Jr,`$N5'm!#Nkk!5J`(cB!CNi[E`$3!!K"l`!)3HJ!F#p)!"irE`!\r#!#*#,`"i3Qm!Z%)[!,SrE`$8!,a#E`#q,fm!c!$!5'm!##m[!!K1Z[lJ0Lm!`&"\r2B!CfL'!#GXir3`$J6qm!a#BI)&p2l`!86Y")ja!`6qrr!#C[!4BNE`%3)!TR1M9\r[!43!&L!,CJT#UJ!53QS!('!D)%Y$eh!!%"053%M!SLj"eb9)!")eI2rr!"`J5U)\r(0J"#UJ!5B!*fcMp$!4T2l`%!60m-##"I6qm!#Nl351F3-%r[rq!QE`!d*'m!-#!\r,C`4+%fB33KG"eb9)!")eI2rr!"aJ##9,!"*#DJ!F0@m!2!!@*@m!1!!`)%T`#D*\rJ0J"#UJ!52d-!2Nr[!#"-h``))&p2l`!16Y![!dr[riC96bm[!)Sr,`#-5'm!#%k\rkrbS`(cB!CJJJE`##-+m!&Mp$!)a2l`"k*KmJAdr[!!T1d%MR%$"2lrq8*Qm!J#4\r[!(a96cm[!)i[,`#-,bm!M%K[!!a1Z[p)-"mf!'BD%#m!(J*!!""@`%3!&)"R"LD\r[!$"J"#D[!'3r3`#16qm!E%cI$!JJAdr[!"*1d%j@!!"C6bmm8e45)cmZ!!UTS#*\rZ!!a#%5!ICb)J3#"3-"Jb,J!)CaDb3')5F!"63@F'%"M4`'$f%""53+!Z6PiJAe#\r26Y!!!![j5Qpj)A"PCQC`Gh"M!!!!!EBXXr-!N!d$!!)!N!6rN!3!N!B+,!!!#L`\r!!!SX!!!"`!!%"!$rN!3!N!G%!!!!3!!!!!N!!![`!J%%!2q3"!#3$J%d!!!!J!3\r%"!#3#!%!!!!`rj!%!*!%rj!%!*!(!3!!!!X!!!!"!!!!L!!!!*!!!!!",!!!!!%\r!N"-,!*!)!J!!#J)!!"S#!!!U!J!!0`)!!%3#!!"2!J!!A!)!!'S#!!"c!J!!IJ)\r!!)m!!3#3"3-!N!4+#N)!4J%!!%0KFQ*[ENaTBJ"33NK(CA4@5@jQEe0jEQ-!8%*\r%DA*$FQ9KG'96H@jM!%GPG$&5CA0[GA*MC3"(CA4*EQ46G(*TEQF!8f9d8Q9c6'p\rKC!"$E'pcC9*PFdCTE'8!3Qa[BfY0EhCP4'&dB3"5CA0&FR*[FJ"'D@jN4QpXC'9\rb!&"#4f9d3f&d5@jQEe0jEQ-!5%p`C@j5CA0'D@aP!*!9I!J#TT2Krrb6`IriN!!\r"!!L8)Iq`I(mEH+[I!#!i!2rrX"m!)$J!rrq3!"m!)UJI!!!X!!!%3))"Q(r$mhL\r!R`!#L,m!"MM"!$`ii3!i5!!)`B""!"4mB!Fe3B)"B,2I!#!iI`!!2)"PH$bJCAJ\rm`'CK21""56d!8e3j)!#!18!!&$L%G'iiTA4Z1-CXE$MR6NNj#&)M5!!"8@!!!!"\rmB!Fe3B)"+,2I!#!iI`!!2)"PH$bJCAJm`'CK21""56d!8e3j)!#!18!!&$L%G%3\riTA4Z1-CXE$MR6NNj#&)M5!!"#@!!!!"mB!Fe3B)!i,2I!#!iI`!!2)"PH$bJCAJ\rm`(GK21""56d!8e3j)!#!18!!&$L%G'iiTA4Z1-CXDcMR6NNj#&)M5!!!`@!!!!"\rmB!Fe3B)!Q,2I!#!iI`!!2)"PH$bJCAJm`(GK21""56d!8e3j)!#!18!!&$L%G%3\riTA4Z1-CXDcMR6NNj#&)M5!!!H@!!!!"mB!Fe3B)!8$Kq!!!mJ'9i1+!!!$M"!$`\rii3!i1)4dENJ!"hQ!33!8I'!(08##!#LS!3!mX"m!))!"!$L3!"m!)NJ!!"5S!3!\rmX"m!))!"!$L3!"m!)V"r!"k!!3"B1#%!8(`)!kD$iIrmJm(rq%k!!#"m#!+Q[Z(\rrh*!!!3!)P#(rF$Y$!!!kj!!!1`8!!$YQ!!!lK`!!1kJ!!$[*!!!lkJ!!UcS!)$J\r!rrq`'J!J1!$rrj!!'J!L1(N!!$LA!!#)ZJ!'1-%!A$MK!&K)!!E4J%%!&(aJ"c9\r!JJ$3I"Li3%'#!#3iH3!!1*J!!)Lk!!Bi`3"811%!8%J!"U@!33!85!!!&+J"!&b\r`!3"8J!%!@*!!!3"3I'!(08##!*!!U!%!9,!"!%U!!3"3N!!"!%bc`3"%Xq%!4SJ\rD!!DB!3")Nf%!1*1"!$b6S3"!U'%!A)#"!&JiS!!!1-!!!B$L!#`j!3!i5!!$L@!\r!!!"mB!Fe3))!2)#"!%b!!3"3I!3!!%##!"`iB2r91!$rrl!D!#!i!2rrN!!D!#*\r)!!!8U!%!5V!D!##!!3"-N!!D!#+!!3#B1#%!N!"m#!1QZZ(rh%k!!#"m#!+QNq(\rrr*2"rrL6SIrdNi(rm*!!!3!)P#(q3$Z$!!!lT!!!I,mVH)"m!#5!(`!!I!-!3%#\r#!FL!I!!JJ"m!"(`$!%"!JJ'i1'!!!%J!"Df!33!8U(`!&S#F!'5![!!51-!!!8J\r!"Df!33!8I(iEH$KJ!!&)!!@&J%%!&%J!"Df!33!8I'!(08##!95!I`!)2!1XV#J\r!8L0!JJ"81'!!!%J!"9Q!33!82'"69+LI!!`iBe)M5!!&MB""!"4mI"Yi1'!!!8J\r!"6@!33!8+"`!!%'#!43iB3#NU*m!$+Lr!!j)!!9jJ%%!&%J!!&#!I`!)U*m!$%J\r!"8f!33!8I(`EH%J!"5Q!33!8+"`!!%'#!0#!I!!!1)%!T)#m!!#)"3!!I!8(G$L\rP!!&)!!9*J%%!&%J!!!K)!!#S1!%!T*!!!3"+U"m!%V!"!%k!(`!8N!!"!'Ji!!!\r!X!%!9$KK!$K)!!8YJ%%!&(aJ"c9!JJ!BU!%!6V!I!"+!!3"SN!!I!"4)!!"JI'!\r(0#`!riK"JJ!3I'!(0#`!rp9!JJ!iL"m!%#J!!!""JJ!X1'%!1%J!"2Q!33!8I'!\r(08##!"LS!3"1X"m!%S!"!'L3!"m!&%J!!"3i!2rrX"m!%MJ!rrq3!"m!&$J!!!'\rB(3!!Im!(0#`!rrp"JJ!3Im2cH%J!"-@!33!8J!%"b$JK!F"m#!1QJq(rr)2"rrL\r$SIrdJi(rm%k!!#"m#!+QNq(rr*2"rrL6SIrdN!!"!!L8)Iq`1k-!!$[N!!#J(`#\rd+!!!!%'#!"5JI`#fS"m!Y(`$!%"!J!#m1m!!!D"r!,Bi!`!"X"m!YV2I!##6[`!\rd1(m!"%J!""@!33!8X(m!X+JI!,!X!!!!3))!3$Kr!!3iR`#bJ,m!Z)'I!!")!!4\r0J%%!&)JI!#*8!!Eh3B)!()JI!,)S!!!!3))!%)"r!$4rj2Yi5rrr@6[H!!'S(`#\r`,!!!!%##!"#)(`#b+!!!!%'#riLS(`#`,!$re8'#!"#S(`#`,!$XH%##!!`i!!!\r!X"m!X+"r!,Bi!rrrX"m!YS!"!&Ji)3"3I!J$TS2Krrb$`IriJk(rp%k!!#"m#!+\rQ[f(rl*!!!3!)P#(qi$YM!!!lK3!!1kB!!$[(!!!lk!!!+"i!!%'#!+3iH`!!1,`\r!!$M"!$`ii3!i5!!"q@!!!!"mB!Fe3))!L)J"!$JS!!!"3))!F$Km!!!iQ`!!1+%\r!1NJ!!C&J!!!!I'!(08##!'#6`3"!1!%!X*!!!3"@U!%!1V!"!&Si!!!!Q!%!X$J\r!!!#`!3$`1!!!!*J"!2+cS3$d1!!!!,!"!2D6i3$iJ'%!2$L"!%",rrijU'%!m%J\r!!"!iB2q)5!!!#$KJrmk!!3%S1#%")(`)!kDlBIrX6S!!)(`)!UD6iIrmN!!"!!L\r8)Il!I,mVH#JI!!""JJ"JX*m!&LJ$!!"!JJ!B1!!!!*!!(`!51!!!!,!I!"a)!!!\rS1)%!1)LM!!!iT3!"5!!#'B""!"3i!3!iN!!I!")i!2rrX"m!((rMqhK)!!*GJ%%\r!&$J!!!#3!"m!%NJ!!!JiB2r1J!%"5$JK!8"m#!1QJq(rr%k!!#"m#!+QNq(rr*!\r!!3!)P#(rS(cI-hJS"3!!3B)!%)J&!!!S!!!!3))!)$J!!!#B!3!i1!%!1*!!(`!\r51!$rrl!I!"a)!!!3N!#r!")i!!!!X"m!(,"r!"D3!*m!-(rMqhK)!!'0J%%!&$J\r!!!#3!"m!%S!"!'Ji)3"JI!J$TS2Krra1J!!JI!J#TT2Krrb3!!%!#*3Krd"m[bY\ri1+%!1%[rrYPmB!Fe3))!$+J"!%k`(`!!J!%!b$JK!-"m#!1QJq(rr%k!!#"m#!+\rQNq(rr*2"rrL3!!%!#*3Kre!laJ!!1qF!!$M"!$K,rrmKI'!(08##!%#)!3"@9!3\r'pMJ!!!"mK!"3-!6rrh`!)4#B(`!!L"m!!#J!!!""JJ!3J!%!D*!!(J!!5!!!$)!\r"!*b3!"i!!)!"!,Ji)3#`I!J$TS2Krrb$`Iri6S!!))'#!##3!%%!&)!-!!#!6!!\r%I!N$TNk!"##"JJ!3N!""!"5!$!!!J%`!"(`*!kC1J!3JJB)!+*!!33!8J!`!!)"\r-!!4m#31Q6S!%))'#!"b3!%%!&)!-!!#!6!!%I!N$TNk!"##"JJ!)N!""!"5!$!!\r!J%`!"(`*!kC1J!3JJB)!$*!!33!8J!`!!)"-!!4m#31Q6S!%))'#!"L3!%%!&)!\r-!!#!6!!%I!N$TNk!"##"JJ!NN!""!"5!$!!!J%`!"(`*!kC1J!3JJB)!"*!!33!\r8J!`!!)"-!!4m#31Q6S!%))'#!"53!%%!&)!-!!#!6!!%I!N$TNk!"##"JJ!!N!"\r"!"5!$!!!J%`!"(`*!kC1J!3JJ!`!!*!!33!8I!N$TS"-!!41J!3J6S!!)!#3"5m\rK1!SL!b`%!!!"BJ#3")!)!*!&%!!3!*!*5!!!!%J!N!8%!!%!"!#3"J%5!*!*!J#\r3"4!!%!#3"3)!N!83!"!!N!3`!2c!rr$rq2rirrMrq2rirrMrq2rirrKrr!Iq!ri\r"r$!!c-#c-)`)J`L!b22SRbL++)SSRqMkD"dX"Qi$lJ"m!!&%G!!!!!J!!2q3"J!\r"c*!%rrm!!TQ3"2rr!!0QN!6-c!!%hGd!N!8&lT!'!!C%N!B!"b+3"J!2!*!(r`#\r3"[BLr`$r!!!!m@BLrb(r!!$a%@BL)K,`!2%4%@BL)[!!m4%4%@BLm!$rra&2rf,\r`!2984%49mr!!p9Aa49Acm!$e98(e9I2`!29842rrmr!!rrp"p9rcm!!$2f-I9I2\rh!!!!$r9ImrG`!!!!rrrcph!!!!!$2rph!!!!"T*J#J!!58aB3a1D!!"1qJ!%6R9\r)jaJJA8mNE`!@1#S!)$9mrrm!)($r*8!!)Ja5!!4Q!!%f98mr"#mU!!)I+J!'5'm\r!$NK[!!j`!+JM-"mf!'F!!3Je4!!J,c`!J!!#,ca69&)M,ca"58j*,caQB@aX,ca\r`FQ9Q,caPH(4Z,`T1ZJ$b0J"2l`!FC`!!fM9%!#![2!#!!!)[2&088L-[2%&*6NN\r[2'CKE'`[2("bC@B[2'9iG%3[#Nkk!,Sf!%r[!"aR!!#L083!)#mm!)!!!Lmm8e4\r5)bmm38P155mmGf&XDbmmF(*PCLmmCAKdELm+6VS!JMB!6qm!('GU083!)#mm!)!\r!!Lmm8e45)bmm38P155mmGf&XDbmmF(*PCLmmCAKd4#m+6VS!6$B!6qm!('Fd98m\rr"#mmF(*PCN)R5'm!$NK[!!j`!+JM-"mf!'B@0@m!"!!J*9F!)Q!+0@m!"!!J*9F\r!)M9$!"jF6dcI""JZRdje51FB)%r[rp`NE`!d1#S!)$9mrrm!)($r*8!!)P922`3\r[,`!m(bS!"NK[!"")E`!3F!#S)c!I0J"Q!!#Z)#m!2,#[!$KR(P922`3[,`"!(bS\r!"NK[!!T)E`!@F!#S)c!I0J"J#Mk[!!B[E`!#!!K+3fCf2eF!(Lp[!!J!)$p[!%`\r!'$p[!%i!'KpU!!B!(#p[!%!!$#p[!%3!%#p[!%J!&&922bm!##m[!!C#Tcmm!!&\r)HJ"#5'm!(Nkk!L!`(cB!CLBJ,`!JX+m!#'B3GY8eI2rr!#"`rb9!!#*J$$9[!"i\r!)#9[!#!!)M!$6qm!*%cI""K1G8MR'$*2lrk8,'m"M#4[!B5AbhB!H2mJ,J!NX**\rQ!!%N)#i!),#U!!4Q!!%B3LHTQe922bi!&LmZ!'3[,J!5(c`!!DJD-"mi!"mm!!'\rTQe92UDm`(cB!CJ!!f!bU8e45)`!)CM*#*kQE@8m[2&088L-r+J!-U"mJAbC)(c`\r!!DQE)!YR!!#d5&Fr+J!-2bS!$Nkk!e4J-PP2,bS!#$mU!!bS(b"I*NK96kQ[-"m\rf!#!,Ca)J8a!35)"53%M!)&0$ek)ZB!4fcQ"S3GF[5!%52fS!%J%@,fS!&!%`3Qm\r"(%([!3"`#D*J0J"Q$M9[!4B!%L9[!6!!&'!i$%2rL'F'$%2re@BJ5LS!%'FD3Hm\r"!(!'SQ!f!'B10@m"&J!5*@m"-!!8B!`eI2rr!"*`rb9!!"3JE`')%,`!!3a%rrp\rR"$m%UCT2l`&X60p-'#"I6qm!$%l351FB)#J[!"!NE`!85QS!Y'F+-#S!YV"U!,4\rNFRB"8QS!YM9$!#!P4!!d3HS!"(!*SQ!e3!#`5QS!X'BX5'S!"%KU!,)[+J#i)&*\r1N!!3+J!L!N!!%'F55LS!XQB-,`S[+J!d6VVrR&"28N0+DJ#`CJC++J#bCk`-D[r\r9!,"R#!aUl(J!X'B%3QS!X&0U!,C-h`3B6R8[!dr[rca+V`$3C`!!MP922bm!i#m\r[!0i[,`$H5'm!%%K[!"&1ZJ'!-"mf!'CZ$#m!!3!"CQ"96bm[!0Jr,`$N5'm!#Nk\rk!5J`(cB!CNi[E`$3!!K"l`!)3HJ!F#p)!"irE`!#!#*#,`"i3Qm!Z%)[!,SrE`$\r8!,a#E`#q,fm!c!$!5'm!##m[!!K1Z[lJ0Lm!`&"2B!CfL'!#GXir3`$J6qm!a#B\rI)&p2l`!86Y")ja!`6qrr!#C[!4BNE`%3)!TR1M9[!43!&L!,CJT#UJ!53QS!('!\rD)%Y$eh!!%"053%M!SLj"eb9)!")eI2rr!"`J5U)(0J"#UJ!5B!*fcMp$!4T2l`%\r!60m-##"I6qm!#Nl351F3-%r[rq!QE`!d*'m!-#!,C`4+%fB33KG"eb9)!")eI2r\rr!"aJ##9,!"*#DJ!F0@m!2!!@*@m!1!!`)%T`#D*J0J"#UJ!52d-!2Nr[!#"-h``\r))&p2l`!16Y![!dr[riC96bm[!)Sr,`#-5'm!#%kkrbS`(cB!CJJJE`##-+m!&Mp\r$!)a2l`"k*KmJAdr[!!T1d%MR%$"2lrq8*Qm!J#4[!(a96cm[!)i[,`#-,bm!M%K\r[!!a1Z[p)-"mf!'BD%#m!(J*!!""@`%3!&)"R"LD[!$"J"#D[!'3r3`#16qm!E%c\rI$!JJAdr[!"*1d%j@!!"C6bmm8e45)cmZ!!UTS#*Z!!a#%5!ICb)J3#"3-"Jb,J!\r)CaDb3')5F!"63@F'%"M4`'$f%""53+!Z6PiJAe#26Y!!!![j5Qpj)A"PCQC`Gh"\rM!!!!!ECDQ9-!N!d$!!)!N!6rN!3!N!B+,!!!#L`!!!SX!!!"`!!%"!$rN!3!N!G\r%!!!!3!!!!!N!!![`!J%%!2q3"!#3$J%d!!!!J!3%"!#3#!%!!!!`rj!%!*!%rj!\r%!*!(!3!!!!X!!!!"!!!!L!!!!*!!!!!",!!!!!%!N"-,!*!)!J!!#J)!!"S#!!!\rU!J!!0`)!!%3#!!"2!J!!A!)!!'S#!!"c!J!!IJ)!!)m!!3#3"3-!N!4+#N)!4J%\r!!%0KFQ*[ENaTBJ"33NK(CA4@5@jQEe0jEQ-!8%*%DA*$FQ9KG'96H@jM!%GPG$&\r5CA0[GA*MC3"(CA4*EQ46G(*TEQF!8f9d8Q9c6'pKC!"$E'pcC9*PFdCTE'8!3Qa\r[BfY0EhCP4'&dB3"5CA0&FR*[FJ"'D@jN4QpXC'9b!&"#4f9d3f&d5@jQEe0jEQ-\r!5%p`C@j5CA0'D@aP!*!9I!J#TT2Krrb6`IriN!!"!!L8)Iq`I(mEH+[I!#!i!2r\rrX"m!)$J!rrq3!"m!)UJI!!!X!!!%3))"Q(r$mhL!R`!#L,m!"MM"!$`ii3!i5!!\r)`B""!"4mB!Fe3B)"B,2I!#!iI`!!2)"PH$bJF()m`'CK21""56d!8e3j)!#!18!\r!!ML%G'iiT@9Q1-CXE$MR6NNj#&)M5!!"8@!!!!"mB!Fe3B)"+,2I!#!iI`!!2)"\rPH$bJF()m`'CK21""56d!8e3j)!#!18!!!ML%G%3iT@9Q1-CXE$MR6NNj#&)M5!!\r"#@!!!!"mB!Fe3B)!i,2I!#!iI`!!2)"PH$bJF()m`(GK21""56d!8e3j)!#!18!\r!!ML%G'iiT@9Q1-CXDcMR6NNj#&)M5!!!`@!!!!"mB!Fe3B)!Q,2I!#!iI`!!2)"\rPH$bJF()m`(GK21""56d!8e3j)!#!18!!!ML%G%3iT@9Q1-CXDcMR6NNj#&)M5!!\r!H@!!!!"mB!Fe3B)!8$Kq!!!mJ("b1+!!!$M"!$`ii3!i1)4PCNJ!"hQ!33!8I'!\r(08##!#LS!3!mX"m!))!"!$L3!"m!)NJ!!"5S!3!mX"m!))!"!$L3!"m!)V"r!"k\r!!3"B1#%!8(`)!kD$iIrmJm(rq%k!!#"m#!+Q[Z(rh*!!!3!)P#(rF$Y$!!!kj!!\r!1`8!!$YQ!!!lK`!!1kJ!!$[*!!!lkJ!!UcS!)$J!rrq`'J!J1!$rrj!!'J!L1(N\r!!$LA!!#)ZJ!'1-%!A$MK!&K)!!E4J%%!&(aJ"c9!JJ$3I"Li3%'#!#3iH3!!1*J\r!!)Lk!!Bi`3"811%!8%J!"U@!33!85!!!&+J"!&b`!3"8J!%!@*!!!3"3I'!(08#\r#!*!!U!%!9,!"!%U!!3"3N!!"!%bc`3"%Xq%!4SJD!!DB!3")Nf%!1*1"!$b6S3"\r!U'%!A)#"!&JiS!!!1-!!!B$L!#`j!3!i5!!$L@!!!!"mB!Fe3))!2)#"!%b!!3"\r3I!3!!%##!"`iB2r91!$rrl!D!#!i!2rrN!!D!#*)!!!8U!%!5V!D!##!!3"-N!!\rD!#+!!3#B1#%!N!"m#!1QZZ(rh%k!!#"m#!+QNq(rr*2"rrL6SIrdNi(rm*!!!3!\r)P#(q3$Z$!!!lT!!!I,mVH)"m!#5!(`!!I!-!3%##!FL!I!!JJ"m!"(`$!%"!JJ'\ri1'!!!%J!"Df!33!8U(`!&S#F!'5![!!51-!!!8J!"Df!33!8I(iEH$KJ!!&)!!@\r&J%%!&%J!"Df!33!8I'!(08##!95!I`!)2!1XV#J!8L0!JJ"81'!!!%J!"9Q!33!\r82'"69+LI!!`iBe)M5!!&MB""!"4mI"Yi1'!!!8J!"6@!33!8+"`!!%'#!43iB3#\rNU*m!$+Lr!!j)!!9jJ%%!&%J!!&#!I`!)U*m!$%J!"8f!33!8I(`EH%J!"5Q!33!\r8+"`!!%'#!0#!I!!!1)%!T)#m!!#)"3!!I!8(G$LP!!&)!!9*J%%!&%J!!!K)!!#\rS1!%!T*!!!3"+U"m!%V!"!%k!(`!8N!!"!'Ji!!!!X!%!9$KK!$K)!!8YJ%%!&(a\rJ"c9!JJ!BU!%!6V!I!"+!!3"SN!!I!"4)!!"JI'!(0#`!riK"JJ!3I'!(0#`!rp9\r!JJ!iL"m!%#J!!!""JJ!X1'%!1%J!"2Q!33!8I'!(08##!"LS!3"1X"m!%S!"!'L\r3!"m!&%J!!"3i!2rrX"m!%MJ!rrq3!"m!&$J!!!'B(3!!Im!(0#`!rrp"JJ!3Im2\rcH%J!"-@!33!8J!%"b$JK!F"m#!1QJq(rr)2"rrL$SIrdJi(rm%k!!#"m#!+QNq(\rrr*2"rrL6SIrdN!!"!!L8)Iq`1k-!!$[N!!#J(`#d+!!!!%'#!"5JI`#fS"m!Y(`\r$!%"!J!#m1m!!!D"r!,Bi!`!"X"m!YV2I!##6[`!d1(m!"%J!""@!33!8X(m!X+J\rI!,!X!!!!3))!3$Kr!!3iR`#bJ,m!Z)'I!!")!!40J%%!&)JI!#*8!!Eh3B)!()J\rI!,)S!!!!3))!%)"r!$4rj2Yi5rrr@6[H!!'S(`#`,!!!!%##!"#)(`#b+!!!!%'\r#riLS(`#`,!$re8'#!"#S(`#`,!$XH%##!!`i!!!!X"m!X+"r!,Bi!rrrX"m!YS!\r"!&Ji)3"3I!J$TS2Krrb$`IriJk(rp%k!!#"m#!+Q[f(rl*!!!3!)P#(qi$YM!!!\rlK3!!1kB!!$[(!!!lk!!!+"i!!%'#!+3iH`!!1,`!!$M"!$`ii3!i5!!"q@!!!!"\rmB!Fe3))!L)J"!$JS!!!"3))!F$Km!!!iQ`!!1+%!1NJ!!C&J!!!!I'!(08##!'#\r6`3"!1!%!X*!!!3"@U!%!1V!"!&Si!!!!Q!%!X$J!!!#`!3$`1!!!!*J"!2+cS3$\rd1!!!!,!"!2D6i3$iJ'%!2$L"!%",rrijU'%!m%J!!"!iB2q)5!!!#$KJrmk!!3%\rS1#%")(`)!kDlBIrX6S!!)(`)!UD6iIrmN!!"!!L8)Il!I,mVH#JI!!""JJ"JX*m\r!&LJ$!!"!JJ!B1!!!!*!!(`!51!!!!,!I!"a)!!!S1)%!1)LM!!!iT3!"5!!#'B"\r"!"3i!3!iN!!I!")i!2rrX"m!((rMqhK)!!*GJ%%!&$J!!!#3!"m!%NJ!!!JiB2r\r1J!%"5$JK!8"m#!1QJq(rr%k!!#"m#!+QNq(rr*!!!3!)P#(rS(cI-hJS"3!!3B)\r!%)J&!!!S!!!!3))!)$J!!!#B!3!i1!%!1*!!(`!51!$rrl!I!"a)!!!3N!#r!")\ri!!!!X"m!(,"r!"D3!*m!-(rMqhK)!!'0J%%!&$J!!!#3!"m!%S!"!'Ji)3"JI!J\r$TS2Krra1J!!JI!J#TT2Krrb3!!%!#*3Krd"m[bYi1+%!1%[rrYPmB!Fe3))!$+J\r"!%k`(`!!J!%!b$JK!-"m#!1QJq(rr%k!!#"m#!+QNq(rr*2"rrL3!!%!#*3Kre!\rlaJ!!1qF!!$M"!$K,rrmKI'!(08##!%#)!3"@9!3'pMJ!!!"mK!"3-!6rrh`!)4#\rB(`!!L"m!!#J!!!""JJ!3J!%!D*!!(J!!5!!!$)!"!*b3!"i!!)!"!,Ji)3#`I!J\r$TS2Krrb$`Iri6S!!))'#!##3!%%!&)!-!!#!6!!%I!N$TNk!"##"JJ!3N!""!"5\r!$!!!J%`!"(`*!kC1J!3JJB)!+*!!33!8J!`!!)"-!!4m#31Q6S!%))'#!"b3!%%\r!&)!-!!#!6!!%I!N$TNk!"##"JJ!)N!""!"5!$!!!J%`!"(`*!kC1J!3JJB)!$*!\r!33!8J!`!!)"-!!4m#31Q6S!%))'#!"L3!%%!&)!-!!#!6!!%I!N$TNk!"##"JJ!\rNN!""!"5!$!!!J%`!"(`*!kC1J!3JJB)!"*!!33!8J!`!!)"-!!4m#31Q6S!%))'\r#!"53!%%!&)!-!!#!6!!%I!N$TNk!"##"JJ!!N!""!"5!$!!!J%`!"(`*!kC1J!3\rJJ!`!!*!!33!8I!N$TS"-!!41J!3J6S!!)!#3"5mK1!SL!b`%!!!"BJ#3")!)!*!\r&%!!3!*!*5!!!!%J!N!8%!!%!"!#3"J%5!*!*!J#3"4!!%!#3"3)!N!83!"!!N!3\r`!2c!rr$rq2rirrMrq2rirrMrq2rirrKrr!Iq!Ii"r$!!c-#c-)`)J`L!b22SRbL\r++)SSRqMl+"NX"bi"lJ"m!!&(i3!!!!J!!2q3"J!"c*!%rrm!!TQ3"2rr!!0QN!6\r-c!!%hGd!N!8&lT!'!!C%N!B!"b+3"J!2!*!(r`#3"[BLr`$r!!!!m@BLrb(r!!$\ra%@BL)K,`!2%4%@BL)[!!m4%4%@BLm!$rra&2rf,`!2984%49mr!!p9Aa49Acm!$\re98(e9I2`!29842rrmr!!rrp"reAcm!!$2f-[9I2h!!!!$fp9mrG`!!!!$rrcph!\r!!!!$2rph!!!!##jJ#J!!58aB3a1E!!"1qJ!%6R9)jaiJA8mNE`!H1#S!)$9mrrm\r!)($r*8!!)Ja5!!4Q!!)898mr"#mU!!)I+J!'5'm!$NK[!!j`!+JM-"mf!'F!!HB\rU2'9iG'ie4!!J,c`!J!!#,ca69&)M,ca"58j*,caQB@aX,ca`FQ9Q,caPH(4Z,`T\r1ZJ(+0J"2l`!FCcSU2'9iG%3e4!!J,c`!J!!#,ca69&)M,ca"58j*,caQB@aX,ca\r`FQ9Q,caPH(4%,`T1ZJ'10J"2l`!F5N0QCM`U!#!e4!!J,c`!J!!$,ca69&)M,ca\r"58j*,caQB@aX,bS!)Mm',`8[#Nkk!NSf!%r[!"jR!!%q98mr"#mmF(*PCN)R5'm\r!$NK[!!j`!+JM-"mf!'B!!4ieE`!%!#!P9`!LB!!"%#SmCAKdEM9%!#![2!#!!!)\r[2&088L-[2%&*6NN[2(GKE'X[2("bC@B[2'9iG'i[#Nkk!1Sf!%r[!"aR1LSmCAK\rd4$9%!#![2!#!!!)[2&088L-[2%&*6NN[2(GKE'X[2("bC@B[2'9iG%3[#Nkk!+i\rf!%r[!"a+3fCJ2#S!)$9%!#![2!#!!!-[2&088L-[2%&*6NN[2(GKE'X[+J!L2`B\r["5m+6VS"DMB!6qm!(QGH98mr"#mmF(*PCN)R5'm!$NK[!!j`!+JM-"mf!'C!0@m\r!"!!J*9F!)Q!d98mr"#mmF(*PCN)R5'm!$NK[!!j`!+JM-"mf!'B@0@m!"!!J*9F\r!)Q!+0@m!"!!J*9F!)M9$!"jF6dcI"(JZRdje51FB)%r[rp`NE`!d1#S!)$9mrrm\r!)($r*8!!)P922`3[,`!m(bS!"NK[!"")E`!3F!#S)c!I0J"Q!!#Z)#m!2,#[!$K\rR(P922`3[,`"!(bS!"NK[!!T)E`!@F!#S)c!I0J"J#Mk[!!B[E`!#!!K+3fCf2eF\r!(Lp[!!J!)$p[!%`!'$p[!%i!'KpU!!B!(#p[!%!!$#p[!%3!%#p[!%J!&&922bm\r!##m[!!C#Tcmm!!&)HJ%!5'm!(Nkk!Yi`(cB!CLBJ,`!JX+m!#'B3GY8eI2rr!#"\r`rb9!!#*J$$9[!"i!)#9[!#!!)M!$6qm!*%cI""K1G8MR'#"2lrrL*'m!,MJU!#!\reI2rr!#"`rb9!!#*96cm%,bm!0KmU!!C)E`!15'm!$R!!U#-`(cB!CRJrE`!f!"J\r[E`!i!"SrE`")!")rE`"+!"3IDJ!'!"B[E`!m!!B[E`"!!!S[E`"%!!j96cm[!!B\r[,`!%3UFr2!!"5(S!3NK[!"K1ZJ)J-"mf!'BQ)#m!'V#[!$KQ%(E90Acrr`!JF2m\rP3!!LB!`eE`!B!#!PE`!D!#)`!dr[!"j-h`3B6R9)jaJb6qrqP#a[!B`NE`'%PmY\rf!(Mr)#i!*,#5CJ!"*#!Z!##`UJ!%CJ!"'%)RUCY96cmZ!"B[,J"N,bi!%Kmm!!'\rS'M!I1!!I2!!"UCY96kQ[-"mf!'B!!0J-UP088L-!#'Bb3LHTQeP2,ca69&)M2bS\r!$+JI)&mQ5"mm!!'TQb!,C`!!Y%KA2bS!$$mU!!j1ZJ08B$*C6bmU!!Jr+J!-U"m\rJAbC)98qTVc!I0J!J#fF5)&-3%%L!8N")`#"63pHL,Q!%GXjJD%(A,dJ"%MpU!")\r"&LpU!"3"-%*[!4a"l`%!F!QLB$B!CJieE`%@!")PE`%`!"4J1!a$riKR"Ja$rp9\rQ)%SU!""R'N([!3"`"U*J0J"Q$M9[!4B!%L9[!6!!&'!-0Acrr`!5F2mP3!!8)'m\r"L"#m!!%-42rrC`3r"+QD6qm"E%cI6"JJAdr[!!a1d%MR'#!S,`!3*'m!&%TU!,4\rR#M!U!,D`DJ#dC(*f!9*U!,Be3`!J*83!0%(U!!4`#D*J08!!X%TU!,"Q,%KU!!4\r)DJ#b,bS!Z#"56T!!%#S!)J*!!""R%NSU!,*Q$#m+,bS!0%kkrja36e*$5QS!X'B\r'5LS!XQHX$'Vre3#`C`J-DZai!,"Q"%*U!,"6DJ#f60m%'%je,`02lrmm5Um!d'F\r!!)j96cm[!1![,`$H,bm!hNK[!"")E`!46VS"J$!I0J"QEJ`[!!%!!@CJ98m[,`$\rB2bm!j%K[!!T1ZJ%S-"mf!'C1,fm!d!!)3Hm!#%(S!(![5!!H2fm!!J!L3Lm!H%*\r[!,K#,`#k2fm!e!#m3Qm![Lp[!-`!`%K[!!J[,`!)6VVqi$B[!-"36f!'GSKJ!RE\r12d-!i%r[!-3Q(b"I6qm!&%l351F3-%r[r`!QE`%@*'m"%#!+CcSeE`%8!"BJ#fB\r+3US!%N*U!"aJ'L",3pG`!"!68N")`+)Z3GFP5!!50Acrr`!F)%UL"cB!3US!%Q!\r#GXir3`%D6qm"!%cI$!JJAdr[!!T1d%MR%$"2lrrJ*Qm!0#4[!$!J#fF%5K0Q%%)\rA3GFP5!!50Acrr`!FB!JP5`!53QS!($9[!$`!&L9[!$J!-#"+F!QLB$B!3US!%Mp\r$!$j2l`!J60m-##"I6qm!$Nl3,`02lrq'98m[,`#+2bm!M%K[!!K1Z[mU-"mf!'B\r))'m!JM#[!"Br3`#-6qm!HLBI)&p2l`!+6Y")ja!`6qrrP#C[!)!NE`"m98mr,`#\r1,bm!M#m[!)a)E`!-6VVr5$!I0J"Q'K![!"i#3!!39X"%!"5!C`BQV`!`B!3QV`"\rN2d-!MNr[!'a-h``))&p2l`!56Y"19J!!@8m[2&088L-r,J!+UD!LEJ!-3K%J(fF\rL)%!J8$!B-Li!#'F@XN"L%R!!8d&R"K!BdF"JpK!38N#J,NjH)&p3Mdl3!!!1'8T\r[H5&`C@CQF(G`B`!!!!'f,,@3!!#3$3-!!J#3"2q3"!#3"Ja3!!!-8!!!$&!!!!(\r!!!3%!2q3"!#3"d3!!!"!!!!!#3!!$K!#!33!rj!%!*!1!63!!!#!"!3%!*!)!3!\r!!$$rN!3!N!6rN!3!N!F"!!!!#`!!!!%!!!#)!!!!N!!!!!%X!!!!!3#3%`X!N!J\r#!!!+!J!!'J)!!#S#!!!h!J!!4!)!!%m#!!"F!J!!DJ)!!(-#!!"q!J!!M`!"!*!\r&!`#3"%S+3J"'!3!!3f&bBQpZ6'PL!&"#5%GPG&C*EQC[8hPZB`"33N4TFN0bC@&\rdC90jEQ-!4f9d-9*PFfpeFQ0P!%GPG%PZC&0dFQPZC`"6CA45CA0-Ef&N!%0XEh0\rP8Q9c4QPXC3"#E'pMDde[GQ9%BA4K!&*PFd9bFQpb!%CTEQ4'EfaNCA)!8%*(CA4\r$BA4*EQC[8hPZB`")6h"PEP*PFdCTE'8!N"9m#!+QNq(rr*2"rrL6SIrdN!!"!!L\r8)IqJI(iEH+[q!#!i!2rrX"i!)$J!rrq3!"i!)UJH!!!X!!!%3))#`(rMqhL!RJ!\r#L,i!"MM"!%3ii3"!5!!+iB""!"4mB!Fe3B)#L$qJCAJl[A4ZXri!)$Kq!!!mJ'9\ri2+"`FMc!CQ%mi%&*23"69$NJ!)!j3!!#1)4dEMLPC@BiaQaX11G156N)8L0)!!*\reB!!!!(aJ"c9"JJ"-2k"PH$ZpG%5crJ!J1(i!!$b!CAJmS("b2-"QB6cJ38Np!&0\r815!!J$P!!!)iK(4%1+9PCMM'E'`ijdj*13K5)dJ!!L9J!!!!I'!(08##!)LS[J!\rJXri!)$J!!!13!!%!1$Kq!!!iR3!!J0i!)McJCQ%p!%&*25"69$P!!)!ijfaX13K\r156NT8L0)!!-PB!!!!(aJ"c9"JJ'`1(m!!$b!F()iS!!!1-%!4$MK!%!iK'9Q5!!\r*dB""!"4mB!Fe3))"L+J"!%5`(J!JJ!%!3*!!(J!L5!!"G$qJCAJl[A4ZXri!)$K\rq!!!mJ'9i2+"`FMc!Gf%mi%&*23"69$NJ!)!j3!!#1)4dEMLPC@BiaQaV11G156N\r)8L0)!!&4B!!!!(aJ"c9"JJ"-2k"PH$ZpG%5crJ!J1(i!!$b!CAJmS("b2-"hB6c\rJ38Np!&0815!!J$P!!!)iK(4%1+9PCMM'E'Xijdj*13K5)dJ!!3&J!!!!I'!(08#\r#!)LS[J!JXri!)$J!!!13!!%!1$Kq!!!iR3!!J0i!)McJGf%p!%&*25"69$P!!)!\rijfaV13K156NT8L0)!!)"B!!!!(aJ"c9"JJ#-1(m!!$b!F()iS!!!1-%!4$MK!%!\riK'9Q5!!)VB""!"4mB!Fe3))!C+J"!%5`(J!JJ!%!3*!!(J!L5!!!8$Kr!!!mJ("\rb1+!!!$M"!%3ii3"!1)4PCNJ!#('!33!8I'!(08##!#LS!3"%X"i!))!"!%#3!"i\r!)NJ!!"5S!3"%X"i!))!"!%#3!"i!)V"q!"k!!3"S1#%!B(`)!kD$iIrmJm(rq)1\rKrr41J!!JI!J#TVlKrpb3!!%!#*3Krh!l3`!!1Z3!!$X&!!!lCJ!!1iF!!$ZS!!!\rlb3!!1qS!!+Xk!#!i!2rrX"S!)$J!rrq3!"S!)MKj!!!iP`!!L,S!"MM"!&`ii3"\rB5!!(aB""!"4mB!Fe3))!d(`BZ%""JJ!N1(N!!$LB!!#)ZJ!'1-%!9$MK!&")!!H\rCJ%%!&%J!!"5S!3"FX!%!9)!"!&L3!!%!8(aJ"c9!JJ#3!+J"!&5`!3"+J!%!8*!\r!!3"-Xm%!4,2K!%D)'J!'Q!%!5*0K!$L6J3!mNk%!3+KK!&b!J3"B1+!!!$M!!!'\r!iJ!X13%!1%J!"(eJ!!!!I'!(08##!$b!J3"-J!%!8(`%!!"!JJ!F1'$re6J!rrq\r`'J!J1!$rrj!!'J!L5!!!&+J"!%U`'J!JJ!%!6*!!'J!LJ!%!Q$JK!*!!I!J$TVV\rKrpa1J!!JI!J#TVm"rq#3!!%!#*3Kri!l``!!1`8!!$[Q!!!l*`!!1dJ!!$YT!!!\rlLJ!!Uk%!ZUKq!#!i!2rrX"i!)$J!rrq3!"i!)SLq!!Bi`3"811%!8%J!"S@!33!\r8I'!(08##!)5c!3"+Nq%!6,1"!%5cS3"'L"i!"TJ"!%L6)3!iNd%!2*0K!%#SB3"\r8J)%!8$LJ!!!i`!!"J1)!,$N"!$K)!!1&B!!!!(aJ"c9!JJ!iJ!%!6(`!q!"!JJ!\rF1'$re6J!rrq`(J!J1!$rrj!!(J!L5!!!&+J"!%U`(J!JJ!%!6*!!(J!LJ!%!L$J\rK!)"m#!1QZ`(ri%k!!#"m#!+QNq(rr*2"rrL6SIrdNi(rm*!!!3!)P#(q3$Z$!!!\rlT!!!I,mVH)"m!#5!(`!!I!-!3%##!FL!I!!JJ"m!"(`$!%"!JJ'i1'!!!%J!"Df\r!33!8U(`!&S#F!'5![!!51-!!!8J!"Df!33!8I(iEH$KJ!!&)!!@&J%%!&%J!"Df\r!33!8I'!(08##!95!I`!)2!1XV#J!8L0!JJ"81'!!!%J!"9Q!33!82'"69+LI!!`\riBe)M5!!&MB""!"4mI"Yi1'!!!8J!"6@!33!8+"`!!%'#!43iB3#NU*m!$+Lr!!j\r)!!9jJ%%!&%J!!&#!I`!)U*m!$%J!"8f!33!8I(`EH%J!"5Q!33!8+"`!!%'#!0#\r!I!!!1)%!T)#m!!#)"3!!I!8(G$LP!!&)!!9*J%%!&%J!!!K)!!#S1!%!T*!!!3"\r+U"m!%V!"!%k!(`!8N!!"!'Ji!!!!X!%!9$KK!$K)!!8YJ%%!&(aJ"c9!JJ!BU!%\r!6V!I!"+!!3"SN!!I!"4)!!"JI'!(0#`!riK"JJ!3I'!(0#`!rp9!JJ!iL"m!%#J\r!!!""JJ!X1'%!1%J!"2Q!33!8I'!(08##!"LS!3"1X"m!%S!"!'L3!"m!&%J!!"3\ri!2rrX"m!%MJ!rrq3!"m!&$J!!!'B(3!!Im!(0#`!rrp"JJ!3Im2cH%J!"-@!33!\r8J!%"b$JK!F"m#!1QJq(rr)2"rrL$SIrdJi(rm%k!!#"m#!+QNq(rr*2"rrL6SIr\rdN!!"!!L8)Iq`1k-!!$[N!!#J(`#d+!!!!%'#!"5JI`#fS"m!Y(`$!%"!J!#m1m!\r!!D"r!,Bi!`!"X"m!YV2I!##6[`!d1(m!"%J!""@!33!8X(m!X+JI!,!X!!!!3))\r!3$Kr!!3iR`#bJ,m!Z)'I!!")!!40J%%!&)JI!#*8!!Eh3B)!()JI!,)S!!!!3))\r!%)"r!$4rj2Yi5rrr@6[H!!'S(`#`,!!!!%##!"#)(`#b+!!!!%'#riLS(`#`,!$\rre8'#!"#S(`#`,!$XH%##!!`i!!!!X"m!X+"r!,Bi!rrrX"m!YS!"!&Ji)3"3I!J\r$TS2Krrb$`IriJk(rp%k!!#"m#!+Q[f(rl*!!!3!)P#(qi$YM!!!lK3!!1kB!!$[\r(!!!lk!!!+"i!!%'#!+3iH`!!1,`!!$M"!$`ii3!i5!!"q@!!!!"mB!Fe3))!L)J\r"!$JS!!!"3))!F$Km!!!iQ`!!1+%!1NJ!!C&J!!!!I'!(08##!'#6`3"!1!%!X*!\r!!3"@U!%!1V!"!&Si!!!!Q!%!X$J!!!#`!3$`1!!!!*J"!2+cS3$d1!!!!,!"!2D\r6i3$iJ'%!2$L"!%",rrijU'%!m%J!!"!iB2q)5!!!#$KJrmk!!3%S1#%")(`)!kD\rlBIrX6S!!)(`)!UD6iIrmN!!"!!L8)Il!I,mVH#JI!!""JJ"JX*m!&LJ$!!"!JJ!\rB1!!!!*!!(`!51!!!!,!I!"a)!!!S1)%!1)LM!!!iT3!"5!!#'B""!"3i!3!iN!!\rI!")i!2rrX"m!((rMqhK)!!*GJ%%!&$J!!!#3!"m!%NJ!!!JiB2r1J!%"5$JK!8"\rm#!1QJq(rr%k!!#"m#!+QNq(rr*!!!3!)P#(rS(cI-hJS"3!!3B)!%)J&!!!S!!!\r!3))!)$J!!!#B!3!i1!%!1*!!(`!51!$rrl!I!"a)!!!3N!#r!")i!!!!X"m!(,"\rr!"D3!*m!-(rMqhK)!!'0J%%!&$J!!!#3!"m!%S!"!'Ji)3"JI!J$TS2Krra1J!!\rJI!J#TT2Krrb3!!%!#*3Krd"m[bYi1+%!1%[rrYPmB!Fe3))!$+J"!%k`(`!!J!%\r!b$JK!-"m#!1QJq(rr%k!!#"m#!+QNq(rr*2"rrL3!!%!#*3Kre!laJ!!1qF!!$M\r"!$K,rrmKI'!(08##!%#)!3"@9!3'pMJ!!!"mK!"3-!6rrh`!)4#B(`!!L"m!!#J\r!!!""JJ!3J!%!D*!!(J!!5!!!$)!"!*b3!"i!!)!"!,Ji)3#`I!J$TS2Krrb$`Ir\ri6S!!))'#!##3!%%!&)!-!!#!6!!%I!N$TNk!"##"JJ!3N!""!"5!$!!!J%`!"(`\r*!kC1J!3JJB)!+*!!33!8J!`!!)"-!!4m#31Q6S!%))'#!"b3!%%!&)!-!!#!6!!\r%I!N$TNk!"##"JJ!)N!""!"5!$!!!J%`!"(`*!kC1J!3JJB)!$*!!33!8J!`!!)"\r-!!4m#31Q6S!%))'#!"L3!%%!&)!-!!#!6!!%I!N$TNk!"##"JJ!NN!""!"5!$!!\r!J%`!"(`*!kC1J!3JJB)!"*!!33!8J!`!!)"-!!4m#31Q6S!%))'#!"53!%%!&)!\r-!!#!6!!%I!N$TNk!"##"JJ!!N!""!"5!$!!!J%`!"(`*!kC1J!3JJ!`!!*!!33!\r8I!N$TS"-!!41J!3J6S!!)!![)6J+)J93"!!!!@)!N!5!#!#3"4!!%!#3#8J!!!"\r)!*!&"!!"!!3!N!B"%J#3#3)!N!83!"!!N!8#!*!&%!!3!*!%-!$m`2r`rrMrq2r\rirrMrq2rirrMrq2riIr`(rJ(q!I``!-c!Xc#-#)-)J-Mck*mSLLL++*rSqbJC,!F\rZ!Hi!I!!"5@8!!!!)!!$rN!B!!Fb3"2rr!!+CN!6rr`!$CT!%c-`!"0hG!*!&"Hk\r3"J!'4*!'!!FLN!B!$`#3"rm!N!Ef)[m!r`!!!2&Q)[mKr`!!m4&Q)L)5m!$a%4&\rQ)L,`!2%4%4&Q)[!!rrm46rpLm!$e9%4%9I2`!299m899mr!!p99"p9Acm!$e9%6\rrrr2`!2rr3Ip9mr!!!cpM,eAcp`!!!!p[9I2hF!!!!!rrmrG`!!!!!crrG`!!!!A\rUB!S!!%P-@%-6R!!!6[S!"%je51FB)&e2*'m!&MJU!#!eI2rr!#"`rb9!!#)-8J!\r%CJ!!MP922`3[+J!#(bS!"NK[!!j)E`!1F!#S)c!I0J"RB$9%!#![2,9X!!![2&0\r88L![2%P1593[2)aZC$B[2'9iG'i[2'9iG'i[#Nkk!%`f!%r[!"aR0&922`3[2'9\riG'j#*dK[!!j)E`!1F!#S)c!I0J"Q&M9[!!3!)#9A!#*J#M9[!!3!)#9A!#)e3`!\rHA%p-h`3B,Tp1G8MR'#"2lrrF*'m!0$JU!#!eI2rr!#"`rb9!!#*96cm%,bm!2"m\rU!!C)E`!35'm!%(!!U#-`(cB!CJ!!VL![!$b`V`!iCaj96cm%,bm!3"mU!!C)E`!\r+5'm!&R!!U#-`(cB!B!SqV`!',fm!!J!)5N0QGMpA!"i[E`!)!#!rE`"-!"JrE`"\r1!"SIDJ!'!"`[E`"!!!`[E`"%!"![E`")!"496cm[!!J[,`!'3UFr2!!"5(S!3NK\r[!"j1ZJ)J-"mf!'BQ)#m!),#[!!KQ%(E90Acrr`!JF2mP3!!LB!`eE`!H!#!PE`!\rJ!#)`!dr[!#4-h`3B6R9)jaJb6qrqP#a[!B`NE`'%PmYf!(Mr)#i!*,#5CJ!"*#!\rZ!##`UJ!%CJ!"'%)RUCY96cmZ!"B[,J"N,bi!%Kmm!!'S'M!I1!!I2!!"UCY96kQ\r[-"mf!'B!!0J-UP088L-!#'Bb3LHTQeP2,ca69&)M2bS!$+JI)&mQ5"mm!!'TQb!\r,C`!!Y%KA2bS!$$mU!!j1ZJ08B$*C6bmU!!Jr+J!-U"mJAbC)98qTVc!I0J!J#fF\r5)&-3%%L!8N")`#"63pHL,Q!%GXjJD%(A,dJ"%MpU!")"&LpU!"3"-%*[!4a"l`%\r!F!QLB$B!CJieE`%@!")PE`%`!"4J1!a$riKR"Ja$rp9Q)%SU!""R'N([!3"`"U*\rJ0J"Q$M9[!4B!%L9[!6!!&'!-0Acrr`!5F2mP3!!8)'m"L"#m!!%-42rrC`3r"+Q\rD6qm"E%cI6"JJAdr[!!a1d%MR'#!S,`!3*'m!&%TU!,4R#M!U!,D`DJ#dC(*f!9*\rU!,Be3`!J*83!0%(U!!4`#D*J08!!X%TU!,"Q,%KU!!4)DJ#b,bS!Z#"56T!!%#S\r!)J*!!""R%NSU!,*Q$#m+,bS!0%kkrja36e*$5QS!X'B'5LS!XQHX$'Vre3#`C`J\r-DZai!,"Q"%*U!,"6DJ#f60m%'%je,`02lrmm5Um!d'F!!)j96cm[!1![,`$H,bm\r!hNK[!"")E`!46VS"J$!I0J"QEJ`[!!%!!@CJ98m[,`$B2bm!j%K[!!T1ZJ%S-"m\rf!'C1,fm!d!!)3Hm!#%(S!(![5!!H2fm!!J!L3Lm!H%*[!,K#,`#k2fm!e!#m3Qm\r![Lp[!-`!`%K[!!J[,`!)6VVqi$B[!-"36f!'GSKJ!RE12d-!i%r[!-3Q(b"I6qm\r!&%l351F3-%r[r`!QE`%@*'m"%#!+CcSeE`%8!"BJ#fB+3US!%N*U!"aJ'L",3pG\r`!"!68N")`+)Z3GFP5!!50Acrr`!F)%UL"cB!3US!%Q!#GXir3`%D6qm"!%cI$!J\rJAdr[!!T1d%MR%$"2lrrJ*Qm!0#4[!$!J#fF%5K0Q%%)A3GFP5!!50Acrr`!FB!J\rP5`!53QS!($9[!$`!&L9[!$J!-#"+F!QLB$B!3US!%Mp$!$j2l`!J60m-##"I6qm\r!$Nl3,`02lrq'98m[,`#+2bm!M%K[!!K1Z[mU-"mf!'B))'m!JM#[!"Br3`#-6qm\r!HLBI)&p2l`!+6Y")ja!`6qrrP#C[!)!NE`"m98mr,`#1,bm!M#m[!)a)E`!-6VV\rr5$!I0J"Q'K![!"i#3!!39X"%!"5!C`BQV`!`B!3QV`"N2d-!MNr[!'a-h``))&p\r2l`!56Y"19J!!@8m[2&088L-r,J!+UD!LEJ!-3K%J(fFL)%!J8$!B-Li!#'F@XN"\rL%R!!8d&R"K!BdF"JpK!38N#J,NjH)&p3Mdl3!!!,+8T[H5&`C@CQF(G`B`!!!!'\rf,,-J!*!0!`!#!*!%rj!%!*!'#93!!!P8!!!*9!!!!F!!"!3!rj!%!*!(4!!!!%!\r!!!!*!!!,)!)""!$rN!3!N!i"0!!!!)!%"!3!N!J"!!!!-2q3"!#3"2q3"!#3"`%\r!!!!,!!!!!3!!!)J!!!#3!!!!!5`!!!!"!*!6#`#3#!)!!!S#!!!D!J!!+J)!!$F\r#!!"%!J!!6`)!!&`#!!"U!J!!F`)!!(i#!!#2!!%!N!8$!*!%5JT#!%B"!!"$BA*\rLEfj-D@)!8%*)4f9d9NPZCQp6H@jM!&"#4'Pb3h*PBA4P8hPZB`"(CA3a8Q9cEh9\rbBf8!4f9d5@jN8h4bD@jR!&0PG&*PFda[B@3!3fa[Ff95CA0'D@aP!%*XEf0V6@p\rfC84KG'%!8Q9c4A*bEh)!4QPZC%C[E'4PFJ"33NGPG%0KG%PZCQp6H@jM!%K2F'9\rZ8Q9c4QPXC3#3&A`)!UD6iIrmNm(rq*!!!3!)P#(rX(aq'hLVrJ!J1!$rrl!H!#!\ri!2rrN!!H!#+S(J!!,!!!"%##!-"rirYiJ*i!!SLq!!Bi`3!m11%!1%J!"qQ!33!\r8I'!(08'#!)LcrJ!J1(i!!$b!CAJmS'9i2-#-EMcJ58ip!&0815#eE$P!!!!iK(4\rZ1+9dEMM'C$BijdP813K5)%J!!(PJ!!!!I'!(08'#!&!iI`!!2)"PH$LJ!!!i`3!\rm11%!1$L%G'j)!!GjJ%%!&(aJ"c9!JJ!SU!%!2,!H!##!!3!iN!!H!#*)!!!8U!%\r!2,!H!##!!3!iN!!H!#+`IJ!HJ!%!@$JK!&"m#!1QJq(rr)2"rrK1J!!JI!J#TVl\rKrpb3!!%!#*3Krh!l3`!!1Z3!!$X&!!!lCJ!!1iF!!$ZS!!!lb3!!1qS!!+Xk!#!\ri!2rrX"S!)$J!rrq3!"S!)MKj!!!iP`!!L,S!"MM"!&`ii3"B5!!'dB""!"4mB!F\re3))!d(`BZ%""JJ!N1(N!!$LB!!#)ZJ!'1-%!9$MK!&")!!DPJ%%!&%J!!"5S!3"\rFX!%!9)!"!&L3!!%!8(aJ"c9!JJ#3!+J"!&5`!3"+J!%!8*!!!3"-Xm%!4,2K!%D\r)'J!'Q!%!5*0K!$L6J3!mNk%!3+KK!&b!J3"B1+!!!$M!!!'!iJ!X13%!1%J!!iP\rJ!!!!I'!(08##!$b!J3"-J!%!8(`%!!"!JJ!F1'$re6J!rrq`'J!J1!$rrj!!'J!\rL5!!!&+J"!%U`'J!JJ!%!6*!!'J!LJ!%!Q$JK!*!!I!J$TVVKrpa1J!!JI!J#TT2\rKrrb6`IriNk(rp*1"rr#3!!%!#*3KrN!lJ`!!1k3!!(br+hL!I!!NJ"m!!(`$!%"\r!JJ()J(`!))!I!!4m!`"!3))"Z$KJ!!")!!@YJ%%!&+Km!"D!R!"NJ,`!%MM!!!&\r)!!@YJ%%!&(aq'hJiB!!"5!!&KB""!"4)!!@YJ%%!&(aJ"c9!JJ&8J(m!#$`$V+`\rS!&)M3))!9$KJ!!")!!9CJ%%!&$aJ8e5SR`!-1'05)dJ!"Bf!33!8I(`EH$KJ!!&\r)!!8eJ%%!&#JF!!""JJ%81'%!T+LI!!bS[`!15!!&HB""!"4)!!"3J(m!#+LI!!a\r)!!90J%%!&(am'hK)!!8TJ%%!&#JF!!""JJ$3J(`!!$L"!+5![!!!L!8!!(`&"h3\riT3!"5!!&5B""!"4)!!!)5!!!U$J"!+53!!%!5UJI!"+`!3"1J"m!&*!!!3"S1!!\r!!,!"!&3iB3!i5!!&,B""!"4mB!Fe3))!'+J"!%k`(`!5J!%!D*!!(`!85!!!B(a\rJ"c3X!2q)3B)!%(aJ"c3X!2r93))!1)JI!"!S!!!!3B)!,$KK!$K)!!6jJ%%!&(a\rJ"c9!JJ!BU!%!6V!I!"+!!3"SN!!I!"4)!!!81!$rrl!I!")i!2rrN!!I!"3i!!!\r"Q"d!!(r!"c3X!2rr3B)!%(r$mhK)!!6&J%%!&)!"!FJi)3(!I!J$TS2Krrb$`Ir\riJk(rp)1"rr"1J!!JI!J#TT2Krrb6`IriNk(rp*!!!3!)P#(rX$ZM!!!lj!!!S"m\r!Y#J!!!""JJ!8S(m!YU!I!,4m!`"!3)!![$[!!!'JI`#f1!-!!E!I!,Dch`!JNlm\r!0$Kr!!4)!!39J%%!&,"r!,#S(`#`,!!!!%##!%!iI`!%1*m!XS#r!,L"R`!!5!!\r%6B""!"5)(`!L9!!'pd'#!"b)(`#b+!!!!%##!"#!I`!dIq6lH%[rreNlhJ!"U"m\r!X#`!!!"!JJ!3L"m!XLJ!!!""J[q)U"m!X#`!rp9"JJ!3U"m!X#`!l(K!JJ!-1!!\r!!,!I!,#JI`#f1!2rrl!I!,D!!3"B1#%!8(`)!kD$iIrmJm(rq)1Krr41J!!JI!J\r#TVpKrqb3!!%!#*3KrZ!lB`!!1i8!!$ZQ!!!la`!!1qJ!!#JH!!""JJ#N1(X!!$L\rm!!!i`3!m11%!1%J!!IPJ!!!!I'!(08##!)L)!3!i+!!!!8##!(!iI!!!1*X!!$L\rK!$T)!!'4B!!!!(aJ"c9!JJ"JNm%!3$J"!,#3!!%!9UJ"!$U`!3"D1!!!!*J"!,!\ri!!!!X!%!m$J!!!#B!3$bXk%!p$J!!!#`!3$fNq%!q)"K!$`iJ3"!5rrq1DKK!2"\r)!!!31'$rL%J!!!JiB2r1J!%"+$JK!5"m#!1QZf(rl%k!!#"m#!+QNq(rr*!!!3!\r)P#(q`(br+hJS(`!!3B)!B,#I!"BS!`!!3))!'$J!!!#3!"m!%MJ!!!#`(`!F5!!\r!+$L"!$L)S`!!1+8!!8J!!KQ!33!81!%!1*!!(`!51!$rrl!I!"arirYi5!!#AB"\r"!"3i!!!!N!!I!"*)!!!)1'$rcS!"!8Ji)3&!I!J$TS2Krra1J!!JI!J#TT2Krrb\r3!!%!#*3Krk"mhc0i+!8!!%'#!"#)"3!!+!!!!%##!#!i!!!!Q!%!1$J"!$L3!"m\r!%MJ!rrq`(`!F5!!!%*!![`!51!!!!,!I!"b`I`!@N!#I!$"rirYi5!!"MB""!"3\ri!!!!N!!I!"+!!3"S1#%!B(`)!kD$iIrm6S!!)(`)!UD6iIrmN!!"!!L8)Ip!I,m\rVH$LK!$K,rrlCI'!(08##!!bS!3"1X"m!!)!"!-Ji)3$!I!J$TS2Krra1J!!JI!J\r#TT2Krrb6`IriN!!"!!L8)Ip31mB!!$[R!!!i`3!i5rrr)AaJ"c9!JJ"!L!%!9P3\r%"[Bi!!!!I)3!8$!%rrpm!#%3Q"m!!)JI!!!S!!!!3B)!%)!"!'L3!"i!!%J!!!b\r!!3#FN!!H!!#!!3#i1#%!X(`)!kD$iIrmJm(rq%k!!##"JJ!JN!""!"5!$!!!J%`\r!"(`*!kC1J!3JJB)!%*!!33!8J!`!!)"-!!4m#31Q6S!%))'#!#L3!%%!&)!-!!#\r!6!!%I!N$TNk!"##"JJ!FN!""!"5!$!!!J%`!"(`*!kC1J!3JJB)!#*!!33!8J!`\r!!)"-!!4m#31Q6S!%))'#!!b3!%%!&)!-!!#!6!!%I!N$TNk!"##"JJ!BN!""!"5\r!$!!!J%`!"(`*!kC1J!3JJB)!**!!33!8J!`!!)"-!!4m#31Q6S!%))'#!!53!%%\r!&)!-!!#!6!!%I!N$TNk!"##"JJ!8N!""!"5!$!!!J%`!"(`*!kC1J!3JJB)!!*!\r!33!8J!`!!)"-!!4m#31Q6S!%))!-!!#3!%%!&(`*!kD!6!!%6S!%)%k!!#!!N!d\r[)6J+)J*8"!!!!C)!N!5!#!#3"4!!%!#3#8J!!!")!*!&"!!"!!3!N!B"%J#3#3)\r!N!83!"!!N!8#!*!&%!!3!*!%F!$m!2r!rr$rq2rirrMrq2rirrMrq(riIrarrRr\rq!(a`!2`![m#2F)1BJ2L!1)!ircM011@iB,KPZ%'iIrJ!H!!!$c`!!!!1!!$rN!B\r!!Fb3"2rr!!+CN!6rr`!$CT!%c-`!"'D3"*QC!!8c-fCQc-`!"M13"*QC!!FcN!4\rQCJ!)!*!%hGd!#Gf3"J!+Zj!'!!ZUN!B!$)L3"J!0)T!'!!m!N!B%G`#3"NGdG`#\r3"6&RG(Gh!!!!34&RFb0h!!""%4&RFLG`!%%4%4&RG0!!34'3"(I3!'%4N!3hd!"\r[rrrr%6I3!'qU9Em40p!!IrQ8[r%hd!!(qCQlm6I3!!rkZ,ma0p`!$lZl[c%hh-!\r0rrrpeMIF`!#3"!Gph!#3"14J#J!!58aB3a1,!!"1qJ!%6R919[rk51FB)#4Z!!J\rpI2rrrrj`rbe!rrSQ+J!#$&)!"'B!!*j96cmU!#![!amU!!C)E[rq5'lrqR!!U#-\r`(cJ!Cfi-Jm4fEf0Q)LBmCRC[Be922bS!)#m$(c`!!8KZrrj)E[rkF!#S)c!I1!"\r+4'G!$)0QE'jdCJJQ2(4PEA"J"LBmCAKdEP922bS!)#mmCAKdEJb$G'9YF&I!4!"\r)J"m!5'lrrNKZrrT`!+JM-"mi!$9Zrri!)#9ZrrS!)M9%!"j-h`3B6PiZRdjeK'e\rKD@i!N!8#38T[H5&`C@CQF(G`B`!!!!'fAT`-!*!0!`!#!*!%rj!%!*!'!5J!!!%\rS!!!"+!!!!4!!"!3!rj!%!*!(%!!!!!`!!!!"!!!#3!)""!$rN!3!N!q%!!!!J!3\r%"!#3#!%!!!!%rj!%!*!%rj!%!*!(!3!!!!%!!!!"!!!!B!!!!'3!!!"m!!!!!3#\r3%`%!N!J#!!!+!!%!N!8#!*!%5J"'!%0KFQ*[ENaTBJ"'D@jN4QpXC'9b!*!BI!J\r#TT2Krrb6`IriN!!"!!L8)Iq`I(iEH$J!rrq`!3!m1!$rrj!!!3!iJri!!UJH!!!\rX!!!%3))!a+Kq!#"rj2YiL,i!"MM"!$`ii3!i5!!!aB""!"4mB!Fe3B)!M$`I1iS\rS!'pM3))!+$rJCRBlrfpMU(i!)$LI!!!iS!!"1-%!2$MK!$K)!!#0J%%!&(aJ"c9\r"JJ"82"qCP#J!ER4!JJ!32q"dC6[rEA")!!!-2q"PH$[rG'kSIJ!J2)"PH$bJG'8\riT@e`I"mS8(`!!$48"Giq1-%!2$MK!$JiK(4Z5!!!0B""!"5S!3!mX"i!))!"!$L\r3!"i!)V"q!"k!!3"B1#%!8(`)!kD$iIrmJm(rq%k!!##"JJ!!N!""!"5!$!!!J%`\r!"(`*!kC1J!3J!*!)$!!!!9)!N!5!#!#3"4!!%!#3#8J!!!")!*!&"!!"!!3!N!B\r"%J#3#3)!N!83!"!!N!8#!*!&%!!3!*!%'!"qB(riIrarr(rmIrarr(rmIrarr$r\rm$ri$r`$r!$iB!'CJ@CK'"%'%3'4!&%!F3"a!('!F1"`1(J1I!2m!2J!!&EJ!!!!\r'!!$rN!B!!Fb3"2rr!!+CN!6rr`!$CT!%c-`!"%53"J!&)T!'!!m!N!F2m!#3"3p\r#,r!2m!!!$a4#,r)Im!!2%44#)L%[!!m4%44#)Lm!$a%4%44#,`!2%C!%(bm!$a'\r3"#mr!!m4N!3[2`!2%C!%,cm!$c)4%4%[2`!!rc)4%5mr!!!!rc)4,cp3!!!!rc)\r[2e8!N!6r2cp9!*!&rr93!!!!J'!+!!"*6&K$%jB!!%lk!!41G8j@rrS[#Lm$*'i\r!#$emrrrrrR$r,8$rqJa5!!4Q2P922bS!)#mU!!)I+J!'5'lrrNKZrrT`!+JM-"m\rf!'F1F!)Y32rk2@S!#2rqGJ!eE[rq!#!PE[rk!#)e3`!H*KmNAdjH,Tp1GB4YB@P\rZ!*!&!F&+EhNKF'9QCR"hF'-!!!!"YLbhjJ#3$3-!!J#3"2q3"!#3"kJ!!!#S!!!\r!U!!!!4!!"!3!rj!%!*!(%!!!!!`!!!!"!!!"`!)""!$rN!3!N!q%!!!!J!3%"!#\r3#!%!!!!%rj!%!*!%rj!%!*!(!3!!!!%!!!!"!!!!B!!!!'3!!!"m!!!!!3#3%`%\r!N!J#!!!+!!%!N!8#!*!%5J"'!%0KFQ*[ENaTBJ"'D@jN4QpXC'9b!*!BI!J#TT2\rKrrb3!!%!#*3Krl"mIaYi1!$rrl!"!$`i!2rrN!!"!$LS(`!!,!!!"%##!&#SI`!\rJJ*m!!SLr!!Bi`3!m11%!1%J!!%f!33!8I'!(08'#!"Ji!!!#N!!"!$LS(`!)X!%\r!2$KJ!!#S!3!mX"m!))!"!$L3!"m!)V"r!"k!!3"B1#%!8(`)!kD$iIrm6S!!))'\r#!!#3!%%!&)!-!!#!6!!%I!N$TNk!"#!!N!J-!!!"8J#3")!)!*!&%!!3!*!*5!!\r!!%J!N!8%!!%!"!#3"J%5!*!*!J#3"4!!%!#3"3)!N!83!"!!N!3B!(jJIrKrr(r\rmIrarr(rmIrarr(rm2r`2rJ2r!2m!2KJ!CQ"CQ%B%3B4!C%!83"a!(%!FB"`i(!i\rH!jm!r`!q!!!9Z!!!!!B!!2q3"J!"c*!%rrm!!TQ3"2rr!!0QN!6-c!!%4*!'!!8\rLN!B!$`#3"`r`!*!&$d)[m!r`!!!2&%)[mKr`!!m4&%)L)5m!$a%4&%)L,`!2%4%\r4&%)[!!m4N!3I,`!2%C!%,cm!$a'3"#mr!!m4N!3[2`!2-K%4%5mr!!$r-K%4,cm\r!!!$r-K%[2e!!!!$r-Lmr93#3"2mr2e8!N!Arp9!!!!$NB!S!!%P-@%-6L`!!6[S\r!"%je6PErqNMR'#!NEJ!)2AcrrrrqF2mY32rk*LS!!Ja5!!4Q!!#H98mr+J!J,`-\rI+J!'5'lrrNKZrrT`!+JM-"mi!'GZ$)2%GQpMCL)Q2'CfEf096cmU!#![!amm!!&\r)E[rq5'lrqR!!U#-`(cJ!5N4R3!b$CQaZG'B)*MadC@e`B!BQ2'9iG'j96cmU!#!\r[2'9iG'i-Jh4PEA"A`%3!5)!I!%KZrrj)E[rkF!#S)c!I1!!eE[rq!#!PE[rk!#)\re4!!H60m%'%jH,Tp1GB4YB@PZ!*!&!N&+EhNKF'9QCR"hF'-!!!!"YPkF$!#3$3-\r!!J#3"2q3"!#3"J%S!!!"+!!!!5J!!!%3!!3%!2q3"!#3"a!!!!!-!!!!!3!!!N!\r#!33!rj!%!*!2K!!!!)!%"!3!N!J"!!!!"2q3"!#3"2q3"!#3"`%!!!!"!!!!!3!\r!!'!!!!"N!!!!I!!!!!%!N"-"!*!)!J!!#J!"!*!&!J#3"%S!4J"$BA*LEfj-D@)\r!4QPZC%C[E'4PFJ#3'(`)!UD6iIrmNm(rq*!!!3!)P#(rX(aq'hJi!2rrX!%!2$J\r!rrq3!!%!1)2q!!+S(J!!,!!!"%##!-5SIJ!JIq6lH)Lq!!Bi`3!m11%!1%J!!-@\r!33!8I'!(08'#!)`m(cZ++!"[Bd##!#Jri'Cf1rp[BkKq!#!iR`!!1+!!!6M"!$`\rii3!i5!!!MB""!"4mB!Fe3B)!9$`IQC3S!'jd3))!%$rJG'8lrfe`5!!!$$rJCAJ\rlrh4ZU(i!)$b!CAJmS(4P1+9YF(`I+&"m!!!d9!AH2MM"!$`ii3!i1)4dENJ!!$@\r!33!8U!%!2,!H!##!!3!iN!!H!#+`IJ!HJ!%!@$JK!&"m#!1QJq(rr)2"rrK1J!!\rJJB)!!*!!33!8J!`!!)"-!!4m#31Q6S!%)!#3#!`!!!&5!*!%J!J!N!83!"!!N!P\r)!!!!5!#3"33!!3!%!*!'!4)!N!N#!*!&%!!3!*!&!J#3"4!!%!#3""J!IQ"rq(r\rmIrarr(rmIrarr(rmIr`rr!rq!rm!r`!q'!"QB&QB4J4"K%"N3"4!(%!F3"aJ($J\rF$Ki$R`$r!$i!!"@i!!!!"J!!rj!'!!(-N!6rr`!#QC!%rrm!!fD3"-c-!!4%N!B\r!"5+3"J!2!*!($r!!N!823Lr`$r!!!!m83Lrb(r!!$a%83L)K,`!2%4%83L)[!!m\r4%4%83Lm!$a'3""m[!!m4N!3[2`!2%C!%,cm!$a'3"#mr!!mb%4%4,cm!!2mb%4%\r[2`!!!2mb%5mr8!!!!2mb,cp9!*!%rcmr93#3"Ire8!!!!)"J#J!!58aB3a1@!!"\r1qJ!%6R919[rk,`S[!b4Z!!JpI2rrrrj`rbe!rrS-8J!%CMj96cmU!#![+J!#(bS\r!"NKZrrj)E[rkF!#S)c!I0J"R$R!#,8$rqMeU!!MrrRB!0@lrrJ!J*@lrqJ!L08-\r!(LBI*&p1ALkI6R@%E@&TEJ#3"3("5Qpj)A"PCQC`Gh"M!!!!!EBXYqB!N!d$!!)\r!N!6rN!3!N!HS!!!!U!!!!+J!!!%3!!3%!2q3"!#3"a!!!!!-!!!!!3!!!F!#!33\r!rj!%!*!2K!!!!)!%"!3!N!J"!!!!"2q3"!#3"2q3"!#3"`%!!!!"!!!!!3!!!'!\r!!!"N!!!!I!!!!!%!N"-"!*!)!J!!#J!"!*!&!J#3"%S!4J"$BA*LEfj-D@)!4QP\rZC%C[E'4PFJ#3'(`)!UD6iIrmN!!"!!L8)Iq`I(mEH$J!rrq`!3!m1!$rrj!!!3!\riU"m!!#`!!!4!JJ"3U(m!))#I!!+)[`!'1-%!2$MK!$K)!!"0J%%!&(aJ"c9"JJ!\rB1!!!!T!!!3!iU"m!#,!"!$`iB!!!U!%!2,!I!##!!3!iN!!I!#+`I`!HJ!%!@$J\rK!&"m#!1QJq(rr%k!!##"JJ!!N!""!"5!$!!!J%`!"(`*!kC1J!3J!*!)$!!!!@S\r!N!5!#!#3"4!!%!#3#8J!!!")!*!&"!!"!!3!N!B"%J#3#3)!N!83!"!!N!8#!*!\r&%!!3!*!%1!$qi2rirrMrq2rirrMrq2rirrMrr[rr2rmrrcrq2r`i!-lJXcL-#)-\rBJ0L!1,miSVLMZ1#qi,mJ[b#r)2irr!!!)!N!!!!*!!$rN!B!!Fb3"2rr!!+CN!6\rrr`!$CT!%c-`!"$13"*QC!!8!N!4QCJ!'lT!'!!HlN!B!##+3"J!2!*!(4&!!N!9\r%)N434&!!!&%d)N4K4&!!83)d)L*L8!"4%3)d)L03!&%4%3)d)e!!84%4%4*$8!"\r4rrrr%N03!&(fC[Eb3e!!8ICQrr*$8!"6pQCRmN0BJ&AfCQIb3eL)!2CQCr*$@)J\r!pQCRmN0BL!$fCQIc3eL!!2rrrr99L!#3"*!!B!S!!%P-@%-6R`!!6[S!"%je6PE\rrqLm+,`-NEJ!)2AcrrrrqF2mY32rk$&)!"'C198mr+J!J,bS!!KmU!!C)E[rq5'l\rrqR!!U#-`(cB!Caj96cmU!#![2'0dFQa#*dKZrrj)E[rkF!#S)c!I0J!eE[rq!#!\rPE[rk!#)e3`!H*KmNAdjH,Tp1GB4YB@PZ!*!&!G&+EhNKF'9QCR"hF'-!!!!"YLb\ri93#3$3-!!J#3"2q3"!#3"l3!!!#d!!!!Y!!!!4!!"!3!rj!%!*!(%!!!!!`!!!!\r"!!!"d!)""!$rN!3!N!q%!!!!J!3%"!#3#!%!!!!%rj!%!*!%rj!%!*!(!3!!!!%\r!!!!"!!!!B!!!!'3!!!"m!!!!!3#3%`%!N!J#!!!+!!%!N!8#!*!%5J"'!%0KFQ*\r[ENaTBJ"'D@jN4QpXC'9b!*!BI!J#TT2Krrb3!!%!#*3Krl"mIaYi1!$rrl!"!$`\ri!2rrN!!"!$LS(`!!,!!!"%##!&bSI`!JJ*m!!SLr!!Bi`3!m11%!1%J!!&Q!33!\r8I'!(08'#!#5SI`!J2)"MG$LJ!!!i`3!m11%!1$L%FQa)!!!aJ%%!&+J"!$b`(`!\rJJ!%!1*!!(`!LX(m!(S!"!&Ji)3"3I!J$TS2Krra1J!!JJB)!!*!!33!8J!`!!)"\r-!!4m#31Q6S!%)!#3$!`!!!&5!*!%J!J!N!83!"!!N!P)!!!!5!#3"33!!3!%!*!\r'!4)!N!N#!*!&%!!3!*!&!J#3"4!!%!#3""J!IQ"rq(rmIrarr(rmIrarr(rmIr`\rrr!rq!rm!r`!q'!"QB&QB4J4"K%"N3"4!(%!F3"aJ($JF$Ki$R`$r!$i!!"@i!!!\r!"J!!rj!'!!(-N!6rr`!#QC!%rrm!!fD3"-c-!!4%N!B!"5+3"J!2!*!($r!!N!8\r23Lr`$r!!!!m83Lrb(r!!$a%83L)K,`!2%4%83L)[!!m4%4%83Lm!$a'3""m[!!m\r4N!3[2`!2%C!%,cm!$a'3"#mr!!mb%4%4,cm!!2mb%4%[2`!!!2mb%5mr8!!!!2m\rb,cp9!*!%rcmr93#3"Ire8!!!!*!!B!S!!%P-@%-6R3!!6[S!"%je6PErqLm+,`-\rNEJ!)2AcrrrrqF2mY32rk$&)!"'C198mr+J!J,bS!!KmU!!C)E[rq5'lrqR!!U#-\r`(cB!Caj96cmU!#![2'4PFfY#*dKZrrj)E[rkF!#S)c!I0J!eE[rq!#!PE[rk!#)\re3`!H*KmNAdjH,Tp1GB4YB@PZ!*!&!G&+EhNKF'9QCR"hF'-!!!!"YLbiE`#3$3-\r!!J#3"2q3"!#3"l3!!!#d!!!!Y!!!!4!!"!3!rj!%!*!(%!!!!!`!!!!"!!!"d!)\r""!$rN!3!N!q%!!!!J!3%"!#3#!%!!!!%rj!%!*!%rj!%!*!(!3!!!!%!!!!"!!!\r!B!!!!'3!!!"m!!!!!3#3%`%!N!J#!!!+!!%!N!8#!*!%5J"'!%0KFQ*[ENaTBJ"\r'D@jN4QpXC'9b!*!BI!J#TT2Krrb3!!%!#*3Krl"mIaYi1!$rrl!"!$`i!2rrN!!\r"!$LS(`!!,!!!"%##!&bSI`!JJ*m!!SLr!!Bi`3!m11%!1%J!!&Q!33!8I'!(08'\r#!#5SI`!J2)"NC6LJ!!!i`3!m11%!1$L%FfY)!!!aJ%%!&+J"!$b`(`!JJ!%!1*!\r!(`!LX(m!(S!"!&Ji)3"3I!J$TS2Krra1J!!JJB)!!*!!33!8J!`!!)"-!!4m#31\rQ6S!%)!#3$!`!!!&5!*!%J!J!N!83!"!!N!P)!!!!5!#3"33!!3!%!*!'!4)!N!N\r#!*!&%!!3!*!&!J#3"4!!%!#3""J!IQ"rq(rmIrarr(rmIrarr(rmIr`rr!rq!rm\r!r`!q'!"QB&QB4J4"K%"N3"4!(%!F3"aJ($JF$Ki$R`$r!$i!!"@i!!!!"J!!rj!\r'!!(-N!6rr`!#QC!%rrm!!fD3"-c-!!4%N!B!"5+3"J!2!*!($r!!N!823Lr`$r!\r!!!m83Lrb(r!!$a%83L)K,`!2%4%83L)[!!m4%4%83Lm!$a'3""m[!!m4N!3[2`!\r2%C!%,cm!$a'3"#mr!!mb%4%4,cm!!2mb%4%[2`!!!2mb%5mr8!!!!2mb,cp9!*!\r%rcmr93#3"Ire8!!!!*!!B!S!!%P-@%-6S!!!6[S!"%je6PErqLm+,`-NEJ!)2Ac\rrrrrqF2mY32rk$&)!"'C198mr+J!J,bS!!KmU!!C)E[rq5'lrqR!!U#-`(cB!Caj\r96cmU!#![2("bC@C#*dKZrrj)E[rkF!#S)c!I0J!eE[rq!#!PE[rk!#)e3`!H*Km\rNAdjH,Tp1GB4YB@PZ!*!&!G&+EhNKF'9QCR"hF'-!!!!"YLbi1J#3$3-!!J#3"2q\r3"!#3"l3!!!#d!!!!Y!!!!4!!"!3!rj!%!*!(%!!!!!`!!!!"!!!"d!)""!$rN!3\r!N!q%!!!!J!3%"!#3#!%!!!!%rj!%!*!%rj!%!*!(!3!!!!%!!!!"!!!!B!!!!'3\r!!!"m!!!!!3#3%`%!N!J#!!!+!!%!N!8#!*!%5J"'!%0KFQ*[ENaTBJ"'D@jN4Qp\rXC'9b!*!BI!J#TT2Krrb3!!%!#*3Krl"mIaYi1!$rrl!"!$`i!2rrN!!"!$LS(`!\r!,!!!"%##!&bSI`!JJ*m!!SLr!!Bi`3!m11%!1%J!!&Q!33!8I'!(08'#!#5SI`!\rJ2)"`FMLJ!!!i`3!m11%!1$L%C@C)!!!aJ%%!&+J"!$b`(`!JJ!%!1*!!(`!LX(m\r!(S!"!&Ji)3"3I!J$TS2Krra1J!!JJB)!!*!!33!8J!`!!)"-!!4m#31Q6S!%)!#\r3$!`!!!&5!*!%J!J!N!83!"!!N!P)!!!!5!#3"33!!3!%!*!'!4)!N!N#!*!&%!!\r3!*!&!J#3"4!!%!#3""J!IQ"rq(rmIrarr(rmIrarr(rmIr`rr!rq!rm!r`!q'!"\rQB&QB4J4"K%"N3"4!(%!F3"aJ($JF$Ki$R`$r!$i!!"@i!!!!"J!!rj!'!!(-N!6\rrr`!#QC!%rrm!!fD3"-c-!!4%N!B!"5+3"J!2!*!($r!!N!823Lr`$r!!!!m83Lr\rb(r!!$a%83L)K,`!2%4%83L)[!!m4%4%83Lm!$a'3""m[!!m4N!3[2`!2%C!%,cm\r!$a'3"#mr!!mb%4%4,cm!!2mb%4%[2`!!!2mb%5mr8!!!!2mb,cp9!*!%rcmr93#\r3"Ire8!!!!*!!B!S!!%P-@%-6RJ!!6[S!"%je6PErqLm+,`-NEJ!)2AcrrrrqF2m\rY32rk$&)!"'C198mr+J!J,bS!!KmU!!C)E[rq5'lrqR!!U#-`(cB!Caj96cmU!#!\r[2(4bFfK#*dKZrrj)E[rkF!#S)c!I0J!eE[rq!#!PE[rk!#)e3`!H*KmNAdjH,Tp\r1GB4YB@PZ!*!&!G&+EhNKF'9QCR"hF'-!!!!"YLbiB`#3$3-!!J#3"2q3"!#3"l3\r!!!#d!!!!Y!!!!4!!"!3!rj!%!*!(%!!!!!`!!!!"!!!"d!)""!$rN!3!N!q%!!!\r!J!3%"!#3#!%!!!!%rj!%!*!%rj!%!*!(!3!!!!%!!!!"!!!!B!!!!'3!!!"m!!!\r!!3#3%`%!N!J#!!!+!!%!N!8#!*!%5J"'!%0KFQ*[ENaTBJ"'D@jN4QpXC'9b!*!\rBI!J#TT2Krrb3!!%!#*3Krl"mIaYi1!$rrl!"!$`i!2rrN!!"!$LS(`!!,!!!"%#\r#!&bSI`!JJ*m!!SLr!!Bi`3!m11%!1%J!!&Q!33!8I'!(08'#!#5SI`!J2)"dFML\rJ!!!i`3!m11%!1$L%FfK)!!!aJ%%!&+J"!$b`(`!JJ!%!1*!!(`!LX(m!(S!"!&J\ri)3"3I!J$TS2Krra1J!!JJB)!!*!!33!8J!`!!)"-!!4m#31Q6S!%)!#3$!`!!!&\r5!*!%J!J!N!83!"!!N!P)!!!!5!#3"33!!3!%!*!'!4)!N!N#!*!&%!!3!*!&!J#\r3"4!!%!#3""J!IQ"rq(rmIrarr(rmIrarr(rmIr`rr!rq!rm!r`!q'!"QB&QB4J4\r"K%"N3"4!(%!F3"aJ($JF$Ki$R`$r!$i!!"@i!!!!"J!!rj!'!!(-N!6rr`!#QC!\r%rrm!!fD3"-c-!!4%N!B!"5+3"J!2!*!($r!!N!823Lr`$r!!!!m83Lrb(r!!$a%\r83L)K,`!2%4%83L)[!!m4%4%83Lm!$a'3""m[!!m4N!3[2`!2%C!%,cm!$a'3"#m\rr!!mb%4%4,cm!!2mb%4%[2`!!!2mb%5mr8!!!!2mb,cp9!*!%rcmr93#3"Ire8!!\r!!)"J#J!!58aB3a1@!!"1qJ!%6R919[rk,`S[!b4Z!!JpI2rrrrj`rbe!rrS-8J!\r%CMj96cmU!#![+J!#(bS!"NKZrrj)E[rkF!#S)c!I0J"R$R!#,8$rqMeU!!MrrRB\r!0@lrrJ!J*@lrqJ!L08-!(LBI*&p1ALkI6R@%E@&TEJ#3"3("5Qpj)A"PCQC`Gh"\rM!!!!!EBXYqB!N!d$!!)!N!6rN!3!N!HS!!!!U!!!!+J!!!%3!!3%!2q3"!#3"a!\r!!!!-!!!!!3!!!F!#!33!rj!%!*!2K!!!!)!%"!3!N!J"!!!!"2q3"!#3"2q3"!#\r3"`%!!!!"!!!!!3!!!'!!!!"N!!!!I!!!!!%!N"-"!*!)!J!!#J!"!*!&!J#3"%S\r!4J"$BA*LEfj-D@)!4QPZC%C[E'4PFJ#3'(`)!UD6iIrmN!!"!!L8)Iq`I(mEH$J\r!rrq`!3!m1!$rrj!!!3!iU"m!!#`!!!4!JJ"3U(m!))#I!!+)[`!'1-%!2$MK!$K\r)!!"0J%%!&(aJ"c9"JJ!B1!!!!T!!!3!iU"m!#,!"!$`iB!!!U!%!2,!I!##!!3!\riN!!I!#+`I`!HJ!%!@$JK!&"m#!1QJq(rr%k!!##"JJ!!N!""!"5!$!!!J%`!"(`\r*!kC1J!3J!*!)$!!!!9)!N!5!#!#3"4!!%!#3#8J!!!")!*!&"!!"!!3!N!B"%J#\r3#3)!N!83!"!!N!8#!*!&%!!3!*!%'!"qB(riIrarr(rmIrarr(rmIrarr$rm$ri\r$r`$r!$iB!'CJ@CK'"%'%3'4!&%!F3"a!('!F1"`1(J1I!2m!2J!!&EJ!!!!'!!$\rrN!B!!Fb3"2rr!!+CN!6rr`!$CT!%c-`!"%53"J!&)T!'!!m!N!F2m!#3"3p#,r!\r2m!!!$a4#,r)Im!!2%44#)L%[!!m4%44#)Lm!$a%4%44#,`!2%C!%(bm!$a'3"#m\rr!!m4N!3[2`!2%C!%,cm!$c)4%4%[2`!!rc)4%5mr!!!!rc)4,cp3!!!!rc)[2e8\r!N!6r2cp9!*!&rr93!!!!J'!+!!"*6&K$%jB!!%lk!!41G8j@rrS[#Lm$*'i!#$e\rmrrrrrR$r,8$rqJa5!!4Q2P922bS!)#mU!!)I+J!'5'lrrNKZrrT`!+JM-"mf!'F\r1F!)Y32rk2@S!#2rqGJ!eE[rq!#!PE[rk!#)e3`!H*KmNAdjH,Tp1GB4YB@PZ!*!\r&!F&+EhNKF'9QCR"hF'-!!!!"YLbhjJ#3$3-!!J#3"2q3"!#3"kJ!!!#S!!!!U!!\r!!4!!"!3!rj!%!*!(%!!!!!`!!!!"!!!"`!)""!$rN!3!N!q%!!!!J!3%"!#3#!%\r!!!!%rj!%!*!%rj!%!*!(!3!!!!%!!!!"!!!!B!!!!'3!!!"m!!!!!3#3%`%!N!J\r#!!!+!!%!N!8#!*!%5J"'!%0KFQ*[ENaTBJ"'D@jN4QpXC'9b!*!BI!J#TT2Krrb\r3!!%!#*3Krl"mIaYi1!$rrl!"!$`i!2rrN!!"!$LS(`!!,!!!"%##!&#SI`!JJ*m\r!!SLr!!Bi`3!m11%!1%J!!%f!33!8I'!(08'#!"Ji!!!#N!!"!$LS(`!)X!%!2$K\rJ!!#S!3!mX"m!))!"!$L3!"m!)V"r!"k!!3"B1#%!8(`)!kD$iIrm6S!!))'#!!#\r3!%%!&)!-!!#!6!!%I!N$TNk!"#!!N!J-!!!#ZJ#3")!3!*!&%!!3!*!*5!!!!%J\r!N!8)!!%!#!#3"J'5!*!*!J#3"4!!%!#3"3)!N!83!"!!N!3i!2lJrrMrq2rirrM\rrq2rirrMrq2rqrj!'IrprrMJ!lZ#rZ+5)T*Mrk*!!1*!!1*!!10!if$lBIrrrjIp\rNrhrq!!!MlJ!!!#-!!2q3"J!'rrr-c2rr!!Irrmb3"!!Nc-crN!3!+Xb3"2rr!#[\r-N!B!--c-QCRrr`!ac-bCQFc-!$,-c*Q3"!"1QCR-c2rr!&5CN!6rr`"9QC!%c-`\r!@jQCCQE-c!"FQCPQCTQC!(jQN!6rr`"rCT!%c-`!J'D3"*QC!)CQCM-cQCN!KfC\rQ-c0QCJ#N-c0QCTQC!+8c-fD3"!#T-j!%c-`!UM13"*QC!+XcN!4QCJ#X-j!'!0!\r!!$13"!$J%4%!N!Ad!*!%%4%!pHk3"J$fhC!'!2HlN!B!qRH3"J$l9C!'!2a%N!B\r!r5+3"J$r!*!)J+Vr!*!,J+Yq9(q!r`#!Urm!N!9r+[Z(KhqVUhp8Ik[r!!!!T#U\r(!!#V!2@V9&48U`!!!)BUKbXaUrC8r&48IkS!!!#Vqeb(Ui#VUi#UJ&@V!!!!KbX\rVUc%Vp[Ba9DZTU`!!!)If"UXUpJ!!*2HVJ+X!!!#(9IDV9IB!!#T9UkUV!!!!Ke`\r(Ue8U!!BV9DZ!U`!!!)GF+Ub!93BN-9@VUU[rr`$lA$'!Uc!N"NkVUiDVrj!%KrU\r'Kk@UUiDVd)#Vi2q3")Fb@reEJ+[lUkUVrrrr!2q(pM'V*&@VUUZ!rIrrr`$rKPb\r(J+Z'UkZVrI6rr`!!!"#J!&J!!NP'E'3!!!!%$NPZFh4KE'`J4QpXC'9b!*!6G6!\r!N!4cCA!a!!!!"!%Y!*!P!P0'D@`!!!!%#e0jFh4PE5"'D@aP!*!@G83!!!!"6h4\rSFJ!!!!3'6h4SCA,*!*!EG8i!N!4cCA!b!!!!"!%Y!*!P!N&cDe8!!!!%#%&cDb"\r9Ff9b!*!CG@)!!!!#4N&MG!!!!!364QPZC#""Bh4TEfiJ8Q9cG@adb3#3$R9X!!!\r!!N*d8R3!!!!%&&*[Eh3JEfBJ8h4KFR4eF#"%DA0V!*!0GAB!N!4cCA!c!!!!"!%\rY!*!P!QeKBh-!!!!"$90jFh4PE5"'EfaNCA)!N"4eLJ!!!!*PH(4Z!!!!!4&&H(4\rPER0TEfjc)%C[E'4PFJ#3%(@8!!!!!Q0dFQ`!!!!"&80[ER4bEf`J8'&ZC@ac)%C\r[E'4PFJ#3$(@H!!!!!R"bC@B!!!!"%P"bC@CPFQ9ZBf9c)%C[E'4PFJ#3$h@S!!!\r!!f&YER8!!!!"&d&`F'aP)%ePER8J5A4PEA-J4QpXC'9b!*!+GE)!!!!#C'9cD`!\r!!!%14'9cDh4[F#"'EfaNCA)!N"0e[!!!!!*cG(*d!!!!!446G'&bG(9`)%PdC@e\rc)%C[E'4PFJ#3$AA'!!!!!h4PEA!!!!!"&P4PEA"[FQ&bH5"*G'9YFb"'EfaNCA)\r!N!Yed!!!!!*`FQjd!!!!!443FQPZG#"0EfjTG'pb)%C[E'4PFJ#3$AAD!!!!!QC\r[ER3!!!!"$%C[ER4c)%C[E'4PFJ#3&AAN!!!!!R0SC'B!!!!"&90SGA4%EhGZ)%P\rdC@ec)%C[E'4PFJ#3$(AZ!!!!!R0NCAB!!!!"(%0[ER4bEf`J8h4bDA!J6@pNG@a\rPFb"'EfaNCA)!N!9eq!!!!!4PH(4%!3!!!49&H(4PER0TEfjc)#K%DA0KBQaPC#N\r!N!af!J!!!!4MG(*%!3!!!4P$EfjdFQpX)&"KEQ9XFb!S4'PcB@*XC@3T!*!)GJ`\r!N!4cCA!d!!!!"!%Y!*!P'F4cBh)"!!!#%e0MFQP`G'PZCb""C'4TG'P[ER-!N!a\rf)(BJ!!!!''4TB@`"!!!#$e0MFQP`G#"%D@&XC@0dF`#3%(BUGLS!!!!%E@&M4!%\r!!!%F8hPcG'9Y)%9iG'9ZFfP[ER-J+%4TFf&LE'9N+3#3"ABd!!!!$m4`FQ3"!!!\r#$e"bD@jdCA)J4(*TGQ9bF`#3%(BqGMi!!!!,a'aTBJ%!!!)38fKKFQ9N)%aTBR*\rKFQPPF`#3$hC)GNJ!!!!,a(0ZC!%!!!)'8fpeEQ4c!*!CGP*f8J!!!![%D'a`!3!\r!!J4)C@a`!*!EGPafA!!!!![%EQ9d!3!!!K&*ER4PFQjPG#"3E(9R,8PZF`#3$RC\rQGQB!!!!0a(4PH!%!!!)19'9iG#"&EQ0[C'PZCh-!N"&fF(C`!!!!$-4fEf-"!!!\r#"PC[D@0PF`#3'ACkGRS!!!!,a'9ND3%!!!)(4@4TG'pbF`#3'(D%GS3!!@CXC#0\rfK!!*Ef4[C!%!!!)(6h"PEN4[B`#3'(D1GSi!!@CXC#0fMJ!)Ef4cF!%!!!)@6h"\rPEN4[Bb"6D'9XE#"3E(9R,8PZF`#3#ADBGTJ!!@CXC#0fQ!!)Ef4XBJ%!!!)46h"\rPEN4[Bb"-D@*bBA*TCA-!N!jfSRDL!!&QE'3MGU)!#'pNFh3"!!!##P0dBA4TEfj\rPFRN!N"9fV(DX!!&QE'3MGU`!#X4YEf3"!!!#$8e[C'9Y)&0MFQP`G(-!N"*fYRD\rf!!!!#h"`C'B"!!!#&&"bD@jdCA)J4'9cBh*TF(4TEfjc!*!,GX"f`!!!!!aKFh9\r`!3!!!K0"F("XD@0KG'P[EL"6GA"`Eh*d!*!-GXTfbJ!!!!PcG(*%!3!!!KK6G'&\rbG(9`)%PdC@ec)#K%DA0KBQaPC#N!N!Gfe(E8!!!!#A0SC%3"!!!#'90SGA4NEhG\rZ)%PdC@ec)#K%DA0KBQaPC#N!N!CfhREH!!!!"Q0YER8"!!!#&80[ER4PH(4eB@`\rJ6@9ZG5"*G'9YF`#3#RESGZJ!N!4cCA!e!!!!"!%Y!*!P!Q&`F()"!!!##N&`F'9\rKFQ&ZBf8!N"9fr(Em!!!!!Q&PH-3"!!!#$%&`F'aP)%9iG(*KF`#3%hF'G`B!!!!\r#BA"`F`%!!!)-3A"`E'PMBA4TEfjc!*!6Ga"h%!!!!!*KFh6%!3!!!JT"Fh0TFh4\rKER4c!*!9GaTh'J!!!!4QE'jd!3!!!K*$E'9KER9`)%&d)&0dBA*dGA!!N!eh*(F\rN!!!!!R"bEfB"!!!#%N0[E'pb8hPZBb"3FQpQD@aPF`#3$AFZGbi!!!!#C(4`a!%\r!!!)34'9cDh4[F#"3D@0dGA*PF`#3$hFiGcJ!!!!#C'pMF`%!!!)*4'pMG@ePER4\rc!*!@Gd*h3J!!!!*QBACc!3!!!JP'BAC[FQPdCA-!N"Ch6(G-!!!!!fCZC(-"!!!\r#"%CTEQ3!N"Yh9RG@!!!!!QCKFfB"!!!#&8C[E'4PFL""Bh4TEfiJ8f0bDA"dF`#\r3#RGJGf!!!!!#D@aRCJ%!!!)15@jcG'&XE'9b)%a[Ch-!N"&hDRGU!!!!!QPZG-3\r"!!!##%PZG'9bEQ9d!*!AGh4hG!!!!!*TFh0Q!3!!!K9*ER4PFQjPG#"6C@&bBfJ\rJ8fPdCA-!N!ThIRGq!!!!!QaKG@i"!!!#$NaKG@jMD'9b)%PdC@ec!*!4GiKhL!!\r!!!*YEh,%!3!!!K40B@-J6e-J8Q9KC#"0C5"'D@aPF`#3#hH5Gj)!!!!#FQ&`F!%\r!!!)68Q9MC@jd)%&`F'aTBf&dD@pZF`#3$(HFGj`!!!!#FQ4[B`%!!!)38Q9MC@j\rd)%4[Bh9YC@jdF`#3$hHQGkB!!!!#FR0fFJ%!!!)18Q9MC@jd)&0PFRCPFR-!N"&\rhX(H`!!!!!R0MFX3"!!!#"e0MFQP`G(-!N"KhZRHk!!!!!R0ZC(-"!!!##P0[G@j\rN)&0PG(-!N"9ha(I%!!!!!R0`DfN"!!!#$e0`C@&VB@*XC5"*G'9YF`#3%(I1Gmi\r!!!!#CQ*MCJ%!!!)D9'KP)%CTEQ3J3RNJ3fpZG'9ZG#"'EfaNCA)!N!9hf(IB!!!\r!!R4SE@8"!!!##e4SC@eP)%CTE'9c!*!8Gq*hiJ!!!!*eG'R%!3!!!JP9G'PXDA4\rTCA-!N"Chl(IX!!!!!hGKE'X"!!!#'%a[Bf&dD@pZ)%eKEQ&RCA)J6@pNG@aPF`#\r3"hIfGrB!!!!$G(*TF!%!!!)@6'pMBA4TEfiJ6@&ZB@GPFL"3FQ9QF`#3#AJ!H!#\r3"!0QB@aX!3!!!JP-Ef0KG'P[ER-!N"Ci#RJ+!!!!!R&dCAJ"!!!#&&&eD@0V9'P\rYC5"&H(4PER0TEfjc!*!,H"4i&!!!!!*QBQ0`!3!!!KK'D@jN)'*j)%0[ER4PER3\rJ8'aeCbeTER-!N!Gi(RJH!!!!!X4XEf-"!!!#'8aKEQGeB@GP)#BJ8Q9RD@pZ)&0\reF("[FR3!N!Ci+(JS!*!%Ff9`0J!!!!3",3#3*30NFh"X!3!!!K*%DA0`E'&j)%9\riG'9ZFfP[ER-!N!ei2(Jm!!!!!QYMD'i"!!!##8YPH@0SB@PZF`#3&RK'H%B!!!!\r$EA"iCJ%!!!)26A9XG'P`FQpMCA0cD@jR!*!3H&"i8!!!!!*cC'&d!3!!!K"6D'&\rbC@3J4'pMG@ePER4c!*!2H&Ti@J!!!!*cBh4X!!!!!K96HA0dC@dJ3fpZG(*[E#"\r3B@jPE(-!N!TiC(KN!!!!!R0NFfX!!!!#&90jFh4PE5"%CA0VG'p`)%C[E'4PFJ#\r3#RKZH'i!!!!#Fh"bCJ!!!!)58hPcG'9Y)&"bC@CPFQ9ZBf9c!*!0H*!%!!!!!R0\rdFR-!!!!#$&0jFh4PE5"8FQ&cD!#3%hL#H))!!!!#GR0QC!%!!!)D9'KP)&C[E(9\rYC5"6CA4dD@jRFb"'EfaNCA)!N!9iM(L-!!!!!R9cFR-"!!!#"99cCA*c!*!DH*C\riPJ#3"!2(!!!"!!!!!fd!!!*Y!!!!@J#3mJ%1!!%!!3!!'cTLD@jKFRNJ4'PcG(*\rTBR9dD@pZ1P*&384046T3HA4SEfiJ-5ie,M*M-6T548&%688!N0N+!*!%"p!!!!I\r3!!!"594SDA-JD@jcG'&XE(-J8(PdD'pZ)$)Z-@)b)'PZBfaeC'PZCb"KE'`JBAC\rKD@aKBQaP)'9iG'9ZFfP[EL"`B@0VB@GPFcSJ)&4VD@jdCA)X)(4SC5"3HA4SEfi\rJ5@eKCfPZCb"-D@*bBA*j,#"1G@ePFQPMB@`J8(PdD'pZ)'&ZC#"TE@FZ)&4SC5"\rNCACPE'p`CA)JEh"dD@pZ)'Pc)'j[G#"TER0dB@aXC@3JBRNJC'9QBA9XG#iJ3fa\rKFh0TBb"38%-JB@jN,fpb)%0KFQ*[EL"fCA*cD@pZFb"hD@aX)'*P)'PZFh4KE'a\rPC#`JC'9`C@jND@jR)'pZ)(P[GA)JFhPcG'9Y,Jd09Q9bFfP[EL"TEQC[1L"358`\rJ-5ia,M%X)'PYCb!a,M-X)%jeE@9bD@0KE#!a1#id,M!X)&4ME#pdDb!i,M-Z!!!\r"!!!!!fd!!!*Y!!!!@P028P3$"J#!!"`!@J!#9%9B9!!!!"T8H(4'!!!!*Q4659S\r!!!!b!qRrr`!!!5!!N!3"p2rr!*!)!I6rr`!!!4)!N!B$4J!'!!)3##A*$NPZFh4\rKE'aPFL"%BA4K!J!!"TF!!3F"bT!!!!!!M[rr!*!%"`(+d!F"bQ!!!!%GNQ!!N!F\rU!!"*)!F"bV!!!%NJ!4f5B!#FY!S(!H-)"`(1*!!!!!%N!!!("`(-!*!%m!#3"!F\r"c+`(!FVA!#5Yd!#3"2q3"!$rrrm!#N9N!$#bp!#FY!S(!FZb!*!%"`(,`JDBU)!\r(!FV`5!!!"2r4bA3!!#J!"`(,!!!)6@J!*+h3!!"+N!!(!FX3!#a5M-Y`"`(,!!!\rD"`(M#!"6JD`!!!!"*!!!"`F"bd!!!!$`2hQfN!!!!3!!"`(,3!"6JD`rHbH`"`(\r-@!F"!!%"!!%'!!!!!3J!)!%!N&Ue&1A9Y46Pe3!!!!)!!!!#!*!*"!!"!!%!!3!\r"!!%!!)!!N!Qe&1A9Y46Pe3!#!!B!N!m"L!!!!3#3*S!!N!8&"!#3%!J!N#d"!2q\r3"!#!!!!"N!3!N!355@jcG'&XE'9b)%a[Cb"'D@aP!!!%!!!!mp8J"`(-J2r$CqS\r!!#J!!!3&5!F"cK!!mp8`!'Ij%JF"c,$r`drQ!!"'j!!akfS!!%EN"`(1'!!!!"-\r!!!!""`(1%2))UIJ!C`Md"`(1%!F"c-!!C`M#"`(1%!$6PCJ(!Fif!'E6+JF"cK$\rrr`!!!!%!!!!"!!!!!3!!!!%!"!9)!019Q!DQmJM1*!#3"#3!!!F'rS1@!*!)rJ)\r!N!B(!Fe`!!!!m!F"c@#)!!!%!&SMN!!"(C*J!4f5B!#3"bS!!%NJ"`(0F!!!55!\r"(C*J!*bd#JF"cE8!diVN!3%!N!3""`!!!)!!!f0LEfk!!3!!!3-98Q9aG@PbCA-\rJ3f&bBQpZ)$%Z-#id1hJ!N!3'fdEqFhPcGS!"!!!*r`p5CA&eDA*PFb"0B@028eJ\r!#%eS2jXlH!#3"!EE4[jcHA0f3!%!!!Rr%&*PFA9TFQ9c)("bC5e28eJ)6@JrQcY\ri!*!%"BI@rJ!!!U)!%'&XDA-3!3#3""&)BA-J3@aTBA-J6@&ZB@GPFJ#3$Q0dBRB\r3!3#3""T)BA-J3fpYEA9ZD@0KG'P[ER-J9'p[E'*[H!#3"@9fER33!3#3""")BA-\rJ3A"`E'8J4ACPER4c!*!2CR"e))!"!*!%#8KKFb"K)%C393#3&QKPE(!3!3#3"""\r)BA-J5'9XF#"0B@jKCf9b!*!2E@ee))!"!*!%#8KKFb"K)%e093#3&QjYCh)3!3#\r3""K)BA-J6QpdD@CTBf&dD@pZ)%eKEQ&RCA)!N!G`EhGbJ!%!N!345'&c)&"[Gf9\rb)%eKEQ&RCA)!N!jaC(*hJ!%!N!365'&c)%0[E'pb)&&eD@0V4(*KG`#3$(&N)##\r!!3!!!Im85'&c)$-b,8*TG#"4G@PMDd4bBAF!N!YaG'PY%!%!N!305'&c)&&eD@0\rV9'PYC3#3%R0MFQQ!!3#3""*)BA-J8f0bDA"d)%eKEQ&RCA)!N!edE@GbJ!%!N!3\r35'&c)&4TE@8J6@&ZB@GPFJ#3$hCY)#!3!3#3""*)BA-J9QPbG(9KE#"0C@e[FRN\r!N!ecHA0K)!%!!!!#&&"[Gf9b8%-J3A*MD'PdC@0dGA*P!*!,FhPcB8!$!!!!!K!\rf1%XJ3A*MD'PdC@0dGA*P!*!4!@)!!3pMEfjQD@GeFQ9cBh*TF(3!N!FJ2jGTY!E\rpX-B!rDd3JJ!!5$qER`J!$,)!*!!!"`"CY8!'P*2`"T56m#3!!!F'Le*)!*!%"T5\r6m!EpV9!'P*2`"`(-pJEpX-B'rDf!3J!!5$qE3@!'dT0F!*!&@E9!!!!!!3$p!%N\r'rDe`!!!!!3E5N`!'Lc%3!AX!l!F"c2B'rDm'"[f`aJEpVC!!+!!!"$q'CQJ!!J$\rp!%QYS!!aKF`!N!`(!Fcf"[f["JD8Nr!'rDi3!!!!d$qE2bJ'P*2`"[fYd%)!!%J\rrHcJm!!!!!3EpVH!!8l'Xrp&Np!D6ak!'rDh`!!K0D!!!$p!'P*2`!*!()!EpV`B\r'rE$'!2fZ%#)!!%MrdDJ3!3!!"3EpVN!!#%eS2jXlH!D6ak!'rDj!!&Qe3!&l!1`\r!!!D6"[fZ3!"9T1!rHU$d"[f`aJ!!!!)!N!3$5J!#'8eKBe"jG'K[EL"SEfeP)("\rKCf8J+&GA9bN!5$pl1$`+GhGh,Q0hD5jZE#crd@6d"T%mX!El*$!!#%eS!!!2d!D\r5"5!!N!FJ"[XP8!El*dJ'qb43)J!!52r4U"!!N%!R,fCdF#pUB@0V,h"jG'K[ELp\rYB@-[6@&M8(PdD'pZ-M&L-R"KFR4c,j%Y+!!!1PJ'NJ8J"U"h#!!+4@3"E!%T"[X\rN`!El*+`'Q'JN!!!2d!#3"!El*8B!@Cm`!&QI*'Mrpd!'qb8c"[XNk2r2Ij!!"[X\r'qb6Z"TJ!#N9N*5)'qb6S"[XNl!!&"T)'qb8b"Si0'!El*5)!kJ!f!*)&)!!&"[X\rP)J#3"!D42VJ!!!!""[p"pJEl*dJ'NIBJ"U"EB!D5"5!!!`!)!!d!f!%T!1S!0U,\rL"[X'qb9B"SM(5!El*dJ'qb93"[p"pJ(f"T)&)!D5"5!'NJ8J"T)&)!El*dS!!J!\r!'8eKBe"jG'K[EL"SEfeP)("KCf8J+%C88#N!5$pl1$`+CR4`,Q0hD5jZE#crd@6\rd"T%mX!El*$!!#%eS!!!2d!D5"5!!N!FJ"[XP8!El*dJ'qb43)J!!52r4U"!!N%!\rR,h"eBLpUB@0V,h"jG'K[ELpYB@-[6@&M8(PdD'pZ-M&L-R"KFR4c"T%Y+!!!1PJ\r'NJ8J"U"h#!!+4@3"E!%T"[XN`!El*+`'Q'JN!!!2d!#3"!El*8B!@Cm`!&QI*'M\rrpd!'qb8c"[XNk2r2Ij!!"[X'qb6Z"TJ!#N9N*5)'qb6S"[XNl!!&"T)'qb8b"Si\r0'!El*5)!kJ!f!*)&)!!&"[XP)J#3"!D42VJ!!!!""[p"pJEl*dJ'NIBJ"U"EB!D\r5"5!!!`!)!!d!f!%T!1S!0U,L"[X'qb9B"SM(5!El*dJ'qb93"[p"pJ(f"T)&)!D\r5"5!'NJ8J"T)&)!El*dS!!J#3"!&#!!8'3fpYE@pZ!`!)!!d!f!%T!2!!2U,L"[X\r'qbDm"SM(5"T0B@03HA4SEfib-@)bB@0dDACP,@0[E@e[ET)*X!El"d4PGQ9XEh!\r!#!!0!0J"+3$[!%kLiJEl"[XQ[!D)adJE6@&M8(PdD'pZ-M&L-Q&MG'PfC5eNCAC\rPE'p`#E!'q`038%-*X!!$!!J!$3$B!5N!kJ!aSZ)'q`El*V`'L-G)&deKBe"jG'K\r[EM)aBM*KBh4TGQ8Y8&"$#E!'NJQ`"[X'3f&bBQpZ!`!)!!d!f!%T!1i!1+,L"[X\r'qbDm"SM(5"T0B@03HA4SEfib-@)bB@0dDACP,@0KFQ*[ET)*X!El!P4VNJQ`!!-\r!#!!0!0J"+3$V!%ULiJEl"[XQ[!D)adJ@6@&M8(PdD'pZ-M&L-Q&MG'PfC5edDj)\r*X!D5#E!'q`!!!!3!!K!)!!!!#NP'E'3%!*!)$J"*!"-#1!,b!!!!5!`U!!!"!!!\r"rrd!!Ilp!!!B`9028P3#HJ#!!"`+fJ!14da69!!"!(T*6%0$!$S!NNP-@%-!2!0\r@58j(6!!!"M**6N`M!!!'2NP16%-!!!C+58j66!!!"PC*8f4Q!!!'BNP6FQB!!!C\rZ8N4cG!!!"RT@6(0d!!!'KPG3Eh-!!!D5BfPMEJ"4"TjQE'3M!!3+GR"#G(-!!!U\rb!qMrr`!"pDX!N!3$kIrr!!(f,`#3"(BJ!%m%!#p5"QdN1(BU!)J%!%+9"QdN4(B\rq!-F%!&"!"QdN8(C)!38%!&6V"QdNA(C5!8-%!&Pf"QdND(CF!B%%!&i*"QdNG(C\rQ!Em%!',8"QdNJ(C`!Id%!'Jh"QdNM(Ck!MX%!'c#"QdNQ(D%!RB%!(BV"QdNS(D\r1!V%%!)F0"QdNU(DB!`B%!*HA"QdLZ(DL!fJ%!+JC"QdL`(DX!km%!,Kl"QdLb(D\rf!pd%!-Vh"QdLe(E!""!%!1$U"QdLi(E+"%X%!1r*"QdLl(E8")B%!22!"QdLq(E\rH"-B%!2H2"QdM"(ES"38%!2Zb"QdM%(Em"6m%!2rj"QdM((F'"A-%!32)"QdM+(F\r3"D8%!3K("QdM0(FD"GF%!3`1"QdM3(FN"Jm%!4!j"QdM6(FZ"NN%!44S"QdM@(F\ri"T)%!4N("QdMC(G#"XB%!4bf"QdMF(G-"[S%!5"e"QdMI(G@"c3%!59B"QdML(G\rJ"fi%!5Q("QdMP(GU"k)%!5df"QdMS(Gd"p3%!6$9"QdMV(Gq#!J%!69N"QdKU(H\r)#&)%!6TE"QdKY(H5#*-%!6i+"QdK`(HF#-8%!8(C"QdKc(HQ#3X%!8@J"QdKf(H\r`#8i%!8PA"QdKj(Hk#C%%!8dZ"QdKm(I%#Fm%!9%&"QdKr(I1#J-%!95d"QdL#(I\rB#M8%!9K6"QdL&(IL#QN%!9`#"QdL)(IX#Td%!9qa"QdL,(If#Y3%!@Sb"QdL1(J\r!#`i%!AiV"QdL4(J+#cm%!C2!"QdL8(J8#fF%!DNa"QdLA(Jm#jN%!EEF"QdLD(K\r'#p%%!EVl"QdLG(K3$!N%!Elq"QdLJ(KD$%%%!F-G"QdLM(KN$(S%!FEN"QdLQ(K\rZ$,B%!FUM"QdJP(Ki$2)%!FjL"QdJS(L#$5`%!G)K"QdJV(L-$9m%!GA3"QdJZ(L\r@$C%%!GP["QdJa(BJ!$B%!#M+"QdN*(BU!'J%!$ZP"QdN-(Bq!+J%!%pB"QdN2(C\r)!1B%!&3$"QdN5(C5!53%!&L1"QdN9(CF!@)%!&dK"QdNB(CQ!D!%!'(X"QdNE(C\r`!Gi%!'G2"QdNH(Ck!K`%!'[D"QdNK(D%!PS%!(%r"QdNT(D1!T)%!))P"QdNV(D\rB!Y!%!*+["QdNY(DL!c`%!+-a"QdLa(DX!j3%!,16"QdLc(Df!mS%!-0$"QdLf(E\r!!r!%!0Nk"QdLj(E+"$!%!1me"QdLm(E8"'B%!2-X"QdLr(EH"+B%!2El"QdM#(E\rS"1B%!2V+"QdM&(Em"53%!2pP"QdM)(F'"9S%!30%"QdM,(F3"B`%!3I$"QdM1(F\rD"Ei%!3Z+"QdM4(FN"I!%!3p4"QdM8(FZ"Li%!428"QdMA(Fi"RF%!4Kc"QdMD(G\r#"Ud%!4`b"QdMG(G-"Ym%!4rK"QdMJ(G@"a8%!54`"QdMM(GJ"e-%!5Mc"QdMQ(G\rU"iN%!5bb"QdMT(Gd"lX%!6"4"QdKS(Gq"qd%!663"QdKV(H)#$N%!6RA"QdKZ(H\r5#(S%!6f'"QdKa(HF#+`%!8&9"QdKd(HQ#2)%!88F"QdKh(H`#68%!8M6"QdKk(H\rk#AB%!8bD"QdKp(I%#E3%!9"a"QdL!(I1#HS%!93`"QdL$(IB#K`%!9I2"QdL'(I\rL#Ni%!9YZ"QdL*(IX#S3%!9mY"QdL-(If#VB%!@1F"QdL2(J!#[)%!AH9"QdL5(J\r+#bS%!BZ1"QdL9(J8#e3%!D0$"QdLB(JH!!!%!"hZ"QdN((JS!"X%!#0Z"QdN,(J\rm#hS%!EAd"QdLE(K'#lJ%!ETh"QdLH(K3#qS%!Ei@"QdLK(KD$#J%!F+C"QdLN!"\riC!aD"!('8!CY)TaiEJbD"!(+$`CY)*KiH!c5"!(0cJCY)+4iJJd5"!(4M3CY),"\riM!e'"!(96!CY),aiPJei"!(Bk`CY)-J"p2rr!!(pM`#3""1)$DS!!Ghb!*!%G6!\r0iJ!"rYd!N!3"p2rr!!(k33#3""1)$Fm!!I*K!*!%%iJ0[!!"lTB!N!3$k2rr!!(\rk1`#3""1)rrm!!IM9!*!%!qMrr`!"rZX!N!4e-2rr&!!!!!CY#0Ke42rr&!!"9JC\rVajae6[rr"!!#j!CVakaeB[rr&!!%+JCVaiaeE2rr"!!&N!!'E3YFGAErra3!"`B\r'E3Y-GBVrra3!#!3'E3XmGC6rra3!#@)'E3XXGClrra3!#XJ'E3XFGDMrra3!$$B\r'E43FGE,rra3!$D3'E3VFGEcrra3!%")'E3Z`GFErra3!%9J'E3VXGG$rra3!%Vi\r'E4f%GGVrra3!&"3'E53)GH6rra3!&BS'E53%GHlrra3!&ZJ'E53!GIMrra3!'%i\r'E538GJ,rra3!'E`'E533GJcrra3!'b)'E53-GL$rrb3!1Mm'E53dGLVrrb3!6J)\r'E54!GM6rrb3!()J'E53JGMlrrb3!8S8'E54-GNMrrb3!9c!'E54BGP,rrb3!@lX\r'E54NGPcrrb3!B%i'E54`GQErrb3!C4N'E54mGR$rrb3!DR`'E55)GRVrrb3!E`F\r'E558GS6rrb3!J!8'E55FGSlrrb3!N!"h"QdN[(DBrrmN!+%""QdLY(DLrrmN!,'\r$"QdL[(DXrrmN!-(P"QdLh(DfrrmN!0IN"QdLk(E!rrmN!1h("QdLp(E+rrmN!2'\rH"QdM!(E8rrmN!2@9"QdM$(EHrrmN!2PN"QdM'(ESrrmN!2hh"QdM*(Emrrm8!3(\r1"QdM-(F'rrm8!3@0"QdM2(F3rrm8!3S-"QdM5(FDrrm8!3h6"QdM9(FNrrm8!4*\rq"QdMB(FZ"Q3%!4Bp"QdME(Firrm8!4VF"QdMH(G#rrm8!4jl"QdMK(G-rrm8!5*\r+"QdMN!"h9[rr&!%RR3CY)jahB2rr&!%VA!CY)kKhD[rr&!%Zq`CY)D4hG2rr&!%\rbQJCY)E"hIJJM"!%h13CY)EahL!KV"!%m)!CY)FKhN[rr&!%rc`CY)G4hR!MH"!&\r$RJCY)H"hTJNN"!&(C3CY)HahX!PR"!&,(!CY)IKhZJQX"!&2!`CY)J4ha2rr&!&\r5fJCY)K"hc[rr&!&@H3CY)Kahf2rr&!&D'!CY)LKhi[rr&!&Ge`CY)M4hl2rr&!&\rKGJCY)N"hp[rr*!&f,`CY)Nai!2rr*!'++!CY)PKi#[rr*!'Kh3CY)Q4i&2rr*!'\rdAJCY)R"i([rr*!!L'!CY*"Ki+2rr*!!RG!CY*#Ki22rr*!'j)3CY)Rai4[rr*!'\rm`!CY)SKi82rr*!("3`CY)T4i@[rr*!(%iJCY)*!!H'6rrb3"b,N'E5#FH'lrrb3\r"c(J'E5#SH(Mrrb3"d$F'E5#dH),rrb3"drB'E5$!H)crrb3"ej8'E5$-H*Errb3\r"fc3'E5$BGS6rr`3!F)8'E553!(D1rrm%!)&V"QdNX(DBrrm%!*(e"QdNZ(DLrrm\r%!+*h"QdLX(DXrrm%!,,C"QdLd!2Srrm!!Il9!*!%'NCTEQ4'EfaNCA)[4QPZC#p\r&H(4PER0TEfjc'P0jFh4PE5!i)%CTEQ4'EfaNCA)[8hPcG'9Y'%CTEQ3J8f0bDA"\rdD@jR)%&NC'PdD@pZFaK'D@jN)&0MFQP`G'PZCb""C'4TG'P[ER-I4QPZC#"6Bh*\rTF(4TEQFJ3@4NDA4TEfj%D@&XC@0dFap'D@jN)&0MFQP`G'PZCb""C'4TG'P[EN4\rTB@aPBh4c(P0jFh4PE5!i)%CTEQ4'EfaNCA)[4AKdC@jcD@pZFaj6HA0dC@dJ1#"\r'D@jN4QpXC'9b,d9iG'9ZFfP[ER-H8hPcG'9Y)$JJ4QPZC%C[E'4PFLp&H(4PER0\rTEfjc(P0jFh4PE5!i)%CTEQ4'EfaNCA)[4AKdC@jcD@pZFaj6HA0dC@dJ1#"'D@j\rN4QpXC'9b,d9iG'9ZFfP[ER-H8hPcG'9Y)$JJ4QPZC%C[E'4PFLp&H(4PER0TEfj\rc(P0jFh4PE5!i)%CTEQ4'EfaNCA)[4AKdC@jcD@pZFaj6HA0dC@dJ1#"'D@jN4Qp\rXC'9b,d9iG'9ZFfP[ER-H8hPcG'9Y)$JJ4QPZC%C[E'4PFLp&H(4PER0TEfjc(P0\rjFh4PE5!i)%CTEQ4'EfaNCA)[4AKdC@jcD@pZFaj6HA0dC@dJ1#"'D@jN4QpXC'9\rb,d9iG'9ZFfP[ER-H8hPcG'9Y)$JJ4QPZC%C[E'4PFLp&H(4PER0TEfjc(P0jFh4\rPE5!i)%CTEQ4'EfaNCA)[4AKdC@jcD@pZFaj6HA0dC@dJ1#"'D@jN4QpXC'9b,d9\riG'9ZFfP[ER-E4QPZC#"2F'9Z4'pM)%9NDA4[FR-J4QpXC'9b'dCTEQ3J6h"PEN4\r[Bb"&C'PdEh*c)%C[E'4PFKj'D@jN)%p%)%9NDA4[FR-k6h"PEN4[Bb"'EfaNCA)\rH4QPZC#"24#"&C'PdEh*c1Np`C@j%Ef-J4QpXC'9b08CTEQ3J6d3J4@4TG'pbFcT\r2F'9Z4'pM1Np`C@j%Ef-J8fKPE'`J8'aeCbe*ER-J4QpXC'9b08CTEQ3J6d3J4@4\rTG'pbFcT2F'9Z4'pM1Np`C@j%Ef-J8fKPE'`J8'aeCbe*ER-J4QpXC'9b+dCTEQ3\rJ6d3J4AKdC@jcD@pZFcT2F'9Z4'pM)%aTBR*KFQPPFb"'EfaNCA)V4QPZC#"24#"\r&H(4PER0TEfjc1Np`C@j%Ef-J6'PLFQ&bD@9c)%C[E'4PFKT'D@jN)%p%)$T6G'&\rdD@pZCA*j)%C[E'4PFKT'D@jN)%p%)$T6G'&dD@pZCA*j)%C[E'4PFK*'D@jN)%e\r[C'9Y)&0MFQP`G(-54QPZC#"0Ef4PE5"6Bh*TF(4c(dCTEQ3J8(*TER4PFL"%CA0\rMFQP`G'P[EL"'EfaNCA)I4QPZC#"3FQPZG'9b)%4PFf0bDA"dD@pZ)%C[E'4PFKT\r6HA0dC@dJ1#"'D@jN4QpXC'9b,e0jFh4PE4T6HA0dC@dJ1#"'D@jN4QpXC'9b,e0\rjFh4PE4p6HA0dC@dJ1#"'D@jN4QpXC'9b,e0dBA*dGA"*G'9Y(e0jFh4PE5!i)%C\rTEQ4'EfaNCA)[8h4KFR4eF%PdC@dI8hPcG'9Y)$JJ4QPZC%C[E'4PFLp6D(9d4'p\rhENPdE4p6HA0dC@dJ1#"'D@jN4QpXC'9b,e0SGA4%EhGZ5A4Y(P0jFh4PE5!i)%C\rTEQ4'EfaNCA)[4AKdC@jcD@pZFaj6HA0dC@dJ1#"'D@jN4QpXC'9b,d9iG'9ZFfP\r[ER-D8hPcG'9Y)$JJ4QPZC%C[E'4PFLp6HA0dC@dD8hPcG'9Y)$JJ4QPZC%C[E'4\rPFLp6HA0dC@dB8hPcG'9Y)$JJ4QPZC%C[E'4PFLp5Efpd'&0jFh4PE5!i)%CTEQ4\r'EfaNCA)[8Qp[G"K6HA0dC@dJ1#"'D@jN4QpXC'9b,e*[Eh3B8hPcG'9Y)$JJ4QP\rZC%C[E'4PFLp5Efpd'&0jFh4PE5!i)%CTEQ4'EfaNCA)[8Qp[G"K6HA0dC@dJ1#"\r'D@jN4QpXC'9b,e*[Eh3H8hPcG'9Y)$JJ4QPZC%C[E'4PFLp&H(4PER0TEfjc(P0\rjFh4PE5!i)%CTEQ4'EfaNCA)[4AKdC@jcD@pZFaT6HA0dC@dJ1#"'D@jN4QpXC'9\rb,e0jFh4PE4T6HA0dC@dJ1#"'D@jN4QpXC'9b,e0jFh4PE4*$Efa[FP0jEQ-J8(*\r[CQPXCA-D8hPcG'9Y)$JJ4QPZC%C[E'4PFLp6HA0dC@dD8hPcG'9Y)$JJ4QPZC%C\r[E'4PFLp6HA0dC@dB8hPcG'9Y)$JJ4QPZC%C[E'4PFLp5Efpd'&0jFh4PE5!i)%C\rTEQ4'EfaNCA)[8Qp[G"T6HA0dC@dJ1#"'D@jN4QpXC'9b,e0jFh4PE4T6HA0dC@d\rJ1#"'D@jN4QpXC'9b,e0jFh4PE4j6HA0dC@dJ1#"'D@jN4QpXC'9b,d9iG'9ZFfP\r[ER-H8hPcG'9Y)$JJ4QPZC%C[E'4PFLp&H(4PER0TEfjc'P0jFh4PE5!i)%CTEQ4\r'EfaNCA)[8hPcG'9Y'P0jFh4PE5!i)%CTEQ4'EfaNCA)[8hPcG'9Y'&0jFh4PE5!\ri)%CTEQ4'EfaNCA)[8Qp[G"K6HA0dC@dJ1#"'D@jN4QpXC'9b,e*[Eh3B8hPcG'9\rY)$JJ4QPZC%C[E'4PFLp5Efpd'&0jFh4PE5!i)%CTEQ4'EfaNCA)[8Qp[G"T6HA0\rdC@dJ1#"'D@jN4QpXC'9b,e0jFh4PE4T6HA0dC@dJ1#"'D@jN4QpXC'9b,e0jFh4\rPE49*ER4PFQjPG#"6C@&bBfJJ8fPdCA-B8hPcG'9Y)$JJ4QPZC%C[E'4PFLp5Efp\rd'&0jFh4PE5!i)%CTEQ4'EfaNCA)[8Qp[G!j-BA9ZBfKPFL"*G'9YFaK6HA0dC@d\rJ1#"'D@jN4QpXC'9b,e*[Eh3B8hPcG'9Y)$JJ4QPZC%C[E'4PFLp5Efpd'&0jFh4\rPE5!i)%CTEQ4'EfaNCA)[8Qp[G"K6HA0dC@dJ1#"'D@jN4QpXC'9b,e*[Eh368Q9\rMC@jd)%&`F'aTBf&dD@pZFaK6HA0dC@dJ1#"'D@jN4QpXC'9b,e*[Eh3B8hPcG'9\rY)$JJ4QPZC%C[E'4PFLp5Efpd%&*PBf9ZG#"%Ef0eE@9ZG(-B8hPcG'9Y)$JJ4QP\rZC%C[E'4PFLp5Efpd'&0jFh4PE5!i)%CTEQ4'EfaNCA)[8Qp[G!j5C@0PER3J8f9\rbGQ9bFaT6HA0dC@dJ1#"'D@jN4QpXC'9b,e0jFh4PE4T6HA0dC@dJ1#"'D@jN4Qp\rXC'9b,e0jFh4PE3G6Bh*TF(4c'P0jFh4PE5!i)%CTEQ4'EfaNCA)[8hPcG'9Y'P0\rjFh4PE5!i)%CTEQ4'EfaNCA)[8hPcG'9Y'&0jFh4PE5!i)%CTEQ4'EfaNCA)[8Qp\r[G"K6HA0dC@dJ1#"'D@jN4QpXC'9b,e*[Eh3B8hPcG'9Y)$JJ4QPZC%C[E'4PFLp\r5Efpd'&0jFh4PE5!i)%CTEQ4'EfaNCA)[8Qp[G"T6HA0dC@dJ1#"'D@jN4QpXC'9\rb,e0jFh4PE4T6HA0dC@dJ1#"'D@jN4QpXC'9b,e0jFh4PE4K6HA0dC@dJ1#"'D@j\rN4QpXC'9b,e*[Eh3B8hPcG'9Y)$JJ4QPZC%C[E'4PFLp5Efpd(8CTEQ3J6'pMBA4\rTEfiJ6@&ZB@GPFL"0Ef4eE'9c(8CTEQ3J6'pMBA4TEfiJ6@&ZB@GPFL"0Ef4eE'9\rc'dCTEQ3J6'pMBA4TEfiJ6@&ZB@GPFL"3FQ9QFaY'D@jN)%a[Bf&dD@pZ)%eKEQ&\rRCA)J8(*PCR-84QPZC#"3FQ9QFb"-Ef0KG'P[ER-84QPZC#"3FQ9QFb"-Ef0KG'P\r[ER-54QPZC#"49#"&H(4PER0TEfjc%NCTEQ3J893J4AKdC@jcD@pZFaj6HA0dC@d\rJ1#"'D@jN4QpXC'9b,d9iG'9ZFfP[ER-H8hPcG'9Y)$JJ4QPZC%C[E'4PFLp&H(4\rPER0TEfjc'&0jFh4PE5!i)%CTEQ4'EfaNCA)[8Qp[G"K6HA0dC@dJ1#"'D@jN4Qp\rXC'9b,e*[Eh3H8hPcG'9Y)$JJ4QPZC%C[E'4PFLp&H(4PER0TEfjc(P0jFh4PE5!\ri)%CTEQ4'EfaNCA)[4AKdC@jcD@pZFaK6HA0dC@dJ1#"'D@jN4QpXC'9b,e*[Eh3\rB8hPcG'9Y)$JJ4QPZC%C[E'4PFLp5Efpd(e0jFh4PE5!j)%CTEQ4'EfaNCA)[3fp\rZG(*[E&"ZE(-I8hPcG'9Y)$NJ4QPZC%C[E'4PFLp$EfjdFQpX8'jXFaY6HA0dC@d\rJ15"'D@jN4QpXC'9b,d4PFfYdEh!E8hPcG'9Y)$NJ4QPZC%C[E'4PFLp%CA0VG'p\r`(e0jFh4PE5!j)%CTEQ4'EfaNCA)[8(*PCQ9bC@jMCA-I8hPcG'9Y)$NJ4QPZC%C\r[E'4PFLp3FQ9QCA*PEQ0PFaP6HA0dC@dJ15"'D@jN4QpXC'9b,e4bBA0S'90jFh4\rPE5!j)%CTEQ4'EfaNCA)[9(*KFfJB8hPcG'9Y)$JJ4QPZC%C[E'4PFLp5Efpd'&0\rjFh4PE5!i)%CTEQ4'EfaNCA)[8Qp[G"K6HA0dC@dJ1#"'D@jN4QpXC'9b,e*[Eh3\rB8hPcG'9Y)$JJ4QPZC%C[E'4PFLp5Efpd%8PZFh4KE'`J6'pMBA4TEfjc%NPZFh4\rKE'aPFL"6CA4dD@jRFa**ER0dB@aXCA)J8f9dG'PZCh-%58CXC-)3:\r
\ No newline at end of file
diff --git a/Mac/Distributions/readme.txt b/Mac/Distributions/readme.txt
deleted file mode 100644 (file)
index 5ee1441..0000000
+++ /dev/null
@@ -1,39 +0,0 @@
-How to make a Python-distribution.
-----------------------------------
-
-These notes are mainly for myself, or for whoever tries to make a MacPython
-distribution when I'm fed up with it. They were last updated for 2.1b2.
-
-- Increase fragment version number in PythonCore and PythonCoreCarbon.
-  the fragment number is Python's sys.hexversion, it should be set in the
-  "PEF" preferences.
-- Increase version number in _versioncheck.py
-- Build PythonStandSmall, run once in root folder
-- Update Relnotes, readme's, Demo:build.html
-- Make sure tkresources.rsrc is up-to-date
-- fullbuild everything with increase-buildno
-- Run configurepython
-- mkdistr binary.include
-- mkdistr dev.include
-- make distribution archive with Installer Vise
-  Things to make sure of:
-  - Finder icon positions
-  - Version numbers in "Packages..." window
-  - Version number in "Installer Settings" -> "Easy Install Text"
-  - Version number in "Project" -> Attributes
-  - Version number in "Project" -> PostProcess
-  - Version number in "Internet" -> "Download Sites"
-  - Version number in "Internet" -> "File Groups".
-- test on virgin systems (OSX, OS9, OS8 without Carbon). Make sure to test
-  tkinter too.
-- Upload
-- Update README file in ftp directory
-- Change version number in public_html/macpythonversion.txt .
-- Update macpython.html
-- Send an announcement to:
-   pythonmac-sig@python.org
-   python-dev@python.org
-   python-announce@python.org
-   archivist@info-mac.org
-   http://guide.apple.com/usindex.html
-   http://www.versiontracker.com/ Jack.Jansen@oratrix.com
\ No newline at end of file
diff --git a/Mac/IDE scripts/Hack/Toolbox Assistant... b/Mac/IDE scripts/Hack/Toolbox Assistant...
deleted file mode 100644 (file)
index afd7846..0000000
+++ /dev/null
@@ -1,45 +0,0 @@
-import aetools
-import Standard_Suite
-import Required_Suite
-import MacOS
-import W
-
-
-class Toolbox(aetools.TalkTo, Standard_Suite.Standard_Suite):
-       
-       def LookupTopic(self, _object, _attributes={}, **_arguments):
-               _code = 'DanR'
-               _subcode = 'REF '
-
-               _arguments['----'] = _object
-               
-               _reply, _arguments, _attributes = self.send(_code, _subcode,
-                               _arguments, _attributes)
-               if _arguments.has_key('errn'):
-                       raise MacOS.Error, aetools.decodeerror(_arguments)
-       
-
-class ToolboxAssi:
-       
-       def __init__(self):
-               self.talker = None
-               self.w = W.Window((200, 100), "Toolbox Assistant")
-               self.w.button = W.Button((-94, -32, 80, 16), "Lookup", self.lookup)
-               self.w.prompt = W.TextBox((10, 8, -10, 15), "Enter topic:")
-               self.w.edit = W.EditText((10, 24, -10, 20))
-               self.w.setdefaultbutton(self.w.button)
-               self.w.open()
-       
-       def lookup(self):
-               if self.talker is None:
-                       try:
-                               self.talker = Toolbox('ALTV', start = 1)
-                       except:
-                               raise W.AlertError, "Can¹t find Â³Toolbox Assistant²"
-               lookup = self.w.edit.get()
-               try:
-                       self.talker.LookupTopic(lookup)
-               except MacOS.Error, detail:
-                       W.Message("Requested topic not found.\r(%d)" % detail[0])
-
-t = ToolboxAssi()
diff --git a/Mac/IDE scripts/Widget demos/WidgetTest.py b/Mac/IDE scripts/Widget demos/WidgetTest.py
deleted file mode 100644 (file)
index edef140..0000000
+++ /dev/null
@@ -1,85 +0,0 @@
-import W
-
-# define some callbacks
-def callback():
-       window.close()
-
-def checkcallback(value):
-       print "hit the checkbox", value
-
-def radiocallback(value):
-       print "hit radiobutton #3", value
-
-def scrollcallback(value):
-       widget = window.hbar
-       if value == "+":
-               widget.set(widget.get() - 1)
-       elif value == "-":
-               widget.set(widget.get() + 1)
-       elif value == "++":
-               widget.set(widget.get() - 10)
-       elif value == "--":
-               widget.set(widget.get() + 10)
-       else:   # in thumb
-               widget.set(value)
-       print "scroll...", widget.get()
-
-def textcallback():
-       window.et3.set(window.et1.get())
-
-def cancel():
-       import EasyDialogs
-       EasyDialogs.Message("Cancel!")
-
-# make a non-sizable window
-#window = W.Window((200, 300), "Fixed Size")
-
-#  make a sizable window
-window = W.Window((200, 300), "Variable Size!", minsize = (200, 300))
-
-# make some edit text widgets
-window.et1 = W.EditText((10, 10, 110, 110), "Hallo!", textcallback)
-window.et2 = W.EditText((130, 40, 60, 30), "one!")
-window.et3 = W.EditText((130, 80, -10, 40), "two?")
-
-# a button
-window.button = W.Button((-70, 10, 60, 16), "Close", callback)
-
-# a checkbox
-window.ch = W.CheckBox((10, 130, 160, 16), "Check (command Â§)", checkcallback)
-
-# set of radio buttons (should become easier/nicer)
-thebuttons = []
-window.r1 = W.RadioButton((10, 150, 180, 16), "Radio 1 (cmd 1)", thebuttons)
-window.r2 = W.RadioButton((10, 170, 180, 16), "Radio 2 (cmd 2)", thebuttons)
-window.r3 = W.RadioButton((10, 190, 180, 16), "Radio 3 (cmd 3)", thebuttons, radiocallback)
-window.r1.set(1)
-
-# a normal button
-window.cancelbutton = W.Button((10, 220, 60, 16), "Cancel", cancel)
-
-# a scrollbar
-window.hbar = W.Scrollbar((-1, -15, -14, 16), scrollcallback, max = 100)
-
-# some static text
-window.static = W.TextBox((10, 260, 110, 16), "Schtatic")
-
-# bind some keystrokes to functions
-window.bind('cmd§', window.ch.push)
-window.bind('cmd1', window.r1.push)
-window.bind('cmd2', window.r2.push)
-window.bind('cmd3', window.r3.push)
-window.bind('cmdw', window.button.push)
-window.bind('cmd.', window.cancelbutton.push)
-
-window.setdefaultbutton(window.button)
-# open the window
-window.open()
-
-if 0:
-       import time
-       for i in range(20):
-               window.et2.set(`i`)
-               #window.et2.SetPort()
-               #window.et2.draw()
-               time.sleep(0.1)
diff --git a/Mac/Include/config.h b/Mac/Include/config.h
deleted file mode 100644 (file)
index 8def64a..0000000
+++ /dev/null
@@ -1,728 +0,0 @@
-/***********************************************************
-Copyright 1991-1997 by Stichting Mathematisch Centrum, Amsterdam,
-The Netherlands.
-
-                        All Rights Reserved
-
-Permission to use, copy, modify, and distribute this software and its 
-documentation for any purpose and without fee is hereby granted, 
-provided that the above copyright notice appear in all copies and that
-both that copyright notice and this permission notice appear in 
-supporting documentation, and that the names of Stichting Mathematisch
-Centrum or CWI not be used in advertising or publicity pertaining to
-distribution of the software without specific, written prior permission.
-
-STICHTING MATHEMATISCH CENTRUM DISCLAIMS ALL WARRANTIES WITH REGARD TO
-THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
-FITNESS, IN NO EVENT SHALL STICHTING MATHEMATISCH CENTRUM BE LIABLE
-FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
-WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
-ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
-OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
-
-******************************************************************/
-
-/* config.h for Macintosh.
-   Valid only for CodeWarrior.
-   There's no point in giving exact version numbers of the compilers
-   since we don't update this file as each compiler comes out;
-   with CodeWarrior, we generally use the most recent version.
-*/
-
-#define USE_STACKCHECK
-
-/* Define if on Macintosh (MPW or __MWERKS__ should also be defined) */
-#ifndef macintosh
-#define macintosh
-#endif
-
-#if defined(USE_GUSI1) || defined(USE_GUSI2)
-#define USE_GUSI
-#endif
-
-#ifndef USE_GUSI
-#define DONT_HAVE_SYS_TYPES_H
-#define DONT_HAVE_SYS_STAT_H
-#define HAVE_STAT_H
-#endif
-
-/* Define if on AIX 3.
-   System headers sometimes define this.
-   We just want to avoid a redefinition error message.  */
-#ifndef _ALL_SOURCE
-#undef _ALL_SOURCE
-#endif
-
-/* Define if type char is unsigned and you are not using gcc.  */
-#ifndef __CHAR_UNSIGNED__
-#undef __CHAR_UNSIGNED__
-#endif
-
-/* Define to empty if the keyword does not work.  */
-#undef const
-
-/* Define to `int' if <sys/types.h> doesn't define.  */
-#undef gid_t
-
-/* Define if your struct tm has tm_zone.  */
-#undef HAVE_TM_ZONE
-
-/* Define if you don't have tm_zone but do have the external array
-   tzname.  */
-#undef HAVE_TZNAME
-
-/* Define if on MINIX.  */
-#undef _MINIX
-
-/* Define to `int' if <sys/types.h> doesn't define.  */
-#undef mode_t
-
-/* Define to `long' if <sys/types.h> doesn't define.  */
-#undef off_t
-
-/* Define to `int' if <sys/types.h> doesn't define.  */
-#undef pid_t
-
-/* Define if the system does not provide POSIX.1 features except
-   with this defined.  */
-#undef _POSIX_1_SOURCE
-
-/* Define if you need to in order for stat and other things to work.  */
-#undef _POSIX_SOURCE
-
-/* Define as the return type of signal handlers (int or void).  */
-#define RETSIGTYPE void
-
-/* Define to `unsigned' if <sys/types.h> doesn't define.  */
-#undef size_t
-
-/* Define if you have the ANSI C header files.  */
-#define STDC_HEADERS 1
-
-/* Define if you can safely include both <sys/time.h> and <time.h>.  */
-#undef TIME_WITH_SYS_TIME
-
-/* Define if your <sys/time.h> declares struct tm.  */
-#undef TM_IN_SYS_TIME
-
-/* Define to `int' if <sys/types.h> doesn't define.  */
-#undef uid_t
-
-/* Define if your processor stores words with the most significant
-   byte first (like Motorola and SPARC, unlike Intel and VAX).  */
-#define WORDS_BIGENDIAN 1
-
-/* Define for AIX if your compiler is a genuine IBM xlC/xlC_r
-   and you want support for AIX C++ shared extension modules. */
-#undef AIX_GENUINE_CPLUSPLUS
-
-/* Define if your <unistd.h> contains bad prototypes for exec*()
-   (as it does on SGI IRIX 4.x) */
-#undef BAD_EXEC_PROTOTYPES
-
-/* Define if your compiler botches static forward declarations */
-#define BAD_STATIC_FORWARD
-
-/* Define this if you have BeOS threads */
-#undef BEOS_THREADS
-
-/* Define if you have the Mach cthreads package */
-#undef C_THREADS
-
-/* Defined when case of imported modules are checked against case of file. */
-#define CHECK_IMPORT_CASE
-
-/* Define to `long' if <time.h> doesn't define.  */
-#undef clock_t
-
-/* Define if getpgrp() must be called as getpgrp(0). */
-#undef GETPGRP_HAVE_ARG
-
-/* Define if gettimeofday() does not have second (timezone) argument
-   This is the case on Motorola V4 (R40V4.2) */
-#undef GETTIMEOFDAY_NO_TZ
-
-/* Define this if your time.h defines altzone */
-#undef HAVE_ALTZONE
-
-/* Defined when any dynamic module loading is enabled */
-/* #undef HAVE_DYNAMIC_LOADING */
-
-/* Define this if you have flockfile(), getc_unlocked(), and funlockfile() */
-#undef HAVE_GETC_UNLOCKED
-
-/* Define this if you have some version of gethostbyname_r() */
-#undef HAVE_GETHOSTBYNAME_R
-
-/* Define this if you have the 3-arg version of gethostbyname_r() */
-#undef HAVE_GETHOSTBYNAME_R_3_ARG
-
-/* Define this if you have the 5-arg version of gethostbyname_r() */
-#undef HAVE_GETHOSTBYNAME_R_5_ARG
-
-/* Define this if you have the 6-arg version of gethostbyname_r() */
-#undef HAVE_GETHOSTBYNAME_R_6_ARG
-
-/* Defined to enable large file support when an off_t is bigger than a long
-   and long long is available and at least as big as an off_t. You may need
-   to add some flags for configuration and compilation to enable this mode.
-   E.g, for Solaris 2.7:
-   CFLAGS="-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64" OPT="-O2 $CFLAGS" \
- configure
-*/
-#undef HAVE_LARGEFILE_SUPPORT
-
-/* Define this if you have the type long long */
-#undef HAVE_LONG_LONG
-
-/* Define if your compiler supports function prototypes */
-#define HAVE_PROTOTYPES 1
-
-/* Define if you have GNU PTH threads */
-#undef HAVE_PTH
-
-/* Define if your compiler supports variable length function prototypes
-   (e.g. void fprintf(FILE *, char *, ...);) *and* <stdarg.h> */
-#define HAVE_STDARG_PROTOTYPES
-
-/* Define this if you have the type uintptr_t */
-#undef HAVE_UINTPTR_T
-
-/* Define if you have a useable wchar_t type defined in wchar.h; useable
-   means wchar_t must be 16-bit unsigned type. (see
-   Include/unicodeobject.h). */
-#define HAVE_USABLE_WCHAR_T 1
-
-/* Define if the compiler provides a wchar.h header file. */
-#define HAVE_WCHAR_H 1
-
-/* Define if malloc(0) returns a NULL pointer */
-#ifdef USE_MSL_MALLOC
-#define MALLOC_ZERO_RETURNS_NULL
-#else
-#undef MALLOC_ZERO_RETURNS_NULL
-#endif
-
-/* Define if you have POSIX threads */
-#ifdef USE_GUSI2
-#define _POSIX_THREADS
-#endif
-
-/* Define if you want to build an interpreter with many run-time checks  */
-#undef Py_DEBUG
-
-/* Define to force use of thread-safe errno, h_errno, and other functions */
-#undef _REENTRANT
-
-/* Define if setpgrp() must be called as setpgrp(0, 0). */
-#undef SETPGRP_HAVE_ARG
-
-/* Define to empty if the keyword does not work.  */
-#undef signed
-
-/* Define if i>>j for signed int i does not extend the sign bit
-   when i < 0
-*/
-#define SIGNED_RIGHT_SHIFT_ZERO_FILLS
-
-/* The number of bytes in an off_t. */
-#define SIZEOF_OFF_T 4
-
-/* The number of bytes in a time_t. */
-#define SIZEOF_TIME_T 4
-
-/* The number of bytes in a pthread_t. */
-#ifdef USE_GUSI2
-#define SIZEOF_PTHREAD_T 4
-#endif
-
-/* Define to `int' if <sys/types.h> doesn't define.  */
-#undef socklen_t
-
-/* Define if  you can safely include both <sys/select.h> and <sys/time.h>
-   (which you can't on SCO ODT 3.0). */
-#undef SYS_SELECT_WITH_SYS_TIME
-
-/* Define if a va_list is an array of some kind */
-#undef VA_LIST_IS_ARRAY
-
-/* Define to empty if the keyword does not work.  */
-#undef volatile
-
-/* Define if you want SIGFPE handled (see Include/pyfpe.h). */
-#undef WANT_SIGFPE_HANDLER
-
-/* Define if you want wctype.h functions to be used instead of the
-   one supplied by Python itself. (see Include/unicodectype.h). */
-#undef WANT_WCTYPE_FUNCTIONS
-
-/* Define if you want to compile in cycle garbage collection */
-#undef WITH_CYCLE_GC
-
-/* Define if you want to emulate SGI (IRIX 4) dynamic linking.
-   This is rumoured to work on VAX (Ultrix), Sun3 (SunOS 3.4),
-   Sequent Symmetry (Dynix), and Atari ST.
-   This requires the "dl-dld" library,
-   ftp://ftp.cwi.nl/pub/dynload/dl-dld-1.1.tar.Z,
-   as well as the "GNU dld" library,
-   ftp://ftp.cwi.nl/pub/dynload/dld-3.2.3.tar.Z.
-   Don't bother on SunOS 4 or 5, they already have dynamic linking using
-   shared libraries */ 
-#undef WITH_DL_DLD
-
-/* Define if you want to use the new-style (Openstep, Rhapsody, MacOS)
-   dynamic linker (dyld) instead of the old-style (NextStep) dynamic
-   linker (rld). Dyld is necessary to support frameworks. */
-#undef WITH_DYLD
-
-/* Define if you want to use BSD db. */
-#undef WITH_LIBDB
-
-/* Define if you want to use ndbm. */
-#undef WITH_LIBNDBM
-
-/* Define if you want to produce an OpenStep/Rhapsody framework
-   (shared library plus accessory files). */
-#undef WITH_NEXT_FRAMEWORK
-
-/* Define if you want to use SGI (IRIX 4) dynamic linking.
-   This requires the "dl" library by Jack Jansen,
-   ftp://ftp.cwi.nl/pub/dynload/dl-1.6.tar.Z.
-   Don't bother on IRIX 5, it already has dynamic linking using SunOS
-   style shared libraries */ 
-#undef WITH_SGI_DL
-
-/* Define if you want to compile in rudimentary thread support */
-/* #undef WITH_THREAD */
-
-/* The number of bytes in a char.  */
-#define SIZEOF_CHAR 1
-
-/* The number of bytes in a double.  */
-#define SIZEOF_DOUBLE 8
-
-/* The number of bytes in a float.  */
-#define SIZEOF_FLOAT 4
-
-/* The number of bytes in a fpos_t.  */
-#define SIZEOF_FPOS_T 4
-
-/* The number of bytes in a int.  */
-#define SIZEOF_INT 4
-
-/* The number of bytes in a long.  */
-#define SIZEOF_LONG 4
-
-/* The number of bytes in a long long.  */
-#undef SIZEOF_LONG_LONG
-
-/* The number of bytes in a short.  */
-#define SIZEOF_SHORT 2
-
-/* The number of bytes in a uintptr_t.  */
-#define SIZEOF_UINTPTR_T 4
-
-/* The number of bytes in a void *.  */
-#define SIZEOF_VOID_P 4
-
-/* Define if you have the _getpty function.  */
-#undef HAVE__GETPTY
-
-/* Define if you have the alarm function.  */
-#undef HAVE_ALARM
-
-/* Define if you have the chown function.  */
-#undef HAVE_CHOWN
-
-/* Define if you have clock.  */
-#define HAVE_CLOCK
-
-/* Define if you have the confstr function.  */
-#undef HAVE_CONFSTR
-
-/* Define if you have the ctermid function.  */
-#undef HAVE_CTERMID
-
-/* Define if you have the ctermid_r function.  */
-#undef HAVE_CTERMID_R
-
-/* Define if you have the dlopen function.  */
-#undef HAVE_DLOPEN
-
-/* Define if you have the dup2 function.  */
-#undef HAVE_DUP2
-
-/* Define if you have the execv function.  */
-#undef HAVE_EXECV
-
-/* Define if you have the fdatasync function.  */
-#undef HAVE_FDATASYNC
-
-/* Define if you have the flock function.  */
-#undef HAVE_FLOCK
-
-/* Define if you have the fork function.  */
-#undef HAVE_FORK
-
-/* Define if you have the forkpty function.  */
-#undef HAVE_FORKPTY
-
-/* Define if you have the fpathconf function.  */
-#undef HAVE_FPATHCONF
-
-/* Define if you have the fseek64 function.  */
-#undef HAVE_FSEEK64
-
-/* Define if you have the fseeko function.  */
-#undef HAVE_FSEEKO
-
-/* Define if you have the fstatvfs function.  */
-#undef HAVE_FSTATVFS
-
-/* Define if you have the fsync function.  */
-#define HAVE_FSYNC
-
-/* Define if you have the ftell64 function.  */
-#undef HAVE_FTELL64
-
-/* Define if you have the ftello function.  */
-#undef HAVE_FTELLO
-
-/* Define if you have the ftime function.  */
-#undef HAVE_FTIME
-
-/* Define if you have the ftruncate function.  */
-#ifdef USE_GUSI
-#define HAVE_FTRUNCATE
-#endif
-
-/* Define if you have the getcwd function.  */
-#define HAVE_GETCWD
-
-/* Define if you have the getgroups function.  */
-#undef HAVE_GETGROUPS
-
-/* Define if you have the gethostbyname function.  */
-#ifdef USE_GUSI
-#define HAVE_GETHOSTBYNAME 1
-#endif
-
-/* Define if you have the getlogin function.  */
-#undef HAVE_GETLOGIN
-
-/* Define if you have the getpeername function.  */
-#ifdef USE_GUSI
-#define HAVE_GETPEERNAME
-#endif
-
-/* Define if you have getpgrp.  */
-#undef HAVE_GETPGRP
-
-/* Define if you have the getpid function.  */
-#undef HAVE_GETPID
-
-/* Define if you have the getpwent function.  */
-#undef HAVE_GETPWENT
-
-/* Define if you have the gettimeofday function.  */
-#ifdef USE_GUSI
-#define HAVE_GETTIMEOFDAY
-#endif
-
-/* Define if you have the getwd function.  */
-#undef HAVE_GETWD
-
-/* Define if you have the hypot function.  */
-#ifndef __MC68K__
-/* 68K hypot definition (and implementation) are unuseable
-** because they use 10-byte floats.
-*/
-#define HAVE_HYPOT
-#endif
-
-/* Define if you have the kill function.  */
-#undef HAVE_KILL
-
-/* Define if you have the link function.  */
-#undef HAVE_LINK
-
-/* Define if you have the lstat function.  */
-#undef HAVE_LSTAT
-
-/* Define if you have the memmove function.  */
-#define HAVE_MEMMOVE
-
-/* Define if you have the mkfifo function.  */
-#undef HAVE_MKFIFO
-
-/* Define if you have the mktime function.  */
-#define HAVE_MKTIME
-
-/* Define if you have the mremap function.  */
-#undef HAVE_MREMAP
-
-/* Define if you have the nice function.  */
-#undef HAVE_NICE
-
-/* Define if you have the openpty function.  */
-#undef HAVE_OPENPTY
-
-/* Define if you have the pathconf function.  */
-#undef HAVE_PATHCONF
-
-/* Define if you have the pause function.  */
-#undef HAVE_PAUSE
-
-/* Define if you have the plock function.  */
-#undef HAVE_PLOCK
-
-/* Define if you have the poll function.  */
-#undef HAVE_POLL
-
-/* Define if you have the pthread_init function.  */
-/* XXXX GUSI threads* */
-#undef HAVE_PTHREAD_INIT
-
-/* Define if you have the putenv function.  */
-#undef HAVE_PUTENV
-
-/* Define if you have the readlink function.  */
-#undef HAVE_READLINK
-
-/* Define if you have the select function.  */
-#ifdef USE_GUSI
-#define HAVE_SELECT
-#endif
-
-/* Define if you have the setegid function.  */
-#undef HAVE_SETEGID
-
-/* Define if you have the seteuid function.  */
-#undef HAVE_SETEUID
-
-/* Define if you have the setgid function.  */
-#undef HAVE_SETGID
-
-/* Define if you have the setlocale function.  */
-#undef HAVE_SETLOCALE
-
-/* Define if you have the setpgid function.  */
-#undef HAVE_SETPGID
-
-/* Define if you have the setpgrp function.  */
-#undef HAVE_SETPGRP
-
-/* Define if you have the setregid function.  */
-#undef HAVE_SETREGID
-
-/* Define if you have the setreuid function.  */
-#undef HAVE_SETREUID
-
-/* Define if you have the setsid function.  */
-#undef HAVE_SETSID
-
-/* Define if you have the setuid function.  */
-#undef HAVE_SETUID
-
-/* Define if you have the setvbuf function.  */
-#define HAVE_SETVBUF
-
-/* Define if you have the sigaction function.  */
-#undef HAVE_SIGACTION
-
-/* Define if you have the siginterrupt function.  */
-#undef HAVE_SIGINTERRUPT
-
-/* Define if you have the sigrelse function.  */
-#undef HAVE_SIGRELSE
-
-/* Define if you have the statvfs function.  */
-#undef HAVE_STATVFS
-
-/* Define if you have the strdup function.  */
-#undef HAVE_STRDUP
-
-/* Define if you have the strerror function.  */
-#define HAVE_STRERROR
-
-/* Define if you have the strftime function.  */
-#define HAVE_STRFTIME
-
-/* Define if you have the strptime function.  */
-#undef HAVE_STRPTIME
-
-/* Define if you have the symlink function.  */
-#undef HAVE_SYMLINK
-
-/* Define if you have the sysconf function.  */
-#undef HAVE_SYSCONF
-
-/* Define if you have the tcgetpgrp function.  */
-#undef HAVE_TCGETPGRP
-
-/* Define if you have the tcsetpgrp function.  */
-#undef HAVE_TCSETPGRP
-
-/* Define if you have the tempnam function.  */
-#undef HAVE_TEMPNAM
-
-/* Define if you have the timegm function.  */
-#undef HAVE_TIMEGM
-
-/* Define if you have the times function.  */
-#undef HAVE_TIMES
-
-/* Define if you have the tmpfile function.  */
-#define HAVE_TMPFILE
-
-/* Define if you have the tmpnam function.  */
-#define HAVE_TMPNAM
-
-/* Define if you have the tmpnam_r function.  */
-#undef HAVE_TMPNAM_R
-
-/* Define if you have the truncate function.  */
-#define HAVE_TRUNCATE
-
-/* Define if you have the uname function.  */
-#undef HAVE_UNAME
-
-/* Define if you have the waitpid function.  */
-#undef HAVE_WAITPID
-
-/* Define if you have the <db.h> header file.  */
-#undef HAVE_DB_H
-
-/* Define if you have the <db1/ndbm.h> header file.  */
-#undef HAVE_DB1_NDBM_H
-
-/* Define if you have the <db_185.h> header file.  */
-#undef HAVE_DB_185_H
-
-/* Define if you have the <dirent.h> header file.  */
-#ifdef USE_GUSI
-#define HAVE_DIRENT_H
-#endif
-
-/* Define if you have the <dlfcn.h> header file.  */
-#undef HAVE_DLFCN_H
-
-/* Define if you have the <fcntl.h> header file.  */
-#define HAVE_FCNTL_H
-
-/* Define if you have the <gdbm/ndbm.h> header file.  */
-#undef HAVE_GDBM_NDBM_H
-
-/* Define if you have the <libutil.h> header file.  */
-#undef HAVE_LIBUTIL_H
-
-/* Define if you have the <limits.h> header file.  */
-#define HAVE_LIMITS_H
-
-/* Define if you have the <locale.h> header file.  */
-#define HAVE_LOCALE_H
-
-/* Define if you have the <ncurses.h> header file.  */
-#undef HAVE_NCURSES_H
-
-/* Define if you have the <ndbm.h> header file.  */
-#undef HAVE_NDBM_H
-
-/* Define if you have the <ndir.h> header file.  */
-#undef HAVE_NDIR_H
-
-/* Define if you have the <poll.h> header file.  */
-#undef HAVE_POLL_H
-
-/* Define if you have the <pthread.h> header file.  */
-#ifdef USE_GUSI2
-#define HAVE_PTHREAD_H
-#endif
-
-/* Define if you have the <pty.h> header file.  */
-#undef HAVE_PTY_H
-
-/* Define if you have the <signal.h> header file.  */
-#define HAVE_SIGNAL_H
-
-/* Define if you have the <stdarg.h> header file.  */
-#define HAVE_STDARG_H
-
-/* Define if you have the <stddef.h> header file.  */
-#define HAVE_STDDEF_H
-
-/* Define if you have the <stdlib.h> header file.  */
-#define HAVE_STDLIB_H
-
-/* Define if you have the <sys/audioio.h> header file.  */
-#undef HAVE_SYS_AUDIOIO_H
-
-/* Define if you have the <sys/dir.h> header file.  */
-#undef HAVE_SYS_DIR_H
-
-/* Define if you have the <sys/file.h> header file.  */
-#undef HAVE_SYS_FILE_H
-
-/* Define if you have the <sys/lock.h> header file.  */
-#undef HAVE_SYS_LOCK_H
-
-/* Define if you have the <sys/ndir.h> header file.  */
-#undef HAVE_SYS_NDIR_H
-
-/* Define if you have the <sys/param.h> header file.  */
-#undef HAVE_SYS_PARAM_H
-
-/* Define if you have the <sys/select.h> header file.  */
-#undef HAVE_SYS_SELECT_H
-
-/* Define if you have the <sys/socket.h> header file.  */
-#ifdef USE_GUSI
-#define HAVE_SYS_SOCKET_H
-#endif
-
-/* Define if you have the <sys/time.h> header file.  */
-#ifdef USE_GUSI
-#define HAVE_SYS_TIME_H
-#endif
-
-/* Define if you have the <sys/times.h> header file.  */
-#undef HAVE_SYS_TIMES_H
-
-/* Define if you have the <sys/un.h> header file.  */
-#undef HAVE_SYS_UN_H
-
-/* Define if you have the <sys/utsname.h> header file.  */
-#undef HAVE_SYS_UTSNAME_H
-
-/* Define if you have the <sys/wait.h> header file.  */
-#undef HAVE_SYS_WAIT_H
-
-/* Define if you have the <termios.h> header file.  */
-#undef HAVE_TERMIOS_H
-
-/* Define if you have the <thread.h> header file.  */
-#undef HAVE_THREAD_H
-
-/* Define if you have the <unistd.h> header file.  */
-#define HAVE_UNISTD_H
-
-/* Define if you have the <utime.h> header file.  */
-#define HAVE_UTIME_H
-
-/* Define if you have the dl library (-ldl).  */
-#undef HAVE_LIBDL
-
-/* Define if you have the dld library (-ldld).  */
-#undef HAVE_LIBDLD
-
-/* Define if you have the ieee library (-lieee).  */
-#undef HAVE_LIBIEEE
-#ifdef __CYGWIN__
-#ifdef USE_DL_IMPORT
-#define DL_IMPORT(RTYPE) __declspec(dllimport) RTYPE
-#define DL_EXPORT(RTYPE) __declspec(dllexport) RTYPE
-#else
-#define DL_IMPORT(RTYPE) __declspec(dllexport) RTYPE
-#define DL_EXPORT(RTYPE) __declspec(dllexport) RTYPE
-#endif
-#endif
diff --git a/Mac/Include/getapplbycreator.h b/Mac/Include/getapplbycreator.h
deleted file mode 100644 (file)
index 8ccaecd..0000000
+++ /dev/null
@@ -1,28 +0,0 @@
-/***********************************************************
-Copyright 1991-1997 by Stichting Mathematisch Centrum, Amsterdam,
-The Netherlands.
-
-                        All Rights Reserved
-
-Permission to use, copy, modify, and distribute this software and its 
-documentation for any purpose and without fee is hereby granted, 
-provided that the above copyright notice appear in all copies and that
-both that copyright notice and this permission notice appear in 
-supporting documentation, and that the names of Stichting Mathematisch
-Centrum or CWI not be used in advertising or publicity pertaining to
-distribution of the software without specific, written prior permission.
-
-STICHTING MATHEMATISCH CENTRUM DISCLAIMS ALL WARRANTIES WITH REGARD TO
-THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
-FITNESS, IN NO EVENT SHALL STICHTING MATHEMATISCH CENTRUM BE LIABLE
-FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
-WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
-ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
-OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
-
-******************************************************************/
-
-#include <Types.h>
-#include <Files.h>
-
-extern OSErr FindApplicationFromCreator(OSType, FSSpecPtr);
diff --git a/Mac/Include/macbuildno.h b/Mac/Include/macbuildno.h
deleted file mode 100644 (file)
index 392ec97..0000000
+++ /dev/null
@@ -1 +0,0 @@
-#define BUILD 90
diff --git a/Mac/Include/macglue.h b/Mac/Include/macglue.h
deleted file mode 100644 (file)
index fa61709..0000000
+++ /dev/null
@@ -1,147 +0,0 @@
-/***********************************************************
-Copyright 1991-1997 by Stichting Mathematisch Centrum, Amsterdam,
-The Netherlands.
-
-                        All Rights Reserved
-
-Permission to use, copy, modify, and distribute this software and its 
-documentation for any purpose and without fee is hereby granted, 
-provided that the above copyright notice appear in all copies and that
-both that copyright notice and this permission notice appear in 
-supporting documentation, and that the names of Stichting Mathematisch
-Centrum or CWI not be used in advertising or publicity pertaining to
-distribution of the software without specific, written prior permission.
-
-STICHTING MATHEMATISCH CENTRUM DISCLAIMS ALL WARRANTIES WITH REGARD TO
-THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
-FITNESS, IN NO EVENT SHALL STICHTING MATHEMATISCH CENTRUM BE LIABLE
-FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
-WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
-ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
-OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
-
-******************************************************************/
-
-#include <Types.h>
-#include <Files.h>
-#include <Events.h>
-#include <StandardFile.h>
-
-#ifdef __cplusplus
-       extern "C" {
-#endif
-
-/* Scheduler parameters */
-typedef struct {
-       int             check_interrupt;        /* if true check for command-dot */
-       int             process_events;         /* if nonzero enable evt processing, this mask */
-       int             besocial;               /* Be social, give up CPU now and again */
-       double          check_interval;         /* how often to check */
-       double          bg_yield;               /* yield at most so long when in background */
-} PyMacSchedParams;
-
-char *PyMac_getscript(void);   /* Get the default encoding for our 8bit character set */
-#ifdef USE_GUSI1
-void PyMac_FixGUSIcd(void);            /* Workaround for GUSI chdir() call */
-extern void PyMac_SetGUSISpin(void);           /* Install our private GUSI spin routine */
-#endif
-
-char *PyMac_StrError(int);                     /* strerror with mac errors */
-unsigned char *Pstring(char *str);             /* Convert c-string to pascal-string in static buffer */
-
-#ifdef USE_GUSI
-extern int PyMac_ConsoleIsDead;                        /* True when exiting */
-extern void PyMac_StopGUSISpin(void);          /* Stop eventprocessing during exit() */
-#endif
-
-extern short PyMac_AppRefNum;                  /* RefNum of application rsrcfork (from macmain.c) */
-extern FSSpec PyMac_ApplicationFSSpec;         /* Application location (from macargv.c) */
-extern char PyMac_ApplicationPath[];           /* Application location (from macargv.c) */
-extern OSErr PyMac_init_application_location(void);    /* Init the above */
-extern OSErr PyMac_GetFullPath(FSSpec *, char *); /* convert fsspec->path (macargv.c) */
-extern int PyMac_GetArgv(char ***, int);       /* Get argc, argv (from macargv.c) */
-extern int PyMac_AppearanceCompliant;  /* True if in appearance support mode */
-
-extern PyObject *PyMac_OSErrException;         /* Exception for OSErr */
-PyObject *PyMac_GetOSErrException(void);       /* Initialize & return it */
-
-void PyMac_GetSchedParams(PyMacSchedParams *); /* Get schedulers params */
-void PyMac_SetSchedParams(PyMacSchedParams *); /* Set schedulers params */
-PyObject *PyErr_Mac(PyObject *, int);          /* Exception with a mac error */
-PyObject *PyMac_Error(OSErr);                  /* Uses PyMac_GetOSErrException */
-int PyMac_DoYield(int, int);   /* Yield cpu. First arg is maxtime, second ok to call python */
-int PyMac_HandleEvent(EventRecord *);  /* Handle one event, possibly in Python */
-void PyMac_HandleEventIntern(EventRecord *); /* Handle one event internal only */
-int PyMac_SetEventHandler(PyObject *); /* set python-coded event handler */
-
-void PyMac_InitMenuBar(void);                  /* Setup menu bar as we want it */
-void PyMac_RestoreMenuBar(void);               /* Restore menu bar for ease of exiting */
-
-int PyMac_FindResourceModule(PyStringObject *, char *, char *); /* Test for 'PYC ' resource in a file */
-PyObject * PyMac_LoadResourceModule(char *, char *); /* Load 'PYC ' resource from file */
-int PyMac_FindCodeResourceModule(PyStringObject *, char *, char *); /* Test for 'PYD ' resource in a file */
-PyObject * PyMac_LoadCodeResourceModule(char *, char *); /* Load 'PYD ' resource from file */
-struct filedescr *PyMac_FindModuleExtension(char *, size_t *, char *); /* Look for module in single folder */
-
-#if !TARGET_API_MAC_CARBON
-int PyMac_GetDirectory(FSSpec *dirfss, char *prompt);          /* Ask user for a directory */
-void PyMac_PromptGetFile(short numTypes, ConstSFTypeListPtr typeList, 
-       StandardFileReply *reply, char *prompt);        /* Ask user for file, with prompt */
-#endif /* TARGET_API_MAC_CARBON */
-
-int PyMac_GetOSType(PyObject *, OSType *);     /* argument parser for OSType */
-PyObject *PyMac_BuildOSType(OSType);           /* Convert OSType to PyObject */
-
-PyObject *PyMac_BuildNumVersion(NumVersion);   /* Convert NumVersion to PyObject */
-
-int PyMac_GetStr255(PyObject *, Str255);       /* argument parser for Str255 */
-PyObject *PyMac_BuildStr255(Str255);           /* Convert Str255 to PyObject */
-PyObject *PyMac_BuildOptStr255(Str255);                /* Convert Str255 to PyObject, NULL to None */
-
-int PyMac_GetFSSpec(PyObject *, FSSpec *);     /* argument parser for FSSpec */
-PyObject *PyMac_BuildFSSpec(FSSpec *);         /* Convert FSSpec to PyObject */
-
-int PyMac_GetRect(PyObject *, Rect *);         /* argument parser for Rect */
-PyObject *PyMac_BuildRect(Rect *);             /* Convert Rect to PyObject */
-
-int PyMac_GetPoint(PyObject *, Point *);       /* argument parser for Point */
-PyObject *PyMac_BuildPoint(Point);             /* Convert Point to PyObject */
-
-int PyMac_GetEventRecord(PyObject *, EventRecord *); /* argument parser for EventRecord */
-PyObject *PyMac_BuildEventRecord(EventRecord *); /* Convert EventRecord to PyObject */
-
-int PyMac_GetFixed(PyObject *, Fixed *);       /* argument parser for Fixed */
-PyObject *PyMac_BuildFixed(Fixed);                     /* Convert Fixed to PyObject */
-int PyMac_Getwide(PyObject *, wide *); /* argument parser for wide */
-PyObject *PyMac_Buildwide(wide *);                     /* Convert wide to PyObject */
-void PyMac_InitApplet(void);                   /* Initialize and run an Applet */
-void PyMac_Initialize(void);                   /* Initialize function for embedding Python */
-
-#ifdef USE_GUSI2
-short PyMac_OpenPrefFile(void);                        /* From macgetpath.c, open and return preference file */
-#endif
-
-/* From macfiletype.c: */
-
-long PyMac_getfiletype(char *);                        /* Get file type */
-int PyMac_setfiletype(char *, long, long);             /* Set file creator and type */
-
-/* from macmain.c: */
-void PyMac_Exit(int);
-void PyMac_InitApplication(void);
-void PyMac_OutputSeen(void);
-void PyMac_OutputNotSeen(void);
-int PyMac_GetDelayConsoleFlag(void);
-#ifdef USE_MAC_APPLET_SUPPORT
-void PyMac_InitApplet(void);
-#endif
-
-/* from macgetargv: */
-OSErr PyMac_init_process_location(void);
-#ifndef HAVE_STRDUP
-char * strdup(const char *str);
-#endif
-
-#ifdef __cplusplus
-       }
-#endif
diff --git a/Mac/Include/pymactoolbox.h b/Mac/Include/pymactoolbox.h
deleted file mode 100644 (file)
index 827a146..0000000
+++ /dev/null
@@ -1,98 +0,0 @@
-/*
-** pymactoolbox.h - global routines exported by the toolbox modules
-*/
-
-#ifdef __cplusplus
-       extern "C" {
-#endif
-
-#include <Memory.h>
-#include <Dialogs.h>
-#include <Menus.h>
-#include <Controls.h>
-#include <Components.h>
-#include <Lists.h>
-#include <Movies.h>
-#include <Errors.h>
-
-/* AE exports */
-extern PyObject *AEDesc_New(AppleEvent *); /* XXXX Why passed by address?? */
-extern int AEDesc_Convert(PyObject *, AppleEvent *);
-
-/* Cm exports */
-extern PyObject *CmpObj_New(Component);
-extern int CmpObj_Convert(PyObject *, Component *);
-extern PyObject *CmpInstObj_New(ComponentInstance);
-extern int CmpInstObj_Convert(PyObject *, ComponentInstance *);
-
-/* Ctl exports */
-extern PyObject *CtlObj_New(ControlHandle);
-extern int CtlObj_Convert(PyObject *, ControlHandle *);
-
-/* Dlg exports */
-extern PyObject *DlgObj_New(DialogPtr);
-extern int DlgObj_Convert(PyObject *, DialogPtr *);
-extern WindowPtr DlgObj_ConvertToWindow(PyObject *);
-extern PyObject *DlgObj_WhichDialog(DialogPtr);
-extern PyTypeObject Dialog_Type;
-#define DlgObj_Check(x) ((x)->ob_type == &Dialog_Type)
-
-/* Drag exports */
-extern PyObject *DragObj_New(DragReference);
-extern int DragObj_Convert(PyObject *, DragReference *);
-
-/* List exports */
-extern PyObject *ListObj_New(ListHandle);
-extern int ListObj_Convert(PyObject *, ListHandle *);
-
-/* Menu exports */
-extern PyObject *MenuObj_New(MenuHandle);
-extern int MenuObj_Convert(PyObject *, MenuHandle *);
-
-/* Qd exports */
-extern PyObject *GrafObj_New(GrafPtr);
-extern int GrafObj_Convert(PyObject *, GrafPtr *);
-extern PyObject *BMObj_New(BitMapPtr);
-extern int BMObj_Convert(PyObject *, BitMapPtr *);
-extern PyObject *QdRGB_New(RGBColor *);
-extern int QdRGB_Convert(PyObject *, RGBColor *);
-
-/* Qdoffs exports */
-extern PyObject *GWorldObj_New(GWorldPtr);
-extern int GWorldObj_Convert(PyObject *, GWorldPtr *);
-
-/* Qt exports */
-extern PyObject *TrackObj_New(Track);
-extern int TrackObj_Convert(PyObject *, Track *);
-extern PyObject *MovieObj_New(Movie);
-extern int MovieObj_Convert(PyObject *, Movie *);
-extern PyObject *MovieCtlObj_New(MovieController);
-extern int MovieCtlObj_Convert(PyObject *, TimeBase *);
-extern PyObject *TimeBaseObj_New(TimeBase);
-extern int TimeBaseObj_Convert(PyObject *, TimeBase *);
-extern PyObject *UserDataObj_New(UserData);
-extern int UserDataObj_Convert(PyObject *, UserData *);
-extern PyObject *MediaObj_New(Media);
-extern int MediaObj_Convert(PyObject *, Media *);
-
-/* Res exports */
-extern PyObject *ResObj_New(Handle);
-extern int ResObj_Convert(PyObject *, Handle *);
-extern PyObject *OptResObj_New(Handle);
-extern int OptResObj_Convert(PyObject *, Handle *);
-
-/* TE exports */
-extern PyObject *TEObj_New(TEHandle);
-extern int TEObj_Convert(PyObject *, TEHandle *);
-
-/* Win exports */
-extern PyObject *WinObj_New(WindowPtr);
-extern int WinObj_Convert(PyObject *, WindowPtr *);
-extern PyObject *WinObj_WhichWindow(WindowPtr);
-extern PyTypeObject Window_Type;
-#define WinObj_Check(x) ((x)->ob_type == &Window_Type)
-
-
-#ifdef __cplusplus
-       }
-#endif
diff --git a/Mac/Lib/EasyDialogs.py b/Mac/Lib/EasyDialogs.py
deleted file mode 100644 (file)
index a486204..0000000
+++ /dev/null
@@ -1,564 +0,0 @@
-"""Easy to use dialogs.
-
-Message(msg) -- display a message and an OK button.
-AskString(prompt, default) -- ask for a string, display OK and Cancel buttons.
-AskPassword(prompt, default) -- like AskString(), but shows text as bullets.
-AskYesNoCancel(question, default) -- display a question and Yes, No and Cancel buttons.
-bar = Progress(label, maxvalue) -- Display a progress bar
-bar.set(value) -- Set value
-bar.inc( *amount ) -- increment value by amount (default=1)
-bar.label( *newlabel ) -- get or set text label. 
-
-More documentation in each function.
-This module uses DLOG resources 260 and on.
-Based upon STDWIN dialogs with the same names and functions.
-"""
-
-from Dlg import GetNewDialog, SetDialogItemText, GetDialogItemText, ModalDialog
-import Qd
-import QuickDraw
-import Dialogs
-import Windows
-import Dlg,Win,Evt,Events # sdm7g
-import Ctl
-import Controls
-import Menu
-import MacOS
-import string
-from ControlAccessor import *  # Also import Controls constants
-import macfs
-
-def cr2lf(text):
-       if '\r' in text:
-               text = string.join(string.split(text, '\r'), '\n')
-       return text
-
-def lf2cr(text):
-       if '\n' in text:
-               text = string.join(string.split(text, '\n'), '\r')
-       if len(text) > 253:
-               text = text[:253] + '\311'
-       return text
-
-def Message(msg, id=260, ok=None):
-       """Display a MESSAGE string.
-       
-       Return when the user clicks the OK button or presses Return.
-       
-       The MESSAGE string can be at most 255 characters long.
-       """
-       
-       d = GetNewDialog(id, -1)
-       if not d:
-               print "Can't get DLOG resource with id =", id
-               return
-       h = d.GetDialogItemAsControl(2)
-       SetDialogItemText(h, lf2cr(msg))
-       if ok != None:
-               h = d.GetDialogItemAsControl(1)
-               h.SetControlTitle(ok)
-       d.SetDialogDefaultItem(1)
-       d.AutoSizeDialog()
-       d.GetDialogWindow().ShowWindow()
-       while 1:
-               n = ModalDialog(None)
-               if n == 1:
-                       return
-
-
-def AskString(prompt, default = "", id=261, ok=None, cancel=None):
-       """Display a PROMPT string and a text entry field with a DEFAULT string.
-       
-       Return the contents of the text entry field when the user clicks the
-       OK button or presses Return.
-       Return None when the user clicks the Cancel button.
-       
-       If omitted, DEFAULT is empty.
-       
-       The PROMPT and DEFAULT strings, as well as the return value,
-       can be at most 255 characters long.
-       """
-       
-       d = GetNewDialog(id, -1)
-       if not d:
-               print "Can't get DLOG resource with id =", id
-               return
-       h = d.GetDialogItemAsControl(3)
-       SetDialogItemText(h, lf2cr(prompt))
-       h = d.GetDialogItemAsControl(4)
-       SetDialogItemText(h, lf2cr(default))
-       d.SelectDialogItemText(4, 0, 999)
-#      d.SetDialogItem(4, 0, 255)
-       if ok != None:
-               h = d.GetDialogItemAsControl(1)
-               h.SetControlTitle(ok)
-       if cancel != None:
-               h = d.GetDialogItemAsControl(2)
-               h.SetControlTitle(cancel)
-       d.SetDialogDefaultItem(1)
-       d.SetDialogCancelItem(2)
-       d.AutoSizeDialog()
-       d.GetDialogWindow().ShowWindow()
-       while 1:
-               n = ModalDialog(None)
-               if n == 1:
-                       h = d.GetDialogItemAsControl(4)
-                       return cr2lf(GetDialogItemText(h))
-               if n == 2: return None
-
-def AskPassword(prompt,         default='', id=264, ok=None, cancel=None):     
-       """Display a PROMPT string and a text entry field with a DEFAULT string.
-       The string is displayed as bullets only.
-       
-       Return the contents of the text entry field when the user clicks the
-       OK button or presses Return.
-       Return None when the user clicks the Cancel button.
-       
-       If omitted, DEFAULT is empty.
-       
-       The PROMPT and DEFAULT strings, as well as the return value,
-       can be at most 255 characters long.
-       """
-       d = GetNewDialog(id, -1)
-       if not d:
-               print "Can't get DLOG resource with id =", id
-               return
-       h = d.GetDialogItemAsControl(3)
-       SetDialogItemText(h, lf2cr(prompt))     
-       pwd = d.GetDialogItemAsControl(4)
-       bullets = '\245'*len(default)
-##     SetControlData(pwd, kControlEditTextPart, kControlEditTextTextTag, bullets)
-       SetControlData(pwd, kControlEditTextPart, kControlEditTextPasswordTag, default)
-       d.SelectDialogItemText(4, 0, 999)
-       Ctl.SetKeyboardFocus(d.GetDialogWindow(), pwd, kControlEditTextPart)
-       if ok != None:
-               h = d.GetDialogItemAsControl(1)
-               h.SetControlTitle(ok)
-       if cancel != None:
-               h = d.GetDialogItemAsControl(2)
-               h.SetControlTitle(cancel)
-       d.SetDialogDefaultItem(Dialogs.ok)
-       d.SetDialogCancelItem(Dialogs.cancel)
-       d.AutoSizeDialog()
-       d.GetDialogWindow().ShowWindow()
-       while 1:
-               n = ModalDialog(None)
-               if n == 1:
-                       h = d.GetDialogItemAsControl(4)
-                       return cr2lf(GetControlData(pwd, kControlEditTextPart, kControlEditTextPasswordTag))
-               if n == 2: return None
-
-def AskYesNoCancel(question, default = 0, yes=None, no=None, cancel=None, id=262):
-       """Display a QUESTION string which can be answered with Yes or No.
-       
-       Return 1 when the user clicks the Yes button.
-       Return 0 when the user clicks the No button.
-       Return -1 when the user clicks the Cancel button.
-       
-       When the user presses Return, the DEFAULT value is returned.
-       If omitted, this is 0 (No).
-       
-       The QUESTION strign ca be at most 255 characters.
-       """
-       
-       d = GetNewDialog(id, -1)
-       if not d:
-               print "Can't get DLOG resource with id =", id
-               return
-       # Button assignments:
-       # 1 = default (invisible)
-       # 2 = Yes
-       # 3 = No
-       # 4 = Cancel
-       # The question string is item 5
-       h = d.GetDialogItemAsControl(5)
-       SetDialogItemText(h, lf2cr(question))
-       if yes != None:
-               if yes == '':
-                       d.HideDialogItem(2)
-               else:
-                       h = d.GetDialogItemAsControl(2)
-                       h.SetControlTitle(yes)
-       if no != None:
-               if no == '':
-                       d.HideDialogItem(3)
-               else:
-                       h = d.GetDialogItemAsControl(3)
-                       h.SetControlTitle(no)
-       if cancel != None:
-               if cancel == '':
-                       d.HideDialogItem(4)
-               else:
-                       h = d.GetDialogItemAsControl(4)
-                       h.SetControlTitle(cancel)
-       d.SetDialogCancelItem(4)
-       if default == 1:
-               d.SetDialogDefaultItem(2)
-       elif default == 0:
-               d.SetDialogDefaultItem(3)
-       elif default == -1:
-               d.SetDialogDefaultItem(4)
-       d.AutoSizeDialog()
-       d.GetDialogWindow().ShowWindow()
-       while 1:
-               n = ModalDialog(None)
-               if n == 1: return default
-               if n == 2: return 1
-               if n == 3: return 0
-               if n == 4: return -1
-
-
-               
-
-screenbounds = Qd.qd.screenBits.bounds
-screenbounds = screenbounds[0]+4, screenbounds[1]+4, \
-       screenbounds[2]-4, screenbounds[3]-4
-
-                               
-class ProgressBar:
-       def __init__(self, title="Working...", maxval=100, label="", id=263):
-               self.w = None
-               self.d = None
-               self.maxval = maxval
-               self.curval = -1
-               self.d = GetNewDialog(id, -1)
-               self.w = self.d.GetDialogWindow()
-               self.label(label)
-               self._update(0)
-               self.d.AutoSizeDialog()
-               self.title(title)
-               self.w.ShowWindow()
-               self.d.DrawDialog()
-
-       def __del__( self ):
-               if self.w:
-                       self.w.BringToFront()
-                       self.w.HideWindow()
-               del self.w
-               del self.d
-               
-       def title(self, newstr=""):
-               """title(text) - Set title of progress window"""
-               self.w.BringToFront()
-               self.w.SetWTitle(newstr)
-               
-       def label( self, *newstr ):
-               """label(text) - Set text in progress box"""
-               self.w.BringToFront()
-               if newstr:
-                       self._label = lf2cr(newstr[0])
-               text_h = self.d.GetDialogItemAsControl(2)
-               SetDialogItemText(text_h, self._label)          
-                               
-       def _update(self, value):
-               maxval = self.maxval
-               if maxval == 0:
-                       # XXXX Quick fix. Should probably display an unknown duration
-                       value = 0
-                       maxval = 1
-               if maxval > 32767:
-                       value = int(value/(maxval/32767.0))
-                       maxval = 32767
-               progbar = self.d.GetDialogItemAsControl(3)
-               progbar.SetControlMaximum(maxval)
-               progbar.SetControlValue(value)  
-               # Test for cancel button
-               
-               ready, ev = Evt.WaitNextEvent( Events.mDownMask, 1  )
-               if ready : 
-                       what,msg,when,where,mod = ev
-                       part = Win.FindWindow(where)[0]
-                       if Dlg.IsDialogEvent(ev):
-                               ds = Dlg.DialogSelect(ev)
-                               if ds[0] and ds[1] == self.d and ds[-1] == 1:
-                                       self.w.HideWindow()
-                                       self.w = None
-                                       self.d = None
-                                       raise KeyboardInterrupt, ev
-                       else:
-                               if part == 4:   # inDrag 
-                                       self.d.DragWindow(where, screenbounds)
-                               else:
-                                       MacOS.HandleEvent(ev) 
-                       
-                       
-       def set(self, value, max=None):
-               """set(value) - Set progress bar position"""
-               if max != None:
-                       self.maxval = max
-               if value < 0: value = 0
-               if value > self.maxval: value = self.maxval
-               self.curval = value
-               self._update(value)
-
-       def inc(self, n=1):
-               """inc(amt) - Increment progress bar position"""
-               self.set(self.curval + n)
-
-ARGV_ID=265
-ARGV_ITEM_OK=1
-ARGV_ITEM_CANCEL=2
-ARGV_OPTION_GROUP=3
-ARGV_OPTION_EXPLAIN=4
-ARGV_OPTION_VALUE=5
-ARGV_OPTION_ADD=6
-ARGV_COMMAND_GROUP=7
-ARGV_COMMAND_EXPLAIN=8
-ARGV_COMMAND_ADD=9
-ARGV_ADD_OLDFILE=10
-ARGV_ADD_NEWFILE=11
-ARGV_ADD_FOLDER=12
-ARGV_CMDLINE_GROUP=13
-ARGV_CMDLINE_DATA=14
-
-##def _myModalDialog(d):
-##     while 1:
-##             ready, ev = Evt.WaitNextEvent(0xffff, -1)
-##             print 'DBG: WNE', ready, ev
-##             if ready : 
-##                     what,msg,when,where,mod = ev
-##                     part, window = Win.FindWindow(where)
-##                     if Dlg.IsDialogEvent(ev):
-##                             didit, dlgdone, itemdone = Dlg.DialogSelect(ev)
-##                             print 'DBG: DialogSelect', didit, dlgdone, itemdone, d
-##                             if didit and dlgdone == d:
-##                                     return itemdone
-##                     elif window == d.GetDialogWindow():
-##                             d.GetDialogWindow().SelectWindow()
-##                             if part == 4:   # inDrag 
-##                                             d.DragWindow(where, screenbounds)
-##                             else:
-##                                     MacOS.HandleEvent(ev) 
-##                     else:
-##                             MacOS.HandleEvent(ev) 
-##
-def _setmenu(control, items):
-               mhandle = control.GetControlData_Handle(Controls.kControlMenuPart,
-                               Controls.kControlPopupButtonMenuHandleTag)
-               menu = Menu.as_Menu(mhandle)
-               for item in items:
-                       if type(item) == type(()):
-                               label = item[0]
-                       else:
-                               label = item
-                       if label[-1] == '=' or label[-1] == ':':
-                               label = label[:-1]
-                       menu.AppendMenu(label)
-##             mhandle, mid = menu.getpopupinfo()
-##             control.SetControlData_Handle(Controls.kControlMenuPart,
-##                             Controls.kControlPopupButtonMenuHandleTag, mhandle)
-               control.SetControlMinimum(1)
-               control.SetControlMaximum(len(items)+1)
-               
-def _selectoption(d, optionlist, idx):
-       if idx < 0 or idx >= len(optionlist):
-               MacOS.SysBeep()
-               return
-       option = optionlist[idx]
-       if type(option) == type(()) and \
-                       len(option) > 1:
-               help = option[-1]
-       else:
-               help = ''
-       h = d.GetDialogItemAsControl(ARGV_OPTION_EXPLAIN)
-       Dlg.SetDialogItemText(h, help)
-       hasvalue = 0
-       if type(option) == type(()):
-               label = option[0]
-       else:
-               label = option
-       if label[-1] == '=' or label[-1] == ':':
-               hasvalue = 1
-       h = d.GetDialogItemAsControl(ARGV_OPTION_VALUE)
-       Dlg.SetDialogItemText(h, '')
-       if hasvalue:
-               d.ShowDialogItem(ARGV_OPTION_VALUE)
-               d.SelectDialogItemText(ARGV_OPTION_VALUE, 0, 0)
-       else:
-               d.HideDialogItem(ARGV_OPTION_VALUE)
-
-
-def GetArgv(optionlist=None, commandlist=None, addoldfile=1, addnewfile=1, addfolder=1, id=ARGV_ID):
-       d = GetNewDialog(id, -1)
-       if not d:
-               print "Can't get DLOG resource with id =", id
-               return
-#      h = d.GetDialogItemAsControl(3)
-#      SetDialogItemText(h, lf2cr(prompt))
-#      h = d.GetDialogItemAsControl(4)
-#      SetDialogItemText(h, lf2cr(default))
-#      d.SelectDialogItemText(4, 0, 999)
-#      d.SetDialogItem(4, 0, 255)
-       if optionlist:
-               _setmenu(d.GetDialogItemAsControl(ARGV_OPTION_GROUP), optionlist)
-               _selectoption(d, optionlist, 0)
-       else:
-               d.GetDialogItemAsControl(ARGV_OPTION_GROUP).DeactivateControl()
-       if commandlist:
-               _setmenu(d.GetDialogItemAsControl(ARGV_COMMAND_GROUP), commandlist)
-               if type(commandlist[0]) == type(()) and len(commandlist[0]) > 1:
-                       help = commandlist[0][-1]
-                       h = d.GetDialogItemAsControl(ARGV_COMMAND_EXPLAIN)
-                       Dlg.SetDialogItemText(h, help)
-       else:
-               d.GetDialogItemAsControl(ARGV_COMMAND_GROUP).DeactivateControl()
-       if not addoldfile:
-               d.GetDialogItemAsControl(ARGV_ADD_OLDFILE).DeactivateControl()
-       if not addnewfile:
-               d.GetDialogItemAsControl(ARGV_ADD_NEWFILE).DeactivateControl()
-       if not addfolder:
-               d.GetDialogItemAsControl(ARGV_ADD_FOLDER).DeactivateControl()
-       d.SetDialogDefaultItem(ARGV_ITEM_OK)
-       d.SetDialogCancelItem(ARGV_ITEM_CANCEL)
-       d.GetDialogWindow().ShowWindow()
-       d.DrawDialog()
-       appsw = MacOS.SchedParams(1, 0)
-       try:
-               while 1:
-                       stringstoadd = []
-                       n = ModalDialog(None)
-                       if n == ARGV_ITEM_OK:
-                               break
-                       elif n == ARGV_ITEM_CANCEL:
-                               raise SystemExit
-                       elif n == ARGV_OPTION_GROUP:
-                               idx = d.GetDialogItemAsControl(ARGV_OPTION_GROUP).GetControlValue()-1
-                               _selectoption(d, optionlist, idx)
-                       elif n == ARGV_OPTION_VALUE:
-                               pass
-                       elif n == ARGV_OPTION_ADD:
-                               idx = d.GetDialogItemAsControl(ARGV_OPTION_GROUP).GetControlValue()-1
-                               if 0 <= idx < len(optionlist):
-                                       option = optionlist[idx]
-                                       if type(option) == type(()):
-                                               option = option[0]
-                                       if option[-1] == '=' or option[-1] == ':':
-                                               option = option[:-1]
-                                               h = d.GetDialogItemAsControl(ARGV_OPTION_VALUE)
-                                               value = Dlg.GetDialogItemText(h)
-                                       else:
-                                               value = ''
-                                       if len(option) == 1:
-                                               stringtoadd = '-' + option
-                                       else:
-                                               stringtoadd = '--' + option
-                                       stringstoadd = [stringtoadd]
-                                       if value:
-                                               stringstoadd.append(value)
-                               else:
-                                       MacOS.SysBeep()
-                       elif n == ARGV_COMMAND_GROUP:
-                               idx = d.GetDialogItemAsControl(ARGV_COMMAND_GROUP).GetControlValue()-1
-                               if 0 <= idx < len(commandlist) and type(commandlist[idx]) == type(()) and \
-                                               len(commandlist[idx]) > 1:
-                                       help = commandlist[idx][-1]
-                                       h = d.GetDialogItemAsControl(ARGV_COMMAND_EXPLAIN)
-                                       Dlg.SetDialogItemText(h, help)
-                       elif n == ARGV_COMMAND_ADD:
-                               idx = d.GetDialogItemAsControl(ARGV_COMMAND_GROUP).GetControlValue()-1
-                               if 0 <= idx < len(commandlist):
-                                       command = commandlist[idx]
-                                       if type(command) == type(()):
-                                               command = command[0]
-                                       stringstoadd = [command]
-                               else:
-                                       MacOS.SysBeep()
-                       elif n == ARGV_ADD_OLDFILE:
-                               fss, ok = macfs.StandardGetFile()
-                               if ok:
-                                       stringstoadd = [fss.as_pathname()]
-                       elif n == ARGV_ADD_NEWFILE:
-                               fss, ok = macfs.StandardPutFile('')
-                               if ok:
-                                       stringstoadd = [fss.as_pathname()]
-                       elif n == ARGV_ADD_FOLDER:
-                               fss, ok = macfs.GetDirectory()
-                               if ok:
-                                       stringstoadd = [fss.as_pathname()]
-                       elif n == ARGV_CMDLINE_DATA:
-                               pass # Nothing to do
-                       else:
-                               raise RuntimeError, "Unknown dialog item %d"%n
-                       
-                       for stringtoadd in stringstoadd:
-                               if '"' in stringtoadd or "'" in stringtoadd or " " in stringtoadd:
-                                       stringtoadd = `stringtoadd`
-                               h = d.GetDialogItemAsControl(ARGV_CMDLINE_DATA)
-                               oldstr = GetDialogItemText(h)
-                               if oldstr and oldstr[-1] != ' ':
-                                       oldstr = oldstr + ' '
-                               oldstr = oldstr + stringtoadd
-                               if oldstr[-1] != ' ':
-                                       oldstr = oldstr + ' '
-                               SetDialogItemText(h, oldstr)
-                               d.SelectDialogItemText(ARGV_CMDLINE_DATA, 0x7fff, 0x7fff)
-               h = d.GetDialogItemAsControl(ARGV_CMDLINE_DATA)
-               oldstr = GetDialogItemText(h)
-               tmplist = string.split(oldstr)
-               newlist = []
-               while tmplist:
-                       item = tmplist[0]
-                       del tmplist[0]
-                       if item[0] == '"':
-                               while item[-1] != '"':
-                                       if not tmplist:
-                                               raise RuntimeError, "Unterminated quoted argument"
-                                       item = item + ' ' + tmplist[0]
-                                       del tmplist[0]
-                               item = item[1:-1]
-                       if item[0] == "'":
-                               while item[-1] != "'":
-                                       if not tmplist:
-                                               raise RuntimeError, "Unterminated quoted argument"
-                                       item = item + ' ' + tmplist[0]
-                                       del tmplist[0]
-                               item = item[1:-1]
-                       newlist.append(item)
-               return newlist
-       finally:
-               apply(MacOS.SchedParams, appsw)
-               del d
-       
-def test():
-       import time, sys
-
-       Message("Testing EasyDialogs.")
-       optionlist = (('v', 'Verbose'), ('verbose', 'Verbose as long option'), 
-                               ('flags=', 'Valued option'), ('f:', 'Short valued option'))
-       commandlist = (('start', 'Start something'), ('stop', 'Stop something'))
-       argv = GetArgv(optionlist=optionlist, commandlist=commandlist, addoldfile=0)
-       for i in range(len(argv)):
-               print 'arg[%d] = %s'%(i, `argv[i]`)
-       print 'Type return to continue - ',
-       sys.stdin.readline()
-       ok = AskYesNoCancel("Do you want to proceed?")
-       ok = AskYesNoCancel("Do you want to identify?", yes="Identify", no="No")
-       if ok > 0:
-               s = AskString("Enter your first name", "Joe")
-               s2 = AskPassword("Okay %s, tell us your nickname"%s, s, cancel="None")
-               if not s2:
-                       Message("%s has no secret nickname"%s)
-               else:
-                       Message("Hello everybody!!\nThe secret nickname of %s is %s!!!"%(s, s2))
-       text = ( "Working Hard...", "Hardly Working..." , 
-                       "So far, so good!", "Keep on truckin'" )
-       bar = ProgressBar("Progress, progress...", 100)
-       try:
-               appsw = MacOS.SchedParams(1, 0)
-               for i in range(100):
-                       bar.set(i)
-                       time.sleep(0.1)
-                       if i % 10 == 0:
-                               bar.label(text[(i/10) % 4])
-               bar.label("Done.")
-               time.sleep(0.3)         # give'em a chance to see the done.
-       finally:
-               del bar
-               apply(MacOS.SchedParams, appsw)
-
-if __name__ == '__main__':
-       try:
-               test()
-       except KeyboardInterrupt:
-               Message("Operation Canceled.")
-
diff --git a/Mac/Lib/MACFS.py b/Mac/Lib/MACFS.py
deleted file mode 100644 (file)
index 9dbe27d..0000000
+++ /dev/null
@@ -1,106 +0,0 @@
-# MACFS.py - Constants used by macfs routines
-# Derived from Finder.h and Folders.h
-
-# Flags in FInfo.Flags field:
-kIsOnDesk                                      = 0x1
-kColor                                         = 0xE
-kIsShared                                      = 0x40
-kHasBeenInited                         = 0x100
-kHasCustomIcon                         = 0x400
-kIsStationery                          = 0x800
-kIsStationary                          = 0x800
-kNameLocked                                    = 0x1000
-kHasBundle                                     = 0x2000
-kIsInvisible                           = 0x4000
-kIsAlias                                       = 0x8000
-
-# Constants for FindFolder
-kOnSystemDisk                 = -32768 # previously was 0x8000 but that is an unsigned value whereas vRefNum is signed
-kOnAppropriateDisk            = -32767 # Generally, the same as kOnSystemDisk, but it's clearer that this isn't always the 'boot' disk.
-# Folder Domains - Carbon only.  
-kSystemDomain                 = -32766 # Read-only system hierarchy.
-kLocalDomain                  = -32765 # All users of a single machine have access to these resources.
-kNetworkDomain                = -32764 # All users configured to use a common network server has access to these resources.
-kUserDomain                   = -32763 # Read/write. Resources that are private to the user.
-kClassicDomain                = -32762 # Domain referring to the currently configured Classic System Folder
-
-kSystemFolderType                      = 'macs'        # the system folder
-kDesktopFolderType                     = 'desk'        # the desktop folder; objects in this folder show on the desk top.
-kTrashFolderType                       = 'trsh'        # the trash folder; objects in this folder show up in the trash
-kWhereToEmptyTrashFolderType = 'empt'  # the "empty trash" folder; Finder starts empty from here down
-kPrintMonitorDocsFolderType    = 'prnt'        # Print Monitor documents
-kStartupFolderType                     = 'strt'        # Finder objects (applications, documents, DAs, aliases, to...) to open at startup go here
-kAppleMenuFolderType           = 'amnu'        # Finder objects to put into the Apple menu go here
-kControlPanelFolderType                = 'ctrl'        # Control Panels go here (may contain INITs)
-kExtensionFolderType           = 'extn'        # Finder extensions go here
-kFontsFolderType                       = 'font'        # Fonts go here
-kPreferencesFolderType         = 'pref'        # preferences for applications go here
-kTemporaryFolderType           = 'temp'
-
-# Alias types
-kContainerFolderAliasType      = 'fdrp'
-kContainerTrashAliasType       = 'trsh'
-kContainerHardDiskAliasType    = 'hdsk'
-kContainerFloppyAliasType      = 'flpy'
-kContainerServerAliasType      = 'srvr'
-kApplicationAliasType          = 'adrp'
-kContainerAliasType                    = 'drop'
-# types for Special folder aliases
-kSystemFolderAliasType         = 'fasy'
-kAppleMenuFolderAliasType      = 'faam'
-kStartupFolderAliasType                = 'fast'
-kPrintMonitorDocsFolderAliasType = 'fapn'
-kPreferencesFolderAliasType    = 'fapf'
-kControlPanelFolderAliasType = 'fact'
-kExtensionFolderAliasType      = 'faex'
-kExportedFolderAliasType       = 'faet'
-kDropFolderAliasType           = 'fadr'
-kSharedFolderAliasType         = 'fash'
-kMountedFolderAliasType                = 'famn'
-
-# New FindFolder constants
-kExtensionDisabledFolderType = 'extD'
-kControlPanelDisabledFolderType = 'ctrD'
-kSystemExtensionDisabledFolderType = 'macD'
-kStartupItemsDisabledFolderType = 'strD'
-kShutdownItemsDisabledFolderType = 'shdD'
-kApplicationsFolderType                = 'apps'
-kDocumentsFolderType           = 'docs'
-
-kVolumeRootFolderType          = 'root'
-kChewableItemsFolderType       = 'flnt'
-kApplicationSupportFolderType = 'asup'
-kTextEncodingsFolderType       = '\9ftex'
-kStationeryFolderType          = 'odst'
-kOpenDocFolderType                     = 'odod'
-kOpenDocShellPlugInsFolderType = 'odsp'
-kEditorsFolderType                     = 'oded'
-kOpenDocEditorsFolderType      = '\9fodf'
-kOpenDocLibrariesFolderType    = 'odlb'
-kGenEditorsFolderType          = '\9fedi'
-kHelpFolderType                                = '\9fhlp'
-kInternetPlugInFolderType      = '\9fnet'
-kModemScriptsFolderType                = '\9fmod'
-kPrinterDescriptionFolderType = 'ppdf'
-kPrinterDriverFolderType       = '\9fprd'
-kScriptingAdditionsFolderType = '\9fscr'
-kSharedLibrariesFolderType     = '\9flib'
-kVoicesFolderType                      = 'fvoc'
-kControlStripModulesFolderType = 'sdev'
-kAssistantsFolderType          = 'ast\9f'
-kUtilitiesFolderType           = 'uti\9f'
-kAppleExtrasFolderType         = 'aex\9f'
-kContextualMenuItemsFolderType = 'cmnu'
-kMacOSReadMesFolderType                = 'mor\9f'
-kALMModulesFolderType          = 'walk'
-kALMPreferencesFolderType      = 'trip'
-kALMLocationsFolderType                = 'fall'
-kColorSyncProfilesFolderType = 'prof'
-kThemesFolderType                      = 'thme'
-kFavoritesFolderType           = 'favs'
-
-# Don't remember why this is here
-READ = 1
-WRITE = 2
-smAllScripts = -3
-
diff --git a/Mac/Lib/cfmfile.py b/Mac/Lib/cfmfile.py
deleted file mode 100644 (file)
index cef28fe..0000000
+++ /dev/null
@@ -1,186 +0,0 @@
-"""codefragments.py -- wrapper to modify code fragments."""
-
-# Â© 1998, Just van Rossum, Letterror
-
-__version__ = "0.8b3"
-__author__ = "jvr"
-
-import macfs
-import struct
-import Res
-import os
-import sys
-
-DEBUG = 0
-
-error = "cfm.error"
-
-BUFSIZE = 0x80000
-
-def mergecfmfiles(srclist, dst, architecture = 'fat'):
-       """Merge all files in srclist into a new file dst. 
-       
-       If architecture is given, only code fragments of that type will be used:
-       "pwpc" for PPC, "m68k" for cfm68k. This does not work for "classic"
-       68k code, since it does not use code fragments to begin with.
-       If architecture is None, all fragments will be used, enabling FAT binaries.
-       """
-       
-       srclist = list(srclist)
-       for i in range(len(srclist)):
-               if type(srclist[i]) == macfs.FSSpecType:
-                       srclist[i] = srclist[i].as_pathname()
-       if type(dst) == macfs.FSSpecType:
-               dst = dst.as_pathname()
-       
-       dstfile = open(dst, "wb")
-       rf = Res.FSpOpenResFile(dst, 3)
-       try:
-               dstcfrg = CfrgResource()
-               for src in srclist:
-                       srccfrg = CfrgResource(src)
-                       for frag in srccfrg.fragments:
-                               if frag.architecture == 'pwpc' and architecture == 'm68k':
-                                       continue
-                               if frag.architecture == 'm68k' and architecture == 'pwpc':
-                                       continue
-                               dstcfrg.append(frag)
-                               
-                               frag.copydata(dstfile)
-                               
-               cfrgres = Res.Resource(dstcfrg.build())
-               Res.UseResFile(rf)
-               cfrgres.AddResource('cfrg', 0, "")
-       finally:
-               dstfile.close()
-               rf = Res.CloseResFile(rf)
-
-
-class CfrgResource:
-       
-       def __init__(self, path = None):
-               self.version = 1
-               self.fragments = []
-               self.path = path
-               if path is not None and os.path.exists(path):
-                       currentresref = Res.CurResFile()
-                       resref = Res.FSpOpenResFile(path, 1)
-                       Res.UseResFile(resref)
-                       try:
-                               try:
-                                       data = Res.Get1Resource('cfrg', 0).data
-                               except Res.Error:
-                                       raise Res.Error, "no \8ccfrg¹ resource found", sys.exc_traceback
-                       finally:
-                               Res.CloseResFile(resref)
-                               Res.UseResFile(currentresref)
-                       self.parse(data)
-                       if self.version <> 1:
-                               raise error, "unknown 'cfrg' resource format"   
-       
-       def parse(self, data):
-               (res1, res2, self.version, 
-                       res3, res4, res5, res6, 
-                       self.memberCount) = struct.unpack("8l", data[:32])
-               data = data[32:]
-               while data:
-                       frag = FragmentDescriptor(self.path, data)
-                       data = data[frag.memberSize:]
-                       self.fragments.append(frag)
-       
-       def build(self):
-               self.memberCount = len(self.fragments)
-               data = struct.pack("8l", 0, 0, self.version, 0, 0, 0, 0, self.memberCount)
-               for frag in self.fragments:
-                       data = data + frag.build()
-               return data
-       
-       def append(self, frag):
-               self.fragments.append(frag)
-
-
-class FragmentDescriptor:
-       
-       def __init__(self, path, data = None):
-               self.path = path
-               if data is not None:
-                       self.parse(data)
-       
-       def parse(self, data):
-               self.architecture = data[:4]
-               (       self.updatelevel, 
-                       self.currentVersion, 
-                       self.oldDefVersion, 
-                       self.stacksize,
-                       self.applibdir, 
-                       self.fragtype,
-                       self.where,
-                       self.offset,
-                       self.length,
-                       self.res1, self.res2,
-                       self.memberSize,) = struct.unpack("4lhBB4lh", data[4:42])
-               pname = data[42:self.memberSize]
-               self.name = pname[1:1+ord(pname[0])]
-       
-       def build(self):
-               data = self.architecture
-               data = data + struct.pack("4lhBB4l",
-                               self.updatelevel, 
-                               self.currentVersion, 
-                               self.oldDefVersion, 
-                               self.stacksize,
-                               self.applibdir, 
-                               self.fragtype,
-                               self.where,
-                               self.offset,
-                               self.length,
-                               self.res1, self.res2)
-               self.memberSize = len(data) + 2 + 1 + len(self.name)
-               # pad to 4 byte boundaries
-               if self.memberSize % 4:
-                       self.memberSize = self.memberSize + 4 - (self.memberSize % 4)
-               data = data + struct.pack("hb", self.memberSize, len(self.name))
-               data = data + self.name
-               data = data + '\000' * (self.memberSize - len(data))
-               return data
-       
-       def getfragment(self):
-               if self.where <> 1:
-                       raise error, "can¹t read fragment, unsupported location"
-               f = open(self.path, "rb")
-               f.seek(self.offset)
-               if self.length:
-                       frag = f.read(self.length)
-               else:
-                       frag = f.read()
-               f.close()
-               return frag
-       
-       def copydata(self, outfile):
-               if self.where <> 1:
-                       raise error, "can¹t read fragment, unsupported location"
-               infile = open(self.path, "rb")
-               if self.length == 0:
-                       infile.seek(0, 2)
-                       self.length = infile.tell()
-               
-               # Position input file and record new offset from output file
-               infile.seek(self.offset)
-               
-               # pad to 16 byte boundaries
-               offset = outfile.tell()
-               if offset % 16:
-                       offset = offset + 16 - (offset % 16)
-               outfile.seek(offset)
-               self.offset = offset
-               
-               l = self.length
-               while l:
-                       if l > BUFSIZE:
-                               outfile.write(infile.read(BUFSIZE))
-                               l = l - BUFSIZE
-                       else:
-                               outfile.write(infile.read(l))
-                               l = 0
-               infile.close()
-
diff --git a/Mac/Lib/findertools.py b/Mac/Lib/findertools.py
deleted file mode 100644 (file)
index dde329a..0000000
+++ /dev/null
@@ -1,833 +0,0 @@
-"""Utility routines depending on the finder,
-a combination of code by Jack Jansen and erik@letterror.com.
-
-Most events have been captured from
-Lasso Capture AE and than translated to python code.
-
-IMPORTANT
-Note that the processes() function returns different values
-depending on the OS version it is running on. On MacOS 9
-the Finder returns the process *names* which can then be
-used to find out more about them. On MacOS 8.6 and earlier
-the Finder returns a code which does not seem to work.
-So bottom line: the processes() stuff does not work on < MacOS9
-
-Mostly written by erik@letterror.com
-"""
-import Finder
-import AppleEvents
-import aetools
-import MacOS
-import sys
-import macfs
-import aetypes
-from types import *
-
-__version__ = '1.1'
-Error = 'findertools.Error'
-
-_finder_talker = None
-
-def _getfinder():
-       """returns basic (recyclable) Finder AE interface object"""
-       global _finder_talker
-       if not _finder_talker:
-               _finder_talker = Finder.Finder()
-       _finder_talker.send_flags = ( _finder_talker.send_flags | 
-               AppleEvents.kAECanInteract | AppleEvents.kAECanSwitchLayer)
-       return _finder_talker
-       
-def launch(file):
-       """Open a file thru the finder. Specify file by name or fsspec"""
-       finder = _getfinder()
-       fss = macfs.FSSpec(file)
-       return finder.open(fss)
-       
-def Print(file):
-       """Print a file thru the finder. Specify file by name or fsspec"""
-       finder = _getfinder()
-       fss = macfs.FSSpec(file)
-       return finder._print(fss)
-       
-def copy(src, dstdir):
-       """Copy a file to a folder"""
-       finder = _getfinder()
-       if type(src) == type([]):
-               src_fss = []
-               for s in src:
-                       src_fss.append(macfs.FSSpec(s))
-       else:
-               src_fss = macfs.FSSpec(src)
-       dst_fss = macfs.FSSpec(dstdir)
-       return finder.duplicate(src_fss, to=dst_fss)
-
-def move(src, dstdir):
-       """Move a file to a folder"""
-       finder = _getfinder()
-       if type(src) == type([]):
-               src_fss = []
-               for s in src:
-                       src_fss.append(macfs.FSSpec(s))
-       else:
-               src_fss = macfs.FSSpec(src)
-       dst_fss = macfs.FSSpec(dstdir)
-       return finder.move(src_fss, to=dst_fss)
-       
-def sleep():
-       """Put the mac to sleep"""
-       finder = _getfinder()
-       finder.sleep()
-       
-def shutdown():
-       """Shut the mac down"""
-       finder = _getfinder()
-       finder.shut_down()
-       
-def restart():
-       """Restart the mac"""
-       finder = _getfinder()
-       finder.restart()
-
-
-#---------------------------------------------------
-#      Additional findertools
-#
-
-def reveal(file):
-       """Reveal a file in the finder. Specify file by name or fsspec."""
-       finder = _getfinder()
-       fss = macfs.FSSpec(file)
-       file_alias = fss.NewAlias()
-       return finder.reveal(file_alias)
-       
-def select(file):
-       """select a file in the finder. Specify file by name or fsspec."""
-       finder = _getfinder()
-       fss = macfs.FSSpec(file)
-       file_alias = fss.NewAlias()
-       return finder.select(file_alias)
-       
-def update(file):
-       """Update the display of the specified object(s) to match 
-       their on-disk representation. Specify file by name or fsspec."""
-       finder = _getfinder()
-       fss = macfs.FSSpec(file)
-       file_alias = fss.NewAlias()
-       return finder.update(file_alias)
-
-
-#---------------------------------------------------
-#      More findertools
-#
-
-def comment(object, comment=None):
-       """comment: get or set the Finder-comment of the item, displayed in the Â³Get Info² window."""
-       object = macfs.FSSpec(object)
-       fss = macfs.FSSpec(object)
-       object_alias = fss.NewAlias()
-       if comment == None:
-               return _getcomment(object_alias)
-       else:
-               return _setcomment(object_alias, comment)
-       
-def _setcomment(object_alias, comment):
-       finder = _getfinder()
-       args = {}
-       attrs = {}
-       aeobj_00 = aetypes.ObjectSpecifier(want=aetypes.Type('cobj'), form="alis", seld=object_alias, fr=None)
-       aeobj_01 = aetypes.ObjectSpecifier(want=aetypes.Type('prop'), form="prop", seld=aetypes.Type('comt'), fr=aeobj_00)
-       args['----'] = aeobj_01
-       args["data"] = comment
-       _reply, args, attrs = finder.send("core", "setd", args, attrs)
-       if args.has_key('errn'):
-               raise Error, aetools.decodeerror(args)
-       if args.has_key('----'):
-               return args['----']
-
-def _getcomment(object_alias):
-       finder = _getfinder()
-       args = {}
-       attrs = {}
-       aeobj_00 = aetypes.ObjectSpecifier(want=aetypes.Type('cobj'), form="alis", seld=object_alias, fr=None)
-       aeobj_01 = aetypes.ObjectSpecifier(want=aetypes.Type('prop'), form="prop", seld=aetypes.Type('comt'), fr=aeobj_00)
-       args['----'] = aeobj_01
-       _reply, args, attrs = finder.send("core", "getd", args, attrs)
-       if args.has_key('errn'):
-               raise Error, aetools.decodeerror(args)
-       if args.has_key('----'):
-               return args['----']
-
-
-#---------------------------------------------------
-#      Get information about current processes in the Finder.
-
-def processes():
-       """processes returns a list of all active processes running on this computer and their creators."""
-       finder = _getfinder()
-       args = {}
-       attrs = {}
-       processnames = []
-       processnumbers = []
-       creators = []
-       partitions = []
-       used = []
-       ## get the processnames or else the processnumbers
-       args['----'] = aetypes.ObjectSpecifier(want=aetypes.Type('prcs'), form="indx", seld=aetypes.Unknown('abso', "all "), fr=None)
-       _reply, args, attrs = finder.send('core', 'getd', args, attrs)
-       if args.has_key('errn'):
-               raise Error, aetools.decodeerror(args)
-       p = []
-       if args.has_key('----'):
-               p =  args['----']
-               for proc in p:
-                       if hasattr(proc, 'seld'):
-                               # it has a real name
-                               processnames.append(proc.seld)
-                       elif hasattr(proc, 'type'):
-                               if proc.type == "psn ":
-                                       # it has a process number
-                                       processnumbers.append(proc.data)
-       ## get the creators
-       args = {}
-       attrs = {}
-       aeobj_0 = aetypes.ObjectSpecifier(want=aetypes.Type('prcs'), form="indx", seld=aetypes.Unknown('abso', "all "), fr=None)
-       args['----'] =  aetypes.ObjectSpecifier(want=aetypes.Type('prop'), form="prop", seld=aetypes.Type('fcrt'), fr=aeobj_0)
-       _reply, args, attrs = finder.send('core', 'getd', args, attrs)
-       if args.has_key('errn'):
-               raise Error, aetools.decodeerror(_arg)
-       if args.has_key('----'):
-               p =  args['----']
-               creators = p[:]
-       ## concatenate in one dict
-       result = []
-       if len(processnames) > len(processnumbers):
-               data = processnames
-       else:
-               data = processnumbers
-       for i in range(len(creators)):
-               result.append((data[i], creators[i]))
-       return result
-
-class _process:
-       pass
-
-def isactiveprocess(processname):
-       """Check of processname is active. MacOS9"""
-       all = processes()
-       ok = 0
-       for n, c in all:
-               if n == processname:
-                       return 1
-       return 0
-       
-def processinfo(processname):
-       """Return an object with all process properties as attributes for processname. MacOS9"""
-       p = _process()
-       
-       if processname == "Finder":
-               p.partition = None
-               p.used = None
-       else:
-               p.partition = _processproperty(processname, 'appt')
-               p.used = _processproperty(processname, 'pusd')
-       p.visible = _processproperty(processname, 'pvis')               #Is the process' layer visible?
-       p.frontmost = _processproperty(processname, 'pisf')     #Is the process the frontmost process?
-       p.file = _processproperty(processname, 'file')                  #the file from which the process was launched
-       p.filetype  = _processproperty(processname, 'asty')             #the OSType of the file type of the process
-       p.creatortype = _processproperty(processname, 'fcrt')   #the OSType of the creator of the process (the signature)
-       p.accepthighlevel = _processproperty(processname, 'revt')       #Is the process high-level event aware (accepts open application, open document, print document, and quit)?
-       p.hasscripting = _processproperty(processname, 'hscr')          #Does the process have a scripting terminology, i.e., can it be scripted?
-       return p
-       
-def _processproperty(processname, property):
-       """return the partition size and memory used for processname"""
-       finder = _getfinder()
-       args = {}
-       attrs = {}
-       aeobj_00 = aetypes.ObjectSpecifier(want=aetypes.Type('prcs'), form="name", seld=processname, fr=None)
-       aeobj_01 = aetypes.ObjectSpecifier(want=aetypes.Type('prop'), form="prop", seld=aetypes.Type(property), fr=aeobj_00)
-       args['----'] = aeobj_01
-       _reply, args, attrs = finder.send("core", "getd", args, attrs)
-       if args.has_key('errn'):
-               raise Error, aetools.decodeerror(args)
-       if args.has_key('----'):
-               return args['----']
-
-
-#---------------------------------------------------
-#      Mess around with Finder windows.
-       
-def openwindow(object):
-       """Open a Finder window for object, Specify object by name or fsspec."""
-       finder = _getfinder()
-       object = macfs.FSSpec(object)
-       fss = macfs.FSSpec(object)
-       object_alias = fss.NewAlias()
-       args = {}
-       attrs = {}
-       _code = 'aevt'
-       _subcode = 'odoc'
-       aeobj_0 = aetypes.ObjectSpecifier(want=aetypes.Type('cfol'), form="alis", seld=object_alias, fr=None)
-       args['----'] = aeobj_0
-       _reply, args, attrs = finder.send(_code, _subcode, args, attrs)
-       if args.has_key('errn'):
-               raise Error, aetools.decodeerror(args)
-       
-def closewindow(object):
-       """Close a Finder window for folder, Specify by path."""
-       finder = _getfinder()
-       fss = macfs.FSSpec(object)
-       object_alias = fss.NewAlias()
-       args = {}
-       attrs = {}
-       _code = 'core'
-       _subcode = 'clos'
-       aeobj_0 = aetypes.ObjectSpecifier(want=aetypes.Type('cfol'), form="alis", seld=object_alias, fr=None)
-       args['----'] = aeobj_0
-       _reply, args, attrs = finder.send(_code, _subcode, args, attrs)
-       if args.has_key('errn'):
-               raise Error, aetools.decodeerror(args)
-
-def location(object, pos=None):
-       """Set the position of a Finder window for folder to pos=(w, h). Specify file by name or fsspec.
-       If pos=None, location will return the current position of the object."""
-       fss = macfs.FSSpec(object)
-       object_alias = fss.NewAlias()
-       if not pos:
-               return _getlocation(object_alias)
-       return _setlocation(object_alias, pos)
-       
-def _setlocation(object_alias, (x, y)):
-       """_setlocation: Set the location of the icon for the object."""
-       finder = _getfinder()
-       args = {}
-       attrs = {}
-       aeobj_00 = aetypes.ObjectSpecifier(want=aetypes.Type('cfol'), form="alis", seld=object_alias, fr=None)
-       aeobj_01 = aetypes.ObjectSpecifier(want=aetypes.Type('prop'), form="prop", seld=aetypes.Type('posn'), fr=aeobj_00)
-       args['----'] = aeobj_01
-       args["data"] = [x, y]
-       _reply, args, attrs = finder.send("core", "setd", args, attrs)
-       if args.has_key('errn'):
-               raise Error, aetools.decodeerror(args)
-       return (x,y)
-       
-def _getlocation(object_alias):
-       """_getlocation: get the location of the icon for the object."""
-       finder = _getfinder()
-       args = {}
-       attrs = {}
-       aeobj_00 = aetypes.ObjectSpecifier(want=aetypes.Type('cfol'), form="alis", seld=object_alias, fr=None)
-       aeobj_01 = aetypes.ObjectSpecifier(want=aetypes.Type('prop'), form="prop", seld=aetypes.Type('posn'), fr=aeobj_00)
-       args['----'] = aeobj_01
-       _reply, args, attrs = finder.send("core", "getd", args, attrs)
-       if args.has_key('errn'):
-               raise Error, aetools.decodeerror(args)
-       if args.has_key('----'):
-               pos = args['----']
-               return pos.h, pos.v
-
-def label(object, index=None):
-       """label: set or get the label of the item. Specify file by name or fsspec."""
-       fss = macfs.FSSpec(object)
-       object_alias = fss.NewAlias()
-       if index == None:
-               return _getlabel(object_alias)
-       if index < 0 or index > 7:
-               index = 0
-       return _setlabel(object_alias, index)
-       
-def _getlabel(object_alias):
-       """label: Get the label for the object."""
-       finder = _getfinder()
-       args = {}
-       attrs = {}
-       aeobj_00 = aetypes.ObjectSpecifier(want=aetypes.Type('cobj'), form="alis", seld=object_alias, fr=None)
-       aeobj_01 = aetypes.ObjectSpecifier(want=aetypes.Type('prop'), form="prop", seld=aetypes.Type('labi'), fr=aeobj_00)
-       args['----'] = aeobj_01
-       _reply, args, attrs = finder.send("core", "getd", args, attrs)
-       if args.has_key('errn'):
-               raise Error, aetools.decodeerror(args)
-       if args.has_key('----'):
-               return args['----']
-
-def _setlabel(object_alias, index):
-       """label: Set the label for the object."""
-       finder = _getfinder()
-       args = {}
-       attrs = {}
-       _code = 'core'
-       _subcode = 'setd'
-       aeobj_0 = aetypes.ObjectSpecifier(want=aetypes.Type('prop'),
-                       form="alis", seld=object_alias, fr=None)
-       aeobj_1 = aetypes.ObjectSpecifier(want=aetypes.Type('prop'),
-                       form="prop", seld=aetypes.Type('labi'), fr=aeobj_0)
-       args['----'] = aeobj_1
-       args["data"] = index
-       _reply, args, attrs = finder.send(_code, _subcode, args, attrs)
-       if args.has_key('errn'):
-               raise Error, aetools.decodeerror(args)
-       return index
-
-def windowview(folder, view=None):
-       """windowview: Set the view of the window for the folder. Specify file by name or fsspec.
-       0 = by icon (default)
-       1 = by name
-       2 = by button
-       """
-       fss = macfs.FSSpec(folder)
-       folder_alias = fss.NewAlias()
-       if view == None:
-               return _getwindowview(folder_alias)
-       return _setwindowview(folder_alias, view)
-       
-def _setwindowview(folder_alias, view=0):
-       """set the windowview"""
-       attrs = {}
-       args = {}
-       if view == 1:
-               _v = aetypes.Type('pnam')
-       elif view == 2:
-               _v = aetypes.Type('lgbu')
-       else:
-               _v = aetypes.Type('iimg')
-       finder = _getfinder()
-       aeobj_0 = aetypes.ObjectSpecifier(want = aetypes.Type('cfol'), 
-                       form = 'alis', seld = folder_alias, fr=None)
-       aeobj_1 = aetypes.ObjectSpecifier(want = aetypes.Type('prop'), 
-                       form = 'prop', seld = aetypes.Type('cwnd'), fr=aeobj_0)
-       aeobj_2 = aetypes.ObjectSpecifier(want = aetypes.Type('prop'), 
-                       form = 'prop', seld = aetypes.Type('pvew'), fr=aeobj_1)
-       aeobj_3 = aetypes.ObjectSpecifier(want = aetypes.Type('prop'), 
-                       form = 'prop', seld = _v, fr=None)
-       _code = 'core'
-       _subcode = 'setd'
-       args['----'] = aeobj_2
-       args['data'] = aeobj_3
-       _reply, args, attrs = finder.send(_code, _subcode, args, attrs)
-       if args.has_key('errn'):
-               raise Error, aetools.decodeerror(args)
-       if args.has_key('----'):
-               return args['----']
-
-def _getwindowview(folder_alias):
-       """get the windowview"""
-       attrs = {}
-       args = {}
-       finder = _getfinder()
-       args = {}
-       attrs = {}
-       aeobj_00 = aetypes.ObjectSpecifier(want=aetypes.Type('cfol'), form="alis", seld=folder_alias, fr=None)
-       aeobj_01 = aetypes.ObjectSpecifier(want=aetypes.Type('prop'), form="prop", seld=aetypes.Type('cwnd'), fr=aeobj_00)
-       aeobj_02 = aetypes.ObjectSpecifier(want=aetypes.Type('prop'), form="prop", seld=aetypes.Type('pvew'), fr=aeobj_01)
-       args['----'] = aeobj_02
-       _reply, args, attrs = finder.send("core", "getd", args, attrs)
-       if args.has_key('errn'):
-               raise Error, aetools.decodeerror(args)
-       views = {'iimg':0, 'pnam':1, 'lgbu':2}
-       if args.has_key('----'):
-               return views[args['----'].enum]
-
-def windowsize(folder, size=None):
-       """Set the size of a Finder window for folder to size=(w, h), Specify by path.
-       If size=None, windowsize will return the current size of the window.
-       Specify file by name or fsspec.
-       """
-       fss = macfs.FSSpec(folder)
-       folder_alias = fss.NewAlias()
-       openwindow(fss)
-       if not size:
-               return _getwindowsize(folder_alias)
-       return _setwindowsize(folder_alias, size)
-       
-def _setwindowsize(folder_alias, (w, h)):
-       """Set the size of a Finder window for folder to (w, h)"""
-       finder = _getfinder()
-       args = {}
-       attrs = {}
-       _code = 'core'
-       _subcode = 'setd'
-       aevar00 = [w, h]
-       aeobj_0 = aetypes.ObjectSpecifier(want=aetypes.Type('cfol'),
-                       form="alis", seld=folder_alias, fr=None)
-       aeobj_1 = aetypes.ObjectSpecifier(want=aetypes.Type('prop'), 
-                       form="prop", seld=aetypes.Type('cwnd'), fr=aeobj_0)
-       aeobj_2 = aetypes.ObjectSpecifier(want=aetypes.Type('prop'), 
-                       form="prop", seld=aetypes.Type('ptsz'), fr=aeobj_1)
-       args['----'] = aeobj_2
-       args["data"] = aevar00
-       _reply, args, attrs = finder.send(_code, _subcode, args, attrs)
-       if args.has_key('errn'):
-               raise Error, aetools.decodeerror(args)
-       return (w, h)
-               
-def _getwindowsize(folder_alias):
-       """Set the size of a Finder window for folder to (w, h)"""
-       finder = _getfinder()
-       args = {}
-       attrs = {}
-       aeobj_0 = aetypes.ObjectSpecifier(want=aetypes.Type('cfol'), 
-                       form="alis", seld=folder_alias, fr=None)
-       aeobj_1 = aetypes.ObjectSpecifier(want=aetypes.Type('prop'), 
-                       form="prop", seld=aetypes.Type('cwnd'), fr=aeobj_0)
-       aeobj_2 = aetypes.ObjectSpecifier(want=aetypes.Type('prop'), 
-                       form="prop", seld=aetypes.Type('posn'), fr=aeobj_1)
-       args['----'] = aeobj_2
-       _reply, args, attrs = finder.send('core', 'getd', args, attrs)
-       if args.has_key('errn'):
-               raise Error, aetools.decodeerror(args)
-       if args.has_key('----'):
-               return args['----']
-
-def windowposition(folder, pos=None):
-       """Set the position of a Finder window for folder to pos=(w, h)."""
-       fss = macfs.FSSpec(folder)
-       folder_alias = fss.NewAlias()
-       openwindow(fss)
-       if not pos:
-               return _getwindowposition(folder_alias)
-       if type(pos) == InstanceType:
-               # pos might be a QDPoint object as returned by _getwindowposition
-               pos = (pos.h, pos.v)
-       return _setwindowposition(folder_alias, pos)
-                       
-def _setwindowposition(folder_alias, (x, y)):
-       """Set the size of a Finder window for folder to (w, h)."""
-       finder = _getfinder()
-       args = {}
-       attrs = {}
-       aeobj_0 = aetypes.ObjectSpecifier(want=aetypes.Type('cfol'), 
-                       form="alis", seld=folder_alias, fr=None)
-       aeobj_1 = aetypes.ObjectSpecifier(want=aetypes.Type('prop'), 
-                       form="prop", seld=aetypes.Type('cwnd'), fr=aeobj_0)
-       aeobj_2 = aetypes.ObjectSpecifier(want=aetypes.Type('prop'), 
-                       form="prop", seld=aetypes.Type('posn'), fr=aeobj_1)
-       args['----'] = aeobj_2
-       args["data"] = [x, y]
-       _reply, args, attrs = finder.send('core', 'setd', args, attrs)
-       if args.has_key('errn'):
-               raise Error, aetools.decodeerror(args)
-       if args.has_key('----'):
-               return args['----']
-
-def _getwindowposition(folder_alias):
-       """Get the size of a Finder window for folder, Specify by path."""
-       finder = _getfinder()
-       args = {}
-       attrs = {}
-       aeobj_0 = aetypes.ObjectSpecifier(want=aetypes.Type('cfol'), 
-                       form="alis", seld=folder_alias, fr=None)
-       aeobj_1 = aetypes.ObjectSpecifier(want=aetypes.Type('prop'), 
-                       form="prop", seld=aetypes.Type('cwnd'), fr=aeobj_0)
-       aeobj_2 = aetypes.ObjectSpecifier(want=aetypes.Type('prop'), 
-                       form="prop", seld=aetypes.Type('ptsz'), fr=aeobj_1)
-       args['----'] = aeobj_2
-       _reply, args, attrs = finder.send('core', 'getd', args, attrs)
-       if args.has_key('errn'):
-               raise Error, aetools.decodeerror(args)
-       if args.has_key('----'):
-               return args['----']
-
-def icon(object, icondata=None):
-       """icon sets the icon of object, if no icondata is given,
-       icon will return an AE object with binary data for the current icon.
-       If left untouched, this data can be used to paste the icon on another file.
-       Development opportunity: get and set the data as PICT."""
-       fss = macfs.FSSpec(object)
-       object_alias = fss.NewAlias()
-       if icondata == None:
-               return _geticon(object_alias)
-       return _seticon(object_alias, icondata)
-       
-def _geticon(object_alias):
-       """get the icondata for object. Binary data of some sort."""
-       finder = _getfinder()
-       args = {}
-       attrs = {}
-       aeobj_00 = aetypes.ObjectSpecifier(want=aetypes.Type('cobj'), 
-                       form="alis", seld=object_alias, fr=None)
-       aeobj_01 = aetypes.ObjectSpecifier(want=aetypes.Type('prop'), 
-                       form="prop", seld=aetypes.Type('iimg'), fr=aeobj_00)
-       args['----'] = aeobj_01
-       _reply, args, attrs = finder.send("core", "getd", args, attrs)
-       if args.has_key('errn'):
-               raise Error, aetools.decodeerror(args)
-       if args.has_key('----'):
-               return args['----']
-
-def _seticon(object_alias, icondata):
-       """set the icondata for object, formatted as produced by _geticon()"""
-       finder = _getfinder()
-       args = {}
-       attrs = {}
-       aeobj_00 = aetypes.ObjectSpecifier(want=aetypes.Type('cobj'), 
-                       form="alis", seld=object_alias, fr=None)
-       aeobj_01 = aetypes.ObjectSpecifier(want=aetypes.Type('prop'), 
-                       form="prop", seld=aetypes.Type('iimg'), fr=aeobj_00)
-       args['----'] = aeobj_01
-       args["data"] = icondata
-       _reply, args, attrs = finder.send("core", "setd", args, attrs)
-       if args.has_key('errn'):
-               raise Error, aetools.decodeerror(args)
-       if args.has_key('----'):
-               return args['----'].data
-
-
-#---------------------------------------------------
-#      Volumes and servers.
-       
-def mountvolume(volume, server=None, username=None, password=None):
-       """mount a volume, local or on a server on AppleTalk.
-       Note: mounting a ASIP server requires a different operation.
-       server is the name of the server where the volume belongs
-       username, password belong to a registered user of the volume."""
-       finder = _getfinder()
-       args = {}
-       attrs = {}
-       if password:
-               args["PASS"] = password
-       if username:
-               args["USER"] = username
-       if server:
-               args["SRVR"] = server
-       args['----'] = volume
-       _reply, args, attrs = finder.send("aevt", "mvol", args, attrs)
-       if args.has_key('errn'):
-               raise Error, aetools.decodeerror(args)
-       if args.has_key('----'):
-               return args['----']
-
-def unmountvolume(volume):
-       """unmount a volume that's on the desktop"""
-       putaway(volume)
-       
-def putaway(object):
-       """puth the object away, whereever it came from."""
-       finder = _getfinder()
-       args = {}
-       attrs = {}
-       args['----'] = aetypes.ObjectSpecifier(want=aetypes.Type('cdis'), form="name", seld=object, fr=None)
-       _reply, args, attrs = talker.send("fndr", "ptwy", args, attrs)
-       if args.has_key('errn'):
-               raise Error, aetools.decodeerror(args)
-       if args.has_key('----'):
-               return args['----']
-
-
-#---------------------------------------------------
-#      Miscellaneous functions
-#
-
-def volumelevel(level):
-       """set the audio output level, parameter between 0 (silent) and 7 (full blast)"""
-       finder = _getfinder()
-       args = {}
-       attrs = {}
-       if level < 0:
-               level = 0
-       elif level > 7:
-               level = 7
-       args['----'] = level
-       _reply, args, attrs = finder.send("aevt", "stvl", args, attrs)
-       if args.has_key('errn'):
-               raise Error, aetools.decodeerror(args)
-       if args.has_key('----'):
-               return args['----']
-
-def OSversion():
-       """return the version of the system software"""
-       finder = _getfinder()
-       args = {}
-       attrs = {}
-       aeobj_00 = aetypes.ObjectSpecifier(want=aetypes.Type('prop'), form="prop", seld=aetypes.Type('ver2'), fr=None)
-       args['----'] = aeobj_00
-       _reply, args, attrs = finder.send("core", "getd", args, attrs)
-       if args.has_key('errn'):
-               raise Error, aetools.decodeerror(args)
-       if args.has_key('----'):
-               return args['----']
-
-def filesharing():
-       """return the current status of filesharing and whether it is starting up or not:
-               -1      file sharing is off and not starting up
-               0       file sharing is off and starting up
-               1       file sharing is on"""
-       status = -1
-       finder = _getfinder()
-       # see if it is on
-       args = {}
-       attrs = {}
-       args['----'] = aetypes.ObjectSpecifier(want=aetypes.Type('prop'), form="prop", seld=aetypes.Type('fshr'), fr=None)
-       _reply, args, attrs = finder.send("core", "getd", args, attrs)
-       if args.has_key('errn'):
-               raise Error, aetools.decodeerror(args)
-       if args.has_key('----'):
-               if args['----'] == 0:
-                       status = -1
-               else:
-                       status = 1
-       # is it starting up perchance?
-       args = {}
-       attrs = {}
-       args['----'] = aetypes.ObjectSpecifier(want=aetypes.Type('prop'), form="prop", seld=aetypes.Type('fsup'), fr=None)
-       _reply, args, attrs = finder.send("core", "getd", args, attrs)
-       if args.has_key('errn'):
-               raise Error, aetools.decodeerror(args)
-       if args.has_key('----'):
-               if args['----'] == 1:
-                       status = 0
-       return status
-       
-def movetotrash(path):
-       """move the object to the trash"""
-       fss = macfs.FSSpec(path)
-       trashfolder = macfs.FSSpec(macfs.FindFolder(fss.as_tuple()[0], 'trsh', 0) + ("",)).as_pathname()
-       findertools.move(path, trashfolder)
-
-def emptytrash():
-       """empty the trash"""
-       finder = _getfinder()
-       args = {}
-       attrs = {}
-       args['----'] = aetypes.ObjectSpecifier(want=aetypes.Type('prop'), form="prop", seld=aetypes.Type('trsh'), fr=None)
-       _reply, args, attrs = finder.send("fndr", "empt", args, attrs)
-       if args.has_key('errn'):
-               raise aetools.Error, aetools.decodeerror(args)
-
-
-def _test():
-       print 'Original findertools functionality test...'
-       print 'Testing launch...'
-       fss, ok = macfs.PromptGetFile('File to launch:')
-       if ok:
-               result = launch(fss)
-               if result:
-                       print 'Result: ', result
-               print 'Press return-',
-               sys.stdin.readline()
-       print 'Testing print...'
-       fss, ok = macfs.PromptGetFile('File to print:')
-       if ok:
-               result = Print(fss)
-               if result:
-                       print 'Result: ', result
-               print 'Press return-',
-               sys.stdin.readline()
-       print 'Testing copy...'
-       fss, ok = macfs.PromptGetFile('File to copy:')
-       if ok:
-               dfss, ok = macfs.GetDirectory()
-               if ok:
-                       result = copy(fss, dfss)
-                       if result:
-                               print 'Result:', result
-                       print 'Press return-',
-                       sys.stdin.readline()
-       print 'Testing move...'
-       fss, ok = macfs.PromptGetFile('File to move:')
-       if ok:
-               dfss, ok = macfs.GetDirectory()
-               if ok:
-                       result = move(fss, dfss)
-                       if result:
-                               print 'Result:', result
-                       print 'Press return-',
-                       sys.stdin.readline()
-       import EasyDialogs
-       print 'Testing sleep...'
-       if EasyDialogs.AskYesNoCancel('Sleep?') > 0:
-               result = sleep()
-               if result:
-                       print 'Result:', result
-               print 'Press return-',
-               sys.stdin.readline()
-       print 'Testing shutdown...'
-       if EasyDialogs.AskYesNoCancel('Shut down?') > 0:
-               result = shutdown()
-               if result:
-                       print 'Result:', result
-               print 'Press return-',
-               sys.stdin.readline()
-       print 'Testing restart...'
-       if EasyDialogs.AskYesNoCancel('Restart?') > 0:
-               result = restart()
-               if result:
-                       print 'Result:', result
-               print 'Press return-',
-               sys.stdin.readline()
-
-def _test2():
-       print '\nmorefindertools version %s\nTests coming up\8a' %__version__
-       import os
-       import random
-
-       # miscellaneous
-       print '\tfilesharing on?',      filesharing()           # is file sharing on, off, starting up?
-       print '\tOS version',           OSversion()             # the version of the system software
-
-       # set the soundvolume in a simple way
-       print '\tSystem beep volume'
-       for i in range(0, 7):
-               volumelevel(i)          
-               MacOS.SysBeep()
-
-       # Finder's windows, file location, file attributes
-       open("@findertoolstest", "w")
-       f = macfs.FSSpec("@findertoolstest").as_pathname()
-       reveal(f)                               # reveal this file in a Finder window
-       select(f)                               # select this file
-
-       base, file = os.path.split(f)
-       closewindow(base)       # close the window this file is in      (opened by reveal)
-       openwindow(base)                # open it again
-       windowview(base, 1)     # set the view by list
-
-       label(f, 2)                             # set the label of this file to something orange
-       print '\tlabel', label(f)       # get the label of this file
-
-       # the file location only works in a window with icon view!
-       print 'Random locations for an icon'
-       windowview(base, 0)             # set the view by icon
-       windowsize(base, (600, 600))
-       for i in range(50):
-               location(f, (random.randint(10, 590), random.randint(10, 590)))
-
-       windowsize(base, (200, 400))
-       windowview(base, 1)             # set the view by icon
-
-       orgpos = windowposition(base)
-       print 'Animated window location'
-       for i in range(10):
-               pos = (100+i*10, 100+i*10)
-               windowposition(base, pos)
-               print '\twindow position', pos
-       windowposition(base, orgpos)    # park it where it was before\8a
-
-       print 'Put a comment in file', f, ':'
-       print '\t', comment(f)          # print the Finder comment this file has
-       s = 'This is a comment no one reads!'
-       comment(f, s)                   # set the Finder comment
-       
-def _test3():
-       print 'MacOS9 or better specific functions'
-       # processes
-       pr = processes()                # return a list of tuples with (active_processname, creatorcode)
-       print 'Return a list of current active processes:'
-       for p in pr:
-               print '\t', p
-       
-       # get attributes of the first process in the list
-       print 'Attributes of the first process in the list:'
-       pinfo = processinfo(pr[0][0])
-       print '\t', pr[0][0]
-       print '\t\tmemory partition', pinfo.partition           # the memory allocated to this process
-       print '\t\tmemory used', pinfo.used                     # the memory actuall used by this process
-       print '\t\tis visible', pinfo.visible                   # is the process visible to the user
-       print '\t\tis frontmost', pinfo.frontmost               # is the process the front most one?
-       print '\t\thas scripting', pinfo.hasscripting           # is the process scriptable?
-       print '\t\taccepts high level events',  pinfo.accepthighlevel   # does the process accept high level appleevents?
-
-if __name__ == '__main__':
-       _test()
-       _test2()
-       _test3()
-       
diff --git a/Mac/Lib/lib-scripting/AppleScript_Suite.py b/Mac/Lib/lib-scripting/AppleScript_Suite.py
deleted file mode 100644 (file)
index ea9f1f1..0000000
+++ /dev/null
@@ -1,1600 +0,0 @@
-"""Suite AppleScript Suite: Goodies for Gustav
-Level 1, version 1
-
-Generated from flap:System Folder:Extensions:Scripting Additions:Dialects:English Dialect
-AETE/AEUT resource version 1/0, language 0, script 0
-"""
-
-import aetools
-import MacOS
-
-_code = 'ascr'
-
-class AppleScript_Suite:
-
-       def activate(self, _no_object=None, _attributes={}, **_arguments):
-               """activate: Bring targeted application program to the front.
-               Keyword argument _attributes: AppleEvent attribute dictionary
-               """
-               _code = 'misc'
-               _subcode = 'actv'
-
-               if _arguments: raise TypeError, 'No optional args expected'
-               if _no_object != None: raise TypeError, 'No direct arg expected'
-
-
-               _reply, _arguments, _attributes = self.send(_code, _subcode,
-                               _arguments, _attributes)
-               if _arguments.has_key('errn'):
-                       raise aetools.Error, aetools.decodeerror(_arguments)
-               # XXXX Optionally decode result
-               if _arguments.has_key('----'):
-                       return _arguments['----']
-
-       def log(self, _object, _attributes={}, **_arguments):
-               """log: Cause a comment to be logged.
-               Required argument: anything
-               Keyword argument _attributes: AppleEvent attribute dictionary
-               """
-               _code = 'ascr'
-               _subcode = 'cmnt'
-
-               if _arguments: raise TypeError, 'No optional args expected'
-               _arguments['----'] = _object
-
-
-               _reply, _arguments, _attributes = self.send(_code, _subcode,
-                               _arguments, _attributes)
-               if _arguments.has_key('errn'):
-                       raise aetools.Error, aetools.decodeerror(_arguments)
-               # XXXX Optionally decode result
-               if _arguments.has_key('----'):
-                       return _arguments['----']
-
-       def stop_log(self, _no_object=None, _attributes={}, **_arguments):
-               """stop log: 
-               Keyword argument _attributes: AppleEvent attribute dictionary
-               """
-               _code = 'ToyS'
-               _subcode = 'log0'
-
-               if _arguments: raise TypeError, 'No optional args expected'
-               if _no_object != None: raise TypeError, 'No direct arg expected'
-
-
-               _reply, _arguments, _attributes = self.send(_code, _subcode,
-                               _arguments, _attributes)
-               if _arguments.has_key('errn'):
-                       raise aetools.Error, aetools.decodeerror(_arguments)
-               # XXXX Optionally decode result
-               if _arguments.has_key('----'):
-                       return _arguments['----']
-
-       def start_log(self, _no_object=None, _attributes={}, **_arguments):
-               """start log: 
-               Keyword argument _attributes: AppleEvent attribute dictionary
-               """
-               _code = 'ToyS'
-               _subcode = 'log1'
-
-               if _arguments: raise TypeError, 'No optional args expected'
-               if _no_object != None: raise TypeError, 'No direct arg expected'
-
-
-               _reply, _arguments, _attributes = self.send(_code, _subcode,
-                               _arguments, _attributes)
-               if _arguments.has_key('errn'):
-                       raise aetools.Error, aetools.decodeerror(_arguments)
-               # XXXX Optionally decode result
-               if _arguments.has_key('----'):
-                       return _arguments['----']
-
-       def copy(self, _no_object=None, _attributes={}, **_arguments):
-               """copy: Copy an object to the clipboard
-               Keyword argument _attributes: AppleEvent attribute dictionary
-               """
-               _code = 'misc'
-               _subcode = 'copy'
-
-               if _arguments: raise TypeError, 'No optional args expected'
-               if _no_object != None: raise TypeError, 'No direct arg expected'
-
-
-               _reply, _arguments, _attributes = self.send(_code, _subcode,
-                               _arguments, _attributes)
-               if _arguments.has_key('errn'):
-                       raise aetools.Error, aetools.decodeerror(_arguments)
-               # XXXX Optionally decode result
-               if _arguments.has_key('----'):
-                       return _arguments['----']
-
-       def do_script(self, _object, _attributes={}, **_arguments):
-               """do script: Execute a script
-               Required argument: the script to execute
-               Keyword argument _attributes: AppleEvent attribute dictionary
-               Returns: anything
-               """
-               _code = 'misc'
-               _subcode = 'dosc'
-
-               if _arguments: raise TypeError, 'No optional args expected'
-               _arguments['----'] = _object
-
-
-               _reply, _arguments, _attributes = self.send(_code, _subcode,
-                               _arguments, _attributes)
-               if _arguments.has_key('errn'):
-                       raise aetools.Error, aetools.decodeerror(_arguments)
-               # XXXX Optionally decode result
-               if _arguments.has_key('----'):
-                       return _arguments['----']
-
-       def idle(self, _no_object=None, _attributes={}, **_arguments):
-               """idle: Sent to a script application when it is idle
-               Keyword argument _attributes: AppleEvent attribute dictionary
-               Returns: Number of seconds to wait for next idle event
-               """
-               _code = 'misc'
-               _subcode = 'idle'
-
-               if _arguments: raise TypeError, 'No optional args expected'
-               if _no_object != None: raise TypeError, 'No direct arg expected'
-
-
-               _reply, _arguments, _attributes = self.send(_code, _subcode,
-                               _arguments, _attributes)
-               if _arguments.has_key('errn'):
-                       raise aetools.Error, aetools.decodeerror(_arguments)
-               # XXXX Optionally decode result
-               if _arguments.has_key('----'):
-                       return _arguments['----']
-
-       def launch(self, _no_object=None, _attributes={}, **_arguments):
-               """launch: Start an application for scripting
-               Keyword argument _attributes: AppleEvent attribute dictionary
-               Returns: anything
-               """
-               _code = 'ascr'
-               _subcode = 'noop'
-
-               if _arguments: raise TypeError, 'No optional args expected'
-               if _no_object != None: raise TypeError, 'No direct arg expected'
-
-
-               _reply, _arguments, _attributes = self.send(_code, _subcode,
-                               _arguments, _attributes)
-               if _arguments.has_key('errn'):
-                       raise aetools.Error, aetools.decodeerror(_arguments)
-               # XXXX Optionally decode result
-               if _arguments.has_key('----'):
-                       return _arguments['----']
-
-       def tell(self, _no_object=None, _attributes={}, **_arguments):
-               """tell: Magic tell event for event logging
-               Keyword argument _attributes: AppleEvent attribute dictionary
-               Returns: anything
-               """
-               _code = 'ascr'
-               _subcode = 'tell'
-
-               if _arguments: raise TypeError, 'No optional args expected'
-               if _no_object != None: raise TypeError, 'No direct arg expected'
-
-
-               _reply, _arguments, _attributes = self.send(_code, _subcode,
-                               _arguments, _attributes)
-               if _arguments.has_key('errn'):
-                       raise aetools.Error, aetools.decodeerror(_arguments)
-               # XXXX Optionally decode result
-               if _arguments.has_key('----'):
-                       return _arguments['----']
-
-       def end_tell(self, _no_object=None, _attributes={}, **_arguments):
-               """end tell: Start an application for scripting
-               Keyword argument _attributes: AppleEvent attribute dictionary
-               Returns: anything
-               """
-               _code = 'ascr'
-               _subcode = 'tend'
-
-               if _arguments: raise TypeError, 'No optional args expected'
-               if _no_object != None: raise TypeError, 'No direct arg expected'
-
-
-               _reply, _arguments, _attributes = self.send(_code, _subcode,
-                               _arguments, _attributes)
-               if _arguments.has_key('errn'):
-                       raise aetools.Error, aetools.decodeerror(_arguments)
-               # XXXX Optionally decode result
-               if _arguments.has_key('----'):
-                       return _arguments['----']
-
-       _argmap_error = {
-               'number' : 'errn',
-               'partial_result' : 'ptlr',
-               '_from' : 'erob',
-               'to' : 'errt',
-       }
-
-       def error(self, _object=None, _attributes={}, **_arguments):
-               """error: Raise an error
-               Required argument: anything
-               Keyword argument number: an error number
-               Keyword argument partial_result: any partial result occurring before the error
-               Keyword argument _from: the object that caused the error
-               Keyword argument to: another parameter to the error
-               Keyword argument _attributes: AppleEvent attribute dictionary
-               Returns: anything
-               """
-               _code = 'ascr'
-               _subcode = 'err '
-
-               aetools.keysubst(_arguments, self._argmap_error)
-               _arguments['----'] = _object
-
-
-               _reply, _arguments, _attributes = self.send(_code, _subcode,
-                               _arguments, _attributes)
-               if _arguments.has_key('errn'):
-                       raise aetools.Error, aetools.decodeerror(_arguments)
-               # XXXX Optionally decode result
-               if _arguments.has_key('----'):
-                       return _arguments['----']
-
-       _argmap_Call_a5_subroutine = {
-               'at' : 'at  ',
-               '_from' : 'from',
-               '_for' : 'for ',
-               'to' : 'to  ',
-               'thru' : 'thru',
-               'through' : 'thgh',
-               'by' : 'by  ',
-               'on' : 'on  ',
-               'into' : 'into',
-               'onto' : 'onto',
-               'between' : 'btwn',
-               'against' : 'agst',
-               'out_of' : 'outo',
-               'instead_of' : 'isto',
-               'aside_from' : 'asdf',
-               'around' : 'arnd',
-               'beside' : 'bsid',
-               'beneath' : 'bnth',
-               'under' : 'undr',
-               'over' : 'over',
-               'above' : 'abve',
-               'below' : 'belw',
-               'apart_from' : 'aprt',
-               'given' : 'givn',
-               'with' : 'with',
-               'without' : 'wout',
-               'about' : 'abou',
-               'since' : 'snce',
-               'until' : 'till',
-               'returning' : 'Krtn',
-       }
-
-       def Call_a5_subroutine(self, _object=None, _attributes={}, **_arguments):
-               """Call\80subroutine: A subroutine call
-               Required argument: anything
-               Keyword argument at: a preposition
-               Keyword argument _from: a preposition
-               Keyword argument _for: a preposition
-               Keyword argument to: a preposition
-               Keyword argument thru: a preposition
-               Keyword argument through: a preposition
-               Keyword argument by: a preposition
-               Keyword argument on: a preposition
-               Keyword argument into: a preposition
-               Keyword argument onto: a preposition
-               Keyword argument between: a preposition
-               Keyword argument against: a preposition
-               Keyword argument out_of: a preposition
-               Keyword argument instead_of: a preposition
-               Keyword argument aside_from: a preposition
-               Keyword argument around: a preposition
-               Keyword argument beside: a preposition
-               Keyword argument beneath: a preposition
-               Keyword argument under: a preposition
-               Keyword argument over: a preposition
-               Keyword argument above: a preposition
-               Keyword argument below: a preposition
-               Keyword argument apart_from: a preposition
-               Keyword argument given: a preposition
-               Keyword argument with: special preposition for setting event properties
-               Keyword argument without: special preposition for clearing event properties
-               Keyword argument about: a preposition
-               Keyword argument since: a preposition
-               Keyword argument until: a preposition
-               Keyword argument returning: specifies a pattern to match results to
-               Keyword argument _attributes: AppleEvent attribute dictionary
-               Returns: anything
-               """
-               _code = 'ascr'
-               _subcode = 'psbr'
-
-               aetools.keysubst(_arguments, self._argmap_Call_a5_subroutine)
-               _arguments['----'] = _object
-
-
-               _reply, _arguments, _attributes = self.send(_code, _subcode,
-                               _arguments, _attributes)
-               if _arguments.has_key('errn'):
-                       raise aetools.Error, aetools.decodeerror(_arguments)
-               # XXXX Optionally decode result
-               if _arguments.has_key('----'):
-                       return _arguments['----']
-
-       def _3d_(self, _object, _attributes={}, **_arguments):
-               """=: Equality
-               Required argument: an AE object reference
-               Keyword argument _attributes: AppleEvent attribute dictionary
-               Returns: anything
-               """
-               _code = 'ascr'
-               _subcode = '=   '
-
-               if _arguments: raise TypeError, 'No optional args expected'
-               _arguments['----'] = _object
-
-
-               _reply, _arguments, _attributes = self.send(_code, _subcode,
-                               _arguments, _attributes)
-               if _arguments.has_key('errn'):
-                       raise aetools.Error, aetools.decodeerror(_arguments)
-               # XXXX Optionally decode result
-               if _arguments.has_key('----'):
-                       return _arguments['----']
-
-       def _ad_(self, _object, _attributes={}, **_arguments):
-               """\82: Inequality
-               Required argument: an AE object reference
-               Keyword argument _attributes: AppleEvent attribute dictionary
-               Returns: anything
-               """
-               _code = 'ascr'
-               _subcode = '\255   '
-
-               if _arguments: raise TypeError, 'No optional args expected'
-               _arguments['----'] = _object
-
-
-               _reply, _arguments, _attributes = self.send(_code, _subcode,
-                               _arguments, _attributes)
-               if _arguments.has_key('errn'):
-                       raise aetools.Error, aetools.decodeerror(_arguments)
-               # XXXX Optionally decode result
-               if _arguments.has_key('----'):
-                       return _arguments['----']
-
-       def _2b_(self, _object, _attributes={}, **_arguments):
-               """+: Addition
-               Required argument: an AE object reference
-               Keyword argument _attributes: AppleEvent attribute dictionary
-               Returns: anything
-               """
-               _code = 'ascr'
-               _subcode = '+   '
-
-               if _arguments: raise TypeError, 'No optional args expected'
-               _arguments['----'] = _object
-
-
-               _reply, _arguments, _attributes = self.send(_code, _subcode,
-                               _arguments, _attributes)
-               if _arguments.has_key('errn'):
-                       raise aetools.Error, aetools.decodeerror(_arguments)
-               # XXXX Optionally decode result
-               if _arguments.has_key('----'):
-                       return _arguments['----']
-
-       def _2d_(self, _object, _attributes={}, **_arguments):
-               """-: Subtraction
-               Required argument: an AE object reference
-               Keyword argument _attributes: AppleEvent attribute dictionary
-               Returns: anything
-               """
-               _code = 'ascr'
-               _subcode = '-   '
-
-               if _arguments: raise TypeError, 'No optional args expected'
-               _arguments['----'] = _object
-
-
-               _reply, _arguments, _attributes = self.send(_code, _subcode,
-                               _arguments, _attributes)
-               if _arguments.has_key('errn'):
-                       raise aetools.Error, aetools.decodeerror(_arguments)
-               # XXXX Optionally decode result
-               if _arguments.has_key('----'):
-                       return _arguments['----']
-
-       def _2a_(self, _object, _attributes={}, **_arguments):
-               """*: Multiplication
-               Required argument: an AE object reference
-               Keyword argument _attributes: AppleEvent attribute dictionary
-               Returns: anything
-               """
-               _code = 'ascr'
-               _subcode = '*   '
-
-               if _arguments: raise TypeError, 'No optional args expected'
-               _arguments['----'] = _object
-
-
-               _reply, _arguments, _attributes = self.send(_code, _subcode,
-                               _arguments, _attributes)
-               if _arguments.has_key('errn'):
-                       raise aetools.Error, aetools.decodeerror(_arguments)
-               # XXXX Optionally decode result
-               if _arguments.has_key('----'):
-                       return _arguments['----']
-
-       def _d6_(self, _object, _attributes={}, **_arguments):
-               """÷: Division
-               Required argument: an AE object reference
-               Keyword argument _attributes: AppleEvent attribute dictionary
-               Returns: anything
-               """
-               _code = 'ascr'
-               _subcode = '/   '
-
-               if _arguments: raise TypeError, 'No optional args expected'
-               _arguments['----'] = _object
-
-
-               _reply, _arguments, _attributes = self.send(_code, _subcode,
-                               _arguments, _attributes)
-               if _arguments.has_key('errn'):
-                       raise aetools.Error, aetools.decodeerror(_arguments)
-               # XXXX Optionally decode result
-               if _arguments.has_key('----'):
-                       return _arguments['----']
-
-       def div(self, _object, _attributes={}, **_arguments):
-               """div: Quotient
-               Required argument: an AE object reference
-               Keyword argument _attributes: AppleEvent attribute dictionary
-               Returns: anything
-               """
-               _code = 'ascr'
-               _subcode = 'div '
-
-               if _arguments: raise TypeError, 'No optional args expected'
-               _arguments['----'] = _object
-
-
-               _reply, _arguments, _attributes = self.send(_code, _subcode,
-                               _arguments, _attributes)
-               if _arguments.has_key('errn'):
-                       raise aetools.Error, aetools.decodeerror(_arguments)
-               # XXXX Optionally decode result
-               if _arguments.has_key('----'):
-                       return _arguments['----']
-
-       def mod(self, _object, _attributes={}, **_arguments):
-               """mod: Remainder
-               Required argument: an AE object reference
-               Keyword argument _attributes: AppleEvent attribute dictionary
-               Returns: anything
-               """
-               _code = 'ascr'
-               _subcode = 'mod '
-
-               if _arguments: raise TypeError, 'No optional args expected'
-               _arguments['----'] = _object
-
-
-               _reply, _arguments, _attributes = self.send(_code, _subcode,
-                               _arguments, _attributes)
-               if _arguments.has_key('errn'):
-                       raise aetools.Error, aetools.decodeerror(_arguments)
-               # XXXX Optionally decode result
-               if _arguments.has_key('----'):
-                       return _arguments['----']
-
-       def _5e_(self, _object, _attributes={}, **_arguments):
-               """^: Exponentiation
-               Required argument: an AE object reference
-               Keyword argument _attributes: AppleEvent attribute dictionary
-               Returns: anything
-               """
-               _code = 'ascr'
-               _subcode = '^   '
-
-               if _arguments: raise TypeError, 'No optional args expected'
-               _arguments['----'] = _object
-
-
-               _reply, _arguments, _attributes = self.send(_code, _subcode,
-                               _arguments, _attributes)
-               if _arguments.has_key('errn'):
-                       raise aetools.Error, aetools.decodeerror(_arguments)
-               # XXXX Optionally decode result
-               if _arguments.has_key('----'):
-                       return _arguments['----']
-
-       def _3e_(self, _object, _attributes={}, **_arguments):
-               """>: Greater than
-               Required argument: an AE object reference
-               Keyword argument _attributes: AppleEvent attribute dictionary
-               Returns: anything
-               """
-               _code = 'ascr'
-               _subcode = '>   '
-
-               if _arguments: raise TypeError, 'No optional args expected'
-               _arguments['----'] = _object
-
-
-               _reply, _arguments, _attributes = self.send(_code, _subcode,
-                               _arguments, _attributes)
-               if _arguments.has_key('errn'):
-                       raise aetools.Error, aetools.decodeerror(_arguments)
-               # XXXX Optionally decode result
-               if _arguments.has_key('----'):
-                       return _arguments['----']
-
-       def _b3_(self, _object, _attributes={}, **_arguments):
-               """\84: Greater than or equal to
-               Required argument: an AE object reference
-               Keyword argument _attributes: AppleEvent attribute dictionary
-               Returns: anything
-               """
-               _code = 'ascr'
-               _subcode = '>=  '
-
-               if _arguments: raise TypeError, 'No optional args expected'
-               _arguments['----'] = _object
-
-
-               _reply, _arguments, _attributes = self.send(_code, _subcode,
-                               _arguments, _attributes)
-               if _arguments.has_key('errn'):
-                       raise aetools.Error, aetools.decodeerror(_arguments)
-               # XXXX Optionally decode result
-               if _arguments.has_key('----'):
-                       return _arguments['----']
-
-       def _3c_(self, _object, _attributes={}, **_arguments):
-               """<: Less than
-               Required argument: an AE object reference
-               Keyword argument _attributes: AppleEvent attribute dictionary
-               Returns: anything
-               """
-               _code = 'ascr'
-               _subcode = '<   '
-
-               if _arguments: raise TypeError, 'No optional args expected'
-               _arguments['----'] = _object
-
-
-               _reply, _arguments, _attributes = self.send(_code, _subcode,
-                               _arguments, _attributes)
-               if _arguments.has_key('errn'):
-                       raise aetools.Error, aetools.decodeerror(_arguments)
-               # XXXX Optionally decode result
-               if _arguments.has_key('----'):
-                       return _arguments['----']
-
-       def _b2_(self, _object, _attributes={}, **_arguments):
-               """¾: Less than or equal to
-               Required argument: an AE object reference
-               Keyword argument _attributes: AppleEvent attribute dictionary
-               Returns: anything
-               """
-               _code = 'ascr'
-               _subcode = '<=  '
-
-               if _arguments: raise TypeError, 'No optional args expected'
-               _arguments['----'] = _object
-
-
-               _reply, _arguments, _attributes = self.send(_code, _subcode,
-                               _arguments, _attributes)
-               if _arguments.has_key('errn'):
-                       raise aetools.Error, aetools.decodeerror(_arguments)
-               # XXXX Optionally decode result
-               if _arguments.has_key('----'):
-                       return _arguments['----']
-
-       def _26_(self, _object, _attributes={}, **_arguments):
-               """&: Concatenation
-               Required argument: an AE object reference
-               Keyword argument _attributes: AppleEvent attribute dictionary
-               Returns: anything
-               """
-               _code = 'ascr'
-               _subcode = 'ccat'
-
-               if _arguments: raise TypeError, 'No optional args expected'
-               _arguments['----'] = _object
-
-
-               _reply, _arguments, _attributes = self.send(_code, _subcode,
-                               _arguments, _attributes)
-               if _arguments.has_key('errn'):
-                       raise aetools.Error, aetools.decodeerror(_arguments)
-               # XXXX Optionally decode result
-               if _arguments.has_key('----'):
-                       return _arguments['----']
-
-       def starts_with(self, _object, _attributes={}, **_arguments):
-               """starts with: Starts with
-               Required argument: an AE object reference
-               Keyword argument _attributes: AppleEvent attribute dictionary
-               Returns: anything
-               """
-               _code = 'ascr'
-               _subcode = 'bgwt'
-
-               if _arguments: raise TypeError, 'No optional args expected'
-               _arguments['----'] = _object
-
-
-               _reply, _arguments, _attributes = self.send(_code, _subcode,
-                               _arguments, _attributes)
-               if _arguments.has_key('errn'):
-                       raise aetools.Error, aetools.decodeerror(_arguments)
-               # XXXX Optionally decode result
-               if _arguments.has_key('----'):
-                       return _arguments['----']
-
-       def ends_with(self, _object, _attributes={}, **_arguments):
-               """ends with: Ends with
-               Required argument: an AE object reference
-               Keyword argument _attributes: AppleEvent attribute dictionary
-               Returns: anything
-               """
-               _code = 'ascr'
-               _subcode = 'ends'
-
-               if _arguments: raise TypeError, 'No optional args expected'
-               _arguments['----'] = _object
-
-
-               _reply, _arguments, _attributes = self.send(_code, _subcode,
-                               _arguments, _attributes)
-               if _arguments.has_key('errn'):
-                       raise aetools.Error, aetools.decodeerror(_arguments)
-               # XXXX Optionally decode result
-               if _arguments.has_key('----'):
-                       return _arguments['----']
-
-       def contains(self, _object, _attributes={}, **_arguments):
-               """contains: Containment
-               Required argument: an AE object reference
-               Keyword argument _attributes: AppleEvent attribute dictionary
-               Returns: anything
-               """
-               _code = 'ascr'
-               _subcode = 'cont'
-
-               if _arguments: raise TypeError, 'No optional args expected'
-               _arguments['----'] = _object
-
-
-               _reply, _arguments, _attributes = self.send(_code, _subcode,
-                               _arguments, _attributes)
-               if _arguments.has_key('errn'):
-                       raise aetools.Error, aetools.decodeerror(_arguments)
-               # XXXX Optionally decode result
-               if _arguments.has_key('----'):
-                       return _arguments['----']
-
-       def _and(self, _object, _attributes={}, **_arguments):
-               """and: Logical conjunction
-               Required argument: an AE object reference
-               Keyword argument _attributes: AppleEvent attribute dictionary
-               Returns: anything
-               """
-               _code = 'ascr'
-               _subcode = 'AND '
-
-               if _arguments: raise TypeError, 'No optional args expected'
-               _arguments['----'] = _object
-
-
-               _reply, _arguments, _attributes = self.send(_code, _subcode,
-                               _arguments, _attributes)
-               if _arguments.has_key('errn'):
-                       raise aetools.Error, aetools.decodeerror(_arguments)
-               # XXXX Optionally decode result
-               if _arguments.has_key('----'):
-                       return _arguments['----']
-
-       def _or(self, _object, _attributes={}, **_arguments):
-               """or: Logical disjunction
-               Required argument: an AE object reference
-               Keyword argument _attributes: AppleEvent attribute dictionary
-               Returns: anything
-               """
-               _code = 'ascr'
-               _subcode = 'OR  '
-
-               if _arguments: raise TypeError, 'No optional args expected'
-               _arguments['----'] = _object
-
-
-               _reply, _arguments, _attributes = self.send(_code, _subcode,
-                               _arguments, _attributes)
-               if _arguments.has_key('errn'):
-                       raise aetools.Error, aetools.decodeerror(_arguments)
-               # XXXX Optionally decode result
-               if _arguments.has_key('----'):
-                       return _arguments['----']
-
-       def as(self, _object, _attributes={}, **_arguments):
-               """as: Coercion
-               Required argument: an AE object reference
-               Keyword argument _attributes: AppleEvent attribute dictionary
-               Returns: anything
-               """
-               _code = 'ascr'
-               _subcode = 'coer'
-
-               if _arguments: raise TypeError, 'No optional args expected'
-               _arguments['----'] = _object
-
-
-               _reply, _arguments, _attributes = self.send(_code, _subcode,
-                               _arguments, _attributes)
-               if _arguments.has_key('errn'):
-                       raise aetools.Error, aetools.decodeerror(_arguments)
-               # XXXX Optionally decode result
-               if _arguments.has_key('----'):
-                       return _arguments['----']
-
-       def _not(self, _object, _attributes={}, **_arguments):
-               """not: Logical negation
-               Required argument: an AE object reference
-               Keyword argument _attributes: AppleEvent attribute dictionary
-               Returns: anything
-               """
-               _code = 'ascr'
-               _subcode = 'NOT '
-
-               if _arguments: raise TypeError, 'No optional args expected'
-               _arguments['----'] = _object
-
-
-               _reply, _arguments, _attributes = self.send(_code, _subcode,
-                               _arguments, _attributes)
-               if _arguments.has_key('errn'):
-                       raise aetools.Error, aetools.decodeerror(_arguments)
-               # XXXX Optionally decode result
-               if _arguments.has_key('----'):
-                       return _arguments['----']
-
-       def negate(self, _object, _attributes={}, **_arguments):
-               """negate: Numeric negation
-               Required argument: an AE object reference
-               Keyword argument _attributes: AppleEvent attribute dictionary
-               Returns: anything
-               """
-               _code = 'ascr'
-               _subcode = 'neg '
-
-               if _arguments: raise TypeError, 'No optional args expected'
-               _arguments['----'] = _object
-
-
-               _reply, _arguments, _attributes = self.send(_code, _subcode,
-                               _arguments, _attributes)
-               if _arguments.has_key('errn'):
-                       raise aetools.Error, aetools.decodeerror(_arguments)
-               # XXXX Optionally decode result
-               if _arguments.has_key('----'):
-                       return _arguments['----']
-
-
-class _empty_ae_name(aetools.ComponentItem):
-       """ - the undefined value"""
-       want = 'undf'
-
-class upper_case(aetools.ComponentItem):
-       """upper case - Text with lower case converted to upper case"""
-       want = 'case'
-
-class machines(aetools.ComponentItem):
-       """machines - every computer"""
-       want = 'mach'
-
-machine = machines
-
-class zones(aetools.ComponentItem):
-       """zones - every AppleTalk zone"""
-       want = 'zone'
-
-zone = zones
-
-class seconds(aetools.ComponentItem):
-       """seconds - more than one second"""
-       want = 'scnd'
-
-class item(aetools.ComponentItem):
-       """item - An item of any type"""
-       want = 'cobj'
-class id(aetools.NProperty):
-       """id - the unique id number of this object"""
-       which = 'ID  '
-       want = 'long'
-
-items = item
-
-class text_items(aetools.ComponentItem):
-       """text items - """
-       want = 'citm'
-
-text_item = text_items
-
-class date(aetools.ComponentItem):
-       """date - Absolute date and time values"""
-       want = 'ldt '
-class weekday(aetools.NProperty):
-       """weekday - the day of a week of a date"""
-       which = 'wkdy'
-       want = 'wkdy'
-class month(aetools.NProperty):
-       """month - the month of a date"""
-       which = 'mnth'
-       want = 'mnth'
-class day(aetools.NProperty):
-       """day - the day of the month of a date"""
-       which = 'day '
-       want = 'long'
-class year(aetools.NProperty):
-       """year - the year of a date"""
-       which = 'year'
-       want = 'long'
-class time(aetools.NProperty):
-       """time - the time since midnight of a date"""
-       which = 'time'
-       want = 'long'
-class date_string(aetools.NProperty):
-       """date string - the date portion of a date-time value as a string"""
-       which = 'dstr'
-       want = 'TEXT'
-class time_string(aetools.NProperty):
-       """time string - the time portion of a date-time value as a string"""
-       which = 'tstr'
-       want = 'TEXT'
-
-dates = date
-
-class month(aetools.ComponentItem):
-       """month - a month"""
-       want = 'mnth'
-
-months = month
-
-class January(aetools.ComponentItem):
-       """January - It's June in January..."""
-       want = 'jan '
-
-class February(aetools.ComponentItem):
-       """February - the month of February"""
-       want = 'feb '
-
-class March(aetools.ComponentItem):
-       """March - the month of March"""
-       want = 'mar '
-
-class April(aetools.ComponentItem):
-       """April - the month of April"""
-       want = 'apr '
-
-class May(aetools.ComponentItem):
-       """May - the very merry month of May"""
-       want = 'may '
-
-class June(aetools.ComponentItem):
-       """June - the month of June"""
-       want = 'jun '
-
-class July(aetools.ComponentItem):
-       """July - the month of July"""
-       want = 'jul '
-
-class August(aetools.ComponentItem):
-       """August - the month of August"""
-       want = 'aug '
-
-class September(aetools.ComponentItem):
-       """September - the month of September"""
-       want = 'sep '
-
-class October(aetools.ComponentItem):
-       """October - the month of October"""
-       want = 'oct '
-
-class November(aetools.ComponentItem):
-       """November - the month of November"""
-       want = 'nov '
-
-class December(aetools.ComponentItem):
-       """December - the month of December"""
-       want = 'dec '
-
-class weekday(aetools.ComponentItem):
-       """weekday - a weekday"""
-       want = 'wkdy'
-
-weekdays = weekday
-
-class Sunday(aetools.ComponentItem):
-       """Sunday - Sunday Bloody Sunday"""
-       want = 'sun '
-
-class Monday(aetools.ComponentItem):
-       """Monday - Blue Monday"""
-       want = 'mon '
-
-class Tuesday(aetools.ComponentItem):
-       """Tuesday - Ruby Tuesday"""
-       want = 'tue '
-
-class Wednesday(aetools.ComponentItem):
-       """Wednesday - Wednesday Week"""
-       want = 'wed '
-
-class Thursday(aetools.ComponentItem):
-       """Thursday - Thursday Afternoon"""
-       want = 'thu '
-
-class Friday(aetools.ComponentItem):
-       """Friday - Friday"""
-       want = 'fri '
-
-class Saturday(aetools.ComponentItem):
-       """Saturday - Saturday Night's Alright for Fighting"""
-       want = 'sat '
-
-class RGB_color(aetools.ComponentItem):
-       """RGB color - Three numbers specifying red, green, blue color values"""
-       want = 'cRGB'
-
-RGB_colors = RGB_color
-
-class integer(aetools.ComponentItem):
-       """integer - An integral number"""
-       want = 'long'
-
-integers = integer
-
-class boolean(aetools.ComponentItem):
-       """boolean - A true or false value"""
-       want = 'bool'
-
-booleans = boolean
-
-class real(aetools.ComponentItem):
-       """real - A real number"""
-       want = 'doub'
-
-reals = real
-
-class list(aetools.ComponentItem):
-       """list - An ordered collection of items"""
-       want = 'list'
-class length(aetools.NProperty):
-       """length - the length of a list"""
-       which = 'leng'
-       want = 'long'
-
-lists = list
-
-class linked_list(aetools.ComponentItem):
-       """linked list - An ordered collection of items"""
-       want = 'llst'
-# repeated property length the length of a list
-
-linked_lists = linked_list
-
-class vector(aetools.ComponentItem):
-       """vector - An ordered collection of items"""
-       want = 'vect'
-# repeated property length the length of a list
-
-vectors = vector
-
-class record(aetools.ComponentItem):
-       """record - A set of labeled items"""
-       want = 'reco'
-
-records = record
-
-class script(aetools.ComponentItem):
-       """script - An AppleScript script"""
-       want = 'scpt'
-class parent(aetools.NProperty):
-       """parent - the parent of a script"""
-       which = 'pare'
-       want = 'scpt'
-
-scripts = script
-
-class string(aetools.ComponentItem):
-       """string - a sequence of characters"""
-       want = 'TEXT'
-
-strings = string
-
-class styled_text(aetools.ComponentItem):
-       """styled text - a sequence of characters with style"""
-       want = 'STXT'
-
-class number(aetools.ComponentItem):
-       """number - an integer or floating point number"""
-       want = 'nmbr'
-
-numbers = number
-
-class _class(aetools.ComponentItem):
-       """class - the type of a value"""
-       want = 'pcls'
-class inherits(aetools.NProperty):
-       """inherits - classes to inherit properties from"""
-       which = 'c@#^'
-       want = 'pcls'
-
-classes = _class
-
-class event(aetools.ComponentItem):
-       """event - an AppleEvents event"""
-       want = 'evnt'
-
-events = event
-
-class property(aetools.ComponentItem):
-       """property - an AppleEvents property"""
-       want = 'prop'
-
-properties = property
-
-class constant(aetools.ComponentItem):
-       """constant - A constant value"""
-       want = 'enum'
-
-constants = constant
-
-class preposition(aetools.ComponentItem):
-       """preposition - an AppleEvents preposition"""
-       want = 'prep'
-
-prepositions = preposition
-
-class key(aetools.ComponentItem):
-       """key - an AppleEvents key form"""
-       want = 'keyf'
-
-keys = key
-
-class picture(aetools.ComponentItem):
-       """picture - A picture"""
-       want = 'PICT'
-
-pictures = picture
-
-class reference(aetools.ComponentItem):
-       """reference - An AppleScript reference"""
-       want = 'obj '
-
-references = reference
-
-class data(aetools.ComponentItem):
-       """data - An AppleScript raw data object"""
-       want = 'rdat'
-
-class handler(aetools.ComponentItem):
-       """handler - An AppleScript handler"""
-       want = 'hand'
-
-handlers = handler
-
-class list_or_record(aetools.ComponentItem):
-       """list or record - a list or record"""
-       want = 'lr  '
-
-class list_or_string(aetools.ComponentItem):
-       """list or string - a list or string"""
-       want = 'ls  '
-
-class list_2c__record_or_text(aetools.ComponentItem):
-       """list, record or text - a list, record or text"""
-       want = 'lrs '
-
-class number_or_date(aetools.ComponentItem):
-       """number or date - a number or date"""
-       want = 'nd  '
-
-class number_2c__date_or_text(aetools.ComponentItem):
-       """number, date or text - a number, date or text"""
-       want = 'nds '
-
-class alias(aetools.ComponentItem):
-       """alias - a reference to an existing file"""
-       want = 'alis'
-
-aliases = alias
-
-class application(aetools.ComponentItem):
-       """application - specifies global properties of AppleScript"""
-       want = 'capp'
-class result(aetools.NProperty):
-       """result - the last result of evaluation"""
-       which = 'rslt'
-       want = 'cobj'
-class space(aetools.NProperty):
-       """space - a space character"""
-       which = 'spac'
-       want = 'TEXT'
-class _return(aetools.NProperty):
-       """return - a return character"""
-       which = 'ret '
-       want = 'TEXT'
-class tab(aetools.NProperty):
-       """tab - a tab character"""
-       which = 'tab '
-       want = 'TEXT'
-class minutes(aetools.NProperty):
-       """minutes - the number of seconds in a minute"""
-       which = 'min '
-       want = 'TEXT'
-class hours(aetools.NProperty):
-       """hours - the number of seconds in an hour"""
-       which = 'hour'
-       want = 'TEXT'
-class days(aetools.NProperty):
-       """days - the number of seconds in a day"""
-       which = 'days'
-       want = 'TEXT'
-class weeks(aetools.NProperty):
-       """weeks - the number of seconds in a week"""
-       which = 'week'
-       want = 'TEXT'
-class pi(aetools.NProperty):
-       """pi - the constant pi"""
-       which = 'pi  '
-       want = 'doub'
-class print_length(aetools.NProperty):
-       """print length - the maximum length to print"""
-       which = 'prln'
-       want = 'long'
-class print_depth(aetools.NProperty):
-       """print depth - the maximum depth to print"""
-       which = 'prdp'
-       want = 'long'
-class reverse(aetools.NProperty):
-       """reverse - the reverse of a list"""
-       which = 'rvse'
-       want = 'list'
-class rest(aetools.NProperty):
-       """rest - the rest of a list"""
-       which = 'rest'
-       want = 'list'
-class text_item_delimiters(aetools.NProperty):
-       """text item delimiters - the text item delimiters of a string"""
-       which = 'txdl'
-       want = 'list'
-class AppleScript(aetools.NProperty):
-       """AppleScript - the top-level script object"""
-       which = 'ascr'
-       want = 'scpt'
-
-applications = application
-
-app = application
-
-class version(aetools.ComponentItem):
-       """version - a version value"""
-       want = 'vers'
-
-class writing_code_info(aetools.ComponentItem):
-       """writing code info - Script code and language code of text run"""
-       want = 'citl'
-class script_code(aetools.NProperty):
-       """script code - the script code for the text"""
-       which = 'pscd'
-       want = 'shor'
-class language_code(aetools.NProperty):
-       """language code - the language code for the text"""
-       which = 'plcd'
-       want = 'shor'
-
-writing_code_infos = writing_code_info
-_empty_ae_name._propdict = {
-}
-_empty_ae_name._elemdict = {
-}
-upper_case._propdict = {
-}
-upper_case._elemdict = {
-}
-machines._propdict = {
-}
-machines._elemdict = {
-}
-zones._propdict = {
-}
-zones._elemdict = {
-}
-seconds._propdict = {
-}
-seconds._elemdict = {
-}
-item._propdict = {
-       'id' : id,
-}
-item._elemdict = {
-}
-text_items._propdict = {
-}
-text_items._elemdict = {
-}
-date._propdict = {
-       'weekday' : weekday,
-       'month' : month,
-       'day' : day,
-       'year' : year,
-       'time' : time,
-       'date_string' : date_string,
-       'time_string' : time_string,
-}
-date._elemdict = {
-}
-month._propdict = {
-}
-month._elemdict = {
-}
-January._propdict = {
-}
-January._elemdict = {
-}
-February._propdict = {
-}
-February._elemdict = {
-}
-March._propdict = {
-}
-March._elemdict = {
-}
-April._propdict = {
-}
-April._elemdict = {
-}
-May._propdict = {
-}
-May._elemdict = {
-}
-June._propdict = {
-}
-June._elemdict = {
-}
-July._propdict = {
-}
-July._elemdict = {
-}
-August._propdict = {
-}
-August._elemdict = {
-}
-September._propdict = {
-}
-September._elemdict = {
-}
-October._propdict = {
-}
-October._elemdict = {
-}
-November._propdict = {
-}
-November._elemdict = {
-}
-December._propdict = {
-}
-December._elemdict = {
-}
-weekday._propdict = {
-}
-weekday._elemdict = {
-}
-Sunday._propdict = {
-}
-Sunday._elemdict = {
-}
-Monday._propdict = {
-}
-Monday._elemdict = {
-}
-Tuesday._propdict = {
-}
-Tuesday._elemdict = {
-}
-Wednesday._propdict = {
-}
-Wednesday._elemdict = {
-}
-Thursday._propdict = {
-}
-Thursday._elemdict = {
-}
-Friday._propdict = {
-}
-Friday._elemdict = {
-}
-Saturday._propdict = {
-}
-Saturday._elemdict = {
-}
-RGB_color._propdict = {
-}
-RGB_color._elemdict = {
-}
-integer._propdict = {
-}
-integer._elemdict = {
-}
-boolean._propdict = {
-}
-boolean._elemdict = {
-}
-real._propdict = {
-}
-real._elemdict = {
-}
-list._propdict = {
-       'length' : length,
-}
-list._elemdict = {
-}
-linked_list._propdict = {
-       'length' : length,
-}
-linked_list._elemdict = {
-}
-vector._propdict = {
-       'length' : length,
-}
-vector._elemdict = {
-}
-record._propdict = {
-}
-record._elemdict = {
-}
-script._propdict = {
-       'parent' : parent,
-}
-script._elemdict = {
-}
-string._propdict = {
-}
-string._elemdict = {
-}
-styled_text._propdict = {
-}
-styled_text._elemdict = {
-}
-number._propdict = {
-}
-number._elemdict = {
-}
-_class._propdict = {
-       'inherits' : inherits,
-}
-_class._elemdict = {
-}
-event._propdict = {
-}
-event._elemdict = {
-}
-property._propdict = {
-}
-property._elemdict = {
-}
-constant._propdict = {
-}
-constant._elemdict = {
-}
-preposition._propdict = {
-}
-preposition._elemdict = {
-}
-key._propdict = {
-}
-key._elemdict = {
-}
-picture._propdict = {
-}
-picture._elemdict = {
-}
-reference._propdict = {
-}
-reference._elemdict = {
-}
-data._propdict = {
-}
-data._elemdict = {
-}
-handler._propdict = {
-}
-handler._elemdict = {
-}
-list_or_record._propdict = {
-}
-list_or_record._elemdict = {
-}
-list_or_string._propdict = {
-}
-list_or_string._elemdict = {
-}
-list_2c__record_or_text._propdict = {
-}
-list_2c__record_or_text._elemdict = {
-}
-number_or_date._propdict = {
-}
-number_or_date._elemdict = {
-}
-number_2c__date_or_text._propdict = {
-}
-number_2c__date_or_text._elemdict = {
-}
-alias._propdict = {
-}
-alias._elemdict = {
-}
-application._propdict = {
-       'result' : result,
-       'space' : space,
-       '_return' : _return,
-       'tab' : tab,
-       'minutes' : minutes,
-       'hours' : hours,
-       'days' : days,
-       'weeks' : weeks,
-       'pi' : pi,
-       'print_length' : print_length,
-       'print_depth' : print_depth,
-       'reverse' : reverse,
-       'rest' : rest,
-       'text_item_delimiters' : text_item_delimiters,
-       'AppleScript' : AppleScript,
-}
-application._elemdict = {
-}
-version._propdict = {
-}
-version._elemdict = {
-}
-writing_code_info._propdict = {
-       'script_code' : script_code,
-       'language_code' : language_code,
-}
-writing_code_info._elemdict = {
-}
-_Enum_cons = {
-       'case' : 'case',        # case
-       'diacriticals' : 'diac',        # diacriticals
-       'white_space' : 'whit', # white space
-       'hyphens' : 'hyph',     # hyphens
-       'expansion' : 'expa',   # expansion
-       'punctuation' : 'punc', # punctuation
-       'application_responses' : 'rmte',       # remote event replies
-}
-
-_Enum_boov = {
-       'true' : 'true',        # the true boolean value
-       'false' : 'fals',       # the false boolean value
-}
-
-_Enum_misc = {
-       'current_application' : 'cura', # the current application
-}
-
-
-#
-# Indices of types declared in this module
-#
-_classdeclarations = {
-       'jan ' : January,
-       'PICT' : picture,
-       'vers' : version,
-       'sat ' : Saturday,
-       'nov ' : November,
-       'ls  ' : list_or_string,
-       'list' : list,
-       'cRGB' : RGB_color,
-       'citl' : writing_code_info,
-       'scnd' : seconds,
-       'thu ' : Thursday,
-       'keyf' : key,
-       'sun ' : Sunday,
-       'wkdy' : weekday,
-       'rdat' : data,
-       'vect' : vector,
-       'obj ' : reference,
-       'hand' : handler,
-       'tue ' : Tuesday,
-       'dec ' : December,
-       'enum' : constant,
-       'nd  ' : number_or_date,
-       'wed ' : Wednesday,
-       'undf' : _empty_ae_name,
-       'reco' : record,
-       'capp' : application,
-       'cobj' : item,
-       'prep' : preposition,
-       'mach' : machines,
-       'citm' : text_items,
-       'bool' : boolean,
-       'nmbr' : number,
-       'prop' : property,
-       'long' : integer,
-       'sep ' : September,
-       'scpt' : script,
-       'pcls' : _class,
-       'alis' : alias,
-       'mon ' : Monday,
-       'lr  ' : list_or_record,
-       'jul ' : July,
-       'fri ' : Friday,
-       'oct ' : October,
-       'mar ' : March,
-       'ldt ' : date,
-       'lrs ' : list_2c__record_or_text,
-       'jun ' : June,
-       'case' : upper_case,
-       'doub' : real,
-       'feb ' : February,
-       'nds ' : number_2c__date_or_text,
-       'llst' : linked_list,
-       'STXT' : styled_text,
-       'aug ' : August,
-       'TEXT' : string,
-       'apr ' : April,
-       'may ' : May,
-       'zone' : zones,
-       'evnt' : event,
-       'mnth' : month,
-}
-
-_propdeclarations = {
-       'day ' : day,
-       'rslt' : result,
-       'time' : time,
-       'prln' : print_length,
-       'prdp' : print_depth,
-       'txdl' : text_item_delimiters,
-       'days' : days,
-       'spac' : space,
-       'hour' : hours,
-       'pscd' : script_code,
-       'plcd' : language_code,
-       'ret ' : _return,
-       'tstr' : time_string,
-       'tab ' : tab,
-       'rvse' : reverse,
-       'wkdy' : weekday,
-       'ID  ' : id,
-       'c@#^' : inherits,
-       'ascr' : AppleScript,
-       'rest' : rest,
-       'dstr' : date_string,
-       'min ' : minutes,
-       'pi  ' : pi,
-       'leng' : length,
-       'year' : year,
-       'pare' : parent,
-       'mnth' : month,
-       'week' : weeks,
-}
-
-_compdeclarations = {
-}
-
-_enumdeclarations = {
-       'cons' : _Enum_cons,
-       'boov' : _Enum_boov,
-       'misc' : _Enum_misc,
-}
diff --git a/Mac/Lib/lib-scripting/CodeWarrior_Standard_Suite.py b/Mac/Lib/lib-scripting/CodeWarrior_Standard_Suite.py
deleted file mode 100644 (file)
index 262cfce..0000000
+++ /dev/null
@@ -1,423 +0,0 @@
-"""Suite CodeWarrior Standard Suite: Standard suite events supported by the CodeWarrior IDE.
-Level 1, version 1
-
-Generated from flap:Metrowerks:Metrowerks CodeWarrior:CodeWarrior IDE 2.0.1
-AETE/AEUT resource version 1/0, language 0, script 0
-"""
-
-import aetools
-import MacOS
-
-_code = 'CWIE'
-
-class CodeWarrior_Standard_Suite:
-
-       _argmap_close = {
-               'saving' : 'savo',
-               'saving_in' : 'kfil',
-       }
-
-       def close(self, _object, _attributes={}, **_arguments):
-               """close: Close an object
-               Required argument: the object to close
-               Keyword argument saving: Specifies whether or not changes should be saved before closing
-               Keyword argument saving_in: the file in which to save the object
-               Keyword argument _attributes: AppleEvent attribute dictionary
-               """
-               _code = 'core'
-               _subcode = 'clos'
-
-               aetools.keysubst(_arguments, self._argmap_close)
-               _arguments['----'] = _object
-
-               aetools.enumsubst(_arguments, 'savo', _Enum_savo)
-
-               _reply, _arguments, _attributes = self.send(_code, _subcode,
-                               _arguments, _attributes)
-               if _arguments.has_key('errn'):
-                       raise aetools.Error, aetools.decodeerror(_arguments)
-               # XXXX Optionally decode result
-               if _arguments.has_key('----'):
-                       return _arguments['----']
-
-       _argmap_count = {
-               'each' : 'kocl',
-       }
-
-       def count(self, _object, _attributes={}, **_arguments):
-               """count: Return the number of elements of a particular class within an object
-               Required argument: the object whose elements are to be counted
-               Keyword argument each: the class of the elements to be counted. Keyword 'each' is optional in AppleScript
-               Keyword argument _attributes: AppleEvent attribute dictionary
-               Returns: the number of elements
-               """
-               _code = 'core'
-               _subcode = 'cnte'
-
-               aetools.keysubst(_arguments, self._argmap_count)
-               _arguments['----'] = _object
-
-
-               _reply, _arguments, _attributes = self.send(_code, _subcode,
-                               _arguments, _attributes)
-               if _arguments.has_key('errn'):
-                       raise aetools.Error, aetools.decodeerror(_arguments)
-               # XXXX Optionally decode result
-               if _arguments.has_key('----'):
-                       return _arguments['----']
-
-       _argmap_get = {
-               'as' : 'rtyp',
-       }
-
-       def get(self, _object, _attributes={}, **_arguments):
-               """get: Get the data for an object
-               Required argument: the object whose data is to be returned
-               Keyword argument as: the desired types for the data, in order of preference
-               Keyword argument _attributes: AppleEvent attribute dictionary
-               Returns: The data from the object
-               """
-               _code = 'core'
-               _subcode = 'getd'
-
-               aetools.keysubst(_arguments, self._argmap_get)
-               _arguments['----'] = _object
-
-
-               _reply, _arguments, _attributes = self.send(_code, _subcode,
-                               _arguments, _attributes)
-               if _arguments.has_key('errn'):
-                       raise aetools.Error, aetools.decodeerror(_arguments)
-               # XXXX Optionally decode result
-               if _arguments.has_key('----'):
-                       return _arguments['----']
-
-       _argmap_make = {
-               'new' : 'kocl',
-               'at' : 'insh',
-               'with_data' : 'data',
-               'with_properties' : 'prdt',
-       }
-
-       def make(self, _no_object=None, _attributes={}, **_arguments):
-               """make: Make a new element
-               Keyword argument new: the class of the new element. Keyword 'new' is optional in AppleScript
-               Keyword argument at: the location at which to insert the element
-               Keyword argument with_data: the initial data for the element
-               Keyword argument with_properties: the initial values for the properties of the element
-               Keyword argument _attributes: AppleEvent attribute dictionary
-               Returns: to the new object(s)
-               """
-               _code = 'core'
-               _subcode = 'crel'
-
-               aetools.keysubst(_arguments, self._argmap_make)
-               if _no_object != None: raise TypeError, 'No direct arg expected'
-
-
-               _reply, _arguments, _attributes = self.send(_code, _subcode,
-                               _arguments, _attributes)
-               if _arguments.has_key('errn'):
-                       raise aetools.Error, aetools.decodeerror(_arguments)
-               # XXXX Optionally decode result
-               if _arguments.has_key('----'):
-                       return _arguments['----']
-
-       def select(self, _object=None, _attributes={}, **_arguments):
-               """select: Select the specified object
-               Required argument: the object to select
-               Keyword argument _attributes: AppleEvent attribute dictionary
-               """
-               _code = 'misc'
-               _subcode = 'slct'
-
-               if _arguments: raise TypeError, 'No optional args expected'
-               _arguments['----'] = _object
-
-
-               _reply, _arguments, _attributes = self.send(_code, _subcode,
-                               _arguments, _attributes)
-               if _arguments.has_key('errn'):
-                       raise aetools.Error, aetools.decodeerror(_arguments)
-               # XXXX Optionally decode result
-               if _arguments.has_key('----'):
-                       return _arguments['----']
-
-       _argmap_set = {
-               'to' : 'data',
-       }
-
-       def set(self, _object, _attributes={}, **_arguments):
-               """set: Set an object's data
-               Required argument: the object to change
-               Keyword argument to: the new value
-               Keyword argument _attributes: AppleEvent attribute dictionary
-               """
-               _code = 'core'
-               _subcode = 'setd'
-
-               aetools.keysubst(_arguments, self._argmap_set)
-               _arguments['----'] = _object
-
-
-               _reply, _arguments, _attributes = self.send(_code, _subcode,
-                               _arguments, _attributes)
-               if _arguments.has_key('errn'):
-                       raise aetools.Error, aetools.decodeerror(_arguments)
-               # XXXX Optionally decode result
-               if _arguments.has_key('----'):
-                       return _arguments['----']
-
-
-class application(aetools.ComponentItem):
-       """application - An application program"""
-       want = 'capp'
-class user_interaction(aetools.NProperty):
-       """user interaction - User interaction level"""
-       which = 'inte'
-       want = 'Inte'
-#        element 'docu' as ['indx', 'name', 'rang']
-#        element 'cwin' as ['indx', 'name', 'rang']
-#        element 'Clas' as ['indx', 'name']
-
-class character(aetools.ComponentItem):
-       """character - A character"""
-       want = 'cha '
-class offset(aetools.NProperty):
-       """offset - offset of a text object from the beginning of the document (first char has offset 1)"""
-       which = 'pOff'
-       want = 'long'
-class length(aetools.NProperty):
-       """length - length in characters of this object"""
-       which = 'pLen'
-       want = 'long'
-
-class document(aetools.ComponentItem):
-       """document - A document"""
-       want = 'docu'
-class file(aetools.NProperty):
-       """file - The file of the document"""
-       which = 'file'
-       want = 'fss '
-class index(aetools.NProperty):
-       """index - the number of the document"""
-       which = 'pidx'
-       want = 'long'
-class mode(aetools.NProperty):
-       """mode - The document¹s open mode"""
-       which = 'Mode'
-       want = 'Mode'
-class modified(aetools.NProperty):
-       """modified - Has the document been modified since the last save?"""
-       which = 'imod'
-       want = 'bool'
-class name(aetools.NProperty):
-       """name - the title of the document"""
-       which = 'pnam'
-       want = 'itxt'
-class selection(aetools.NProperty):
-       """selection - the selection visible to the user"""
-       which = 'sele'
-       want = 'csel'
-class window(aetools.NProperty):
-       """window - The window of this document."""
-       which = 'cwin'
-       want = 'cwin'
-#        element 'cha ' as ['indx', 'rele', 'rang', 'test']
-#        element 'cins' as ['rele']
-#        element 'clin' as ['indx', 'rang', 'rele']
-#        element 'ctxt' as ['rang']
-
-documents = document
-
-class file(aetools.ComponentItem):
-       """file - A file"""
-       want = 'file'
-
-files = file
-
-class insertion_point(aetools.ComponentItem):
-       """insertion point - An insertion location between two objects"""
-       want = 'cins'
-# repeated property length length of text object (in characters)
-# repeated property offset offset of a text object from the beginning of the document (first char has offset 1)
-
-class line(aetools.ComponentItem):
-       """line - Lines of text"""
-       want = 'clin'
-# repeated property index index of a line object from the beginning of the document (first line has index 1)
-# repeated property offset offset  (in characters) of a line object from the beginning of the document
-# repeated property length length in characters of this object
-#        element 'cha ' as ['indx', 'rang', 'rele']
-
-lines = line
-
-class selection_2d_object(aetools.ComponentItem):
-       """selection-object - the selection visible to the user"""
-       want = 'csel'
-class contents(aetools.NProperty):
-       """contents - the contents of the selection"""
-       which = 'pcnt'
-       want = 'type'
-# repeated property length length of text object (in characters)
-# repeated property offset offset of a text object from the beginning of the document (first char has offset 1)
-#        element 'cha ' as ['indx', 'rele', 'rang', 'test']
-#        element 'clin' as ['indx', 'rang', 'rele']
-#        element 'ctxt' as ['rang']
-
-class text(aetools.ComponentItem):
-       """text - Text"""
-       want = 'ctxt'
-# repeated property length length of text object (in characters)
-# repeated property offset offset of a text object from the beginning of the document (first char has offset 1)
-#        element 'cha ' as ['indx', 'rele', 'rang']
-#        element 'cins' as ['rele']
-#        element 'clin' as ['indx', 'rang', 'rele']
-#        element 'ctxt' as ['rang']
-
-class window(aetools.ComponentItem):
-       """window - A window"""
-       want = 'cwin'
-# repeated property name the title of the window
-# repeated property index the number of the window
-class bounds(aetools.NProperty):
-       """bounds - the boundary rectangle for the window"""
-       which = 'pbnd'
-       want = 'qdrt'
-class document(aetools.NProperty):
-       """document - the document object that owns this window"""
-       which = 'docu'
-       want = 'docu'
-class position(aetools.NProperty):
-       """position - upper left coordinates of window"""
-       which = 'ppos'
-       want = 'QDpt'
-class visible(aetools.NProperty):
-       """visible - is the window visible?"""
-       which = 'pvis'
-       want = 'bool'
-class zoomed(aetools.NProperty):
-       """zoomed - Is the window zoomed?"""
-       which = 'pzum'
-       want = 'bool'
-
-windows = window
-# XXXX application element 'Clas' not found!!
-application._propdict = {
-       'user_interaction' : user_interaction,
-}
-application._elemdict = {
-       'document' : document,
-       'window' : window,
-}
-character._propdict = {
-       'offset' : offset,
-       'length' : length,
-}
-character._elemdict = {
-}
-document._propdict = {
-       'file' : file,
-       'index' : index,
-       'mode' : mode,
-       'modified' : modified,
-       'name' : name,
-       'selection' : selection,
-       'window' : window,
-}
-document._elemdict = {
-       'character' : character,
-       'insertion_point' : insertion_point,
-       'line' : line,
-       'text' : text,
-}
-file._propdict = {
-}
-file._elemdict = {
-}
-insertion_point._propdict = {
-       'length' : length,
-       'offset' : offset,
-}
-insertion_point._elemdict = {
-}
-line._propdict = {
-       'index' : index,
-       'offset' : offset,
-       'length' : length,
-}
-line._elemdict = {
-       'character' : character,
-}
-selection_2d_object._propdict = {
-       'contents' : contents,
-       'length' : length,
-       'offset' : offset,
-}
-selection_2d_object._elemdict = {
-       'character' : character,
-       'line' : line,
-       'text' : text,
-}
-text._propdict = {
-       'length' : length,
-       'offset' : offset,
-}
-text._elemdict = {
-       'character' : character,
-       'insertion_point' : insertion_point,
-       'line' : line,
-       'text' : text,
-}
-window._propdict = {
-       'name' : name,
-       'index' : index,
-       'bounds' : bounds,
-       'document' : document,
-       'position' : position,
-       'visible' : visible,
-       'zoomed' : zoomed,
-}
-window._elemdict = {
-}
-# XXXX enum savo not found!!
-
-#
-# Indices of types declared in this module
-#
-_classdeclarations = {
-       'docu' : document,
-       'cins' : insertion_point,
-       'capp' : application,
-       'ctxt' : text,
-       'csel' : selection_2d_object,
-       'clin' : line,
-       'file' : file,
-       'cwin' : window,
-       'cha ' : character,
-}
-
-_propdeclarations = {
-       'pzum' : zoomed,
-       'pOff' : offset,
-       'pLen' : length,
-       'pnam' : name,
-       'file' : file,
-       'pcnt' : contents,
-       'cwin' : window,
-       'ppos' : position,
-       'pidx' : index,
-       'docu' : document,
-       'pvis' : visible,
-       'sele' : selection,
-       'pbnd' : bounds,
-       'imod' : modified,
-       'Mode' : mode,
-       'inte' : user_interaction,
-}
-
-_compdeclarations = {
-}
-
-_enumdeclarations = {
-}
diff --git a/Mac/Lib/lib-scripting/Finder_Suite.py b/Mac/Lib/lib-scripting/Finder_Suite.py
deleted file mode 100644 (file)
index 293851b..0000000
+++ /dev/null
@@ -1,1632 +0,0 @@
-"""Suite Finder Suite: Objects and Events for the Finder
-Level 1, version 1
-
-Generated from flap:System Folder:Extensions:Finder Scripting Extension
-AETE/AEUT resource version 0/144, language 0, script 0
-"""
-
-import aetools
-import MacOS
-
-_code = 'fndr'
-
-class Finder_Suite:
-
-       _argmap_clean_up = {
-               'by' : 'by  ',
-       }
-
-       def clean_up(self, _object, _attributes={}, **_arguments):
-               """clean up: Arrange items in window nicely
-               Required argument: the window to clean up
-               Keyword argument by: the order in which to clean up the objects
-               Keyword argument _attributes: AppleEvent attribute dictionary
-               """
-               _code = 'fndr'
-               _subcode = 'fclu'
-
-               aetools.keysubst(_arguments, self._argmap_clean_up)
-               _arguments['----'] = _object
-
-
-               _reply, _arguments, _attributes = self.send(_code, _subcode,
-                               _arguments, _attributes)
-               if _arguments.has_key('errn'):
-                       raise aetools.Error, aetools.decodeerror(_arguments)
-               # XXXX Optionally decode result
-               if _arguments.has_key('----'):
-                       return _arguments['----']
-
-       _argmap_computer = {
-               'has' : 'has ',
-       }
-
-       def computer(self, _object, _attributes={}, **_arguments):
-               """computer: Test attributes of this computer
-               Required argument: the attribute to test
-               Keyword argument has: test specific bits of response
-               Keyword argument _attributes: AppleEvent attribute dictionary
-               Returns: the result of the query
-               """
-               _code = 'fndr'
-               _subcode = 'gstl'
-
-               aetools.keysubst(_arguments, self._argmap_computer)
-               _arguments['----'] = _object
-
-
-               _reply, _arguments, _attributes = self.send(_code, _subcode,
-                               _arguments, _attributes)
-               if _arguments.has_key('errn'):
-                       raise aetools.Error, aetools.decodeerror(_arguments)
-               # XXXX Optionally decode result
-               if _arguments.has_key('----'):
-                       return _arguments['----']
-
-       def eject(self, _object=None, _attributes={}, **_arguments):
-               """eject: Eject the specified disk(s), or every ejectable disk if no parameter is specified
-               Required argument: the items to eject
-               Keyword argument _attributes: AppleEvent attribute dictionary
-               """
-               _code = 'fndr'
-               _subcode = 'ejct'
-
-               if _arguments: raise TypeError, 'No optional args expected'
-               _arguments['----'] = _object
-
-
-               _reply, _arguments, _attributes = self.send(_code, _subcode,
-                               _arguments, _attributes)
-               if _arguments.has_key('errn'):
-                       raise aetools.Error, aetools.decodeerror(_arguments)
-               # XXXX Optionally decode result
-               if _arguments.has_key('----'):
-                       return _arguments['----']
-
-       def empty(self, _object=None, _attributes={}, **_arguments):
-               """empty: Empty the trash
-               Required argument: Â³empty² and Â³empty trash² both do the same thing
-               Keyword argument _attributes: AppleEvent attribute dictionary
-               """
-               _code = 'fndr'
-               _subcode = 'empt'
-
-               if _arguments: raise TypeError, 'No optional args expected'
-               _arguments['----'] = _object
-
-
-               _reply, _arguments, _attributes = self.send(_code, _subcode,
-                               _arguments, _attributes)
-               if _arguments.has_key('errn'):
-                       raise aetools.Error, aetools.decodeerror(_arguments)
-               # XXXX Optionally decode result
-               if _arguments.has_key('----'):
-                       return _arguments['----']
-
-       def erase(self, _object, _attributes={}, **_arguments):
-               """erase: Erase the specified disk(s)
-               Required argument: the items to erase
-               Keyword argument _attributes: AppleEvent attribute dictionary
-               """
-               _code = 'fndr'
-               _subcode = 'fera'
-
-               if _arguments: raise TypeError, 'No optional args expected'
-               _arguments['----'] = _object
-
-
-               _reply, _arguments, _attributes = self.send(_code, _subcode,
-                               _arguments, _attributes)
-               if _arguments.has_key('errn'):
-                       raise aetools.Error, aetools.decodeerror(_arguments)
-               # XXXX Optionally decode result
-               if _arguments.has_key('----'):
-                       return _arguments['----']
-
-       _argmap_put_away = {
-               'items' : 'fsel',
-       }
-
-       def put_away(self, _object, _attributes={}, **_arguments):
-               """put away: Put away the specified object(s)
-               Required argument: the items to put away
-               Keyword argument items: DO NOT USE: provided for backwards compatibility with old event suite.  Will be removed in future Finders
-               Keyword argument _attributes: AppleEvent attribute dictionary
-               Returns: the object put away in its put-away location
-               """
-               _code = 'fndr'
-               _subcode = 'ptwy'
-
-               aetools.keysubst(_arguments, self._argmap_put_away)
-               _arguments['----'] = _object
-
-
-               _reply, _arguments, _attributes = self.send(_code, _subcode,
-                               _arguments, _attributes)
-               if _arguments.has_key('errn'):
-                       raise aetools.Error, aetools.decodeerror(_arguments)
-               # XXXX Optionally decode result
-               if _arguments.has_key('----'):
-                       return _arguments['----']
-
-       def restart(self, _no_object=None, _attributes={}, **_arguments):
-               """restart: Restart the Macintosh
-               Keyword argument _attributes: AppleEvent attribute dictionary
-               """
-               _code = 'fndr'
-               _subcode = 'rest'
-
-               if _arguments: raise TypeError, 'No optional args expected'
-               if _no_object != None: raise TypeError, 'No direct arg expected'
-
-
-               _reply, _arguments, _attributes = self.send(_code, _subcode,
-                               _arguments, _attributes)
-               if _arguments.has_key('errn'):
-                       raise aetools.Error, aetools.decodeerror(_arguments)
-               # XXXX Optionally decode result
-               if _arguments.has_key('----'):
-                       return _arguments['----']
-
-       def reveal(self, _object, _attributes={}, **_arguments):
-               """reveal: Bring the specified object(s) into view
-               Required argument: the object to be made visible
-               Keyword argument _attributes: AppleEvent attribute dictionary
-               """
-               _code = 'misc'
-               _subcode = 'mvis'
-
-               if _arguments: raise TypeError, 'No optional args expected'
-               _arguments['----'] = _object
-
-
-               _reply, _arguments, _attributes = self.send(_code, _subcode,
-                               _arguments, _attributes)
-               if _arguments.has_key('errn'):
-                       raise aetools.Error, aetools.decodeerror(_arguments)
-               # XXXX Optionally decode result
-               if _arguments.has_key('----'):
-                       return _arguments['----']
-
-       def select(self, _object, _attributes={}, **_arguments):
-               """select: Select the specified object(s)
-               Required argument: the object to select
-               Keyword argument _attributes: AppleEvent attribute dictionary
-               """
-               _code = 'misc'
-               _subcode = 'slct'
-
-               if _arguments: raise TypeError, 'No optional args expected'
-               _arguments['----'] = _object
-
-
-               _reply, _arguments, _attributes = self.send(_code, _subcode,
-                               _arguments, _attributes)
-               if _arguments.has_key('errn'):
-                       raise aetools.Error, aetools.decodeerror(_arguments)
-               # XXXX Optionally decode result
-               if _arguments.has_key('----'):
-                       return _arguments['----']
-
-       def shut_down(self, _no_object=None, _attributes={}, **_arguments):
-               """shut down: Shut Down the Macintosh
-               Keyword argument _attributes: AppleEvent attribute dictionary
-               """
-               _code = 'fndr'
-               _subcode = 'shut'
-
-               if _arguments: raise TypeError, 'No optional args expected'
-               if _no_object != None: raise TypeError, 'No direct arg expected'
-
-
-               _reply, _arguments, _attributes = self.send(_code, _subcode,
-                               _arguments, _attributes)
-               if _arguments.has_key('errn'):
-                       raise aetools.Error, aetools.decodeerror(_arguments)
-               # XXXX Optionally decode result
-               if _arguments.has_key('----'):
-                       return _arguments['----']
-
-       def sleep(self, _no_object=None, _attributes={}, **_arguments):
-               """sleep: Sleep the Macintosh
-               Keyword argument _attributes: AppleEvent attribute dictionary
-               """
-               _code = 'fndr'
-               _subcode = 'snoz'
-
-               if _arguments: raise TypeError, 'No optional args expected'
-               if _no_object != None: raise TypeError, 'No direct arg expected'
-
-
-               _reply, _arguments, _attributes = self.send(_code, _subcode,
-                               _arguments, _attributes)
-               if _arguments.has_key('errn'):
-                       raise aetools.Error, aetools.decodeerror(_arguments)
-               # XXXX Optionally decode result
-               if _arguments.has_key('----'):
-                       return _arguments['----']
-
-       _argmap_sort = {
-               'by' : 'by  ',
-       }
-
-       def sort(self, _object, _attributes={}, **_arguments):
-               """sort: Return the specified object(s) in a sorted list
-               Required argument: a list of finder objects to sort
-               Keyword argument by: the property to sort the items by
-               Keyword argument _attributes: AppleEvent attribute dictionary
-               Returns: the sorted items in their new order
-               """
-               _code = 'DATA'
-               _subcode = 'SORT'
-
-               aetools.keysubst(_arguments, self._argmap_sort)
-               _arguments['----'] = _object
-
-
-               _reply, _arguments, _attributes = self.send(_code, _subcode,
-                               _arguments, _attributes)
-               if _arguments.has_key('errn'):
-                       raise aetools.Error, aetools.decodeerror(_arguments)
-               # XXXX Optionally decode result
-               if _arguments.has_key('----'):
-                       return _arguments['----']
-
-       def update(self, _object, _attributes={}, **_arguments):
-               """update: Update the display of the specified object(s) to match their on-disk representation
-               Required argument: the item to update
-               Keyword argument _attributes: AppleEvent attribute dictionary
-               """
-               _code = 'fndr'
-               _subcode = 'fupd'
-
-               if _arguments: raise TypeError, 'No optional args expected'
-               _arguments['----'] = _object
-
-
-               _reply, _arguments, _attributes = self.send(_code, _subcode,
-                               _arguments, _attributes)
-               if _arguments.has_key('errn'):
-                       raise aetools.Error, aetools.decodeerror(_arguments)
-               # XXXX Optionally decode result
-               if _arguments.has_key('----'):
-                       return _arguments['----']
-
-
-class accessory_process(aetools.ComponentItem):
-       """accessory process - A process launched from a desk accessory file"""
-       want = 'pcda'
-class desk_accessory_file(aetools.NProperty):
-       """desk accessory file - the desk accessory file from which this process was launched"""
-       which = 'dafi'
-       want = 'obj '
-
-accessory_processes = accessory_process
-
-class accessory_suitcase(aetools.ComponentItem):
-       """accessory suitcase - A desk accessory suitcase"""
-       want = 'dsut'
-#        element 'cobj' as ['indx', 'name']
-
-accessory_suitcases = accessory_suitcase
-
-class alias_file(aetools.ComponentItem):
-       """alias file - An alias file (created with Â³Make Alias²)"""
-       want = 'alia'
-class original_item(aetools.NProperty):
-       """original item - the original item pointed to by the alias"""
-       which = 'orig'
-       want = 'obj '
-
-alias_files = alias_file
-
-class application(aetools.ComponentItem):
-       """application - An application program"""
-       want = 'capp'
-class about_this_macintosh(aetools.NProperty):
-       """about this macintosh - the Â³About this Macintosh² dialog, and the list of running processes displayed in it"""
-       which = 'abbx'
-       want = 'obj '
-class apple_menu_items_folder(aetools.NProperty):
-       """apple menu items folder - the special folder Â³Apple Menu Items,² the contents of which appear in the Apple menu"""
-       which = 'amnu'
-       want = 'obj '
-class clipboard(aetools.NProperty):
-       """clipboard - the Finder's clipboard window"""
-       which = 'pcli'
-       want = 'obj '
-class control_panels_folder(aetools.NProperty):
-       """control panels folder - the special folder Â³Control Panels²"""
-       which = 'ctrl'
-       want = 'obj '
-class desktop(aetools.NProperty):
-       """desktop - the desktop"""
-       which = 'desk'
-       want = 'obj '
-class extensions_folder(aetools.NProperty):
-       """extensions folder - the special folder Â³Extensions²"""
-       which = 'extn'
-       want = 'obj '
-class file_sharing(aetools.NProperty):
-       """file sharing - Is file sharing on?"""
-       which = 'fshr'
-       want = 'bool'
-class fonts_folder(aetools.NProperty):
-       """fonts folder - the special folder Â³Fonts²"""
-       which = 'ffnt'
-       want = 'obj '
-class frontmost(aetools.NProperty):
-       """frontmost - Is this the frontmost application?"""
-       which = 'pisf'
-       want = 'bool'
-class insertion_location(aetools.NProperty):
-       """insertion location - the container that a new folder would appear in if Â³New Folder² was selected"""
-       which = 'pins'
-       want = 'obj '
-class largest_free_block(aetools.NProperty):
-       """largest free block - the largest free block of process memory available to launch an application"""
-       which = 'mfre'
-       want = 'long'
-class preferences_folder(aetools.NProperty):
-       """preferences folder - the special folder Â³Preferences²"""
-       which = 'pref'
-       want = 'obj '
-class product_version(aetools.NProperty):
-       """product version - the version of the System software running on this Macintosh"""
-       which = 'ver2'
-       want = 'itxt'
-class selection(aetools.NProperty):
-       """selection - the selection visible to the user"""
-       which = 'sele'
-       want = 'obj '
-class sharing_starting_up(aetools.NProperty):
-       """sharing starting up - Is File sharing in the process of starting up (still off, but soon to be on)?"""
-       which = 'fsup'
-       want = 'bool'
-class shortcuts(aetools.NProperty):
-       """shortcuts - the Â³Finder Shortcuts² item in the Finder's help menu"""
-       which = 'scut'
-       want = 'obj '
-class shutdown_items_folder(aetools.NProperty):
-       """shutdown items folder - the special folder Â³Shutdown Items²"""
-       which = 'shdf'
-       want = 'obj '
-class startup_items_folder(aetools.NProperty):
-       """startup items folder - the special folder Â³Startup Items²"""
-       which = 'strt'
-       want = 'obj '
-class system_folder(aetools.NProperty):
-       """system folder - the System folder"""
-       which = 'macs'
-       want = 'obj '
-class temporary_items_folder(aetools.NProperty):
-       """temporary items folder - the special folder Â³Temporary Items² (invisible)"""
-       which = 'temp'
-       want = 'obj '
-class version(aetools.NProperty):
-       """version - the version of the Finder Scripting Extension"""
-       which = 'vers'
-       want = 'itxt'
-class view_preferences(aetools.NProperty):
-       """view preferences - the view preferences control panel"""
-       which = 'pvwp'
-       want = 'obj '
-class visible(aetools.NProperty):
-       """visible - Is the Finder's layer visible?"""
-       which = 'pvis'
-       want = 'bool'
-#        element 'dsut' as ['indx', 'name']
-#        element 'alia' as ['indx', 'name']
-#        element 'appf' as ['indx', 'name', 'ID  ']
-#        element 'ctnr' as ['indx', 'name']
-#        element 'cwnd' as ['indx', 'name']
-#        element 'dwnd' as ['indx', 'name']
-#        element 'ccdv' as ['indx', 'name']
-#        element 'dafi' as ['indx', 'name']
-#        element 'cdsk' as ['indx', 'name']
-#        element 'cdis' as ['indx', 'name', 'ID  ']
-#        element 'docf' as ['indx', 'name']
-#        element 'file' as ['indx', 'name']
-#        element 'cfol' as ['indx', 'name', 'ID  ']
-#        element 'fntf' as ['indx', 'name']
-#        element 'fsut' as ['indx', 'name']
-#        element 'iwnd' as ['indx', 'name']
-#        element 'cobj' as ['indx', 'name']
-#        element 'sctr' as ['indx', 'name']
-#        element 'swnd' as ['indx', 'name']
-#        element 'sndf' as ['indx', 'name']
-#        element 'stcs' as ['indx', 'name']
-#        element 'ctrs' as ['indx', 'name']
-#        element 'cwin' as ['indx', 'name']
-
-class application_file(aetools.ComponentItem):
-       """application file - An application's file on disk"""
-       want = 'appf'
-class minimum_partition_size(aetools.NProperty):
-       """minimum partition size - the smallest memory size that the application can possibly be launched with"""
-       which = 'mprt'
-       want = 'long'
-class partition_size(aetools.NProperty):
-       """partition size - the memory size that the application will be launched with"""
-       which = 'appt'
-       want = 'long'
-class scriptable(aetools.NProperty):
-       """scriptable - Is this application high-level event aware (accepts open application, open document, print document, and quit)?"""
-       which = 'isab'
-       want = 'bool'
-class suggested_partition_size(aetools.NProperty):
-       """suggested partition size - the memory size that the developer recommends that the application should be launched with"""
-       which = 'sprt'
-       want = 'long'
-
-application_files = application_file
-
-class application_process(aetools.ComponentItem):
-       """application process - A process launched from an application file"""
-       want = 'pcap'
-class application_file(aetools.NProperty):
-       """application file - the application file from which this process was launched"""
-       which = 'appf'
-       want = 'appf'
-
-application_processes = application_process
-
-class container(aetools.ComponentItem):
-       """container - An item that contains other items"""
-       want = 'ctnr'
-class completely_expanded(aetools.NProperty):
-       """completely expanded - Is the container and all of its children open in outline view?"""
-       which = 'pexc'
-       want = 'bool'
-class container_window(aetools.NProperty):
-       """container window - the main window for the container"""
-       which = 'cwnd'
-       want = 'obj '
-class entire_contents(aetools.NProperty):
-       """entire contents - the entire contents of the container, including the contents of its children"""
-       which = 'ects'
-       want = 'obj '
-class expandable(aetools.NProperty):
-       """expandable - Is the container capable of being expanded into outline view?"""
-       which = 'pexa'
-       want = 'bool'
-class expanded(aetools.NProperty):
-       """expanded - Is the container open in outline view?"""
-       which = 'pexp'
-       want = 'bool'
-class previous_list_view(aetools.NProperty):
-       """previous list view - the last non-icon view (by name, by date, etc.) selected for the container (forgotten as soon as the window is closed)"""
-       which = 'svew'
-       want = 'long'
-# repeated property selection the selection visible to the user
-class view(aetools.NProperty):
-       """view - the view selected for the container (by icon, by name, by date, etc.)"""
-       which = 'pvew'
-       want = 'long'
-#        element 'dsut' as ['indx', 'name']
-#        element 'alia' as ['indx', 'name']
-#        element 'appf' as ['indx', 'name']
-#        element 'ctnr' as ['indx', 'name']
-#        element 'ccdv' as ['indx', 'name']
-#        element 'dafi' as ['indx', 'name']
-#        element 'docf' as ['indx', 'name']
-#        element 'file' as ['indx', 'name']
-#        element 'cfol' as ['indx', 'name']
-#        element 'fntf' as ['indx', 'name']
-#        element 'fsut' as ['indx', 'name']
-#        element 'cobj' as ['indx', 'name']
-#        element 'sctr' as ['indx', 'name']
-#        element 'sndf' as ['indx', 'name']
-#        element 'stcs' as ['indx', 'name']
-
-containers = container
-
-class container_window(aetools.ComponentItem):
-       """container window - A window that contains items"""
-       want = 'cwnd'
-class container(aetools.NProperty):
-       """container - the container this window is opened from"""
-       which = 'ctnr'
-       want = 'obj '
-class disk(aetools.NProperty):
-       """disk - the disk on which the item this window was opened from is stored"""
-       which = 'cdis'
-       want = 'obj '
-class folder(aetools.NProperty):
-       """folder - the folder this window is opened from"""
-       which = 'cfol'
-       want = 'obj '
-class item(aetools.NProperty):
-       """item - the item this window is opened from"""
-       which = 'cobj'
-       want = 'obj '
-# repeated property previous_list_view the last non-icon view (by name, by date, etc.) selected for the window (forgotten as soon as the window is closed)
-# repeated property selection the selection visible to the user
-# repeated property view the view selected for the window (by icon, by name, by date, etc.)
-#        element 'dsut' as ['indx', 'name']
-#        element 'alia' as ['indx', 'name']
-#        element 'appf' as ['indx', 'name']
-#        element 'ctnr' as ['indx', 'name']
-#        element 'ccdv' as ['indx', 'name']
-#        element 'dafi' as ['indx', 'name']
-#        element 'docf' as ['indx', 'name']
-#        element 'file' as ['indx', 'name']
-#        element 'cfol' as ['indx', 'name']
-#        element 'fntf' as ['indx', 'name']
-#        element 'fsut' as ['indx', 'name']
-#        element 'cobj' as ['indx', 'name']
-#        element 'sctr' as ['indx', 'name']
-#        element 'sndf' as ['indx', 'name']
-#        element 'stcs' as ['indx', 'name']
-
-container_windows = container_window
-
-class content_space(aetools.ComponentItem):
-       """content space - All windows, including the desktop window (³Window² does not include the desktop window)"""
-       want = 'dwnd'
-
-content_spaces = content_space
-
-class control_panel(aetools.ComponentItem):
-       """control panel - A control panel"""
-       want = 'ccdv'
-class calculate_folder_sizes(aetools.NProperty):
-       """calculate folder sizes - (Views) Are folder sizes calculated and displayed in Finder list windows?"""
-       which = 'sfsz'
-       want = 'bool'
-class comment_heading(aetools.NProperty):
-       """comment heading - (Views) Are comments displayed in Finder list windows?"""
-       which = 'scom'
-       want = 'bool'
-class date_heading(aetools.NProperty):
-       """date heading - (Views) Are modification dates displayed in Finder list windows?"""
-       which = 'sdat'
-       want = 'bool'
-class disk_information_heading(aetools.NProperty):
-       """disk information heading - (Views) Is information about the volume displayed in Finder list windows?"""
-       which = 'sdin'
-       want = 'bool'
-class icon_size(aetools.NProperty):
-       """icon size - (Views) the size of icons displayed in Finder list windows"""
-       which = 'lvis'
-       want = 'long'
-class kind_heading(aetools.NProperty):
-       """kind heading - (Views) Are document kinds displayed in Finder list windows?"""
-       which = 'sknd'
-       want = 'bool'
-class label_heading(aetools.NProperty):
-       """label heading - (Views) Are labels displayed in Finder list windows?"""
-       which = 'slbl'
-       want = 'bool'
-class size_heading(aetools.NProperty):
-       """size heading - (Views) Are file sizes displayed in Finder list windows"""
-       which = 'ssiz'
-       want = 'bool'
-class snap_to_grid(aetools.NProperty):
-       """snap to grid - (Views) Are items always snapped to the nearest grid point when they are moved?"""
-       which = 'fgrd'
-       want = 'bool'
-class staggered_grid(aetools.NProperty):
-       """staggered grid - (Views) Are grid lines staggered?"""
-       which = 'fstg'
-       want = 'bool'
-class version_heading(aetools.NProperty):
-       """version heading - (Views) Are file versions displayed in Finder list windows?"""
-       which = 'svrs'
-       want = 'bool'
-class view_font(aetools.NProperty):
-       """view font - (Views) the id of the font used in Finder views"""
-       which = 'vfnt'
-       want = 'long'
-class view_font_size(aetools.NProperty):
-       """view font size - (Views) the size of the font used in Finder views"""
-       which = 'vfsz'
-       want = 'long'
-
-control_panels = control_panel
-
-class desk_accessory_file(aetools.ComponentItem):
-       """desk accessory file - A desk accessory file"""
-       want = 'dafi'
-
-desk_accessory_files = desk_accessory_file
-
-class desktop_2d_object(aetools.ComponentItem):
-       """desktop-object - Desktop-object is the class of the Â³desktop² object"""
-       want = 'cdsk'
-class startup_disk(aetools.NProperty):
-       """startup disk - the startup disk"""
-       which = 'sdsk'
-       want = 'obj '
-class trash(aetools.NProperty):
-       """trash - the trash"""
-       which = 'trsh'
-       want = 'obj '
-#        element 'dsut' as ['indx', 'name']
-#        element 'alia' as ['indx', 'name']
-#        element 'appf' as ['indx', 'name']
-#        element 'ctnr' as ['indx', 'name']
-#        element 'ccdv' as ['indx', 'name']
-#        element 'dafi' as ['indx', 'name']
-#        element 'docf' as ['indx', 'name']
-#        element 'file' as ['indx', 'name']
-#        element 'cfol' as ['indx', 'name']
-#        element 'fntf' as ['indx', 'name']
-#        element 'fsut' as ['indx', 'name']
-#        element 'cobj' as ['indx', 'name']
-#        element 'sctr' as ['indx', 'name']
-#        element 'sndf' as ['indx', 'name']
-#        element 'stcs' as ['indx', 'name']
-
-class disk(aetools.ComponentItem):
-       """disk - A disk"""
-       want = 'cdis'
-class capacity(aetools.NProperty):
-       """capacity - the total number of bytes (free or used) on the disk"""
-       which = 'capa'
-       want = 'long'
-class ejectable(aetools.NProperty):
-       """ejectable - Can the media can be ejected (floppies, CD's, syquest)?"""
-       which = 'isej'
-       want = 'bool'
-class free_space(aetools.NProperty):
-       """free space - the number of free bytes left on the disk"""
-       which = 'frsp'
-       want = 'long'
-class local_volume(aetools.NProperty):
-       """local volume - Is the media is a local volume (rather than a file server)?"""
-       which = 'isrv'
-       want = 'bool'
-class startup(aetools.NProperty):
-       """startup - Is this disk the boot disk?"""
-       which = 'istd'
-       want = 'bool'
-#        element 'dsut' as ['indx', 'name']
-#        element 'alia' as ['indx', 'name']
-#        element 'appf' as ['indx', 'name']
-#        element 'ctnr' as ['indx', 'name']
-#        element 'ccdv' as ['indx', 'name']
-#        element 'dafi' as ['indx', 'name']
-#        element 'docf' as ['indx', 'name']
-#        element 'file' as ['indx', 'name']
-#        element 'cfol' as ['indx', 'ID  ', 'name']
-#        element 'fntf' as ['indx', 'name']
-#        element 'fsut' as ['indx', 'name']
-#        element 'cobj' as ['indx', 'name']
-#        element 'sctr' as ['indx', 'name']
-#        element 'sndf' as ['indx', 'name']
-#        element 'stcs' as ['indx', 'name']
-
-disks = disk
-
-class document_file(aetools.ComponentItem):
-       """document file - A document file"""
-       want = 'docf'
-
-document_files = document_file
-
-class file(aetools.ComponentItem):
-       """file - A file"""
-       want = 'file'
-class creator_type(aetools.NProperty):
-       """creator type - the OSType identifying the application that created the item"""
-       which = 'fcrt'
-       want = 'type'
-class file_type(aetools.NProperty):
-       """file type - the OSType identifying the type of data contained in the item"""
-       which = 'fitp'
-       want = 'type'
-class locked(aetools.NProperty):
-       """locked - Is the file locked?"""
-       which = 'islk'
-       want = 'bool'
-# repeated property product_version the version of the product (visible at the top of the Â³Get Info² dialog)
-class stationery(aetools.NProperty):
-       """stationery - Is the item a stationery pad?"""
-       which = 'pspd'
-       want = 'bool'
-# repeated property version the version of the file (visible at the bottom of the Â³Get Info² dialog)
-
-files = file
-
-class folder(aetools.ComponentItem):
-       """folder - A folder"""
-       want = 'cfol'
-#        element 'dsut' as ['indx', 'name']
-#        element 'alia' as ['indx', 'name']
-#        element 'appf' as ['indx', 'name']
-#        element 'ctnr' as ['indx', 'name']
-#        element 'ccdv' as ['indx', 'name']
-#        element 'dafi' as ['indx', 'name']
-#        element 'docf' as ['indx', 'name']
-#        element 'file' as ['indx', 'name']
-#        element 'cfol' as ['indx', 'name']
-#        element 'fntf' as ['indx', 'name']
-#        element 'fsut' as ['indx', 'name']
-#        element 'cobj' as ['indx', 'name']
-#        element 'sctr' as ['indx', 'name']
-#        element 'sndf' as ['indx', 'name']
-#        element 'stcs' as ['indx', 'name']
-
-folders = folder
-
-class font_file(aetools.ComponentItem):
-       """font file - A font file"""
-       want = 'fntf'
-
-font_files = font_file
-
-class font_suitcase(aetools.ComponentItem):
-       """font suitcase - A font suitcase"""
-       want = 'fsut'
-#        element 'cobj' as ['indx', 'name']
-
-font_suitcases = font_suitcase
-
-class group(aetools.ComponentItem):
-       """group - A Group in the Users and Groups control panel"""
-       want = 'sgrp'
-class bounds(aetools.NProperty):
-       """bounds - the bounding rectangle of the group"""
-       which = 'pbnd'
-       want = 'qdrt'
-class icon(aetools.NProperty):
-       """icon - the icon bitmap of the group"""
-       which = 'iimg'
-       want = 'ifam'
-class label_index(aetools.NProperty):
-       """label index - the label of the group"""
-       which = 'labi'
-       want = 'long'
-class name(aetools.NProperty):
-       """name - the name of the group"""
-       which = 'pnam'
-       want = 'itxt'
-class position(aetools.NProperty):
-       """position - the position of the group within its parent window"""
-       which = 'posn'
-       want = 'QDpt'
-
-groups = group
-
-class information_window(aetools.ComponentItem):
-       """information window - An information window (opened by Â³Get Info\8a²)"""
-       want = 'iwnd'
-class comment(aetools.NProperty):
-       """comment - the comment"""
-       which = 'comt'
-       want = 'itxt'
-class creation_date(aetools.NProperty):
-       """creation date - the date on which the item was created"""
-       which = 'crtd'
-       want = 'ldt '
-# repeated property icon the icon bitmap of the item
-# repeated property item the item this window was opened from
-# repeated property locked Is the item locked?
-# repeated property minimum_partition_size the smallest memory size that the application can possibly be launched with
-class modification_date(aetools.NProperty):
-       """modification date - the date on which the item was last modified"""
-       which = 'modd'
-       want = 'ldt '
-# repeated property partition_size the memory size that the application will be launched with
-class physical_size(aetools.NProperty):
-       """physical size - the actual space used by the item on disk"""
-       which = 'phys'
-       want = 'long'
-# repeated property product_version the version of the product (visible at the top of the Â³Get Info² dialog)
-class size(aetools.NProperty):
-       """size - the logical size of the item"""
-       which = 'ptsz'
-       want = 'long'
-# repeated property stationery Is the item a stationery pad?
-# repeated property suggested_partition_size the memory size that the developer recommends that the application should be launched with
-# repeated property version the version of the file (visible at the bottom of the Â³Get Info² dialog)
-class warn_before_emptying(aetools.NProperty):
-       """warn before emptying - Is a dialog displayed when Â³Empty trash\8a² is selected?"""
-       which = 'warn'
-       want = 'bool'
-
-information_windows = information_window
-
-class item(aetools.ComponentItem):
-       """item - An item"""
-       want = 'cobj'
-# repeated property bounds the bounding rectangle of the item
-# repeated property comment the comment displayed in the Â³Get Info² window of the item
-# repeated property container the container of this item
-class content_space(aetools.NProperty):
-       """content space - the window that would open if the item was opened"""
-       which = 'dwnd'
-       want = 'dwnd'
-# repeated property creation_date the date on which the item was created
-# repeated property disk the disk on which the item is stored
-# repeated property folder the folder in which the item is stored
-# repeated property icon the icon bitmap of the item
-class id(aetools.NProperty):
-       """id - an id that identifies the item"""
-       which = 'ID  '
-       want = 'long'
-class information_window(aetools.NProperty):
-       """information window - the information window for the item"""
-       which = 'iwnd'
-       want = 'obj '
-class kind(aetools.NProperty):
-       """kind - the kind of the item"""
-       which = 'kind'
-       want = 'itxt'
-# repeated property label_index the label of the item
-# repeated property modification_date the date on which the item was last modified
-# repeated property name the name of the item
-# repeated property physical_size the actual space used by the item on disk
-# repeated property position the position of the item within its parent window
-class selected(aetools.NProperty):
-       """selected - Is the item selected?"""
-       which = 'issl'
-       want = 'bool'
-# repeated property size the logical size of the item
-class window(aetools.NProperty):
-       """window - the window that would open if the item was opened"""
-       which = 'cwin'
-       want = 'cwin'
-
-items = item
-
-class process(aetools.ComponentItem):
-       """process - A process running on this Macintosh"""
-       want = 'prcs'
-# repeated property creator_type the creator type of this process
-class file(aetools.NProperty):
-       """file - the file that launched this process"""
-       which = 'file'
-       want = 'obj '
-# repeated property file_type the file type of the file that launched this process
-# repeated property frontmost Is this the frontmost application?
-# repeated property name the name of the process
-# repeated property partition_size the size of the partition that this application was launched with
-class partition_space_used(aetools.NProperty):
-       """partition space used - the number of bytes currently used in this partition"""
-       which = 'pusd'
-       want = 'long'
-class remote_events(aetools.NProperty):
-       """remote events - Will this process accepts remote events?"""
-       which = 'revt'
-       want = 'bool'
-# repeated property scriptable Is this process high-level event aware (accepts open application, open document, print document, and quit)?
-# repeated property visible Is this process' layer visible?
-
-processes = process
-
-class sharable_container(aetools.ComponentItem):
-       """sharable container - A container that may be shared (disks and folders)"""
-       want = 'sctr'
-class exported(aetools.NProperty):
-       """exported - Is this folder a share point or inside a share point?"""
-       which = 'sexp'
-       want = 'bool'
-class group(aetools.NProperty):
-       """group - the user or group that has special access to the folder"""
-       which = 'sgrp'
-       want = 'itxt'
-class group_privileges(aetools.NProperty):
-       """group privileges - the see folders/see files/make changes privileges for the group"""
-       which = 'gppr'
-       want = 'priv'
-class guest_privileges(aetools.NProperty):
-       """guest privileges - the see folders/see files/make changes privileges for everyone"""
-       which = 'gstp'
-       want = 'priv'
-class inherited_privileges(aetools.NProperty):
-       """inherited privileges - Are the privileges of this item always the same as the container it is stored in?"""
-       which = 'iprv'
-       want = 'bool'
-class mounted(aetools.NProperty):
-       """mounted - Is this folder mounted on another machine's desktop?"""
-       which = 'smou'
-       want = 'bool'
-class owner(aetools.NProperty):
-       """owner - the user that owns this folder"""
-       which = 'sown'
-       want = 'itxt'
-class owner_privileges(aetools.NProperty):
-       """owner privileges - the see folders/see files/make changes privileges for the owner"""
-       which = 'ownr'
-       want = 'priv'
-class protected(aetools.NProperty):
-       """protected - Is container protected from being moved, renamed or deleted?"""
-       which = 'spro'
-       want = 'bool'
-class shared(aetools.NProperty):
-       """shared - Is container a share point?"""
-       which = 'shar'
-       want = 'bool'
-class sharing_window(aetools.NProperty):
-       """sharing window - the sharing window for the container"""
-       which = 'swnd'
-       want = 'obj '
-#        element 'dsut' as ['indx', 'name']
-#        element 'alia' as ['indx', 'name']
-#        element 'appf' as ['indx', 'name']
-#        element 'ctnr' as ['indx', 'name']
-#        element 'ccdv' as ['indx', 'name']
-#        element 'dafi' as ['indx', 'name']
-#        element 'docf' as ['indx', 'name']
-#        element 'file' as ['indx', 'name']
-#        element 'cfol' as ['indx', 'name']
-#        element 'fntf' as ['indx', 'name']
-#        element 'fsut' as ['indx', 'name']
-#        element 'cobj' as ['indx', 'name']
-#        element 'sctr' as ['indx', 'name']
-#        element 'sndf' as ['indx', 'name']
-#        element 'stcs' as ['indx', 'name']
-
-sharable_containers = sharable_container
-
-class sharing_privileges(aetools.ComponentItem):
-       """sharing privileges - A set of sharing properties"""
-       want = 'priv'
-class make_changes(aetools.NProperty):
-       """make changes - privileges to make changes"""
-       which = 'prvw'
-       want = 'bool'
-class see_files(aetools.NProperty):
-       """see files - privileges to see files"""
-       which = 'prvr'
-       want = 'bool'
-class see_folders(aetools.NProperty):
-       """see folders - privileges to see folders"""
-       which = 'prvs'
-       want = 'bool'
-
-class sharing_window(aetools.ComponentItem):
-       """sharing window - A sharing window (opened by Â³Sharing\8a²)"""
-       want = 'swnd'
-# repeated property container the container that this window was opened from
-# repeated property exported Is this container a share point or inside a share point?
-# repeated property folder the folder that this window was opened from
-# repeated property group the user or group that has special access to the container
-# repeated property group_privileges the see folders/see files/make changes privileges for the group
-# repeated property guest_privileges the see folders/see files/make changes privileges for everyone
-# repeated property inherited_privileges Are the privileges of this item always the same as the container it is stored in?
-# repeated property item the item that this window was opened from
-# repeated property mounted Is this container mounted on another machine's desktop?
-# repeated property owner the user that owns the container
-# repeated property owner_privileges the see folders/see files/make changes privileges for the owner
-# repeated property protected Is container protected from being moved, renamed or deleted?
-class sharable_container(aetools.NProperty):
-       """sharable container - the sharable container that this window was opened from"""
-       which = 'sctr'
-       want = 'obj '
-# repeated property shared Is container a share point?
-
-sharing_windows = sharing_window
-
-class sound_file(aetools.ComponentItem):
-       """sound file - This class represents sound files"""
-       want = 'sndf'
-
-sound_files = sound_file
-
-class status_window(aetools.ComponentItem):
-       """status window - These windows are progress dialogs (copy window, rebuild desktop database, empty trash)"""
-       want = 'qwnd'
-
-status_windows = status_window
-
-class suitcase(aetools.ComponentItem):
-       """suitcase - A font or desk accessory suitcase"""
-       want = 'stcs'
-#        element 'cobj' as ['indx', 'name']
-
-suitcases = suitcase
-
-class trash_2d_object(aetools.ComponentItem):
-       """trash-object - Trash-object is the class of the Â³trash² object"""
-       want = 'ctrs'
-# repeated property warn_before_emptying Is a dialog displayed when Â³Empty trash\8a² is selected?
-#        element 'dsut' as ['indx', 'name']
-#        element 'alia' as ['indx', 'name']
-#        element 'appf' as ['indx', 'name']
-#        element 'ctnr' as ['indx', 'name']
-#        element 'ccdv' as ['indx', 'name']
-#        element 'dafi' as ['indx', 'name']
-#        element 'docf' as ['indx', 'name']
-#        element 'file' as ['indx', 'name']
-#        element 'cfol' as ['indx', 'name']
-#        element 'fntf' as ['indx', 'name']
-#        element 'fsut' as ['indx', 'name']
-#        element 'cobj' as ['indx', 'name']
-#        element 'sctr' as ['indx', 'name']
-#        element 'sndf' as ['indx', 'name']
-#        element 'stcs' as ['indx', 'name']
-
-class user(aetools.ComponentItem):
-       """user - A User in the Users and Groups control panel"""
-       want = 'cuse'
-# repeated property bounds the bounding rectangle of the user
-# repeated property icon the icon bitmap of the user
-# repeated property label_index the label of the user
-# repeated property name the name of the user
-# repeated property position the position of the user within its parent window
-
-users = user
-
-class window(aetools.ComponentItem):
-       """window - A window"""
-       want = 'cwin'
-
-windows = window
-accessory_process._propdict = {
-       'desk_accessory_file' : desk_accessory_file,
-}
-accessory_process._elemdict = {
-}
-accessory_suitcase._propdict = {
-}
-accessory_suitcase._elemdict = {
-       'item' : item,
-}
-alias_file._propdict = {
-       'original_item' : original_item,
-}
-alias_file._elemdict = {
-}
-application._propdict = {
-       'about_this_macintosh' : about_this_macintosh,
-       'apple_menu_items_folder' : apple_menu_items_folder,
-       'clipboard' : clipboard,
-       'control_panels_folder' : control_panels_folder,
-       'desktop' : desktop,
-       'extensions_folder' : extensions_folder,
-       'file_sharing' : file_sharing,
-       'fonts_folder' : fonts_folder,
-       'frontmost' : frontmost,
-       'insertion_location' : insertion_location,
-       'largest_free_block' : largest_free_block,
-       'preferences_folder' : preferences_folder,
-       'product_version' : product_version,
-       'selection' : selection,
-       'sharing_starting_up' : sharing_starting_up,
-       'shortcuts' : shortcuts,
-       'shutdown_items_folder' : shutdown_items_folder,
-       'startup_items_folder' : startup_items_folder,
-       'system_folder' : system_folder,
-       'temporary_items_folder' : temporary_items_folder,
-       'version' : version,
-       'view_preferences' : view_preferences,
-       'visible' : visible,
-}
-application._elemdict = {
-       'accessory_suitcase' : accessory_suitcase,
-       'alias_file' : alias_file,
-       'application_file' : application_file,
-       'container' : container,
-       'container_window' : container_window,
-       'content_space' : content_space,
-       'control_panel' : control_panel,
-       'desk_accessory_file' : desk_accessory_file,
-       'desktop_2d_object' : desktop_2d_object,
-       'disk' : disk,
-       'document_file' : document_file,
-       'file' : file,
-       'folder' : folder,
-       'font_file' : font_file,
-       'font_suitcase' : font_suitcase,
-       'information_window' : information_window,
-       'item' : item,
-       'sharable_container' : sharable_container,
-       'sharing_window' : sharing_window,
-       'sound_file' : sound_file,
-       'suitcase' : suitcase,
-       'trash_2d_object' : trash_2d_object,
-       'window' : window,
-}
-application_file._propdict = {
-       'minimum_partition_size' : minimum_partition_size,
-       'partition_size' : partition_size,
-       'scriptable' : scriptable,
-       'suggested_partition_size' : suggested_partition_size,
-}
-application_file._elemdict = {
-}
-application_process._propdict = {
-       'application_file' : application_file,
-}
-application_process._elemdict = {
-}
-container._propdict = {
-       'completely_expanded' : completely_expanded,
-       'container_window' : container_window,
-       'entire_contents' : entire_contents,
-       'expandable' : expandable,
-       'expanded' : expanded,
-       'previous_list_view' : previous_list_view,
-       'selection' : selection,
-       'view' : view,
-}
-container._elemdict = {
-       'accessory_suitcase' : accessory_suitcase,
-       'alias_file' : alias_file,
-       'application_file' : application_file,
-       'container' : container,
-       'control_panel' : control_panel,
-       'desk_accessory_file' : desk_accessory_file,
-       'document_file' : document_file,
-       'file' : file,
-       'folder' : folder,
-       'font_file' : font_file,
-       'font_suitcase' : font_suitcase,
-       'item' : item,
-       'sharable_container' : sharable_container,
-       'sound_file' : sound_file,
-       'suitcase' : suitcase,
-}
-container_window._propdict = {
-       'container' : container,
-       'disk' : disk,
-       'folder' : folder,
-       'item' : item,
-       'previous_list_view' : previous_list_view,
-       'selection' : selection,
-       'view' : view,
-}
-container_window._elemdict = {
-       'accessory_suitcase' : accessory_suitcase,
-       'alias_file' : alias_file,
-       'application_file' : application_file,
-       'container' : container,
-       'control_panel' : control_panel,
-       'desk_accessory_file' : desk_accessory_file,
-       'document_file' : document_file,
-       'file' : file,
-       'folder' : folder,
-       'font_file' : font_file,
-       'font_suitcase' : font_suitcase,
-       'item' : item,
-       'sharable_container' : sharable_container,
-       'sound_file' : sound_file,
-       'suitcase' : suitcase,
-}
-content_space._propdict = {
-}
-content_space._elemdict = {
-}
-control_panel._propdict = {
-       'calculate_folder_sizes' : calculate_folder_sizes,
-       'comment_heading' : comment_heading,
-       'date_heading' : date_heading,
-       'disk_information_heading' : disk_information_heading,
-       'icon_size' : icon_size,
-       'kind_heading' : kind_heading,
-       'label_heading' : label_heading,
-       'size_heading' : size_heading,
-       'snap_to_grid' : snap_to_grid,
-       'staggered_grid' : staggered_grid,
-       'version_heading' : version_heading,
-       'view_font' : view_font,
-       'view_font_size' : view_font_size,
-}
-control_panel._elemdict = {
-}
-desk_accessory_file._propdict = {
-}
-desk_accessory_file._elemdict = {
-}
-desktop_2d_object._propdict = {
-       'startup_disk' : startup_disk,
-       'trash' : trash,
-}
-desktop_2d_object._elemdict = {
-       'accessory_suitcase' : accessory_suitcase,
-       'alias_file' : alias_file,
-       'application_file' : application_file,
-       'container' : container,
-       'control_panel' : control_panel,
-       'desk_accessory_file' : desk_accessory_file,
-       'document_file' : document_file,
-       'file' : file,
-       'folder' : folder,
-       'font_file' : font_file,
-       'font_suitcase' : font_suitcase,
-       'item' : item,
-       'sharable_container' : sharable_container,
-       'sound_file' : sound_file,
-       'suitcase' : suitcase,
-}
-disk._propdict = {
-       'capacity' : capacity,
-       'ejectable' : ejectable,
-       'free_space' : free_space,
-       'local_volume' : local_volume,
-       'startup' : startup,
-}
-disk._elemdict = {
-       'accessory_suitcase' : accessory_suitcase,
-       'alias_file' : alias_file,
-       'application_file' : application_file,
-       'container' : container,
-       'control_panel' : control_panel,
-       'desk_accessory_file' : desk_accessory_file,
-       'document_file' : document_file,
-       'file' : file,
-       'folder' : folder,
-       'font_file' : font_file,
-       'font_suitcase' : font_suitcase,
-       'item' : item,
-       'sharable_container' : sharable_container,
-       'sound_file' : sound_file,
-       'suitcase' : suitcase,
-}
-document_file._propdict = {
-}
-document_file._elemdict = {
-}
-file._propdict = {
-       'creator_type' : creator_type,
-       'file_type' : file_type,
-       'locked' : locked,
-       'product_version' : product_version,
-       'stationery' : stationery,
-       'version' : version,
-}
-file._elemdict = {
-}
-folder._propdict = {
-}
-folder._elemdict = {
-       'accessory_suitcase' : accessory_suitcase,
-       'alias_file' : alias_file,
-       'application_file' : application_file,
-       'container' : container,
-       'control_panel' : control_panel,
-       'desk_accessory_file' : desk_accessory_file,
-       'document_file' : document_file,
-       'file' : file,
-       'folder' : folder,
-       'font_file' : font_file,
-       'font_suitcase' : font_suitcase,
-       'item' : item,
-       'sharable_container' : sharable_container,
-       'sound_file' : sound_file,
-       'suitcase' : suitcase,
-}
-font_file._propdict = {
-}
-font_file._elemdict = {
-}
-font_suitcase._propdict = {
-}
-font_suitcase._elemdict = {
-       'item' : item,
-}
-group._propdict = {
-       'bounds' : bounds,
-       'icon' : icon,
-       'label_index' : label_index,
-       'name' : name,
-       'position' : position,
-}
-group._elemdict = {
-}
-information_window._propdict = {
-       'comment' : comment,
-       'creation_date' : creation_date,
-       'icon' : icon,
-       'item' : item,
-       'locked' : locked,
-       'minimum_partition_size' : minimum_partition_size,
-       'modification_date' : modification_date,
-       'partition_size' : partition_size,
-       'physical_size' : physical_size,
-       'product_version' : product_version,
-       'size' : size,
-       'stationery' : stationery,
-       'suggested_partition_size' : suggested_partition_size,
-       'version' : version,
-       'warn_before_emptying' : warn_before_emptying,
-}
-information_window._elemdict = {
-}
-item._propdict = {
-       'bounds' : bounds,
-       'comment' : comment,
-       'container' : container,
-       'content_space' : content_space,
-       'creation_date' : creation_date,
-       'disk' : disk,
-       'folder' : folder,
-       'icon' : icon,
-       'id' : id,
-       'information_window' : information_window,
-       'kind' : kind,
-       'label_index' : label_index,
-       'modification_date' : modification_date,
-       'name' : name,
-       'physical_size' : physical_size,
-       'position' : position,
-       'selected' : selected,
-       'size' : size,
-       'window' : window,
-}
-item._elemdict = {
-}
-process._propdict = {
-       'creator_type' : creator_type,
-       'file' : file,
-       'file_type' : file_type,
-       'frontmost' : frontmost,
-       'name' : name,
-       'partition_size' : partition_size,
-       'partition_space_used' : partition_space_used,
-       'remote_events' : remote_events,
-       'scriptable' : scriptable,
-       'visible' : visible,
-}
-process._elemdict = {
-}
-sharable_container._propdict = {
-       'exported' : exported,
-       'group' : group,
-       'group_privileges' : group_privileges,
-       'guest_privileges' : guest_privileges,
-       'inherited_privileges' : inherited_privileges,
-       'mounted' : mounted,
-       'owner' : owner,
-       'owner_privileges' : owner_privileges,
-       'protected' : protected,
-       'shared' : shared,
-       'sharing_window' : sharing_window,
-}
-sharable_container._elemdict = {
-       'accessory_suitcase' : accessory_suitcase,
-       'alias_file' : alias_file,
-       'application_file' : application_file,
-       'container' : container,
-       'control_panel' : control_panel,
-       'desk_accessory_file' : desk_accessory_file,
-       'document_file' : document_file,
-       'file' : file,
-       'folder' : folder,
-       'font_file' : font_file,
-       'font_suitcase' : font_suitcase,
-       'item' : item,
-       'sharable_container' : sharable_container,
-       'sound_file' : sound_file,
-       'suitcase' : suitcase,
-}
-sharing_privileges._propdict = {
-       'make_changes' : make_changes,
-       'see_files' : see_files,
-       'see_folders' : see_folders,
-}
-sharing_privileges._elemdict = {
-}
-sharing_window._propdict = {
-       'container' : container,
-       'exported' : exported,
-       'folder' : folder,
-       'group' : group,
-       'group_privileges' : group_privileges,
-       'guest_privileges' : guest_privileges,
-       'inherited_privileges' : inherited_privileges,
-       'item' : item,
-       'mounted' : mounted,
-       'owner' : owner,
-       'owner_privileges' : owner_privileges,
-       'protected' : protected,
-       'sharable_container' : sharable_container,
-       'shared' : shared,
-}
-sharing_window._elemdict = {
-}
-sound_file._propdict = {
-}
-sound_file._elemdict = {
-}
-status_window._propdict = {
-}
-status_window._elemdict = {
-}
-suitcase._propdict = {
-}
-suitcase._elemdict = {
-       'item' : item,
-}
-trash_2d_object._propdict = {
-       'warn_before_emptying' : warn_before_emptying,
-}
-trash_2d_object._elemdict = {
-       'accessory_suitcase' : accessory_suitcase,
-       'alias_file' : alias_file,
-       'application_file' : application_file,
-       'container' : container,
-       'control_panel' : control_panel,
-       'desk_accessory_file' : desk_accessory_file,
-       'document_file' : document_file,
-       'file' : file,
-       'folder' : folder,
-       'font_file' : font_file,
-       'font_suitcase' : font_suitcase,
-       'item' : item,
-       'sharable_container' : sharable_container,
-       'sound_file' : sound_file,
-       'suitcase' : suitcase,
-}
-user._propdict = {
-       'bounds' : bounds,
-       'icon' : icon,
-       'label_index' : label_index,
-       'name' : name,
-       'position' : position,
-}
-user._elemdict = {
-}
-window._propdict = {
-}
-window._elemdict = {
-}
-_Enum_vwby = {
-       'conflicts' : 'cflc',   # 
-       'existing_items' : 'exsi',      # 
-       'small_icon' : 'smic',  # 
-       'all' : 'kyal', # 
-}
-
-_Enum_gsen = {
-       'CPU' : 'proc', # 
-       'FPU' : 'fpu ', # 
-       'MMU' : 'mmu ', # 
-       'hardware' : 'hdwr',    # 
-       'operating_system' : 'os  ',    # 
-       'sound_system' : 'snd ',        # 
-       'memory_available' : 'lram',    # 
-       'memory_installed' : 'ram ',    # 
-}
-
-
-#
-# Indices of types declared in this module
-#
-_classdeclarations = {
-       'swnd' : sharing_window,
-       'iwnd' : information_window,
-       'ccdv' : control_panel,
-       'cwnd' : container_window,
-       'appf' : application_file,
-       'prcs' : process,
-       'cdis' : disk,
-       'cwin' : window,
-       'dafi' : desk_accessory_file,
-       'sgrp' : group,
-       'alia' : alias_file,
-       'ctnr' : container,
-       'qwnd' : status_window,
-       'fsut' : font_suitcase,
-       'sndf' : sound_file,
-       'priv' : sharing_privileges,
-       'dwnd' : content_space,
-       'pcap' : application_process,
-       'stcs' : suitcase,
-       'ctrs' : trash_2d_object,
-       'file' : file,
-       'cobj' : item,
-       'cuse' : user,
-       'cdsk' : desktop_2d_object,
-       'pcda' : accessory_process,
-       'capp' : application,
-       'cfol' : folder,
-       'sctr' : sharable_container,
-       'dsut' : accessory_suitcase,
-       'docf' : document_file,
-       'fntf' : font_file,
-}
-
-_propdeclarations = {
-       'swnd' : sharing_window,
-       'fshr' : file_sharing,
-       'pvew' : view,
-       'pusd' : partition_space_used,
-       'fcrt' : creator_type,
-       'sdat' : date_heading,
-       'sdin' : disk_information_heading,
-       'strt' : startup_items_folder,
-       'issl' : selected,
-       'pvis' : visible,
-       'slbl' : label_heading,
-       'cdis' : disk,
-       'fitp' : file_type,
-       'smou' : mounted,
-       'pexc' : completely_expanded,
-       'pexa' : expandable,
-       'comt' : comment,
-       'svew' : previous_list_view,
-       'labi' : label_index,
-       'sctr' : sharable_container,
-       'sknd' : kind_heading,
-       'trsh' : trash,
-       'fstg' : staggered_grid,
-       'macs' : system_folder,
-       'vfsz' : view_font_size,
-       'pexp' : expanded,
-       'posn' : position,
-       'cobj' : item,
-       'amnu' : apple_menu_items_folder,
-       'pvwp' : view_preferences,
-       'desk' : desktop,
-       'pnam' : name,
-       'mprt' : minimum_partition_size,
-       'cwin' : window,
-       'pcli' : clipboard,
-       'spro' : protected,
-       'islk' : locked,
-       'sprt' : suggested_partition_size,
-       'pisf' : frontmost,
-       'sele' : selection,
-       'ffnt' : fonts_folder,
-       'istd' : startup,
-       'sdsk' : startup_disk,
-       'shar' : shared,
-       'dwnd' : content_space,
-       'file' : file,
-       'sfsz' : calculate_folder_sizes,
-       'ID  ' : id,
-       'prvw' : make_changes,
-       'iprv' : inherited_privileges,
-       'prvr' : see_files,
-       'prvs' : see_folders,
-       'phys' : physical_size,
-       'ctrl' : control_panels_folder,
-       'cwnd' : container_window,
-       'extn' : extensions_folder,
-       'ownr' : owner_privileges,
-       'modd' : modification_date,
-       'dafi' : desk_accessory_file,
-       'sgrp' : group,
-       'temp' : temporary_items_folder,
-       'fgrd' : snap_to_grid,
-       'ptsz' : size,
-       'kind' : kind,
-       'scut' : shortcuts,
-       'abbx' : about_this_macintosh,
-       'ctnr' : container,
-       'isej' : ejectable,
-       'svrs' : version_heading,
-       'vfnt' : view_font,
-       'warn' : warn_before_emptying,
-       'isab' : scriptable,
-       'isrv' : local_volume,
-       'lvis' : icon_size,
-       'shdf' : shutdown_items_folder,
-       'gstp' : guest_privileges,
-       'vers' : version,
-       'appf' : application_file,
-       'iwnd' : information_window,
-       'revt' : remote_events,
-       'frsp' : free_space,
-       'capa' : capacity,
-       'pspd' : stationery,
-       'scom' : comment_heading,
-       'pins' : insertion_location,
-       'orig' : original_item,
-       'pref' : preferences_folder,
-       'fsup' : sharing_starting_up,
-       'sown' : owner,
-       'cfol' : folder,
-       'mfre' : largest_free_block,
-       'ssiz' : size_heading,
-       'iimg' : icon,
-       'appt' : partition_size,
-       'gppr' : group_privileges,
-       'pbnd' : bounds,
-       'ects' : entire_contents,
-       'sexp' : exported,
-       'ver2' : product_version,
-       'crtd' : creation_date,
-}
-
-_compdeclarations = {
-}
-
-_enumdeclarations = {
-       'gsen' : _Enum_gsen,
-       'vwby' : _Enum_vwby,
-}
diff --git a/Mac/Lib/lib-scripting/Metrowerks_Shell_Suite.py b/Mac/Lib/lib-scripting/Metrowerks_Shell_Suite.py
deleted file mode 100644 (file)
index 93a8930..0000000
+++ /dev/null
@@ -1,1820 +0,0 @@
-"""Suite Metrowerks Shell Suite: Events supported by the Metrowerks Project Shell
-Level 1, version 1
-
-Generated from flap:Metrowerks:Metrowerks CodeWarrior:CodeWarrior IDE 2.0.1
-AETE/AEUT resource version 1/0, language 0, script 0
-"""
-
-import aetools
-import MacOS
-
-_code = 'MMPR'
-
-class Metrowerks_Shell_Suite:
-
-       _argmap_Add_Files = {
-               'To_Segment' : 'Segm',
-       }
-
-       def Add_Files(self, _object, _attributes={}, **_arguments):
-               """Add Files: Add the specified file(s) to the current project
-               Required argument: List of files to add
-               Keyword argument To_Segment: Segment number into which to add the file(s)
-               Keyword argument _attributes: AppleEvent attribute dictionary
-               Returns: Error code for each file added
-               """
-               _code = 'MMPR'
-               _subcode = 'AddF'
-
-               aetools.keysubst(_arguments, self._argmap_Add_Files)
-               _arguments['----'] = _object
-
-
-               _reply, _arguments, _attributes = self.send(_code, _subcode,
-                               _arguments, _attributes)
-               if _arguments.has_key('errn'):
-                       raise aetools.Error, aetools.decodeerror(_arguments)
-               # XXXX Optionally decode result
-               if _arguments.has_key('----'):
-                       return _arguments['----']
-
-       _argmap_Check_Syntax = {
-               'ExternalEditor' : 'Errs',
-       }
-
-       def Check_Syntax(self, _object, _attributes={}, **_arguments):
-               """Check Syntax: Check the syntax of the specified file(s)
-               Required argument: List of files to check the syntax of
-               Keyword argument ExternalEditor: Should the contents of the message window be returned to the caller?
-               Keyword argument _attributes: AppleEvent attribute dictionary
-               Returns: Errors for each file whose syntax was checked
-               """
-               _code = 'MMPR'
-               _subcode = 'Chek'
-
-               aetools.keysubst(_arguments, self._argmap_Check_Syntax)
-               _arguments['----'] = _object
-
-
-               _reply, _arguments, _attributes = self.send(_code, _subcode,
-                               _arguments, _attributes)
-               if _arguments.has_key('errn'):
-                       raise aetools.Error, aetools.decodeerror(_arguments)
-               # XXXX Optionally decode result
-               if _arguments.has_key('----'):
-                       return _arguments['----']
-
-       def Close_Project(self, _no_object=None, _attributes={}, **_arguments):
-               """Close Project: Close the current project
-               Keyword argument _attributes: AppleEvent attribute dictionary
-               """
-               _code = 'MMPR'
-               _subcode = 'ClsP'
-
-               if _arguments: raise TypeError, 'No optional args expected'
-               if _no_object != None: raise TypeError, 'No direct arg expected'
-
-
-               _reply, _arguments, _attributes = self.send(_code, _subcode,
-                               _arguments, _attributes)
-               if _arguments.has_key('errn'):
-                       raise aetools.Error, aetools.decodeerror(_arguments)
-               # XXXX Optionally decode result
-               if _arguments.has_key('----'):
-                       return _arguments['----']
-
-       _argmap_Close_Window = {
-               'Saving' : 'savo',
-       }
-
-       def Close_Window(self, _object, _attributes={}, **_arguments):
-               """Close Window: Close the windows showing the specified files
-               Required argument: The files to close
-               Keyword argument Saving: Whether to save changes to each file before closing its window
-               Keyword argument _attributes: AppleEvent attribute dictionary
-               """
-               _code = 'MMPR'
-               _subcode = 'ClsW'
-
-               aetools.keysubst(_arguments, self._argmap_Close_Window)
-               _arguments['----'] = _object
-
-               aetools.enumsubst(_arguments, 'savo', _Enum_savo)
-
-               _reply, _arguments, _attributes = self.send(_code, _subcode,
-                               _arguments, _attributes)
-               if _arguments.has_key('errn'):
-                       raise aetools.Error, aetools.decodeerror(_arguments)
-               # XXXX Optionally decode result
-               if _arguments.has_key('----'):
-                       return _arguments['----']
-
-       _argmap_Compile = {
-               'ExternalEditor' : 'Errs',
-       }
-
-       def Compile(self, _object, _attributes={}, **_arguments):
-               """Compile: Compile the specified file(s)
-               Required argument: List of files to compile
-               Keyword argument ExternalEditor: Should the contents of the message window be returned to the caller?
-               Keyword argument _attributes: AppleEvent attribute dictionary
-               Returns: Errors for each file compiled
-               """
-               _code = 'MMPR'
-               _subcode = 'Comp'
-
-               aetools.keysubst(_arguments, self._argmap_Compile)
-               _arguments['----'] = _object
-
-
-               _reply, _arguments, _attributes = self.send(_code, _subcode,
-                               _arguments, _attributes)
-               if _arguments.has_key('errn'):
-                       raise aetools.Error, aetools.decodeerror(_arguments)
-               # XXXX Optionally decode result
-               if _arguments.has_key('----'):
-                       return _arguments['----']
-
-       _argmap_Create_Project = {
-               'from_stationery' : 'Tmpl',
-       }
-
-       def Create_Project(self, _object, _attributes={}, **_arguments):
-               """Create Project: Create a new project file
-               Required argument: New project file specifier
-               Keyword argument from_stationery: undocumented, typecode 'alis'
-               Keyword argument _attributes: AppleEvent attribute dictionary
-               """
-               _code = 'MMPR'
-               _subcode = 'NewP'
-
-               aetools.keysubst(_arguments, self._argmap_Create_Project)
-               _arguments['----'] = _object
-
-
-               _reply, _arguments, _attributes = self.send(_code, _subcode,
-                               _arguments, _attributes)
-               if _arguments.has_key('errn'):
-                       raise aetools.Error, aetools.decodeerror(_arguments)
-               # XXXX Optionally decode result
-               if _arguments.has_key('----'):
-                       return _arguments['----']
-
-       def Get_Definition(self, _object, _attributes={}, **_arguments):
-               """Get Definition: Returns the location(s) of a globally scoped function or data object.
-               Required argument: undocumented, typecode 'TEXT'
-               Keyword argument _attributes: AppleEvent attribute dictionary
-               Returns: undocumented, typecode 'FDef'
-               """
-               _code = 'MMPR'
-               _subcode = 'GDef'
-
-               if _arguments: raise TypeError, 'No optional args expected'
-               _arguments['----'] = _object
-
-
-               _reply, _arguments, _attributes = self.send(_code, _subcode,
-                               _arguments, _attributes)
-               if _arguments.has_key('errn'):
-                       raise aetools.Error, aetools.decodeerror(_arguments)
-               # XXXX Optionally decode result
-               if _arguments.has_key('----'):
-                       return _arguments['----']
-
-       def Get_Open_Documents(self, _no_object=None, _attributes={}, **_arguments):
-               """Get Open Documents: Returns the list of open documents
-               Keyword argument _attributes: AppleEvent attribute dictionary
-               Returns: The list of documents
-               """
-               _code = 'MMPR'
-               _subcode = 'GDoc'
-
-               if _arguments: raise TypeError, 'No optional args expected'
-               if _no_object != None: raise TypeError, 'No direct arg expected'
-
-
-               _reply, _arguments, _attributes = self.send(_code, _subcode,
-                               _arguments, _attributes)
-               if _arguments.has_key('errn'):
-                       raise aetools.Error, aetools.decodeerror(_arguments)
-               # XXXX Optionally decode result
-               if _arguments.has_key('----'):
-                       return _arguments['----']
-
-       _argmap_Get_Preferences = {
-               'of' : 'PRec',
-               'from_panel' : 'PNam',
-       }
-
-       def Get_Preferences(self, _no_object=None, _attributes={}, **_arguments):
-               """Get Preferences: Get the preferences for the current project
-               Keyword argument of: Names of requested preferences
-               Keyword argument from_panel: Name of the preference panel
-               Keyword argument _attributes: AppleEvent attribute dictionary
-               Returns: The requested preferences
-               """
-               _code = 'MMPR'
-               _subcode = 'Gref'
-
-               aetools.keysubst(_arguments, self._argmap_Get_Preferences)
-               if _no_object != None: raise TypeError, 'No direct arg expected'
-
-
-               _reply, _arguments, _attributes = self.send(_code, _subcode,
-                               _arguments, _attributes)
-               if _arguments.has_key('errn'):
-                       raise aetools.Error, aetools.decodeerror(_arguments)
-               # XXXX Optionally decode result
-               if _arguments.has_key('----'):
-                       return _arguments['----']
-
-       _argmap_Get_Project_File = {
-               'Segment' : 'Segm',
-       }
-
-       def Get_Project_File(self, _object, _attributes={}, **_arguments):
-               """Get Project File: Returns a description of a file in the project window.
-               Required argument: The index of the file within its segment.
-               Keyword argument Segment: The segment containing the file.
-               Keyword argument _attributes: AppleEvent attribute dictionary
-               Returns: undocumented, typecode 'SrcF'
-               """
-               _code = 'MMPR'
-               _subcode = 'GFil'
-
-               aetools.keysubst(_arguments, self._argmap_Get_Project_File)
-               _arguments['----'] = _object
-
-
-               _reply, _arguments, _attributes = self.send(_code, _subcode,
-                               _arguments, _attributes)
-               if _arguments.has_key('errn'):
-                       raise aetools.Error, aetools.decodeerror(_arguments)
-               # XXXX Optionally decode result
-               if _arguments.has_key('----'):
-                       return _arguments['----']
-
-       def Get_Project_Specifier(self, _no_object=None, _attributes={}, **_arguments):
-               """Get Project Specifier: Return the File Specifier for the current project
-               Keyword argument _attributes: AppleEvent attribute dictionary
-               Returns: File Specifier for the current project
-               """
-               _code = 'MMPR'
-               _subcode = 'GetP'
-
-               if _arguments: raise TypeError, 'No optional args expected'
-               if _no_object != None: raise TypeError, 'No direct arg expected'
-
-
-               _reply, _arguments, _attributes = self.send(_code, _subcode,
-                               _arguments, _attributes)
-               if _arguments.has_key('errn'):
-                       raise aetools.Error, aetools.decodeerror(_arguments)
-               # XXXX Optionally decode result
-               if _arguments.has_key('----'):
-                       return _arguments['----']
-
-       def Get_Segments(self, _no_object=None, _attributes={}, **_arguments):
-               """Get Segments: Returns a description of each segment in the project.
-               Keyword argument _attributes: AppleEvent attribute dictionary
-               Returns: undocumented, typecode 'Seg '
-               """
-               _code = 'MMPR'
-               _subcode = 'GSeg'
-
-               if _arguments: raise TypeError, 'No optional args expected'
-               if _no_object != None: raise TypeError, 'No direct arg expected'
-
-
-               _reply, _arguments, _attributes = self.send(_code, _subcode,
-                               _arguments, _attributes)
-               if _arguments.has_key('errn'):
-                       raise aetools.Error, aetools.decodeerror(_arguments)
-               # XXXX Optionally decode result
-               if _arguments.has_key('----'):
-                       return _arguments['----']
-
-       def Goto_Function(self, _object, _attributes={}, **_arguments):
-               """Goto Function: Goto Specified Function Name
-               Required argument: undocumented, typecode 'TEXT'
-               Keyword argument _attributes: AppleEvent attribute dictionary
-               """
-               _code = 'MMPR'
-               _subcode = 'GoFn'
-
-               if _arguments: raise TypeError, 'No optional args expected'
-               _arguments['----'] = _object
-
-
-               _reply, _arguments, _attributes = self.send(_code, _subcode,
-                               _arguments, _attributes)
-               if _arguments.has_key('errn'):
-                       raise aetools.Error, aetools.decodeerror(_arguments)
-               # XXXX Optionally decode result
-               if _arguments.has_key('----'):
-                       return _arguments['----']
-
-       def Goto_Line(self, _object, _attributes={}, **_arguments):
-               """Goto Line: Goto Specified Line Number
-               Required argument: The requested source file line number
-               Keyword argument _attributes: AppleEvent attribute dictionary
-               """
-               _code = 'MMPR'
-               _subcode = 'GoLn'
-
-               if _arguments: raise TypeError, 'No optional args expected'
-               _arguments['----'] = _object
-
-
-               _reply, _arguments, _attributes = self.send(_code, _subcode,
-                               _arguments, _attributes)
-               if _arguments.has_key('errn'):
-                       raise aetools.Error, aetools.decodeerror(_arguments)
-               # XXXX Optionally decode result
-               if _arguments.has_key('----'):
-                       return _arguments['----']
-
-       def Is_In_Project(self, _object, _attributes={}, **_arguments):
-               """Is In Project: Whether or not the specified file(s) is in the current project
-               Required argument: List of files to check for project membership
-               Keyword argument _attributes: AppleEvent attribute dictionary
-               Returns: Result code for each file
-               """
-               _code = 'MMPR'
-               _subcode = 'FInP'
-
-               if _arguments: raise TypeError, 'No optional args expected'
-               _arguments['----'] = _object
-
-
-               _reply, _arguments, _attributes = self.send(_code, _subcode,
-                               _arguments, _attributes)
-               if _arguments.has_key('errn'):
-                       raise aetools.Error, aetools.decodeerror(_arguments)
-               # XXXX Optionally decode result
-               if _arguments.has_key('----'):
-                       return _arguments['----']
-
-       _argmap_Make_Project = {
-               'ExternalEditor' : 'Errs',
-       }
-
-       def Make_Project(self, _no_object=None, _attributes={}, **_arguments):
-               """Make Project: Make the current project
-               Keyword argument ExternalEditor: Should the contents of the message window be returned to the caller?
-               Keyword argument _attributes: AppleEvent attribute dictionary
-               Returns: Errors that occurred while making the project
-               """
-               _code = 'MMPR'
-               _subcode = 'Make'
-
-               aetools.keysubst(_arguments, self._argmap_Make_Project)
-               if _no_object != None: raise TypeError, 'No direct arg expected'
-
-
-               _reply, _arguments, _attributes = self.send(_code, _subcode,
-                               _arguments, _attributes)
-               if _arguments.has_key('errn'):
-                       raise aetools.Error, aetools.decodeerror(_arguments)
-               # XXXX Optionally decode result
-               if _arguments.has_key('----'):
-                       return _arguments['----']
-
-       _argmap_Precompile = {
-               'Saving_As' : 'Targ',
-               'ExternalEditor' : 'Errs',
-       }
-
-       def Precompile(self, _object, _attributes={}, **_arguments):
-               """Precompile: Precompile the specified file to the specified destination file
-               Required argument: File to precompile
-               Keyword argument Saving_As: Destination file for precompiled header
-               Keyword argument ExternalEditor: Should the contents of the message window be returned to the caller?
-               Keyword argument _attributes: AppleEvent attribute dictionary
-               Returns: Errors for the precompiled file
-               """
-               _code = 'MMPR'
-               _subcode = 'PreC'
-
-               aetools.keysubst(_arguments, self._argmap_Precompile)
-               _arguments['----'] = _object
-
-
-               _reply, _arguments, _attributes = self.send(_code, _subcode,
-                               _arguments, _attributes)
-               if _arguments.has_key('errn'):
-                       raise aetools.Error, aetools.decodeerror(_arguments)
-               # XXXX Optionally decode result
-               if _arguments.has_key('----'):
-                       return _arguments['----']
-
-       _argmap_Preprocess = {
-               'ExternalEditor' : 'Errs',
-       }
-
-       def Preprocess(self, _object, _attributes={}, **_arguments):
-               """Preprocess: Preprocesses the specified file(s)
-               Required argument: undocumented, typecode 'alis'
-               Keyword argument ExternalEditor: undocumented, typecode 'bool'
-               Keyword argument _attributes: AppleEvent attribute dictionary
-               Returns: Errors for each preprocessed file
-               """
-               _code = 'MMPR'
-               _subcode = 'PreP'
-
-               aetools.keysubst(_arguments, self._argmap_Preprocess)
-               _arguments['----'] = _object
-
-
-               _reply, _arguments, _attributes = self.send(_code, _subcode,
-                               _arguments, _attributes)
-               if _arguments.has_key('errn'):
-                       raise aetools.Error, aetools.decodeerror(_arguments)
-               # XXXX Optionally decode result
-               if _arguments.has_key('----'):
-                       return _arguments['----']
-
-       def Remove_Binaries(self, _no_object=None, _attributes={}, **_arguments):
-               """Remove Binaries: Remove the binary object code from the current project
-               Keyword argument _attributes: AppleEvent attribute dictionary
-               """
-               _code = 'MMPR'
-               _subcode = 'RemB'
-
-               if _arguments: raise TypeError, 'No optional args expected'
-               if _no_object != None: raise TypeError, 'No direct arg expected'
-
-
-               _reply, _arguments, _attributes = self.send(_code, _subcode,
-                               _arguments, _attributes)
-               if _arguments.has_key('errn'):
-                       raise aetools.Error, aetools.decodeerror(_arguments)
-               # XXXX Optionally decode result
-               if _arguments.has_key('----'):
-                       return _arguments['----']
-
-       def Remove_Files(self, _object, _attributes={}, **_arguments):
-               """Remove Files: Remove the specified file(s) from the current project
-               Required argument: List of files to remove
-               Keyword argument _attributes: AppleEvent attribute dictionary
-               Returns: Error code for each file removed
-               """
-               _code = 'MMPR'
-               _subcode = 'RemF'
-
-               if _arguments: raise TypeError, 'No optional args expected'
-               _arguments['----'] = _object
-
-
-               _reply, _arguments, _attributes = self.send(_code, _subcode,
-                               _arguments, _attributes)
-               if _arguments.has_key('errn'):
-                       raise aetools.Error, aetools.decodeerror(_arguments)
-               # XXXX Optionally decode result
-               if _arguments.has_key('----'):
-                       return _arguments['----']
-
-       def Reset_File_Paths(self, _no_object=None, _attributes={}, **_arguments):
-               """Reset File Paths: Resets access paths for all files belonging to open project.
-               Keyword argument _attributes: AppleEvent attribute dictionary
-               """
-               _code = 'MMPR'
-               _subcode = 'ReFP'
-
-               if _arguments: raise TypeError, 'No optional args expected'
-               if _no_object != None: raise TypeError, 'No direct arg expected'
-
-
-               _reply, _arguments, _attributes = self.send(_code, _subcode,
-                               _arguments, _attributes)
-               if _arguments.has_key('errn'):
-                       raise aetools.Error, aetools.decodeerror(_arguments)
-               # XXXX Optionally decode result
-               if _arguments.has_key('----'):
-                       return _arguments['----']
-
-       _argmap_Run_Project = {
-               'ExternalEditor' : 'Errs',
-               'SourceDebugger' : 'DeBg',
-       }
-
-       def Run_Project(self, _no_object=None, _attributes={}, **_arguments):
-               """Run Project: Run the current project
-               Keyword argument ExternalEditor: Should the contents of the message window be returned to the caller?
-               Keyword argument SourceDebugger: Run the application under the control of the source-level debugger
-               Keyword argument _attributes: AppleEvent attribute dictionary
-               Returns: Errors that occurred when running the project
-               """
-               _code = 'MMPR'
-               _subcode = 'RunP'
-
-               aetools.keysubst(_arguments, self._argmap_Run_Project)
-               if _no_object != None: raise TypeError, 'No direct arg expected'
-
-
-               _reply, _arguments, _attributes = self.send(_code, _subcode,
-                               _arguments, _attributes)
-               if _arguments.has_key('errn'):
-                       raise aetools.Error, aetools.decodeerror(_arguments)
-               # XXXX Optionally decode result
-               if _arguments.has_key('----'):
-                       return _arguments['----']
-
-       def Save_Error_Window_As(self, _object, _attributes={}, **_arguments):
-               """Save Error Window As: Saves the Errors & Warnings window as a text file
-               Required argument: Destination file for Save Message Window As
-               Keyword argument _attributes: AppleEvent attribute dictionary
-               """
-               _code = 'MMPR'
-               _subcode = 'SvMs'
-
-               if _arguments: raise TypeError, 'No optional args expected'
-               _arguments['----'] = _object
-
-
-               _reply, _arguments, _attributes = self.send(_code, _subcode,
-                               _arguments, _attributes)
-               if _arguments.has_key('errn'):
-                       raise aetools.Error, aetools.decodeerror(_arguments)
-               # XXXX Optionally decode result
-               if _arguments.has_key('----'):
-                       return _arguments['----']
-
-       def Set_Current_Target(self, _object=None, _attributes={}, **_arguments):
-               """Set Current Target: Set the current target of a project
-               Required argument: Name of target
-               Keyword argument _attributes: AppleEvent attribute dictionary
-               """
-               _code = 'MMPR'
-               _subcode = 'STrg'
-
-               if _arguments: raise TypeError, 'No optional args expected'
-               _arguments['----'] = _object
-
-
-               _reply, _arguments, _attributes = self.send(_code, _subcode,
-                               _arguments, _attributes)
-               if _arguments.has_key('errn'):
-                       raise aetools.Error, aetools.decodeerror(_arguments)
-               # XXXX Optionally decode result
-               if _arguments.has_key('----'):
-                       return _arguments['----']
-
-       def Set_Default_Project(self, _object, _attributes={}, **_arguments):
-               """Set Default Project: Set the default project
-               Required argument: Name of project
-               Keyword argument _attributes: AppleEvent attribute dictionary
-               """
-               _code = 'MMPR'
-               _subcode = 'SDfP'
-
-               if _arguments: raise TypeError, 'No optional args expected'
-               _arguments['----'] = _object
-
-
-               _reply, _arguments, _attributes = self.send(_code, _subcode,
-                               _arguments, _attributes)
-               if _arguments.has_key('errn'):
-                       raise aetools.Error, aetools.decodeerror(_arguments)
-               # XXXX Optionally decode result
-               if _arguments.has_key('----'):
-                       return _arguments['----']
-
-       _argmap_Set_Modification_Date = {
-               'to' : 'MDat',
-       }
-
-       def Set_Modification_Date(self, _object, _attributes={}, **_arguments):
-               """Set Modification Date: Changes the internal modification date of the specified file(s)
-               Required argument: List of files
-               Keyword argument to: undocumented, typecode 'ldt '
-               Keyword argument _attributes: AppleEvent attribute dictionary
-               Returns: Error code for each modified file
-               """
-               _code = 'MMPR'
-               _subcode = 'SMod'
-
-               aetools.keysubst(_arguments, self._argmap_Set_Modification_Date)
-               _arguments['----'] = _object
-
-
-               _reply, _arguments, _attributes = self.send(_code, _subcode,
-                               _arguments, _attributes)
-               if _arguments.has_key('errn'):
-                       raise aetools.Error, aetools.decodeerror(_arguments)
-               # XXXX Optionally decode result
-               if _arguments.has_key('----'):
-                       return _arguments['----']
-
-       _argmap_Set_Preferences = {
-               'of_panel' : 'PNam',
-               'to' : 'PRec',
-       }
-
-       def Set_Preferences(self, _no_object=None, _attributes={}, **_arguments):
-               """Set Preferences: Set the preferences for the current project
-               Keyword argument of_panel: Name of the preference panel
-               Keyword argument to: Preferences settings
-               Keyword argument _attributes: AppleEvent attribute dictionary
-               """
-               _code = 'MMPR'
-               _subcode = 'Pref'
-
-               aetools.keysubst(_arguments, self._argmap_Set_Preferences)
-               if _no_object != None: raise TypeError, 'No direct arg expected'
-
-
-               _reply, _arguments, _attributes = self.send(_code, _subcode,
-                               _arguments, _attributes)
-               if _arguments.has_key('errn'):
-                       raise aetools.Error, aetools.decodeerror(_arguments)
-               # XXXX Optionally decode result
-               if _arguments.has_key('----'):
-                       return _arguments['----']
-
-       _argmap_Set_Project_File = {
-               'to' : 'SrcS',
-       }
-
-       def Set_Project_File(self, _object, _attributes={}, **_arguments):
-               """Set Project File: Changes the settings for a given file in the project.
-               Required argument: The name of the file
-               Keyword argument to: The new settings for the file
-               Keyword argument _attributes: AppleEvent attribute dictionary
-               """
-               _code = 'MMPR'
-               _subcode = 'SFil'
-
-               aetools.keysubst(_arguments, self._argmap_Set_Project_File)
-               _arguments['----'] = _object
-
-
-               _reply, _arguments, _attributes = self.send(_code, _subcode,
-                               _arguments, _attributes)
-               if _arguments.has_key('errn'):
-                       raise aetools.Error, aetools.decodeerror(_arguments)
-               # XXXX Optionally decode result
-               if _arguments.has_key('----'):
-                       return _arguments['----']
-
-       _argmap_Set_Segment = {
-               'to' : 'Segm',
-       }
-
-       def Set_Segment(self, _object, _attributes={}, **_arguments):
-               """Set Segment: Changes the name and attributes of a segment.
-               Required argument: The segment to change
-               Keyword argument to: The new name and attributes for the segment.
-               Keyword argument _attributes: AppleEvent attribute dictionary
-               """
-               _code = 'MMPR'
-               _subcode = 'SSeg'
-
-               aetools.keysubst(_arguments, self._argmap_Set_Segment)
-               _arguments['----'] = _object
-
-
-               _reply, _arguments, _attributes = self.send(_code, _subcode,
-                               _arguments, _attributes)
-               if _arguments.has_key('errn'):
-                       raise aetools.Error, aetools.decodeerror(_arguments)
-               # XXXX Optionally decode result
-               if _arguments.has_key('----'):
-                       return _arguments['----']
-
-       def Touch(self, _object, _attributes={}, **_arguments):
-               """Touch: Force recompilation of the specified file(s)
-               Required argument: List of files to compile
-               Keyword argument _attributes: AppleEvent attribute dictionary
-               Returns: Error code for each file touched
-               """
-               _code = 'MMPR'
-               _subcode = 'Toch'
-
-               if _arguments: raise TypeError, 'No optional args expected'
-               _arguments['----'] = _object
-
-
-               _reply, _arguments, _attributes = self.send(_code, _subcode,
-                               _arguments, _attributes)
-               if _arguments.has_key('errn'):
-                       raise aetools.Error, aetools.decodeerror(_arguments)
-               # XXXX Optionally decode result
-               if _arguments.has_key('----'):
-                       return _arguments['----']
-
-       _argmap_Update_Project = {
-               'ExternalEditor' : 'Errs',
-       }
-
-       def Update_Project(self, _no_object=None, _attributes={}, **_arguments):
-               """Update Project: Update the current project
-               Keyword argument ExternalEditor: Should the contents of the message window be returned to the caller?
-               Keyword argument _attributes: AppleEvent attribute dictionary
-               Returns: Errors that occurred while updating the project
-               """
-               _code = 'MMPR'
-               _subcode = 'UpdP'
-
-               aetools.keysubst(_arguments, self._argmap_Update_Project)
-               if _no_object != None: raise TypeError, 'No direct arg expected'
-
-
-               _reply, _arguments, _attributes = self.send(_code, _subcode,
-                               _arguments, _attributes)
-               if _arguments.has_key('errn'):
-                       raise aetools.Error, aetools.decodeerror(_arguments)
-               # XXXX Optionally decode result
-               if _arguments.has_key('----'):
-                       return _arguments['----']
-
-       def Open_browser(self, _object, _attributes={}, **_arguments):
-               """Open browser: Display a class, member function, or data member object in a single class browser window
-               Required argument: an AE object reference
-               Keyword argument _attributes: AppleEvent attribute dictionary
-               """
-               _code = 'MMPR'
-               _subcode = 'Brow'
-
-               if _arguments: raise TypeError, 'No optional args expected'
-               _arguments['----'] = _object
-
-
-               _reply, _arguments, _attributes = self.send(_code, _subcode,
-                               _arguments, _attributes)
-               if _arguments.has_key('errn'):
-                       raise aetools.Error, aetools.decodeerror(_arguments)
-               # XXXX Optionally decode result
-               if _arguments.has_key('----'):
-                       return _arguments['----']
-
-       def Get_nonsimple_classes(self, _no_object=None, _attributes={}, **_arguments):
-               """Get nonsimple classes: Returns an alphabetical list of classes with member functions, bases classes, or subclasses
-               Keyword argument _attributes: AppleEvent attribute dictionary
-               Returns: undocumented, typecode 'list'
-               """
-               _code = 'MMPR'
-               _subcode = 'NsCl'
-
-               if _arguments: raise TypeError, 'No optional args expected'
-               if _no_object != None: raise TypeError, 'No direct arg expected'
-
-
-               _reply, _arguments, _attributes = self.send(_code, _subcode,
-                               _arguments, _attributes)
-               if _arguments.has_key('errn'):
-                       raise aetools.Error, aetools.decodeerror(_arguments)
-               # XXXX Optionally decode result
-               if _arguments.has_key('----'):
-                       return _arguments['----']
-
-       def Get_member_function_names(self, _object, _attributes={}, **_arguments):
-               """Get member function names: Returns a list containing the names of all the member functions of a class object
-               Required argument: must be a class object
-               Keyword argument _attributes: AppleEvent attribute dictionary
-               Returns: undocumented, typecode 'list'
-               """
-               _code = 'MMPR'
-               _subcode = 'MbFN'
-
-               if _arguments: raise TypeError, 'No optional args expected'
-               _arguments['----'] = _object
-
-
-               _reply, _arguments, _attributes = self.send(_code, _subcode,
-                               _arguments, _attributes)
-               if _arguments.has_key('errn'):
-                       raise aetools.Error, aetools.decodeerror(_arguments)
-               # XXXX Optionally decode result
-               if _arguments.has_key('----'):
-                       return _arguments['----']
-
-
-class Access_Paths(aetools.ComponentItem):
-       """Access Paths - Contains the definitions of a project¹s access (search) paths."""
-       want = 'PATH'
-class User_Paths(aetools.NProperty):
-       """User Paths - To add an access path for the source files."""
-       which = 'PA01'
-       want = 'PInf'
-class System_Paths(aetools.NProperty):
-       """System Paths - To add an access path for the include files. (Not supported in Pascal)"""
-       which = 'PA03'
-       want = 'PInf'
-class Always_Full_Search(aetools.NProperty):
-       """Always Full Search - To force the compiler to search for system includes like it searches for user includes."""
-       which = 'PA02'
-       want = 'bool'
-
-class Editor(aetools.ComponentItem):
-       """Editor - """
-       want = 'EDTR'
-class Flash_delay(aetools.NProperty):
-       """Flash delay - The amount of time, in sixtieths of a second, the editor highlights a matching bracket."""
-       which = 'ED01'
-       want = 'long'
-class Dynamic_scroll(aetools.NProperty):
-       """Dynamic scroll - Display a window¹s contents as you move the scroll box."""
-       which = 'ED02'
-       want = 'bool'
-class Balance(aetools.NProperty):
-       """Balance - Flash the matching opening bracket when you type a closing bracket."""
-       which = 'ED03'
-       want = 'bool'
-class Use_Drag__26__Drop_Editing(aetools.NProperty):
-       """Use Drag & Drop Editing - Use Drag & Drop text editing."""
-       which = 'ED04'
-       want = 'bool'
-class Save_on_update(aetools.NProperty):
-       """Save on update - Save all editor windows automatically when you choose the Update command."""
-       which = 'ED05'
-       want = 'bool'
-class Sort_Function_Popup(aetools.NProperty):
-       """Sort Function Popup - """
-       which = 'ED06'
-       want = 'bool'
-class Use_Multiple_Undo(aetools.NProperty):
-       """Use Multiple Undo - """
-       which = 'ED07'
-       want = 'bool'
-class Remember_font(aetools.NProperty):
-       """Remember font - Display a source file with its own font settings."""
-       which = 'ED08'
-       want = 'bool'
-class Remember_selection(aetools.NProperty):
-       """Remember selection - Restore the previous selection in a file when you open it."""
-       which = 'ED09'
-       want = 'bool'
-class Remember_window(aetools.NProperty):
-       """Remember window - Restore the last size and position for a source file window when you open it."""
-       which = 'ED10'
-       want = 'bool'
-class Main_Text_Color(aetools.NProperty):
-       """Main Text Color - Main, default, color for text."""
-       which = 'ED12'
-       want = 'cRGB'
-class Background_Color(aetools.NProperty):
-       """Background Color - Color of the background of editor windows."""
-       which = 'ED13'
-       want = 'cRGB'
-class Context_Popup_Delay(aetools.NProperty):
-       """Context Popup Delay - The amount of time, in sixtieths of a second, before the context popup is displayed if you click and hold on a browser symbol."""
-       which = 'ED14'
-       want = 'bool'
-
-class Syntax_Coloring(aetools.ComponentItem):
-       """Syntax Coloring - """
-       want = 'SNTX'
-class Syntax_coloring(aetools.NProperty):
-       """Syntax coloring - Mark keywords and comments with color."""
-       which = 'GH01'
-       want = 'bool'
-class Comment_color(aetools.NProperty):
-       """Comment color - The color for comments."""
-       which = 'GH02'
-       want = 'cRGB'
-class Keyword_color(aetools.NProperty):
-       """Keyword color - The color for language keywords."""
-       which = 'GH03'
-       want = 'cRGB'
-class String_color(aetools.NProperty):
-       """String color - The color for strings."""
-       which = 'GH04'
-       want = 'cRGB'
-class Custom_color_1(aetools.NProperty):
-       """Custom color 1 - The color for the first set of custom keywords."""
-       which = 'GH05'
-       want = 'cRGB'
-class Custom_color_2(aetools.NProperty):
-       """Custom color 2 - The color for the second set custom keywords."""
-       which = 'GH06'
-       want = 'cRGB'
-class Custom_color_3(aetools.NProperty):
-       """Custom color 3 - The color for the third set of custom keywords."""
-       which = 'GH07'
-       want = 'cRGB'
-class Custom_color_4(aetools.NProperty):
-       """Custom color 4 - The color for the fourth set of custom keywords."""
-       which = 'GH08'
-       want = 'cRGB'
-
-class Custom_Keywords(aetools.ComponentItem):
-       """Custom Keywords - """
-       want = 'CUKW'
-class Custom_color_1(aetools.NProperty):
-       """Custom color 1 - The color for the first set of custom keywords."""
-       which = 'KW01'
-       want = 'cRGB'
-class Custom_color_2(aetools.NProperty):
-       """Custom color 2 - The color for the second set custom keywords."""
-       which = 'KW02'
-       want = 'cRGB'
-class Custom_color_3(aetools.NProperty):
-       """Custom color 3 - The color for the third set of custom keywords."""
-       which = 'KW03'
-       want = 'cRGB'
-class Custom_color_4(aetools.NProperty):
-       """Custom color 4 - The color for the fourth set of custom keywords."""
-       which = 'KW04'
-       want = 'cRGB'
-
-class Browser_Coloring(aetools.ComponentItem):
-       """Browser Coloring - Colors for Browser symbols."""
-       want = 'BRKW'
-class Browser_Keywords(aetools.NProperty):
-       """Browser Keywords - Mark Browser symbols with color."""
-       which = 'BW00'
-       want = 'bool'
-class Classes_Color(aetools.NProperty):
-       """Classes Color - The color for classes."""
-       which = 'BW01'
-       want = 'cRGB'
-class Constants_Color(aetools.NProperty):
-       """Constants Color - The color for constants."""
-       which = 'BW02'
-       want = 'cRGB'
-class Enums_Color(aetools.NProperty):
-       """Enums Color - The color for enums."""
-       which = 'BW03'
-       want = 'cRGB'
-class Functions_Color(aetools.NProperty):
-       """Functions Color - Set color for functions."""
-       which = 'BW04'
-       want = 'cRGB'
-class Globals_Color(aetools.NProperty):
-       """Globals Color - The color for globals"""
-       which = 'BW05'
-       want = 'cRGB'
-class Macros_Color(aetools.NProperty):
-       """Macros Color - The color for macros."""
-       which = 'BW06'
-       want = 'cRGB'
-class Templates_Color(aetools.NProperty):
-       """Templates Color - Set color for templates."""
-       which = 'BW07'
-       want = 'cRGB'
-class Typedefs_Color(aetools.NProperty):
-       """Typedefs Color - The color for typedefs."""
-       which = 'BW08'
-       want = 'cRGB'
-
-class Error_Information(aetools.ComponentItem):
-       """Error Information - Describes a single error or warning from the compiler or the linker."""
-       want = 'ErrM'
-class kind(aetools.NProperty):
-       """kind - The type of error or warning."""
-       which = 'ErrT'
-       want = 'ErrT'
-class message(aetools.NProperty):
-       """message - The error or warning message."""
-       which = 'ErrS'
-       want = 'TEXT'
-class disk_file(aetools.NProperty):
-       """disk file - The file where the error occurred.  May not be returned for certain kinds of errors (eg, link errors)."""
-       which = 'file'
-       want = 'fss '
-class lineNumber(aetools.NProperty):
-       """lineNumber - The line in the file where the error occurred.  May not be returned for certain kinds of errors (eg, link errors)."""
-       which = 'ErrL'
-       want = 'long'
-
-class Extras(aetools.ComponentItem):
-       """Extras - """
-       want = 'GXTR'
-class Completion_sound(aetools.NProperty):
-       """Completion sound - Play a sound when finished a Bring Up To Date or Make command."""
-       which = 'EX01'
-       want = 'bool'
-class Success_sound(aetools.NProperty):
-       """Success sound - The sound CodeWarrior plays when it successfully finishes a Bring Up To Date or Make command."""
-       which = 'EX02'
-       want = 'TEXT'
-class Failure_sound(aetools.NProperty):
-       """Failure sound - The sound CodeWarrior plays when it cannot finish a Bring Up To Date or Make command."""
-       which = 'EX03'
-       want = 'TEXT'
-class Full_screen_zoom(aetools.NProperty):
-       """Full screen zoom - Zoom windows to the full screen width."""
-       which = 'EX07'
-       want = 'bool'
-class External_reference(aetools.NProperty):
-       """External reference - Which on-line function reference to use."""
-       which = 'EX08'
-       want = 'RefP'
-class Use_Script_Menu(aetools.NProperty):
-       """Use Script Menu - Controls the use of the AppleScript menu"""
-       which = 'EX12'
-       want = 'bool'
-class Use_Editor_Extensions(aetools.NProperty):
-       """Use Editor Extensions - Controls the use of the Editor Extensions menu"""
-       which = 'EX10'
-       want = 'bool'
-class Use_External_Editor(aetools.NProperty):
-       """Use External Editor - Controls whether CodeWarrior uses its own integrated editor or an external application for editing text files."""
-       which = 'EX11'
-       want = 'bool'
-class Honor_Projector_State_for_Projects(aetools.NProperty):
-       """Honor Projector State for Projects - Controls whether CodeWarrior opens files set to read-only by Projector."""
-       which = 'EX13'
-       want = 'bool'
-
-class Build_Extras(aetools.ComponentItem):
-       """Build Extras - """
-       want = 'LXTR'
-class Browser_active(aetools.NProperty):
-       """Browser active - Allow the collection of browser information."""
-       which = 'EX09'
-       want = 'bool'
-class Modification_date_caching(aetools.NProperty):
-       """Modification date caching - """
-       which = 'EX04'
-       want = 'bool'
-class Multiprocessing_Compilation(aetools.NProperty):
-       """Multiprocessing Compilation - """
-       which = 'EX14'
-       want = 'bool'
-class Show_ToolServer_Menu(aetools.NProperty):
-       """Show ToolServer Menu - """
-       which = 'EX18'
-       want = 'bool'
-class Enable_Automatic_Toolbar_Help(aetools.NProperty):
-       """Enable Automatic Toolbar Help - """
-       which = 'EX19'
-       want = 'bool'
-class Include_File_Cache_Size__28_K_29_(aetools.NProperty):
-       """Include File Cache Size (K) - """
-       which = 'EX15'
-       want = 'long'
-class Recent_Documents(aetools.NProperty):
-       """Recent Documents - """
-       which = 'EX16'
-       want = 'shor'
-class Recent_Projects(aetools.NProperty):
-       """Recent Projects - """
-       which = 'EX17'
-       want = 'shor'
-
-class File_Mappings(aetools.ComponentItem):
-       """File Mappings - Mappings of extensions & file types to compilers"""
-       want = 'FLMP'
-class mappings(aetools.NProperty):
-       """mappings - """
-       which = 'FMps'
-       want = 'FMap'
-
-class Font(aetools.ComponentItem):
-       """Font - """
-       want = 'mFNT'
-class Auto_indent(aetools.NProperty):
-       """Auto indent - Indent new lines automatically."""
-       which = 'FN01'
-       want = 'bool'
-class Tab_size(aetools.NProperty):
-       """Tab size - """
-       which = 'FN02'
-       want = 'shor'
-class Text_font(aetools.NProperty):
-       """Text font - The font used in editing windows."""
-       which = 'ptxf'
-       want = 'TEXT'
-class Text_size(aetools.NProperty):
-       """Text size - The size of the text in an editing window."""
-       which = 'ptps'
-       want = 'shor'
-
-class Function_Information(aetools.ComponentItem):
-       """Function Information - Describes the location of any function or global data definition within the current project."""
-       want = 'FDef'
-# repeated property disk_file The location on disk of the file containing the definition.
-# repeated property lineNumber The line number where the definition begins.
-
-class Path_Information(aetools.ComponentItem):
-       """Path Information - Contains all of the parameters that describe an access path."""
-       want = 'PInf'
-class name(aetools.NProperty):
-       """name - The actual path name."""
-       which = 'pnam'
-       want = 'TEXT'
-class recursive(aetools.NProperty):
-       """recursive - Will the path be searched recursively?  (Default is true)"""
-       which = 'Recu'
-       want = 'bool'
-class origin(aetools.NProperty):
-       """origin - """
-       which = 'Orig'
-       want = 'PPrm'
-
-class ProjectFile(aetools.ComponentItem):
-       """ProjectFile - A file contained in a project"""
-       want = 'SrcF'
-class filetype(aetools.NProperty):
-       """filetype - What kind of file is this ?"""
-       which = 'SrcT'
-       want = 'SrcT'
-# repeated property name The file¹s name
-# repeated property disk_file The file¹s location on disk
-class codesize(aetools.NProperty):
-       """codesize - The size of this file¹s code."""
-       which = 'CSiz'
-       want = 'long'
-class datasize(aetools.NProperty):
-       """datasize - The size of this file¹s data."""
-       which = 'DSiz'
-       want = 'long'
-class up_to_date(aetools.NProperty):
-       """up to date - Has the file been compiled since its last modification ?"""
-       which = 'UpTD'
-       want = 'bool'
-class symbols(aetools.NProperty):
-       """symbols - Are debugging symbols generated for this file ?"""
-       which = 'SymG'
-       want = 'bool'
-class weak_link(aetools.NProperty):
-       """weak link - Is this file imported weakly into the project ? [PowerPC only]"""
-       which = 'Weak'
-       want = 'bool'
-class initialize_before(aetools.NProperty):
-       """initialize before - Intiailize the shared library before the main application."""
-       which = 'Bfor'
-       want = 'bool'
-class includes(aetools.NProperty):
-       """includes - """
-       which = 'IncF'
-       want = 'fss '
-
-class Segment(aetools.ComponentItem):
-       """Segment - A segment or group in the project"""
-       want = 'Seg '
-# repeated property name 
-class filecount(aetools.NProperty):
-       """filecount - """
-       which = 'NumF'
-       want = 'shor'
-class preloaded(aetools.NProperty):
-       """preloaded - Is the segment preloaded ? [68K only]"""
-       which = 'Prel'
-       want = 'bool'
-class protected(aetools.NProperty):
-       """protected - Is the segment protected ? [68K only]"""
-       which = 'Prot'
-       want = 'bool'
-class locked(aetools.NProperty):
-       """locked - Is the segment locked ? [68K only]"""
-       which = 'PLck'
-       want = 'bool'
-class purgeable(aetools.NProperty):
-       """purgeable - Is the segment purgeable ? [68K only]"""
-       which = 'Purg'
-       want = 'bool'
-class system_heap(aetools.NProperty):
-       """system heap - Is the segment loaded into the system heap ? [68K only]"""
-       which = 'SysH'
-       want = 'bool'
-
-class Target_Settings(aetools.ComponentItem):
-       """Target Settings - Contains the definitions of a project¹s target."""
-       want = 'TARG'
-class Linker(aetools.NProperty):
-       """Linker - The name of the current linker."""
-       which = 'TA01'
-       want = 'TEXT'
-class Post_Linker(aetools.NProperty):
-       """Post Linker - """
-       which = 'TA09'
-       want = 'TEXT'
-class Target_Name(aetools.NProperty):
-       """Target Name - """
-       which = 'TA10'
-       want = 'TEXT'
-class Output_Directory_Path(aetools.NProperty):
-       """Output Directory Path - """
-       which = 'TA11'
-       want = 'TEXT'
-class Output_Directory_Origin(aetools.NProperty):
-       """Output Directory Origin - """
-       which = 'TA12'
-       want = 'PPrm'
-
-class File_Mapping(aetools.ComponentItem):
-       """File Mapping - """
-       want = 'FMap'
-class File_Type(aetools.NProperty):
-       """File Type - """
-       which = 'PR04'
-       want = 'TEXT'
-class Extension(aetools.NProperty):
-       """Extension - """
-       which = 'TA02'
-       want = 'TEXT'
-class Precompiled(aetools.NProperty):
-       """Precompiled - """
-       which = 'TA03'
-       want = 'bool'
-class Resource_File(aetools.NProperty):
-       """Resource File - """
-       which = 'TA04'
-       want = 'bool'
-class Launchable(aetools.NProperty):
-       """Launchable - """
-       which = 'TA05'
-       want = 'bool'
-class Ignored_by_Make(aetools.NProperty):
-       """Ignored by Make - """
-       which = 'TA06'
-       want = 'bool'
-class Compiler(aetools.NProperty):
-       """Compiler - """
-       which = 'TA07'
-       want = 'TEXT'
-
-class _class(aetools.ComponentItem):
-       """class - A class, struct, or record type in the current project"""
-       want = 'Clas'
-# repeated property name 
-class language(aetools.NProperty):
-       """language - Implementation language of this class"""
-       which = 'Lang'
-       want = 'Lang'
-class declaration_file(aetools.NProperty):
-       """declaration file - Source file containing the class declaration"""
-       which = 'DcFl'
-       want = 'fss '
-class declaration_start_offset(aetools.NProperty):
-       """declaration start offset - Start of class declaration source code"""
-       which = 'DcSt'
-       want = 'long'
-class declaration_end_offset(aetools.NProperty):
-       """declaration end offset - End of class declaration"""
-       which = 'DcEn'
-       want = 'long'
-class subclasses(aetools.NProperty):
-       """subclasses - the immediate subclasses of this class"""
-       which = 'SubC'
-       want = 'Clas'
-class all_subclasses(aetools.NProperty):
-       """all subclasses - the classes directly or indirectly derived from this class"""
-       which = 'SubA'
-       want = 'Clas'
-#        element 'BsCl' as ['indx']
-#        element 'MbFn' as ['indx', 'name']
-#        element 'DtMb' as ['indx', 'name']
-
-classes = _class
-
-class member_function(aetools.ComponentItem):
-       """member function - A class member function or method."""
-       want = 'MbFn'
-# repeated property name 
-class access(aetools.NProperty):
-       """access - """
-       which = 'Acce'
-       want = 'Acce'
-class virtual(aetools.NProperty):
-       """virtual - """
-       which = 'Virt'
-       want = 'bool'
-class static(aetools.NProperty):
-       """static - """
-       which = 'Stat'
-       want = 'bool'
-# repeated property declaration_file Source file containing the member function declaration
-# repeated property declaration_start_offset start of member function declaration source code
-# repeated property declaration_end_offset end of member function declaration
-class implementation_file(aetools.NProperty):
-       """implementation file - Source file containing the member function definition"""
-       which = 'DfFl'
-       want = 'fss '
-class implementation_start_offset(aetools.NProperty):
-       """implementation start offset - start of member function definition source code"""
-       which = 'DfSt'
-       want = 'long'
-class implementation_end_offset(aetools.NProperty):
-       """implementation end offset - end of member function definition"""
-       which = 'DfEn'
-       want = 'long'
-
-member_functions = member_function
-
-class data_member(aetools.ComponentItem):
-       """data member - A class data member or field"""
-       want = 'DtMb'
-# repeated property name 
-# repeated property access 
-# repeated property static 
-# repeated property declaration_start_offset 
-# repeated property declaration_end_offset 
-
-data_members = data_member
-
-class base_class(aetools.ComponentItem):
-       """base class - A base class or super class of a class"""
-       want = 'BsCl'
-class _class(aetools.NProperty):
-       """class - The class object corresponding to this base class"""
-       which = 'Clas'
-       want = 'obj '
-# repeated property access 
-# repeated property virtual 
-
-base_classes = base_class
-
-class browser_catalog(aetools.ComponentItem):
-       """browser catalog - The browser symbol catalog for the current project"""
-       want = 'Cata'
-#        element 'Clas' as ['indx', 'name']
-
-class VCS_Setup(aetools.ComponentItem):
-       """VCS Setup - The version control system perferences."""
-       want = 'VCSs'
-class VCS_Active(aetools.NProperty):
-       """VCS Active - Use Version Control"""
-       which = 'VC01'
-       want = 'bool'
-class Connection_Method(aetools.NProperty):
-       """Connection Method - Name of Version Control System to use."""
-       which = 'VC02'
-       want = 'TEXT'
-class Username(aetools.NProperty):
-       """Username - The user name for the VCS."""
-       which = 'VC03'
-       want = 'TEXT'
-class Password(aetools.NProperty):
-       """Password - The password for the VCS."""
-       which = 'VC04'
-       want = 'TEXT'
-class Auto_Connect(aetools.NProperty):
-       """Auto Connect - Automatically connect to database when starting."""
-       which = 'VC05'
-       want = 'bool'
-class Store_Password(aetools.NProperty):
-       """Store Password - Store the password."""
-       which = 'VC06'
-       want = 'bool'
-class Always_Prompt(aetools.NProperty):
-       """Always Prompt - Always show login dialog"""
-       which = 'VC07'
-       want = 'bool'
-class Mount_Volume(aetools.NProperty):
-       """Mount Volume - Attempt to mount the database volume if it isn't available."""
-       which = 'VC08'
-       want = 'bool'
-class Database_Path(aetools.NProperty):
-       """Database Path - Path to the VCS database."""
-       which = 'VC09'
-       want = 'PInf'
-class Local_Root(aetools.NProperty):
-       """Local Root - Path to the local directory to checkout to."""
-       which = 'VC10'
-       want = 'PInf'
-Access_Paths._propdict = {
-       'User_Paths' : User_Paths,
-       'System_Paths' : System_Paths,
-       'Always_Full_Search' : Always_Full_Search,
-}
-Access_Paths._elemdict = {
-}
-Editor._propdict = {
-       'Flash_delay' : Flash_delay,
-       'Dynamic_scroll' : Dynamic_scroll,
-       'Balance' : Balance,
-       'Use_Drag__26__Drop_Editing' : Use_Drag__26__Drop_Editing,
-       'Save_on_update' : Save_on_update,
-       'Sort_Function_Popup' : Sort_Function_Popup,
-       'Use_Multiple_Undo' : Use_Multiple_Undo,
-       'Remember_font' : Remember_font,
-       'Remember_selection' : Remember_selection,
-       'Remember_window' : Remember_window,
-       'Main_Text_Color' : Main_Text_Color,
-       'Background_Color' : Background_Color,
-       'Context_Popup_Delay' : Context_Popup_Delay,
-}
-Editor._elemdict = {
-}
-Syntax_Coloring._propdict = {
-       'Syntax_coloring' : Syntax_coloring,
-       'Comment_color' : Comment_color,
-       'Keyword_color' : Keyword_color,
-       'String_color' : String_color,
-       'Custom_color_1' : Custom_color_1,
-       'Custom_color_2' : Custom_color_2,
-       'Custom_color_3' : Custom_color_3,
-       'Custom_color_4' : Custom_color_4,
-}
-Syntax_Coloring._elemdict = {
-}
-Custom_Keywords._propdict = {
-       'Custom_color_1' : Custom_color_1,
-       'Custom_color_2' : Custom_color_2,
-       'Custom_color_3' : Custom_color_3,
-       'Custom_color_4' : Custom_color_4,
-}
-Custom_Keywords._elemdict = {
-}
-Browser_Coloring._propdict = {
-       'Browser_Keywords' : Browser_Keywords,
-       'Classes_Color' : Classes_Color,
-       'Constants_Color' : Constants_Color,
-       'Enums_Color' : Enums_Color,
-       'Functions_Color' : Functions_Color,
-       'Globals_Color' : Globals_Color,
-       'Macros_Color' : Macros_Color,
-       'Templates_Color' : Templates_Color,
-       'Typedefs_Color' : Typedefs_Color,
-}
-Browser_Coloring._elemdict = {
-}
-Error_Information._propdict = {
-       'kind' : kind,
-       'message' : message,
-       'disk_file' : disk_file,
-       'lineNumber' : lineNumber,
-}
-Error_Information._elemdict = {
-}
-Extras._propdict = {
-       'Completion_sound' : Completion_sound,
-       'Success_sound' : Success_sound,
-       'Failure_sound' : Failure_sound,
-       'Full_screen_zoom' : Full_screen_zoom,
-       'External_reference' : External_reference,
-       'Use_Script_Menu' : Use_Script_Menu,
-       'Use_Editor_Extensions' : Use_Editor_Extensions,
-       'Use_External_Editor' : Use_External_Editor,
-       'Honor_Projector_State_for_Projects' : Honor_Projector_State_for_Projects,
-}
-Extras._elemdict = {
-}
-Build_Extras._propdict = {
-       'Browser_active' : Browser_active,
-       'Modification_date_caching' : Modification_date_caching,
-       'Multiprocessing_Compilation' : Multiprocessing_Compilation,
-       'Show_ToolServer_Menu' : Show_ToolServer_Menu,
-       'Enable_Automatic_Toolbar_Help' : Enable_Automatic_Toolbar_Help,
-       'Include_File_Cache_Size__28_K_29_' : Include_File_Cache_Size__28_K_29_,
-       'Recent_Documents' : Recent_Documents,
-       'Recent_Projects' : Recent_Projects,
-}
-Build_Extras._elemdict = {
-}
-File_Mappings._propdict = {
-       'mappings' : mappings,
-}
-File_Mappings._elemdict = {
-}
-Font._propdict = {
-       'Auto_indent' : Auto_indent,
-       'Tab_size' : Tab_size,
-       'Text_font' : Text_font,
-       'Text_size' : Text_size,
-}
-Font._elemdict = {
-}
-Function_Information._propdict = {
-       'disk_file' : disk_file,
-       'lineNumber' : lineNumber,
-}
-Function_Information._elemdict = {
-}
-Path_Information._propdict = {
-       'name' : name,
-       'recursive' : recursive,
-       'origin' : origin,
-}
-Path_Information._elemdict = {
-}
-ProjectFile._propdict = {
-       'filetype' : filetype,
-       'name' : name,
-       'disk_file' : disk_file,
-       'codesize' : codesize,
-       'datasize' : datasize,
-       'up_to_date' : up_to_date,
-       'symbols' : symbols,
-       'weak_link' : weak_link,
-       'initialize_before' : initialize_before,
-       'includes' : includes,
-}
-ProjectFile._elemdict = {
-}
-Segment._propdict = {
-       'name' : name,
-       'filecount' : filecount,
-       'preloaded' : preloaded,
-       'protected' : protected,
-       'locked' : locked,
-       'purgeable' : purgeable,
-       'system_heap' : system_heap,
-}
-Segment._elemdict = {
-}
-Target_Settings._propdict = {
-       'Linker' : Linker,
-       'Post_Linker' : Post_Linker,
-       'Target_Name' : Target_Name,
-       'Output_Directory_Path' : Output_Directory_Path,
-       'Output_Directory_Origin' : Output_Directory_Origin,
-}
-Target_Settings._elemdict = {
-}
-File_Mapping._propdict = {
-       'File_Type' : File_Type,
-       'Extension' : Extension,
-       'Precompiled' : Precompiled,
-       'Resource_File' : Resource_File,
-       'Launchable' : Launchable,
-       'Ignored_by_Make' : Ignored_by_Make,
-       'Compiler' : Compiler,
-}
-File_Mapping._elemdict = {
-}
-_class._propdict = {
-       'name' : name,
-       'language' : language,
-       'declaration_file' : declaration_file,
-       'declaration_start_offset' : declaration_start_offset,
-       'declaration_end_offset' : declaration_end_offset,
-       'subclasses' : subclasses,
-       'all_subclasses' : all_subclasses,
-}
-_class._elemdict = {
-       'base_class' : base_class,
-       'member_function' : member_function,
-       'data_member' : data_member,
-}
-member_function._propdict = {
-       'name' : name,
-       'access' : access,
-       'virtual' : virtual,
-       'static' : static,
-       'declaration_file' : declaration_file,
-       'declaration_start_offset' : declaration_start_offset,
-       'declaration_end_offset' : declaration_end_offset,
-       'implementation_file' : implementation_file,
-       'implementation_start_offset' : implementation_start_offset,
-       'implementation_end_offset' : implementation_end_offset,
-}
-member_function._elemdict = {
-}
-data_member._propdict = {
-       'name' : name,
-       'access' : access,
-       'static' : static,
-       'declaration_start_offset' : declaration_start_offset,
-       'declaration_end_offset' : declaration_end_offset,
-}
-data_member._elemdict = {
-}
-base_class._propdict = {
-       '_class' : _class,
-       'access' : access,
-       'virtual' : virtual,
-}
-base_class._elemdict = {
-}
-browser_catalog._propdict = {
-}
-browser_catalog._elemdict = {
-       '_class' : _class,
-}
-VCS_Setup._propdict = {
-       'VCS_Active' : VCS_Active,
-       'Connection_Method' : Connection_Method,
-       'Username' : Username,
-       'Password' : Password,
-       'Auto_Connect' : Auto_Connect,
-       'Store_Password' : Store_Password,
-       'Always_Prompt' : Always_Prompt,
-       'Mount_Volume' : Mount_Volume,
-       'Database_Path' : Database_Path,
-       'Local_Root' : Local_Root,
-}
-VCS_Setup._elemdict = {
-}
-_Enum_savo = {
-       'yes' : 'yes ', # Save changes
-       'no' : 'no  ',  # Do not save changes
-       'ask' : 'ask ', # Ask the user whether to save
-}
-
-_Enum_ErrT = {
-       'information' : 'ErIn', # 
-       'compiler_warning' : 'ErCW',    # 
-       'compiler_error' : 'ErCE',      # 
-       'definition' : 'ErDf',  # 
-       'linker_warning' : 'ErLW',      # 
-       'linker_error' : 'ErLE',        # 
-       'find_result' : 'ErFn', # 
-       'generic_error' : 'ErGn',       # 
-}
-
-_Enum_Mode = {
-       'ReadWrite' : 'RdWr',   # The file is open with read/write privileges
-       'ReadOnly' : 'Read',    # The file is open with read/only privileges
-       'CheckedOut_ReadWrite' : 'CkRW',        # The file is checked out with read/write privileges
-       'CheckedOut_ReadOnly' : 'CkRO', # The file is checked out with read/only privileges
-       'CheckedOut_ReadModify' : 'CkRM',       # The file is checked out with read/modify privileges
-       'Locked' : 'Lock',      # The file is locked on disk
-       'None' : 'None',        # The file is new
-}
-
-_Enum_SrcT = {
-       'source' : 'FTxt',      # A source file (.c, .cp, .p, etc).
-       'unknown' : 'FUnk',     # An unknown file type.
-}
-
-_Enum_PPrm = {
-       'absolute' : 'Abso',    # An absolute path name, including volume name.
-       'project_relative' : 'PRel',    # A path relative to the current project¹s folder.
-       'shell_relative' : 'SRel',      # A path relative to the CodeWarrior\81 folder.
-       'system_relative' : 'YRel',     # A path relative to the system folder
-}
-
-_Enum_RefP = {
-       'Think_Reference' : 'DanR',     # 
-       'QuickView' : 'ALTV',   # 
-}
-
-_Enum_Lang = {
-       'C' : 'LC  ',   # 
-       'C_2b__2b_' : 'LC++',   # 
-       'Pascal' : 'LP  ',      # 
-       'Object_Pascal' : 'LP++',       # 
-       'Java' : 'LJav',        # 
-       'Assembler' : 'LAsm',   # 
-       'Unknown' : 'L?  ',     # 
-}
-
-_Enum_Acce = {
-       'public' : 'Publ',      # 
-       'protected' : 'Prot',   # 
-       'private' : 'Priv',     # 
-}
-
-_Enum_Inte = {
-       'never_interact' : 'eNvr',      # Never allow user interactions
-       'interact_with_self' : 'eInS',  # Allow user interaction only when an AppleEvent is sent from within CodeWarrior
-       'interact_with_local' : 'eInL', # Allow user interaction when AppleEvents are sent from applications on the same machine (default)
-       'interact_with_all' : 'eInA',   # Allow user interaction from both local and remote AppleEvents
-}
-
-
-#
-# Indices of types declared in this module
-#
-_classdeclarations = {
-       'LXTR' : Build_Extras,
-       'Seg ' : Segment,
-       'BsCl' : base_class,
-       'PATH' : Access_Paths,
-       'mFNT' : Font,
-       'BRKW' : Browser_Coloring,
-       'FLMP' : File_Mappings,
-       'Cata' : browser_catalog,
-       'SNTX' : Syntax_Coloring,
-       'CUKW' : Custom_Keywords,
-       'PInf' : Path_Information,
-       'TARG' : Target_Settings,
-       'FDef' : Function_Information,
-       'EDTR' : Editor,
-       'VCSs' : VCS_Setup,
-       'ErrM' : Error_Information,
-       'Clas' : _class,
-       'SrcF' : ProjectFile,
-       'GXTR' : Extras,
-       'MbFn' : member_function,
-       'DtMb' : data_member,
-       'FMap' : File_Mapping,
-}
-
-_propdeclarations = {
-       'CSiz' : codesize,
-       'DcEn' : declaration_end_offset,
-       'FMps' : mappings,
-       'VC02' : Connection_Method,
-       'VC03' : Username,
-       'TA02' : Extension,
-       'UpTD' : up_to_date,
-       'VC07' : Always_Prompt,
-       'Virt' : virtual,
-       'VC05' : Auto_Connect,
-       'VC08' : Mount_Volume,
-       'VC09' : Database_Path,
-       'VC06' : Store_Password,
-       'PA02' : Always_Full_Search,
-       'PA03' : System_Paths,
-       'Clas' : _class,
-       'PA01' : User_Paths,
-       'TA09' : Post_Linker,
-       'Lang' : language,
-       'VC10' : Local_Root,
-       'EX09' : Browser_active,
-       'GH08' : Custom_color_4,
-       'DfFl' : implementation_file,
-       'GH06' : Custom_color_2,
-       'GH07' : Custom_color_3,
-       'GH04' : String_color,
-       'GH05' : Custom_color_1,
-       'KW01' : Custom_color_1,
-       'GH03' : Keyword_color,
-       'KW03' : Custom_color_3,
-       'KW02' : Custom_color_2,
-       'BW02' : Constants_Color,
-       'BW03' : Enums_Color,
-       'BW00' : Browser_Keywords,
-       'BW01' : Classes_Color,
-       'BW06' : Macros_Color,
-       'BW07' : Templates_Color,
-       'BW04' : Functions_Color,
-       'pnam' : name,
-       'DfSt' : implementation_start_offset,
-       'BW08' : Typedefs_Color,
-       'PR04' : File_Type,
-       'EX04' : Modification_date_caching,
-       'EX07' : Full_screen_zoom,
-       'PLck' : locked,
-       'EX02' : Success_sound,
-       'EX03' : Failure_sound,
-       'TA06' : Ignored_by_Make,
-       'TA07' : Compiler,
-       'TA04' : Resource_File,
-       'TA05' : Launchable,
-       'EX08' : External_reference,
-       'DSiz' : datasize,
-       'TA01' : Linker,
-       'VC04' : Password,
-       'Bfor' : initialize_before,
-       'SrcT' : filetype,
-       'SysH' : system_heap,
-       'GH01' : Syntax_coloring,
-       'GH02' : Comment_color,
-       'Prel' : preloaded,
-       'Orig' : origin,
-       'EX17' : Recent_Projects,
-       'EX16' : Recent_Documents,
-       'EX15' : Include_File_Cache_Size__28_K_29_,
-       'EX14' : Multiprocessing_Compilation,
-       'EX01' : Completion_sound,
-       'EX12' : Use_Script_Menu,
-       'EX11' : Use_External_Editor,
-       'EX10' : Use_Editor_Extensions,
-       'TA11' : Output_Directory_Path,
-       'TA10' : Target_Name,
-       'TA12' : Output_Directory_Origin,
-       'EX19' : Enable_Automatic_Toolbar_Help,
-       'EX18' : Show_ToolServer_Menu,
-       'ErrT' : kind,
-       'ptxf' : Text_font,
-       'ErrS' : message,
-       'SubA' : all_subclasses,
-       'SubC' : subclasses,
-       'ED08' : Remember_font,
-       'ED09' : Remember_selection,
-       'VC01' : VCS_Active,
-       'ErrL' : lineNumber,
-       'ED01' : Flash_delay,
-       'ED02' : Dynamic_scroll,
-       'ED03' : Balance,
-       'ED04' : Use_Drag__26__Drop_Editing,
-       'ED05' : Save_on_update,
-       'ED06' : Sort_Function_Popup,
-       'ED07' : Use_Multiple_Undo,
-       'Recu' : recursive,
-       'IncF' : includes,
-       'file' : disk_file,
-       'TA03' : Precompiled,
-       'Weak' : weak_link,
-       'DcSt' : declaration_start_offset,
-       'ptps' : Text_size,
-       'Stat' : static,
-       'ED10' : Remember_window,
-       'EX13' : Honor_Projector_State_for_Projects,
-       'DfEn' : implementation_end_offset,
-       'BW05' : Globals_Color,
-       'FN01' : Auto_indent,
-       'Purg' : purgeable,
-       'NumF' : filecount,
-       'Acce' : access,
-       'Prot' : protected,
-       'DcFl' : declaration_file,
-       'KW04' : Custom_color_4,
-       'ED13' : Background_Color,
-       'ED12' : Main_Text_Color,
-       'SymG' : symbols,
-       'FN02' : Tab_size,
-       'ED14' : Context_Popup_Delay,
-}
-
-_compdeclarations = {
-}
-
-_enumdeclarations = {
-       'ErrT' : _Enum_ErrT,
-       'PPrm' : _Enum_PPrm,
-       'RefP' : _Enum_RefP,
-       'Acce' : _Enum_Acce,
-       'SrcT' : _Enum_SrcT,
-       'Mode' : _Enum_Mode,
-       'Inte' : _Enum_Inte,
-       'savo' : _Enum_savo,
-       'Lang' : _Enum_Lang,
-}
diff --git a/Mac/Lib/lib-scripting/Standard_Suite.py b/Mac/Lib/lib-scripting/Standard_Suite.py
deleted file mode 100644 (file)
index 36eaed8..0000000
+++ /dev/null
@@ -1,713 +0,0 @@
-"""Suite Standard Suite: Common terms for most applications
-Level 1, version 1
-
-Generated from flap:System Folder:Extensions:Scripting Additions:Dialects:English Dialect
-AETE/AEUT resource version 1/0, language 0, script 0
-"""
-
-import aetools
-import MacOS
-
-_code = 'core'
-
-class Standard_Suite:
-
-       _argmap_class_info = {
-               '_in' : 'wrcd',
-       }
-
-       def class_info(self, _object=None, _attributes={}, **_arguments):
-               """class info: Get information about an object class
-               Required argument: the object class about which information is requested
-               Keyword argument _in: the human language and script system in which to return information
-               Keyword argument _attributes: AppleEvent attribute dictionary
-               Returns: a record containing the object¹s properties and elements
-               """
-               _code = 'core'
-               _subcode = 'qobj'
-
-               aetools.keysubst(_arguments, self._argmap_class_info)
-               _arguments['----'] = _object
-
-
-               _reply, _arguments, _attributes = self.send(_code, _subcode,
-                               _arguments, _attributes)
-               if _arguments.has_key('errn'):
-                       raise aetools.Error, aetools.decodeerror(_arguments)
-               # XXXX Optionally decode result
-               if _arguments.has_key('----'):
-                       return _arguments['----']
-
-       _argmap_close = {
-               'saving' : 'savo',
-               'saving_in' : 'kfil',
-       }
-
-       def close(self, _object, _attributes={}, **_arguments):
-               """close: Close an object
-               Required argument: the object to close
-               Keyword argument saving: specifies whether changes should be saved before closing
-               Keyword argument saving_in: the file in which to save the object
-               Keyword argument _attributes: AppleEvent attribute dictionary
-               """
-               _code = 'core'
-               _subcode = 'clos'
-
-               aetools.keysubst(_arguments, self._argmap_close)
-               _arguments['----'] = _object
-
-               aetools.enumsubst(_arguments, 'savo', _Enum_savo)
-
-               _reply, _arguments, _attributes = self.send(_code, _subcode,
-                               _arguments, _attributes)
-               if _arguments.has_key('errn'):
-                       raise aetools.Error, aetools.decodeerror(_arguments)
-               # XXXX Optionally decode result
-               if _arguments.has_key('----'):
-                       return _arguments['----']
-
-       _argmap_count = {
-               'each' : 'kocl',
-       }
-
-       def count(self, _object, _attributes={}, **_arguments):
-               """count: Return the number of elements of a particular class within an object
-               Required argument: the object whose elements are to be counted
-               Keyword argument each: the class of the elements to be counted.
-               Keyword argument _attributes: AppleEvent attribute dictionary
-               Returns: the number of elements
-               """
-               _code = 'core'
-               _subcode = 'cnte'
-
-               aetools.keysubst(_arguments, self._argmap_count)
-               _arguments['----'] = _object
-
-
-               _reply, _arguments, _attributes = self.send(_code, _subcode,
-                               _arguments, _attributes)
-               if _arguments.has_key('errn'):
-                       raise aetools.Error, aetools.decodeerror(_arguments)
-               # XXXX Optionally decode result
-               if _arguments.has_key('----'):
-                       return _arguments['----']
-
-       _argmap_data_size = {
-               'as' : 'rtyp',
-       }
-
-       def data_size(self, _object, _attributes={}, **_arguments):
-               """data size: Return the size in bytes of an object
-               Required argument: the object whose data size is to be returned
-               Keyword argument as: the data type for which the size is calculated
-               Keyword argument _attributes: AppleEvent attribute dictionary
-               Returns: the size of the object in bytes
-               """
-               _code = 'core'
-               _subcode = 'dsiz'
-
-               aetools.keysubst(_arguments, self._argmap_data_size)
-               _arguments['----'] = _object
-
-
-               _reply, _arguments, _attributes = self.send(_code, _subcode,
-                               _arguments, _attributes)
-               if _arguments.has_key('errn'):
-                       raise aetools.Error, aetools.decodeerror(_arguments)
-               # XXXX Optionally decode result
-               if _arguments.has_key('----'):
-                       return _arguments['----']
-
-       def delete(self, _object, _attributes={}, **_arguments):
-               """delete: Delete an element from an object
-               Required argument: the element to delete
-               Keyword argument _attributes: AppleEvent attribute dictionary
-               """
-               _code = 'core'
-               _subcode = 'delo'
-
-               if _arguments: raise TypeError, 'No optional args expected'
-               _arguments['----'] = _object
-
-
-               _reply, _arguments, _attributes = self.send(_code, _subcode,
-                               _arguments, _attributes)
-               if _arguments.has_key('errn'):
-                       raise aetools.Error, aetools.decodeerror(_arguments)
-               # XXXX Optionally decode result
-               if _arguments.has_key('----'):
-                       return _arguments['----']
-
-       _argmap_duplicate = {
-               'to' : 'insh',
-       }
-
-       def duplicate(self, _object, _attributes={}, **_arguments):
-               """duplicate: Duplicate object(s)
-               Required argument: the object(s) to duplicate
-               Keyword argument to: the new location for the object(s)
-               Keyword argument _attributes: AppleEvent attribute dictionary
-               Returns: to the duplicated object(s)
-               """
-               _code = 'core'
-               _subcode = 'clon'
-
-               aetools.keysubst(_arguments, self._argmap_duplicate)
-               _arguments['----'] = _object
-
-
-               _reply, _arguments, _attributes = self.send(_code, _subcode,
-                               _arguments, _attributes)
-               if _arguments.has_key('errn'):
-                       raise aetools.Error, aetools.decodeerror(_arguments)
-               # XXXX Optionally decode result
-               if _arguments.has_key('----'):
-                       return _arguments['----']
-
-       _argmap_event_info = {
-               '_in' : 'wrcd',
-       }
-
-       def event_info(self, _object, _attributes={}, **_arguments):
-               """event info: Get information about the Apple events in a suite
-               Required argument: the event class of the Apple events for which to return information
-               Keyword argument _in: the human language and script system in which to return information
-               Keyword argument _attributes: AppleEvent attribute dictionary
-               Returns: a record containing the events and their parameters
-               """
-               _code = 'core'
-               _subcode = 'gtei'
-
-               aetools.keysubst(_arguments, self._argmap_event_info)
-               _arguments['----'] = _object
-
-
-               _reply, _arguments, _attributes = self.send(_code, _subcode,
-                               _arguments, _attributes)
-               if _arguments.has_key('errn'):
-                       raise aetools.Error, aetools.decodeerror(_arguments)
-               # XXXX Optionally decode result
-               if _arguments.has_key('----'):
-                       return _arguments['----']
-
-       def exists(self, _object, _attributes={}, **_arguments):
-               """exists: Verify if an object exists
-               Required argument: the object in question
-               Keyword argument _attributes: AppleEvent attribute dictionary
-               Returns: true if it exists, false if not
-               """
-               _code = 'core'
-               _subcode = 'doex'
-
-               if _arguments: raise TypeError, 'No optional args expected'
-               _arguments['----'] = _object
-
-
-               _reply, _arguments, _attributes = self.send(_code, _subcode,
-                               _arguments, _attributes)
-               if _arguments.has_key('errn'):
-                       raise aetools.Error, aetools.decodeerror(_arguments)
-               # XXXX Optionally decode result
-               if _arguments.has_key('----'):
-                       return _arguments['----']
-
-       _argmap_make = {
-               'new' : 'kocl',
-               'at' : 'insh',
-               'with_data' : 'data',
-               'with_properties' : 'prdt',
-       }
-
-       def make(self, _no_object=None, _attributes={}, **_arguments):
-               """make: Make a new element
-               Keyword argument new: the class of the new element.
-               Keyword argument at: the location at which to insert the element
-               Keyword argument with_data: the initial data for the element
-               Keyword argument with_properties: the initial values for the properties of the element
-               Keyword argument _attributes: AppleEvent attribute dictionary
-               Returns: to the new object(s)
-               """
-               _code = 'core'
-               _subcode = 'crel'
-
-               aetools.keysubst(_arguments, self._argmap_make)
-               if _no_object != None: raise TypeError, 'No direct arg expected'
-
-
-               _reply, _arguments, _attributes = self.send(_code, _subcode,
-                               _arguments, _attributes)
-               if _arguments.has_key('errn'):
-                       raise aetools.Error, aetools.decodeerror(_arguments)
-               # XXXX Optionally decode result
-               if _arguments.has_key('----'):
-                       return _arguments['----']
-
-       _argmap_move = {
-               'to' : 'insh',
-       }
-
-       def move(self, _object, _attributes={}, **_arguments):
-               """move: Move object(s) to a new location
-               Required argument: the object(s) to move
-               Keyword argument to: the new location for the object(s)
-               Keyword argument _attributes: AppleEvent attribute dictionary
-               Returns: to the object(s) after they have been moved
-               """
-               _code = 'core'
-               _subcode = 'move'
-
-               aetools.keysubst(_arguments, self._argmap_move)
-               _arguments['----'] = _object
-
-
-               _reply, _arguments, _attributes = self.send(_code, _subcode,
-                               _arguments, _attributes)
-               if _arguments.has_key('errn'):
-                       raise aetools.Error, aetools.decodeerror(_arguments)
-               # XXXX Optionally decode result
-               if _arguments.has_key('----'):
-                       return _arguments['----']
-
-       def open(self, _object, _attributes={}, **_arguments):
-               """open: Open the specified object(s)
-               Required argument: list of objects to open
-               Keyword argument _attributes: AppleEvent attribute dictionary
-               """
-               _code = 'aevt'
-               _subcode = 'odoc'
-
-               if _arguments: raise TypeError, 'No optional args expected'
-               _arguments['----'] = _object
-
-
-               _reply, _arguments, _attributes = self.send(_code, _subcode,
-                               _arguments, _attributes)
-               if _arguments.has_key('errn'):
-                       raise aetools.Error, aetools.decodeerror(_arguments)
-               # XXXX Optionally decode result
-               if _arguments.has_key('----'):
-                       return _arguments['----']
-
-       def _print(self, _object, _attributes={}, **_arguments):
-               """print: Print the specified object(s)
-               Required argument: list of objects to print
-               Keyword argument _attributes: AppleEvent attribute dictionary
-               """
-               _code = 'aevt'
-               _subcode = 'pdoc'
-
-               if _arguments: raise TypeError, 'No optional args expected'
-               _arguments['----'] = _object
-
-
-               _reply, _arguments, _attributes = self.send(_code, _subcode,
-                               _arguments, _attributes)
-               if _arguments.has_key('errn'):
-                       raise aetools.Error, aetools.decodeerror(_arguments)
-               # XXXX Optionally decode result
-               if _arguments.has_key('----'):
-                       return _arguments['----']
-
-       _argmap_quit = {
-               'saving' : 'savo',
-       }
-
-       def quit(self, _no_object=None, _attributes={}, **_arguments):
-               """quit: Quit an application program
-               Keyword argument saving: specifies whether to save currently open documents
-               Keyword argument _attributes: AppleEvent attribute dictionary
-               """
-               _code = 'aevt'
-               _subcode = 'quit'
-
-               aetools.keysubst(_arguments, self._argmap_quit)
-               if _no_object != None: raise TypeError, 'No direct arg expected'
-
-               aetools.enumsubst(_arguments, 'savo', _Enum_savo)
-
-               _reply, _arguments, _attributes = self.send(_code, _subcode,
-                               _arguments, _attributes)
-               if _arguments.has_key('errn'):
-                       raise aetools.Error, aetools.decodeerror(_arguments)
-               # XXXX Optionally decode result
-               if _arguments.has_key('----'):
-                       return _arguments['----']
-
-       _argmap_save = {
-               '_in' : 'kfil',
-               'as' : 'fltp',
-       }
-
-       def save(self, _object, _attributes={}, **_arguments):
-               """save: Save an object
-               Required argument: the object to save
-               Keyword argument _in: the file in which to save the object
-               Keyword argument as: the file type of the document in which to save the data
-               Keyword argument _attributes: AppleEvent attribute dictionary
-               """
-               _code = 'core'
-               _subcode = 'save'
-
-               aetools.keysubst(_arguments, self._argmap_save)
-               _arguments['----'] = _object
-
-
-               _reply, _arguments, _attributes = self.send(_code, _subcode,
-                               _arguments, _attributes)
-               if _arguments.has_key('errn'):
-                       raise aetools.Error, aetools.decodeerror(_arguments)
-               # XXXX Optionally decode result
-               if _arguments.has_key('----'):
-                       return _arguments['----']
-
-       _argmap_suite_info = {
-               '_in' : 'wrcd',
-       }
-
-       def suite_info(self, _object, _attributes={}, **_arguments):
-               """suite info: Get information about event suite(s)
-               Required argument: the suite for which to return information
-               Keyword argument _in: the human language and script system in which to return information
-               Keyword argument _attributes: AppleEvent attribute dictionary
-               Returns: a record containing the suites and their versions
-               """
-               _code = 'core'
-               _subcode = 'gtsi'
-
-               aetools.keysubst(_arguments, self._argmap_suite_info)
-               _arguments['----'] = _object
-
-
-               _reply, _arguments, _attributes = self.send(_code, _subcode,
-                               _arguments, _attributes)
-               if _arguments.has_key('errn'):
-                       raise aetools.Error, aetools.decodeerror(_arguments)
-               # XXXX Optionally decode result
-               if _arguments.has_key('----'):
-                       return _arguments['----']
-
-
-class application(aetools.ComponentItem):
-       """application - An application program"""
-       want = 'capp'
-class clipboard(aetools.NProperty):
-       """clipboard - the clipboard"""
-       which = 'pcli'
-       want = '****'
-class frontmost(aetools.NProperty):
-       """frontmost - Is this the frontmost application?"""
-       which = 'pisf'
-       want = 'bool'
-class name(aetools.NProperty):
-       """name - the name"""
-       which = 'pnam'
-       want = 'itxt'
-class selection(aetools.NProperty):
-       """selection - the selection visible to the user"""
-       which = 'sele'
-       want = 'csel'
-class version(aetools.NProperty):
-       """version - the version of the application"""
-       which = 'vers'
-       want = 'vers'
-
-applications = application
-
-class character(aetools.ComponentItem):
-       """character - A character"""
-       want = 'cha '
-class color(aetools.NProperty):
-       """color - the color"""
-       which = 'colr'
-       want = 'cRGB'
-class font(aetools.NProperty):
-       """font - the name of the font"""
-       which = 'font'
-       want = 'ctxt'
-class size(aetools.NProperty):
-       """size - the size in points"""
-       which = 'ptsz'
-       want = 'fixd'
-class writing_code(aetools.NProperty):
-       """writing code - the script system and language"""
-       which = 'psct'
-       want = 'intl'
-class style(aetools.NProperty):
-       """style - the text style"""
-       which = 'txst'
-       want = 'tsty'
-class uniform_styles(aetools.NProperty):
-       """uniform styles - the text style"""
-       which = 'ustl'
-       want = 'tsty'
-
-characters = character
-
-class document(aetools.ComponentItem):
-       """document - A document"""
-       want = 'docu'
-class modified(aetools.NProperty):
-       """modified - Has the document been modified since the last save?"""
-       which = 'imod'
-       want = 'bool'
-
-documents = document
-
-class file(aetools.ComponentItem):
-       """file - A file"""
-       want = 'file'
-class stationery(aetools.NProperty):
-       """stationery - Is the file a stationery file?"""
-       which = 'pspd'
-       want = 'bool'
-
-files = file
-
-class selection_2d_object(aetools.ComponentItem):
-       """selection-object - the selection visible to the user"""
-       want = 'csel'
-class contents(aetools.NProperty):
-       """contents - the contents of the selection"""
-       which = 'pcnt'
-       want = 'type'
-
-class text(aetools.ComponentItem):
-       """text - Text"""
-       want = 'ctxt'
-# repeated property font the name of the font of the first character
-
-class text_style_info(aetools.ComponentItem):
-       """text style info - On and Off styles of text run"""
-       want = 'tsty'
-class on_styles(aetools.NProperty):
-       """on styles - the styles that are on for the text"""
-       which = 'onst'
-       want = 'styl'
-class off_styles(aetools.NProperty):
-       """off styles - the styles that are off for the text"""
-       which = 'ofst'
-       want = 'styl'
-
-text_style_infos = text_style_info
-
-class window(aetools.ComponentItem):
-       """window - A window"""
-       want = 'cwin'
-class bounds(aetools.NProperty):
-       """bounds - the boundary rectangle for the window"""
-       which = 'pbnd'
-       want = 'qdrt'
-class closeable(aetools.NProperty):
-       """closeable - Does the window have a close box?"""
-       which = 'hclb'
-       want = 'bool'
-class titled(aetools.NProperty):
-       """titled - Does the window have a title bar?"""
-       which = 'ptit'
-       want = 'bool'
-class index(aetools.NProperty):
-       """index - the number of the window"""
-       which = 'pidx'
-       want = 'long'
-class floating(aetools.NProperty):
-       """floating - Does the window float?"""
-       which = 'isfl'
-       want = 'bool'
-class modal(aetools.NProperty):
-       """modal - Is the window modal?"""
-       which = 'pmod'
-       want = 'bool'
-class resizable(aetools.NProperty):
-       """resizable - Is the window resizable?"""
-       which = 'prsz'
-       want = 'bool'
-class zoomable(aetools.NProperty):
-       """zoomable - Is the window zoomable?"""
-       which = 'iszm'
-       want = 'bool'
-class zoomed(aetools.NProperty):
-       """zoomed - Is the window zoomed?"""
-       which = 'pzum'
-       want = 'bool'
-class visible(aetools.NProperty):
-       """visible - Is the window visible?"""
-       which = 'pvis'
-       want = 'bool'
-
-windows = window
-
-class insertion_point(aetools.ComponentItem):
-       """insertion point - An insertion location between two objects"""
-       want = 'cins'
-
-insertion_points = insertion_point
-application._propdict = {
-       'clipboard' : clipboard,
-       'frontmost' : frontmost,
-       'name' : name,
-       'selection' : selection,
-       'version' : version,
-}
-application._elemdict = {
-}
-character._propdict = {
-       'color' : color,
-       'font' : font,
-       'size' : size,
-       'writing_code' : writing_code,
-       'style' : style,
-       'uniform_styles' : uniform_styles,
-}
-character._elemdict = {
-}
-document._propdict = {
-       'modified' : modified,
-}
-document._elemdict = {
-}
-file._propdict = {
-       'stationery' : stationery,
-}
-file._elemdict = {
-}
-selection_2d_object._propdict = {
-       'contents' : contents,
-}
-selection_2d_object._elemdict = {
-}
-text._propdict = {
-       'font' : font,
-}
-text._elemdict = {
-}
-text_style_info._propdict = {
-       'on_styles' : on_styles,
-       'off_styles' : off_styles,
-}
-text_style_info._elemdict = {
-}
-window._propdict = {
-       'bounds' : bounds,
-       'closeable' : closeable,
-       'titled' : titled,
-       'index' : index,
-       'floating' : floating,
-       'modal' : modal,
-       'resizable' : resizable,
-       'zoomable' : zoomable,
-       'zoomed' : zoomed,
-       'visible' : visible,
-}
-window._elemdict = {
-}
-insertion_point._propdict = {
-}
-insertion_point._elemdict = {
-}
-class starts_with(aetools.NComparison):
-       """starts with - Starts with"""
-class contains(aetools.NComparison):
-       """contains - Contains"""
-class ends_with(aetools.NComparison):
-       """ends with - Ends with"""
-class _3d_(aetools.NComparison):
-       """= - Equal"""
-class _3e_(aetools.NComparison):
-       """> - Greater than"""
-class _b3_(aetools.NComparison):
-       """\84 - Greater than or equal to"""
-class _3c_(aetools.NComparison):
-       """< - Less than"""
-class _b2_(aetools.NComparison):
-       """¾ - Less than or equal to"""
-_Enum_savo = {
-       'yes' : 'yes ', # Save objects now
-       'no' : 'no  ',  # Do not save objects
-       'ask' : 'ask ', # Ask the user whether to save
-}
-
-_Enum_kfrm = {
-       'index' : 'indx',       # keyform designating indexed access
-       'named' : 'name',       # keyform designating named access
-       'id' : 'ID  ',  # keyform designating access by unique identifier
-}
-
-_Enum_styl = {
-       'plain' : 'plan',       # Plain
-       'bold' : 'bold',        # Bold
-       'italic' : 'ital',      # Italic
-       'outline' : 'outl',     # Outline
-       'shadow' : 'shad',      # Shadow
-       'underline' : 'undl',   # Underline
-       'superscript' : 'spsc', # Superscript
-       'subscript' : 'sbsc',   # Subscript
-       'strikethrough' : 'strk',       # Strikethrough
-       'small_caps' : 'smcp',  # Small caps
-       'all_caps' : 'alcp',    # All capital letters
-       'all_lowercase' : 'lowc',       # Lowercase
-       'condensed' : 'cond',   # Condensed
-       'expanded' : 'pexp',    # Expanded
-       'hidden' : 'hidn',      # Hidden
-}
-
-
-#
-# Indices of types declared in this module
-#
-_classdeclarations = {
-       'docu' : document,
-       'tsty' : text_style_info,
-       'ctxt' : text,
-       'capp' : application,
-       'csel' : selection_2d_object,
-       'file' : file,
-       'cwin' : window,
-       'cha ' : character,
-       'cins' : insertion_point,
-}
-
-_propdeclarations = {
-       'ptit' : titled,
-       'onst' : on_styles,
-       'pnam' : name,
-       'pcli' : clipboard,
-       'ustl' : uniform_styles,
-       'psct' : writing_code,
-       'txst' : style,
-       'pvis' : visible,
-       'pspd' : stationery,
-       'pisf' : frontmost,
-       'sele' : selection,
-       'pmod' : modal,
-       'imod' : modified,
-       'ofst' : off_styles,
-       'ptsz' : size,
-       'pzum' : zoomed,
-       'hclb' : closeable,
-       'font' : font,
-       'pcnt' : contents,
-       'isfl' : floating,
-       'pidx' : index,
-       'iszm' : zoomable,
-       'colr' : color,
-       'pbnd' : bounds,
-       'vers' : version,
-       'prsz' : resizable,
-}
-
-_compdeclarations = {
-       '>   ' : _3e_,
-       'bgwt' : starts_with,
-       '>=  ' : _b3_,
-       '=   ' : _3d_,
-       '<=  ' : _b2_,
-       'cont' : contains,
-       'ends' : ends_with,
-       '<   ' : _3c_,
-}
-
-_enumdeclarations = {
-       'styl' : _Enum_styl,
-       'savo' : _Enum_savo,
-       'kfrm' : _Enum_kfrm,
-}
diff --git a/Mac/Lib/lib-scripting/Standard_URL_suite.py b/Mac/Lib/lib-scripting/Standard_URL_suite.py
deleted file mode 100644 (file)
index 44b6ca7..0000000
+++ /dev/null
@@ -1,62 +0,0 @@
-"""Suite Standard URL suite: Mac URL standard, supported by many apps
-
-
-
-Level 1, version 1
-
-Generated from flap:Programma's:Netscape Navigator\81 Folder:Netscape Navigator\81 3.01
-AETE/AEUT resource version 1/0, language 0, script 0
-"""
-
-import aetools
-import MacOS
-
-_code = 'GURL'
-
-class Standard_URL_suite:
-
-       _argmap_GetURL = {
-               'to' : 'dest',
-               'inside' : 'HWIN',
-               '_from' : 'refe',
-       }
-
-       def GetURL(self, _object, _attributes={}, **_arguments):
-               """GetURL: Loads the URL (optionaly to disk)
-
-               Required argument: The url 
-               Keyword argument to: file the URL should be loaded into  
-               Keyword argument inside: Window the URL should be loaded to
-               Keyword argument _from: Refererer, to be sent with the HTTP request
-               Keyword argument _attributes: AppleEvent attribute dictionary
-               """
-               _code = 'GURL'
-               _subcode = 'GURL'
-
-               aetools.keysubst(_arguments, self._argmap_GetURL)
-               _arguments['----'] = _object
-
-
-               _reply, _arguments, _attributes = self.send(_code, _subcode,
-                               _arguments, _attributes)
-               if _arguments.has_key('errn'):
-                       raise aetools.Error, aetools.decodeerror(_arguments)
-               # XXXX Optionally decode result
-               if _arguments.has_key('----'):
-                       return _arguments['----']
-
-
-#
-# Indices of types declared in this module
-#
-_classdeclarations = {
-}
-
-_propdeclarations = {
-}
-
-_compdeclarations = {
-}
-
-_enumdeclarations = {
-}
diff --git a/Mac/Lib/lib-scripting/WWW_Suite.py b/Mac/Lib/lib-scripting/WWW_Suite.py
deleted file mode 100644 (file)
index 9564249..0000000
+++ /dev/null
@@ -1,426 +0,0 @@
-"""Suite WorldWideWeb suite, as defined in Spyglass spec.: 
-Level 1, version 1
-
-Generated from flap:Programma's:Netscape Navigator\81 Folder:Netscape Navigator\81 3.01
-AETE/AEUT resource version 1/0, language 0, script 0
-"""
-
-import aetools
-import MacOS
-
-_code = 'WWW!'
-
-class WorldWideWeb_suite_2c__as_defined_in_Spyglass_spec_2e_:
-
-       _argmap_OpenURL = {
-               'to' : 'INTO',
-               'toWindow' : 'WIND',
-               'flags' : 'FLGS',
-               'post_data' : 'POST',
-               'post_type' : 'MIME',
-               'progressApp' : 'PROG',
-       }
-
-       def OpenURL(self, _object, _attributes={}, **_arguments):
-               """OpenURL: Opens a URL. Allows for more options than GetURL event
-               Required argument: URL
-               Keyword argument to: file destination
-               Keyword argument toWindow: window iD
-               Keyword argument flags: Binary: any combination of 1, 2 and 4 is allowed: 1 and 2 mean force reload the document. 4 is ignored
-               Keyword argument post_data: Form posting data
-               Keyword argument post_type: MIME type of the posting data. Defaults to application/x-www-form-urlencoded
-               Keyword argument progressApp: Application that will display progress
-               Keyword argument _attributes: AppleEvent attribute dictionary
-               Returns: ID of the loading window
-               """
-               _code = 'WWW!'
-               _subcode = 'OURL'
-
-               aetools.keysubst(_arguments, self._argmap_OpenURL)
-               _arguments['----'] = _object
-
-
-               _reply, _arguments, _attributes = self.send(_code, _subcode,
-                               _arguments, _attributes)
-               if _arguments.has_key('errn'):
-                       raise aetools.Error, aetools.decodeerror(_arguments)
-               # XXXX Optionally decode result
-               if _arguments.has_key('----'):
-                       return _arguments['----']
-
-       _argmap_ShowFile = {
-               'MIME_type' : 'MIME',
-               'Window_ID' : 'WIND',
-               'URL' : 'URL ',
-       }
-
-       def ShowFile(self, _object, _attributes={}, **_arguments):
-               """ShowFile: Similar to OpenDocuments, except that it specifies the parent URL, and MIME type of the file
-               Required argument: File to open
-               Keyword argument MIME_type: MIME type
-               Keyword argument Window_ID: Window to open the file in
-               Keyword argument URL: Use this as a base URL
-               Keyword argument _attributes: AppleEvent attribute dictionary
-               Returns: Window ID of the loaded window. 0 means ShowFile failed, FFFFFFF means that data was not appropriate type to display in the browser.
-               """
-               _code = 'WWW!'
-               _subcode = 'SHWF'
-
-               aetools.keysubst(_arguments, self._argmap_ShowFile)
-               _arguments['----'] = _object
-
-
-               _reply, _arguments, _attributes = self.send(_code, _subcode,
-                               _arguments, _attributes)
-               if _arguments.has_key('errn'):
-                       raise aetools.Error, aetools.decodeerror(_arguments)
-               # XXXX Optionally decode result
-               if _arguments.has_key('----'):
-                       return _arguments['----']
-
-       _argmap_parse_anchor = {
-               'relative_to' : 'RELA',
-       }
-
-       def parse_anchor(self, _object, _attributes={}, **_arguments):
-               """parse anchor: Resolves the relative URL
-               Required argument: Main URL
-               Keyword argument relative_to: Relative URL
-               Keyword argument _attributes: AppleEvent attribute dictionary
-               Returns: Parsed  URL
-               """
-               _code = 'WWW!'
-               _subcode = 'PRSA'
-
-               aetools.keysubst(_arguments, self._argmap_parse_anchor)
-               _arguments['----'] = _object
-
-
-               _reply, _arguments, _attributes = self.send(_code, _subcode,
-                               _arguments, _attributes)
-               if _arguments.has_key('errn'):
-                       raise aetools.Error, aetools.decodeerror(_arguments)
-               # XXXX Optionally decode result
-               if _arguments.has_key('----'):
-                       return _arguments['----']
-
-       _argmap_cancel_progress = {
-               'in_window' : 'WIND',
-       }
-
-       def cancel_progress(self, _object=None, _attributes={}, **_arguments):
-               """cancel progress: Interrupts the download of the document in the given window
-               Required argument: progress ID, obtained from the progress app
-               Keyword argument in_window: window ID of the progress to cancel
-               Keyword argument _attributes: AppleEvent attribute dictionary
-               """
-               _code = 'WWW!'
-               _subcode = 'CNCL'
-
-               aetools.keysubst(_arguments, self._argmap_cancel_progress)
-               _arguments['----'] = _object
-
-
-               _reply, _arguments, _attributes = self.send(_code, _subcode,
-                               _arguments, _attributes)
-               if _arguments.has_key('errn'):
-                       raise aetools.Error, aetools.decodeerror(_arguments)
-               # XXXX Optionally decode result
-               if _arguments.has_key('----'):
-                       return _arguments['----']
-
-       def find_URL(self, _object, _attributes={}, **_arguments):
-               """find URL: If the file was downloaded by Netscape, you can call FindURL to find out the URL used to download the file.
-               Required argument: File spec
-               Keyword argument _attributes: AppleEvent attribute dictionary
-               Returns: The URL
-               """
-               _code = 'WWW!'
-               _subcode = 'FURL'
-
-               if _arguments: raise TypeError, 'No optional args expected'
-               _arguments['----'] = _object
-
-
-               _reply, _arguments, _attributes = self.send(_code, _subcode,
-                               _arguments, _attributes)
-               if _arguments.has_key('errn'):
-                       raise aetools.Error, aetools.decodeerror(_arguments)
-               # XXXX Optionally decode result
-               if _arguments.has_key('----'):
-                       return _arguments['----']
-
-       def webActivate(self, _object=None, _attributes={}, **_arguments):
-               """webActivate: Makes Netscape the frontmost application, and selects a given window. This event is here for suite completeness/ cross-platform compatibility only, you should use standard AppleEvents instead.
-               Required argument: window to bring to front
-               Keyword argument _attributes: AppleEvent attribute dictionary
-               """
-               _code = 'WWW!'
-               _subcode = 'ACTV'
-
-               if _arguments: raise TypeError, 'No optional args expected'
-               _arguments['----'] = _object
-
-
-               _reply, _arguments, _attributes = self.send(_code, _subcode,
-                               _arguments, _attributes)
-               if _arguments.has_key('errn'):
-                       raise aetools.Error, aetools.decodeerror(_arguments)
-               # XXXX Optionally decode result
-               if _arguments.has_key('----'):
-                       return _arguments['----']
-
-       def list_windows(self, _no_object=None, _attributes={}, **_arguments):
-               """list windows: Lists the IDs of all the hypertext windows
-               Keyword argument _attributes: AppleEvent attribute dictionary
-               Returns: List of unique IDs of all the hypertext windows
-               """
-               _code = 'WWW!'
-               _subcode = 'LSTW'
-
-               if _arguments: raise TypeError, 'No optional args expected'
-               if _no_object != None: raise TypeError, 'No direct arg expected'
-
-
-               _reply, _arguments, _attributes = self.send(_code, _subcode,
-                               _arguments, _attributes)
-               if _arguments.has_key('errn'):
-                       raise aetools.Error, aetools.decodeerror(_arguments)
-               # XXXX Optionally decode result
-               if _arguments.has_key('----'):
-                       return _arguments['----']
-
-       def get_window_info(self, _object=None, _attributes={}, **_arguments):
-               """get window info: Returns the information about the window as a list. Currently the list contains the window title and the URL. You can get the same information using standard Apple Event GetProperty.
-               Required argument: window ID
-               Keyword argument _attributes: AppleEvent attribute dictionary
-               Returns: undocumented, typecode 'list'
-               """
-               _code = 'WWW!'
-               _subcode = 'WNFO'
-
-               if _arguments: raise TypeError, 'No optional args expected'
-               _arguments['----'] = _object
-
-
-               _reply, _arguments, _attributes = self.send(_code, _subcode,
-                               _arguments, _attributes)
-               if _arguments.has_key('errn'):
-                       raise aetools.Error, aetools.decodeerror(_arguments)
-               # XXXX Optionally decode result
-               if _arguments.has_key('----'):
-                       return _arguments['----']
-
-       def register_URL_echo(self, _object=None, _attributes={}, **_arguments):
-               """register URL echo: Registers the Â³echo² application. Each download from now on will be echoed to this application.
-               Required argument: Application signature
-               Keyword argument _attributes: AppleEvent attribute dictionary
-               """
-               _code = 'WWW!'
-               _subcode = 'RGUE'
-
-               if _arguments: raise TypeError, 'No optional args expected'
-               _arguments['----'] = _object
-
-
-               _reply, _arguments, _attributes = self.send(_code, _subcode,
-                               _arguments, _attributes)
-               if _arguments.has_key('errn'):
-                       raise aetools.Error, aetools.decodeerror(_arguments)
-               # XXXX Optionally decode result
-               if _arguments.has_key('----'):
-                       return _arguments['----']
-
-       def unregister_URL_echo(self, _object, _attributes={}, **_arguments):
-               """unregister URL echo: cancels URL echo
-               Required argument: application signature
-               Keyword argument _attributes: AppleEvent attribute dictionary
-               """
-               _code = 'WWW!'
-               _subcode = 'UNRU'
-
-               if _arguments: raise TypeError, 'No optional args expected'
-               _arguments['----'] = _object
-
-
-               _reply, _arguments, _attributes = self.send(_code, _subcode,
-                               _arguments, _attributes)
-               if _arguments.has_key('errn'):
-                       raise aetools.Error, aetools.decodeerror(_arguments)
-               # XXXX Optionally decode result
-               if _arguments.has_key('----'):
-                       return _arguments['----']
-
-       _argmap_register_viewer = {
-               'MIME_type' : 'MIME',
-               'with_file_type' : 'FTYP',
-       }
-
-       def register_viewer(self, _object, _attributes={}, **_arguments):
-               """register viewer: Registers an application as a \8cspecial¹ viewer for this MIME type. The application will be launched with ViewDoc events
-               Required argument: Application sig
-               Keyword argument MIME_type: MIME type viewer is registering for
-               Keyword argument with_file_type: Mac file type for the downloaded files
-               Keyword argument _attributes: AppleEvent attribute dictionary
-               Returns: TRUE if registration has been successful
-               """
-               _code = 'WWW!'
-               _subcode = 'RGVW'
-
-               aetools.keysubst(_arguments, self._argmap_register_viewer)
-               _arguments['----'] = _object
-
-
-               _reply, _arguments, _attributes = self.send(_code, _subcode,
-                               _arguments, _attributes)
-               if _arguments.has_key('errn'):
-                       raise aetools.Error, aetools.decodeerror(_arguments)
-               # XXXX Optionally decode result
-               if _arguments.has_key('----'):
-                       return _arguments['----']
-
-       _argmap_unregister_viewer = {
-               'MIME_type' : 'MIME',
-       }
-
-       def unregister_viewer(self, _object, _attributes={}, **_arguments):
-               """unregister viewer: Revert to the old way of handling this MIME type
-               Required argument: Application sig
-               Keyword argument MIME_type: MIME type to be unregistered
-               Keyword argument _attributes: AppleEvent attribute dictionary
-               Returns: TRUE if the event was successful
-               """
-               _code = 'WWW!'
-               _subcode = 'UNRV'
-
-               aetools.keysubst(_arguments, self._argmap_unregister_viewer)
-               _arguments['----'] = _object
-
-
-               _reply, _arguments, _attributes = self.send(_code, _subcode,
-                               _arguments, _attributes)
-               if _arguments.has_key('errn'):
-                       raise aetools.Error, aetools.decodeerror(_arguments)
-               # XXXX Optionally decode result
-               if _arguments.has_key('----'):
-                       return _arguments['----']
-
-       _argmap_register_protocol = {
-               'for_protocol' : 'PROT',
-       }
-
-       def register_protocol(self, _object=None, _attributes={}, **_arguments):
-               """register protocol: Registers application as a Â³handler² for this protocol with a given prefix. The handler will receive Â³OpenURL², or if that fails, Â³GetURL² event.
-               Required argument: Application sig
-               Keyword argument for_protocol: protocol prefix: Â³finger:², Â³file²,
-               Keyword argument _attributes: AppleEvent attribute dictionary
-               Returns: TRUE if registration has been successful
-               """
-               _code = 'WWW!'
-               _subcode = 'RGPR'
-
-               aetools.keysubst(_arguments, self._argmap_register_protocol)
-               _arguments['----'] = _object
-
-
-               _reply, _arguments, _attributes = self.send(_code, _subcode,
-                               _arguments, _attributes)
-               if _arguments.has_key('errn'):
-                       raise aetools.Error, aetools.decodeerror(_arguments)
-               # XXXX Optionally decode result
-               if _arguments.has_key('----'):
-                       return _arguments['----']
-
-       _argmap_unregister_protocol = {
-               'for_protocol' : 'PROT',
-       }
-
-       def unregister_protocol(self, _object=None, _attributes={}, **_arguments):
-               """unregister protocol: reverses the effects of Â³register protocol²
-               Required argument: Application sig. 
-               Keyword argument for_protocol: protocol prefix. If none, unregister for all protocols
-               Keyword argument _attributes: AppleEvent attribute dictionary
-               Returns: TRUE if successful
-               """
-               _code = 'WWW!'
-               _subcode = 'UNRP'
-
-               aetools.keysubst(_arguments, self._argmap_unregister_protocol)
-               _arguments['----'] = _object
-
-
-               _reply, _arguments, _attributes = self.send(_code, _subcode,
-                               _arguments, _attributes)
-               if _arguments.has_key('errn'):
-                       raise aetools.Error, aetools.decodeerror(_arguments)
-               # XXXX Optionally decode result
-               if _arguments.has_key('----'):
-                       return _arguments['----']
-
-       _argmap_register_window_close = {
-               'for_window' : 'WIND',
-       }
-
-       def register_window_close(self, _object=None, _attributes={}, **_arguments):
-               """register window close: Netscape will notify registered application when this window closes
-               Required argument: Application signature
-               Keyword argument for_window: window ID
-               Keyword argument _attributes: AppleEvent attribute dictionary
-               Returns: true if successful
-               """
-               _code = 'WWW!'
-               _subcode = 'RGWC'
-
-               aetools.keysubst(_arguments, self._argmap_register_window_close)
-               _arguments['----'] = _object
-
-
-               _reply, _arguments, _attributes = self.send(_code, _subcode,
-                               _arguments, _attributes)
-               if _arguments.has_key('errn'):
-                       raise aetools.Error, aetools.decodeerror(_arguments)
-               # XXXX Optionally decode result
-               if _arguments.has_key('----'):
-                       return _arguments['----']
-
-       _argmap_unregister_window_close = {
-               'for_window' : 'WIND',
-       }
-
-       def unregister_window_close(self, _object=None, _attributes={}, **_arguments):
-               """unregister window close: Undo for register window close
-               Required argument: Application signature
-               Keyword argument for_window: window ID
-               Keyword argument _attributes: AppleEvent attribute dictionary
-               Returns: true if successful
-               """
-               _code = 'WWW!'
-               _subcode = 'UNRC'
-
-               aetools.keysubst(_arguments, self._argmap_unregister_window_close)
-               _arguments['----'] = _object
-
-
-               _reply, _arguments, _attributes = self.send(_code, _subcode,
-                               _arguments, _attributes)
-               if _arguments.has_key('errn'):
-                       raise aetools.Error, aetools.decodeerror(_arguments)
-               # XXXX Optionally decode result
-               if _arguments.has_key('----'):
-                       return _arguments['----']
-
-
-#
-# Indices of types declared in this module
-#
-_classdeclarations = {
-}
-
-_propdeclarations = {
-}
-
-_compdeclarations = {
-}
-
-_enumdeclarations = {
-}
diff --git a/Mac/Lib/lib-scriptpackages/CodeWarrior/CodeWarrior_suite.py b/Mac/Lib/lib-scriptpackages/CodeWarrior/CodeWarrior_suite.py
deleted file mode 100644 (file)
index 26f7d6a..0000000
+++ /dev/null
@@ -1,687 +0,0 @@
-"""Suite CodeWarrior suite: Terms for scripting the CodeWarrior IDE
-Level 0, version 0
-
-Generated from Macintosh HD:SWdev:CodeWarrior 6 MPTP:Metrowerks CodeWarrior:CodeWarrior IDE 4.1B9
-AETE/AEUT resource version 1/0, language 0, script 0
-"""
-
-import aetools
-import MacOS
-
-_code = 'CWIE'
-
-class CodeWarrior_suite_Events:
-
-       _argmap_add = {
-               'new' : 'kocl',
-               'with_data' : 'data',
-               'to_targets' : 'TTGT',
-               'to_group' : 'TGRP',
-       }
-
-       def add(self, _object, _attributes={}, **_arguments):
-               """add: add elements to a project or target
-               Required argument: an AE object reference
-               Keyword argument new: the class of the new element or elements to add
-               Keyword argument with_data: the initial data for the element or elements
-               Keyword argument to_targets: the targets to which the new element or elements will be added
-               Keyword argument to_group: the group to which the new element or elements will be added
-               Keyword argument _attributes: AppleEvent attribute dictionary
-               """
-               _code = 'CWIE'
-               _subcode = 'ADDF'
-
-               aetools.keysubst(_arguments, self._argmap_add)
-               _arguments['----'] = _object
-
-
-               _reply, _arguments, _attributes = self.send(_code, _subcode,
-                               _arguments, _attributes)
-               if _arguments.has_key('errn'):
-                       raise aetools.Error, aetools.decodeerror(_arguments)
-               # XXXX Optionally decode result
-               if _arguments.has_key('----'):
-                       return _arguments['----']
-
-       _argmap_export = {
-               '_in' : 'kfil',
-       }
-
-       def export(self, _no_object=None, _attributes={}, **_arguments):
-               """export: Export the project file as an XML file
-               Keyword argument _in: the XML file in which to export the project
-               Keyword argument _attributes: AppleEvent attribute dictionary
-               """
-               _code = 'CWIE'
-               _subcode = 'EXPT'
-
-               aetools.keysubst(_arguments, self._argmap_export)
-               if _no_object != None: raise TypeError, 'No direct arg expected'
-
-
-               _reply, _arguments, _attributes = self.send(_code, _subcode,
-                               _arguments, _attributes)
-               if _arguments.has_key('errn'):
-                       raise aetools.Error, aetools.decodeerror(_arguments)
-               # XXXX Optionally decode result
-               if _arguments.has_key('----'):
-                       return _arguments['----']
-
-       def update(self, _no_object=None, _attributes={}, **_arguments):
-               """update: bring a project or target up to date
-               Keyword argument _attributes: AppleEvent attribute dictionary
-               """
-               _code = 'CWIE'
-               _subcode = 'UP2D'
-
-               if _arguments: raise TypeError, 'No optional args expected'
-               if _no_object != None: raise TypeError, 'No direct arg expected'
-
-
-               _reply, _arguments, _attributes = self.send(_code, _subcode,
-                               _arguments, _attributes)
-               if _arguments.has_key('errn'):
-                       raise aetools.Error, aetools.decodeerror(_arguments)
-               # XXXX Optionally decode result
-               if _arguments.has_key('----'):
-                       return _arguments['----']
-
-       def check(self, _object=None, _attributes={}, **_arguments):
-               """check: check the syntax of a file in a project or target
-               Required argument: the file or files to be checked
-               Keyword argument _attributes: AppleEvent attribute dictionary
-               """
-               _code = 'CWIE'
-               _subcode = 'CHEK'
-
-               if _arguments: raise TypeError, 'No optional args expected'
-               _arguments['----'] = _object
-
-
-               _reply, _arguments, _attributes = self.send(_code, _subcode,
-                               _arguments, _attributes)
-               if _arguments.has_key('errn'):
-                       raise aetools.Error, aetools.decodeerror(_arguments)
-               # XXXX Optionally decode result
-               if _arguments.has_key('----'):
-                       return _arguments['----']
-
-       def compile_file(self, _object=None, _attributes={}, **_arguments):
-               """compile file: compile a file in a project or target
-               Required argument: the file or files to be compiled
-               Keyword argument _attributes: AppleEvent attribute dictionary
-               """
-               _code = 'CWIE'
-               _subcode = 'COMP'
-
-               if _arguments: raise TypeError, 'No optional args expected'
-               _arguments['----'] = _object
-
-
-               _reply, _arguments, _attributes = self.send(_code, _subcode,
-                               _arguments, _attributes)
-               if _arguments.has_key('errn'):
-                       raise aetools.Error, aetools.decodeerror(_arguments)
-               # XXXX Optionally decode result
-               if _arguments.has_key('----'):
-                       return _arguments['----']
-
-       def disassemble_file(self, _object=None, _attributes={}, **_arguments):
-               """disassemble file: disassemble a file in a project or target
-               Required argument: the file or files to be disassembled
-               Keyword argument _attributes: AppleEvent attribute dictionary
-               """
-               _code = 'CWIE'
-               _subcode = 'DASM'
-
-               if _arguments: raise TypeError, 'No optional args expected'
-               _arguments['----'] = _object
-
-
-               _reply, _arguments, _attributes = self.send(_code, _subcode,
-                               _arguments, _attributes)
-               if _arguments.has_key('errn'):
-                       raise aetools.Error, aetools.decodeerror(_arguments)
-               # XXXX Optionally decode result
-               if _arguments.has_key('----'):
-                       return _arguments['----']
-
-       def build(self, _no_object=None, _attributes={}, **_arguments):
-               """build: build a project or target (equivalent of the Make menu command)
-               Keyword argument _attributes: AppleEvent attribute dictionary
-               """
-               _code = 'CWIE'
-               _subcode = 'MAKE'
-
-               if _arguments: raise TypeError, 'No optional args expected'
-               if _no_object != None: raise TypeError, 'No direct arg expected'
-
-
-               _reply, _arguments, _attributes = self.send(_code, _subcode,
-                               _arguments, _attributes)
-               if _arguments.has_key('errn'):
-                       raise aetools.Error, aetools.decodeerror(_arguments)
-               # XXXX Optionally decode result
-               if _arguments.has_key('----'):
-                       return _arguments['----']
-
-       def remove_target_files(self, _object, _attributes={}, **_arguments):
-               """remove target files: remove files from a target
-               Required argument: an AE object reference
-               Keyword argument _attributes: AppleEvent attribute dictionary
-               """
-               _code = 'CWIE'
-               _subcode = 'RMFL'
-
-               if _arguments: raise TypeError, 'No optional args expected'
-               _arguments['----'] = _object
-
-
-               _reply, _arguments, _attributes = self.send(_code, _subcode,
-                               _arguments, _attributes)
-               if _arguments.has_key('errn'):
-                       raise aetools.Error, aetools.decodeerror(_arguments)
-               # XXXX Optionally decode result
-               if _arguments.has_key('----'):
-                       return _arguments['----']
-
-       def remove_object_code(self, _no_object=None, _attributes={}, **_arguments):
-               """remove object code: remove object code from a project or target
-               Keyword argument _attributes: AppleEvent attribute dictionary
-               """
-               _code = 'CWIE'
-               _subcode = 'RMOB'
-
-               if _arguments: raise TypeError, 'No optional args expected'
-               if _no_object != None: raise TypeError, 'No direct arg expected'
-
-
-               _reply, _arguments, _attributes = self.send(_code, _subcode,
-                               _arguments, _attributes)
-               if _arguments.has_key('errn'):
-                       raise aetools.Error, aetools.decodeerror(_arguments)
-               # XXXX Optionally decode result
-               if _arguments.has_key('----'):
-                       return _arguments['----']
-
-       def run_target(self, _no_object=None, _attributes={}, **_arguments):
-               """run target: run a project or target
-               Keyword argument _attributes: AppleEvent attribute dictionary
-               """
-               _code = 'CWIE'
-               _subcode = 'RUN '
-
-               if _arguments: raise TypeError, 'No optional args expected'
-               if _no_object != None: raise TypeError, 'No direct arg expected'
-
-
-               _reply, _arguments, _attributes = self.send(_code, _subcode,
-                               _arguments, _attributes)
-               if _arguments.has_key('errn'):
-                       raise aetools.Error, aetools.decodeerror(_arguments)
-               # XXXX Optionally decode result
-               if _arguments.has_key('----'):
-                       return _arguments['----']
-
-       def touch_file(self, _object=None, _attributes={}, **_arguments):
-               """touch file: touch a file in a project or target for compilation
-               Required argument: the file or files to be touched
-               Keyword argument _attributes: AppleEvent attribute dictionary
-               """
-               _code = 'CWIE'
-               _subcode = 'TOCH'
-
-               if _arguments: raise TypeError, 'No optional args expected'
-               _arguments['----'] = _object
-
-
-               _reply, _arguments, _attributes = self.send(_code, _subcode,
-                               _arguments, _attributes)
-               if _arguments.has_key('errn'):
-                       raise aetools.Error, aetools.decodeerror(_arguments)
-               # XXXX Optionally decode result
-               if _arguments.has_key('----'):
-                       return _arguments['----']
-
-
-class build_progress_document(aetools.ComponentItem):
-       """build progress document - a build progress document """
-       want = 'PRGS'
-class inherits(aetools.NProperty):
-       """inherits - all properties and elements of the given class are inherited by this class. """
-       which = 'c@#^'
-       want = 'docu'
-
-build_progress_documents = build_progress_document
-
-class catalog_document(aetools.ComponentItem):
-       """catalog document - a browser catalog document """
-       want = 'CTLG'
-# repeated property inherits all properties and elements of the given class are inherited by this class.
-
-catalog_documents = catalog_document
-
-class class_browser(aetools.ComponentItem):
-       """class browser - a class browser """
-       want = 'BROW'
-# repeated property inherits all properties and elements of the given class are inherited by this class.
-
-class_browsers = class_browser
-
-class class_hierarchy(aetools.ComponentItem):
-       """class hierarchy - a class hierarchy document """
-       want = 'HIER'
-# repeated property inherits all properties and elements of the given class are inherited by this class.
-
-class_hierarchies = class_hierarchy
-
-class editor_document(aetools.ComponentItem):
-       """editor document - an editor document """
-       want = 'EDIT'
-# repeated property inherits all properties and elements of the given class are inherited by this class.
-
-editor_documents = editor_document
-
-class file_compare_document(aetools.ComponentItem):
-       """file compare document - a file compare document """
-       want = 'COMP'
-# repeated property inherits all properties and elements of the given class are inherited by this class.
-
-file_compare_documents = file_compare_document
-
-class message_document(aetools.ComponentItem):
-       """message document - a message document """
-       want = 'MSSG'
-# repeated property inherits all properties and elements of the given class are inherited by this class.
-
-message_documents = message_document
-
-class project_document(aetools.ComponentItem):
-       """project document - a project document """
-       want = 'PRJD'
-# repeated property inherits all properties and elements of the given class are inherited by this class.
-class current_target(aetools.NProperty):
-       """current target - the current target """
-       which = 'CURT'
-       want = 'TRGT'
-#        element 'TRGT' as ['indx', 'name', 'test', 'rang']
-
-project_documents = project_document
-
-class project_inspector(aetools.ComponentItem):
-       """project inspector - the project inspector """
-       want = 'INSP'
-# repeated property inherits all properties and elements of the given class are inherited by this class.
-
-project_inspectors = project_inspector
-
-class single_class_browser(aetools.ComponentItem):
-       """single class browser - a single class browser """
-       want = '1BRW'
-# repeated property inherits all properties and elements of the given class are inherited by this class.
-
-single_class_browsers = single_class_browser
-
-class single_class_hierarchy(aetools.ComponentItem):
-       """single class hierarchy - a single class hierarchy document """
-       want = '1HIR'
-# repeated property inherits all properties and elements of the given class are inherited by this class.
-
-single_class_hierarchies = single_class_hierarchy
-
-class subtarget(aetools.ComponentItem):
-       """subtarget - a target that is prerequisite for another target """
-       want = 'SBTG'
-# repeated property inherits all properties and elements of the given class are inherited by this class.
-class target(aetools.NProperty):
-       """target - the target that is dependent on this subtarget """
-       which = 'TrgT'
-       want = 'TRGT'
-class link_against_output(aetools.NProperty):
-       """link against output - is the output of this subtarget linked into its dependent target? """
-       which = 'LNKO'
-       want = 'bool'
-
-subtargets = subtarget
-
-class symbol_browser(aetools.ComponentItem):
-       """symbol browser - a symbol browser """
-       want = 'SYMB'
-# repeated property inherits all properties and elements of the given class are inherited by this class.
-
-symbol_browsers = symbol_browser
-
-class target(aetools.ComponentItem):
-       """target - a target in a project """
-       want = 'TRGT'
-class name(aetools.NProperty):
-       """name -  """
-       which = 'pnam'
-       want = 'itxt'
-class index(aetools.NProperty):
-       """index - the number of the target """
-       which = 'pidx'
-       want = 'long'
-class project_document(aetools.NProperty):
-       """project document - the project document that contains this target """
-       which = 'PrjD'
-       want = 'PRJD'
-#        element 'SRCF' as ['indx', 'test', 'rang']
-#        element 'SBTG' as ['indx', 'test', 'rang']
-
-targets = target
-
-class target_file(aetools.ComponentItem):
-       """target file - a source or header file in a target """
-       want = 'SRCF'
-class id(aetools.NProperty):
-       """id - the unique ID number of the target file """
-       which = 'ID  '
-       want = 'long'
-class type(aetools.NProperty):
-       """type - the type of source file """
-       which = 'FTYP'
-       want = 'FTYP'
-# repeated property index the number of the target file
-class location(aetools.NProperty):
-       """location - the location of the target file on disk """
-       which = 'FILE'
-       want = 'fss '
-class path(aetools.NProperty):
-       """path - the path of the source file on disk """
-       which = 'Path'
-       want = 'itxt'
-class linked(aetools.NProperty):
-       """linked - is the source file in the link order of its target? """
-       which = 'LINK'
-       want = 'bool'
-class link_index(aetools.NProperty):
-       """link index - the index of the source file in its target¹s link order (-1 if source file is not in link order) """
-       which = 'LIDX'
-       want = 'long'
-class modified_date(aetools.NProperty):
-       """modified date - the date and time this source file was last modified """
-       which = 'MODD'
-       want = 'ldt '
-class compiled_date(aetools.NProperty):
-       """compiled date - the date and this source file was last compiled """
-       which = 'CMPD'
-       want = 'ldt '
-class code_size(aetools.NProperty):
-       """code size - the size of the code (in bytes) produced by compiling this source file """
-       which = 'CSZE'
-       want = 'long'
-class data_size(aetools.NProperty):
-       """data size - the size of the date (in bytes) produced by compiling this source file """
-       which = 'DSZE'
-       want = 'long'
-class debug(aetools.NProperty):
-       """debug - is debugging information generated for this source file? """
-       which = 'DBUG'
-       want = 'bool'
-class weak_link(aetools.NProperty):
-       """weak link - is this shared library linked weakly? """
-       which = 'WEAK'
-       want = 'bool'
-class init_before(aetools.NProperty):
-       """init before - is the \8cinitialize before¹ flag set for this shared library? """
-       which = 'INIT'
-       want = 'bool'
-class merge_output(aetools.NProperty):
-       """merge output - is this shared library merged into another code fragment? """
-       which = 'MRGE'
-       want = 'bool'
-class prerequisites(aetools.NProperty):
-       """prerequisites - the source files needed to build this source file """
-       which = 'PRER'
-       want = 'list'
-class dependents(aetools.NProperty):
-       """dependents - the source files that need this source file in order to build """
-       which = 'DPND'
-       want = 'list'
-
-target_files = target_file
-
-class text_document(aetools.ComponentItem):
-       """text document - a document that contains text """
-       want = 'TXTD'
-# repeated property inherits all properties and elements of the given class are inherited by this class.
-class modified(aetools.NProperty):
-       """modified - Has the document been modified since the last save? """
-       which = 'imod'
-       want = 'bool'
-class selection(aetools.NProperty):
-       """selection - the selection visible to the user """
-       which = 'sele'
-       want = 'csel'
-#        element 'cha ' as ['indx', 'rele', 'rang', 'test']
-#        element 'cins' as ['rele']
-#        element 'clin' as ['indx', 'rang', 'rele']
-#        element 'ctxt' as ['rang']
-
-text_documents = text_document
-
-class ToolServer_worksheet(aetools.ComponentItem):
-       """ToolServer worksheet - a ToolServer worksheet """
-       want = 'TOOL'
-# repeated property inherits all properties and elements of the given class are inherited by this class.
-
-ToolServer_worksheets = ToolServer_worksheet
-build_progress_document._propdict = {
-       'inherits' : inherits,
-}
-build_progress_document._elemdict = {
-}
-catalog_document._propdict = {
-       'inherits' : inherits,
-}
-catalog_document._elemdict = {
-}
-class_browser._propdict = {
-       'inherits' : inherits,
-}
-class_browser._elemdict = {
-}
-class_hierarchy._propdict = {
-       'inherits' : inherits,
-}
-class_hierarchy._elemdict = {
-}
-editor_document._propdict = {
-       'inherits' : inherits,
-}
-editor_document._elemdict = {
-}
-file_compare_document._propdict = {
-       'inherits' : inherits,
-}
-file_compare_document._elemdict = {
-}
-message_document._propdict = {
-       'inherits' : inherits,
-}
-message_document._elemdict = {
-}
-project_document._propdict = {
-       'inherits' : inherits,
-       'current_target' : current_target,
-}
-project_document._elemdict = {
-       'target' : target,
-}
-project_inspector._propdict = {
-       'inherits' : inherits,
-}
-project_inspector._elemdict = {
-}
-single_class_browser._propdict = {
-       'inherits' : inherits,
-}
-single_class_browser._elemdict = {
-}
-single_class_hierarchy._propdict = {
-       'inherits' : inherits,
-}
-single_class_hierarchy._elemdict = {
-}
-subtarget._propdict = {
-       'inherits' : inherits,
-       'target' : target,
-       'link_against_output' : link_against_output,
-}
-subtarget._elemdict = {
-}
-symbol_browser._propdict = {
-       'inherits' : inherits,
-}
-symbol_browser._elemdict = {
-}
-target._propdict = {
-       'name' : name,
-       'index' : index,
-       'project_document' : project_document,
-}
-target._elemdict = {
-       'target_file' : target_file,
-       'subtarget' : subtarget,
-}
-target_file._propdict = {
-       'id' : id,
-       'type' : type,
-       'index' : index,
-       'location' : location,
-       'path' : path,
-       'linked' : linked,
-       'link_index' : link_index,
-       'modified_date' : modified_date,
-       'compiled_date' : compiled_date,
-       'code_size' : code_size,
-       'data_size' : data_size,
-       'debug' : debug,
-       'weak_link' : weak_link,
-       'init_before' : init_before,
-       'merge_output' : merge_output,
-       'prerequisites' : prerequisites,
-       'dependents' : dependents,
-}
-target_file._elemdict = {
-}
-import Standard_Suite
-text_document._propdict = {
-       'inherits' : inherits,
-       'modified' : modified,
-       'selection' : selection,
-}
-text_document._elemdict = {
-       'character' : Standard_Suite.character,
-       'insertion_point' : Standard_Suite.insertion_point,
-       'line' : Standard_Suite.line,
-       'text' : Standard_Suite.text,
-}
-ToolServer_worksheet._propdict = {
-       'inherits' : inherits,
-}
-ToolServer_worksheet._elemdict = {
-}
-_Enum_Inte = {
-       'never_interact' : 'eNvr',      # never allow user interactions
-       'interact_with_self' : 'eInS',  # allow user interaction only when an AppleEvent is sent from within CodeWarrior
-       'interact_with_local' : 'eInL', # allow user interaction when AppleEvents are sent from applications on the same machine (default)
-       'interact_with_all' : 'eInA',   # allow user interaction from both local and remote AppleEvents
-}
-
-_Enum_DKND = {
-       'project' : 'PRJD',     # a project document
-       'editor_document' : 'EDIT',     # an editor document
-       'message' : 'MSSG',     # a message document
-       'file_compare' : 'COMP',        # a file compare document
-       'catalog_document' : 'CTLG',    # a browser catalog
-       'class_browser' : 'BROW',       # a class browser document
-       'single_class_browser' : '1BRW',        # a single class browser document
-       'symbol_browser' : 'SYMB',      # a symbol browser document
-       'class_hierarchy' : 'HIER',     # a class hierarchy document
-       'single_class_hierarchy' : '1HIR',      # a single class hierarchy document
-       'project_inspector' : 'INSP',   # a project inspector
-       'ToolServer_worksheet' : 'TOOL',        # the ToolServer worksheet
-       'build_progress_document' : 'PRGS',     # the build progress window
-}
-
-_Enum_FTYP = {
-       'library_file' : 'LIBF',        # a library file
-       'project_file' : 'PRJF',        # a project file
-       'resource_file' : 'RESF',       # a resource file
-       'text_file' : 'TXTF',   # a text file
-       'unknown_file' : 'UNKN',        # unknown file type
-}
-
-_Enum_PERM = {
-       'read_write' : 'RdWr',  # the file is open with read/write permission
-       'read_only' : 'Read',   # the file is open with read/only permission
-       'checked_out_read_write' : 'CkRW',      # the file is checked out with read/write permission
-       'checked_out_read_only' : 'CkRO',       # the file is checked out with read/only permission
-       'checked_out_read_modify' : 'CkRM',     # the file is checked out with read/modify permission
-       'locked' : 'Lock',      # the file is locked on disk
-       'none' : 'LNNO',        # the file is new
-}
-
-
-#
-# Indices of types declared in this module
-#
-_classdeclarations = {
-       'TOOL' : ToolServer_worksheet,
-       '1HIR' : single_class_hierarchy,
-       'SRCF' : target_file,
-       'TXTD' : text_document,
-       'TRGT' : target,
-       'HIER' : class_hierarchy,
-       'CTLG' : catalog_document,
-       '1BRW' : single_class_browser,
-       'MSSG' : message_document,
-       'INSP' : project_inspector,
-       'BROW' : class_browser,
-       'COMP' : file_compare_document,
-       'EDIT' : editor_document,
-       'PRJD' : project_document,
-       'SBTG' : subtarget,
-       'SYMB' : symbol_browser,
-       'PRGS' : build_progress_document,
-}
-
-_propdeclarations = {
-       'PRER' : prerequisites,
-       'DBUG' : debug,
-       'CSZE' : code_size,
-       'Path' : path,
-       'pnam' : name,
-       'TrgT' : target,
-       'DSZE' : data_size,
-       'FTYP' : type,
-       'MODD' : modified_date,
-       'INIT' : init_before,
-       'sele' : selection,
-       'imod' : modified,
-       'DPND' : dependents,
-       'FILE' : location,
-       'LIDX' : link_index,
-       'LINK' : linked,
-       'ID  ' : id,
-       'c@#^' : inherits,
-       'pidx' : index,
-       'LNKO' : link_against_output,
-       'WEAK' : weak_link,
-       'MRGE' : merge_output,
-       'CMPD' : compiled_date,
-       'PrjD' : project_document,
-       'CURT' : current_target,
-}
-
-_compdeclarations = {
-}
-
-_enumdeclarations = {
-       'PERM' : _Enum_PERM,
-       'FTYP' : _Enum_FTYP,
-       'DKND' : _Enum_DKND,
-       'Inte' : _Enum_Inte,
-}
diff --git a/Mac/Lib/lib-scriptpackages/CodeWarrior/Metrowerks_Shell_Suite.py b/Mac/Lib/lib-scriptpackages/CodeWarrior/Metrowerks_Shell_Suite.py
deleted file mode 100644 (file)
index 0d1fc90..0000000
+++ /dev/null
@@ -1,2355 +0,0 @@
-"""Suite Metrowerks Shell Suite: Events supported by the Metrowerks Project Shell
-Level 1, version 1
-
-Generated from Macintosh HD:SWdev:CodeWarrior 6 MPTP:Metrowerks CodeWarrior:CodeWarrior IDE 4.1B9
-AETE/AEUT resource version 1/0, language 0, script 0
-"""
-
-import aetools
-import MacOS
-
-_code = 'MMPR'
-
-class Metrowerks_Shell_Suite_Events:
-
-       _argmap_Add_Files = {
-               'To_Segment' : 'Segm',
-       }
-
-       def Add_Files(self, _object, _attributes={}, **_arguments):
-               """Add Files: Add the specified file(s) to the current project
-               Required argument: List of files to add
-               Keyword argument To_Segment: Segment number into which to add the file(s)
-               Keyword argument _attributes: AppleEvent attribute dictionary
-               Returns: Error code for each file added
-               """
-               _code = 'MMPR'
-               _subcode = 'AddF'
-
-               aetools.keysubst(_arguments, self._argmap_Add_Files)
-               _arguments['----'] = _object
-
-
-               _reply, _arguments, _attributes = self.send(_code, _subcode,
-                               _arguments, _attributes)
-               if _arguments.has_key('errn'):
-                       raise aetools.Error, aetools.decodeerror(_arguments)
-               # XXXX Optionally decode result
-               if _arguments.has_key('----'):
-                       return _arguments['----']
-
-       _argmap_Check_Syntax = {
-               'ExternalEditor' : 'Errs',
-       }
-
-       def Check_Syntax(self, _object, _attributes={}, **_arguments):
-               """Check Syntax: Check the syntax of the specified file(s)
-               Required argument: List of files to check the syntax of
-               Keyword argument ExternalEditor: Should the contents of the message window be returned to the caller?
-               Keyword argument _attributes: AppleEvent attribute dictionary
-               Returns: Errors for each file whose syntax was checked
-               """
-               _code = 'MMPR'
-               _subcode = 'Chek'
-
-               aetools.keysubst(_arguments, self._argmap_Check_Syntax)
-               _arguments['----'] = _object
-
-
-               _reply, _arguments, _attributes = self.send(_code, _subcode,
-                               _arguments, _attributes)
-               if _arguments.has_key('errn'):
-                       raise aetools.Error, aetools.decodeerror(_arguments)
-               # XXXX Optionally decode result
-               if _arguments.has_key('----'):
-                       return _arguments['----']
-
-       def Close_Project(self, _no_object=None, _attributes={}, **_arguments):
-               """Close Project: Close the current project
-               Keyword argument _attributes: AppleEvent attribute dictionary
-               """
-               _code = 'MMPR'
-               _subcode = 'ClsP'
-
-               if _arguments: raise TypeError, 'No optional args expected'
-               if _no_object != None: raise TypeError, 'No direct arg expected'
-
-
-               _reply, _arguments, _attributes = self.send(_code, _subcode,
-                               _arguments, _attributes)
-               if _arguments.has_key('errn'):
-                       raise aetools.Error, aetools.decodeerror(_arguments)
-               # XXXX Optionally decode result
-               if _arguments.has_key('----'):
-                       return _arguments['----']
-
-       _argmap_Close_Window = {
-               'Saving' : 'savo',
-       }
-
-       def Close_Window(self, _object, _attributes={}, **_arguments):
-               """Close Window: Close the windows showing the specified files
-               Required argument: The files to close
-               Keyword argument Saving: Whether to save changes to each file before closing its window
-               Keyword argument _attributes: AppleEvent attribute dictionary
-               """
-               _code = 'MMPR'
-               _subcode = 'ClsW'
-
-               aetools.keysubst(_arguments, self._argmap_Close_Window)
-               _arguments['----'] = _object
-
-               aetools.enumsubst(_arguments, 'savo', _Enum_savo)
-
-               _reply, _arguments, _attributes = self.send(_code, _subcode,
-                               _arguments, _attributes)
-               if _arguments.has_key('errn'):
-                       raise aetools.Error, aetools.decodeerror(_arguments)
-               # XXXX Optionally decode result
-               if _arguments.has_key('----'):
-                       return _arguments['----']
-
-       _argmap_Compile = {
-               'ExternalEditor' : 'Errs',
-       }
-
-       def Compile(self, _object, _attributes={}, **_arguments):
-               """Compile: Compile the specified file(s)
-               Required argument: List of files to compile
-               Keyword argument ExternalEditor: Should the contents of the message window be returned to the caller?
-               Keyword argument _attributes: AppleEvent attribute dictionary
-               Returns: Errors for each file compiled
-               """
-               _code = 'MMPR'
-               _subcode = 'Comp'
-
-               aetools.keysubst(_arguments, self._argmap_Compile)
-               _arguments['----'] = _object
-
-
-               _reply, _arguments, _attributes = self.send(_code, _subcode,
-                               _arguments, _attributes)
-               if _arguments.has_key('errn'):
-                       raise aetools.Error, aetools.decodeerror(_arguments)
-               # XXXX Optionally decode result
-               if _arguments.has_key('----'):
-                       return _arguments['----']
-
-       _argmap_Create_Project = {
-               'from_stationery' : 'Tmpl',
-       }
-
-       def Create_Project(self, _object, _attributes={}, **_arguments):
-               """Create Project: Create a new project file
-               Required argument: New project file specifier
-               Keyword argument from_stationery: undocumented, typecode 'alis'
-               Keyword argument _attributes: AppleEvent attribute dictionary
-               """
-               _code = 'MMPR'
-               _subcode = 'NewP'
-
-               aetools.keysubst(_arguments, self._argmap_Create_Project)
-               _arguments['----'] = _object
-
-
-               _reply, _arguments, _attributes = self.send(_code, _subcode,
-                               _arguments, _attributes)
-               if _arguments.has_key('errn'):
-                       raise aetools.Error, aetools.decodeerror(_arguments)
-               # XXXX Optionally decode result
-               if _arguments.has_key('----'):
-                       return _arguments['----']
-
-       def Get_Definition(self, _object, _attributes={}, **_arguments):
-               """Get Definition: Returns the location(s) of a globally scoped function or data object.
-               Required argument: undocumented, typecode 'TEXT'
-               Keyword argument _attributes: AppleEvent attribute dictionary
-               Returns: undocumented, typecode 'FDef'
-               """
-               _code = 'MMPR'
-               _subcode = 'GDef'
-
-               if _arguments: raise TypeError, 'No optional args expected'
-               _arguments['----'] = _object
-
-
-               _reply, _arguments, _attributes = self.send(_code, _subcode,
-                               _arguments, _attributes)
-               if _arguments.has_key('errn'):
-                       raise aetools.Error, aetools.decodeerror(_arguments)
-               # XXXX Optionally decode result
-               if _arguments.has_key('----'):
-                       return _arguments['----']
-
-       def Get_Open_Documents(self, _no_object=None, _attributes={}, **_arguments):
-               """Get Open Documents: Returns the list of open documents
-               Keyword argument _attributes: AppleEvent attribute dictionary
-               Returns: The list of documents
-               """
-               _code = 'MMPR'
-               _subcode = 'GDoc'
-
-               if _arguments: raise TypeError, 'No optional args expected'
-               if _no_object != None: raise TypeError, 'No direct arg expected'
-
-
-               _reply, _arguments, _attributes = self.send(_code, _subcode,
-                               _arguments, _attributes)
-               if _arguments.has_key('errn'):
-                       raise aetools.Error, aetools.decodeerror(_arguments)
-               # XXXX Optionally decode result
-               if _arguments.has_key('----'):
-                       return _arguments['----']
-
-       _argmap_Get_Preferences = {
-               'of' : 'PRec',
-               'from_panel' : 'PNam',
-       }
-
-       def Get_Preferences(self, _no_object=None, _attributes={}, **_arguments):
-               """Get Preferences: Get the preferences for the current project
-               Keyword argument of: Names of requested preferences
-               Keyword argument from_panel: Name of the preference panel
-               Keyword argument _attributes: AppleEvent attribute dictionary
-               Returns: The requested preferences
-               """
-               _code = 'MMPR'
-               _subcode = 'Gref'
-
-               aetools.keysubst(_arguments, self._argmap_Get_Preferences)
-               if _no_object != None: raise TypeError, 'No direct arg expected'
-
-
-               _reply, _arguments, _attributes = self.send(_code, _subcode,
-                               _arguments, _attributes)
-               if _arguments.has_key('errn'):
-                       raise aetools.Error, aetools.decodeerror(_arguments)
-               # XXXX Optionally decode result
-               if _arguments.has_key('----'):
-                       return _arguments['----']
-
-       _argmap_Get_Project_File = {
-               'Segment' : 'Segm',
-       }
-
-       def Get_Project_File(self, _object, _attributes={}, **_arguments):
-               """Get Project File: Returns a description of a file in the project window.
-               Required argument: The index of the file within its segment.
-               Keyword argument Segment: The segment containing the file.
-               Keyword argument _attributes: AppleEvent attribute dictionary
-               Returns: undocumented, typecode 'SrcF'
-               """
-               _code = 'MMPR'
-               _subcode = 'GFil'
-
-               aetools.keysubst(_arguments, self._argmap_Get_Project_File)
-               _arguments['----'] = _object
-
-
-               _reply, _arguments, _attributes = self.send(_code, _subcode,
-                               _arguments, _attributes)
-               if _arguments.has_key('errn'):
-                       raise aetools.Error, aetools.decodeerror(_arguments)
-               # XXXX Optionally decode result
-               if _arguments.has_key('----'):
-                       return _arguments['----']
-
-       def Get_Project_Specifier(self, _no_object=None, _attributes={}, **_arguments):
-               """Get Project Specifier: Return the File Specifier for the current project
-               Keyword argument _attributes: AppleEvent attribute dictionary
-               Returns: File Specifier for the current project
-               """
-               _code = 'MMPR'
-               _subcode = 'GetP'
-
-               if _arguments: raise TypeError, 'No optional args expected'
-               if _no_object != None: raise TypeError, 'No direct arg expected'
-
-
-               _reply, _arguments, _attributes = self.send(_code, _subcode,
-                               _arguments, _attributes)
-               if _arguments.has_key('errn'):
-                       raise aetools.Error, aetools.decodeerror(_arguments)
-               # XXXX Optionally decode result
-               if _arguments.has_key('----'):
-                       return _arguments['----']
-
-       def Get_Segments(self, _no_object=None, _attributes={}, **_arguments):
-               """Get Segments: Returns a description of each segment in the project.
-               Keyword argument _attributes: AppleEvent attribute dictionary
-               Returns: undocumented, typecode 'Seg '
-               """
-               _code = 'MMPR'
-               _subcode = 'GSeg'
-
-               if _arguments: raise TypeError, 'No optional args expected'
-               if _no_object != None: raise TypeError, 'No direct arg expected'
-
-
-               _reply, _arguments, _attributes = self.send(_code, _subcode,
-                               _arguments, _attributes)
-               if _arguments.has_key('errn'):
-                       raise aetools.Error, aetools.decodeerror(_arguments)
-               # XXXX Optionally decode result
-               if _arguments.has_key('----'):
-                       return _arguments['----']
-
-       def Goto_Function(self, _object, _attributes={}, **_arguments):
-               """Goto Function: Goto Specified Function Name
-               Required argument: undocumented, typecode 'TEXT'
-               Keyword argument _attributes: AppleEvent attribute dictionary
-               """
-               _code = 'MMPR'
-               _subcode = 'GoFn'
-
-               if _arguments: raise TypeError, 'No optional args expected'
-               _arguments['----'] = _object
-
-
-               _reply, _arguments, _attributes = self.send(_code, _subcode,
-                               _arguments, _attributes)
-               if _arguments.has_key('errn'):
-                       raise aetools.Error, aetools.decodeerror(_arguments)
-               # XXXX Optionally decode result
-               if _arguments.has_key('----'):
-                       return _arguments['----']
-
-       def Goto_Line(self, _object, _attributes={}, **_arguments):
-               """Goto Line: Goto Specified Line Number
-               Required argument: The requested source file line number
-               Keyword argument _attributes: AppleEvent attribute dictionary
-               """
-               _code = 'MMPR'
-               _subcode = 'GoLn'
-
-               if _arguments: raise TypeError, 'No optional args expected'
-               _arguments['----'] = _object
-
-
-               _reply, _arguments, _attributes = self.send(_code, _subcode,
-                               _arguments, _attributes)
-               if _arguments.has_key('errn'):
-                       raise aetools.Error, aetools.decodeerror(_arguments)
-               # XXXX Optionally decode result
-               if _arguments.has_key('----'):
-                       return _arguments['----']
-
-       def Is_In_Project(self, _object, _attributes={}, **_arguments):
-               """Is In Project: Whether or not the specified file(s) is in the current project
-               Required argument: List of files to check for project membership
-               Keyword argument _attributes: AppleEvent attribute dictionary
-               Returns: Result code for each file
-               """
-               _code = 'MMPR'
-               _subcode = 'FInP'
-
-               if _arguments: raise TypeError, 'No optional args expected'
-               _arguments['----'] = _object
-
-
-               _reply, _arguments, _attributes = self.send(_code, _subcode,
-                               _arguments, _attributes)
-               if _arguments.has_key('errn'):
-                       raise aetools.Error, aetools.decodeerror(_arguments)
-               # XXXX Optionally decode result
-               if _arguments.has_key('----'):
-                       return _arguments['----']
-
-       _argmap_Make_Project = {
-               'ExternalEditor' : 'Errs',
-       }
-
-       def Make_Project(self, _no_object=None, _attributes={}, **_arguments):
-               """Make Project: Make the current project
-               Keyword argument ExternalEditor: Should the contents of the message window be returned to the caller?
-               Keyword argument _attributes: AppleEvent attribute dictionary
-               Returns: Errors that occurred while making the project
-               """
-               _code = 'MMPR'
-               _subcode = 'Make'
-
-               aetools.keysubst(_arguments, self._argmap_Make_Project)
-               if _no_object != None: raise TypeError, 'No direct arg expected'
-
-
-               _reply, _arguments, _attributes = self.send(_code, _subcode,
-                               _arguments, _attributes)
-               if _arguments.has_key('errn'):
-                       raise aetools.Error, aetools.decodeerror(_arguments)
-               # XXXX Optionally decode result
-               if _arguments.has_key('----'):
-                       return _arguments['----']
-
-       _argmap_Precompile = {
-               'Saving_As' : 'Targ',
-               'ExternalEditor' : 'Errs',
-       }
-
-       def Precompile(self, _object, _attributes={}, **_arguments):
-               """Precompile: Precompile the specified file to the specified destination file
-               Required argument: File to precompile
-               Keyword argument Saving_As: Destination file for precompiled header
-               Keyword argument ExternalEditor: Should the contents of the message window be returned to the caller?
-               Keyword argument _attributes: AppleEvent attribute dictionary
-               Returns: Errors for the precompiled file
-               """
-               _code = 'MMPR'
-               _subcode = 'PreC'
-
-               aetools.keysubst(_arguments, self._argmap_Precompile)
-               _arguments['----'] = _object
-
-
-               _reply, _arguments, _attributes = self.send(_code, _subcode,
-                               _arguments, _attributes)
-               if _arguments.has_key('errn'):
-                       raise aetools.Error, aetools.decodeerror(_arguments)
-               # XXXX Optionally decode result
-               if _arguments.has_key('----'):
-                       return _arguments['----']
-
-       _argmap_Preprocess = {
-               'ExternalEditor' : 'Errs',
-       }
-
-       def Preprocess(self, _object, _attributes={}, **_arguments):
-               """Preprocess: Preprocesses the specified file(s)
-               Required argument: undocumented, typecode 'alis'
-               Keyword argument ExternalEditor: undocumented, typecode 'bool'
-               Keyword argument _attributes: AppleEvent attribute dictionary
-               Returns: Errors for each preprocessed file
-               """
-               _code = 'MMPR'
-               _subcode = 'PreP'
-
-               aetools.keysubst(_arguments, self._argmap_Preprocess)
-               _arguments['----'] = _object
-
-
-               _reply, _arguments, _attributes = self.send(_code, _subcode,
-                               _arguments, _attributes)
-               if _arguments.has_key('errn'):
-                       raise aetools.Error, aetools.decodeerror(_arguments)
-               # XXXX Optionally decode result
-               if _arguments.has_key('----'):
-                       return _arguments['----']
-
-       def Remove_Binaries(self, _no_object=None, _attributes={}, **_arguments):
-               """Remove Binaries: Remove the binary object code from the current project
-               Keyword argument _attributes: AppleEvent attribute dictionary
-               """
-               _code = 'MMPR'
-               _subcode = 'RemB'
-
-               if _arguments: raise TypeError, 'No optional args expected'
-               if _no_object != None: raise TypeError, 'No direct arg expected'
-
-
-               _reply, _arguments, _attributes = self.send(_code, _subcode,
-                               _arguments, _attributes)
-               if _arguments.has_key('errn'):
-                       raise aetools.Error, aetools.decodeerror(_arguments)
-               # XXXX Optionally decode result
-               if _arguments.has_key('----'):
-                       return _arguments['----']
-
-       def Remove_Files(self, _object, _attributes={}, **_arguments):
-               """Remove Files: Remove the specified file(s) from the current project
-               Required argument: List of files to remove
-               Keyword argument _attributes: AppleEvent attribute dictionary
-               Returns: Error code for each file removed
-               """
-               _code = 'MMPR'
-               _subcode = 'RemF'
-
-               if _arguments: raise TypeError, 'No optional args expected'
-               _arguments['----'] = _object
-
-
-               _reply, _arguments, _attributes = self.send(_code, _subcode,
-                               _arguments, _attributes)
-               if _arguments.has_key('errn'):
-                       raise aetools.Error, aetools.decodeerror(_arguments)
-               # XXXX Optionally decode result
-               if _arguments.has_key('----'):
-                       return _arguments['----']
-
-       def Reset_File_Paths(self, _no_object=None, _attributes={}, **_arguments):
-               """Reset File Paths: Resets access paths for all files belonging to open project.
-               Keyword argument _attributes: AppleEvent attribute dictionary
-               """
-               _code = 'MMPR'
-               _subcode = 'ReFP'
-
-               if _arguments: raise TypeError, 'No optional args expected'
-               if _no_object != None: raise TypeError, 'No direct arg expected'
-
-
-               _reply, _arguments, _attributes = self.send(_code, _subcode,
-                               _arguments, _attributes)
-               if _arguments.has_key('errn'):
-                       raise aetools.Error, aetools.decodeerror(_arguments)
-               # XXXX Optionally decode result
-               if _arguments.has_key('----'):
-                       return _arguments['----']
-
-       _argmap_Run_Project = {
-               'ExternalEditor' : 'Errs',
-               'SourceDebugger' : 'DeBg',
-       }
-
-       def Run_Project(self, _no_object=None, _attributes={}, **_arguments):
-               """Run Project: Run the current project
-               Keyword argument ExternalEditor: Should the contents of the message window be returned to the caller?
-               Keyword argument SourceDebugger: Run the application under the control of the source-level debugger
-               Keyword argument _attributes: AppleEvent attribute dictionary
-               Returns: Errors that occurred when running the project
-               """
-               _code = 'MMPR'
-               _subcode = 'RunP'
-
-               aetools.keysubst(_arguments, self._argmap_Run_Project)
-               if _no_object != None: raise TypeError, 'No direct arg expected'
-
-
-               _reply, _arguments, _attributes = self.send(_code, _subcode,
-                               _arguments, _attributes)
-               if _arguments.has_key('errn'):
-                       raise aetools.Error, aetools.decodeerror(_arguments)
-               # XXXX Optionally decode result
-               if _arguments.has_key('----'):
-                       return _arguments['----']
-
-       def Save_Error_Window_As(self, _object, _attributes={}, **_arguments):
-               """Save Error Window As: Saves the Errors & Warnings window as a text file
-               Required argument: Destination file for Save Message Window As
-               Keyword argument _attributes: AppleEvent attribute dictionary
-               """
-               _code = 'MMPR'
-               _subcode = 'SvMs'
-
-               if _arguments: raise TypeError, 'No optional args expected'
-               _arguments['----'] = _object
-
-
-               _reply, _arguments, _attributes = self.send(_code, _subcode,
-                               _arguments, _attributes)
-               if _arguments.has_key('errn'):
-                       raise aetools.Error, aetools.decodeerror(_arguments)
-               # XXXX Optionally decode result
-               if _arguments.has_key('----'):
-                       return _arguments['----']
-
-       def Set_Current_Target(self, _object=None, _attributes={}, **_arguments):
-               """Set Current Target: Set the current target of a project
-               Required argument: Name of target
-               Keyword argument _attributes: AppleEvent attribute dictionary
-               """
-               _code = 'MMPR'
-               _subcode = 'STrg'
-
-               if _arguments: raise TypeError, 'No optional args expected'
-               _arguments['----'] = _object
-
-
-               _reply, _arguments, _attributes = self.send(_code, _subcode,
-                               _arguments, _attributes)
-               if _arguments.has_key('errn'):
-                       raise aetools.Error, aetools.decodeerror(_arguments)
-               # XXXX Optionally decode result
-               if _arguments.has_key('----'):
-                       return _arguments['----']
-
-       def Set_Default_Project(self, _object, _attributes={}, **_arguments):
-               """Set Default Project: Set the default project
-               Required argument: Name of project
-               Keyword argument _attributes: AppleEvent attribute dictionary
-               """
-               _code = 'MMPR'
-               _subcode = 'SDfP'
-
-               if _arguments: raise TypeError, 'No optional args expected'
-               _arguments['----'] = _object
-
-
-               _reply, _arguments, _attributes = self.send(_code, _subcode,
-                               _arguments, _attributes)
-               if _arguments.has_key('errn'):
-                       raise aetools.Error, aetools.decodeerror(_arguments)
-               # XXXX Optionally decode result
-               if _arguments.has_key('----'):
-                       return _arguments['----']
-
-       _argmap_Set_Modification_Date = {
-               'to' : 'MDat',
-       }
-
-       def Set_Modification_Date(self, _object, _attributes={}, **_arguments):
-               """Set Modification Date: Changes the internal modification date of the specified file(s)
-               Required argument: List of files
-               Keyword argument to: undocumented, typecode 'ldt '
-               Keyword argument _attributes: AppleEvent attribute dictionary
-               Returns: Error code for each modified file
-               """
-               _code = 'MMPR'
-               _subcode = 'SMod'
-
-               aetools.keysubst(_arguments, self._argmap_Set_Modification_Date)
-               _arguments['----'] = _object
-
-
-               _reply, _arguments, _attributes = self.send(_code, _subcode,
-                               _arguments, _attributes)
-               if _arguments.has_key('errn'):
-                       raise aetools.Error, aetools.decodeerror(_arguments)
-               # XXXX Optionally decode result
-               if _arguments.has_key('----'):
-                       return _arguments['----']
-
-       _argmap_Set_Preferences = {
-               'of_panel' : 'PNam',
-               'to' : 'PRec',
-       }
-
-       def Set_Preferences(self, _no_object=None, _attributes={}, **_arguments):
-               """Set Preferences: Set the preferences for the current project
-               Keyword argument of_panel: Name of the preference panel
-               Keyword argument to: Preferences settings
-               Keyword argument _attributes: AppleEvent attribute dictionary
-               """
-               _code = 'MMPR'
-               _subcode = 'Pref'
-
-               aetools.keysubst(_arguments, self._argmap_Set_Preferences)
-               if _no_object != None: raise TypeError, 'No direct arg expected'
-
-
-               _reply, _arguments, _attributes = self.send(_code, _subcode,
-                               _arguments, _attributes)
-               if _arguments.has_key('errn'):
-                       raise aetools.Error, aetools.decodeerror(_arguments)
-               # XXXX Optionally decode result
-               if _arguments.has_key('----'):
-                       return _arguments['----']
-
-       _argmap_Set_Project_File = {
-               'to' : 'SrcS',
-       }
-
-       def Set_Project_File(self, _object, _attributes={}, **_arguments):
-               """Set Project File: Changes the settings for a given file in the project.
-               Required argument: The name of the file
-               Keyword argument to: The new settings for the file
-               Keyword argument _attributes: AppleEvent attribute dictionary
-               """
-               _code = 'MMPR'
-               _subcode = 'SFil'
-
-               aetools.keysubst(_arguments, self._argmap_Set_Project_File)
-               _arguments['----'] = _object
-
-
-               _reply, _arguments, _attributes = self.send(_code, _subcode,
-                               _arguments, _attributes)
-               if _arguments.has_key('errn'):
-                       raise aetools.Error, aetools.decodeerror(_arguments)
-               # XXXX Optionally decode result
-               if _arguments.has_key('----'):
-                       return _arguments['----']
-
-       _argmap_Set_Segment = {
-               'to' : 'Segm',
-       }
-
-       def Set_Segment(self, _object, _attributes={}, **_arguments):
-               """Set Segment: Changes the name and attributes of a segment.
-               Required argument: The segment to change
-               Keyword argument to: The new name and attributes for the segment.
-               Keyword argument _attributes: AppleEvent attribute dictionary
-               """
-               _code = 'MMPR'
-               _subcode = 'SSeg'
-
-               aetools.keysubst(_arguments, self._argmap_Set_Segment)
-               _arguments['----'] = _object
-
-
-               _reply, _arguments, _attributes = self.send(_code, _subcode,
-                               _arguments, _attributes)
-               if _arguments.has_key('errn'):
-                       raise aetools.Error, aetools.decodeerror(_arguments)
-               # XXXX Optionally decode result
-               if _arguments.has_key('----'):
-                       return _arguments['----']
-
-       def Touch(self, _object, _attributes={}, **_arguments):
-               """Touch: Force recompilation of the specified file(s)
-               Required argument: List of files to compile
-               Keyword argument _attributes: AppleEvent attribute dictionary
-               Returns: Error code for each file touched
-               """
-               _code = 'MMPR'
-               _subcode = 'Toch'
-
-               if _arguments: raise TypeError, 'No optional args expected'
-               _arguments['----'] = _object
-
-
-               _reply, _arguments, _attributes = self.send(_code, _subcode,
-                               _arguments, _attributes)
-               if _arguments.has_key('errn'):
-                       raise aetools.Error, aetools.decodeerror(_arguments)
-               # XXXX Optionally decode result
-               if _arguments.has_key('----'):
-                       return _arguments['----']
-
-       _argmap_Update_Project = {
-               'ExternalEditor' : 'Errs',
-       }
-
-       def Update_Project(self, _no_object=None, _attributes={}, **_arguments):
-               """Update Project: Update the current project
-               Keyword argument ExternalEditor: Should the contents of the message window be returned to the caller?
-               Keyword argument _attributes: AppleEvent attribute dictionary
-               Returns: Errors that occurred while updating the project
-               """
-               _code = 'MMPR'
-               _subcode = 'UpdP'
-
-               aetools.keysubst(_arguments, self._argmap_Update_Project)
-               if _no_object != None: raise TypeError, 'No direct arg expected'
-
-
-               _reply, _arguments, _attributes = self.send(_code, _subcode,
-                               _arguments, _attributes)
-               if _arguments.has_key('errn'):
-                       raise aetools.Error, aetools.decodeerror(_arguments)
-               # XXXX Optionally decode result
-               if _arguments.has_key('----'):
-                       return _arguments['----']
-
-       def Open_browser(self, _object, _attributes={}, **_arguments):
-               """Open browser: Display a class, member function, or data member object in a single class browser window
-               Required argument: an AE object reference
-               Keyword argument _attributes: AppleEvent attribute dictionary
-               """
-               _code = 'MMPR'
-               _subcode = 'Brow'
-
-               if _arguments: raise TypeError, 'No optional args expected'
-               _arguments['----'] = _object
-
-
-               _reply, _arguments, _attributes = self.send(_code, _subcode,
-                               _arguments, _attributes)
-               if _arguments.has_key('errn'):
-                       raise aetools.Error, aetools.decodeerror(_arguments)
-               # XXXX Optionally decode result
-               if _arguments.has_key('----'):
-                       return _arguments['----']
-
-       def Get_nonsimple_classes(self, _no_object=None, _attributes={}, **_arguments):
-               """Get nonsimple classes: Returns an alphabetical list of classes with member functions, bases classes, or subclasses
-               Keyword argument _attributes: AppleEvent attribute dictionary
-               Returns: undocumented, typecode 'list'
-               """
-               _code = 'MMPR'
-               _subcode = 'NsCl'
-
-               if _arguments: raise TypeError, 'No optional args expected'
-               if _no_object != None: raise TypeError, 'No direct arg expected'
-
-
-               _reply, _arguments, _attributes = self.send(_code, _subcode,
-                               _arguments, _attributes)
-               if _arguments.has_key('errn'):
-                       raise aetools.Error, aetools.decodeerror(_arguments)
-               # XXXX Optionally decode result
-               if _arguments.has_key('----'):
-                       return _arguments['----']
-
-       def Get_member_function_names(self, _object, _attributes={}, **_arguments):
-               """Get member function names: Returns a list containing the names of all the member functions of a class object
-               Required argument: must be a class object
-               Keyword argument _attributes: AppleEvent attribute dictionary
-               Returns: undocumented, typecode 'list'
-               """
-               _code = 'MMPR'
-               _subcode = 'MbFN'
-
-               if _arguments: raise TypeError, 'No optional args expected'
-               _arguments['----'] = _object
-
-
-               _reply, _arguments, _attributes = self.send(_code, _subcode,
-                               _arguments, _attributes)
-               if _arguments.has_key('errn'):
-                       raise aetools.Error, aetools.decodeerror(_arguments)
-               # XXXX Optionally decode result
-               if _arguments.has_key('----'):
-                       return _arguments['----']
-
-
-class Access_Paths(aetools.ComponentItem):
-       """Access Paths - Contains the definitions of a project¹s access (search) paths. """
-       want = 'PATH'
-class User_Paths(aetools.NProperty):
-       """User Paths - To add an access path for the source files. """
-       which = 'PA01'
-       want = 'PInf'
-class System_Paths(aetools.NProperty):
-       """System Paths - To add an access path for the include files. (Not supported in Pascal) """
-       which = 'PA03'
-       want = 'PInf'
-class Always_Full_Search(aetools.NProperty):
-       """Always Full Search - To force the compiler to search for system includes like it searches for user includes. """
-       which = 'PA02'
-       want = 'bool'
-class Convert_Paths(aetools.NProperty):
-       """Convert Paths - Enables conversion of DOS & Unix-style relative paths when searching for files. """
-       which = 'PA04'
-       want = 'bool'
-
-class Browser_Coloring(aetools.ComponentItem):
-       """Browser Coloring - Colors for Browser symbols. """
-       want = 'BRKW'
-class Browser_Keywords(aetools.NProperty):
-       """Browser Keywords - Mark Browser symbols with color. """
-       which = 'BW00'
-       want = 'bool'
-class Classes_Color(aetools.NProperty):
-       """Classes Color - The color for classes. """
-       which = 'BW01'
-       want = 'cRGB'
-class Constants_Color(aetools.NProperty):
-       """Constants Color - The color for constants. """
-       which = 'BW02'
-       want = 'cRGB'
-class Enums_Color(aetools.NProperty):
-       """Enums Color - The color for enums. """
-       which = 'BW03'
-       want = 'cRGB'
-class Functions_Color(aetools.NProperty):
-       """Functions Color - Set color for functions. """
-       which = 'BW04'
-       want = 'cRGB'
-class Globals_Color(aetools.NProperty):
-       """Globals Color - The color for globals """
-       which = 'BW05'
-       want = 'cRGB'
-class Macros_Color(aetools.NProperty):
-       """Macros Color - The color for macros. """
-       which = 'BW06'
-       want = 'cRGB'
-class Templates_Color(aetools.NProperty):
-       """Templates Color - Set color for templates. """
-       which = 'BW07'
-       want = 'cRGB'
-class Typedefs_Color(aetools.NProperty):
-       """Typedefs Color - The color for typedefs. """
-       which = 'BW08'
-       want = 'cRGB'
-class Template_Commands_in_Menu(aetools.NProperty):
-       """Template Commands in Menu - Include template commands in context menus """
-       which = 'BW10'
-       want = 'bool'
-
-class Build_Extras(aetools.ComponentItem):
-       """Build Extras -  """
-       want = 'LXTR'
-class Browser_Active(aetools.NProperty):
-       """Browser Active - Allow the collection of browser information. """
-       which = 'EX09'
-       want = 'bool'
-class Modification_Date_Caching(aetools.NProperty):
-       """Modification Date Caching -  """
-       which = 'EX04'
-       want = 'bool'
-class Dump_Browser_Info(aetools.NProperty):
-       """Dump Browser Info -  """
-       which = 'EX30'
-       want = 'bool'
-class Cache_Subproject_Data(aetools.NProperty):
-       """Cache Subproject Data -  """
-       which = 'EX31'
-       want = 'bool'
-
-class Build_Settings(aetools.ComponentItem):
-       """Build Settings - Build Settings preferences. """
-       want = 'BSTG'
-class Completion_Sound(aetools.NProperty):
-       """Completion Sound - Play a sound when finished a Bring Up To Date or Make command. """
-       which = 'BX01'
-       want = 'bool'
-class Success_Sound(aetools.NProperty):
-       """Success Sound - The sound CodeWarrior plays when it successfully finishes a Bring Up To Date or Make command. """
-       which = 'BX02'
-       want = 'TEXT'
-class Failure_Sound(aetools.NProperty):
-       """Failure Sound - The sound CodeWarrior plays when it cannot finish a Bring Up To Date or Make command. """
-       which = 'BX03'
-       want = 'TEXT'
-class Save_Before_Building(aetools.NProperty):
-       """Save Before Building - Save open editor files before build operations """
-       which = 'BX07'
-       want = 'bool'
-class Build_Before_Running(aetools.NProperty):
-       """Build Before Running - Build the target before running. """
-       which = 'BX04'
-       want = 'BXbr'
-class Include_Cache_Size(aetools.NProperty):
-       """Include Cache Size - Include file cache size. """
-       which = 'BX05'
-       want = 'long'
-class Compiler_Thread_Stack_Size(aetools.NProperty):
-       """Compiler Thread Stack Size - Compiler Thread Stack Size """
-       which = 'BX06'
-       want = 'long'
-
-class Custom_Keywords(aetools.ComponentItem):
-       """Custom Keywords -  """
-       want = 'CUKW'
-class Custom_Color_1(aetools.NProperty):
-       """Custom Color 1 - The color for the first set of custom keywords. """
-       which = 'GH05'
-       want = 'cRGB'
-class Custom_Color_2(aetools.NProperty):
-       """Custom Color 2 - The color for the second set custom keywords. """
-       which = 'GH06'
-       want = 'cRGB'
-class Custom_Color_3(aetools.NProperty):
-       """Custom Color 3 - The color for the third set of custom keywords. """
-       which = 'GH07'
-       want = 'cRGB'
-class Custom_Color_4(aetools.NProperty):
-       """Custom Color 4 - The color for the fourth set of custom keywords. """
-       which = 'GH08'
-       want = 'cRGB'
-
-class Debugger_Display(aetools.ComponentItem):
-       """Debugger Display - Debugger Display preferences """
-       want = 'DbDS'
-class Show_Variable_Types(aetools.NProperty):
-       """Show Variable Types - Show variable types by default. """
-       which = 'Db01'
-       want = 'bool'
-class Show_Locals(aetools.NProperty):
-       """Show Locals - Show locals by default """
-       which = 'Db09'
-       want = 'bool'
-class Sort_By_Method(aetools.NProperty):
-       """Sort By Method - Sort functions by method. """
-       which = 'Db02'
-       want = 'bool'
-class Use_RTTI(aetools.NProperty):
-       """Use RTTI - Enable RunTime Type Information. """
-       which = 'Db03'
-       want = 'bool'
-class Threads_in_Window(aetools.NProperty):
-       """Threads in Window - Show threads in separate windows. """
-       which = 'Db04'
-       want = 'bool'
-class Variable_Hints(aetools.NProperty):
-       """Variable Hints - Show variable hints. """
-       which = 'Db05'
-       want = 'bool'
-class Watchpoint_Hilite(aetools.NProperty):
-       """Watchpoint Hilite - Watchpoint hilite color. """
-       which = 'Db06'
-       want = 'cRGB'
-class Variable_Changed_Hilite(aetools.NProperty):
-       """Variable Changed Hilite - Variable changed hilite color. """
-       which = 'Db07'
-       want = 'cRGB'
-class Default_Array_Size(aetools.NProperty):
-       """Default Array Size - Controls whether CodeWarrior uses its own integrated editor or an external application for editing text files. """
-       which = 'Db08'
-       want = 'shor'
-class Show_As_Decimal(aetools.NProperty):
-       """Show As Decimal - Show variable values as decimal by default """
-       which = 'Db10'
-       want = 'bool'
-
-class Debugger_Global(aetools.ComponentItem):
-       """Debugger Global - Debugger Global preferences """
-       want = 'DbGL'
-class Cache_Edited_Files(aetools.NProperty):
-       """Cache Edited Files - Cache edit files between debug sessions """
-       which = 'Dg12'
-       want = 'bool'
-class File_Cache_Duration(aetools.NProperty):
-       """File Cache Duration - Duration to keep files in cache (in days) """
-       which = 'Dg13'
-       want = 'shor'
-class Ignore_Mod_Dates(aetools.NProperty):
-       """Ignore Mod Dates - Ignore modification dates of files. """
-       which = 'Dg01'
-       want = 'bool'
-class Open_All_Classes(aetools.NProperty):
-       """Open All Classes - Open all Java class files. """
-       which = 'Dg02'
-       want = 'bool'
-class Launch_Apps_on_Open(aetools.NProperty):
-       """Launch Apps on Open - Launch applications on the opening of sym files. """
-       which = 'Dg03'
-       want = 'bool'
-class Confirm_Kill(aetools.NProperty):
-       """Confirm Kill - Confirm the \8ckilling¹ of the process. """
-       which = 'Dg04'
-       want = 'bool'
-class Stop_at_Main(aetools.NProperty):
-       """Stop at Main - Stop to debug on the main() function. """
-       which = 'Dg05'
-       want = 'bool'
-class Select_Stack_Crawl(aetools.NProperty):
-       """Select Stack Crawl - Select the stack crawl. """
-       which = 'Dg06'
-       want = 'bool'
-class Dont_Step_in_Runtime(aetools.NProperty):
-       """Dont Step in Runtime - Don¹t step into runtime code when debugging. """
-       which = 'Dg07'
-       want = 'bool'
-class Auto_Target_Libraries(aetools.NProperty):
-       """Auto Target Libraries - Automatically target libraries when debugging """
-       which = 'Dg11'
-       want = 'bool'
-
-class Debugger_Target(aetools.ComponentItem):
-       """Debugger Target - Debugger Target preferences """
-       want = 'DbTG'
-class Log_System_Messages(aetools.NProperty):
-       """Log System Messages - Log all system messages while debugging. """
-       which = 'Dt02'
-       want = 'bool'
-class Relocated_Executable_Path(aetools.NProperty):
-       """Relocated Executable Path - Path to location of relocated libraries, code resources or remote debugging folder """
-       which = 'Dt10'
-       want = 'RlPt'
-class Update_Data_While_Running(aetools.NProperty):
-       """Update Data While Running - Should pause to update data while running """
-       which = 'Dt08'
-       want = 'bool'
-class Data_Update_Interval(aetools.NProperty):
-       """Data Update Interval - How often to update the data while running (in seconds) """
-       which = 'Dt09'
-       want = 'long'
-# repeated property Auto_Target_Libraries Automatically target libraries when debugging
-class Stop_at_temp_breakpoint(aetools.NProperty):
-       """Stop at temp breakpoint - Stop at a temp breakpoint on program launch. Set breakpoint type in Temp Breakpoint Type AppleEvent. """
-       which = 'Dt13'
-       want = 'bool'
-class Temp_breakpoint_names(aetools.NProperty):
-       """Temp breakpoint names - Comma separated list of names to attempt to stop at on program launch. First symbol to resolve in list is the temp BP that will be set. """
-       which = 'Dt14'
-       want = 'ctxt'
-class Cache_symbolics(aetools.NProperty):
-       """Cache symbolics - Cache symbolics between runs when executable doesn¹t change, else release symbolics files after killing process. """
-       which = 'Dt15'
-       want = 'bool'
-class Temp_Breakpoint_Type(aetools.NProperty):
-       """Temp Breakpoint Type - Type of temp breakpoint to set on program launch. """
-       which = 'Dt16'
-       want = 'TmpB'
-
-class Debugger_Windowing(aetools.ComponentItem):
-       """Debugger Windowing -  """
-       want = 'DbWN'
-class Debugging_Start_Action(aetools.NProperty):
-       """Debugging Start Action - What action to take when debug session starts """
-       which = 'Dw01'
-       want = 'DbSA'
-class Do_Nothing_To_Projects(aetools.NProperty):
-       """Do Nothing To Projects - Suppress debugging start action for project windows """
-       which = 'Dw02'
-       want = 'bool'
-
-class Editor(aetools.ComponentItem):
-       """Editor -  """
-       want = 'EDTR'
-class Flash_Delay(aetools.NProperty):
-       """Flash Delay - The amount of time, in sixtieths of a second, the editor highlights a matching bracket. """
-       which = 'ED01'
-       want = 'long'
-class Dynamic_Scroll(aetools.NProperty):
-       """Dynamic Scroll - Display a window¹s contents as you move the scroll box. """
-       which = 'ED02'
-       want = 'bool'
-class Balance(aetools.NProperty):
-       """Balance - Flash the matching opening bracket when you type a closing bracket. """
-       which = 'ED03'
-       want = 'bool'
-class Use_Drag__26__Drop_Editing(aetools.NProperty):
-       """Use Drag & Drop Editing - Use Drag & Drop text editing. """
-       which = 'ED04'
-       want = 'bool'
-class Sort_Function_Popup(aetools.NProperty):
-       """Sort Function Popup -  """
-       which = 'ED06'
-       want = 'bool'
-class Use_Multiple_Undo(aetools.NProperty):
-       """Use Multiple Undo -  """
-       which = 'ED07'
-       want = 'bool'
-class Relaxed_C_Popup_Parsing(aetools.NProperty):
-       """Relaxed C Popup Parsing - Relax the function parser for C source files """
-       which = 'ED15'
-       want = 'bool'
-class Left_Margin_Line_Select(aetools.NProperty):
-       """Left Margin Line Select - Clicking in the left margin selects lines """
-       which = 'ED16'
-       want = 'bool'
-class Default_Text_File_Format(aetools.NProperty):
-       """Default Text File Format - Default text file format (i.e. which type of line endings to use) """
-       which = 'ED17'
-       want = 'TxtF'
-class Remember_Font(aetools.NProperty):
-       """Remember Font - Display a source file with its own font settings. """
-       which = 'ED08'
-       want = 'bool'
-class Remember_Selection(aetools.NProperty):
-       """Remember Selection - Restore the previous selection in a file when you open it. """
-       which = 'ED09'
-       want = 'bool'
-class Remember_Window(aetools.NProperty):
-       """Remember Window - Restore the last size and position for a source file window when you open it. """
-       which = 'ED10'
-       want = 'bool'
-class Main_Text_Color(aetools.NProperty):
-       """Main Text Color - Main, default, color for text. """
-       which = 'ED12'
-       want = 'cRGB'
-class Background_Color(aetools.NProperty):
-       """Background Color - Color of the background of editor windows. """
-       which = 'ED13'
-       want = 'cRGB'
-class Context_Popup_Delay(aetools.NProperty):
-       """Context Popup Delay - The amount of time, in sixtieths of a second, before the context popup is displayed if you click and hold on a browser symbol. """
-       which = 'ED14'
-       want = 'long'
-
-class Environment_Variable(aetools.ComponentItem):
-       """Environment Variable - Environment variable for host OS """
-       want = 'EnvV'
-class name(aetools.NProperty):
-       """name -  """
-       which = 'pnam'
-       want = 'TEXT'
-class value(aetools.NProperty):
-       """value - Value of the environment variable """
-       which = 'Valu'
-       want = 'TEXT'
-
-class Error_Information(aetools.ComponentItem):
-       """Error Information - Describes a single error or warning from the compiler or the linker. """
-       want = 'ErrM'
-class messageKind(aetools.NProperty):
-       """messageKind - The type of error or warning. """
-       which = 'ErrT'
-       want = 'ErrT'
-class message(aetools.NProperty):
-       """message - The error or warning message. """
-       which = 'ErrS'
-       want = 'TEXT'
-class disk_file(aetools.NProperty):
-       """disk file - The file where the error occurred.  May not be returned for certain kinds of errors (eg, link errors). """
-       which = 'file'
-       want = 'fss '
-class lineNumber(aetools.NProperty):
-       """lineNumber - The line in the file where the error occurred.  May not be returned for certain kinds of errors (eg, link errors). """
-       which = 'ErrL'
-       want = 'long'
-
-class Extras(aetools.ComponentItem):
-       """Extras -  """
-       want = 'GXTR'
-class Automatic_Toolbar_Help(aetools.NProperty):
-       """Automatic Toolbar Help - Automatically show balloon help in toolbar after delay """
-       which = 'EX19'
-       want = 'bool'
-class External_Reference(aetools.NProperty):
-       """External Reference - Which on-line function reference to use. """
-       which = 'EX08'
-       want = 'RefP'
-class Full_Screen_Zoom(aetools.NProperty):
-       """Full Screen Zoom - Zoom windows to the full screen width. """
-       which = 'EX07'
-       want = 'bool'
-class Recent_Editor_Count(aetools.NProperty):
-       """Recent Editor Count - Maximum number of editor documents to show in the Â³Open Recent² menu """
-       which = 'EX16'
-       want = 'shor'
-class Recent_Project_Count(aetools.NProperty):
-       """Recent Project Count - Maximum number of project documents to show in the Â³Open Recent² menu """
-       which = 'EX17'
-       want = 'shor'
-class Use_Editor_Extensions(aetools.NProperty):
-       """Use Editor Extensions - Controls the use of the Editor Extensions menu """
-       which = 'EX10'
-       want = 'bool'
-class Use_External_Editor(aetools.NProperty):
-       """Use External Editor - Controls whether CodeWarrior uses its own integrated editor or an external application for editing text files. """
-       which = 'EX11'
-       want = 'bool'
-class Use_Script_Menu(aetools.NProperty):
-       """Use Script Menu - Controls the use of the AppleScript menu """
-       which = 'EX12'
-       want = 'bool'
-class Use_ToolServer_Menu(aetools.NProperty):
-       """Use ToolServer Menu - Controls the use of the ToolServer menu """
-       which = 'EX18'
-       want = 'bool'
-
-class File_Mapping(aetools.ComponentItem):
-       """File Mapping -  """
-       want = 'FMap'
-class File_Type(aetools.NProperty):
-       """File Type -  """
-       which = 'PR04'
-       want = 'TEXT'
-class Extension(aetools.NProperty):
-       """Extension -  """
-       which = 'TA02'
-       want = 'TEXT'
-class Precompiled(aetools.NProperty):
-       """Precompiled -  """
-       which = 'TA03'
-       want = 'bool'
-class Resource_File(aetools.NProperty):
-       """Resource File -  """
-       which = 'TA04'
-       want = 'bool'
-class Launchable(aetools.NProperty):
-       """Launchable -  """
-       which = 'TA05'
-       want = 'bool'
-class Ignored_by_Make(aetools.NProperty):
-       """Ignored by Make -  """
-       which = 'TA06'
-       want = 'bool'
-class Compiler(aetools.NProperty):
-       """Compiler -  """
-       which = 'TA07'
-       want = 'TEXT'
-
-class File_Mappings(aetools.ComponentItem):
-       """File Mappings - Mappings of extensions & file types to compilers """
-       want = 'FLMP'
-class Mappings(aetools.NProperty):
-       """Mappings -  """
-       which = 'FMps'
-       want = 'FMap'
-
-class Font(aetools.ComponentItem):
-       """Font -  """
-       want = 'mFNT'
-class Auto_Indent(aetools.NProperty):
-       """Auto Indent - Indent new lines automatically. """
-       which = 'FN01'
-       want = 'bool'
-class Tab_Size(aetools.NProperty):
-       """Tab Size -  """
-       which = 'FN02'
-       want = 'shor'
-class Tab_Indents_Selection(aetools.NProperty):
-       """Tab Indents Selection - Tab indents selection when multiple lines are selected """
-       which = 'FN03'
-       want = 'bool'
-class Tab_Inserts_Spaces(aetools.NProperty):
-       """Tab Inserts Spaces - Insert spaces instead of tab character """
-       which = 'FN04'
-       want = 'bool'
-class Text_Font(aetools.NProperty):
-       """Text Font - The font used in editing windows. """
-       which = 'ptxf'
-       want = 'TEXT'
-class Text_Size(aetools.NProperty):
-       """Text Size - The size of the text in an editing window. """
-       which = 'ptps'
-       want = 'shor'
-
-class Function_Information(aetools.ComponentItem):
-       """Function Information - Describes the location of any function or global data definition within the current project. """
-       want = 'FDef'
-# repeated property disk_file The location on disk of the file containing the definition.
-# repeated property lineNumber The line number where the definition begins.
-
-class Global_Source_Trees(aetools.ComponentItem):
-       """Global Source Trees - Globally-defined source tree roots """
-       want = 'GSTs'
-class Source_Trees(aetools.NProperty):
-       """Source Trees - List of source tree roots """
-       which = 'ST01'
-       want = 'SrcT'
-
-class Path_Information(aetools.ComponentItem):
-       """Path Information - Contains all of the parameters that describe an access path. """
-       want = 'PInf'
-# repeated property name The actual path name.
-class format(aetools.NProperty):
-       """format - Format of the a """
-       which = 'Frmt'
-       want = 'PthF'
-class origin(aetools.NProperty):
-       """origin -  """
-       which = 'Orig'
-       want = 'PPrm'
-class root(aetools.NProperty):
-       """root - Name of the root of the relative path. Pre-defined values are Â³Absolute², Â³Project², Â³CodeWarrior², and  Â³System². Anything else is a user-defined root. """
-       which = 'Root'
-       want = 'TEXT'
-class recursive(aetools.NProperty):
-       """recursive - Will the path be searched recursively?  (Default is true) """
-       which = 'Recu'
-       want = 'bool'
-class host_flags(aetools.NProperty):
-       """host flags - Bit fields enabling the access path for each host OS (1 = Mac OS, 2 = Windows) """
-       which = 'HstF'
-       want = 'long'
-
-class Plugin_Settings(aetools.ComponentItem):
-       """Plugin Settings - Settings for plugin tools """
-       want = 'PSTG'
-class Plugin_Diagnostics_Level(aetools.NProperty):
-       """Plugin Diagnostics Level - Plugin Diagnostics Level is for those who are developing plugins for the IDE and need to debug them. """
-       which = 'PX01'
-       want = 'PXdg'
-class Disable_Third_Party_COM_Plugins(aetools.NProperty):
-       """Disable Third Party COM Plugins - Disable COM plugins from third parties """
-       which = 'PX02'
-       want = 'bool'
-
-class ProjectFile(aetools.ComponentItem):
-       """ProjectFile - A file contained in a project """
-       want = 'SrcF'
-class filetype(aetools.NProperty):
-       """filetype - What kind of file is this ? """
-       which = 'SrcT'
-       want = 'SrcT'
-# repeated property name The file¹s name
-# repeated property disk_file The file¹s location on disk
-class codesize(aetools.NProperty):
-       """codesize - The size of this file¹s code. """
-       which = 'CSiz'
-       want = 'long'
-class datasize(aetools.NProperty):
-       """datasize - The size of this file¹s data. """
-       which = 'DSiz'
-       want = 'long'
-class up_to_date(aetools.NProperty):
-       """up to date - Has the file been compiled since its last modification ? """
-       which = 'UpTD'
-       want = 'bool'
-class symbols(aetools.NProperty):
-       """symbols - Are debugging symbols generated for this file ? """
-       which = 'SymG'
-       want = 'bool'
-class weak_link(aetools.NProperty):
-       """weak link - Is this file imported weakly into the project ? [PowerPC only] """
-       which = 'Weak'
-       want = 'bool'
-class initialize_before(aetools.NProperty):
-       """initialize before - Initialize the shared library before the main application. """
-       which = 'Bfor'
-       want = 'bool'
-class includes(aetools.NProperty):
-       """includes -  """
-       which = 'IncF'
-       want = 'fss '
-
-class Relative_Path(aetools.ComponentItem):
-       """Relative Path - Relative path from some root """
-       want = 'RlPt'
-# repeated property name relative path from the root
-# repeated property format Format of the relative path
-# repeated property origin Origin of the relative path
-# repeated property root Name of user-defined root
-
-class Runtime_Settings(aetools.ComponentItem):
-       """Runtime Settings - Runtime settings """
-       want = 'RSTG'
-class Host_Application(aetools.NProperty):
-       """Host Application - Host application for running/debugging libraries and code resources """
-       which = 'RS01'
-       want = 'RlPt'
-class Command_Line_Arguments(aetools.NProperty):
-       """Command Line Arguments - Extra command line args to pass to executable """
-       which = 'RS02'
-       want = 'TEXT'
-class Working_Directory(aetools.NProperty):
-       """Working Directory - Working directory to use when running the executable """
-       which = 'RS03'
-       want = 'TEXT'
-class Environment_Variables(aetools.NProperty):
-       """Environment Variables - Environment variables to use when running the executable """
-       which = 'RS04'
-       want = 'EnvV'
-
-class Segment(aetools.ComponentItem):
-       """Segment - A segment or group in the project """
-       want = 'Seg '
-# repeated property name 
-class filecount(aetools.NProperty):
-       """filecount -  """
-       which = 'NumF'
-       want = 'shor'
-class seg_2d_preloaded(aetools.NProperty):
-       """seg-preloaded - Is the segment preloaded ? [68K only] """
-       which = 'Prel'
-       want = 'bool'
-class seg_2d_protected(aetools.NProperty):
-       """seg-protected - Is the segment protected ? [68K only] """
-       which = 'Prot'
-       want = 'bool'
-class seg_2d_locked(aetools.NProperty):
-       """seg-locked - Is the segment locked ? [68K only] """
-       which = 'PLck'
-       want = 'bool'
-class seg_2d_purgeable(aetools.NProperty):
-       """seg-purgeable - Is the segment purgeable ? [68K only] """
-       which = 'Purg'
-       want = 'bool'
-class seg_2d_system_heap(aetools.NProperty):
-       """seg-system heap - Is the segment loaded into the system heap ? [68K only] """
-       which = 'SysH'
-       want = 'bool'
-
-class Shielded_Folder(aetools.ComponentItem):
-       """Shielded Folder -  """
-       want = 'SFit'
-class Expression_To_Match(aetools.NProperty):
-       """Expression To Match - Regular expression which describes folders to skip """
-       which = 'SF01'
-       want = 'TEXT'
-class Skip_Project_Operations(aetools.NProperty):
-       """Skip Project Operations - Matching folders will be skipped during project operations """
-       which = 'SF02'
-       want = 'bool'
-class Skip_Find_And_Compare_Operations(aetools.NProperty):
-       """Skip Find And Compare Operations - Matching folders will be skipped during find and compare operations """
-       which = 'SF03'
-       want = 'bool'
-
-class Shielded_Folders(aetools.ComponentItem):
-       """Shielded Folders - Folders skipped when performing project and find-and-compare operations """
-       want = 'SHFL'
-class Shielded_Items(aetools.NProperty):
-       """Shielded Items -  """
-       which = 'SFis'
-       want = 'SFit'
-
-class Source_Tree(aetools.ComponentItem):
-       """Source Tree - User-defined source tree root """
-       want = 'SrcT'
-# repeated property name name of the user-defined source tree root
-class path(aetools.NProperty):
-       """path - path for the user-defined source tree root """
-       which = 'Path'
-       want = 'TEXT'
-class path_kind(aetools.NProperty):
-       """path kind - kind of path """
-       which = 'Kind'
-       want = 'STKd'
-# repeated property format Format of the absolute path
-
-class Syntax_Coloring(aetools.ComponentItem):
-       """Syntax Coloring -  """
-       want = 'SNTX'
-class Syntax_Coloring(aetools.NProperty):
-       """Syntax Coloring - Mark keywords and comments with color. """
-       which = 'GH01'
-       want = 'bool'
-class Comment_Color(aetools.NProperty):
-       """Comment Color - The color for comments. """
-       which = 'GH02'
-       want = 'cRGB'
-class Keyword_Color(aetools.NProperty):
-       """Keyword Color - The color for language keywords. """
-       which = 'GH03'
-       want = 'cRGB'
-class String_Color(aetools.NProperty):
-       """String Color - The color for strings. """
-       which = 'GH04'
-       want = 'cRGB'
-# repeated property Custom_Color_1 The color for the first set of custom keywords.
-# repeated property Custom_Color_2 The color for the second set custom keywords.
-# repeated property Custom_Color_3 The color for the third set of custom keywords.
-# repeated property Custom_Color_4 The color for the fourth set of custom keywords.
-
-class Target_Settings(aetools.ComponentItem):
-       """Target Settings - Contains the definitions of a project¹s target. """
-       want = 'TARG'
-class Linker(aetools.NProperty):
-       """Linker - The name of the current linker. """
-       which = 'TA01'
-       want = 'TEXT'
-class Pre_Linker(aetools.NProperty):
-       """Pre Linker -  """
-       which = 'TA13'
-       want = 'TEXT'
-class Post_Linker(aetools.NProperty):
-       """Post Linker -  """
-       which = 'TA09'
-       want = 'TEXT'
-class Target_Name(aetools.NProperty):
-       """Target Name -  """
-       which = 'TA10'
-       want = 'TEXT'
-class Output_Directory_Path(aetools.NProperty):
-       """Output Directory Path - Path to output directory. Usage of this property is deprecated. Use the Â³Output Directory Location² property instead. """
-       which = 'TA11'
-       want = 'TEXT'
-class Output_Directory_Origin(aetools.NProperty):
-       """Output Directory Origin - Origin of path to output directory. Usage of this property is deprecated. Use the Â³Output Directory Location² property instead. """
-       which = 'TA12'
-       want = 'PPrm'
-class Output_Directory_Location(aetools.NProperty):
-       """Output Directory Location - Location of output directory """
-       which = 'TA16'
-       want = 'RlPt'
-class Use_Relative_Paths(aetools.NProperty):
-       """Use Relative Paths - Save project entries using relative paths """
-       which = 'TA15'
-       want = 'bool'
-
-class Target_Source_Trees(aetools.ComponentItem):
-       """Target Source Trees - Target-specific user-defined source tree roots """
-       want = 'TSTs'
-# repeated property Source_Trees List of source tree roots
-
-class VCS_Setup(aetools.ComponentItem):
-       """VCS Setup - The version control system preferences. """
-       want = 'VCSs'
-class VCS_Active(aetools.NProperty):
-       """VCS Active - Use Version Control """
-       which = 'VC01'
-       want = 'bool'
-class Use_Global_Settings(aetools.NProperty):
-       """Use Global Settings - Use the global VCS settings by default """
-       which = 'VC11'
-       want = 'bool'
-class Connection_Method(aetools.NProperty):
-       """Connection Method - Name of Version Control System to use. """
-       which = 'VC02'
-       want = 'TEXT'
-class Username(aetools.NProperty):
-       """Username - The user name for the VCS. """
-       which = 'VC03'
-       want = 'TEXT'
-class Password(aetools.NProperty):
-       """Password - The password for the VCS. """
-       which = 'VC04'
-       want = 'TEXT'
-class Auto_Connect(aetools.NProperty):
-       """Auto Connect - Automatically connect to database when starting. """
-       which = 'VC05'
-       want = 'bool'
-class Store_Password(aetools.NProperty):
-       """Store Password - Store the password. """
-       which = 'VC06'
-       want = 'bool'
-class Always_Prompt(aetools.NProperty):
-       """Always Prompt - Always show login dialog """
-       which = 'VC07'
-       want = 'bool'
-class Mount_Volume(aetools.NProperty):
-       """Mount Volume - Attempt to mount the database volume if it isn't available. """
-       which = 'VC08'
-       want = 'bool'
-class Database_Path(aetools.NProperty):
-       """Database Path - Path to the VCS database. """
-       which = 'VC09'
-       want = 'RlPt'
-class Local_Path(aetools.NProperty):
-       """Local Path - Path to the local root """
-       which = 'VC10'
-       want = 'RlPt'
-
-class _class(aetools.ComponentItem):
-       """class - A class, struct, or record type in the current project. """
-       want = 'Clas'
-# repeated property name 
-class language(aetools.NProperty):
-       """language - Implementation language of this class """
-       which = 'Lang'
-       want = 'Lang'
-class declaration_file(aetools.NProperty):
-       """declaration file - Source file containing the class declaration """
-       which = 'DcFl'
-       want = 'fss '
-class declaration_start_offset(aetools.NProperty):
-       """declaration start offset - Start of class declaration source code """
-       which = 'DcSt'
-       want = 'long'
-class declaration_end_offset(aetools.NProperty):
-       """declaration end offset - End of class declaration """
-       which = 'DcEn'
-       want = 'long'
-class subclasses(aetools.NProperty):
-       """subclasses - the immediate subclasses of this class """
-       which = 'SubC'
-       want = 'Clas'
-class all_subclasses(aetools.NProperty):
-       """all subclasses - the classes directly or indirectly derived from this class """
-       which = 'SubA'
-       want = 'Clas'
-#        element 'BsCl' as ['indx']
-#        element 'MbFn' as ['indx', 'name']
-#        element 'DtMb' as ['indx', 'name']
-
-classes = _class
-
-class member_function(aetools.ComponentItem):
-       """member function - A class member function or method. """
-       want = 'MbFn'
-# repeated property name 
-class access(aetools.NProperty):
-       """access -  """
-       which = 'Acce'
-       want = 'Acce'
-class virtual(aetools.NProperty):
-       """virtual -  """
-       which = 'Virt'
-       want = 'bool'
-class static(aetools.NProperty):
-       """static -  """
-       which = 'Stat'
-       want = 'bool'
-# repeated property declaration_file Source file containing the member function declaration
-# repeated property declaration_start_offset start of member function declaration source code
-# repeated property declaration_end_offset end of member function declaration
-class implementation_file(aetools.NProperty):
-       """implementation file - Source file containing the member function definition """
-       which = 'DfFl'
-       want = 'fss '
-class implementation_start_offset(aetools.NProperty):
-       """implementation start offset - start of member function definition source code """
-       which = 'DfSt'
-       want = 'long'
-class implementation_end_offset(aetools.NProperty):
-       """implementation end offset - end of member function definition """
-       which = 'DfEn'
-       want = 'long'
-
-member_functions = member_function
-
-class data_member(aetools.ComponentItem):
-       """data member - A class data member or field """
-       want = 'DtMb'
-# repeated property name 
-# repeated property access 
-# repeated property static 
-# repeated property declaration_start_offset 
-# repeated property declaration_end_offset 
-
-data_members = data_member
-
-class base_class(aetools.ComponentItem):
-       """base class - A base class or super class of a class """
-       want = 'BsCl'
-class _class(aetools.NProperty):
-       """class - The class object corresponding to this base class """
-       which = 'Clas'
-       want = 'obj '
-# repeated property access 
-# repeated property virtual 
-
-base_classes = base_class
-
-class browser_catalog(aetools.ComponentItem):
-       """browser catalog - The browser symbol catalog for the current project """
-       want = 'Cata'
-#        element 'Clas' as ['indx', 'name']
-Access_Paths._propdict = {
-       'User_Paths' : User_Paths,
-       'System_Paths' : System_Paths,
-       'Always_Full_Search' : Always_Full_Search,
-       'Convert_Paths' : Convert_Paths,
-}
-Access_Paths._elemdict = {
-}
-Browser_Coloring._propdict = {
-       'Browser_Keywords' : Browser_Keywords,
-       'Classes_Color' : Classes_Color,
-       'Constants_Color' : Constants_Color,
-       'Enums_Color' : Enums_Color,
-       'Functions_Color' : Functions_Color,
-       'Globals_Color' : Globals_Color,
-       'Macros_Color' : Macros_Color,
-       'Templates_Color' : Templates_Color,
-       'Typedefs_Color' : Typedefs_Color,
-       'Template_Commands_in_Menu' : Template_Commands_in_Menu,
-}
-Browser_Coloring._elemdict = {
-}
-Build_Extras._propdict = {
-       'Browser_Active' : Browser_Active,
-       'Modification_Date_Caching' : Modification_Date_Caching,
-       'Dump_Browser_Info' : Dump_Browser_Info,
-       'Cache_Subproject_Data' : Cache_Subproject_Data,
-}
-Build_Extras._elemdict = {
-}
-Build_Settings._propdict = {
-       'Completion_Sound' : Completion_Sound,
-       'Success_Sound' : Success_Sound,
-       'Failure_Sound' : Failure_Sound,
-       'Save_Before_Building' : Save_Before_Building,
-       'Build_Before_Running' : Build_Before_Running,
-       'Include_Cache_Size' : Include_Cache_Size,
-       'Compiler_Thread_Stack_Size' : Compiler_Thread_Stack_Size,
-}
-Build_Settings._elemdict = {
-}
-Custom_Keywords._propdict = {
-       'Custom_Color_1' : Custom_Color_1,
-       'Custom_Color_2' : Custom_Color_2,
-       'Custom_Color_3' : Custom_Color_3,
-       'Custom_Color_4' : Custom_Color_4,
-}
-Custom_Keywords._elemdict = {
-}
-Debugger_Display._propdict = {
-       'Show_Variable_Types' : Show_Variable_Types,
-       'Show_Locals' : Show_Locals,
-       'Sort_By_Method' : Sort_By_Method,
-       'Use_RTTI' : Use_RTTI,
-       'Threads_in_Window' : Threads_in_Window,
-       'Variable_Hints' : Variable_Hints,
-       'Watchpoint_Hilite' : Watchpoint_Hilite,
-       'Variable_Changed_Hilite' : Variable_Changed_Hilite,
-       'Default_Array_Size' : Default_Array_Size,
-       'Show_As_Decimal' : Show_As_Decimal,
-}
-Debugger_Display._elemdict = {
-}
-Debugger_Global._propdict = {
-       'Cache_Edited_Files' : Cache_Edited_Files,
-       'File_Cache_Duration' : File_Cache_Duration,
-       'Ignore_Mod_Dates' : Ignore_Mod_Dates,
-       'Open_All_Classes' : Open_All_Classes,
-       'Launch_Apps_on_Open' : Launch_Apps_on_Open,
-       'Confirm_Kill' : Confirm_Kill,
-       'Stop_at_Main' : Stop_at_Main,
-       'Select_Stack_Crawl' : Select_Stack_Crawl,
-       'Dont_Step_in_Runtime' : Dont_Step_in_Runtime,
-       'Auto_Target_Libraries' : Auto_Target_Libraries,
-}
-Debugger_Global._elemdict = {
-}
-Debugger_Target._propdict = {
-       'Log_System_Messages' : Log_System_Messages,
-       'Relocated_Executable_Path' : Relocated_Executable_Path,
-       'Update_Data_While_Running' : Update_Data_While_Running,
-       'Data_Update_Interval' : Data_Update_Interval,
-       'Auto_Target_Libraries' : Auto_Target_Libraries,
-       'Stop_at_temp_breakpoint' : Stop_at_temp_breakpoint,
-       'Temp_breakpoint_names' : Temp_breakpoint_names,
-       'Cache_symbolics' : Cache_symbolics,
-       'Temp_Breakpoint_Type' : Temp_Breakpoint_Type,
-}
-Debugger_Target._elemdict = {
-}
-Debugger_Windowing._propdict = {
-       'Debugging_Start_Action' : Debugging_Start_Action,
-       'Do_Nothing_To_Projects' : Do_Nothing_To_Projects,
-}
-Debugger_Windowing._elemdict = {
-}
-Editor._propdict = {
-       'Flash_Delay' : Flash_Delay,
-       'Dynamic_Scroll' : Dynamic_Scroll,
-       'Balance' : Balance,
-       'Use_Drag__26__Drop_Editing' : Use_Drag__26__Drop_Editing,
-       'Sort_Function_Popup' : Sort_Function_Popup,
-       'Use_Multiple_Undo' : Use_Multiple_Undo,
-       'Relaxed_C_Popup_Parsing' : Relaxed_C_Popup_Parsing,
-       'Left_Margin_Line_Select' : Left_Margin_Line_Select,
-       'Default_Text_File_Format' : Default_Text_File_Format,
-       'Remember_Font' : Remember_Font,
-       'Remember_Selection' : Remember_Selection,
-       'Remember_Window' : Remember_Window,
-       'Main_Text_Color' : Main_Text_Color,
-       'Background_Color' : Background_Color,
-       'Context_Popup_Delay' : Context_Popup_Delay,
-}
-Editor._elemdict = {
-}
-Environment_Variable._propdict = {
-       'name' : name,
-       'value' : value,
-}
-Environment_Variable._elemdict = {
-}
-Error_Information._propdict = {
-       'messageKind' : messageKind,
-       'message' : message,
-       'disk_file' : disk_file,
-       'lineNumber' : lineNumber,
-}
-Error_Information._elemdict = {
-}
-Extras._propdict = {
-       'Automatic_Toolbar_Help' : Automatic_Toolbar_Help,
-       'External_Reference' : External_Reference,
-       'Full_Screen_Zoom' : Full_Screen_Zoom,
-       'Recent_Editor_Count' : Recent_Editor_Count,
-       'Recent_Project_Count' : Recent_Project_Count,
-       'Use_Editor_Extensions' : Use_Editor_Extensions,
-       'Use_External_Editor' : Use_External_Editor,
-       'Use_Script_Menu' : Use_Script_Menu,
-       'Use_ToolServer_Menu' : Use_ToolServer_Menu,
-}
-Extras._elemdict = {
-}
-File_Mapping._propdict = {
-       'File_Type' : File_Type,
-       'Extension' : Extension,
-       'Precompiled' : Precompiled,
-       'Resource_File' : Resource_File,
-       'Launchable' : Launchable,
-       'Ignored_by_Make' : Ignored_by_Make,
-       'Compiler' : Compiler,
-}
-File_Mapping._elemdict = {
-}
-File_Mappings._propdict = {
-       'Mappings' : Mappings,
-}
-File_Mappings._elemdict = {
-}
-Font._propdict = {
-       'Auto_Indent' : Auto_Indent,
-       'Tab_Size' : Tab_Size,
-       'Tab_Indents_Selection' : Tab_Indents_Selection,
-       'Tab_Inserts_Spaces' : Tab_Inserts_Spaces,
-       'Text_Font' : Text_Font,
-       'Text_Size' : Text_Size,
-}
-Font._elemdict = {
-}
-Function_Information._propdict = {
-       'disk_file' : disk_file,
-       'lineNumber' : lineNumber,
-}
-Function_Information._elemdict = {
-}
-Global_Source_Trees._propdict = {
-       'Source_Trees' : Source_Trees,
-}
-Global_Source_Trees._elemdict = {
-}
-Path_Information._propdict = {
-       'name' : name,
-       'format' : format,
-       'origin' : origin,
-       'root' : root,
-       'recursive' : recursive,
-       'host_flags' : host_flags,
-}
-Path_Information._elemdict = {
-}
-Plugin_Settings._propdict = {
-       'Plugin_Diagnostics_Level' : Plugin_Diagnostics_Level,
-       'Disable_Third_Party_COM_Plugins' : Disable_Third_Party_COM_Plugins,
-}
-Plugin_Settings._elemdict = {
-}
-ProjectFile._propdict = {
-       'filetype' : filetype,
-       'name' : name,
-       'disk_file' : disk_file,
-       'codesize' : codesize,
-       'datasize' : datasize,
-       'up_to_date' : up_to_date,
-       'symbols' : symbols,
-       'weak_link' : weak_link,
-       'initialize_before' : initialize_before,
-       'includes' : includes,
-}
-ProjectFile._elemdict = {
-}
-Relative_Path._propdict = {
-       'name' : name,
-       'format' : format,
-       'origin' : origin,
-       'root' : root,
-}
-Relative_Path._elemdict = {
-}
-Runtime_Settings._propdict = {
-       'Host_Application' : Host_Application,
-       'Command_Line_Arguments' : Command_Line_Arguments,
-       'Working_Directory' : Working_Directory,
-       'Environment_Variables' : Environment_Variables,
-}
-Runtime_Settings._elemdict = {
-}
-Segment._propdict = {
-       'name' : name,
-       'filecount' : filecount,
-       'seg_2d_preloaded' : seg_2d_preloaded,
-       'seg_2d_protected' : seg_2d_protected,
-       'seg_2d_locked' : seg_2d_locked,
-       'seg_2d_purgeable' : seg_2d_purgeable,
-       'seg_2d_system_heap' : seg_2d_system_heap,
-}
-Segment._elemdict = {
-}
-Shielded_Folder._propdict = {
-       'Expression_To_Match' : Expression_To_Match,
-       'Skip_Project_Operations' : Skip_Project_Operations,
-       'Skip_Find_And_Compare_Operations' : Skip_Find_And_Compare_Operations,
-}
-Shielded_Folder._elemdict = {
-}
-Shielded_Folders._propdict = {
-       'Shielded_Items' : Shielded_Items,
-}
-Shielded_Folders._elemdict = {
-}
-Source_Tree._propdict = {
-       'name' : name,
-       'path' : path,
-       'path_kind' : path_kind,
-       'format' : format,
-}
-Source_Tree._elemdict = {
-}
-Syntax_Coloring._propdict = {
-       'Syntax_Coloring' : Syntax_Coloring,
-       'Comment_Color' : Comment_Color,
-       'Keyword_Color' : Keyword_Color,
-       'String_Color' : String_Color,
-       'Custom_Color_1' : Custom_Color_1,
-       'Custom_Color_2' : Custom_Color_2,
-       'Custom_Color_3' : Custom_Color_3,
-       'Custom_Color_4' : Custom_Color_4,
-}
-Syntax_Coloring._elemdict = {
-}
-Target_Settings._propdict = {
-       'Linker' : Linker,
-       'Pre_Linker' : Pre_Linker,
-       'Post_Linker' : Post_Linker,
-       'Target_Name' : Target_Name,
-       'Output_Directory_Path' : Output_Directory_Path,
-       'Output_Directory_Origin' : Output_Directory_Origin,
-       'Output_Directory_Location' : Output_Directory_Location,
-       'Use_Relative_Paths' : Use_Relative_Paths,
-}
-Target_Settings._elemdict = {
-}
-Target_Source_Trees._propdict = {
-       'Source_Trees' : Source_Trees,
-}
-Target_Source_Trees._elemdict = {
-}
-VCS_Setup._propdict = {
-       'VCS_Active' : VCS_Active,
-       'Use_Global_Settings' : Use_Global_Settings,
-       'Connection_Method' : Connection_Method,
-       'Username' : Username,
-       'Password' : Password,
-       'Auto_Connect' : Auto_Connect,
-       'Store_Password' : Store_Password,
-       'Always_Prompt' : Always_Prompt,
-       'Mount_Volume' : Mount_Volume,
-       'Database_Path' : Database_Path,
-       'Local_Path' : Local_Path,
-}
-VCS_Setup._elemdict = {
-}
-_class._propdict = {
-       'name' : name,
-       'language' : language,
-       'declaration_file' : declaration_file,
-       'declaration_start_offset' : declaration_start_offset,
-       'declaration_end_offset' : declaration_end_offset,
-       'subclasses' : subclasses,
-       'all_subclasses' : all_subclasses,
-}
-_class._elemdict = {
-       'base_class' : base_class,
-       'member_function' : member_function,
-       'data_member' : data_member,
-}
-member_function._propdict = {
-       'name' : name,
-       'access' : access,
-       'virtual' : virtual,
-       'static' : static,
-       'declaration_file' : declaration_file,
-       'declaration_start_offset' : declaration_start_offset,
-       'declaration_end_offset' : declaration_end_offset,
-       'implementation_file' : implementation_file,
-       'implementation_start_offset' : implementation_start_offset,
-       'implementation_end_offset' : implementation_end_offset,
-}
-member_function._elemdict = {
-}
-data_member._propdict = {
-       'name' : name,
-       'access' : access,
-       'static' : static,
-       'declaration_start_offset' : declaration_start_offset,
-       'declaration_end_offset' : declaration_end_offset,
-}
-data_member._elemdict = {
-}
-base_class._propdict = {
-       '_class' : _class,
-       'access' : access,
-       'virtual' : virtual,
-}
-base_class._elemdict = {
-}
-browser_catalog._propdict = {
-}
-browser_catalog._elemdict = {
-       '_class' : _class,
-}
-_Enum_TmpB = {
-       'User_Specified' : 'Usrs',      # Use user specified symbols when setting temporary breakpoints on program launch.
-       'Default' : 'Dflt',     # Use system default symbols when setting temporary breakpoints on program launch.
-}
-
-_Enum_TxtF = {
-       'MacOS' : 'TxF0',       # MacOS text format
-       'DOS' : 'TxF1', # DOS text format
-       'Unix' : 'TxF2',        # Unix text format
-}
-
-_Enum_savo = {
-       'yes' : 'yes ', # Save changes
-       'no' : 'no  ',  # Do not save changes
-       'ask' : 'ask ', # Ask the user whether to save
-}
-
-_Enum_ErrT = {
-       'information' : 'ErIn', # 
-       'compiler_warning' : 'ErCW',    # 
-       'compiler_error' : 'ErCE',      # 
-       'definition' : 'ErDf',  # 
-       'linker_warning' : 'ErLW',      # 
-       'linker_error' : 'ErLE',        # 
-       'find_result' : 'ErFn', # 
-       'generic_error' : 'ErGn',       # 
-}
-
-_Enum_SrcT = {
-       'source' : 'FTxt',      # A source file (.c, .cp, .p, etc).
-       'unknown' : 'FUnk',     # An unknown file type.
-}
-
-_Enum_PPrm = {
-       'absolute' : 'Abso',    # An absolute path name, including volume name.
-       'project_relative' : 'PRel',    # A path relative to the current project¹s folder.
-       'shell_relative' : 'SRel',      # A path relative to the CodeWarrior\81 folder.
-       'system_relative' : 'YRel',     # A path relative to the system folder
-       'root_relative' : 'RRel',       # 
-}
-
-_Enum_DbSA = {
-       'No_Action' : 'DSA1',   # Don¹t do anything to non-debug windows
-       'Hide_Windows' : 'DSA2',        # Hide non-debugging windows
-       'Collapse_Windows' : 'DSA3',    # Collapse non-debugging windows
-       'Close_Windows' : 'DSA4',       # Close non-debugging windows
-}
-
-_Enum_Lang = {
-       'C' : 'LC  ',   # 
-       'C_2b__2b_' : 'LC++',   # 
-       'Pascal' : 'LP  ',      # 
-       'Object_Pascal' : 'LP++',       # 
-       'Java' : 'LJav',        # 
-       'Assembler' : 'LAsm',   # 
-       'Unknown' : 'L?  ',     # 
-}
-
-_Enum_Acce = {
-       'public' : 'Publ',      # 
-       'protected' : 'Prot',   # 
-       'private' : 'Priv',     # 
-}
-
-_Enum_Inte = {
-       'never_interact' : 'eNvr',      # Never allow user interactions
-       'interact_with_self' : 'eInS',  # Allow user interaction only when an AppleEvent is sent from within CodeWarrior
-       'interact_with_local' : 'eInL', # Allow user interaction when AppleEvents are sent from applications on the same machine (default)
-       'interact_with_all' : 'eInA',   # Allow user interaction from both local and remote AppleEvents
-}
-
-_Enum_DgBL = {
-       'Always' : 'DgB0',      # Always build before debugging.
-       'Never' : 'DgB1',       # Never build before debugging.
-       'Ask' : 'DgB2', # Ask about building before debugging.
-}
-
-_Enum_RefP = {
-       'Think_Reference' : 'DanR',     # 
-       'QuickView' : 'ALTV',   # 
-}
-
-_Enum_PXdg = {
-       'Diagnose_None' : 'PXd1',       # No Plugin Diagnostics.
-       'Diagnose_Errors' : 'PXd2',     # Plugin Diagnostics for errors only.
-       'Diagnose_All' : 'PXd3',        # Plugin Diagnostics for everything.
-}
-
-_Enum_BXbr = {
-       'Always_Build' : 'BXb1',        # Always build the target before running.
-       'Ask_Build' : 'BXb2',   # Ask before building the target when running.
-       'Never_Build' : 'BXb3', # Never before building the target before running.
-}
-
-_Enum_STKd = {
-       'Absolute_Path' : 'STK0',       # The Â³path² property is an absolute path to the location of the source tree.
-       'Registry_Key' : 'STK1',        # The Â³path² property is the name of a registry key that contains the path to the root.
-       'Environment_Variable' : 'STK2',        # The Â³path² property is the name of an environment variable that contains the path to the root.
-}
-
-_Enum_PthF = {
-       'Generic_Path' : 'PFGn',        # 
-       'MacOS_Path' : 'PFMc',  # MacOS path using colon as separator
-       'Windows_Path' : 'PFWn',        # Windows path using backslash as separator
-       'Unix_Path' : 'PFUx',   # Unix path using slash as separator
-}
-
-
-#
-# Indices of types declared in this module
-#
-_classdeclarations = {
-       'DbDS' : Debugger_Display,
-       'TSTs' : Target_Source_Trees,
-       'VCSs' : VCS_Setup,
-       'mFNT' : Font,
-       'BRKW' : Browser_Coloring,
-       'PSTG' : Plugin_Settings,
-       'RSTG' : Runtime_Settings,
-       'MbFn' : member_function,
-       'DbGL' : Debugger_Global,
-       'SHFL' : Shielded_Folders,
-       'EnvV' : Environment_Variable,
-       'TARG' : Target_Settings,
-       'RlPt' : Relative_Path,
-       'BsCl' : base_class,
-       'PInf' : Path_Information,
-       'Seg ' : Segment,
-       'DtMb' : data_member,
-       'SNTX' : Syntax_Coloring,
-       'LXTR' : Build_Extras,
-       'DbWN' : Debugger_Windowing,
-       'PATH' : Access_Paths,
-       'FDef' : Function_Information,
-       'SrcT' : Source_Tree,
-       'SFit' : Shielded_Folder,
-       'FLMP' : File_Mappings,
-       'GXTR' : Extras,
-       'CUKW' : Custom_Keywords,
-       'GSTs' : Global_Source_Trees,
-       'EDTR' : Editor,
-       'DbTG' : Debugger_Target,
-       'ErrM' : Error_Information,
-       'Clas' : _class,
-       'SrcF' : ProjectFile,
-       'BSTG' : Build_Settings,
-       'Cata' : browser_catalog,
-       'FMap' : File_Mapping,
-}
-
-_propdeclarations = {
-       'SymG' : symbols,
-       'CSiz' : codesize,
-       'DfEn' : implementation_end_offset,
-       'DcEn' : declaration_end_offset,
-       'VC10' : Local_Path,
-       'FMps' : Mappings,
-       'VC02' : Connection_Method,
-       'VC03' : Username,
-       'TA02' : Extension,
-       'UpTD' : up_to_date,
-       'VC07' : Always_Prompt,
-       'VC04' : Password,
-       'VC05' : Auto_Connect,
-       'Dg13' : File_Cache_Duration,
-       'Dg12' : Cache_Edited_Files,
-       'Dg11' : Auto_Target_Libraries,
-       'VC09' : Database_Path,
-       'VC06' : Store_Password,
-       'Clas' : _class,
-       'PA02' : Always_Full_Search,
-       'PA03' : System_Paths,
-       'GH04' : String_Color,
-       'PA01' : User_Paths,
-       'TA09' : Post_Linker,
-       'PA04' : Convert_Paths,
-       'Lang' : language,
-       'EX31' : Cache_Subproject_Data,
-       'EX30' : Dump_Browser_Info,
-       'SrcT' : filetype,
-       'ST01' : Source_Trees,
-       'VC11' : Use_Global_Settings,
-       'PLck' : seg_2d_locked,
-       'GH08' : Custom_Color_4,
-       'DfFl' : implementation_file,
-       'GH06' : Custom_Color_2,
-       'GH07' : Custom_Color_3,
-       'Db10' : Show_As_Decimal,
-       'GH05' : Custom_Color_1,
-       'GH02' : Comment_Color,
-       'Kind' : path_kind,
-       'GH01' : Syntax_Coloring,
-       'Dt10' : Relocated_Executable_Path,
-       'BW03' : Enums_Color,
-       'BW00' : Browser_Keywords,
-       'Dt13' : Stop_at_temp_breakpoint,
-       'Dt14' : Temp_breakpoint_names,
-       'Dt15' : Cache_symbolics,
-       'Dt16' : Temp_Breakpoint_Type,
-       'pnam' : name,
-       'DfSt' : implementation_start_offset,
-       'Dw01' : Debugging_Start_Action,
-       'BW08' : Typedefs_Color,
-       'TA16' : Output_Directory_Location,
-       'PR04' : File_Type,
-       'EX04' : Modification_Date_Caching,
-       'RS04' : Environment_Variables,
-       'EX07' : Full_Screen_Zoom,
-       'RS02' : Command_Line_Arguments,
-       'RS03' : Working_Directory,
-       'RS01' : Host_Application,
-       'TA06' : Ignored_by_Make,
-       'TA07' : Compiler,
-       'TA04' : Resource_File,
-       'TA05' : Launchable,
-       'EX08' : External_Reference,
-       'EX09' : Browser_Active,
-       'Prot' : seg_2d_protected,
-       'TA01' : Linker,
-       'Db05' : Variable_Hints,
-       'Db04' : Threads_in_Window,
-       'Db07' : Variable_Changed_Hilite,
-       'Db06' : Watchpoint_Hilite,
-       'Db01' : Show_Variable_Types,
-       'Db03' : Use_RTTI,
-       'Db02' : Sort_By_Method,
-       'file' : disk_file,
-       'SysH' : seg_2d_system_heap,
-       'Db09' : Show_Locals,
-       'Db08' : Default_Array_Size,
-       'GH03' : Keyword_Color,
-       'VC08' : Mount_Volume,
-       'SFis' : Shielded_Items,
-       'SubA' : all_subclasses,
-       'Prel' : seg_2d_preloaded,
-       'Orig' : origin,
-       'Dt02' : Log_System_Messages,
-       'DcFl' : declaration_file,
-       'BW02' : Constants_Color,
-       'Dt09' : Data_Update_Interval,
-       'Dt08' : Update_Data_While_Running,
-       'BW10' : Template_Commands_in_Menu,
-       'BW01' : Classes_Color,
-       'EX17' : Recent_Project_Count,
-       'EX16' : Recent_Editor_Count,
-       'BW07' : Templates_Color,
-       'BW04' : Functions_Color,
-       'EX12' : Use_Script_Menu,
-       'BW05' : Globals_Color,
-       'EX10' : Use_Editor_Extensions,
-       'TA11' : Output_Directory_Path,
-       'TA10' : Target_Name,
-       'TA13' : Pre_Linker,
-       'TA12' : Output_Directory_Origin,
-       'TA15' : Use_Relative_Paths,
-       'EX19' : Automatic_Toolbar_Help,
-       'EX18' : Use_ToolServer_Menu,
-       'ErrT' : messageKind,
-       'ptxf' : Text_Font,
-       'Weak' : weak_link,
-       'ptps' : Text_Size,
-       'Root' : root,
-       'ErrS' : message,
-       'SubC' : subclasses,
-       'Dg04' : Confirm_Kill,
-       'SF01' : Expression_To_Match,
-       'SF02' : Skip_Project_Operations,
-       'SF03' : Skip_Find_And_Compare_Operations,
-       'ED08' : Remember_Font,
-       'ED09' : Remember_Selection,
-       'DSiz' : datasize,
-       'VC01' : VCS_Active,
-       'ErrL' : lineNumber,
-       'ED01' : Flash_Delay,
-       'ED02' : Dynamic_Scroll,
-       'ED03' : Balance,
-       'ED04' : Use_Drag__26__Drop_Editing,
-       'ED06' : Sort_Function_Popup,
-       'ED07' : Use_Multiple_Undo,
-       'Recu' : recursive,
-       'Valu' : value,
-       'Path' : path,
-       'IncF' : includes,
-       'Bfor' : initialize_before,
-       'Dw02' : Do_Nothing_To_Projects,
-       'TA03' : Precompiled,
-       'PX01' : Plugin_Diagnostics_Level,
-       'EX11' : Use_External_Editor,
-       'PX02' : Disable_Third_Party_COM_Plugins,
-       'DcSt' : declaration_start_offset,
-       'Dg01' : Ignore_Mod_Dates,
-       'Dg02' : Open_All_Classes,
-       'Dg03' : Launch_Apps_on_Open,
-       'BW06' : Macros_Color,
-       'Dg05' : Stop_at_Main,
-       'Dg06' : Select_Stack_Crawl,
-       'Dg07' : Dont_Step_in_Runtime,
-       'HstF' : host_flags,
-       'FN04' : Tab_Inserts_Spaces,
-       'FN03' : Tab_Indents_Selection,
-       'FN02' : Tab_Size,
-       'FN01' : Auto_Indent,
-       'Frmt' : format,
-       'Stat' : static,
-       'Virt' : virtual,
-       'Purg' : seg_2d_purgeable,
-       'NumF' : filecount,
-       'Acce' : access,
-       'BX05' : Include_Cache_Size,
-       'BX04' : Build_Before_Running,
-       'BX07' : Save_Before_Building,
-       'BX06' : Compiler_Thread_Stack_Size,
-       'BX01' : Completion_Sound,
-       'BX03' : Failure_Sound,
-       'BX02' : Success_Sound,
-       'ED13' : Background_Color,
-       'ED12' : Main_Text_Color,
-       'ED10' : Remember_Window,
-       'ED17' : Default_Text_File_Format,
-       'ED16' : Left_Margin_Line_Select,
-       'ED15' : Relaxed_C_Popup_Parsing,
-       'ED14' : Context_Popup_Delay,
-}
-
-_compdeclarations = {
-}
-
-_enumdeclarations = {
-       'PPrm' : _Enum_PPrm,
-       'BXbr' : _Enum_BXbr,
-       'PthF' : _Enum_PthF,
-       'Lang' : _Enum_Lang,
-       'PXdg' : _Enum_PXdg,
-       'SrcT' : _Enum_SrcT,
-       'savo' : _Enum_savo,
-       'TmpB' : _Enum_TmpB,
-       'DbSA' : _Enum_DbSA,
-       'ErrT' : _Enum_ErrT,
-       'TxtF' : _Enum_TxtF,
-       'RefP' : _Enum_RefP,
-       'Acce' : _Enum_Acce,
-       'STKd' : _Enum_STKd,
-       'DgBL' : _Enum_DgBL,
-       'Inte' : _Enum_Inte,
-}
diff --git a/Mac/Lib/lib-scriptpackages/CodeWarrior/Standard_Suite.py b/Mac/Lib/lib-scriptpackages/CodeWarrior/Standard_Suite.py
deleted file mode 100644 (file)
index 9d07d90..0000000
+++ /dev/null
@@ -1,410 +0,0 @@
-"""Suite Standard Suite: Common terms for most applications
-Level 1, version 1
-
-Generated from Macintosh HD:SWdev:CodeWarrior 6 MPTP:Metrowerks CodeWarrior:CodeWarrior IDE 4.1B9
-AETE/AEUT resource version 1/0, language 0, script 0
-"""
-
-import aetools
-import MacOS
-
-_code = 'CoRe'
-
-class Standard_Suite_Events:
-
-       _argmap_close = {
-               'saving' : 'savo',
-               'saving_in' : 'kfil',
-       }
-
-       def close(self, _object, _attributes={}, **_arguments):
-               """close: close an object
-               Required argument: the object to close
-               Keyword argument saving: specifies whether or not changes should be saved before closing
-               Keyword argument saving_in: the file in which to save the object
-               Keyword argument _attributes: AppleEvent attribute dictionary
-               """
-               _code = 'core'
-               _subcode = 'clos'
-
-               aetools.keysubst(_arguments, self._argmap_close)
-               _arguments['----'] = _object
-
-               aetools.enumsubst(_arguments, 'savo', _Enum_savo)
-
-               _reply, _arguments, _attributes = self.send(_code, _subcode,
-                               _arguments, _attributes)
-               if _arguments.has_key('errn'):
-                       raise aetools.Error, aetools.decodeerror(_arguments)
-               # XXXX Optionally decode result
-               if _arguments.has_key('----'):
-                       return _arguments['----']
-
-       _argmap_count = {
-               'each' : 'kocl',
-       }
-
-       def count(self, _object, _attributes={}, **_arguments):
-               """count: return the number of elements of a particular class within an object
-               Required argument: the object whose elements are to be counted
-               Keyword argument each: the class of the elements to be counted. Keyword 'each' is optional in AppleScript
-               Keyword argument _attributes: AppleEvent attribute dictionary
-               Returns: the number of elements
-               """
-               _code = 'core'
-               _subcode = 'cnte'
-
-               aetools.keysubst(_arguments, self._argmap_count)
-               _arguments['----'] = _object
-
-
-               _reply, _arguments, _attributes = self.send(_code, _subcode,
-                               _arguments, _attributes)
-               if _arguments.has_key('errn'):
-                       raise aetools.Error, aetools.decodeerror(_arguments)
-               # XXXX Optionally decode result
-               if _arguments.has_key('----'):
-                       return _arguments['----']
-
-       _argmap_get = {
-               'as' : 'rtyp',
-       }
-
-       def get(self, _object, _attributes={}, **_arguments):
-               """get: get the data for an object
-               Required argument: the object whose data is to be returned
-               Keyword argument as: the desired types for the data, in order of preference
-               Keyword argument _attributes: AppleEvent attribute dictionary
-               Returns: The data from the object
-               """
-               _code = 'core'
-               _subcode = 'getd'
-
-               aetools.keysubst(_arguments, self._argmap_get)
-               _arguments['----'] = _object
-
-
-               _reply, _arguments, _attributes = self.send(_code, _subcode,
-                               _arguments, _attributes)
-               if _arguments.has_key('errn'):
-                       raise aetools.Error, aetools.decodeerror(_arguments)
-               # XXXX Optionally decode result
-               if _arguments.has_key('----'):
-                       return _arguments['----']
-
-       _argmap_make = {
-               'new' : 'kocl',
-               'as' : 'rtyp',
-               'at' : 'insh',
-               'with_data' : 'data',
-               'with_properties' : 'prdt',
-       }
-
-       def make(self, _no_object=None, _attributes={}, **_arguments):
-               """make: make a new element
-               Keyword argument new: the class of the new element\8bkeyword 'new' is optional in AppleScript
-               Keyword argument as: the desired types for the data, in order of preference
-               Keyword argument at: the location at which to insert the element
-               Keyword argument with_data: the initial data for the element
-               Keyword argument with_properties: the initial values for the properties of the element
-               Keyword argument _attributes: AppleEvent attribute dictionary
-               Returns: to the new object(s)
-               """
-               _code = 'core'
-               _subcode = 'crel'
-
-               aetools.keysubst(_arguments, self._argmap_make)
-               if _no_object != None: raise TypeError, 'No direct arg expected'
-
-
-               _reply, _arguments, _attributes = self.send(_code, _subcode,
-                               _arguments, _attributes)
-               if _arguments.has_key('errn'):
-                       raise aetools.Error, aetools.decodeerror(_arguments)
-               # XXXX Optionally decode result
-               if _arguments.has_key('----'):
-                       return _arguments['----']
-
-       def select(self, _object=None, _attributes={}, **_arguments):
-               """select: select the specified object
-               Required argument: the object to select
-               Keyword argument _attributes: AppleEvent attribute dictionary
-               """
-               _code = 'misc'
-               _subcode = 'slct'
-
-               if _arguments: raise TypeError, 'No optional args expected'
-               _arguments['----'] = _object
-
-
-               _reply, _arguments, _attributes = self.send(_code, _subcode,
-                               _arguments, _attributes)
-               if _arguments.has_key('errn'):
-                       raise aetools.Error, aetools.decodeerror(_arguments)
-               # XXXX Optionally decode result
-               if _arguments.has_key('----'):
-                       return _arguments['----']
-
-       _argmap_set = {
-               'to' : 'data',
-       }
-
-       def set(self, _object, _attributes={}, **_arguments):
-               """set: set an object's data
-               Required argument: the object to change
-               Keyword argument to: the new value
-               Keyword argument _attributes: AppleEvent attribute dictionary
-               """
-               _code = 'core'
-               _subcode = 'setd'
-
-               aetools.keysubst(_arguments, self._argmap_set)
-               _arguments['----'] = _object
-
-
-               _reply, _arguments, _attributes = self.send(_code, _subcode,
-                               _arguments, _attributes)
-               if _arguments.has_key('errn'):
-                       raise aetools.Error, aetools.decodeerror(_arguments)
-               # XXXX Optionally decode result
-               if _arguments.has_key('----'):
-                       return _arguments['----']
-
-
-class application(aetools.ComponentItem):
-       """application - an application program """
-       want = 'capp'
-class user_interaction(aetools.NProperty):
-       """user interaction - user interaction level """
-       which = 'inte'
-       want = 'Inte'
-#        element 'docu' as ['indx', 'name', 'rang']
-#        element 'cwin' as ['indx', 'name', 'rang']
-
-class character(aetools.ComponentItem):
-       """character - a character """
-       want = 'cha '
-class offset(aetools.NProperty):
-       """offset - offset of a text object from the beginning of the document (first char has offset 1) """
-       which = 'pOff'
-       want = 'long'
-class length(aetools.NProperty):
-       """length - length in characters of this object """
-       which = 'pLen'
-       want = 'long'
-
-class document(aetools.ComponentItem):
-       """document - a document """
-       want = 'docu'
-class name(aetools.NProperty):
-       """name - the title of the document """
-       which = 'pnam'
-       want = 'itxt'
-class kind(aetools.NProperty):
-       """kind - the kind of document """
-       which = 'DKND'
-       want = 'DKND'
-class index(aetools.NProperty):
-       """index - the number of the document """
-       which = 'pidx'
-       want = 'long'
-class location(aetools.NProperty):
-       """location - the file of the document """
-       which = 'FILE'
-       want = 'fss '
-class file_permissions(aetools.NProperty):
-       """file permissions - the file permissions for the document """
-       which = 'PERM'
-       want = 'PERM'
-class window(aetools.NProperty):
-       """window - the window of the document. """
-       which = 'cwin'
-       want = 'cwin'
-
-documents = document
-
-class file(aetools.ComponentItem):
-       """file - A file """
-       want = 'file'
-
-files = file
-
-class insertion_point(aetools.ComponentItem):
-       """insertion point - An insertion location between two objects """
-       want = 'cins'
-# repeated property length length of text object (in characters)
-# repeated property offset offset of a text object from the beginning of the document (first char has offset 1)
-
-class line(aetools.ComponentItem):
-       """line - lines of text """
-       want = 'clin'
-# repeated property index index of a line object from the beginning of the document (first line has index 1)
-# repeated property offset offset  (in characters) of a line object from the beginning of the document
-# repeated property length length in characters of this object
-#        element 'cha ' as ['indx', 'rang', 'rele']
-
-lines = line
-
-class selection_2d_object(aetools.ComponentItem):
-       """selection-object - the selection visible to the user """
-       want = 'csel'
-class contents(aetools.NProperty):
-       """contents - the contents of the selection """
-       which = 'pcnt'
-       want = 'type'
-# repeated property length length of text object (in characters)
-# repeated property offset offset of a text object from the beginning of the document (first char has offset 1)
-#        element 'cha ' as ['indx', 'rele', 'rang', 'test']
-#        element 'clin' as ['indx', 'rang', 'rele']
-#        element 'ctxt' as ['rang']
-
-class text(aetools.ComponentItem):
-       """text - Text """
-       want = 'ctxt'
-# repeated property length length of text object (in characters)
-# repeated property offset offset of a text object from the beginning of the document (first char has offset 1)
-#        element 'cha ' as ['indx', 'rele', 'rang']
-#        element 'cins' as ['rele']
-#        element 'clin' as ['indx', 'rang', 'rele']
-#        element 'ctxt' as ['rang']
-
-class window(aetools.ComponentItem):
-       """window - A window """
-       want = 'cwin'
-# repeated property name the title of the window
-# repeated property index the number of the window
-class bounds(aetools.NProperty):
-       """bounds - the boundary rectangle for the window """
-       which = 'pbnd'
-       want = 'qdrt'
-class document(aetools.NProperty):
-       """document - the document that owns this window """
-       which = 'docu'
-       want = 'docu'
-class position(aetools.NProperty):
-       """position - upper left coordinates of window """
-       which = 'ppos'
-       want = 'QDpt'
-class visible(aetools.NProperty):
-       """visible - is the window visible? """
-       which = 'pvis'
-       want = 'bool'
-class zoomed(aetools.NProperty):
-       """zoomed - Is the window zoomed? """
-       which = 'pzum'
-       want = 'bool'
-
-windows = window
-application._propdict = {
-       'user_interaction' : user_interaction,
-}
-application._elemdict = {
-       'document' : document,
-       'window' : window,
-}
-character._propdict = {
-       'offset' : offset,
-       'length' : length,
-}
-character._elemdict = {
-}
-document._propdict = {
-       'name' : name,
-       'kind' : kind,
-       'index' : index,
-       'location' : location,
-       'file_permissions' : file_permissions,
-       'window' : window,
-}
-document._elemdict = {
-}
-file._propdict = {
-}
-file._elemdict = {
-}
-insertion_point._propdict = {
-       'length' : length,
-       'offset' : offset,
-}
-insertion_point._elemdict = {
-}
-line._propdict = {
-       'index' : index,
-       'offset' : offset,
-       'length' : length,
-}
-line._elemdict = {
-       'character' : character,
-}
-selection_2d_object._propdict = {
-       'contents' : contents,
-       'length' : length,
-       'offset' : offset,
-}
-selection_2d_object._elemdict = {
-       'character' : character,
-       'line' : line,
-       'text' : text,
-}
-text._propdict = {
-       'length' : length,
-       'offset' : offset,
-}
-text._elemdict = {
-       'character' : character,
-       'insertion_point' : insertion_point,
-       'line' : line,
-       'text' : text,
-}
-window._propdict = {
-       'name' : name,
-       'index' : index,
-       'bounds' : bounds,
-       'document' : document,
-       'position' : position,
-       'visible' : visible,
-       'zoomed' : zoomed,
-}
-window._elemdict = {
-}
-import Metrowerks_Shell_Suite
-from Metrowerks_Shell_Suite import _Enum_savo
-
-#
-# Indices of types declared in this module
-#
-_classdeclarations = {
-       'docu' : document,
-       'cins' : insertion_point,
-       'capp' : application,
-       'ctxt' : text,
-       'csel' : selection_2d_object,
-       'clin' : line,
-       'file' : file,
-       'cwin' : window,
-       'cha ' : character,
-}
-
-_propdeclarations = {
-       'pzum' : zoomed,
-       'DKND' : kind,
-       'pOff' : offset,
-       'pLen' : length,
-       'pnam' : name,
-       'FILE' : location,
-       'pcnt' : contents,
-       'cwin' : window,
-       'ppos' : position,
-       'pidx' : index,
-       'docu' : document,
-       'PERM' : file_permissions,
-       'pbnd' : bounds,
-       'pvis' : visible,
-       'inte' : user_interaction,
-}
-
-_compdeclarations = {
-}
-
-_enumdeclarations = {
-}
diff --git a/Mac/Lib/lib-scriptpackages/Finder/Containers_and_folders.py b/Mac/Lib/lib-scriptpackages/Finder/Containers_and_folders.py
deleted file mode 100644 (file)
index ed4ddda..0000000
+++ /dev/null
@@ -1,484 +0,0 @@
-"""Suite Containers and folders: Classes that can contain other file system items
-Level 1, version 1
-
-Generated from Macintosh HD:Systeemmap:Finder
-AETE/AEUT resource version 0/144, language 0, script 0
-"""
-
-import aetools
-import MacOS
-
-_code = 'fndr'
-
-class Containers_and_folders_Events:
-
-       pass
-
-
-class container(aetools.ComponentItem):
-       """container - An item that contains other items """
-       want = 'ctnr'
-class _3c_Inheritance_3e_(aetools.NProperty):
-       """<Inheritance> - inherits some of its properties from the item class """
-       which = 'c@#^'
-       want = 'cobj'
-class selection(aetools.NProperty):
-       """selection - the selection visible to the user """
-       which = 'sele'
-       want = 'obj '
-class entire_contents(aetools.NProperty):
-       """entire contents - the entire contents of the container, including the contents of its children """
-       which = 'ects'
-       want = 'obj '
-class expandable(aetools.NProperty):
-       """expandable - Is the container capable of being expanded as an outline? """
-       which = 'pexa'
-       want = 'bool'
-class expanded(aetools.NProperty):
-       """expanded - Is the container opened as an outline? (can only be set for containers viewed as lists) """
-       which = 'pexp'
-       want = 'bool'
-class completely_expanded(aetools.NProperty):
-       """completely expanded - Are the container and all of its children opened as outlines? (can only be set for containers viewed as lists) """
-       which = 'pexc'
-       want = 'bool'
-class icon_size(aetools.NProperty):
-       """icon size - the size of icons displayed in the window. Can be specified as a number, or ... """
-       which = 'lvis'
-       want = 'long'
-#        element 'cobj' as ['indx', 'name']
-#        element 'ctnr' as ['indx', 'name']
-#        element 'sctr' as ['indx', 'name']
-#        element 'cfol' as ['indx', 'name', 'ID  ']
-#        element 'file' as ['indx', 'name']
-#        element 'alia' as ['indx', 'name']
-#        element 'appf' as ['indx', 'name', 'ID  ']
-#        element 'docf' as ['indx', 'name']
-#        element 'fntf' as ['indx', 'name']
-#        element 'dafi' as ['indx', 'name']
-#        element 'inlf' as ['indx', 'name']
-#        element 'sndf' as ['indx', 'name']
-#        element 'clpf' as ['indx', 'name']
-#        element 'pack' as ['indx', 'name']
-#        element 'stcs' as ['indx', 'name']
-#        element 'fsut' as ['indx', 'name']
-#        element 'dsut' as ['indx', 'name']
-
-containers = container
-
-class sharable_container(aetools.ComponentItem):
-       """sharable container - A container that may be shared (disks and folders) """
-       want = 'sctr'
-class owner(aetools.NProperty):
-       """owner - the user that owns the container (file sharing must be on to use this property) """
-       which = 'sown'
-       want = 'itxt'
-class group(aetools.NProperty):
-       """group - the user or group that has special access to the container (file sharing must be on to use this property) """
-       which = 'sgrp'
-       want = 'itxt'
-class owner_privileges(aetools.NProperty):
-       """owner privileges - the see folders/see files/make changes privileges for the owner (file sharing must be on to use this property) """
-       which = 'ownr'
-       want = 'priv'
-class group_privileges(aetools.NProperty):
-       """group privileges - the see folders/see files/make changes privileges for the group (file sharing must be on to use this property) """
-       which = 'gppr'
-       want = 'priv'
-class guest_privileges(aetools.NProperty):
-       """guest privileges - the see folders/see files/make changes privileges for everyone (file sharing must be on to use this property) """
-       which = 'gstp'
-       want = 'priv'
-class privileges_inherited(aetools.NProperty):
-       """privileges inherited - Are the privileges of the container always the same as the container in which it is stored? (file sharing must be on to use this property) """
-       which = 'iprv'
-       want = 'bool'
-class mounted(aetools.NProperty):
-       """mounted - Is the container mounted on another machine's desktop? (file sharing must be on to use this property) """
-       which = 'smou'
-       want = 'bool'
-class exported(aetools.NProperty):
-       """exported - Is the container a share point or inside a share point, i.e., can the container be shared? (file sharing must be on to use this property) """
-       which = 'sexp'
-       want = 'bool'
-class shared(aetools.NProperty):
-       """shared - Is the container a share point, i.e., is the container currently being shared? (file sharing must be on to use this property) """
-       which = 'shar'
-       want = 'bool'
-class protected(aetools.NProperty):
-       """protected - Is the container protected from being moved, renamed and deleted? (file sharing must be on to use this property) """
-       which = 'spro'
-       want = 'bool'
-#        element 'cobj' as ['indx', 'name']
-#        element 'ctnr' as ['indx', 'name']
-#        element 'sctr' as ['indx', 'name']
-#        element 'cfol' as ['indx', 'name', 'ID  ']
-#        element 'file' as ['indx', 'name']
-#        element 'alia' as ['indx', 'name']
-#        element 'appf' as ['indx', 'name', 'ID  ']
-#        element 'docf' as ['indx', 'name']
-#        element 'fntf' as ['indx', 'name']
-#        element 'dafi' as ['indx', 'name']
-#        element 'inlf' as ['indx', 'name']
-#        element 'sndf' as ['indx', 'name']
-#        element 'clpf' as ['indx', 'name']
-#        element 'pack' as ['indx', 'name']
-#        element 'stcs' as ['indx', 'name']
-#        element 'fsut' as ['indx', 'name']
-#        element 'dsut' as ['indx', 'name']
-
-sharable_containers = sharable_container
-
-class sharing_privileges(aetools.ComponentItem):
-       """sharing privileges - A set of sharing properties (used in sharable containers) """
-       want = 'priv'
-class see_folders(aetools.NProperty):
-       """see folders - Can folders be seen? """
-       which = 'prvs'
-       want = 'bool'
-class see_files(aetools.NProperty):
-       """see files - Can files be seen? """
-       which = 'prvr'
-       want = 'bool'
-class make_changes(aetools.NProperty):
-       """make changes - Can changes be made? """
-       which = 'prvw'
-       want = 'bool'
-
-class disk(aetools.ComponentItem):
-       """disk - A disk """
-       want = 'cdis'
-class capacity(aetools.NProperty):
-       """capacity - the total number of bytes (free or used) on the disk """
-       which = 'capa'
-       want = 'long'
-class free_space(aetools.NProperty):
-       """free space - the number of free bytes left on the disk """
-       which = 'frsp'
-       want = 'long'
-class ejectable(aetools.NProperty):
-       """ejectable - Can the media be ejected (floppies, CD's, and so on)? """
-       which = 'isej'
-       want = 'bool'
-class local_volume(aetools.NProperty):
-       """local volume - Is the media a local volume (as opposed to a file server)? """
-       which = 'isrv'
-       want = 'bool'
-class startup(aetools.NProperty):
-       """startup - Is this disk the boot disk? """
-       which = 'istd'
-       want = 'bool'
-#        element 'cobj' as ['indx', 'name']
-#        element 'ctnr' as ['indx', 'name']
-#        element 'sctr' as ['indx', 'name']
-#        element 'cfol' as ['indx', 'name', 'ID  ']
-#        element 'file' as ['indx', 'name']
-#        element 'alia' as ['indx', 'name']
-#        element 'appf' as ['indx', 'name', 'ID  ']
-#        element 'docf' as ['indx', 'name']
-#        element 'fntf' as ['indx', 'name']
-#        element 'dafi' as ['indx', 'name']
-#        element 'inlf' as ['indx', 'name']
-#        element 'sndf' as ['indx', 'name']
-#        element 'clpf' as ['indx', 'name']
-#        element 'pack' as ['indx', 'name']
-#        element 'stcs' as ['indx', 'name']
-#        element 'fsut' as ['indx', 'name']
-#        element 'dsut' as ['indx', 'name']
-
-disks = disk
-
-class folder(aetools.ComponentItem):
-       """folder - A folder """
-       want = 'cfol'
-#        element 'cobj' as ['indx', 'name']
-#        element 'ctnr' as ['indx', 'name']
-#        element 'sctr' as ['indx', 'name']
-#        element 'cfol' as ['indx', 'name', 'ID  ']
-#        element 'file' as ['indx', 'name']
-#        element 'alia' as ['indx', 'name']
-#        element 'appf' as ['indx', 'name', 'ID  ']
-#        element 'docf' as ['indx', 'name']
-#        element 'fntf' as ['indx', 'name']
-#        element 'dafi' as ['indx', 'name']
-#        element 'inlf' as ['indx', 'name']
-#        element 'sndf' as ['indx', 'name']
-#        element 'clpf' as ['indx', 'name']
-#        element 'pack' as ['indx', 'name']
-#        element 'stcs' as ['indx', 'name']
-#        element 'fsut' as ['indx', 'name']
-#        element 'dsut' as ['indx', 'name']
-
-folders = folder
-
-class desktop_2d_object(aetools.ComponentItem):
-       """desktop-object - Desktop-object is the class of the Â³desktop² object """
-       want = 'cdsk'
-class startup_disk(aetools.NProperty):
-       """startup disk - the startup disk """
-       which = 'sdsk'
-       want = 'cdis'
-class trash(aetools.NProperty):
-       """trash - the trash """
-       which = 'trsh'
-       want = 'ctrs'
-#        element 'cobj' as ['indx', 'name']
-#        element 'ctnr' as ['indx', 'name']
-#        element 'sctr' as ['indx', 'name']
-#        element 'cdis' as ['indx', 'name']
-#        element 'cfol' as ['indx', 'name', 'ID  ']
-#        element 'file' as ['indx', 'name']
-#        element 'alia' as ['indx', 'name']
-#        element 'appf' as ['indx', 'name', 'ID  ']
-#        element 'docf' as ['indx', 'name']
-#        element 'fntf' as ['indx', 'name']
-#        element 'dafi' as ['indx', 'name']
-#        element 'inlf' as ['indx', 'name']
-#        element 'sndf' as ['indx', 'name']
-#        element 'clpf' as ['indx', 'name']
-#        element 'pack' as ['indx', 'name']
-#        element 'stcs' as ['indx', 'name']
-#        element 'fsut' as ['indx', 'name']
-#        element 'dsut' as ['indx', 'name']
-
-class trash_2d_object(aetools.ComponentItem):
-       """trash-object - Trash-object is the class of the Â³trash² object """
-       want = 'ctrs'
-class warns_before_emptying(aetools.NProperty):
-       """warns before emptying - Display a dialog when emptying the trash? """
-       which = 'warn'
-       want = 'bool'
-#        element 'cobj' as ['indx', 'name']
-#        element 'ctnr' as ['indx', 'name']
-#        element 'sctr' as ['indx', 'name']
-#        element 'cfol' as ['indx', 'name', 'ID  ']
-#        element 'file' as ['indx', 'name']
-#        element 'alia' as ['indx', 'name']
-#        element 'appf' as ['indx', 'name', 'ID  ']
-#        element 'docf' as ['indx', 'name']
-#        element 'fntf' as ['indx', 'name']
-#        element 'dafi' as ['indx', 'name']
-#        element 'inlf' as ['indx', 'name']
-#        element 'sndf' as ['indx', 'name']
-#        element 'clpf' as ['indx', 'name']
-#        element 'pack' as ['indx', 'name']
-#        element 'stcs' as ['indx', 'name']
-#        element 'fsut' as ['indx', 'name']
-#        element 'dsut' as ['indx', 'name']
-import Earlier_terms
-import Files_and_suitcases
-container._propdict = {
-       '_3c_Inheritance_3e_' : _3c_Inheritance_3e_,
-       'selection' : selection,
-       'entire_contents' : entire_contents,
-       'expandable' : expandable,
-       'expanded' : expanded,
-       'completely_expanded' : completely_expanded,
-       'icon_size' : icon_size,
-       'icon_size' : icon_size,
-}
-container._elemdict = {
-       'item' : Earlier_terms.item,
-       'container' : container,
-       'sharable_container' : sharable_container,
-       'folder' : folder,
-       'file' : Files_and_suitcases.file,
-       'alias_file' : Files_and_suitcases.alias_file,
-       'application_file' : Earlier_terms.application_file,
-       'document_file' : Files_and_suitcases.document_file,
-       'font_file' : Files_and_suitcases.font_file,
-       'desk_accessory_file' : Files_and_suitcases.desk_accessory_file,
-       'internet_location' : Earlier_terms.internet_location,
-       'sound_file' : Files_and_suitcases.sound_file,
-       'clipping' : Files_and_suitcases.clipping,
-       'package' : Files_and_suitcases.package,
-       'suitcase' : Files_and_suitcases.suitcase,
-       'font_suitcase' : Files_and_suitcases.font_suitcase,
-       'accessory_suitcase' : Earlier_terms.accessory_suitcase,
-}
-sharable_container._propdict = {
-       '_3c_Inheritance_3e_' : _3c_Inheritance_3e_,
-       'owner' : owner,
-       'group' : group,
-       'owner_privileges' : owner_privileges,
-       'group_privileges' : group_privileges,
-       'guest_privileges' : guest_privileges,
-       'privileges_inherited' : privileges_inherited,
-       'mounted' : mounted,
-       'exported' : exported,
-       'shared' : shared,
-       'protected' : protected,
-}
-sharable_container._elemdict = {
-       'item' : Earlier_terms.item,
-       'container' : container,
-       'sharable_container' : sharable_container,
-       'folder' : folder,
-       'file' : Files_and_suitcases.file,
-       'alias_file' : Files_and_suitcases.alias_file,
-       'application_file' : Earlier_terms.application_file,
-       'document_file' : Files_and_suitcases.document_file,
-       'font_file' : Files_and_suitcases.font_file,
-       'desk_accessory_file' : Files_and_suitcases.desk_accessory_file,
-       'internet_location' : Earlier_terms.internet_location,
-       'sound_file' : Files_and_suitcases.sound_file,
-       'clipping' : Files_and_suitcases.clipping,
-       'package' : Files_and_suitcases.package,
-       'suitcase' : Files_and_suitcases.suitcase,
-       'font_suitcase' : Files_and_suitcases.font_suitcase,
-       'accessory_suitcase' : Earlier_terms.accessory_suitcase,
-}
-sharing_privileges._propdict = {
-       'see_folders' : see_folders,
-       'see_files' : see_files,
-       'make_changes' : make_changes,
-}
-sharing_privileges._elemdict = {
-}
-disk._propdict = {
-       '_3c_Inheritance_3e_' : _3c_Inheritance_3e_,
-       'capacity' : capacity,
-       'free_space' : free_space,
-       'ejectable' : ejectable,
-       'local_volume' : local_volume,
-       'startup' : startup,
-}
-disk._elemdict = {
-       'item' : Earlier_terms.item,
-       'container' : container,
-       'sharable_container' : sharable_container,
-       'folder' : folder,
-       'file' : Files_and_suitcases.file,
-       'alias_file' : Files_and_suitcases.alias_file,
-       'application_file' : Earlier_terms.application_file,
-       'document_file' : Files_and_suitcases.document_file,
-       'font_file' : Files_and_suitcases.font_file,
-       'desk_accessory_file' : Files_and_suitcases.desk_accessory_file,
-       'internet_location' : Earlier_terms.internet_location,
-       'sound_file' : Files_and_suitcases.sound_file,
-       'clipping' : Files_and_suitcases.clipping,
-       'package' : Files_and_suitcases.package,
-       'suitcase' : Files_and_suitcases.suitcase,
-       'font_suitcase' : Files_and_suitcases.font_suitcase,
-       'accessory_suitcase' : Earlier_terms.accessory_suitcase,
-}
-folder._propdict = {
-       '_3c_Inheritance_3e_' : _3c_Inheritance_3e_,
-}
-folder._elemdict = {
-       'item' : Earlier_terms.item,
-       'container' : container,
-       'sharable_container' : sharable_container,
-       'folder' : folder,
-       'file' : Files_and_suitcases.file,
-       'alias_file' : Files_and_suitcases.alias_file,
-       'application_file' : Earlier_terms.application_file,
-       'document_file' : Files_and_suitcases.document_file,
-       'font_file' : Files_and_suitcases.font_file,
-       'desk_accessory_file' : Files_and_suitcases.desk_accessory_file,
-       'internet_location' : Earlier_terms.internet_location,
-       'sound_file' : Files_and_suitcases.sound_file,
-       'clipping' : Files_and_suitcases.clipping,
-       'package' : Files_and_suitcases.package,
-       'suitcase' : Files_and_suitcases.suitcase,
-       'font_suitcase' : Files_and_suitcases.font_suitcase,
-       'accessory_suitcase' : Earlier_terms.accessory_suitcase,
-}
-desktop_2d_object._propdict = {
-       '_3c_Inheritance_3e_' : _3c_Inheritance_3e_,
-       'startup_disk' : startup_disk,
-       'trash' : trash,
-}
-desktop_2d_object._elemdict = {
-       'item' : Earlier_terms.item,
-       'container' : container,
-       'sharable_container' : sharable_container,
-       'disk' : disk,
-       'folder' : folder,
-       'file' : Files_and_suitcases.file,
-       'alias_file' : Files_and_suitcases.alias_file,
-       'application_file' : Earlier_terms.application_file,
-       'document_file' : Files_and_suitcases.document_file,
-       'font_file' : Files_and_suitcases.font_file,
-       'desk_accessory_file' : Files_and_suitcases.desk_accessory_file,
-       'internet_location' : Earlier_terms.internet_location,
-       'sound_file' : Files_and_suitcases.sound_file,
-       'clipping' : Files_and_suitcases.clipping,
-       'package' : Files_and_suitcases.package,
-       'suitcase' : Files_and_suitcases.suitcase,
-       'font_suitcase' : Files_and_suitcases.font_suitcase,
-       'accessory_suitcase' : Earlier_terms.accessory_suitcase,
-}
-trash_2d_object._propdict = {
-       '_3c_Inheritance_3e_' : _3c_Inheritance_3e_,
-       'warns_before_emptying' : warns_before_emptying,
-}
-trash_2d_object._elemdict = {
-       'item' : Earlier_terms.item,
-       'container' : container,
-       'sharable_container' : sharable_container,
-       'folder' : folder,
-       'file' : Files_and_suitcases.file,
-       'alias_file' : Files_and_suitcases.alias_file,
-       'application_file' : Earlier_terms.application_file,
-       'document_file' : Files_and_suitcases.document_file,
-       'font_file' : Files_and_suitcases.font_file,
-       'desk_accessory_file' : Files_and_suitcases.desk_accessory_file,
-       'internet_location' : Earlier_terms.internet_location,
-       'sound_file' : Files_and_suitcases.sound_file,
-       'clipping' : Files_and_suitcases.clipping,
-       'package' : Files_and_suitcases.package,
-       'suitcase' : Files_and_suitcases.suitcase,
-       'font_suitcase' : Files_and_suitcases.font_suitcase,
-       'accessory_suitcase' : Earlier_terms.accessory_suitcase,
-}
-
-#
-# Indices of types declared in this module
-#
-_classdeclarations = {
-       'priv' : sharing_privileges,
-       'cfol' : folder,
-       'cdis' : disk,
-       'sctr' : sharable_container,
-       'ctnr' : container,
-       'cdsk' : desktop_2d_object,
-       'ctrs' : trash_2d_object,
-}
-
-_propdeclarations = {
-       'ownr' : owner_privileges,
-       'spro' : protected,
-       'frsp' : free_space,
-       'sgrp' : group,
-       'pexc' : completely_expanded,
-       'sele' : selection,
-       'smou' : mounted,
-       'pexa' : expandable,
-       'istd' : startup,
-       'sdsk' : startup_disk,
-       'gppr' : group_privileges,
-       'shar' : shared,
-       'capa' : capacity,
-       'isej' : ejectable,
-       'gstp' : guest_privileges,
-       'warn' : warns_before_emptying,
-       'sown' : owner,
-       'c@#^' : _3c_Inheritance_3e_,
-       'sexp' : exported,
-       'isrv' : local_volume,
-       'iprv' : privileges_inherited,
-       'lvis' : icon_size,
-       'trsh' : trash,
-       'prvs' : see_folders,
-       'prvr' : see_files,
-       'prvw' : make_changes,
-       'pexp' : expanded,
-       'ects' : entire_contents,
-}
-
-_compdeclarations = {
-}
-
-_enumdeclarations = {
-}
diff --git a/Mac/Lib/lib-scriptpackages/Finder/Earlier_terms.py b/Mac/Lib/lib-scriptpackages/Finder/Earlier_terms.py
deleted file mode 100644 (file)
index 077da58..0000000
+++ /dev/null
@@ -1,728 +0,0 @@
-"""Suite Earlier terms: Terms that have been renamed
-Level 1, version 1
-
-Generated from Macintosh HD:Systeemmap:Finder
-AETE/AEUT resource version 0/144, language 0, script 0
-"""
-
-import aetools
-import MacOS
-
-_code = 'tpnm'
-
-from StdSuites.Type_Names_Suite import *
-class Earlier_terms_Events(Type_Names_Suite_Events):
-
-       pass
-
-
-class application(aetools.ComponentItem):
-       """application - The Finder """
-       want = 'capp'
-class properties(aetools.NProperty):
-       """properties - property that allows getting and setting of multiple properties """
-       which = 'qpro'
-       want = 'reco'
-class clipboard(aetools.NProperty):
-       """clipboard - the Finder¹s clipboard window """
-       which = 'pcli'
-       want = 'obj '
-class largest_free_block(aetools.NProperty):
-       """largest free block - the largest free block of process memory available to launch an application """
-       which = 'mfre'
-       want = 'long'
-class name(aetools.NProperty):
-       """name - the Finder¹s name """
-       which = 'pnam'
-       want = 'itxt'
-class visible(aetools.NProperty):
-       """visible - Is the Finder¹s layer visible? """
-       which = 'pvis'
-       want = 'bool'
-class frontmost(aetools.NProperty):
-       """frontmost - Is the Finder the frontmost process? """
-       which = 'pisf'
-       want = 'bool'
-class selection(aetools.NProperty):
-       """selection - the selection visible to the user """
-       which = 'sele'
-       want = 'obj '
-class insertion_location(aetools.NProperty):
-       """insertion location - the container in which a new folder would appear if Â³New Folder² was selected """
-       which = 'pins'
-       want = 'obj '
-class file_sharing(aetools.NProperty):
-       """file sharing - Is file sharing on? """
-       which = 'fshr'
-       want = 'bool'
-class sharing_starting_up(aetools.NProperty):
-       """sharing starting up - Is file sharing in the process of starting up? """
-       which = 'fsup'
-       want = 'bool'
-class product_version(aetools.NProperty):
-       """product version - the version of the System software running on this computer """
-       which = 'ver2'
-       want = 'itxt'
-class version(aetools.NProperty):
-       """version - the version of the Finder """
-       which = 'vers'
-       want = 'itxt'
-class about_this_computer(aetools.NProperty):
-       """about this computer - the Â³About this Computer² dialog and the list of running processes displayed in it """
-       which = 'abbx'
-       want = 'obj '
-class desktop(aetools.NProperty):
-       """desktop - the desktop """
-       which = 'desk'
-       want = 'cdsk'
-class Finder_preferences(aetools.NProperty):
-       """Finder preferences - Various preferences that apply to the Finder as a whole """
-       which = 'pfrp'
-       want = 'obj '
-
-class application_file(aetools.ComponentItem):
-       """application file - An application's file on disk """
-       want = 'appf'
-class _3c_Inheritance_3e_(aetools.NProperty):
-       """<Inheritance> - inherits some of its properties from the file class """
-       which = 'c@#^'
-       want = 'file'
-class minimum_partition_size(aetools.NProperty):
-       """minimum partition size - the smallest memory size with which the application can be launched """
-       which = 'mprt'
-       want = 'long'
-class partition_size(aetools.NProperty):
-       """partition size - the memory size with which the application will be launched """
-       which = 'appt'
-       want = 'long'
-class suggested_partition_size(aetools.NProperty):
-       """suggested partition size - the memory size with which the developer recommends the application be launched """
-       which = 'sprt'
-       want = 'long'
-class scriptable(aetools.NProperty):
-       """scriptable - Is the application high-level event aware? """
-       which = 'isab'
-       want = 'bool'
-
-class container_window(aetools.ComponentItem):
-       """container window - A window that contains items """
-       want = 'cwnd'
-class container(aetools.NProperty):
-       """container - the container from which the window was opened """
-       which = 'ctnr'
-       want = 'obj '
-class item(aetools.NProperty):
-       """item - the item from which the window was opened (always returns something) """
-       which = 'cobj'
-       want = 'obj '
-class has_custom_view_settings(aetools.NProperty):
-       """has custom view settings - Does the folder have custom view settings or is it using the default global settings? """
-       which = 'cuss'
-       want = 'long'
-class view(aetools.NProperty):
-       """view - the current view for the window (icon, name, date, etc.) """
-       which = 'pvew'
-       want = 'long'
-class previous_list_view(aetools.NProperty):
-       """previous list view - the last non-icon view (by name, by date, etc.) selected for the container (forgotten as soon as the window is closed and only available when the window is open) """
-       which = 'svew'
-       want = 'enum'
-class button_view_arrangement(aetools.NProperty):
-       """button view arrangement - the property by which to keep icons arranged within a button view window """
-       which = 'barr'
-       want = 'earr'
-class spatial_view_arrangement(aetools.NProperty):
-       """spatial view arrangement - the property by which to keep icons arranged within a spatial view window """
-       which = 'iarr'
-       want = 'earr'
-class sort_direction(aetools.NProperty):
-       """sort direction - The direction in which the window is sorted """
-       which = 'sord'
-       want = 'sodr'
-class calculate_folder_sizes(aetools.NProperty):
-       """calculate folder sizes - Are folder sizes calculated and displayed in the window? (does not apply to suitcase windows) """
-       which = 'sfsz'
-       want = 'bool'
-class show_comments(aetools.NProperty):
-       """show comments - Are comments displayed in the window? (does not apply to suitcases) """
-       which = 'scom'
-       want = 'bool'
-class show_creation_date(aetools.NProperty):
-       """show creation date - Are creation dates displayed in the window? """
-       which = 'scda'
-       want = 'bool'
-class show_kind(aetools.NProperty):
-       """show kind - Are document kinds displayed in the window? """
-       which = 'sknd'
-       want = 'bool'
-class show_label(aetools.NProperty):
-       """show label - Are labels displayed in the window? """
-       which = 'slbl'
-       want = 'bool'
-class show_modification_date(aetools.NProperty):
-       """show modification date - Are modification dates displayed in the window? """
-       which = 'sdat'
-       want = 'bool'
-class show_size(aetools.NProperty):
-       """show size - Are file sizes displayed in the window? """
-       which = 'ssiz'
-       want = 'bool'
-class show_version(aetools.NProperty):
-       """show version - Are file versions displayed in the window? (does not apply to suitcase windows) """
-       which = 'svrs'
-       want = 'bool'
-class use_relative_dates(aetools.NProperty):
-       """use relative dates - Are relative dates (e.g., today, yesterday) shown in the window? """
-       which = 'urdt'
-       want = 'bool'
-
-class accessory_process(aetools.ComponentItem):
-       """accessory process - A process launched from a desk accessory file """
-       want = 'pcda'
-
-accessory_processes = accessory_process
-
-class accessory_suitcase(aetools.ComponentItem):
-       """accessory suitcase - A desk accessory suitcase """
-       want = 'dsut'
-
-accessory_suitcases = accessory_suitcase
-
-class internet_location(aetools.ComponentItem):
-       """internet location - An file containing an internet location """
-       want = 'inlf'
-
-internet_locations = internet_location
-
-class information_window(aetools.ComponentItem):
-       """information window - An information window (opened by Â³Get Info²) """
-       want = 'iwnd'
-class comment(aetools.NProperty):
-       """comment - the comment """
-       which = 'comt'
-       want = 'itxt'
-class size(aetools.NProperty):
-       """size - the logical size of the item """
-       which = 'ptsz'
-       want = 'long'
-class physical_size(aetools.NProperty):
-       """physical size - the actual space used by the item on disk """
-       which = 'phys'
-       want = 'long'
-class creation_date(aetools.NProperty):
-       """creation date - the date on which the item was created """
-       which = 'ascd'
-       want = 'ldt '
-class modification_date(aetools.NProperty):
-       """modification date - the date on which the item was last modified """
-       which = 'asmo'
-       want = 'ldt '
-class icon(aetools.NProperty):
-       """icon - the icon bitmap of the item """
-       which = 'iimg'
-       want = 'ifam'
-class locked(aetools.NProperty):
-       """locked - Is the item locked (applies only to file and application information windows)? """
-       which = 'aslk'
-       want = 'bool'
-class stationery(aetools.NProperty):
-       """stationery - Is the item a stationery pad? """
-       which = 'pspd'
-       want = 'bool'
-class warn_before_emptying(aetools.NProperty):
-       """warn before emptying - Display a dialog when emptying the trash (only valid for trash info window)? """
-       which = 'warn'
-       want = 'bool'
-
-class item(aetools.ComponentItem):
-       """item - An item """
-       want = 'cobj'
-class index(aetools.NProperty):
-       """index - the index in the front-to-back ordering within its container """
-       which = 'pidx'
-       want = 'long'
-class id(aetools.NProperty):
-       """id - an id that identifies the item """
-       which = 'ID  '
-       want = 'long'
-class disk(aetools.NProperty):
-       """disk - the disk on which the item is stored """
-       which = 'cdis'
-       want = 'obj '
-class folder(aetools.NProperty):
-       """folder - the folder in which the item is stored """
-       which = 'asdr'
-       want = 'obj '
-class position(aetools.NProperty):
-       """position - the position of the item within its parent window (can only be set for an item in a window viewed as icons or buttons) """
-       which = 'posn'
-       want = 'QDpt'
-class bounds(aetools.NProperty):
-       """bounds - the bounding rectangle of the item (can only be set for an item in a window viewed as icons or buttons) """
-       which = 'pbnd'
-       want = 'qdrt'
-class label_index(aetools.NProperty):
-       """label index - the label of the item """
-       which = 'labi'
-       want = 'long'
-class kind(aetools.NProperty):
-       """kind - the kind of the item """
-       which = 'kind'
-       want = 'itxt'
-class description(aetools.NProperty):
-       """description - a description of the item """
-       which = 'dscr'
-       want = 'itxt'
-class selected(aetools.NProperty):
-       """selected - Is the item selected? """
-       which = 'issl'
-       want = 'bool'
-class content_space(aetools.NProperty):
-       """content space - the window that would open if the item was opened """
-       which = 'dwnd'
-       want = 'obj '
-class window(aetools.NProperty):
-       """window - the window that would open if the item was opened """
-       which = 'cwin'
-       want = 'obj '
-class information_window(aetools.NProperty):
-       """information window - the information window for the item """
-       which = 'iwnd'
-       want = 'obj '
-
-class process(aetools.ComponentItem):
-       """process - A process running on this computer """
-       want = 'prcs'
-class file(aetools.NProperty):
-       """file - the file from which the process was launched """
-       which = 'file'
-       want = 'obj '
-class file_type(aetools.NProperty):
-       """file type - the OSType of the file type of the process """
-       which = 'asty'
-       want = 'type'
-class creator_type(aetools.NProperty):
-       """creator type - the OSType of the creator of the process (the signature) """
-       which = 'fcrt'
-       want = 'type'
-class remote_events(aetools.NProperty):
-       """remote events - Does the process accept remote events? """
-       which = 'revt'
-       want = 'bool'
-class partition_space_used(aetools.NProperty):
-       """partition space used - the number of bytes currently used in the process' partition """
-       which = 'pusd'
-       want = 'long'
-
-class sharable_container(aetools.ComponentItem):
-       """sharable container - A container that may be shared (disks and folders) """
-       want = 'sctr'
-class owner(aetools.NProperty):
-       """owner - the user that owns the container (file sharing must be on to use this property) """
-       which = 'sown'
-       want = 'itxt'
-class group(aetools.NProperty):
-       """group - the user or group that has special access to the container (file sharing must be on to use this property) """
-       which = 'sgrp'
-       want = 'itxt'
-class owner_privileges(aetools.NProperty):
-       """owner privileges - the see folders/see files/make changes privileges for the owner (file sharing must be on to use this property) """
-       which = 'ownr'
-       want = 'priv'
-class group_privileges(aetools.NProperty):
-       """group privileges - the see folders/see files/make changes privileges for the group (file sharing must be on to use this property) """
-       which = 'gppr'
-       want = 'priv'
-class guest_privileges(aetools.NProperty):
-       """guest privileges - the see folders/see files/make changes privileges for everyone (file sharing must be on to use this property) """
-       which = 'gstp'
-       want = 'priv'
-class inherited_privileges(aetools.NProperty):
-       """inherited privileges - Are the privileges of the container always the same as the container in which it is stored? (file sharing must be on to use this property) """
-       which = 'iprv'
-       want = 'bool'
-class mounted(aetools.NProperty):
-       """mounted - Is the container mounted on another machine's desktop? (file sharing must be on to use this property) """
-       which = 'smou'
-       want = 'bool'
-class exported(aetools.NProperty):
-       """exported - Is the container a share point or inside a share point, i.e., can the container be shared? (file sharing must be on to use this property) """
-       which = 'sexp'
-       want = 'bool'
-class shared(aetools.NProperty):
-       """shared - Is the container a share point, i.e., is the container currently being shared? (file sharing must be on to use this property) """
-       which = 'shar'
-       want = 'bool'
-class protected(aetools.NProperty):
-       """protected - Is the container protected from being moved, renamed and deleted? (file sharing must be on to use this property) """
-       which = 'spro'
-       want = 'bool'
-
-class trash_2d_object(aetools.ComponentItem):
-       """trash-object - Trash-object is the class of the Â³trash² object """
-       want = 'ctrs'
-
-class preferences(aetools.ComponentItem):
-       """preferences - The Finder Preferences """
-       want = 'cprf'
-class delay_before_springing(aetools.NProperty):
-       """delay before springing - the delay before springing open a container in ticks (1/60th of a second) (12 is shortest delay, 60 is longest delay) """
-       which = 'dela'
-       want = 'shor'
-class spring_open_folders(aetools.NProperty):
-       """spring open folders - Spring open folders after the specified delay? """
-       which = 'sprg'
-       want = 'bool'
-class use_simple_menus(aetools.NProperty):
-       """use simple menus - Use simplified Finder menus? """
-       which = 'usme'
-       want = 'bool'
-class use_wide_grid(aetools.NProperty):
-       """use wide grid - Space icons on a wide grid? """
-       which = 'uswg'
-       want = 'bool'
-
-class window(aetools.ComponentItem):
-       """window - A window """
-       want = 'cwin'
-class titled(aetools.NProperty):
-       """titled - Does the window have a title bar? """
-       which = 'ptit'
-       want = 'bool'
-class closeable(aetools.NProperty):
-       """closeable - Does the window have a close box? """
-       which = 'hclb'
-       want = 'bool'
-class floating(aetools.NProperty):
-       """floating - Does the window have a title bar? """
-       which = 'isfl'
-       want = 'bool'
-class modal(aetools.NProperty):
-       """modal - Is the window modal? """
-       which = 'pmod'
-       want = 'bool'
-
-resizable = titled
-class zoomable(aetools.NProperty):
-       """zoomable - Is the window zoomable? """
-       which = 'iszm'
-       want = 'bool'
-class zoomed(aetools.NProperty):
-       """zoomed - Is the window zoomed? """
-       which = 'pzum'
-       want = 'bool'
-class zoomed_full_size(aetools.NProperty):
-       """zoomed full size - Is the window zoomed to the full size of the screen? (can only be set, not read, and only applies to open non-pop-up windows) """
-       which = 'zumf'
-       want = 'bool'
-class popup(aetools.NProperty):
-       """popup - Is the window is a pop-up window? (only applies to open container windows in the Finder and can only be set when the Finder is the front application) """
-       which = 'drwr'
-       want = 'bool'
-class pulled_open(aetools.NProperty):
-       """pulled open - Is the window pulled open (only applies to pop-up windows and can only be set when the Finder is the front application)? """
-       which = 'pull'
-       want = 'bool'
-class collapsed(aetools.NProperty):
-       """collapsed - Is the window collapsed (only applies to open non-pop-up windows)? """
-       which = 'wshd'
-       want = 'bool'
-application._propdict = {
-       'properties' : properties,
-       'clipboard' : clipboard,
-       'largest_free_block' : largest_free_block,
-       'name' : name,
-       'visible' : visible,
-       'frontmost' : frontmost,
-       'selection' : selection,
-       'insertion_location' : insertion_location,
-       'file_sharing' : file_sharing,
-       'sharing_starting_up' : sharing_starting_up,
-       'product_version' : product_version,
-       'version' : version,
-       'about_this_computer' : about_this_computer,
-       'desktop' : desktop,
-       'Finder_preferences' : Finder_preferences,
-}
-application._elemdict = {
-}
-application_file._propdict = {
-       '_3c_Inheritance_3e_' : _3c_Inheritance_3e_,
-       'minimum_partition_size' : minimum_partition_size,
-       'partition_size' : partition_size,
-       'suggested_partition_size' : suggested_partition_size,
-       'scriptable' : scriptable,
-}
-application_file._elemdict = {
-}
-container_window._propdict = {
-       '_3c_Inheritance_3e_' : _3c_Inheritance_3e_,
-       'container' : container,
-       'item' : item,
-       'has_custom_view_settings' : has_custom_view_settings,
-       'view' : view,
-       'previous_list_view' : previous_list_view,
-       'button_view_arrangement' : button_view_arrangement,
-       'spatial_view_arrangement' : spatial_view_arrangement,
-       'sort_direction' : sort_direction,
-       'calculate_folder_sizes' : calculate_folder_sizes,
-       'show_comments' : show_comments,
-       'show_creation_date' : show_creation_date,
-       'show_kind' : show_kind,
-       'show_label' : show_label,
-       'show_modification_date' : show_modification_date,
-       'show_size' : show_size,
-       'show_version' : show_version,
-       'use_relative_dates' : use_relative_dates,
-}
-container_window._elemdict = {
-}
-accessory_process._propdict = {
-}
-accessory_process._elemdict = {
-}
-accessory_suitcase._propdict = {
-}
-accessory_suitcase._elemdict = {
-}
-internet_location._propdict = {
-}
-internet_location._elemdict = {
-}
-information_window._propdict = {
-       '_3c_Inheritance_3e_' : _3c_Inheritance_3e_,
-       'item' : item,
-       'comment' : comment,
-       'size' : size,
-       'physical_size' : physical_size,
-       'creation_date' : creation_date,
-       'modification_date' : modification_date,
-       'suggested_partition_size' : suggested_partition_size,
-       'minimum_partition_size' : minimum_partition_size,
-       'partition_size' : partition_size,
-       'icon' : icon,
-       'locked' : locked,
-       'stationery' : stationery,
-       'warn_before_emptying' : warn_before_emptying,
-       'product_version' : product_version,
-       'version' : version,
-}
-information_window._elemdict = {
-}
-item._propdict = {
-       'properties' : properties,
-       'name' : name,
-       'index' : index,
-       'id' : id,
-       'container' : container,
-       'disk' : disk,
-       'folder' : folder,
-       'position' : position,
-       'bounds' : bounds,
-       'label_index' : label_index,
-       'kind' : kind,
-       'description' : description,
-       'comment' : comment,
-       'size' : size,
-       'physical_size' : physical_size,
-       'creation_date' : creation_date,
-       'modification_date' : modification_date,
-       'icon' : icon,
-       'selected' : selected,
-       'content_space' : content_space,
-       'window' : window,
-       'information_window' : information_window,
-}
-item._elemdict = {
-}
-process._propdict = {
-       'properties' : properties,
-       'name' : name,
-       'visible' : visible,
-       'frontmost' : frontmost,
-       'file' : file,
-       'file_type' : file_type,
-       'creator_type' : creator_type,
-       'scriptable' : scriptable,
-       'remote_events' : remote_events,
-       'partition_size' : partition_size,
-       'partition_space_used' : partition_space_used,
-}
-process._elemdict = {
-}
-sharable_container._propdict = {
-       '_3c_Inheritance_3e_' : _3c_Inheritance_3e_,
-       'owner' : owner,
-       'group' : group,
-       'owner_privileges' : owner_privileges,
-       'group_privileges' : group_privileges,
-       'guest_privileges' : guest_privileges,
-       'inherited_privileges' : inherited_privileges,
-       'mounted' : mounted,
-       'exported' : exported,
-       'shared' : shared,
-       'protected' : protected,
-}
-sharable_container._elemdict = {
-}
-trash_2d_object._propdict = {
-       '_3c_Inheritance_3e_' : _3c_Inheritance_3e_,
-       'warn_before_emptying' : warn_before_emptying,
-}
-trash_2d_object._elemdict = {
-}
-preferences._propdict = {
-       'window' : window,
-       'calculate_folder_sizes' : calculate_folder_sizes,
-       'delay_before_springing' : delay_before_springing,
-       'show_comments' : show_comments,
-       'show_creation_date' : show_creation_date,
-       'show_kind' : show_kind,
-       'show_label' : show_label,
-       'show_modification_date' : show_modification_date,
-       'show_size' : show_size,
-       'show_version' : show_version,
-       'spring_open_folders' : spring_open_folders,
-       'use_relative_dates' : use_relative_dates,
-       'use_simple_menus' : use_simple_menus,
-       'use_wide_grid' : use_wide_grid,
-}
-preferences._elemdict = {
-}
-window._propdict = {
-       'properties' : properties,
-       'position' : position,
-       'bounds' : bounds,
-       'titled' : titled,
-       'name' : name,
-       'index' : index,
-       'closeable' : closeable,
-       'floating' : floating,
-       'modal' : modal,
-       'resizable' : resizable,
-       'zoomable' : zoomable,
-       'zoomed' : zoomed,
-       'zoomed_full_size' : zoomed_full_size,
-       'visible' : visible,
-       'popup' : popup,
-       'pulled_open' : pulled_open,
-       'collapsed' : collapsed,
-}
-window._elemdict = {
-}
-
-#
-# Indices of types declared in this module
-#
-_classdeclarations = {
-       'iwnd' : information_window,
-       'cwnd' : container_window,
-       'inlf' : internet_location,
-       'appf' : application_file,
-       'prcs' : process,
-       'cobj' : item,
-       'cwin' : window,
-       'pcda' : accessory_process,
-       'ctrs' : trash_2d_object,
-       'capp' : application,
-       'cprf' : preferences,
-       'sctr' : sharable_container,
-       'dsut' : accessory_suitcase,
-}
-
-_propdeclarations = {
-       'pidx' : index,
-       'scda' : show_creation_date,
-       'qpro' : properties,
-       'fshr' : file_sharing,
-       'pvew' : view,
-       'pusd' : partition_space_used,
-       'aslk' : locked,
-       'sdat' : show_modification_date,
-       'issl' : selected,
-       'pvis' : visible,
-       'slbl' : show_label,
-       'wshd' : collapsed,
-       'cdis' : disk,
-       'usme' : use_simple_menus,
-       'sord' : sort_direction,
-       'sexp' : exported,
-       'comt' : comment,
-       'dscr' : description,
-       'svew' : previous_list_view,
-       'svrs' : show_version,
-       'sknd' : show_kind,
-       'phys' : physical_size,
-       'iarr' : spatial_view_arrangement,
-       'smou' : mounted,
-       'posn' : position,
-       'cobj' : item,
-       'revt' : remote_events,
-       'asmo' : modification_date,
-       'ssiz' : show_size,
-       'pnam' : name,
-       'mprt' : minimum_partition_size,
-       'cwin' : window,
-       'pcli' : clipboard,
-       'spro' : protected,
-       'sprt' : suggested_partition_size,
-       'pisf' : frontmost,
-       'sele' : selection,
-       'pmod' : modal,
-       'fcrt' : creator_type,
-       'shar' : shared,
-       'dwnd' : content_space,
-       'zumf' : zoomed_full_size,
-       'sfsz' : calculate_folder_sizes,
-       'ID  ' : id,
-       'c@#^' : _3c_Inheritance_3e_,
-       'pspd' : stationery,
-       'iprv' : inherited_privileges,
-       'pfrp' : Finder_preferences,
-       'barr' : button_view_arrangement,
-       'ownr' : owner_privileges,
-       'drwr' : popup,
-       'sgrp' : group,
-       'ptsz' : size,
-       'kind' : kind,
-       'pull' : pulled_open,
-       'abbx' : about_this_computer,
-       'ctnr' : container,
-       'ascd' : creation_date,
-       'desk' : desktop,
-       'warn' : warn_before_emptying,
-       'iszm' : zoomable,
-       'isab' : scriptable,
-       'gstp' : guest_privileges,
-       'vers' : version,
-       'dela' : delay_before_springing,
-       'ptit' : titled,
-       'uswg' : use_wide_grid,
-       'cuss' : has_custom_view_settings,
-       'labi' : label_index,
-       'iwnd' : information_window,
-       'file' : file,
-       'asty' : file_type,
-       'appt' : partition_size,
-       'scom' : show_comments,
-       'pins' : insertion_location,
-       'pbnd' : bounds,
-       'urdt' : use_relative_dates,
-       'fsup' : sharing_starting_up,
-       'sown' : owner,
-       'isfl' : floating,
-       'hclb' : closeable,
-       'iimg' : icon,
-       'gppr' : group_privileges,
-       'asdr' : folder,
-       'sprg' : spring_open_folders,
-       'pzum' : zoomed,
-       'ver2' : product_version,
-       'mfre' : largest_free_block,
-}
-
-_compdeclarations = {
-}
-
-_enumdeclarations = {
-}
diff --git a/Mac/Lib/lib-scriptpackages/Finder/Files_and_suitcases.py b/Mac/Lib/lib-scriptpackages/Finder/Files_and_suitcases.py
deleted file mode 100644 (file)
index 1d56862..0000000
+++ /dev/null
@@ -1,283 +0,0 @@
-"""Suite Files and suitcases: Classes representing files and suitcases
-Level 1, version 1
-
-Generated from Macintosh HD:Systeemmap:Finder
-AETE/AEUT resource version 0/144, language 0, script 0
-"""
-
-import aetools
-import MacOS
-
-_code = 'fndr'
-
-class Files_and_suitcases_Events:
-
-       pass
-
-
-class file(aetools.ComponentItem):
-       """file - A file """
-       want = 'file'
-class _3c_Inheritance_3e_(aetools.NProperty):
-       """<Inheritance> - inherits some of its properties from the item class """
-       which = 'c@#^'
-       want = 'cobj'
-class file_type(aetools.NProperty):
-       """file type - the OSType identifying the type of data contained in the item """
-       which = 'asty'
-       want = 'type'
-class creator_type(aetools.NProperty):
-       """creator type - the OSType identifying the application that created the item """
-       which = 'fcrt'
-       want = 'type'
-class locked(aetools.NProperty):
-       """locked - Is the file locked? """
-       which = 'aslk'
-       want = 'bool'
-class stationery(aetools.NProperty):
-       """stationery - Is the file a stationery pad? """
-       which = 'pspd'
-       want = 'bool'
-class product_version(aetools.NProperty):
-       """product version - the version of the product (visible at the top of the Â³Get Info² window) """
-       which = 'ver2'
-       want = 'itxt'
-class version(aetools.NProperty):
-       """version - the version of the file (visible at the bottom of the Â³Get Info² window) """
-       which = 'vers'
-       want = 'itxt'
-
-files = file
-
-class alias_file(aetools.ComponentItem):
-       """alias file - An alias file (created with Â³Make Alias²) """
-       want = 'alia'
-class original_item(aetools.NProperty):
-       """original item - the original item pointed to by the alias """
-       which = 'orig'
-       want = 'obj '
-
-alias_files = alias_file
-
-class application_file(aetools.ComponentItem):
-       """application file - An application's file on disk """
-       want = 'appf'
-class suggested_size(aetools.NProperty):
-       """suggested size - the memory size with which the developer recommends the application be launched """
-       which = 'sprt'
-       want = 'long'
-class minimum_size(aetools.NProperty):
-       """minimum size - the smallest memory size with which the application can be launched """
-       which = 'mprt'
-       want = 'long'
-class preferred_size(aetools.NProperty):
-       """preferred size - the memory size with which the application will be launched """
-       which = 'appt'
-       want = 'long'
-class accepts_high_level_events(aetools.NProperty):
-       """accepts high level events - Is the application high-level event aware? """
-       which = 'isab'
-       want = 'bool'
-class has_scripting_terminology(aetools.NProperty):
-       """has scripting terminology - Does the process have a scripting terminology, i.e., can it be scripted? """
-       which = 'hscr'
-       want = 'bool'
-
-application_files = application_file
-
-class document_file(aetools.ComponentItem):
-       """document file - A document file """
-       want = 'docf'
-
-document_files = document_file
-
-class font_file(aetools.ComponentItem):
-       """font file - A font file """
-       want = 'fntf'
-
-font_files = font_file
-
-class desk_accessory_file(aetools.ComponentItem):
-       """desk accessory file - A desk accessory file """
-       want = 'dafi'
-
-desk_accessory_files = desk_accessory_file
-
-class internet_location_file(aetools.ComponentItem):
-       """internet location file - An file containing an internet location """
-       want = 'inlf'
-class location(aetools.NProperty):
-       """location - the internet location """
-       which = 'iloc'
-       want = 'itxt'
-
-internet_location_files = internet_location_file
-
-class sound_file(aetools.ComponentItem):
-       """sound file - A sound file """
-       want = 'sndf'
-class sound(aetools.NProperty):
-       """sound - the sound data """
-       which = 'snd '
-       want = 'snd '
-
-sound_files = sound_file
-
-class clipping(aetools.ComponentItem):
-       """clipping - A clipping """
-       want = 'clpf'
-
-clippings = clipping
-
-class package(aetools.ComponentItem):
-       """package - A package """
-       want = 'pack'
-
-packages = package
-
-class suitcase(aetools.ComponentItem):
-       """suitcase - A font or desk accessory suitcase """
-       want = 'stcs'
-#        element 'cobj' as ['indx', 'name']
-
-suitcases = suitcase
-
-class font_suitcase(aetools.ComponentItem):
-       """font suitcase - A font suitcase """
-       want = 'fsut'
-#        element 'cobj' as ['indx', 'name']
-
-font_suitcases = font_suitcase
-
-class desk_accessory_suitcase(aetools.ComponentItem):
-       """desk accessory suitcase - A desk accessory suitcase """
-       want = 'dsut'
-#        element 'cobj' as ['indx', 'name']
-
-desk_accessory_suitcases = desk_accessory_suitcase
-file._propdict = {
-       '_3c_Inheritance_3e_' : _3c_Inheritance_3e_,
-       'file_type' : file_type,
-       'creator_type' : creator_type,
-       'locked' : locked,
-       'stationery' : stationery,
-       'product_version' : product_version,
-       'version' : version,
-}
-file._elemdict = {
-}
-alias_file._propdict = {
-       '_3c_Inheritance_3e_' : _3c_Inheritance_3e_,
-       'original_item' : original_item,
-}
-alias_file._elemdict = {
-}
-application_file._propdict = {
-       '_3c_Inheritance_3e_' : _3c_Inheritance_3e_,
-       'suggested_size' : suggested_size,
-       'minimum_size' : minimum_size,
-       'preferred_size' : preferred_size,
-       'accepts_high_level_events' : accepts_high_level_events,
-       'has_scripting_terminology' : has_scripting_terminology,
-}
-application_file._elemdict = {
-}
-document_file._propdict = {
-       '_3c_Inheritance_3e_' : _3c_Inheritance_3e_,
-}
-document_file._elemdict = {
-}
-font_file._propdict = {
-       '_3c_Inheritance_3e_' : _3c_Inheritance_3e_,
-}
-font_file._elemdict = {
-}
-desk_accessory_file._propdict = {
-       '_3c_Inheritance_3e_' : _3c_Inheritance_3e_,
-}
-desk_accessory_file._elemdict = {
-}
-internet_location_file._propdict = {
-       '_3c_Inheritance_3e_' : _3c_Inheritance_3e_,
-       'location' : location,
-}
-internet_location_file._elemdict = {
-}
-sound_file._propdict = {
-       '_3c_Inheritance_3e_' : _3c_Inheritance_3e_,
-       'sound' : sound,
-}
-sound_file._elemdict = {
-}
-clipping._propdict = {
-       '_3c_Inheritance_3e_' : _3c_Inheritance_3e_,
-}
-clipping._elemdict = {
-}
-package._propdict = {
-       '_3c_Inheritance_3e_' : _3c_Inheritance_3e_,
-}
-package._elemdict = {
-}
-import Earlier_terms
-suitcase._propdict = {
-       '_3c_Inheritance_3e_' : _3c_Inheritance_3e_,
-}
-suitcase._elemdict = {
-       'item' : Earlier_terms.item,
-}
-font_suitcase._propdict = {
-       '_3c_Inheritance_3e_' : _3c_Inheritance_3e_,
-}
-font_suitcase._elemdict = {
-       'item' : Earlier_terms.item,
-}
-desk_accessory_suitcase._propdict = {
-       '_3c_Inheritance_3e_' : _3c_Inheritance_3e_,
-}
-desk_accessory_suitcase._elemdict = {
-       'item' : Earlier_terms.item,
-}
-
-#
-# Indices of types declared in this module
-#
-_classdeclarations = {
-       'clpf' : clipping,
-       'docf' : document_file,
-       'stcs' : suitcase,
-       'appf' : application_file,
-       'file' : file,
-       'fsut' : font_suitcase,
-       'pack' : package,
-       'dafi' : desk_accessory_file,
-       'alia' : alias_file,
-       'dsut' : desk_accessory_suitcase,
-       'inlf' : internet_location_file,
-       'fntf' : font_file,
-       'sndf' : sound_file,
-}
-
-_propdeclarations = {
-       'orig' : original_item,
-       'pspd' : stationery,
-       'aslk' : locked,
-       'iloc' : location,
-       'mprt' : minimum_size,
-       'fcrt' : creator_type,
-       'c@#^' : _3c_Inheritance_3e_,
-       'asty' : file_type,
-       'hscr' : has_scripting_terminology,
-       'sprt' : suggested_size,
-       'appt' : preferred_size,
-       'isab' : accepts_high_level_events,
-       'snd ' : sound,
-       'ver2' : product_version,
-       'vers' : version,
-}
-
-_compdeclarations = {
-}
-
-_enumdeclarations = {
-}
diff --git a/Mac/Lib/lib-scriptpackages/Finder/Finder_Basics.py b/Mac/Lib/lib-scriptpackages/Finder/Finder_Basics.py
deleted file mode 100644 (file)
index c75a219..0000000
+++ /dev/null
@@ -1,370 +0,0 @@
-"""Suite Finder Basics: Commonly-used Finder commands and object classes
-Level 1, version 1
-
-Generated from Macintosh HD:Systeemmap:Finder
-AETE/AEUT resource version 0/144, language 0, script 0
-"""
-
-import aetools
-import MacOS
-
-_code = 'fndr'
-
-class Finder_Basics_Events:
-
-       _argmap_computer = {
-               'has' : 'has ',
-       }
-
-       def computer(self, _object, _attributes={}, **_arguments):
-               """computer: Test attributes of this computer
-               Required argument: the attribute to test
-               Keyword argument has: test specific bits of response
-               Keyword argument _attributes: AppleEvent attribute dictionary
-               Returns: the result of the query
-               """
-               _code = 'fndr'
-               _subcode = 'gstl'
-
-               aetools.keysubst(_arguments, self._argmap_computer)
-               _arguments['----'] = _object
-
-
-               _reply, _arguments, _attributes = self.send(_code, _subcode,
-                               _arguments, _attributes)
-               if _arguments.has_key('errn'):
-                       raise aetools.Error, aetools.decodeerror(_arguments)
-               # XXXX Optionally decode result
-               if _arguments.has_key('----'):
-                       return _arguments['----']
-
-       def copy(self, _no_object=None, _attributes={}, **_arguments):
-               """copy: Copy the selected items to the clipboard (the Finder must be the front application)
-               Keyword argument _attributes: AppleEvent attribute dictionary
-               """
-               _code = 'misc'
-               _subcode = 'copy'
-
-               if _arguments: raise TypeError, 'No optional args expected'
-               if _no_object != None: raise TypeError, 'No direct arg expected'
-
-
-               _reply, _arguments, _attributes = self.send(_code, _subcode,
-                               _arguments, _attributes)
-               if _arguments.has_key('errn'):
-                       raise aetools.Error, aetools.decodeerror(_arguments)
-               # XXXX Optionally decode result
-               if _arguments.has_key('----'):
-                       return _arguments['----']
-
-       def restart(self, _no_object=None, _attributes={}, **_arguments):
-               """restart: Restart the computer
-               Keyword argument _attributes: AppleEvent attribute dictionary
-               """
-               _code = 'fndr'
-               _subcode = 'rest'
-
-               if _arguments: raise TypeError, 'No optional args expected'
-               if _no_object != None: raise TypeError, 'No direct arg expected'
-
-
-               _reply, _arguments, _attributes = self.send(_code, _subcode,
-                               _arguments, _attributes)
-               if _arguments.has_key('errn'):
-                       raise aetools.Error, aetools.decodeerror(_arguments)
-               # XXXX Optionally decode result
-               if _arguments.has_key('----'):
-                       return _arguments['----']
-
-       def shut_down(self, _no_object=None, _attributes={}, **_arguments):
-               """shut down: Shut Down the computer
-               Keyword argument _attributes: AppleEvent attribute dictionary
-               """
-               _code = 'fndr'
-               _subcode = 'shut'
-
-               if _arguments: raise TypeError, 'No optional args expected'
-               if _no_object != None: raise TypeError, 'No direct arg expected'
-
-
-               _reply, _arguments, _attributes = self.send(_code, _subcode,
-                               _arguments, _attributes)
-               if _arguments.has_key('errn'):
-                       raise aetools.Error, aetools.decodeerror(_arguments)
-               # XXXX Optionally decode result
-               if _arguments.has_key('----'):
-                       return _arguments['----']
-
-       def sleep(self, _no_object=None, _attributes={}, **_arguments):
-               """sleep: Put the computer to sleep
-               Keyword argument _attributes: AppleEvent attribute dictionary
-               """
-               _code = 'fndr'
-               _subcode = 'slep'
-
-               if _arguments: raise TypeError, 'No optional args expected'
-               if _no_object != None: raise TypeError, 'No direct arg expected'
-
-
-               _reply, _arguments, _attributes = self.send(_code, _subcode,
-                               _arguments, _attributes)
-               if _arguments.has_key('errn'):
-                       raise aetools.Error, aetools.decodeerror(_arguments)
-               # XXXX Optionally decode result
-               if _arguments.has_key('----'):
-                       return _arguments['----']
-
-       _argmap_sort = {
-               'by' : 'by  ',
-       }
-
-       def sort(self, _object, _attributes={}, **_arguments):
-               """sort: Return the specified object(s) in a sorted list
-               Required argument: a list of finder objects to sort
-               Keyword argument by: the property to sort the items by (name, index, date, etc.)
-               Keyword argument _attributes: AppleEvent attribute dictionary
-               Returns: the sorted items in their new order
-               """
-               _code = 'DATA'
-               _subcode = 'SORT'
-
-               aetools.keysubst(_arguments, self._argmap_sort)
-               _arguments['----'] = _object
-
-
-               _reply, _arguments, _attributes = self.send(_code, _subcode,
-                               _arguments, _attributes)
-               if _arguments.has_key('errn'):
-                       raise aetools.Error, aetools.decodeerror(_arguments)
-               # XXXX Optionally decode result
-               if _arguments.has_key('----'):
-                       return _arguments['----']
-
-
-class application(aetools.ComponentItem):
-       """application - The Finder """
-       want = 'capp'
-class clipboard(aetools.NProperty):
-       """clipboard - the Finder¹s clipboard window """
-       which = 'pcli'
-       want = 'obj '
-class largest_free_block(aetools.NProperty):
-       """largest free block - the largest free block of process memory available to launch an application """
-       which = 'mfre'
-       want = 'long'
-class name(aetools.NProperty):
-       """name - the Finder¹s name """
-       which = 'pnam'
-       want = 'itxt'
-class visible(aetools.NProperty):
-       """visible - Is the Finder¹s layer visible? """
-       which = 'pvis'
-       want = 'bool'
-class frontmost(aetools.NProperty):
-       """frontmost - Is the Finder the frontmost process? """
-       which = 'pisf'
-       want = 'bool'
-class selection(aetools.NProperty):
-       """selection - the selection visible to the user """
-       which = 'sele'
-       want = 'obj '
-class insertion_location(aetools.NProperty):
-       """insertion location - the container in which a new folder would appear if Â³New Folder² was selected """
-       which = 'pins'
-       want = 'obj '
-class file_sharing(aetools.NProperty):
-       """file sharing - Is file sharing on? """
-       which = 'fshr'
-       want = 'bool'
-class sharing_starting_up(aetools.NProperty):
-       """sharing starting up - Is file sharing in the process of starting up? """
-       which = 'fsup'
-       want = 'bool'
-class product_version(aetools.NProperty):
-       """product version - the version of the System software running on this computer """
-       which = 'ver2'
-       want = 'itxt'
-class version(aetools.NProperty):
-       """version - the version of the Finder """
-       which = 'vers'
-       want = 'itxt'
-class about_this_computer(aetools.NProperty):
-       """about this computer - the Â³About this Computer² dialog and the list of running processes displayed in it """
-       which = 'abbx'
-       want = 'obj '
-class desktop(aetools.NProperty):
-       """desktop - the desktop """
-       which = 'desk'
-       want = 'cdsk'
-class Finder_preferences(aetools.NProperty):
-       """Finder preferences - Various preferences that apply to the Finder as a whole """
-       which = 'pfrp'
-       want = 'cprf'
-#        element 'cobj' as ['indx', 'name']
-#        element 'ctnr' as ['indx', 'name']
-#        element 'sctr' as ['indx', 'name']
-#        element 'cdis' as ['indx', 'name', 'ID  ']
-#        element 'cfol' as ['indx', 'name', 'ID  ']
-#        element 'file' as ['indx', 'name']
-#        element 'alia' as ['indx', 'name']
-#        element 'appf' as ['indx', 'name', 'ID  ']
-#        element 'docf' as ['indx', 'name']
-#        element 'fntf' as ['indx', 'name']
-#        element 'dafi' as ['indx', 'name']
-#        element 'inlf' as ['indx', 'name']
-#        element 'sndf' as ['indx', 'name']
-#        element 'clpf' as ['indx', 'name']
-#        element 'pack' as ['indx', 'name']
-#        element 'stcs' as ['indx', 'name']
-#        element 'fsut' as ['indx', 'name']
-#        element 'dsut' as ['indx', 'name']
-#        element 'prcs' as ['indx', 'name']
-#        element 'pcap' as ['indx', 'name']
-#        element 'pcda' as ['indx', 'name']
-#        element 'cwin' as ['indx', 'name']
-#        element 'cwnd' as ['indx', 'name']
-#        element 'iwnd' as ['indx', 'name']
-#        element 'lwnd' as ['indx', 'name']
-#        element 'dwnd' as ['indx', 'name']
-
-class special_folders(aetools.ComponentItem):
-       """special folders - The special folders used by the Mac OS """
-       want = 'spfl'
-class system_folder(aetools.NProperty):
-       """system folder - the System folder """
-       which = 'macs'
-       want = 'obj '
-class apple_menu_items_folder(aetools.NProperty):
-       """apple menu items folder - the special folder named Â³Apple Menu Items,² the contents of which appear in the Apple menu """
-       which = 'amnu'
-       want = 'obj '
-class control_panels_folder(aetools.NProperty):
-       """control panels folder - the special folder named Â³Control Panels² """
-       which = 'ctrl'
-       want = 'obj '
-class extensions_folder(aetools.NProperty):
-       """extensions folder - the special folder named Â³Extensions² """
-       which = 'extn'
-       want = 'obj '
-class fonts_folder(aetools.NProperty):
-       """fonts folder - the special folder named Â³Fonts² """
-       which = 'font'
-       want = 'obj '
-class preferences_folder(aetools.NProperty):
-       """preferences folder - the special folder named Â³Preferences² """
-       which = 'pref'
-       want = 'obj '
-class shutdown_items_folder(aetools.NProperty):
-       """shutdown items folder - the special folder named Â³Shutdown Items² """
-       which = 'shdf'
-       want = 'obj '
-class startup_items_folder(aetools.NProperty):
-       """startup items folder - the special folder named Â³Startup Items² """
-       which = 'strt'
-       want = 'obj '
-class temporary_items_folder(aetools.NProperty):
-       """temporary items folder - the special folder named Â³Temporary Items² (invisible) """
-       which = 'temp'
-       want = 'obj '
-import Earlier_terms
-import Containers_and_folders
-import Files_and_suitcases
-import Process_classes
-import Window_classes
-application._propdict = {
-       'clipboard' : clipboard,
-       'largest_free_block' : largest_free_block,
-       'name' : name,
-       'visible' : visible,
-       'frontmost' : frontmost,
-       'selection' : selection,
-       'insertion_location' : insertion_location,
-       'file_sharing' : file_sharing,
-       'sharing_starting_up' : sharing_starting_up,
-       'product_version' : product_version,
-       'version' : version,
-       'about_this_computer' : about_this_computer,
-       'desktop' : desktop,
-       'Finder_preferences' : Finder_preferences,
-}
-application._elemdict = {
-       'item' : Earlier_terms.item,
-       'container' : Containers_and_folders.container,
-       'sharable_container' : Earlier_terms.sharable_container,
-       'disk' : Containers_and_folders.disk,
-       'folder' : Containers_and_folders.folder,
-       'file' : Files_and_suitcases.file,
-       'alias_file' : Files_and_suitcases.alias_file,
-       'application_file' : Earlier_terms.application_file,
-       'document_file' : Files_and_suitcases.document_file,
-       'font_file' : Files_and_suitcases.font_file,
-       'desk_accessory_file' : Files_and_suitcases.desk_accessory_file,
-       'internet_location' : Earlier_terms.internet_location,
-       'sound_file' : Files_and_suitcases.sound_file,
-       'clipping' : Files_and_suitcases.clipping,
-       'package' : Files_and_suitcases.package,
-       'suitcase' : Files_and_suitcases.suitcase,
-       'font_suitcase' : Files_and_suitcases.font_suitcase,
-       'accessory_suitcase' : Earlier_terms.accessory_suitcase,
-       'process' : Earlier_terms.process,
-       'application_process' : Process_classes.application_process,
-       'accessory_process' : Earlier_terms.accessory_process,
-       'window' : Earlier_terms.window,
-       'container_window' : Earlier_terms.container_window,
-       'information_window' : Earlier_terms.information_window,
-       'clipping_window' : Window_classes.clipping_window,
-       'content_space' : Window_classes.content_space,
-}
-special_folders._propdict = {
-       'system_folder' : system_folder,
-       'apple_menu_items_folder' : apple_menu_items_folder,
-       'control_panels_folder' : control_panels_folder,
-       'extensions_folder' : extensions_folder,
-       'fonts_folder' : fonts_folder,
-       'preferences_folder' : preferences_folder,
-       'shutdown_items_folder' : shutdown_items_folder,
-       'startup_items_folder' : startup_items_folder,
-       'temporary_items_folder' : temporary_items_folder,
-}
-special_folders._elemdict = {
-}
-
-#
-# Indices of types declared in this module
-#
-_classdeclarations = {
-       'spfl' : special_folders,
-       'capp' : application,
-}
-
-_propdeclarations = {
-       'amnu' : apple_menu_items_folder,
-       'extn' : extensions_folder,
-       'pnam' : name,
-       'fshr' : file_sharing,
-       'pcli' : clipboard,
-       'strt' : startup_items_folder,
-       'pref' : preferences_folder,
-       'pisf' : frontmost,
-       'pins' : insertion_location,
-       'pvis' : visible,
-       'abbx' : about_this_computer,
-       'temp' : temporary_items_folder,
-       'font' : fonts_folder,
-       'pfrp' : Finder_preferences,
-       'desk' : desktop,
-       'fsup' : sharing_starting_up,
-       'mfre' : largest_free_block,
-       'ctrl' : control_panels_folder,
-       'sele' : selection,
-       'shdf' : shutdown_items_folder,
-       'macs' : system_folder,
-       'ver2' : product_version,
-       'vers' : version,
-}
-
-_compdeclarations = {
-}
-
-_enumdeclarations = {
-}
diff --git a/Mac/Lib/lib-scriptpackages/Finder/Finder_items.py b/Mac/Lib/lib-scriptpackages/Finder/Finder_items.py
deleted file mode 100644 (file)
index cc87f7f..0000000
+++ /dev/null
@@ -1,332 +0,0 @@
-"""Suite Finder items: Commands used with file system items, and basic item definition
-Level 1, version 1
-
-Generated from Macintosh HD:Systeemmap:Finder
-AETE/AEUT resource version 0/144, language 0, script 0
-"""
-
-import aetools
-import MacOS
-
-_code = 'fndr'
-
-class Finder_items_Events:
-
-       def add_to_favorites(self, _object, _attributes={}, **_arguments):
-               """add to favorites: Add the items to the Favorites menu in the Apple Menu and in Open and Save dialogs
-               Required argument: the items to add to the collection of Favorites
-               Keyword argument _attributes: AppleEvent attribute dictionary
-               """
-               _code = 'fndr'
-               _subcode = 'ffav'
-
-               if _arguments: raise TypeError, 'No optional args expected'
-               _arguments['----'] = _object
-
-
-               _reply, _arguments, _attributes = self.send(_code, _subcode,
-                               _arguments, _attributes)
-               if _arguments.has_key('errn'):
-                       raise aetools.Error, aetools.decodeerror(_arguments)
-               # XXXX Optionally decode result
-               if _arguments.has_key('----'):
-                       return _arguments['----']
-
-       _argmap_clean_up = {
-               'by' : 'by  ',
-       }
-
-       def clean_up(self, _object, _attributes={}, **_arguments):
-               """clean up: Arrange items in window nicely (only applies to open windows in icon or button views that are not kept arranged)
-               Required argument: the window to clean up
-               Keyword argument by: the order in which to clean up the objects (name, index, date, etc.)
-               Keyword argument _attributes: AppleEvent attribute dictionary
-               """
-               _code = 'fndr'
-               _subcode = 'fclu'
-
-               aetools.keysubst(_arguments, self._argmap_clean_up)
-               _arguments['----'] = _object
-
-
-               _reply, _arguments, _attributes = self.send(_code, _subcode,
-                               _arguments, _attributes)
-               if _arguments.has_key('errn'):
-                       raise aetools.Error, aetools.decodeerror(_arguments)
-               # XXXX Optionally decode result
-               if _arguments.has_key('----'):
-                       return _arguments['----']
-
-       def eject(self, _object=None, _attributes={}, **_arguments):
-               """eject: Eject the specified disk(s), or every ejectable disk if no parameter is specified
-               Required argument: the items to eject
-               Keyword argument _attributes: AppleEvent attribute dictionary
-               """
-               _code = 'fndr'
-               _subcode = 'ejct'
-
-               if _arguments: raise TypeError, 'No optional args expected'
-               _arguments['----'] = _object
-
-
-               _reply, _arguments, _attributes = self.send(_code, _subcode,
-                               _arguments, _attributes)
-               if _arguments.has_key('errn'):
-                       raise aetools.Error, aetools.decodeerror(_arguments)
-               # XXXX Optionally decode result
-               if _arguments.has_key('----'):
-                       return _arguments['----']
-
-       def empty(self, _object=None, _attributes={}, **_arguments):
-               """empty: Empty the trash
-               Required argument: Â³empty² and Â³empty trash² both do the same thing
-               Keyword argument _attributes: AppleEvent attribute dictionary
-               """
-               _code = 'fndr'
-               _subcode = 'empt'
-
-               if _arguments: raise TypeError, 'No optional args expected'
-               _arguments['----'] = _object
-
-
-               _reply, _arguments, _attributes = self.send(_code, _subcode,
-                               _arguments, _attributes)
-               if _arguments.has_key('errn'):
-                       raise aetools.Error, aetools.decodeerror(_arguments)
-               # XXXX Optionally decode result
-               if _arguments.has_key('----'):
-                       return _arguments['----']
-
-       def erase(self, _object, _attributes={}, **_arguments):
-               """erase: Erase the specified disk(s)
-               Required argument: the items to erase
-               Keyword argument _attributes: AppleEvent attribute dictionary
-               """
-               _code = 'fndr'
-               _subcode = 'fera'
-
-               if _arguments: raise TypeError, 'No optional args expected'
-               _arguments['----'] = _object
-
-
-               _reply, _arguments, _attributes = self.send(_code, _subcode,
-                               _arguments, _attributes)
-               if _arguments.has_key('errn'):
-                       raise aetools.Error, aetools.decodeerror(_arguments)
-               # XXXX Optionally decode result
-               if _arguments.has_key('----'):
-                       return _arguments['----']
-
-       def put_away(self, _object, _attributes={}, **_arguments):
-               """put away: Put away the specified object(s)
-               Required argument: the items to put away
-               Keyword argument _attributes: AppleEvent attribute dictionary
-               Returns: the object put away in its put-away location
-               """
-               _code = 'fndr'
-               _subcode = 'ptwy'
-
-               if _arguments: raise TypeError, 'No optional args expected'
-               _arguments['----'] = _object
-
-
-               _reply, _arguments, _attributes = self.send(_code, _subcode,
-                               _arguments, _attributes)
-               if _arguments.has_key('errn'):
-                       raise aetools.Error, aetools.decodeerror(_arguments)
-               # XXXX Optionally decode result
-               if _arguments.has_key('----'):
-                       return _arguments['----']
-
-       def reveal(self, _object, _attributes={}, **_arguments):
-               """reveal: Bring the specified object(s) into view
-               Required argument: the object to be made visible
-               Keyword argument _attributes: AppleEvent attribute dictionary
-               """
-               _code = 'misc'
-               _subcode = 'mvis'
-
-               if _arguments: raise TypeError, 'No optional args expected'
-               _arguments['----'] = _object
-
-
-               _reply, _arguments, _attributes = self.send(_code, _subcode,
-                               _arguments, _attributes)
-               if _arguments.has_key('errn'):
-                       raise aetools.Error, aetools.decodeerror(_arguments)
-               # XXXX Optionally decode result
-               if _arguments.has_key('----'):
-                       return _arguments['----']
-
-       def update(self, _object, _attributes={}, **_arguments):
-               """update: Update the display of the specified object(s) to match their on-disk representation
-               Required argument: the item to update
-               Keyword argument _attributes: AppleEvent attribute dictionary
-               """
-               _code = 'fndr'
-               _subcode = 'fupd'
-
-               if _arguments: raise TypeError, 'No optional args expected'
-               _arguments['----'] = _object
-
-
-               _reply, _arguments, _attributes = self.send(_code, _subcode,
-                               _arguments, _attributes)
-               if _arguments.has_key('errn'):
-                       raise aetools.Error, aetools.decodeerror(_arguments)
-               # XXXX Optionally decode result
-               if _arguments.has_key('----'):
-                       return _arguments['----']
-
-
-class item(aetools.ComponentItem):
-       """item - An item """
-       want = 'cobj'
-class name(aetools.NProperty):
-       """name - the name of the item """
-       which = 'pnam'
-       want = 'itxt'
-class index(aetools.NProperty):
-       """index - the index in the front-to-back ordering within its container """
-       which = 'pidx'
-       want = 'long'
-class id(aetools.NProperty):
-       """id - an id that identifies the item """
-       which = 'ID  '
-       want = 'long'
-class container(aetools.NProperty):
-       """container - the container of the item """
-       which = 'ctnr'
-       want = 'obj '
-class disk(aetools.NProperty):
-       """disk - the disk on which the item is stored """
-       which = 'cdis'
-       want = 'obj '
-class folder(aetools.NProperty):
-       """folder - the folder in which the item is stored """
-       which = 'asdr'
-       want = 'obj '
-class position(aetools.NProperty):
-       """position - the position of the item within its parent window (can only be set for an item in a window viewed as icons or buttons) """
-       which = 'posn'
-       want = 'QDpt'
-class bounds(aetools.NProperty):
-       """bounds - the bounding rectangle of the item (can only be set for an item in a window viewed as icons or buttons) """
-       which = 'pbnd'
-       want = 'qdrt'
-class label_index(aetools.NProperty):
-       """label index - the label of the item """
-       which = 'labi'
-       want = 'long'
-class kind(aetools.NProperty):
-       """kind - the kind of the item """
-       which = 'kind'
-       want = 'itxt'
-class description(aetools.NProperty):
-       """description - a description of the item """
-       which = 'dscr'
-       want = 'itxt'
-class comment(aetools.NProperty):
-       """comment - the comment of the item, displayed in the Â³Get Info² window """
-       which = 'comt'
-       want = 'itxt'
-class size(aetools.NProperty):
-       """size - the logical size of the item """
-       which = 'ptsz'
-       want = 'long'
-class physical_size(aetools.NProperty):
-       """physical size - the actual space used by the item on disk """
-       which = 'phys'
-       want = 'long'
-class creation_date(aetools.NProperty):
-       """creation date - the date on which the item was created """
-       which = 'ascd'
-       want = 'ldt '
-class modification_date(aetools.NProperty):
-       """modification date - the date on which the item was last modified """
-       which = 'asmo'
-       want = 'ldt '
-class icon(aetools.NProperty):
-       """icon - the icon bitmap of the item """
-       which = 'iimg'
-       want = 'ifam'
-class selected(aetools.NProperty):
-       """selected - Is the item selected? """
-       which = 'issl'
-       want = 'bool'
-class content_space(aetools.NProperty):
-       """content space - the window that would open if the item was opened """
-       which = 'dwnd'
-       want = 'obj '
-class window(aetools.NProperty):
-       """window - the window that would open if the item was opened """
-       which = 'cwin'
-       want = 'obj '
-class information_window(aetools.NProperty):
-       """information window - the information window for the item """
-       which = 'iwnd'
-       want = 'obj '
-
-items = item
-item._propdict = {
-       'name' : name,
-       'index' : index,
-       'id' : id,
-       'container' : container,
-       'disk' : disk,
-       'folder' : folder,
-       'position' : position,
-       'bounds' : bounds,
-       'label_index' : label_index,
-       'kind' : kind,
-       'description' : description,
-       'comment' : comment,
-       'size' : size,
-       'physical_size' : physical_size,
-       'creation_date' : creation_date,
-       'modification_date' : modification_date,
-       'icon' : icon,
-       'selected' : selected,
-       'content_space' : content_space,
-       'window' : window,
-       'information_window' : information_window,
-}
-item._elemdict = {
-}
-
-#
-# Indices of types declared in this module
-#
-_classdeclarations = {
-       'cobj' : item,
-}
-
-_propdeclarations = {
-       'iwnd' : information_window,
-       'cdis' : disk,
-       'asmo' : modification_date,
-       'ascd' : creation_date,
-       'pnam' : name,
-       'labi' : label_index,
-       'ID  ' : id,
-       'iimg' : icon,
-       'pidx' : index,
-       'dwnd' : content_space,
-       'cwin' : window,
-       'comt' : comment,
-       'dscr' : description,
-       'asdr' : folder,
-       'issl' : selected,
-       'pbnd' : bounds,
-       'ctnr' : container,
-       'phys' : physical_size,
-       'ptsz' : size,
-       'kind' : kind,
-       'posn' : position,
-}
-
-_compdeclarations = {
-}
-
-_enumdeclarations = {
-}
diff --git a/Mac/Lib/lib-scriptpackages/Finder/Obsolete_terms.py b/Mac/Lib/lib-scriptpackages/Finder/Obsolete_terms.py
deleted file mode 100644 (file)
index 501d1b0..0000000
+++ /dev/null
@@ -1,209 +0,0 @@
-"""Suite Obsolete terms: Terms that have been deprecated
-Level 1, version 1
-
-Generated from Macintosh HD:Systeemmap:Finder
-AETE/AEUT resource version 0/144, language 0, script 0
-"""
-
-import aetools
-import MacOS
-
-_code = 'tpnm'
-
-from StdSuites.Type_Names_Suite import *
-class Obsolete_terms_Events(Type_Names_Suite_Events):
-
-       pass
-
-
-class application(aetools.ComponentItem):
-       """application - The Finder """
-       want = 'capp'
-class view_preferences(aetools.NProperty):
-       """view preferences - backwards compatibility with Finder Scripting Extension. DEPRECATED -- not supported after Finder 8.0 """
-       which = 'pvwp'
-       want = 'obj '
-
-class container(aetools.ComponentItem):
-       """container - An item that contains other items """
-       want = 'ctnr'
-class container_window(aetools.NProperty):
-       """container window - the main window for the container """
-       which = 'cwnd'
-       want = 'obj '
-
-class container_window(aetools.ComponentItem):
-       """container window - A window that contains items """
-       want = 'cwnd'
-class folder_obsolete(aetools.NProperty):
-       """folder obsolete - the folder from which the window was opened (DEPRECATED - for use with scripts compiled before Finder 8.0. Will be removed in the next release.) """
-       which = 'cfol'
-       want = 'obj '
-
-class control_panel(aetools.ComponentItem):
-       """control panel - A control panel """
-       want = 'ccdv'
-
-control_panels = control_panel
-
-class file(aetools.ComponentItem):
-       """file - A file """
-       want = 'file'
-class file_type_obsolete(aetools.NProperty):
-       """file type obsolete - the OSType identifying the type of data contained in the item (DEPRECATED - for use with scripts compiled before Finder 8.0. Will be removed in the next release) """
-       which = 'fitp'
-       want = 'type'
-class locked_obsolete(aetools.NProperty):
-       """locked obsolete - Is the file locked? (DEPRECATED - for use with scripts compiled before Finder 8.0. Will be removed in the next release) """
-       which = 'islk'
-       want = 'bool'
-
-class information_window(aetools.ComponentItem):
-       """information window - An information window (opened by Â³Get Info²) """
-       want = 'iwnd'
-class creation_date_obsolete(aetools.NProperty):
-       """creation date obsolete - the date on which the item was created (DEPRECATED - for use with scripts compiled before Finder 8.0. Will be removed in the next release) """
-       which = 'crtd'
-       want = 'ldt '
-class modification_date_obsolete(aetools.NProperty):
-       """modification date obsolete - the date on which the item was last modified (DEPRECATED - for use with scripts compiled before Finder 8.0. Will be removed in the next release) """
-       which = 'modd'
-       want = 'ldt '
-
-class item(aetools.ComponentItem):
-       """item - An item """
-       want = 'cobj'
-
-class process(aetools.ComponentItem):
-       """process - A process running on this computer """
-       want = 'prcs'
-
-class sharable_container(aetools.ComponentItem):
-       """sharable container - A container that may be shared (disks and folders) """
-       want = 'sctr'
-class sharing_window(aetools.NProperty):
-       """sharing window - the sharing window for the container (file sharing must be on to use this property) """
-       which = 'swnd'
-       want = 'obj '
-
-class sharing_window(aetools.ComponentItem):
-       """sharing window - A sharing window (opened by Â³Sharing\8a²) """
-       want = 'swnd'
-class sharable_container(aetools.NProperty):
-       """sharable container - the sharable container from which the window was opened """
-       which = 'sctr'
-       want = 'obj '
-class item(aetools.NProperty):
-       """item - the item from which this window was opened """
-       which = 'cobj'
-       want = 'obj '
-class container(aetools.NProperty):
-       """container - the container from which this window was opened """
-       which = 'ctnr'
-       want = 'obj '
-
-sharing_windows = sharing_window
-
-class status_window(aetools.ComponentItem):
-       """status window - Progress dialogs (e.g., copy window, rebuild desktop database, empty trash) """
-       want = 'qwnd'
-
-status_windows = status_window
-application._propdict = {
-       'view_preferences' : view_preferences,
-}
-application._elemdict = {
-}
-container._propdict = {
-       'container_window' : container_window,
-}
-container._elemdict = {
-}
-container_window._propdict = {
-       'folder_obsolete' : folder_obsolete,
-}
-container_window._elemdict = {
-}
-control_panel._propdict = {
-}
-control_panel._elemdict = {
-}
-file._propdict = {
-       'file_type_obsolete' : file_type_obsolete,
-       'locked_obsolete' : locked_obsolete,
-}
-file._elemdict = {
-}
-information_window._propdict = {
-       'creation_date_obsolete' : creation_date_obsolete,
-       'locked_obsolete' : locked_obsolete,
-       'modification_date_obsolete' : modification_date_obsolete,
-}
-information_window._elemdict = {
-}
-item._propdict = {
-       'creation_date_obsolete' : creation_date_obsolete,
-       'folder_obsolete' : folder_obsolete,
-       'modification_date_obsolete' : modification_date_obsolete,
-}
-item._elemdict = {
-}
-process._propdict = {
-       'file_type_obsolete' : file_type_obsolete,
-}
-process._elemdict = {
-}
-sharable_container._propdict = {
-       'sharing_window' : sharing_window,
-}
-sharable_container._elemdict = {
-}
-sharing_window._propdict = {
-       'sharable_container' : sharable_container,
-       'item' : item,
-       'container' : container,
-       'folder_obsolete' : folder_obsolete,
-}
-sharing_window._elemdict = {
-}
-status_window._propdict = {
-}
-status_window._elemdict = {
-}
-
-#
-# Indices of types declared in this module
-#
-_classdeclarations = {
-       'ccdv' : control_panel,
-       'iwnd' : information_window,
-       'ctnr' : container,
-       'capp' : application,
-       'sctr' : sharable_container,
-       'cwnd' : container_window,
-       'prcs' : process,
-       'file' : file,
-       'cobj' : item,
-       'qwnd' : status_window,
-       'swnd' : sharing_window,
-}
-
-_propdeclarations = {
-       'crtd' : creation_date_obsolete,
-       'cfol' : folder_obsolete,
-       'ctnr' : container,
-       'cwnd' : container_window,
-       'pvwp' : view_preferences,
-       'swnd' : sharing_window,
-       'sctr' : sharable_container,
-       'cobj' : item,
-       'modd' : modification_date_obsolete,
-       'islk' : locked_obsolete,
-       'fitp' : file_type_obsolete,
-}
-
-_compdeclarations = {
-}
-
-_enumdeclarations = {
-}
diff --git a/Mac/Lib/lib-scriptpackages/Finder/Type_Definitions.py b/Mac/Lib/lib-scriptpackages/Finder/Type_Definitions.py
deleted file mode 100644 (file)
index 5d13cd0..0000000
+++ /dev/null
@@ -1,270 +0,0 @@
-"""Suite Type Definitions: Definitions of records used in scripting the Finder
-Level 1, version 1
-
-Generated from Macintosh HD:Systeemmap:Finder
-AETE/AEUT resource version 0/144, language 0, script 0
-"""
-
-import aetools
-import MacOS
-
-_code = 'tpdf'
-
-class Type_Definitions_Events:
-
-       pass
-
-
-class preferences(aetools.ComponentItem):
-       """preferences - The Finder Preferences """
-       want = 'cprf'
-class window(aetools.NProperty):
-       """window - the window that would open if Finder preferences was opened """
-       which = 'cwin'
-       want = 'pwnd'
-class button_view_arrangement(aetools.NProperty):
-       """button view arrangement - the method of arrangement of icons in default Finder button view windows """
-       which = 'barr'
-       want = 'earr'
-class button_view_icon_size(aetools.NProperty):
-       """button view icon size - the size of icons displayed in Finder button view windows. """
-       which = 'bisz'
-       want = 'long'
-class spatial_view_arrangement(aetools.NProperty):
-       """spatial view arrangement - the method of arrangement of icons in default Finder spatial view windows """
-       which = 'iarr'
-       want = 'earr'
-class spatial_view_icon_size(aetools.NProperty):
-       """spatial view icon size - the size of icons displayed in Finder spatial view windows. """
-       which = 'iisz'
-       want = 'long'
-class calculates_folder_sizes(aetools.NProperty):
-       """calculates folder sizes - Are folder sizes calculated and displayed in Finder list view windows? """
-       which = 'sfsz'
-       want = 'bool'
-class list_view_icon_size(aetools.NProperty):
-       """list view icon size - the size of icons displayed in Finder list view windows. """
-       which = 'lisz'
-       want = 'long'
-class shows_comments(aetools.NProperty):
-       """shows comments - Are comments displayed in default Finder list view windows? """
-       which = 'scom'
-       want = 'bool'
-class shows_creation_date(aetools.NProperty):
-       """shows creation date - Are creation dates displayed in default Finder list view windows? """
-       which = 'scda'
-       want = 'bool'
-class shows_kind(aetools.NProperty):
-       """shows kind - Are document kinds displayed in default Finder list view windows? """
-       which = 'sknd'
-       want = 'bool'
-class shows_label(aetools.NProperty):
-       """shows label - Are labels displayed in default Finder list view windows? """
-       which = 'slbl'
-       want = 'bool'
-class shows_modification_date(aetools.NProperty):
-       """shows modification date - Are modification dates displayed in default Finder list view windows? """
-       which = 'sdat'
-       want = 'bool'
-class shows_size(aetools.NProperty):
-       """shows size - Are file sizes displayed in default Finder list view windows? """
-       which = 'ssiz'
-       want = 'bool'
-class shows_version(aetools.NProperty):
-       """shows version - Are file versions displayed in default Finder list view windows? """
-       which = 'svrs'
-       want = 'bool'
-class uses_relative_dates(aetools.NProperty):
-       """uses relative dates - Are relative dates (e.g., today, yesterday) shown  in Finder list view windows? """
-       which = 'urdt'
-       want = 'bool'
-class uses_simple_menus(aetools.NProperty):
-       """uses simple menus - Use simplified Finder menus? """
-       which = 'usme'
-       want = 'bool'
-class uses_wide_grid(aetools.NProperty):
-       """uses wide grid - Space icons on a wide grid? """
-       which = 'uswg'
-       want = 'bool'
-class spring_open_folders(aetools.NProperty):
-       """spring open folders - Spring open folders after the specified delay? """
-       which = 'sprg'
-       want = 'bool'
-class delay_before_springing(aetools.NProperty):
-       """delay before springing - the delay before springing open a container in ticks (1/60th of a second) (12 is shortest delay, 60 is longest delay) """
-       which = 'dela'
-       want = 'shor'
-class view_font(aetools.NProperty):
-       """view font - the id of the font used in Finder views. """
-       which = 'vfnt'
-       want = 'long'
-class view_font_size(aetools.NProperty):
-       """view font size - the size of the font used in Finder views """
-       which = 'vfsz'
-       want = 'long'
-#        element 'clbl' as ['indx', 'name']
-
-class label(aetools.ComponentItem):
-       """label - A Finder label (name and color) """
-       want = 'clbl'
-class name(aetools.NProperty):
-       """name - the name associated with the label """
-       which = 'pnam'
-       want = 'itxt'
-class index(aetools.NProperty):
-       """index - the index in the front-to-back ordering within its container """
-       which = 'pidx'
-       want = 'long'
-class color(aetools.NProperty):
-       """color - the color associated with the label """
-       which = 'colr'
-       want = 'cRGB'
-
-class icon_family(aetools.ComponentItem):
-       """icon family - A family of icons """
-       want = 'ifam'
-class large_monochrome_icon_and_mask(aetools.NProperty):
-       """large monochrome icon and mask - the large black-and-white icon and the mask for large icons """
-       which = 'ICN#'
-       want = 'ICN#'
-class large_8_bit_mask(aetools.NProperty):
-       """large 8 bit mask - the large 8-bit mask for large 32-bit icons """
-       which = 'l8mk'
-       want = 'l8mk'
-class large_32_bit_icon(aetools.NProperty):
-       """large 32 bit icon - the large 32-bit color icon """
-       which = 'il32'
-       want = 'il32'
-class large_8_bit_icon(aetools.NProperty):
-       """large 8 bit icon - the large 8-bit color icon """
-       which = 'icl8'
-       want = 'icl8'
-class large_4_bit_icon(aetools.NProperty):
-       """large 4 bit icon - the large 4-bit color icon """
-       which = 'icl4'
-       want = 'icl4'
-class small_monochrome_icon_and_mask(aetools.NProperty):
-       """small monochrome icon and mask - the small black-and-white icon and the mask for small icons """
-       which = 'ics#'
-       want = 'ics#'
-class small_8_bit_mask(aetools.NProperty):
-       """small 8 bit mask - the small 8-bit mask for small 32-bit icons """
-       which = 'ics8'
-       want = 's8mk'
-class small_32_bit_icon(aetools.NProperty):
-       """small 32 bit icon - the small 32-bit color icon """
-       which = 'is32'
-       want = 'is32'
-
-small_8_bit_icon = small_8_bit_mask
-class small_4_bit_icon(aetools.NProperty):
-       """small 4 bit icon - the small 4-bit color icon """
-       which = 'ics4'
-       want = 'ics4'
-
-class alias_list(aetools.ComponentItem):
-       """alias list - A list of aliases.  Use \8cas alias list¹ when a list of aliases is needed (instead of a list of file system item references). """
-       want = 'alst'
-preferences._propdict = {
-       'window' : window,
-       'button_view_arrangement' : button_view_arrangement,
-       'button_view_icon_size' : button_view_icon_size,
-       'spatial_view_arrangement' : spatial_view_arrangement,
-       'spatial_view_icon_size' : spatial_view_icon_size,
-       'calculates_folder_sizes' : calculates_folder_sizes,
-       'list_view_icon_size' : list_view_icon_size,
-       'shows_comments' : shows_comments,
-       'shows_creation_date' : shows_creation_date,
-       'shows_kind' : shows_kind,
-       'shows_label' : shows_label,
-       'shows_modification_date' : shows_modification_date,
-       'shows_size' : shows_size,
-       'shows_version' : shows_version,
-       'uses_relative_dates' : uses_relative_dates,
-       'uses_simple_menus' : uses_simple_menus,
-       'uses_wide_grid' : uses_wide_grid,
-       'spring_open_folders' : spring_open_folders,
-       'delay_before_springing' : delay_before_springing,
-       'view_font' : view_font,
-       'view_font_size' : view_font_size,
-}
-preferences._elemdict = {
-       'label' : label,
-}
-label._propdict = {
-       'name' : name,
-       'index' : index,
-       'color' : color,
-}
-label._elemdict = {
-}
-icon_family._propdict = {
-       'large_monochrome_icon_and_mask' : large_monochrome_icon_and_mask,
-       'large_8_bit_mask' : large_8_bit_mask,
-       'large_32_bit_icon' : large_32_bit_icon,
-       'large_8_bit_icon' : large_8_bit_icon,
-       'large_4_bit_icon' : large_4_bit_icon,
-       'small_monochrome_icon_and_mask' : small_monochrome_icon_and_mask,
-       'small_8_bit_mask' : small_8_bit_mask,
-       'small_32_bit_icon' : small_32_bit_icon,
-       'small_8_bit_icon' : small_8_bit_icon,
-       'small_4_bit_icon' : small_4_bit_icon,
-}
-icon_family._elemdict = {
-}
-alias_list._propdict = {
-}
-alias_list._elemdict = {
-}
-
-#
-# Indices of types declared in this module
-#
-_classdeclarations = {
-       'clbl' : label,
-       'ifam' : icon_family,
-       'alst' : alias_list,
-       'cprf' : preferences,
-}
-
-_propdeclarations = {
-       'ics#' : small_monochrome_icon_and_mask,
-       'scda' : shows_creation_date,
-       'uswg' : uses_wide_grid,
-       'sprg' : spring_open_folders,
-       'is32' : small_32_bit_icon,
-       'ICN#' : large_monochrome_icon_and_mask,
-       'cwin' : window,
-       'sdat' : shows_modification_date,
-       'iisz' : spatial_view_icon_size,
-       'barr' : button_view_arrangement,
-       'il32' : large_32_bit_icon,
-       'l8mk' : large_8_bit_mask,
-       'scom' : shows_comments,
-       'bisz' : button_view_icon_size,
-       'lisz' : list_view_icon_size,
-       'slbl' : shows_label,
-       'icl4' : large_4_bit_icon,
-       'usme' : uses_simple_menus,
-       'urdt' : uses_relative_dates,
-       'vfnt' : view_font,
-       'sfsz' : calculates_folder_sizes,
-       'pidx' : index,
-       'icl8' : large_8_bit_icon,
-       'ssiz' : shows_size,
-       'ics8' : small_8_bit_mask,
-       'colr' : color,
-       'svrs' : shows_version,
-       'pnam' : name,
-       'sknd' : shows_kind,
-       'vfsz' : view_font_size,
-       'iarr' : spatial_view_arrangement,
-       'ics4' : small_4_bit_icon,
-       'dela' : delay_before_springing,
-}
-
-_compdeclarations = {
-}
-
-_enumdeclarations = {
-}
diff --git a/Mac/Lib/lib-scriptpackages/Finder/Window_classes.py b/Mac/Lib/lib-scriptpackages/Finder/Window_classes.py
deleted file mode 100644 (file)
index 17a3c36..0000000
+++ /dev/null
@@ -1,391 +0,0 @@
-"""Suite Window classes: Classes representing windows
-Level 1, version 1
-
-Generated from Macintosh HD:Systeemmap:Finder
-AETE/AEUT resource version 0/144, language 0, script 0
-"""
-
-import aetools
-import MacOS
-
-_code = 'fndr'
-
-class Window_classes_Events:
-
-       pass
-
-
-class window(aetools.ComponentItem):
-       """window - A window """
-       want = 'cwin'
-class position(aetools.NProperty):
-       """position - the upper left position of the window """
-       which = 'posn'
-       want = 'QDpt'
-class bounds(aetools.NProperty):
-       """bounds - the boundary rectangle for the window """
-       which = 'pbnd'
-       want = 'qdrt'
-class titled(aetools.NProperty):
-       """titled - Does the window have a title bar? """
-       which = 'ptit'
-       want = 'bool'
-class name(aetools.NProperty):
-       """name - the name of the window """
-       which = 'pnam'
-       want = 'itxt'
-class index(aetools.NProperty):
-       """index - the number of the window in the front-to-back layer ordering """
-       which = 'pidx'
-       want = 'long'
-class closeable(aetools.NProperty):
-       """closeable - Does the window have a close box? """
-       which = 'hclb'
-       want = 'bool'
-class floating(aetools.NProperty):
-       """floating - Does the window have a title bar? """
-       which = 'isfl'
-       want = 'bool'
-class modal(aetools.NProperty):
-       """modal - Is the window modal? """
-       which = 'pmod'
-       want = 'bool'
-
-resizable = titled
-class zoomable(aetools.NProperty):
-       """zoomable - Is the window zoomable? """
-       which = 'iszm'
-       want = 'bool'
-class zoomed(aetools.NProperty):
-       """zoomed - Is the window zoomed? """
-       which = 'pzum'
-       want = 'bool'
-class zoomed_full_size(aetools.NProperty):
-       """zoomed full size - Is the window zoomed to the full size of the screen? (can only be set, not read, and only applies to open non-pop-up windows) """
-       which = 'zumf'
-       want = 'bool'
-class visible(aetools.NProperty):
-       """visible - Is the window visible (always true for open Finder windows)? """
-       which = 'pvis'
-       want = 'bool'
-class popup(aetools.NProperty):
-       """popup - Is the window is a pop-up window? (only applies to open container windows in the Finder and can only be set when the Finder is the front application) """
-       which = 'drwr'
-       want = 'bool'
-class pulled_open(aetools.NProperty):
-       """pulled open - Is the window pulled open (only applies to pop-up windows and can only be set when the Finder is the front application)? """
-       which = 'pull'
-       want = 'bool'
-class collapsed(aetools.NProperty):
-       """collapsed - Is the window collapsed (only applies to open non-pop-up windows)? """
-       which = 'wshd'
-       want = 'bool'
-
-windows = window
-
-class container_window(aetools.ComponentItem):
-       """container window - A window that contains items """
-       want = 'cwnd'
-class _3c_Inheritance_3e_(aetools.NProperty):
-       """<Inheritance> - inherits some of its properties from the window class """
-       which = 'c@#^'
-       want = 'cwin'
-class container(aetools.NProperty):
-       """container - the container from which the window was opened """
-       which = 'ctnr'
-       want = 'obj '
-class item(aetools.NProperty):
-       """item - the item from which the window was opened (always returns something) """
-       which = 'cobj'
-       want = 'obj '
-class has_custom_view_settings(aetools.NProperty):
-       """has custom view settings - Does the folder have custom view settings or is it using the default global settings? """
-       which = 'cuss'
-       want = 'bool'
-class view(aetools.NProperty):
-       """view - the current view for the window (icon, name, date, etc.) """
-       which = 'pvew'
-       want = 'long'
-class previous_list_view(aetools.NProperty):
-       """previous list view - the last non-icon view (by name, by date, etc.) selected for the container (forgotten as soon as the window is closed and only available when the window is open) """
-       which = 'svew'
-       want = 'enum'
-class button_view_arrangement(aetools.NProperty):
-       """button view arrangement - the property by which to keep icons arranged within a button view window """
-       which = 'barr'
-       want = 'earr'
-class spatial_view_arrangement(aetools.NProperty):
-       """spatial view arrangement - the property by which to keep icons arranged within a spatial view window """
-       which = 'iarr'
-       want = 'earr'
-class sort_direction(aetools.NProperty):
-       """sort direction - The direction in which the window is sorted """
-       which = 'sord'
-       want = 'sodr'
-class calculates_folder_sizes(aetools.NProperty):
-       """calculates folder sizes - Are folder sizes calculated and displayed in the window? (does not apply to suitcase windows) """
-       which = 'sfsz'
-       want = 'bool'
-class shows_comments(aetools.NProperty):
-       """shows comments - Are comments displayed in the window? (does not apply to suitcases) """
-       which = 'scom'
-       want = 'bool'
-class shows_creation_date(aetools.NProperty):
-       """shows creation date - Are creation dates displayed in the window? """
-       which = 'scda'
-       want = 'bool'
-class shows_kind(aetools.NProperty):
-       """shows kind - Are document kinds displayed in the window? """
-       which = 'sknd'
-       want = 'bool'
-class shows_label(aetools.NProperty):
-       """shows label - Are labels displayed in the window? """
-       which = 'slbl'
-       want = 'bool'
-class shows_modification_date(aetools.NProperty):
-       """shows modification date - Are modification dates displayed in the window? """
-       which = 'sdat'
-       want = 'bool'
-class shows_size(aetools.NProperty):
-       """shows size - Are file sizes displayed in the window? """
-       which = 'ssiz'
-       want = 'bool'
-class shows_version(aetools.NProperty):
-       """shows version - Are file versions displayed in the window? (does not apply to suitcase windows) """
-       which = 'svrs'
-       want = 'bool'
-class uses_relative_dates(aetools.NProperty):
-       """uses relative dates - Are relative dates (e.g., today, yesterday) shown in the window? """
-       which = 'urdt'
-       want = 'bool'
-
-container_windows = container_window
-
-class information_window(aetools.ComponentItem):
-       """information window - An information window (opened by Â³Get Info²) """
-       want = 'iwnd'
-class current_panel(aetools.NProperty):
-       """current panel - the current panel in the information window """
-       which = 'panl'
-       want = 'ipnl'
-class comment(aetools.NProperty):
-       """comment - the comment """
-       which = 'comt'
-       want = 'itxt'
-class size(aetools.NProperty):
-       """size - the logical size of the item """
-       which = 'ptsz'
-       want = 'long'
-class physical_size(aetools.NProperty):
-       """physical size - the actual space used by the item on disk """
-       which = 'phys'
-       want = 'long'
-class creation_date(aetools.NProperty):
-       """creation date - the date on which the item was created """
-       which = 'ascd'
-       want = 'ldt '
-class modification_date(aetools.NProperty):
-       """modification date - the date on which the item was last modified """
-       which = 'asmo'
-       want = 'ldt '
-class suggested_size(aetools.NProperty):
-       """suggested size - the memory size with which the developer recommends the application be launched """
-       which = 'sprt'
-       want = 'long'
-class minimum_size(aetools.NProperty):
-       """minimum size - the smallest memory size with which the application can be launched (only applies to information windows for applications) """
-       which = 'mprt'
-       want = 'long'
-class preferred_size(aetools.NProperty):
-       """preferred size - the memory size with which the application will be launched (only applies to information windows for applications) """
-       which = 'appt'
-       want = 'long'
-class icon(aetools.NProperty):
-       """icon - the icon bitmap of the item """
-       which = 'iimg'
-       want = 'ifam'
-class locked(aetools.NProperty):
-       """locked - Is the item locked (applies only to file and application information windows)? """
-       which = 'aslk'
-       want = 'bool'
-class stationery(aetools.NProperty):
-       """stationery - Is the item a stationery pad? """
-       which = 'pspd'
-       want = 'bool'
-class warns_before_emptying(aetools.NProperty):
-       """warns before emptying - Display a dialog when emptying the trash (only valid for trash info window)? """
-       which = 'warn'
-       want = 'bool'
-class product_version(aetools.NProperty):
-       """product version - the version of the product (visible at the top of the Â³Get Info² window) """
-       which = 'ver2'
-       want = 'itxt'
-class version(aetools.NProperty):
-       """version - the version of the file (visible at the bottom of the Â³Get Info² window) """
-       which = 'vers'
-       want = 'itxt'
-
-information_windows = information_window
-
-class preferences_window(aetools.ComponentItem):
-       """preferences window - The Finder Preferences window """
-       want = 'pwnd'
-
-class clipping_window(aetools.ComponentItem):
-       """clipping window - The window containing a clipping """
-       want = 'lwnd'
-
-clipping_windows = clipping_window
-
-class content_space(aetools.ComponentItem):
-       """content space - All windows, including the desktop window (³Window² does not include the desktop window) """
-       want = 'dwnd'
-
-content_spaces = content_space
-window._propdict = {
-       'position' : position,
-       'bounds' : bounds,
-       'titled' : titled,
-       'name' : name,
-       'index' : index,
-       'closeable' : closeable,
-       'floating' : floating,
-       'modal' : modal,
-       'resizable' : resizable,
-       'zoomable' : zoomable,
-       'zoomed' : zoomed,
-       'zoomed_full_size' : zoomed_full_size,
-       'visible' : visible,
-       'popup' : popup,
-       'pulled_open' : pulled_open,
-       'collapsed' : collapsed,
-}
-window._elemdict = {
-}
-container_window._propdict = {
-       '_3c_Inheritance_3e_' : _3c_Inheritance_3e_,
-       'container' : container,
-       'item' : item,
-       'has_custom_view_settings' : has_custom_view_settings,
-       'view' : view,
-       'previous_list_view' : previous_list_view,
-       'button_view_arrangement' : button_view_arrangement,
-       'spatial_view_arrangement' : spatial_view_arrangement,
-       'sort_direction' : sort_direction,
-       'calculates_folder_sizes' : calculates_folder_sizes,
-       'shows_comments' : shows_comments,
-       'shows_creation_date' : shows_creation_date,
-       'shows_kind' : shows_kind,
-       'shows_label' : shows_label,
-       'shows_modification_date' : shows_modification_date,
-       'shows_size' : shows_size,
-       'shows_version' : shows_version,
-       'uses_relative_dates' : uses_relative_dates,
-}
-container_window._elemdict = {
-}
-information_window._propdict = {
-       '_3c_Inheritance_3e_' : _3c_Inheritance_3e_,
-       'item' : item,
-       'current_panel' : current_panel,
-       'comment' : comment,
-       'size' : size,
-       'physical_size' : physical_size,
-       'creation_date' : creation_date,
-       'modification_date' : modification_date,
-       'suggested_size' : suggested_size,
-       'minimum_size' : minimum_size,
-       'preferred_size' : preferred_size,
-       'icon' : icon,
-       'locked' : locked,
-       'stationery' : stationery,
-       'warns_before_emptying' : warns_before_emptying,
-       'product_version' : product_version,
-       'version' : version,
-}
-information_window._elemdict = {
-}
-preferences_window._propdict = {
-       '_3c_Inheritance_3e_' : _3c_Inheritance_3e_,
-       'current_panel' : current_panel,
-}
-preferences_window._elemdict = {
-}
-clipping_window._propdict = {
-       '_3c_Inheritance_3e_' : _3c_Inheritance_3e_,
-}
-clipping_window._elemdict = {
-}
-content_space._propdict = {
-}
-content_space._elemdict = {
-}
-
-#
-# Indices of types declared in this module
-#
-_classdeclarations = {
-       'dwnd' : content_space,
-       'iwnd' : information_window,
-       'lwnd' : clipping_window,
-       'cwnd' : container_window,
-       'cwin' : window,
-       'pwnd' : preferences_window,
-}
-
-_propdeclarations = {
-       'pidx' : index,
-       'scda' : shows_creation_date,
-       'vers' : version,
-       'aslk' : locked,
-       'pvew' : view,
-       'sdat' : shows_modification_date,
-       'drwr' : popup,
-       'sprt' : suggested_size,
-       'pvis' : visible,
-       'ptsz' : size,
-       'pull' : pulled_open,
-       'slbl' : shows_label,
-       'wshd' : collapsed,
-       'ctnr' : container,
-       'ascd' : creation_date,
-       'warn' : warns_before_emptying,
-       'sord' : sort_direction,
-       'iszm' : zoomable,
-       'comt' : comment,
-       'svew' : previous_list_view,
-       'svrs' : shows_version,
-       'sknd' : shows_kind,
-       'phys' : physical_size,
-       'iarr' : spatial_view_arrangement,
-       'posn' : position,
-       'ptit' : titled,
-       'cobj' : item,
-       'asmo' : modification_date,
-       'ssiz' : shows_size,
-       'pnam' : name,
-       'pbnd' : bounds,
-       'mprt' : minimum_size,
-       'iimg' : icon,
-       'cuss' : has_custom_view_settings,
-       'appt' : preferred_size,
-       'scom' : shows_comments,
-       'pmod' : modal,
-       'panl' : current_panel,
-       'urdt' : uses_relative_dates,
-       'zumf' : zoomed_full_size,
-       'sfsz' : calculates_folder_sizes,
-       'c@#^' : _3c_Inheritance_3e_,
-       'isfl' : floating,
-       'hclb' : closeable,
-       'pspd' : stationery,
-       'pzum' : zoomed,
-       'barr' : button_view_arrangement,
-       'ver2' : product_version,
-}
-
-_compdeclarations = {
-}
-
-_enumdeclarations = {
-}
diff --git a/Mac/Lib/lib-scriptpackages/Netscape/Mozilla_suite.py b/Mac/Lib/lib-scriptpackages/Netscape/Mozilla_suite.py
deleted file mode 100644 (file)
index a1865ee..0000000
+++ /dev/null
@@ -1,269 +0,0 @@
-"""Suite Mozilla suite: Experimental Mozilla suite
-Level 1, version 1
-
-Generated from Macintosh HD:Internet:Internet-programma's:Netscape Communicator\81-map:Netscape Communicator\81
-AETE/AEUT resource version 1/0, language 0, script 0
-"""
-
-import aetools
-import MacOS
-
-_code = 'MOSS'
-
-class Mozilla_suite_Events:
-
-       _argmap_Read_help_file = {
-               'with_index' : 'idid',
-               'search_text' : 'sear',
-       }
-
-       def Read_help_file(self, _object, _attributes={}, **_arguments):
-               """Read help file: Reads in the help file (file should be in the help file format)
-               Required argument: undocumented, typecode 'alis'
-               Keyword argument with_index: Index to the help file. Defaults to  \8cDEFAULT¹)
-               Keyword argument search_text: Optional text to search for
-               Keyword argument _attributes: AppleEvent attribute dictionary
-               """
-               _code = 'MOSS'
-               _subcode = 'help'
-
-               aetools.keysubst(_arguments, self._argmap_Read_help_file)
-               _arguments['----'] = _object
-
-
-               _reply, _arguments, _attributes = self.send(_code, _subcode,
-                               _arguments, _attributes)
-               if _arguments.has_key('errn'):
-                       raise aetools.Error, aetools.decodeerror(_arguments)
-               # XXXX Optionally decode result
-               if _arguments.has_key('----'):
-                       return _arguments['----']
-
-       def Open_bookmark(self, _object=None, _attributes={}, **_arguments):
-               """Open bookmark: Reads in a bookmark file
-               Required argument: If not available, reloads the current bookmark file
-               Keyword argument _attributes: AppleEvent attribute dictionary
-               """
-               _code = 'MOSS'
-               _subcode = 'book'
-
-               if _arguments: raise TypeError, 'No optional args expected'
-               _arguments['----'] = _object
-
-
-               _reply, _arguments, _attributes = self.send(_code, _subcode,
-                               _arguments, _attributes)
-               if _arguments.has_key('errn'):
-                       raise aetools.Error, aetools.decodeerror(_arguments)
-               # XXXX Optionally decode result
-               if _arguments.has_key('----'):
-                       return _arguments['----']
-
-       _argmap_Go = {
-               'direction' : 'dire',
-       }
-
-       def Go(self, _object, _attributes={}, **_arguments):
-               """Go: navigate a window: back, forward, again(reload), home)
-               Required argument: window
-               Keyword argument direction: undocumented, typecode 'dire'
-               Keyword argument _attributes: AppleEvent attribute dictionary
-               """
-               _code = 'MOSS'
-               _subcode = 'gogo'
-
-               aetools.keysubst(_arguments, self._argmap_Go)
-               _arguments['----'] = _object
-
-               aetools.enumsubst(_arguments, 'dire', _Enum_dire)
-
-               _reply, _arguments, _attributes = self.send(_code, _subcode,
-                               _arguments, _attributes)
-               if _arguments.has_key('errn'):
-                       raise aetools.Error, aetools.decodeerror(_arguments)
-               # XXXX Optionally decode result
-               if _arguments.has_key('----'):
-                       return _arguments['----']
-
-       def Get_workingURL(self, _no_object=None, _attributes={}, **_arguments):
-               """Get workingURL: Get the path to the running application in URL format.  This will allow a script to construct a relative URL
-               Keyword argument _attributes: AppleEvent attribute dictionary
-               Returns: Will return text of the from Â³FILE://foo/applicationname²
-               """
-               _code = 'MOSS'
-               _subcode = 'wurl'
-
-               if _arguments: raise TypeError, 'No optional args expected'
-               if _no_object != None: raise TypeError, 'No direct arg expected'
-
-
-               _reply, _arguments, _attributes = self.send(_code, _subcode,
-                               _arguments, _attributes)
-               if _arguments.has_key('errn'):
-                       raise aetools.Error, aetools.decodeerror(_arguments)
-               # XXXX Optionally decode result
-               if _arguments.has_key('----'):
-                       return _arguments['----']
-
-       def Open_Profile_Manager(self, _no_object=None, _attributes={}, **_arguments):
-               """Open Profile Manager: Open the user profile manager (obsolete)
-               Keyword argument _attributes: AppleEvent attribute dictionary
-               """
-               _code = 'MOSS'
-               _subcode = 'prfl'
-
-               if _arguments: raise TypeError, 'No optional args expected'
-               if _no_object != None: raise TypeError, 'No direct arg expected'
-
-
-               _reply, _arguments, _attributes = self.send(_code, _subcode,
-                               _arguments, _attributes)
-               if _arguments.has_key('errn'):
-                       raise aetools.Error, aetools.decodeerror(_arguments)
-               # XXXX Optionally decode result
-               if _arguments.has_key('----'):
-                       return _arguments['----']
-
-       def Get_Import_Data(self, _no_object=None, _attributes={}, **_arguments):
-               """Get Import Data: Returns a structure containing information that is of use to an external module in importing data from an external mail application into Communicator.
-               Keyword argument _attributes: AppleEvent attribute dictionary
-               Returns: vRefNum and dirID of profile folder (2+4 bytes), vRefNum and DirID of the local mail folder (2+4 bytes), window type of front window (0 if none, \8cBrwz¹ browser, \8cAddr¹ addressbook, \8cMesg¹ messenger, etc., 4 bytes)
-               """
-               _code = 'MOSS'
-               _subcode = 'Impt'
-
-               if _arguments: raise TypeError, 'No optional args expected'
-               if _no_object != None: raise TypeError, 'No direct arg expected'
-
-
-               _reply, _arguments, _attributes = self.send(_code, _subcode,
-                               _arguments, _attributes)
-               if _arguments.has_key('errn'):
-                       raise aetools.Error, aetools.decodeerror(_arguments)
-               # XXXX Optionally decode result
-               if _arguments.has_key('----'):
-                       return _arguments['----']
-
-       def Get_Profile_Name(self, _no_object=None, _attributes={}, **_arguments):
-               """Get Profile Name: Get the current User Profile
-               Keyword argument _attributes: AppleEvent attribute dictionary
-               Returns: Name of the current profile, like Â³Joe Bloggs². This is the name of the profile folder in the Netscape Users folder.
-               """
-               _code = 'MOSS'
-               _subcode = 'upro'
-
-               if _arguments: raise TypeError, 'No optional args expected'
-               if _no_object != None: raise TypeError, 'No direct arg expected'
-
-
-               _reply, _arguments, _attributes = self.send(_code, _subcode,
-                               _arguments, _attributes)
-               if _arguments.has_key('errn'):
-                       raise aetools.Error, aetools.decodeerror(_arguments)
-               # XXXX Optionally decode result
-               if _arguments.has_key('----'):
-                       return _arguments['----']
-
-       def Open_Address_Book(self, _no_object=None, _attributes={}, **_arguments):
-               """Open Address Book: Opens the address book
-               Keyword argument _attributes: AppleEvent attribute dictionary
-               """
-               _code = 'MOSS'
-               _subcode = 'addr'
-
-               if _arguments: raise TypeError, 'No optional args expected'
-               if _no_object != None: raise TypeError, 'No direct arg expected'
-
-
-               _reply, _arguments, _attributes = self.send(_code, _subcode,
-                               _arguments, _attributes)
-               if _arguments.has_key('errn'):
-                       raise aetools.Error, aetools.decodeerror(_arguments)
-               # XXXX Optionally decode result
-               if _arguments.has_key('----'):
-                       return _arguments['----']
-
-       def Open_Component(self, _object, _attributes={}, **_arguments):
-               """Open Component: Open a Communicator component
-               Required argument: The component to open
-               Keyword argument _attributes: AppleEvent attribute dictionary
-               """
-               _code = 'MOSS'
-               _subcode = 'cpnt'
-
-               if _arguments: raise TypeError, 'No optional args expected'
-               _arguments['----'] = _object
-
-
-               _reply, _arguments, _attributes = self.send(_code, _subcode,
-                               _arguments, _attributes)
-               if _arguments.has_key('errn'):
-                       raise aetools.Error, aetools.decodeerror(_arguments)
-               # XXXX Optionally decode result
-               if _arguments.has_key('----'):
-                       return _arguments['----']
-
-       def Handle_command(self, _object, _attributes={}, **_arguments):
-               """Handle command: Handle a command
-               Required argument: The command to handle
-               Keyword argument _attributes: AppleEvent attribute dictionary
-               """
-               _code = 'MOSS'
-               _subcode = 'hcmd'
-
-               if _arguments: raise TypeError, 'No optional args expected'
-               _arguments['----'] = _object
-
-
-               _reply, _arguments, _attributes = self.send(_code, _subcode,
-                               _arguments, _attributes)
-               if _arguments.has_key('errn'):
-                       raise aetools.Error, aetools.decodeerror(_arguments)
-               # XXXX Optionally decode result
-               if _arguments.has_key('----'):
-                       return _arguments['----']
-
-_Enum_dire = {
-       'again' : 'agai',       # Again (reload)
-       'home' : 'home',        # Home
-       'backward' : 'prev',    # Previous page
-       'forward' : 'next',     # Next page
-}
-
-_Enum_comp = {
-       'Navigator' : 'navg',   # The Navigator component
-       'InBox' : 'inbx',       # The InBox component
-       'Newsgroups' : 'colb',  # The Newsgroups component
-       'Composer' : 'cpsr',    # The Page Composer component
-       'Conference' : 'conf',  # The Conference Component
-       'Calendar' : 'cald',    # The Calendar Component
-}
-
-_Enum_ncmd = {
-       'Get_new_mail' : '\000\000\004W',       # 
-       'Send_queued_messages' : '\000\000\004X',       # 
-       'Read_newsgroups' : '\000\000\004\004', # 
-       'Show_Inbox' : '\000\000\004\005',      # 
-       'Show_Bookmarks_window' : '\000\000\004\006',   # 
-       'Show_History_window' : '\000\000\004\007',     # 
-       'Show_Address_Book_window' : '\000\000\004\011',        # 
-}
-
-
-#
-# Indices of types declared in this module
-#
-_classdeclarations = {
-}
-
-_propdeclarations = {
-}
-
-_compdeclarations = {
-}
-
-_enumdeclarations = {
-       'dire' : _Enum_dire,
-       'comp' : _Enum_comp,
-       'ncmd' : _Enum_ncmd,
-}
diff --git a/Mac/Lib/lib-scriptpackages/Netscape/PowerPlant.py b/Mac/Lib/lib-scriptpackages/Netscape/PowerPlant.py
deleted file mode 100644 (file)
index 12d32fa..0000000
+++ /dev/null
@@ -1,86 +0,0 @@
-"""Suite PowerPlant: 
-Level 0, version 0
-
-Generated from Macintosh HD:Internet:Internet-programma's:Netscape Communicator\81-map:Netscape Communicator\81
-AETE/AEUT resource version 1/0, language 0, script 0
-"""
-
-import aetools
-import MacOS
-
-_code = 'ppnt'
-
-class PowerPlant_Events:
-
-       _argmap_select = {
-               'data' : 'data',
-       }
-
-       def select(self, _object, _attributes={}, **_arguments):
-               """select: Sets the present selection
-               Required argument: object to select or container of sub-objects to select
-               Keyword argument data: sub-object(s) to select
-               Keyword argument _attributes: AppleEvent attribute dictionary
-               """
-               _code = 'misc'
-               _subcode = 'slct'
-
-               aetools.keysubst(_arguments, self._argmap_select)
-               _arguments['----'] = _object
-
-
-               _reply, _arguments, _attributes = self.send(_code, _subcode,
-                               _arguments, _attributes)
-               if _arguments.has_key('errn'):
-                       raise aetools.Error, aetools.decodeerror(_arguments)
-               # XXXX Optionally decode result
-               if _arguments.has_key('----'):
-                       return _arguments['----']
-
-       _argmap_SwitchTellTarget = {
-               'to' : 'data',
-       }
-
-       def SwitchTellTarget(self, _no_object=None, _attributes={}, **_arguments):
-               """SwitchTellTarget: Makes an object the Â³focus² of AppleEvents
-               Keyword argument to: reference to new focus of AppleEvents
-               Keyword argument _attributes: AppleEvent attribute dictionary
-               """
-               _code = 'ppnt'
-               _subcode = 'sttg'
-
-               aetools.keysubst(_arguments, self._argmap_SwitchTellTarget)
-               if _no_object != None: raise TypeError, 'No direct arg expected'
-
-
-               _reply, _arguments, _attributes = self.send(_code, _subcode,
-                               _arguments, _attributes)
-               if _arguments.has_key('errn'):
-                       raise aetools.Error, aetools.decodeerror(_arguments)
-               # XXXX Optionally decode result
-               if _arguments.has_key('----'):
-                       return _arguments['----']
-
-_Enum_dbac = {
-       'DoNothing' : '\000\000\000\000',       # No debugging action is taken.
-       'PostAlert' : '\000\000\000\001',       # Post an alert.
-       'LowLevelDebugger' : '\000\000\000\002',        # Break into the low level debugger (MacsBug).
-       'SourceDebugger' : '\000\000\000\003',  # Break into the source level debugger (if source debugger is executing).
-}
-
-
-#
-# Indices of types declared in this module
-#
-_classdeclarations = {
-}
-
-_propdeclarations = {
-}
-
-_compdeclarations = {
-}
-
-_enumdeclarations = {
-       'dbac' : _Enum_dbac,
-}
diff --git a/Mac/Lib/lib-scriptpackages/Netscape/Required_suite.py b/Mac/Lib/lib-scriptpackages/Netscape/Required_suite.py
deleted file mode 100644 (file)
index 3aacae8..0000000
+++ /dev/null
@@ -1,108 +0,0 @@
-"""Suite Required suite: 
-Level 0, version 0
-
-Generated from Macintosh HD:Internet:Internet-programma's:Netscape Communicator\81-map:Netscape Communicator\81
-AETE/AEUT resource version 1/0, language 0, script 0
-"""
-
-import aetools
-import MacOS
-
-_code = 'reqd'
-
-from StdSuites.Required_Suite import *
-class Required_suite_Events(Required_Suite_Events):
-
-       def open(self, _object, _attributes={}, **_arguments):
-               """open: Open the specified object(s)
-               Required argument: list of objects to open
-               Keyword argument _attributes: AppleEvent attribute dictionary
-               """
-               _code = 'aevt'
-               _subcode = 'odoc'
-
-               if _arguments: raise TypeError, 'No optional args expected'
-               _arguments['----'] = _object
-
-
-               _reply, _arguments, _attributes = self.send(_code, _subcode,
-                               _arguments, _attributes)
-               if _arguments.has_key('errn'):
-                       raise aetools.Error, aetools.decodeerror(_arguments)
-               # XXXX Optionally decode result
-               if _arguments.has_key('----'):
-                       return _arguments['----']
-
-       def _print(self, _object, _attributes={}, **_arguments):
-               """print: Print the specified object(s)
-               Required argument: list of objects to print
-               Keyword argument _attributes: AppleEvent attribute dictionary
-               """
-               _code = 'aevt'
-               _subcode = 'pdoc'
-
-               if _arguments: raise TypeError, 'No optional args expected'
-               _arguments['----'] = _object
-
-
-               _reply, _arguments, _attributes = self.send(_code, _subcode,
-                               _arguments, _attributes)
-               if _arguments.has_key('errn'):
-                       raise aetools.Error, aetools.decodeerror(_arguments)
-               # XXXX Optionally decode result
-               if _arguments.has_key('----'):
-                       return _arguments['----']
-
-       def quit(self, _no_object=None, _attributes={}, **_arguments):
-               """quit: Quit Navigator
-               Keyword argument _attributes: AppleEvent attribute dictionary
-               """
-               _code = 'aevt'
-               _subcode = 'quit'
-
-               if _arguments: raise TypeError, 'No optional args expected'
-               if _no_object != None: raise TypeError, 'No direct arg expected'
-
-
-               _reply, _arguments, _attributes = self.send(_code, _subcode,
-                               _arguments, _attributes)
-               if _arguments.has_key('errn'):
-                       raise aetools.Error, aetools.decodeerror(_arguments)
-               # XXXX Optionally decode result
-               if _arguments.has_key('----'):
-                       return _arguments['----']
-
-       def run(self, _no_object=None, _attributes={}, **_arguments):
-               """run: Sent to an application when it is double-clicked
-               Keyword argument _attributes: AppleEvent attribute dictionary
-               """
-               _code = 'aevt'
-               _subcode = 'oapp'
-
-               if _arguments: raise TypeError, 'No optional args expected'
-               if _no_object != None: raise TypeError, 'No direct arg expected'
-
-
-               _reply, _arguments, _attributes = self.send(_code, _subcode,
-                               _arguments, _attributes)
-               if _arguments.has_key('errn'):
-                       raise aetools.Error, aetools.decodeerror(_arguments)
-               # XXXX Optionally decode result
-               if _arguments.has_key('----'):
-                       return _arguments['----']
-
-
-#
-# Indices of types declared in this module
-#
-_classdeclarations = {
-}
-
-_propdeclarations = {
-}
-
-_compdeclarations = {
-}
-
-_enumdeclarations = {
-}
diff --git a/Mac/Lib/lib-scriptpackages/Netscape/Standard_Suite.py b/Mac/Lib/lib-scriptpackages/Netscape/Standard_Suite.py
deleted file mode 100644 (file)
index cccdbdf..0000000
+++ /dev/null
@@ -1,238 +0,0 @@
-"""Suite Standard Suite: Common terms for most applications
-Level 1, version 1
-
-Generated from Macintosh HD:Internet:Internet-programma's:Netscape Communicator\81-map:Netscape Communicator\81
-AETE/AEUT resource version 1/0, language 0, script 0
-"""
-
-import aetools
-import MacOS
-
-_code = 'CoRe'
-
-class Standard_Suite_Events:
-
-       def close(self, _object, _attributes={}, **_arguments):
-               """close: Close an object
-               Required argument: the objects to close
-               Keyword argument _attributes: AppleEvent attribute dictionary
-               """
-               _code = 'core'
-               _subcode = 'clos'
-
-               if _arguments: raise TypeError, 'No optional args expected'
-               _arguments['----'] = _object
-
-
-               _reply, _arguments, _attributes = self.send(_code, _subcode,
-                               _arguments, _attributes)
-               if _arguments.has_key('errn'):
-                       raise aetools.Error, aetools.decodeerror(_arguments)
-               # XXXX Optionally decode result
-               if _arguments.has_key('----'):
-                       return _arguments['----']
-
-       def data_size(self, _object, _attributes={}, **_arguments):
-               """data size: Return the size in bytes of an object
-               Required argument: the object whose data size is to be returned
-               Keyword argument _attributes: AppleEvent attribute dictionary
-               Returns: the size of the object in bytes
-               """
-               _code = 'core'
-               _subcode = 'dsiz'
-
-               if _arguments: raise TypeError, 'No optional args expected'
-               _arguments['----'] = _object
-
-
-               _reply, _arguments, _attributes = self.send(_code, _subcode,
-                               _arguments, _attributes)
-               if _arguments.has_key('errn'):
-                       raise aetools.Error, aetools.decodeerror(_arguments)
-               # XXXX Optionally decode result
-               if _arguments.has_key('----'):
-                       return _arguments['----']
-
-       def get(self, _object, _attributes={}, **_arguments):
-               """get: Get the data for an object
-               Required argument: the object whose data is to be returned
-               Keyword argument _attributes: AppleEvent attribute dictionary
-               Returns: The data from the object
-               """
-               _code = 'core'
-               _subcode = 'getd'
-
-               if _arguments: raise TypeError, 'No optional args expected'
-               _arguments['----'] = _object
-
-
-               _reply, _arguments, _attributes = self.send(_code, _subcode,
-                               _arguments, _attributes)
-               if _arguments.has_key('errn'):
-                       raise aetools.Error, aetools.decodeerror(_arguments)
-               # XXXX Optionally decode result
-               if _arguments.has_key('----'):
-                       return _arguments['----']
-
-       _argmap_set = {
-               'to' : 'data',
-       }
-
-       def set(self, _object, _attributes={}, **_arguments):
-               """set: Set an object¹s data
-               Required argument: the object to change
-               Keyword argument to: the new value
-               Keyword argument _attributes: AppleEvent attribute dictionary
-               """
-               _code = 'core'
-               _subcode = 'setd'
-
-               aetools.keysubst(_arguments, self._argmap_set)
-               _arguments['----'] = _object
-
-
-               _reply, _arguments, _attributes = self.send(_code, _subcode,
-                               _arguments, _attributes)
-               if _arguments.has_key('errn'):
-                       raise aetools.Error, aetools.decodeerror(_arguments)
-               # XXXX Optionally decode result
-               if _arguments.has_key('----'):
-                       return _arguments['----']
-
-
-class application(aetools.ComponentItem):
-       """application - An application program """
-       want = 'capp'
-class alert_application(aetools.NProperty):
-       """alert application - Most of the alerts will be sent to this application using yet unspecified AE interface. We need a few alert boxes: alert, confirm and notify. Any ideas on how to design this event? mailto:atotic@netscape.com. I¹d like to conform to the standard. """
-       which = 'ALAP'
-       want = 'type'
-class kiosk_mode(aetools.NProperty):
-       """kiosk mode - Kiosk mode leaves very few menus enabled """
-       which = 'KOSK'
-       want = 'long'
-#        element 'cwin' as ['indx', 'name', 'ID  ']
-
-class window(aetools.ComponentItem):
-       """window - A Window """
-       want = 'cwin'
-class bounds(aetools.NProperty):
-       """bounds - the boundary rectangle for the window """
-       which = 'pbnd'
-       want = 'qdrt'
-class closeable(aetools.NProperty):
-       """closeable - Does the window have a close box? """
-       which = 'hclb'
-       want = 'bool'
-class titled(aetools.NProperty):
-       """titled - Does the window have a title bar? """
-       which = 'ptit'
-       want = 'bool'
-class index(aetools.NProperty):
-       """index - the number of the window """
-       which = 'pidx'
-       want = 'long'
-class floating(aetools.NProperty):
-       """floating - Does the window float? """
-       which = 'isfl'
-       want = 'bool'
-class modal(aetools.NProperty):
-       """modal - Is the window modal? """
-       which = 'pmod'
-       want = 'bool'
-class resizable(aetools.NProperty):
-       """resizable - Is the window resizable? """
-       which = 'prsz'
-       want = 'bool'
-class zoomable(aetools.NProperty):
-       """zoomable - Is the window zoomable? """
-       which = 'iszm'
-       want = 'bool'
-class zoomed(aetools.NProperty):
-       """zoomed - Is the window zoomed? """
-       which = 'pzum'
-       want = 'bool'
-class name(aetools.NProperty):
-       """name - the title of the window """
-       which = 'pnam'
-       want = 'itxt'
-class visible(aetools.NProperty):
-       """visible - is the window visible? """
-       which = 'pvis'
-       want = 'bool'
-class position(aetools.NProperty):
-       """position - upper left coordinates of window """
-       which = 'ppos'
-       want = 'QDpt'
-class URL(aetools.NProperty):
-       """URL - Current URL """
-       which = 'curl'
-       want = 'TEXT'
-class unique_ID(aetools.NProperty):
-       """unique ID - Window¹s unique ID (a bridge between WWW! suite window id¹s and standard AE windows) """
-       which = 'wiid'
-       want = 'long'
-class busy(aetools.NProperty):
-       """busy - Is window loading something right now. 2, window is busy and will reject load requests. 1, window is busy, but will interrupt outstanding loads """
-       which = 'busy'
-       want = 'long'
-application._propdict = {
-       'alert_application' : alert_application,
-       'kiosk_mode' : kiosk_mode,
-}
-application._elemdict = {
-       'window' : window,
-}
-window._propdict = {
-       'bounds' : bounds,
-       'closeable' : closeable,
-       'titled' : titled,
-       'index' : index,
-       'floating' : floating,
-       'modal' : modal,
-       'resizable' : resizable,
-       'zoomable' : zoomable,
-       'zoomed' : zoomed,
-       'name' : name,
-       'visible' : visible,
-       'position' : position,
-       'URL' : URL,
-       'unique_ID' : unique_ID,
-       'busy' : busy,
-}
-window._elemdict = {
-}
-
-#
-# Indices of types declared in this module
-#
-_classdeclarations = {
-       'cwin' : window,
-       'capp' : application,
-}
-
-_propdeclarations = {
-       'ptit' : titled,
-       'pidx' : index,
-       'ppos' : position,
-       'curl' : URL,
-       'pnam' : name,
-       'pbnd' : bounds,
-       'isfl' : floating,
-       'hclb' : closeable,
-       'ALAP' : alert_application,
-       'iszm' : zoomable,
-       'pmod' : modal,
-       'pzum' : zoomed,
-       'pvis' : visible,
-       'KOSK' : kiosk_mode,
-       'busy' : busy,
-       'prsz' : resizable,
-       'wiid' : unique_ID,
-}
-
-_compdeclarations = {
-}
-
-_enumdeclarations = {
-}
diff --git a/Mac/Lib/lib-scriptpackages/Netscape/Standard_URL_suite.py b/Mac/Lib/lib-scriptpackages/Netscape/Standard_URL_suite.py
deleted file mode 100644 (file)
index 9becca5..0000000
+++ /dev/null
@@ -1,60 +0,0 @@
-"""Suite Standard URL suite: Mac URL standard, supported by many apps
-
-
-Level 1, version 1
-
-Generated from Macintosh HD:Internet:Internet-programma's:Netscape Communicator\81-map:Netscape Communicator\81
-AETE/AEUT resource version 1/0, language 0, script 0
-"""
-
-import aetools
-import MacOS
-
-_code = 'GURL'
-
-class Standard_URL_suite_Events:
-
-       _argmap_GetURL = {
-               'to' : 'dest',
-               'inside' : 'HWIN',
-               '_from' : 'refe',
-       }
-
-       def GetURL(self, _object, _attributes={}, **_arguments):
-               """GetURL: Loads the URL (optionally to disk)
-               Required argument: The url 
-               Keyword argument to: file the URL should be loaded into  
-               Keyword argument inside: Window the URL should be loaded to
-               Keyword argument _from: Referrer, to be sent with the HTTP request
-               Keyword argument _attributes: AppleEvent attribute dictionary
-               """
-               _code = 'GURL'
-               _subcode = 'GURL'
-
-               aetools.keysubst(_arguments, self._argmap_GetURL)
-               _arguments['----'] = _object
-
-
-               _reply, _arguments, _attributes = self.send(_code, _subcode,
-                               _arguments, _attributes)
-               if _arguments.has_key('errn'):
-                       raise aetools.Error, aetools.decodeerror(_arguments)
-               # XXXX Optionally decode result
-               if _arguments.has_key('----'):
-                       return _arguments['----']
-
-
-#
-# Indices of types declared in this module
-#
-_classdeclarations = {
-}
-
-_propdeclarations = {
-}
-
-_compdeclarations = {
-}
-
-_enumdeclarations = {
-}
diff --git a/Mac/Lib/lib-scriptpackages/Netscape/Text.py b/Mac/Lib/lib-scriptpackages/Netscape/Text.py
deleted file mode 100644 (file)
index c4b4799..0000000
+++ /dev/null
@@ -1,120 +0,0 @@
-"""Suite Text: 
-Level 0, version 0
-
-Generated from Macintosh HD:Internet:Internet-programma's:Netscape Communicator\81-map:Netscape Communicator\81
-AETE/AEUT resource version 1/0, language 0, script 0
-"""
-
-import aetools
-import MacOS
-
-_code = 'TEXT'
-
-from StdSuites.Text_Suite import *
-class Text_Events(Text_Suite_Events):
-
-       pass
-
-
-class text(aetools.ComponentItem):
-       """text - independent text view objects """
-       want = 'ctxt'
-class updateLevel(aetools.NProperty):
-       """updateLevel - updating level.  Can only be incremented or decremented.  Do so only in a try block -- if the level is greater than zero, visual text updating will cease. """
-       which = 'pUpL'
-       want = 'long'
-class beginning(aetools.NProperty):
-       """beginning - Beginning of element """
-       which = 'bgng'
-       want = 'obj '
-class end(aetools.NProperty):
-       """end - Ending of element """
-       which = 'end '
-       want = 'obj '
-class infront(aetools.NProperty):
-       """infront - Immediately before element """
-       which = 'pBef'
-       want = 'obj '
-class justbehind(aetools.NProperty):
-       """justbehind - Immediately after element """
-       which = 'pAft'
-       want = 'obj '
-#        element 'stys' as ['indx', 'name']
-
-class styleset(aetools.ComponentItem):
-       """styleset - A style Â³set² that may be used repeatedly in text objects. """
-       want = 'stys'
-class name(aetools.NProperty):
-       """name - style name """
-       which = 'pnam'
-       want = 'TEXT'
-class color(aetools.NProperty):
-       """color - the color """
-       which = 'colr'
-       want = 'RGB '
-class font(aetools.NProperty):
-       """font - font name """
-       which = 'font'
-       want = 'TEXT'
-class size(aetools.NProperty):
-       """size - the size in points """
-       which = 'ptsz'
-       want = 'long'
-class writing_code(aetools.NProperty):
-       """writing code - the script system and language """
-       which = 'psct'
-       want = 'tsty'
-class style(aetools.NProperty):
-       """style - the text styles or face attributes """
-       which = 'txst'
-       want = 'tsty'
-
-stylesets = styleset
-text._propdict = {
-       'updateLevel' : updateLevel,
-       'beginning' : beginning,
-       'end' : end,
-       'infront' : infront,
-       'justbehind' : justbehind,
-}
-text._elemdict = {
-       'styleset' : styleset,
-}
-styleset._propdict = {
-       'name' : name,
-       'color' : color,
-       'font' : font,
-       'size' : size,
-       'writing_code' : writing_code,
-       'style' : style,
-}
-styleset._elemdict = {
-}
-
-#
-# Indices of types declared in this module
-#
-_classdeclarations = {
-       'stys' : styleset,
-       'ctxt' : text,
-}
-
-_propdeclarations = {
-       'pAft' : justbehind,
-       'psct' : writing_code,
-       'txst' : style,
-       'colr' : color,
-       'pBef' : infront,
-       'pnam' : name,
-       'ptsz' : size,
-       'pUpL' : updateLevel,
-       'bgng' : beginning,
-       'font' : font,
-       'end ' : end,
-}
-
-_compdeclarations = {
-}
-
-_enumdeclarations = {
-}
diff --git a/Mac/Lib/lib-scriptpackages/Netscape/WorldWideWeb_suite.py b/Mac/Lib/lib-scriptpackages/Netscape/WorldWideWeb_suite.py
deleted file mode 100644 (file)
index 0965987..0000000
+++ /dev/null
@@ -1,426 +0,0 @@
-"""Suite WorldWideWeb suite, as defined in Spyglass spec.: 
-Level 1, version 1
-
-Generated from Macintosh HD:Internet:Internet-programma's:Netscape Communicator\81-map:Netscape Communicator\81
-AETE/AEUT resource version 1/0, language 0, script 0
-"""
-
-import aetools
-import MacOS
-
-_code = 'WWW!'
-
-class WorldWideWeb_suite_Events:
-
-       _argmap_OpenURL = {
-               'to' : 'INTO',
-               'toWindow' : 'WIND',
-               'flags' : 'FLGS',
-               'post_data' : 'POST',
-               'post_type' : 'MIME',
-               'progressApp' : 'PROG',
-       }
-
-       def OpenURL(self, _object, _attributes={}, **_arguments):
-               """OpenURL: Opens a URL. Allows for more options than GetURL event
-               Required argument: URL
-               Keyword argument to: file destination
-               Keyword argument toWindow: window iD
-               Keyword argument flags: Binary: any combination of 1, 2 and 4 is allowed: 1 and 2 mean force reload the document. 4 is ignored
-               Keyword argument post_data: Form posting data
-               Keyword argument post_type: MIME type of the posting data. Defaults to application/x-www-form-urlencoded
-               Keyword argument progressApp: Application that will display progress
-               Keyword argument _attributes: AppleEvent attribute dictionary
-               Returns: ID of the loading window
-               """
-               _code = 'WWW!'
-               _subcode = 'OURL'
-
-               aetools.keysubst(_arguments, self._argmap_OpenURL)
-               _arguments['----'] = _object
-
-
-               _reply, _arguments, _attributes = self.send(_code, _subcode,
-                               _arguments, _attributes)
-               if _arguments.has_key('errn'):
-                       raise aetools.Error, aetools.decodeerror(_arguments)
-               # XXXX Optionally decode result
-               if _arguments.has_key('----'):
-                       return _arguments['----']
-
-       _argmap_ShowFile = {
-               'MIME_type' : 'MIME',
-               'Window_ID' : 'WIND',
-               'URL' : 'URL ',
-       }
-
-       def ShowFile(self, _object, _attributes={}, **_arguments):
-               """ShowFile: Similar to OpenDocuments, except that it specifies the parent URL, and MIME type of the file
-               Required argument: File to open
-               Keyword argument MIME_type: MIME type
-               Keyword argument Window_ID: Window to open the file in
-               Keyword argument URL: Use this as a base URL
-               Keyword argument _attributes: AppleEvent attribute dictionary
-               Returns: Window ID of the loaded window. 0 means ShowFile failed, FFFFFFF means that data was not appropriate type to display in the browser.
-               """
-               _code = 'WWW!'
-               _subcode = 'SHWF'
-
-               aetools.keysubst(_arguments, self._argmap_ShowFile)
-               _arguments['----'] = _object
-
-
-               _reply, _arguments, _attributes = self.send(_code, _subcode,
-                               _arguments, _attributes)
-               if _arguments.has_key('errn'):
-                       raise aetools.Error, aetools.decodeerror(_arguments)
-               # XXXX Optionally decode result
-               if _arguments.has_key('----'):
-                       return _arguments['----']
-
-       _argmap_parse_anchor = {
-               'relative_to' : 'RELA',
-       }
-
-       def parse_anchor(self, _object, _attributes={}, **_arguments):
-               """parse anchor: Resolves the relative URL
-               Required argument: Main URL
-               Keyword argument relative_to: Relative URL
-               Keyword argument _attributes: AppleEvent attribute dictionary
-               Returns: Parsed  URL
-               """
-               _code = 'WWW!'
-               _subcode = 'PRSA'
-
-               aetools.keysubst(_arguments, self._argmap_parse_anchor)
-               _arguments['----'] = _object
-
-
-               _reply, _arguments, _attributes = self.send(_code, _subcode,
-                               _arguments, _attributes)
-               if _arguments.has_key('errn'):
-                       raise aetools.Error, aetools.decodeerror(_arguments)
-               # XXXX Optionally decode result
-               if _arguments.has_key('----'):
-                       return _arguments['----']
-
-       _argmap_cancel_progress = {
-               'in_window' : 'WIND',
-       }
-
-       def cancel_progress(self, _object=None, _attributes={}, **_arguments):
-               """cancel progress: Interrupts the download of the document in the given window
-               Required argument: progress ID, obtained from the progress app
-               Keyword argument in_window: window ID of the progress to cancel
-               Keyword argument _attributes: AppleEvent attribute dictionary
-               """
-               _code = 'WWW!'
-               _subcode = 'CNCL'
-
-               aetools.keysubst(_arguments, self._argmap_cancel_progress)
-               _arguments['----'] = _object
-
-
-               _reply, _arguments, _attributes = self.send(_code, _subcode,
-                               _arguments, _attributes)
-               if _arguments.has_key('errn'):
-                       raise aetools.Error, aetools.decodeerror(_arguments)
-               # XXXX Optionally decode result
-               if _arguments.has_key('----'):
-                       return _arguments['----']
-
-       def find_URL(self, _object, _attributes={}, **_arguments):
-               """find URL: If the file was downloaded by Netscape, you can call FindURL to find out the URL used to download the file.
-               Required argument: File spec
-               Keyword argument _attributes: AppleEvent attribute dictionary
-               Returns: The URL
-               """
-               _code = 'WWW!'
-               _subcode = 'FURL'
-
-               if _arguments: raise TypeError, 'No optional args expected'
-               _arguments['----'] = _object
-
-
-               _reply, _arguments, _attributes = self.send(_code, _subcode,
-                               _arguments, _attributes)
-               if _arguments.has_key('errn'):
-                       raise aetools.Error, aetools.decodeerror(_arguments)
-               # XXXX Optionally decode result
-               if _arguments.has_key('----'):
-                       return _arguments['----']
-
-       def webActivate(self, _object=None, _attributes={}, **_arguments):
-               """webActivate: Makes Netscape the frontmost application, and selects a given window. This event is here for suite completeness/ cross-platform compatibility only, you should use standard AppleEvents instead.
-               Required argument: window to bring to front
-               Keyword argument _attributes: AppleEvent attribute dictionary
-               """
-               _code = 'WWW!'
-               _subcode = 'ACTV'
-
-               if _arguments: raise TypeError, 'No optional args expected'
-               _arguments['----'] = _object
-
-
-               _reply, _arguments, _attributes = self.send(_code, _subcode,
-                               _arguments, _attributes)
-               if _arguments.has_key('errn'):
-                       raise aetools.Error, aetools.decodeerror(_arguments)
-               # XXXX Optionally decode result
-               if _arguments.has_key('----'):
-                       return _arguments['----']
-
-       def list_windows(self, _no_object=None, _attributes={}, **_arguments):
-               """list windows: Lists the IDs of all the hypertext windows
-               Keyword argument _attributes: AppleEvent attribute dictionary
-               Returns: List of unique IDs of all the hypertext windows
-               """
-               _code = 'WWW!'
-               _subcode = 'LSTW'
-
-               if _arguments: raise TypeError, 'No optional args expected'
-               if _no_object != None: raise TypeError, 'No direct arg expected'
-
-
-               _reply, _arguments, _attributes = self.send(_code, _subcode,
-                               _arguments, _attributes)
-               if _arguments.has_key('errn'):
-                       raise aetools.Error, aetools.decodeerror(_arguments)
-               # XXXX Optionally decode result
-               if _arguments.has_key('----'):
-                       return _arguments['----']
-
-       def get_window_info(self, _object=None, _attributes={}, **_arguments):
-               """get window info: Returns the information about the window as a list. Currently the list contains the window title and the URL. You can get the same information using standard Apple Event GetProperty.
-               Required argument: window ID
-               Keyword argument _attributes: AppleEvent attribute dictionary
-               Returns: undocumented, typecode 'list'
-               """
-               _code = 'WWW!'
-               _subcode = 'WNFO'
-
-               if _arguments: raise TypeError, 'No optional args expected'
-               _arguments['----'] = _object
-
-
-               _reply, _arguments, _attributes = self.send(_code, _subcode,
-                               _arguments, _attributes)
-               if _arguments.has_key('errn'):
-                       raise aetools.Error, aetools.decodeerror(_arguments)
-               # XXXX Optionally decode result
-               if _arguments.has_key('----'):
-                       return _arguments['----']
-
-       def register_URL_echo(self, _object=None, _attributes={}, **_arguments):
-               """register URL echo: Registers the Â³echo² application. Each download from now on will be echoed to this application.
-               Required argument: Application signature
-               Keyword argument _attributes: AppleEvent attribute dictionary
-               """
-               _code = 'WWW!'
-               _subcode = 'RGUE'
-
-               if _arguments: raise TypeError, 'No optional args expected'
-               _arguments['----'] = _object
-
-
-               _reply, _arguments, _attributes = self.send(_code, _subcode,
-                               _arguments, _attributes)
-               if _arguments.has_key('errn'):
-                       raise aetools.Error, aetools.decodeerror(_arguments)
-               # XXXX Optionally decode result
-               if _arguments.has_key('----'):
-                       return _arguments['----']
-
-       def unregister_URL_echo(self, _object, _attributes={}, **_arguments):
-               """unregister URL echo: cancels URL echo
-               Required argument: application signature
-               Keyword argument _attributes: AppleEvent attribute dictionary
-               """
-               _code = 'WWW!'
-               _subcode = 'UNRU'
-
-               if _arguments: raise TypeError, 'No optional args expected'
-               _arguments['----'] = _object
-
-
-               _reply, _arguments, _attributes = self.send(_code, _subcode,
-                               _arguments, _attributes)
-               if _arguments.has_key('errn'):
-                       raise aetools.Error, aetools.decodeerror(_arguments)
-               # XXXX Optionally decode result
-               if _arguments.has_key('----'):
-                       return _arguments['----']
-
-       _argmap_register_viewer = {
-               'MIME_type' : 'MIME',
-               'with_file_type' : 'FTYP',
-       }
-
-       def register_viewer(self, _object, _attributes={}, **_arguments):
-               """register viewer: Registers an application as a \8cspecial¹ viewer for this MIME type. The application will be launched with ViewDoc events
-               Required argument: Application sig
-               Keyword argument MIME_type: MIME type viewer is registering for
-               Keyword argument with_file_type: Mac file type for the downloaded files
-               Keyword argument _attributes: AppleEvent attribute dictionary
-               Returns: TRUE if registration has been successful
-               """
-               _code = 'WWW!'
-               _subcode = 'RGVW'
-
-               aetools.keysubst(_arguments, self._argmap_register_viewer)
-               _arguments['----'] = _object
-
-
-               _reply, _arguments, _attributes = self.send(_code, _subcode,
-                               _arguments, _attributes)
-               if _arguments.has_key('errn'):
-                       raise aetools.Error, aetools.decodeerror(_arguments)
-               # XXXX Optionally decode result
-               if _arguments.has_key('----'):
-                       return _arguments['----']
-
-       _argmap_unregister_viewer = {
-               'MIME_type' : 'MIME',
-       }
-
-       def unregister_viewer(self, _object, _attributes={}, **_arguments):
-               """unregister viewer: Revert to the old way of handling this MIME type
-               Required argument: Application sig
-               Keyword argument MIME_type: MIME type to be unregistered
-               Keyword argument _attributes: AppleEvent attribute dictionary
-               Returns: TRUE if the event was successful
-               """
-               _code = 'WWW!'
-               _subcode = 'UNRV'
-
-               aetools.keysubst(_arguments, self._argmap_unregister_viewer)
-               _arguments['----'] = _object
-
-
-               _reply, _arguments, _attributes = self.send(_code, _subcode,
-                               _arguments, _attributes)
-               if _arguments.has_key('errn'):
-                       raise aetools.Error, aetools.decodeerror(_arguments)
-               # XXXX Optionally decode result
-               if _arguments.has_key('----'):
-                       return _arguments['----']
-
-       _argmap_register_protocol = {
-               'for_protocol' : 'PROT',
-       }
-
-       def register_protocol(self, _object=None, _attributes={}, **_arguments):
-               """register protocol: Registers application as a Â³handler² for this protocol with a given prefix. The handler will receive Â³OpenURL², or if that fails, Â³GetURL² event.
-               Required argument: Application sig
-               Keyword argument for_protocol: protocol prefix: Â³finger:², Â³file²,
-               Keyword argument _attributes: AppleEvent attribute dictionary
-               Returns: TRUE if registration has been successful
-               """
-               _code = 'WWW!'
-               _subcode = 'RGPR'
-
-               aetools.keysubst(_arguments, self._argmap_register_protocol)
-               _arguments['----'] = _object
-
-
-               _reply, _arguments, _attributes = self.send(_code, _subcode,
-                               _arguments, _attributes)
-               if _arguments.has_key('errn'):
-                       raise aetools.Error, aetools.decodeerror(_arguments)
-               # XXXX Optionally decode result
-               if _arguments.has_key('----'):
-                       return _arguments['----']
-
-       _argmap_unregister_protocol = {
-               'for_protocol' : 'PROT',
-       }
-
-       def unregister_protocol(self, _object=None, _attributes={}, **_arguments):
-               """unregister protocol: reverses the effects of Â³register protocol²
-               Required argument: Application sig. 
-               Keyword argument for_protocol: protocol prefix. If none, unregister for all protocols
-               Keyword argument _attributes: AppleEvent attribute dictionary
-               Returns: TRUE if successful
-               """
-               _code = 'WWW!'
-               _subcode = 'UNRP'
-
-               aetools.keysubst(_arguments, self._argmap_unregister_protocol)
-               _arguments['----'] = _object
-
-
-               _reply, _arguments, _attributes = self.send(_code, _subcode,
-                               _arguments, _attributes)
-               if _arguments.has_key('errn'):
-                       raise aetools.Error, aetools.decodeerror(_arguments)
-               # XXXX Optionally decode result
-               if _arguments.has_key('----'):
-                       return _arguments['----']
-
-       _argmap_register_window_close = {
-               'for_window' : 'WIND',
-       }
-
-       def register_window_close(self, _object=None, _attributes={}, **_arguments):
-               """register window close: Netscape will notify registered application when this window closes
-               Required argument: Application signature
-               Keyword argument for_window: window ID
-               Keyword argument _attributes: AppleEvent attribute dictionary
-               Returns: true if successful
-               """
-               _code = 'WWW!'
-               _subcode = 'RGWC'
-
-               aetools.keysubst(_arguments, self._argmap_register_window_close)
-               _arguments['----'] = _object
-
-
-               _reply, _arguments, _attributes = self.send(_code, _subcode,
-                               _arguments, _attributes)
-               if _arguments.has_key('errn'):
-                       raise aetools.Error, aetools.decodeerror(_arguments)
-               # XXXX Optionally decode result
-               if _arguments.has_key('----'):
-                       return _arguments['----']
-
-       _argmap_unregister_window_close = {
-               'for_window' : 'WIND',
-       }
-
-       def unregister_window_close(self, _object=None, _attributes={}, **_arguments):
-               """unregister window close: Undo for register window close
-               Required argument: Application signature
-               Keyword argument for_window: window ID
-               Keyword argument _attributes: AppleEvent attribute dictionary
-               Returns: true if successful
-               """
-               _code = 'WWW!'
-               _subcode = 'UNRC'
-
-               aetools.keysubst(_arguments, self._argmap_unregister_window_close)
-               _arguments['----'] = _object
-
-
-               _reply, _arguments, _attributes = self.send(_code, _subcode,
-                               _arguments, _attributes)
-               if _arguments.has_key('errn'):
-                       raise aetools.Error, aetools.decodeerror(_arguments)
-               # XXXX Optionally decode result
-               if _arguments.has_key('----'):
-                       return _arguments['----']
-
-
-#
-# Indices of types declared in this module
-#
-_classdeclarations = {
-}
-
-_propdeclarations = {
-}
-
-_compdeclarations = {
-}
-
-_enumdeclarations = {
-}
diff --git a/Mac/Lib/lib-scriptpackages/Netscape/__init__.py b/Mac/Lib/lib-scriptpackages/Netscape/__init__.py
deleted file mode 100644 (file)
index 77a0ff8..0000000
+++ /dev/null
@@ -1,55 +0,0 @@
-"""
-Package generated from Macintosh HD:Internet:Internet-programma's:Netscape Communicator\81-map:Netscape Communicator\81
-Resource aete resid 0 
-"""
-import aetools
-import Required_suite
-import Standard_Suite
-import Standard_URL_suite
-import WorldWideWeb_suite
-import Mozilla_suite
-import PowerPlant
-import Text
-
-
-_code_to_module = {
-       'reqd' : Required_suite,
-       'CoRe' : Standard_Suite,
-       'GURL' : Standard_URL_suite,
-       'WWW!' : WorldWideWeb_suite,
-       'MOSS' : Mozilla_suite,
-       'ppnt' : PowerPlant,
-       'TEXT' : Text,
-}
-
-
-
-_code_to_fullname = {
-       'reqd' : ('Netscape.Required_suite', 'Required_suite'),
-       'CoRe' : ('Netscape.Standard_Suite', 'Standard_Suite'),
-       'GURL' : ('Netscape.Standard_URL_suite', 'Standard_URL_suite'),
-       'WWW!' : ('Netscape.WorldWideWeb_suite', 'WorldWideWeb_suite'),
-       'MOSS' : ('Netscape.Mozilla_suite', 'Mozilla_suite'),
-       'ppnt' : ('Netscape.PowerPlant', 'PowerPlant'),
-       'TEXT' : ('Netscape.Text', 'Text'),
-}
-
-from Required_suite import *
-from Standard_Suite import *
-from Standard_URL_suite import *
-from WorldWideWeb_suite import *
-from Mozilla_suite import *
-from PowerPlant import *
-from Text import *
-
-
-class Netscape(Required_suite_Events,
-               Standard_Suite_Events,
-               Standard_URL_suite_Events,
-               WorldWideWeb_suite_Events,
-               Mozilla_suite_Events,
-               PowerPlant_Events,
-               Text_Events,
-               aetools.TalkTo):
-       _signature = 'MOSS'
-
diff --git a/Mac/Lib/lib-scriptpackages/StdSuites/AppleScript_Suite.py b/Mac/Lib/lib-scriptpackages/StdSuites/AppleScript_Suite.py
deleted file mode 100644 (file)
index e6ca5e3..0000000
+++ /dev/null
@@ -1,2074 +0,0 @@
-"""Suite AppleScript Suite: Standard terms for AppleScript
-Level 1, version 1
-
-Generated from Macintosh HD:Systeemmap:Extensies:AppleScript
-AETE/AEUT resource version 1/0, language 0, script 0
-"""
-
-import aetools
-import MacOS
-
-_code = 'ascr'
-
-class AppleScript_Suite_Events:
-
-       def activate(self, _no_object=None, _attributes={}, **_arguments):
-               """activate: Bring the targeted application program to the front
-               Keyword argument _attributes: AppleEvent attribute dictionary
-               """
-               _code = 'misc'
-               _subcode = 'actv'
-
-               if _arguments: raise TypeError, 'No optional args expected'
-               if _no_object != None: raise TypeError, 'No direct arg expected'
-
-
-               _reply, _arguments, _attributes = self.send(_code, _subcode,
-                               _arguments, _attributes)
-               if _arguments.has_key('errn'):
-                       raise aetools.Error, aetools.decodeerror(_arguments)
-               # XXXX Optionally decode result
-               if _arguments.has_key('----'):
-                       return _arguments['----']
-
-       def log(self, _object, _attributes={}, **_arguments):
-               """log: Cause a comment to be logged
-               Required argument: undocumented, typecode 'TEXT'
-               Keyword argument _attributes: AppleEvent attribute dictionary
-               """
-               _code = 'ascr'
-               _subcode = 'cmnt'
-
-               if _arguments: raise TypeError, 'No optional args expected'
-               _arguments['----'] = _object
-
-
-               _reply, _arguments, _attributes = self.send(_code, _subcode,
-                               _arguments, _attributes)
-               if _arguments.has_key('errn'):
-                       raise aetools.Error, aetools.decodeerror(_arguments)
-               # XXXX Optionally decode result
-               if _arguments.has_key('----'):
-                       return _arguments['----']
-
-       def stop_log(self, _no_object=None, _attributes={}, **_arguments):
-               """stop log: Stop event logging in the script editor
-               Keyword argument _attributes: AppleEvent attribute dictionary
-               """
-               _code = 'ToyS'
-               _subcode = 'log0'
-
-               if _arguments: raise TypeError, 'No optional args expected'
-               if _no_object != None: raise TypeError, 'No direct arg expected'
-
-
-               _reply, _arguments, _attributes = self.send(_code, _subcode,
-                               _arguments, _attributes)
-               if _arguments.has_key('errn'):
-                       raise aetools.Error, aetools.decodeerror(_arguments)
-               # XXXX Optionally decode result
-               if _arguments.has_key('----'):
-                       return _arguments['----']
-
-       def start_log(self, _no_object=None, _attributes={}, **_arguments):
-               """start log: Start event logging in the script editor
-               Keyword argument _attributes: AppleEvent attribute dictionary
-               """
-               _code = 'ToyS'
-               _subcode = 'log1'
-
-               if _arguments: raise TypeError, 'No optional args expected'
-               if _no_object != None: raise TypeError, 'No direct arg expected'
-
-
-               _reply, _arguments, _attributes = self.send(_code, _subcode,
-                               _arguments, _attributes)
-               if _arguments.has_key('errn'):
-                       raise aetools.Error, aetools.decodeerror(_arguments)
-               # XXXX Optionally decode result
-               if _arguments.has_key('----'):
-                       return _arguments['----']
-
-       def idle(self, _no_object=None, _attributes={}, **_arguments):
-               """idle: Sent to a script application when it is idle
-               Keyword argument _attributes: AppleEvent attribute dictionary
-               Returns: the number of seconds to wait for next idle event
-               """
-               _code = 'misc'
-               _subcode = 'idle'
-
-               if _arguments: raise TypeError, 'No optional args expected'
-               if _no_object != None: raise TypeError, 'No direct arg expected'
-
-
-               _reply, _arguments, _attributes = self.send(_code, _subcode,
-                               _arguments, _attributes)
-               if _arguments.has_key('errn'):
-                       raise aetools.Error, aetools.decodeerror(_arguments)
-               # XXXX Optionally decode result
-               if _arguments.has_key('----'):
-                       return _arguments['----']
-
-       def launch(self, _no_object=None, _attributes={}, **_arguments):
-               """launch: Start an application for scripting
-               Keyword argument _attributes: AppleEvent attribute dictionary
-               """
-               _code = 'ascr'
-               _subcode = 'noop'
-
-               if _arguments: raise TypeError, 'No optional args expected'
-               if _no_object != None: raise TypeError, 'No direct arg expected'
-
-
-               _reply, _arguments, _attributes = self.send(_code, _subcode,
-                               _arguments, _attributes)
-               if _arguments.has_key('errn'):
-                       raise aetools.Error, aetools.decodeerror(_arguments)
-               # XXXX Optionally decode result
-               if _arguments.has_key('----'):
-                       return _arguments['----']
-
-       def tell(self, _no_object=None, _attributes={}, **_arguments):
-               """tell: Record or log a \8ctell¹ statement
-               Keyword argument _attributes: AppleEvent attribute dictionary
-               """
-               _code = 'ascr'
-               _subcode = 'tell'
-
-               if _arguments: raise TypeError, 'No optional args expected'
-               if _no_object != None: raise TypeError, 'No direct arg expected'
-
-
-               _reply, _arguments, _attributes = self.send(_code, _subcode,
-                               _arguments, _attributes)
-               if _arguments.has_key('errn'):
-                       raise aetools.Error, aetools.decodeerror(_arguments)
-               # XXXX Optionally decode result
-               if _arguments.has_key('----'):
-                       return _arguments['----']
-
-       def end_tell(self, _no_object=None, _attributes={}, **_arguments):
-               """end tell: Record or log an \8cend tell¹ statement
-               Keyword argument _attributes: AppleEvent attribute dictionary
-               """
-               _code = 'ascr'
-               _subcode = 'tend'
-
-               if _arguments: raise TypeError, 'No optional args expected'
-               if _no_object != None: raise TypeError, 'No direct arg expected'
-
-
-               _reply, _arguments, _attributes = self.send(_code, _subcode,
-                               _arguments, _attributes)
-               if _arguments.has_key('errn'):
-                       raise aetools.Error, aetools.decodeerror(_arguments)
-               # XXXX Optionally decode result
-               if _arguments.has_key('----'):
-                       return _arguments['----']
-
-       _argmap_error = {
-               'number' : 'errn',
-               'partial_result' : 'ptlr',
-               '_from' : 'erob',
-               'to' : 'errt',
-       }
-
-       def error(self, _object=None, _attributes={}, **_arguments):
-               """error: Raise an error
-               Required argument: anything
-               Keyword argument number: an error number
-               Keyword argument partial_result: any partial result occurring before the error
-               Keyword argument _from: the object that caused the error
-               Keyword argument to: the desired class for a failed coercion
-               Keyword argument _attributes: AppleEvent attribute dictionary
-               """
-               _code = 'ascr'
-               _subcode = 'err '
-
-               aetools.keysubst(_arguments, self._argmap_error)
-               _arguments['----'] = _object
-
-
-               _reply, _arguments, _attributes = self.send(_code, _subcode,
-                               _arguments, _attributes)
-               if _arguments.has_key('errn'):
-                       raise aetools.Error, aetools.decodeerror(_arguments)
-               # XXXX Optionally decode result
-               if _arguments.has_key('----'):
-                       return _arguments['----']
-
-       _argmap_Call_a5_subroutine = {
-               'at' : 'at  ',
-               '_from' : 'from',
-               '_for' : 'for ',
-               'to' : 'to  ',
-               'thru' : 'thru',
-               'through' : 'thgh',
-               'by' : 'by  ',
-               'on' : 'on  ',
-               'into' : 'into',
-               'onto' : 'onto',
-               'between' : 'btwn',
-               'against' : 'agst',
-               'out_of' : 'outo',
-               'instead_of' : 'isto',
-               'aside_from' : 'asdf',
-               'around' : 'arnd',
-               'beside' : 'bsid',
-               'beneath' : 'bnth',
-               'under' : 'undr',
-               'over' : 'over',
-               'above' : 'abve',
-               'below' : 'belw',
-               'apart_from' : 'aprt',
-               'about' : 'abou',
-               'since' : 'snce',
-               'given' : 'givn',
-               'with' : 'with',
-               'without' : 'wout',
-       }
-
-       def Call_a5_subroutine(self, _object=None, _attributes={}, **_arguments):
-               """Call\80subroutine: A subroutine call
-               Required argument: anything
-               Keyword argument at: a preposition
-               Keyword argument _from: a preposition
-               Keyword argument _for: a preposition
-               Keyword argument to: a preposition
-               Keyword argument thru: a preposition
-               Keyword argument through: a preposition
-               Keyword argument by: a preposition
-               Keyword argument on: a preposition
-               Keyword argument into: a preposition
-               Keyword argument onto: a preposition
-               Keyword argument between: a preposition
-               Keyword argument against: a preposition
-               Keyword argument out_of: a preposition
-               Keyword argument instead_of: a preposition
-               Keyword argument aside_from: a preposition
-               Keyword argument around: a preposition
-               Keyword argument beside: a preposition
-               Keyword argument beneath: a preposition
-               Keyword argument under: a preposition
-               Keyword argument over: a preposition
-               Keyword argument above: a preposition
-               Keyword argument below: a preposition
-               Keyword argument apart_from: a preposition
-               Keyword argument about: a preposition
-               Keyword argument since: a preposition
-               Keyword argument given: parameter:value pairs, comma-separated
-               Keyword argument with: formal parameter set to true if matching actual parameter is provided
-               Keyword argument without: formal parameter set to false if matching actual parmeter is provided
-               Keyword argument _attributes: AppleEvent attribute dictionary
-               Returns: anything
-               """
-               _code = 'ascr'
-               _subcode = 'psbr'
-
-               aetools.keysubst(_arguments, self._argmap_Call_a5_subroutine)
-               _arguments['----'] = _object
-
-
-               _reply, _arguments, _attributes = self.send(_code, _subcode,
-                               _arguments, _attributes)
-               if _arguments.has_key('errn'):
-                       raise aetools.Error, aetools.decodeerror(_arguments)
-               # XXXX Optionally decode result
-               if _arguments.has_key('----'):
-                       return _arguments['----']
-
-       def _3d_(self, _object, _attributes={}, **_arguments):
-               """=: Equality
-               Required argument: an AE object reference
-               Keyword argument _attributes: AppleEvent attribute dictionary
-               Returns: anything
-               """
-               _code = 'ascr'
-               _subcode = '=   '
-
-               if _arguments: raise TypeError, 'No optional args expected'
-               _arguments['----'] = _object
-
-
-               _reply, _arguments, _attributes = self.send(_code, _subcode,
-                               _arguments, _attributes)
-               if _arguments.has_key('errn'):
-                       raise aetools.Error, aetools.decodeerror(_arguments)
-               # XXXX Optionally decode result
-               if _arguments.has_key('----'):
-                       return _arguments['----']
-
-       def _ad_(self, _object, _attributes={}, **_arguments):
-               """\82: Inequality
-               Required argument: an AE object reference
-               Keyword argument _attributes: AppleEvent attribute dictionary
-               Returns: anything
-               """
-               _code = 'ascr'
-               _subcode = '\255   '
-
-               if _arguments: raise TypeError, 'No optional args expected'
-               _arguments['----'] = _object
-
-
-               _reply, _arguments, _attributes = self.send(_code, _subcode,
-                               _arguments, _attributes)
-               if _arguments.has_key('errn'):
-                       raise aetools.Error, aetools.decodeerror(_arguments)
-               # XXXX Optionally decode result
-               if _arguments.has_key('----'):
-                       return _arguments['----']
-
-       def _2b_(self, _object, _attributes={}, **_arguments):
-               """+: Addition
-               Required argument: an AE object reference
-               Keyword argument _attributes: AppleEvent attribute dictionary
-               Returns: anything
-               """
-               _code = 'ascr'
-               _subcode = '+   '
-
-               if _arguments: raise TypeError, 'No optional args expected'
-               _arguments['----'] = _object
-
-
-               _reply, _arguments, _attributes = self.send(_code, _subcode,
-                               _arguments, _attributes)
-               if _arguments.has_key('errn'):
-                       raise aetools.Error, aetools.decodeerror(_arguments)
-               # XXXX Optionally decode result
-               if _arguments.has_key('----'):
-                       return _arguments['----']
-
-       def _2d_(self, _object, _attributes={}, **_arguments):
-               """-: Subtraction
-               Required argument: an AE object reference
-               Keyword argument _attributes: AppleEvent attribute dictionary
-               Returns: anything
-               """
-               _code = 'ascr'
-               _subcode = '-   '
-
-               if _arguments: raise TypeError, 'No optional args expected'
-               _arguments['----'] = _object
-
-
-               _reply, _arguments, _attributes = self.send(_code, _subcode,
-                               _arguments, _attributes)
-               if _arguments.has_key('errn'):
-                       raise aetools.Error, aetools.decodeerror(_arguments)
-               # XXXX Optionally decode result
-               if _arguments.has_key('----'):
-                       return _arguments['----']
-
-       def _2a_(self, _object, _attributes={}, **_arguments):
-               """*: Multiplication
-               Required argument: an AE object reference
-               Keyword argument _attributes: AppleEvent attribute dictionary
-               Returns: anything
-               """
-               _code = 'ascr'
-               _subcode = '*   '
-
-               if _arguments: raise TypeError, 'No optional args expected'
-               _arguments['----'] = _object
-
-
-               _reply, _arguments, _attributes = self.send(_code, _subcode,
-                               _arguments, _attributes)
-               if _arguments.has_key('errn'):
-                       raise aetools.Error, aetools.decodeerror(_arguments)
-               # XXXX Optionally decode result
-               if _arguments.has_key('----'):
-                       return _arguments['----']
-
-       def _d6_(self, _object, _attributes={}, **_arguments):
-               """÷: Division
-               Required argument: an AE object reference
-               Keyword argument _attributes: AppleEvent attribute dictionary
-               Returns: anything
-               """
-               _code = 'ascr'
-               _subcode = '/   '
-
-               if _arguments: raise TypeError, 'No optional args expected'
-               _arguments['----'] = _object
-
-
-               _reply, _arguments, _attributes = self.send(_code, _subcode,
-                               _arguments, _attributes)
-               if _arguments.has_key('errn'):
-                       raise aetools.Error, aetools.decodeerror(_arguments)
-               # XXXX Optionally decode result
-               if _arguments.has_key('----'):
-                       return _arguments['----']
-
-       def div(self, _object, _attributes={}, **_arguments):
-               """div: Quotient
-               Required argument: an AE object reference
-               Keyword argument _attributes: AppleEvent attribute dictionary
-               Returns: anything
-               """
-               _code = 'ascr'
-               _subcode = 'div '
-
-               if _arguments: raise TypeError, 'No optional args expected'
-               _arguments['----'] = _object
-
-
-               _reply, _arguments, _attributes = self.send(_code, _subcode,
-                               _arguments, _attributes)
-               if _arguments.has_key('errn'):
-                       raise aetools.Error, aetools.decodeerror(_arguments)
-               # XXXX Optionally decode result
-               if _arguments.has_key('----'):
-                       return _arguments['----']
-
-       def mod(self, _object, _attributes={}, **_arguments):
-               """mod: Remainder
-               Required argument: an AE object reference
-               Keyword argument _attributes: AppleEvent attribute dictionary
-               Returns: anything
-               """
-               _code = 'ascr'
-               _subcode = 'mod '
-
-               if _arguments: raise TypeError, 'No optional args expected'
-               _arguments['----'] = _object
-
-
-               _reply, _arguments, _attributes = self.send(_code, _subcode,
-                               _arguments, _attributes)
-               if _arguments.has_key('errn'):
-                       raise aetools.Error, aetools.decodeerror(_arguments)
-               # XXXX Optionally decode result
-               if _arguments.has_key('----'):
-                       return _arguments['----']
-
-       def _5e_(self, _object, _attributes={}, **_arguments):
-               """^: Exponentiation
-               Required argument: an AE object reference
-               Keyword argument _attributes: AppleEvent attribute dictionary
-               Returns: anything
-               """
-               _code = 'ascr'
-               _subcode = '^   '
-
-               if _arguments: raise TypeError, 'No optional args expected'
-               _arguments['----'] = _object
-
-
-               _reply, _arguments, _attributes = self.send(_code, _subcode,
-                               _arguments, _attributes)
-               if _arguments.has_key('errn'):
-                       raise aetools.Error, aetools.decodeerror(_arguments)
-               # XXXX Optionally decode result
-               if _arguments.has_key('----'):
-                       return _arguments['----']
-
-       def _3e_(self, _object, _attributes={}, **_arguments):
-               """>: Greater than
-               Required argument: an AE object reference
-               Keyword argument _attributes: AppleEvent attribute dictionary
-               Returns: anything
-               """
-               _code = 'ascr'
-               _subcode = '>   '
-
-               if _arguments: raise TypeError, 'No optional args expected'
-               _arguments['----'] = _object
-
-
-               _reply, _arguments, _attributes = self.send(_code, _subcode,
-                               _arguments, _attributes)
-               if _arguments.has_key('errn'):
-                       raise aetools.Error, aetools.decodeerror(_arguments)
-               # XXXX Optionally decode result
-               if _arguments.has_key('----'):
-                       return _arguments['----']
-
-       def _b3_(self, _object, _attributes={}, **_arguments):
-               """\84: Greater than or equal to
-               Required argument: an AE object reference
-               Keyword argument _attributes: AppleEvent attribute dictionary
-               Returns: anything
-               """
-               _code = 'ascr'
-               _subcode = '>=  '
-
-               if _arguments: raise TypeError, 'No optional args expected'
-               _arguments['----'] = _object
-
-
-               _reply, _arguments, _attributes = self.send(_code, _subcode,
-                               _arguments, _attributes)
-               if _arguments.has_key('errn'):
-                       raise aetools.Error, aetools.decodeerror(_arguments)
-               # XXXX Optionally decode result
-               if _arguments.has_key('----'):
-                       return _arguments['----']
-
-       def _3c_(self, _object, _attributes={}, **_arguments):
-               """<: Less than
-               Required argument: an AE object reference
-               Keyword argument _attributes: AppleEvent attribute dictionary
-               Returns: anything
-               """
-               _code = 'ascr'
-               _subcode = '<   '
-
-               if _arguments: raise TypeError, 'No optional args expected'
-               _arguments['----'] = _object
-
-
-               _reply, _arguments, _attributes = self.send(_code, _subcode,
-                               _arguments, _attributes)
-               if _arguments.has_key('errn'):
-                       raise aetools.Error, aetools.decodeerror(_arguments)
-               # XXXX Optionally decode result
-               if _arguments.has_key('----'):
-                       return _arguments['----']
-
-       def _b2_(self, _object, _attributes={}, **_arguments):
-               """¾: Less than or equal to
-               Required argument: an AE object reference
-               Keyword argument _attributes: AppleEvent attribute dictionary
-               Returns: anything
-               """
-               _code = 'ascr'
-               _subcode = '<=  '
-
-               if _arguments: raise TypeError, 'No optional args expected'
-               _arguments['----'] = _object
-
-
-               _reply, _arguments, _attributes = self.send(_code, _subcode,
-                               _arguments, _attributes)
-               if _arguments.has_key('errn'):
-                       raise aetools.Error, aetools.decodeerror(_arguments)
-               # XXXX Optionally decode result
-               if _arguments.has_key('----'):
-                       return _arguments['----']
-
-       def _26_(self, _object, _attributes={}, **_arguments):
-               """&: Concatenation
-               Required argument: an AE object reference
-               Keyword argument _attributes: AppleEvent attribute dictionary
-               Returns: anything
-               """
-               _code = 'ascr'
-               _subcode = 'ccat'
-
-               if _arguments: raise TypeError, 'No optional args expected'
-               _arguments['----'] = _object
-
-
-               _reply, _arguments, _attributes = self.send(_code, _subcode,
-                               _arguments, _attributes)
-               if _arguments.has_key('errn'):
-                       raise aetools.Error, aetools.decodeerror(_arguments)
-               # XXXX Optionally decode result
-               if _arguments.has_key('----'):
-                       return _arguments['----']
-
-       def starts_with(self, _object, _attributes={}, **_arguments):
-               """starts with: Starts with
-               Required argument: an AE object reference
-               Keyword argument _attributes: AppleEvent attribute dictionary
-               Returns: anything
-               """
-               _code = 'ascr'
-               _subcode = 'bgwt'
-
-               if _arguments: raise TypeError, 'No optional args expected'
-               _arguments['----'] = _object
-
-
-               _reply, _arguments, _attributes = self.send(_code, _subcode,
-                               _arguments, _attributes)
-               if _arguments.has_key('errn'):
-                       raise aetools.Error, aetools.decodeerror(_arguments)
-               # XXXX Optionally decode result
-               if _arguments.has_key('----'):
-                       return _arguments['----']
-
-       def ends_with(self, _object, _attributes={}, **_arguments):
-               """ends with: Ends with
-               Required argument: an AE object reference
-               Keyword argument _attributes: AppleEvent attribute dictionary
-               Returns: anything
-               """
-               _code = 'ascr'
-               _subcode = 'ends'
-
-               if _arguments: raise TypeError, 'No optional args expected'
-               _arguments['----'] = _object
-
-
-               _reply, _arguments, _attributes = self.send(_code, _subcode,
-                               _arguments, _attributes)
-               if _arguments.has_key('errn'):
-                       raise aetools.Error, aetools.decodeerror(_arguments)
-               # XXXX Optionally decode result
-               if _arguments.has_key('----'):
-                       return _arguments['----']
-
-       def contains(self, _object, _attributes={}, **_arguments):
-               """contains: Containment
-               Required argument: an AE object reference
-               Keyword argument _attributes: AppleEvent attribute dictionary
-               Returns: anything
-               """
-               _code = 'ascr'
-               _subcode = 'cont'
-
-               if _arguments: raise TypeError, 'No optional args expected'
-               _arguments['----'] = _object
-
-
-               _reply, _arguments, _attributes = self.send(_code, _subcode,
-                               _arguments, _attributes)
-               if _arguments.has_key('errn'):
-                       raise aetools.Error, aetools.decodeerror(_arguments)
-               # XXXX Optionally decode result
-               if _arguments.has_key('----'):
-                       return _arguments['----']
-
-       def _and(self, _object, _attributes={}, **_arguments):
-               """and: Logical conjunction
-               Required argument: an AE object reference
-               Keyword argument _attributes: AppleEvent attribute dictionary
-               Returns: anything
-               """
-               _code = 'ascr'
-               _subcode = 'AND '
-
-               if _arguments: raise TypeError, 'No optional args expected'
-               _arguments['----'] = _object
-
-
-               _reply, _arguments, _attributes = self.send(_code, _subcode,
-                               _arguments, _attributes)
-               if _arguments.has_key('errn'):
-                       raise aetools.Error, aetools.decodeerror(_arguments)
-               # XXXX Optionally decode result
-               if _arguments.has_key('----'):
-                       return _arguments['----']
-
-       def _or(self, _object, _attributes={}, **_arguments):
-               """or: Logical disjunction
-               Required argument: an AE object reference
-               Keyword argument _attributes: AppleEvent attribute dictionary
-               Returns: anything
-               """
-               _code = 'ascr'
-               _subcode = 'OR  '
-
-               if _arguments: raise TypeError, 'No optional args expected'
-               _arguments['----'] = _object
-
-
-               _reply, _arguments, _attributes = self.send(_code, _subcode,
-                               _arguments, _attributes)
-               if _arguments.has_key('errn'):
-                       raise aetools.Error, aetools.decodeerror(_arguments)
-               # XXXX Optionally decode result
-               if _arguments.has_key('----'):
-                       return _arguments['----']
-
-       def as(self, _object, _attributes={}, **_arguments):
-               """as: Coercion
-               Required argument: an AE object reference
-               Keyword argument _attributes: AppleEvent attribute dictionary
-               Returns: anything
-               """
-               _code = 'ascr'
-               _subcode = 'coer'
-
-               if _arguments: raise TypeError, 'No optional args expected'
-               _arguments['----'] = _object
-
-
-               _reply, _arguments, _attributes = self.send(_code, _subcode,
-                               _arguments, _attributes)
-               if _arguments.has_key('errn'):
-                       raise aetools.Error, aetools.decodeerror(_arguments)
-               # XXXX Optionally decode result
-               if _arguments.has_key('----'):
-                       return _arguments['----']
-
-       def _not(self, _object, _attributes={}, **_arguments):
-               """not: Logical negation
-               Required argument: an AE object reference
-               Keyword argument _attributes: AppleEvent attribute dictionary
-               Returns: anything
-               """
-               _code = 'ascr'
-               _subcode = 'NOT '
-
-               if _arguments: raise TypeError, 'No optional args expected'
-               _arguments['----'] = _object
-
-
-               _reply, _arguments, _attributes = self.send(_code, _subcode,
-                               _arguments, _attributes)
-               if _arguments.has_key('errn'):
-                       raise aetools.Error, aetools.decodeerror(_arguments)
-               # XXXX Optionally decode result
-               if _arguments.has_key('----'):
-                       return _arguments['----']
-
-       def negate(self, _object, _attributes={}, **_arguments):
-               """negate: Numeric negation
-               Required argument: an AE object reference
-               Keyword argument _attributes: AppleEvent attribute dictionary
-               Returns: anything
-               """
-               _code = 'ascr'
-               _subcode = 'neg '
-
-               if _arguments: raise TypeError, 'No optional args expected'
-               _arguments['----'] = _object
-
-
-               _reply, _arguments, _attributes = self.send(_code, _subcode,
-                               _arguments, _attributes)
-               if _arguments.has_key('errn'):
-                       raise aetools.Error, aetools.decodeerror(_arguments)
-               # XXXX Optionally decode result
-               if _arguments.has_key('----'):
-                       return _arguments['----']
-
-
-class boolean(aetools.ComponentItem):
-       """boolean - A true or false value """
-       want = 'bool'
-
-booleans = boolean
-
-class integer(aetools.ComponentItem):
-       """integer - An integral number """
-       want = 'long'
-
-integers = integer
-
-class real(aetools.ComponentItem):
-       """real - A real number """
-       want = 'doub'
-
-reals = real
-
-class number(aetools.ComponentItem):
-       """number - an integer or real number """
-       want = 'nmbr'
-
-numbers = number
-
-class list(aetools.ComponentItem):
-       """list - An ordered collection of items """
-       want = 'list'
-class length(aetools.NProperty):
-       """length - the length of a list """
-       which = 'leng'
-       want = 'long'
-class reverse(aetools.NProperty):
-       """reverse - the items of the list in reverse order """
-       which = 'rvse'
-       want = 'list'
-class rest(aetools.NProperty):
-       """rest - all items of the list excluding first """
-       which = 'rest'
-       want = 'list'
-
-lists = list
-
-class linked_list(aetools.ComponentItem):
-       """linked list - An ordered collection of items """
-       want = 'llst'
-# repeated property length the length of a list
-
-linked_lists = linked_list
-
-class vector(aetools.ComponentItem):
-       """vector - An ordered collection of items """
-       want = 'vect'
-# repeated property length the length of a list
-
-vectors = vector
-
-class record(aetools.ComponentItem):
-       """record - A set of labeled items """
-       want = 'reco'
-
-records = record
-
-class item(aetools.ComponentItem):
-       """item - An item of any type """
-       want = 'cobj'
-class id(aetools.NProperty):
-       """id - the unique ID number of this object """
-       which = 'ID  '
-       want = 'long'
-
-items = item
-
-class script(aetools.ComponentItem):
-       """script - An AppleScript script """
-       want = 'scpt'
-class name(aetools.NProperty):
-       """name - the name of the script """
-       which = 'pnam'
-       want = 'TEXT'
-class parent(aetools.NProperty):
-       """parent - its parent, i.e. the script that will handle events that this script doesn¹t """
-       which = 'pare'
-       want = 'scpt'
-
-scripts = script
-
-class list_or_record(aetools.ComponentItem):
-       """list or record - a list or record """
-       want = 'lr  '
-
-class list_or_string(aetools.ComponentItem):
-       """list or string - a list or string """
-       want = 'ls  '
-
-class number_or_string(aetools.ComponentItem):
-       """number or string - a number or string """
-       want = 'ns  '
-
-class alias_or_string(aetools.ComponentItem):
-       """alias or string - an alias or string """
-       want = 'sf  '
-
-class list_2c__record_or_text(aetools.ComponentItem):
-       """list, record or text - a list, record or text """
-       want = 'lrs '
-
-class number_or_date(aetools.ComponentItem):
-       """number or date - a number or date """
-       want = 'nd  '
-
-class number_2c__date_or_text(aetools.ComponentItem):
-       """number, date or text - a number, date or text """
-       want = 'nds '
-
-class _class(aetools.ComponentItem):
-       """class - the type of a value """
-       want = 'pcls'
-class _3c_Inheritance_3e_(aetools.NProperty):
-       """<Inheritance> - inherits some of its properties from this class """
-       which = 'c@#^'
-       want = 'type'
-
-classes = _class
-
-class event(aetools.ComponentItem):
-       """event - an AppleEvents event """
-       want = 'evnt'
-
-events = event
-
-class property(aetools.ComponentItem):
-       """property - an AppleEvents property """
-       want = 'prop'
-
-properties = property
-
-class constant(aetools.ComponentItem):
-       """constant - A constant value """
-       want = 'enum'
-
-constants = constant
-
-class preposition(aetools.ComponentItem):
-       """preposition - an AppleEvents preposition """
-       want = 'prep'
-
-prepositions = preposition
-
-class reference_form(aetools.ComponentItem):
-       """reference form - an AppleEvents key form """
-       want = 'kfrm'
-
-reference_forms = reference_form
-
-class handler(aetools.ComponentItem):
-       """handler - an AppleScript event or subroutine handler """
-       want = 'hand'
-
-handlers = handler
-
-class data(aetools.ComponentItem):
-       """data - an AppleScript raw data object """
-       want = 'rdat'
-
-class text(aetools.ComponentItem):
-       """text - text with language and style information """
-       want = 'ctxt'
-
-class international_text(aetools.ComponentItem):
-       """international text -  """
-       want = 'itxt'
-
-international_text = international_text
-
-class string(aetools.ComponentItem):
-       """string - text in 8-bit Macintosh Roman format """
-       want = 'TEXT'
-
-strings = string
-
-class styled_text(aetools.ComponentItem):
-       """styled text -  """
-       want = 'STXT'
-
-styled_text = styled_text
-
-class styled_Clipboard_text(aetools.ComponentItem):
-       """styled Clipboard text -  """
-       want = 'styl'
-
-styled_Clipboard_text = styled_Clipboard_text
-
-class Unicode_text(aetools.ComponentItem):
-       """Unicode text -  """
-       want = 'utxt'
-
-Unicode_text = Unicode_text
-
-class styled_Unicode_text(aetools.ComponentItem):
-       """styled Unicode text -  """
-       want = 'sutx'
-
-styled_Unicode_text = styled_Unicode_text
-
-class encoded_string(aetools.ComponentItem):
-       """encoded string - text encoded using the Text Encoding Converter """
-       want = 'encs'
-
-encoded_strings = encoded_string
-
-class C_string(aetools.ComponentItem):
-       """C string - text followed by a null """
-       want = 'cstr'
-
-C_strings = C_string
-
-class Pascal_string(aetools.ComponentItem):
-       """Pascal string - text up to 255 characters preceded by a length byte """
-       want = 'pstr'
-
-Pascal_strings = Pascal_string
-
-class character(aetools.ComponentItem):
-       """character - an individual text character """
-       want = 'cha '
-
-characters = character
-
-class text_item(aetools.ComponentItem):
-       """text item - text between delimiters """
-       want = 'citm'
-
-text_items = text_item
-
-class writing_code(aetools.ComponentItem):
-       """writing code - codes that identify the language and script system """
-       want = 'psct'
-
-class writing_code_info(aetools.ComponentItem):
-       """writing code info - script code and language code of text run """
-       want = 'citl'
-class script_code(aetools.NProperty):
-       """script code - the script code for the text """
-       which = 'pscd'
-       want = 'shor'
-class language_code(aetools.NProperty):
-       """language code - the language code for the text """
-       which = 'plcd'
-       want = 'shor'
-
-writing_code_infos = writing_code_info
-
-class _empty_ae_name(aetools.ComponentItem):
-       """ - the undefined value """
-       want = 'undf'
-
-class missing_value(aetools.ComponentItem):
-       """missing value - unavailable value, such as properties missing from heterogeneous classes in a Whose clause """
-       want = 'msng'
-
-missing_values = missing_value
-
-class reference(aetools.ComponentItem):
-       """reference - an AppleScript reference """
-       want = 'obj '
-
-references = reference
-
-class anything(aetools.ComponentItem):
-       """anything - any class or reference """
-       want = '****'
-
-class type_class(aetools.ComponentItem):
-       """type class - the name of a particular class (or any four-character code) """
-       want = 'type'
-
-class RGB_color(aetools.ComponentItem):
-       """RGB color - Three integers specifying red, green, blue color values """
-       want = 'cRGB'
-
-RGB_colors = RGB_color
-
-class picture(aetools.ComponentItem):
-       """picture - A QuickDraw picture object """
-       want = 'PICT'
-
-pictures = picture
-
-class sound(aetools.ComponentItem):
-       """sound - a sound object on the clipboard """
-       want = 'snd '
-
-sounds = sound
-
-class version(aetools.ComponentItem):
-       """version - a version value """
-       want = 'vers'
-
-class file_specification(aetools.ComponentItem):
-       """file specification - a file specification as used by the operating system """
-       want = 'fss '
-
-file_specifications = file_specification
-
-class alias(aetools.ComponentItem):
-       """alias - a file on a disk or server.  The file must exist when you check the syntax of your script. """
-       want = 'alis'
-
-aliases = alias
-
-class machine(aetools.ComponentItem):
-       """machine - a computer """
-       want = 'mach'
-
-machines = machine
-
-class zone(aetools.ComponentItem):
-       """zone - an AppleTalk zone """
-       want = 'zone'
-
-zones = zone
-
-class keystroke(aetools.ComponentItem):
-       """keystroke - a press of a key combination on a Macintosh keyboard """
-       want = 'kprs'
-class key(aetools.NProperty):
-       """key - the character for the key was pressed (ignoring modifiers) """
-       which = 'kMsg'
-       want = 'cha '
-class modifiers(aetools.NProperty):
-       """modifiers - the modifier keys pressed in combination """
-       which = 'kMod'
-       want = 'eMds'
-class key_kind(aetools.NProperty):
-       """key kind - the kind of key that was pressed """
-       which = 'kknd'
-       want = 'ekst'
-
-keystrokes = keystroke
-
-class seconds(aetools.ComponentItem):
-       """seconds - more than one second """
-       want = 'scnd'
-
-class date(aetools.ComponentItem):
-       """date - Absolute date and time values """
-       want = 'ldt '
-class weekday(aetools.NProperty):
-       """weekday - the day of a week of a date """
-       which = 'wkdy'
-       want = 'wkdy'
-class month(aetools.NProperty):
-       """month - the month of a date """
-       which = 'mnth'
-       want = 'mnth'
-class day(aetools.NProperty):
-       """day - the day of the month of a date """
-       which = 'day '
-       want = 'long'
-class year(aetools.NProperty):
-       """year - the year of a date """
-       which = 'year'
-       want = 'long'
-class time(aetools.NProperty):
-       """time - the time since midnight of a date """
-       which = 'time'
-       want = 'long'
-class date_string(aetools.NProperty):
-       """date string - the date portion of a date-time value as text """
-       which = 'dstr'
-       want = 'TEXT'
-class time_string(aetools.NProperty):
-       """time string - the time portion of a date-time value as text """
-       which = 'tstr'
-       want = 'TEXT'
-
-dates = date
-
-class month(aetools.ComponentItem):
-       """month - a month """
-       want = 'mnth'
-
-months = month
-
-class January(aetools.ComponentItem):
-       """January - the month of January """
-       want = 'jan '
-
-class February(aetools.ComponentItem):
-       """February - the month of February """
-       want = 'feb '
-
-class March(aetools.ComponentItem):
-       """March - the month of March """
-       want = 'mar '
-
-class April(aetools.ComponentItem):
-       """April - the month of April """
-       want = 'apr '
-
-class May(aetools.ComponentItem):
-       """May - the month of May """
-       want = 'may '
-
-class June(aetools.ComponentItem):
-       """June - the month of June """
-       want = 'jun '
-
-class July(aetools.ComponentItem):
-       """July - the month of July """
-       want = 'jul '
-
-class August(aetools.ComponentItem):
-       """August - the month of August """
-       want = 'aug '
-
-class September(aetools.ComponentItem):
-       """September - the month of September """
-       want = 'sep '
-
-class October(aetools.ComponentItem):
-       """October - the month of October """
-       want = 'oct '
-
-class November(aetools.ComponentItem):
-       """November - the month of November """
-       want = 'nov '
-
-class December(aetools.ComponentItem):
-       """December - the month of December """
-       want = 'dec '
-
-class weekday(aetools.ComponentItem):
-       """weekday - a weekday """
-       want = 'wkdy'
-
-weekdays = weekday
-
-class Sunday(aetools.ComponentItem):
-       """Sunday - Sunday """
-       want = 'sun '
-
-class Monday(aetools.ComponentItem):
-       """Monday - Monday """
-       want = 'mon '
-
-class Tuesday(aetools.ComponentItem):
-       """Tuesday - Tuesday """
-       want = 'tue '
-
-class Wednesday(aetools.ComponentItem):
-       """Wednesday - Wednesday """
-       want = 'wed '
-
-class Thursday(aetools.ComponentItem):
-       """Thursday - Thursday """
-       want = 'thu '
-
-class Friday(aetools.ComponentItem):
-       """Friday - Friday """
-       want = 'fri '
-
-class Saturday(aetools.ComponentItem):
-       """Saturday - Saturday """
-       want = 'sat '
-
-class metres(aetools.ComponentItem):
-       """metres - a distance measurement in SI meters """
-       want = 'metr'
-
-meters = metres
-
-class inches(aetools.ComponentItem):
-       """inches - a distance measurement in Imperial inches """
-       want = 'inch'
-
-class feet(aetools.ComponentItem):
-       """feet - a distance measurement in Imperial feet """
-       want = 'feet'
-
-class yards(aetools.ComponentItem):
-       """yards - a distance measurement in Imperial yards """
-       want = 'yard'
-
-class miles(aetools.ComponentItem):
-       """miles - a distance measurement in Imperial miles """
-       want = 'mile'
-
-class kilometres(aetools.ComponentItem):
-       """kilometres - a distance measurement in SI kilometers """
-       want = 'kmtr'
-
-kilometers = kilometres
-
-class centimetres(aetools.ComponentItem):
-       """centimetres - a distance measurement in SI centimeters """
-       want = 'cmtr'
-
-centimeters = centimetres
-
-class square_metres(aetools.ComponentItem):
-       """square metres - an area measurement in SI square meters """
-       want = 'sqrm'
-
-square_meters = square_metres
-
-class square_feet(aetools.ComponentItem):
-       """square feet - an area measurement in Imperial square feet """
-       want = 'sqft'
-
-class square_yards(aetools.ComponentItem):
-       """square yards - an area measurement in Imperial square yards """
-       want = 'sqyd'
-
-class square_miles(aetools.ComponentItem):
-       """square miles - an area measurement in Imperial square miles """
-       want = 'sqmi'
-
-class square_kilometres(aetools.ComponentItem):
-       """square kilometres - an area measurement in SI square kilometers """
-       want = 'sqkm'
-
-square_kilometers = square_kilometres
-
-class litres(aetools.ComponentItem):
-       """litres - a volume measurement in SI liters """
-       want = 'litr'
-
-liters = litres
-
-class gallons(aetools.ComponentItem):
-       """gallons - a volume measurement in Imperial gallons """
-       want = 'galn'
-
-class quarts(aetools.ComponentItem):
-       """quarts - a volume measurement in Imperial quarts """
-       want = 'qrts'
-
-class cubic_metres(aetools.ComponentItem):
-       """cubic metres - a volume measurement in SI cubic meters """
-       want = 'cmet'
-
-cubic_meters = cubic_metres
-
-class cubic_centimetres(aetools.ComponentItem):
-       """cubic centimetres - a volume measurement in SI cubic centimeters """
-       want = 'ccmt'
-
-cubic_centimeters = cubic_centimetres
-
-class cubic_feet(aetools.ComponentItem):
-       """cubic feet - a volume measurement in Imperial cubic feet """
-       want = 'cfet'
-
-class cubic_inches(aetools.ComponentItem):
-       """cubic inches - a volume measurement in Imperial cubic inches """
-       want = 'cuin'
-
-class cubic_yards(aetools.ComponentItem):
-       """cubic yards - a distance measurement in Imperial cubic yards """
-       want = 'cyrd'
-
-class kilograms(aetools.ComponentItem):
-       """kilograms - a mass measurement in SI kilograms """
-       want = 'kgrm'
-
-class grams(aetools.ComponentItem):
-       """grams - a mass measurement in SI meters """
-       want = 'gram'
-
-class ounces(aetools.ComponentItem):
-       """ounces - a weight measurement in SI meters """
-       want = 'ozs '
-
-class pounds(aetools.ComponentItem):
-       """pounds - a weight measurement in SI meters """
-       want = 'lbs '
-
-class degrees_Celsius(aetools.ComponentItem):
-       """degrees Celsius - a temperature measurement in SI degrees Celsius """
-       want = 'degc'
-
-class degrees_Fahrenheit(aetools.ComponentItem):
-       """degrees Fahrenheit - a temperature measurement in degrees Fahrenheit """
-       want = 'degf'
-
-class degrees_Kelvin(aetools.ComponentItem):
-       """degrees Kelvin - a temperature measurement in degrees Kelvin """
-       want = 'degk'
-
-class upper_case(aetools.ComponentItem):
-       """upper case - Text with lower case converted to upper case """
-       want = 'case'
-
-class app(aetools.ComponentItem):
-       """app - Short name for application """
-       want = 'capp'
-
-application = app
-class result(aetools.NProperty):
-       """result - the last result of evaluation """
-       which = 'rslt'
-       want = '****'
-class space(aetools.NProperty):
-       """space - a space character """
-       which = 'spac'
-       want = 'cha '
-class _return(aetools.NProperty):
-       """return - a return character """
-       which = 'ret '
-       want = 'cha '
-class tab(aetools.NProperty):
-       """tab - a tab character """
-       which = 'tab '
-       want = 'cha '
-class minutes(aetools.NProperty):
-       """minutes - the number of seconds in a minute """
-       which = 'min '
-       want = 'long'
-class hours(aetools.NProperty):
-       """hours - the number of seconds in an hour """
-       which = 'hour'
-       want = 'long'
-class days(aetools.NProperty):
-       """days - the number of seconds in a day """
-       which = 'days'
-       want = 'long'
-class weeks(aetools.NProperty):
-       """weeks - the number of seconds in a week """
-       which = 'week'
-       want = 'long'
-class pi(aetools.NProperty):
-       """pi - the constant pi """
-       which = 'pi  '
-       want = 'doub'
-class print_length(aetools.NProperty):
-       """print length - the maximum length to print """
-       which = 'prln'
-       want = 'long'
-class print_depth(aetools.NProperty):
-       """print depth - the maximum depth to print """
-       which = 'prdp'
-       want = 'long'
-class text_item_delimiters(aetools.NProperty):
-       """text item delimiters - the text item delimiters of a string """
-       which = 'txdl'
-       want = 'list'
-class AppleScript(aetools.NProperty):
-       """AppleScript - the top-level script object """
-       which = 'ascr'
-       want = 'scpt'
-
-applications = app
-boolean._propdict = {
-}
-boolean._elemdict = {
-}
-integer._propdict = {
-}
-integer._elemdict = {
-}
-real._propdict = {
-}
-real._elemdict = {
-}
-number._propdict = {
-}
-number._elemdict = {
-}
-list._propdict = {
-       'length' : length,
-       'reverse' : reverse,
-       'rest' : rest,
-}
-list._elemdict = {
-}
-linked_list._propdict = {
-       'length' : length,
-}
-linked_list._elemdict = {
-}
-vector._propdict = {
-       'length' : length,
-}
-vector._elemdict = {
-}
-record._propdict = {
-}
-record._elemdict = {
-}
-item._propdict = {
-       'id' : id,
-}
-item._elemdict = {
-}
-script._propdict = {
-       'name' : name,
-       'parent' : parent,
-}
-script._elemdict = {
-}
-list_or_record._propdict = {
-}
-list_or_record._elemdict = {
-}
-list_or_string._propdict = {
-}
-list_or_string._elemdict = {
-}
-number_or_string._propdict = {
-}
-number_or_string._elemdict = {
-}
-alias_or_string._propdict = {
-}
-alias_or_string._elemdict = {
-}
-list_2c__record_or_text._propdict = {
-}
-list_2c__record_or_text._elemdict = {
-}
-number_or_date._propdict = {
-}
-number_or_date._elemdict = {
-}
-number_2c__date_or_text._propdict = {
-}
-number_2c__date_or_text._elemdict = {
-}
-_class._propdict = {
-       '_3c_Inheritance_3e_' : _3c_Inheritance_3e_,
-}
-_class._elemdict = {
-}
-event._propdict = {
-}
-event._elemdict = {
-}
-property._propdict = {
-}
-property._elemdict = {
-}
-constant._propdict = {
-}
-constant._elemdict = {
-}
-preposition._propdict = {
-}
-preposition._elemdict = {
-}
-reference_form._propdict = {
-}
-reference_form._elemdict = {
-}
-handler._propdict = {
-}
-handler._elemdict = {
-}
-data._propdict = {
-}
-data._elemdict = {
-}
-text._propdict = {
-}
-text._elemdict = {
-}
-international_text._propdict = {
-}
-international_text._elemdict = {
-}
-international_text._propdict = {
-}
-international_text._elemdict = {
-}
-string._propdict = {
-}
-string._elemdict = {
-}
-styled_text._propdict = {
-}
-styled_text._elemdict = {
-}
-styled_text._propdict = {
-}
-styled_text._elemdict = {
-}
-styled_Clipboard_text._propdict = {
-}
-styled_Clipboard_text._elemdict = {
-}
-styled_Clipboard_text._propdict = {
-}
-styled_Clipboard_text._elemdict = {
-}
-Unicode_text._propdict = {
-}
-Unicode_text._elemdict = {
-}
-Unicode_text._propdict = {
-}
-Unicode_text._elemdict = {
-}
-styled_Unicode_text._propdict = {
-}
-styled_Unicode_text._elemdict = {
-}
-styled_Unicode_text._propdict = {
-}
-styled_Unicode_text._elemdict = {
-}
-encoded_string._propdict = {
-}
-encoded_string._elemdict = {
-}
-C_string._propdict = {
-}
-C_string._elemdict = {
-}
-Pascal_string._propdict = {
-}
-Pascal_string._elemdict = {
-}
-character._propdict = {
-}
-character._elemdict = {
-}
-text_item._propdict = {
-}
-text_item._elemdict = {
-}
-writing_code._propdict = {
-}
-writing_code._elemdict = {
-}
-writing_code_info._propdict = {
-       'script_code' : script_code,
-       'language_code' : language_code,
-}
-writing_code_info._elemdict = {
-}
-_empty_ae_name._propdict = {
-}
-_empty_ae_name._elemdict = {
-}
-missing_value._propdict = {
-}
-missing_value._elemdict = {
-}
-reference._propdict = {
-}
-reference._elemdict = {
-}
-anything._propdict = {
-}
-anything._elemdict = {
-}
-type_class._propdict = {
-}
-type_class._elemdict = {
-}
-RGB_color._propdict = {
-}
-RGB_color._elemdict = {
-}
-picture._propdict = {
-}
-picture._elemdict = {
-}
-sound._propdict = {
-}
-sound._elemdict = {
-}
-version._propdict = {
-}
-version._elemdict = {
-}
-file_specification._propdict = {
-}
-file_specification._elemdict = {
-}
-alias._propdict = {
-}
-alias._elemdict = {
-}
-machine._propdict = {
-}
-machine._elemdict = {
-}
-zone._propdict = {
-}
-zone._elemdict = {
-}
-keystroke._propdict = {
-       'key' : key,
-       'modifiers' : modifiers,
-       'key_kind' : key_kind,
-}
-keystroke._elemdict = {
-}
-seconds._propdict = {
-}
-seconds._elemdict = {
-}
-date._propdict = {
-       'weekday' : weekday,
-       'month' : month,
-       'day' : day,
-       'year' : year,
-       'time' : time,
-       'date_string' : date_string,
-       'time_string' : time_string,
-}
-date._elemdict = {
-}
-month._propdict = {
-}
-month._elemdict = {
-}
-January._propdict = {
-}
-January._elemdict = {
-}
-February._propdict = {
-}
-February._elemdict = {
-}
-March._propdict = {
-}
-March._elemdict = {
-}
-April._propdict = {
-}
-April._elemdict = {
-}
-May._propdict = {
-}
-May._elemdict = {
-}
-June._propdict = {
-}
-June._elemdict = {
-}
-July._propdict = {
-}
-July._elemdict = {
-}
-August._propdict = {
-}
-August._elemdict = {
-}
-September._propdict = {
-}
-September._elemdict = {
-}
-October._propdict = {
-}
-October._elemdict = {
-}
-November._propdict = {
-}
-November._elemdict = {
-}
-December._propdict = {
-}
-December._elemdict = {
-}
-weekday._propdict = {
-}
-weekday._elemdict = {
-}
-Sunday._propdict = {
-}
-Sunday._elemdict = {
-}
-Monday._propdict = {
-}
-Monday._elemdict = {
-}
-Tuesday._propdict = {
-}
-Tuesday._elemdict = {
-}
-Wednesday._propdict = {
-}
-Wednesday._elemdict = {
-}
-Thursday._propdict = {
-}
-Thursday._elemdict = {
-}
-Friday._propdict = {
-}
-Friday._elemdict = {
-}
-Saturday._propdict = {
-}
-Saturday._elemdict = {
-}
-metres._propdict = {
-}
-metres._elemdict = {
-}
-inches._propdict = {
-}
-inches._elemdict = {
-}
-feet._propdict = {
-}
-feet._elemdict = {
-}
-yards._propdict = {
-}
-yards._elemdict = {
-}
-miles._propdict = {
-}
-miles._elemdict = {
-}
-kilometres._propdict = {
-}
-kilometres._elemdict = {
-}
-centimetres._propdict = {
-}
-centimetres._elemdict = {
-}
-square_metres._propdict = {
-}
-square_metres._elemdict = {
-}
-square_feet._propdict = {
-}
-square_feet._elemdict = {
-}
-square_yards._propdict = {
-}
-square_yards._elemdict = {
-}
-square_miles._propdict = {
-}
-square_miles._elemdict = {
-}
-square_kilometres._propdict = {
-}
-square_kilometres._elemdict = {
-}
-litres._propdict = {
-}
-litres._elemdict = {
-}
-gallons._propdict = {
-}
-gallons._elemdict = {
-}
-quarts._propdict = {
-}
-quarts._elemdict = {
-}
-cubic_metres._propdict = {
-}
-cubic_metres._elemdict = {
-}
-cubic_centimetres._propdict = {
-}
-cubic_centimetres._elemdict = {
-}
-cubic_feet._propdict = {
-}
-cubic_feet._elemdict = {
-}
-cubic_inches._propdict = {
-}
-cubic_inches._elemdict = {
-}
-cubic_yards._propdict = {
-}
-cubic_yards._elemdict = {
-}
-kilograms._propdict = {
-}
-kilograms._elemdict = {
-}
-grams._propdict = {
-}
-grams._elemdict = {
-}
-ounces._propdict = {
-}
-ounces._elemdict = {
-}
-pounds._propdict = {
-}
-pounds._elemdict = {
-}
-degrees_Celsius._propdict = {
-}
-degrees_Celsius._elemdict = {
-}
-degrees_Fahrenheit._propdict = {
-}
-degrees_Fahrenheit._elemdict = {
-}
-degrees_Kelvin._propdict = {
-}
-degrees_Kelvin._elemdict = {
-}
-upper_case._propdict = {
-}
-upper_case._elemdict = {
-}
-app._propdict = {
-}
-app._elemdict = {
-}
-_Enum_cons = {
-       'case' : 'case',        # case
-       'diacriticals' : 'diac',        # diacriticals
-       'white_space' : 'whit', # white space
-       'hyphens' : 'hyph',     # hyphens
-       'expansion' : 'expa',   # expansion
-       'punctuation' : 'punc', # punctuation
-       'application_responses' : 'rmte',       # remote event replies
-}
-
-_Enum_boov = {
-       'true' : 'true',        # the true boolean value
-       'false' : 'fals',       # the false boolean value
-}
-
-_Enum_misc = {
-       'current_application' : 'cura', # the current application
-}
-
-_Enum_eMds = {
-       'option_down' : 'Kopt', # 
-       'command_down' : 'Kcmd',        # 
-       'control_down' : 'Kctl',        # 
-       'shift_down' : 'Ksft',  # 
-       'caps_lock_down' : 'Kclk',      # 
-}
-
-_Enum_ekst = {
-       'escape_key' : 'ks5\000',       # 
-       'delete_key' : 'ks3\000',       # 
-       'tab_key' : 'ks0\000',  # 
-       'return_key' : 'ks$\000',       # 
-       'clear_key' : 'ksG\000',        # 
-       'enter_key' : 'ksL\000',        # 
-       'up_arrow_key' : 'ks~\000',     # 
-       'down_arrow_key' : 'ks}\000',   # 
-       'left_arrow_key' : 'ks{\000',   # 
-       'right_arrow_key' : 'ks|\000',  # 
-       'help_key' : 'ksr\000', # 
-       'home_key' : 'kss\000', # 
-       'page_up_key' : 'kst\000',      # 
-       'page_down_key' : 'ksy\000',    # 
-       'forward_del_key' : 'ksu\000',  # 
-       'end_key' : 'ksw\000',  # 
-       'F1_key' : 'ksz\000',   # 
-       'F2_key' : 'ksx\000',   # 
-       'F3_key' : 'ksc\000',   # 
-       'F4_key' : 'ksv\000',   # 
-       'F5_key' : 'ks`\000',   # 
-       'F6_key' : 'ksa\000',   # 
-       'F7_key' : 'ksb\000',   # 
-       'F8_key' : 'ksd\000',   # 
-       'F9_key' : 'kse\000',   # 
-       'F10_key' : 'ksm\000',  # 
-       'F11_key' : 'ksg\000',  # 
-       'F12_key' : 'kso\000',  # 
-       'F13_key' : 'ksi\000',  # 
-       'F14_key' : 'ksk\000',  # 
-       'F15_key' : 'ksq\000',  # 
-}
-
-
-#
-# Indices of types declared in this module
-#
-_classdeclarations = {
-       'nmbr' : number,
-       'ctxt' : text,
-       'fss ' : file_specification,
-       'sat ' : Saturday,
-       'ccmt' : cubic_centimetres,
-       'cfet' : cubic_feet,
-       'lbs ' : pounds,
-       'yard' : yards,
-       'sqyd' : square_yards,
-       'mach' : machine,
-       'utxt' : Unicode_text,
-       'cstr' : C_string,
-       'rdat' : data,
-       'doub' : real,
-       'hand' : handler,
-       'sutx' : styled_Unicode_text,
-       'sqmi' : square_miles,
-       'undf' : _empty_ae_name,
-       'reco' : record,
-       'cha ' : character,
-       'cobj' : item,
-       'kfrm' : reference_form,
-       'enum' : constant,
-       'inch' : inches,
-       'sqrm' : square_metres,
-       'bool' : boolean,
-       'prop' : property,
-       '****' : anything,
-       'scpt' : script,
-       'kgrm' : kilograms,
-       'sep ' : September,
-       'snd ' : sound,
-       'mon ' : Monday,
-       'capp' : app,
-       'lr  ' : list_or_record,
-       'fri ' : Friday,
-       'cuin' : cubic_inches,
-       'mar ' : March,
-       'galn' : gallons,
-       'encs' : encoded_string,
-       'litr' : litres,
-       'case' : upper_case,
-       'styl' : styled_Clipboard_text,
-       'llst' : linked_list,
-       'pcls' : _class,
-       'jun ' : June,
-       'ns  ' : number_or_string,
-       'ozs ' : ounces,
-       'mnth' : month,
-       'metr' : metres,
-       'jan ' : January,
-       'pstr' : Pascal_string,
-       'alis' : alias,
-       'gram' : grams,
-       'msng' : missing_value,
-       'qrts' : quarts,
-       'nov ' : November,
-       'list' : list,
-       'sqft' : square_feet,
-       'kmtr' : kilometres,
-       'cRGB' : RGB_color,
-       'itxt' : international_text,
-       'scnd' : seconds,
-       'apr ' : April,
-       'nd  ' : number_or_date,
-       'wkdy' : weekday,
-       'vect' : vector,
-       'obj ' : reference,
-       'sqkm' : square_kilometres,
-       'dec ' : December,
-       'wed ' : Wednesday,
-       'cyrd' : cubic_yards,
-       'vers' : version,
-       'tue ' : Tuesday,
-       'prep' : preposition,
-       'type' : type_class,
-       'citm' : text_item,
-       'citl' : writing_code_info,
-       'sf  ' : alias_or_string,
-       'degc' : degrees_Celsius,
-       'long' : integer,
-       'ls  ' : list_or_string,
-       'PICT' : picture,
-       'zone' : zone,
-       'psct' : writing_code,
-       'lrs ' : list_2c__record_or_text,
-       'cmtr' : centimetres,
-       'evnt' : event,
-       'oct ' : October,
-       'degk' : degrees_Kelvin,
-       'ldt ' : date,
-       'thu ' : Thursday,
-       'degf' : degrees_Fahrenheit,
-       'kprs' : keystroke,
-       'mile' : miles,
-       'feb ' : February,
-       'feet' : feet,
-       'nds ' : number_2c__date_or_text,
-       'STXT' : styled_text,
-       'cmet' : cubic_metres,
-       'sun ' : Sunday,
-       'aug ' : August,
-       'may ' : May,
-       'jul ' : July,
-       'TEXT' : string,
-}
-
-_propdeclarations = {
-       'pscd' : script_code,
-       'rslt' : result,
-       'pnam' : name,
-       'time' : time,
-       'txdl' : text_item_delimiters,
-       'prln' : print_length,
-       'prdp' : print_depth,
-       'kMod' : modifiers,
-       'days' : days,
-       'spac' : space,
-       'kMsg' : key,
-       'plcd' : language_code,
-       'ret ' : _return,
-       'tstr' : time_string,
-       'hour' : hours,
-       'tab ' : tab,
-       'rvse' : reverse,
-       'wkdy' : weekday,
-       'day ' : day,
-       'ID  ' : id,
-       'c@#^' : _3c_Inheritance_3e_,
-       'kknd' : key_kind,
-       'ascr' : AppleScript,
-       'rest' : rest,
-       'dstr' : date_string,
-       'min ' : minutes,
-       'pi  ' : pi,
-       'leng' : length,
-       'year' : year,
-       'pare' : parent,
-       'mnth' : month,
-       'week' : weeks,
-}
-
-_compdeclarations = {
-}
-
-_enumdeclarations = {
-       'boov' : _Enum_boov,
-       'ekst' : _Enum_ekst,
-       'misc' : _Enum_misc,
-       'cons' : _Enum_cons,
-       'eMds' : _Enum_eMds,
-}
diff --git a/Mac/Lib/lib-scriptpackages/StdSuites/Standard_Suite.py b/Mac/Lib/lib-scriptpackages/StdSuites/Standard_Suite.py
deleted file mode 100644 (file)
index 505a702..0000000
+++ /dev/null
@@ -1,703 +0,0 @@
-"""Suite Standard Suite: Common terms for most applications
-Level 1, version 1
-
-Generated from Macintosh HD:Systeemmap:Extensies:AppleScript
-AETE/AEUT resource version 1/0, language 0, script 0
-"""
-
-import aetools
-import MacOS
-
-_code = 'core'
-
-class Standard_Suite_Events:
-
-       def open(self, _object, _attributes={}, **_arguments):
-               """open: Open the specified object(s)
-               Required argument: list of objects to open
-               Keyword argument _attributes: AppleEvent attribute dictionary
-               """
-               _code = 'aevt'
-               _subcode = 'odoc'
-
-               if _arguments: raise TypeError, 'No optional args expected'
-               _arguments['----'] = _object
-
-
-               _reply, _arguments, _attributes = self.send(_code, _subcode,
-                               _arguments, _attributes)
-               if _arguments.has_key('errn'):
-                       raise aetools.Error, aetools.decodeerror(_arguments)
-               # XXXX Optionally decode result
-               if _arguments.has_key('----'):
-                       return _arguments['----']
-
-       def run(self, _no_object=None, _attributes={}, **_arguments):
-               """run: Run an application.  Most applications will open an empty, untitled window.
-               Keyword argument _attributes: AppleEvent attribute dictionary
-               """
-               _code = 'aevt'
-               _subcode = 'oapp'
-
-               if _arguments: raise TypeError, 'No optional args expected'
-               if _no_object != None: raise TypeError, 'No direct arg expected'
-
-
-               _reply, _arguments, _attributes = self.send(_code, _subcode,
-                               _arguments, _attributes)
-               if _arguments.has_key('errn'):
-                       raise aetools.Error, aetools.decodeerror(_arguments)
-               # XXXX Optionally decode result
-               if _arguments.has_key('----'):
-                       return _arguments['----']
-
-       def reopen(self, _no_object=None, _attributes={}, **_arguments):
-               """reopen: Reactivate a running application.  Some applications will open a new untitled window if no window is open.
-               Keyword argument _attributes: AppleEvent attribute dictionary
-               """
-               _code = 'aevt'
-               _subcode = 'rapp'
-
-               if _arguments: raise TypeError, 'No optional args expected'
-               if _no_object != None: raise TypeError, 'No direct arg expected'
-
-
-               _reply, _arguments, _attributes = self.send(_code, _subcode,
-                               _arguments, _attributes)
-               if _arguments.has_key('errn'):
-                       raise aetools.Error, aetools.decodeerror(_arguments)
-               # XXXX Optionally decode result
-               if _arguments.has_key('----'):
-                       return _arguments['----']
-
-       def _print(self, _object, _attributes={}, **_arguments):
-               """print: Print the specified object(s)
-               Required argument: list of objects to print
-               Keyword argument _attributes: AppleEvent attribute dictionary
-               """
-               _code = 'aevt'
-               _subcode = 'pdoc'
-
-               if _arguments: raise TypeError, 'No optional args expected'
-               _arguments['----'] = _object
-
-
-               _reply, _arguments, _attributes = self.send(_code, _subcode,
-                               _arguments, _attributes)
-               if _arguments.has_key('errn'):
-                       raise aetools.Error, aetools.decodeerror(_arguments)
-               # XXXX Optionally decode result
-               if _arguments.has_key('----'):
-                       return _arguments['----']
-
-       _argmap_quit = {
-               'saving' : 'savo',
-       }
-
-       def quit(self, _no_object=None, _attributes={}, **_arguments):
-               """quit: Quit an application
-               Keyword argument saving: specifies whether to save currently open documents
-               Keyword argument _attributes: AppleEvent attribute dictionary
-               """
-               _code = 'aevt'
-               _subcode = 'quit'
-
-               aetools.keysubst(_arguments, self._argmap_quit)
-               if _no_object != None: raise TypeError, 'No direct arg expected'
-
-               aetools.enumsubst(_arguments, 'savo', _Enum_savo)
-
-               _reply, _arguments, _attributes = self.send(_code, _subcode,
-                               _arguments, _attributes)
-               if _arguments.has_key('errn'):
-                       raise aetools.Error, aetools.decodeerror(_arguments)
-               # XXXX Optionally decode result
-               if _arguments.has_key('----'):
-                       return _arguments['----']
-
-       _argmap_close = {
-               'saving' : 'savo',
-               'saving_in' : 'kfil',
-       }
-
-       def close(self, _object, _attributes={}, **_arguments):
-               """close: Close an object
-               Required argument: the object to close
-               Keyword argument saving: specifies whether changes should be saved before closing
-               Keyword argument saving_in: the file in which to save the object
-               Keyword argument _attributes: AppleEvent attribute dictionary
-               """
-               _code = 'core'
-               _subcode = 'clos'
-
-               aetools.keysubst(_arguments, self._argmap_close)
-               _arguments['----'] = _object
-
-               aetools.enumsubst(_arguments, 'savo', _Enum_savo)
-
-               _reply, _arguments, _attributes = self.send(_code, _subcode,
-                               _arguments, _attributes)
-               if _arguments.has_key('errn'):
-                       raise aetools.Error, aetools.decodeerror(_arguments)
-               # XXXX Optionally decode result
-               if _arguments.has_key('----'):
-                       return _arguments['----']
-
-       _argmap_count = {
-               'each' : 'kocl',
-       }
-
-       def count(self, _object, _attributes={}, **_arguments):
-               """count: Return the number of elements of an object
-               Required argument: the object whose elements are to be counted
-               Keyword argument each: if specified, restricts counting to objects of this class
-               Keyword argument _attributes: AppleEvent attribute dictionary
-               Returns: the number of elements
-               """
-               _code = 'core'
-               _subcode = 'cnte'
-
-               aetools.keysubst(_arguments, self._argmap_count)
-               _arguments['----'] = _object
-
-
-               _reply, _arguments, _attributes = self.send(_code, _subcode,
-                               _arguments, _attributes)
-               if _arguments.has_key('errn'):
-                       raise aetools.Error, aetools.decodeerror(_arguments)
-               # XXXX Optionally decode result
-               if _arguments.has_key('----'):
-                       return _arguments['----']
-
-       def delete(self, _object, _attributes={}, **_arguments):
-               """delete: Delete an object from its container. Note this does not work on script variables, only on elements of application classes.
-               Required argument: the element to delete
-               Keyword argument _attributes: AppleEvent attribute dictionary
-               """
-               _code = 'core'
-               _subcode = 'delo'
-
-               if _arguments: raise TypeError, 'No optional args expected'
-               _arguments['----'] = _object
-
-
-               _reply, _arguments, _attributes = self.send(_code, _subcode,
-                               _arguments, _attributes)
-               if _arguments.has_key('errn'):
-                       raise aetools.Error, aetools.decodeerror(_arguments)
-               # XXXX Optionally decode result
-               if _arguments.has_key('----'):
-                       return _arguments['----']
-
-       _argmap_duplicate = {
-               'to' : 'insh',
-               'with_properties' : 'prdt',
-       }
-
-       def duplicate(self, _object, _attributes={}, **_arguments):
-               """duplicate: Duplicate one or more objects
-               Required argument: the object(s) to duplicate
-               Keyword argument to: the new location for the object(s)
-               Keyword argument with_properties: the initial values for properties of the new object that are to be different from the original
-               Keyword argument _attributes: AppleEvent attribute dictionary
-               Returns: to the duplicated object(s)
-               """
-               _code = 'core'
-               _subcode = 'clon'
-
-               aetools.keysubst(_arguments, self._argmap_duplicate)
-               _arguments['----'] = _object
-
-
-               _reply, _arguments, _attributes = self.send(_code, _subcode,
-                               _arguments, _attributes)
-               if _arguments.has_key('errn'):
-                       raise aetools.Error, aetools.decodeerror(_arguments)
-               # XXXX Optionally decode result
-               if _arguments.has_key('----'):
-                       return _arguments['----']
-
-       def exists(self, _object, _attributes={}, **_arguments):
-               """exists: Verify if an object exists
-               Required argument: the object in question
-               Keyword argument _attributes: AppleEvent attribute dictionary
-               Returns: true if it exists, false if not
-               """
-               _code = 'core'
-               _subcode = 'doex'
-
-               if _arguments: raise TypeError, 'No optional args expected'
-               _arguments['----'] = _object
-
-
-               _reply, _arguments, _attributes = self.send(_code, _subcode,
-                               _arguments, _attributes)
-               if _arguments.has_key('errn'):
-                       raise aetools.Error, aetools.decodeerror(_arguments)
-               # XXXX Optionally decode result
-               if _arguments.has_key('----'):
-                       return _arguments['----']
-
-       _argmap_make = {
-               'new' : 'kocl',
-               'at' : 'insh',
-               'with_data' : 'data',
-               'with_properties' : 'prdt',
-       }
-
-       def make(self, _no_object=None, _attributes={}, **_arguments):
-               """make: Make a new element
-               Keyword argument new: the class of the new element
-               Keyword argument at: the location at which to insert the element
-               Keyword argument with_data: the initial data for the element
-               Keyword argument with_properties: the initial values for the properties of the element
-               Keyword argument _attributes: AppleEvent attribute dictionary
-               Returns: to the new object(s)
-               """
-               _code = 'core'
-               _subcode = 'crel'
-
-               aetools.keysubst(_arguments, self._argmap_make)
-               if _no_object != None: raise TypeError, 'No direct arg expected'
-
-
-               _reply, _arguments, _attributes = self.send(_code, _subcode,
-                               _arguments, _attributes)
-               if _arguments.has_key('errn'):
-                       raise aetools.Error, aetools.decodeerror(_arguments)
-               # XXXX Optionally decode result
-               if _arguments.has_key('----'):
-                       return _arguments['----']
-
-       _argmap_move = {
-               'to' : 'insh',
-       }
-
-       def move(self, _object, _attributes={}, **_arguments):
-               """move: Move object(s) to a new location
-               Required argument: the object(s) to move
-               Keyword argument to: the new location for the object(s)
-               Keyword argument _attributes: AppleEvent attribute dictionary
-               Returns: to the object(s) after they have been moved
-               """
-               _code = 'core'
-               _subcode = 'move'
-
-               aetools.keysubst(_arguments, self._argmap_move)
-               _arguments['----'] = _object
-
-
-               _reply, _arguments, _attributes = self.send(_code, _subcode,
-                               _arguments, _attributes)
-               if _arguments.has_key('errn'):
-                       raise aetools.Error, aetools.decodeerror(_arguments)
-               # XXXX Optionally decode result
-               if _arguments.has_key('----'):
-                       return _arguments['----']
-
-       _argmap_save = {
-               '_in' : 'kfil',
-               'as' : 'fltp',
-       }
-
-       def save(self, _object, _attributes={}, **_arguments):
-               """save: Save an object
-               Required argument: the object to save, usually a document or window
-               Keyword argument _in: the file in which to save the object
-               Keyword argument as: the file type of the document in which to save the data
-               Keyword argument _attributes: AppleEvent attribute dictionary
-               """
-               _code = 'core'
-               _subcode = 'save'
-
-               aetools.keysubst(_arguments, self._argmap_save)
-               _arguments['----'] = _object
-
-
-               _reply, _arguments, _attributes = self.send(_code, _subcode,
-                               _arguments, _attributes)
-               if _arguments.has_key('errn'):
-                       raise aetools.Error, aetools.decodeerror(_arguments)
-               # XXXX Optionally decode result
-               if _arguments.has_key('----'):
-                       return _arguments['----']
-
-       def select(self, _object, _attributes={}, **_arguments):
-               """select: Make a selection
-               Required argument: the object to select
-               Keyword argument _attributes: AppleEvent attribute dictionary
-               """
-               _code = 'misc'
-               _subcode = 'slct'
-
-               if _arguments: raise TypeError, 'No optional args expected'
-               _arguments['----'] = _object
-
-
-               _reply, _arguments, _attributes = self.send(_code, _subcode,
-                               _arguments, _attributes)
-               if _arguments.has_key('errn'):
-                       raise aetools.Error, aetools.decodeerror(_arguments)
-               # XXXX Optionally decode result
-               if _arguments.has_key('----'):
-                       return _arguments['----']
-
-       _argmap_data_size = {
-               'as' : 'rtyp',
-       }
-
-       def data_size(self, _object, _attributes={}, **_arguments):
-               """data size: (optional) Return the size in bytes of an object
-               Required argument: the object whose data size is to be returned
-               Keyword argument as: the data type for which the size is calculated
-               Keyword argument _attributes: AppleEvent attribute dictionary
-               Returns: the size of the object in bytes
-               """
-               _code = 'core'
-               _subcode = 'dsiz'
-
-               aetools.keysubst(_arguments, self._argmap_data_size)
-               _arguments['----'] = _object
-
-
-               _reply, _arguments, _attributes = self.send(_code, _subcode,
-                               _arguments, _attributes)
-               if _arguments.has_key('errn'):
-                       raise aetools.Error, aetools.decodeerror(_arguments)
-               # XXXX Optionally decode result
-               if _arguments.has_key('----'):
-                       return _arguments['----']
-
-       _argmap_suite_info = {
-               '_in' : 'wrcd',
-       }
-
-       def suite_info(self, _object, _attributes={}, **_arguments):
-               """suite info: (optional) Get information about event suite(s)
-               Required argument: the suite for which to return information
-               Keyword argument _in: the human language and script system in which to return information
-               Keyword argument _attributes: AppleEvent attribute dictionary
-               Returns: a record containing the suites and their versions
-               """
-               _code = 'core'
-               _subcode = 'gtsi'
-
-               aetools.keysubst(_arguments, self._argmap_suite_info)
-               _arguments['----'] = _object
-
-
-               _reply, _arguments, _attributes = self.send(_code, _subcode,
-                               _arguments, _attributes)
-               if _arguments.has_key('errn'):
-                       raise aetools.Error, aetools.decodeerror(_arguments)
-               # XXXX Optionally decode result
-               if _arguments.has_key('----'):
-                       return _arguments['----']
-
-       _argmap_event_info = {
-               '_in' : 'wrcd',
-       }
-
-       def event_info(self, _object, _attributes={}, **_arguments):
-               """event info: (optional) Get information about the Apple events in a suite
-               Required argument: the event class of the Apple events for which to return information
-               Keyword argument _in: the human language and script system in which to return information
-               Keyword argument _attributes: AppleEvent attribute dictionary
-               Returns: a record containing the events and their parameters
-               """
-               _code = 'core'
-               _subcode = 'gtei'
-
-               aetools.keysubst(_arguments, self._argmap_event_info)
-               _arguments['----'] = _object
-
-
-               _reply, _arguments, _attributes = self.send(_code, _subcode,
-                               _arguments, _attributes)
-               if _arguments.has_key('errn'):
-                       raise aetools.Error, aetools.decodeerror(_arguments)
-               # XXXX Optionally decode result
-               if _arguments.has_key('----'):
-                       return _arguments['----']
-
-       _argmap_class_info = {
-               '_in' : 'wrcd',
-       }
-
-       def class_info(self, _object=None, _attributes={}, **_arguments):
-               """class info: (optional) Get information about an object class
-               Required argument: the object class about which information is requested
-               Keyword argument _in: the human language and script system in which to return information
-               Keyword argument _attributes: AppleEvent attribute dictionary
-               Returns: a record containing the object¹s properties and elements
-               """
-               _code = 'core'
-               _subcode = 'qobj'
-
-               aetools.keysubst(_arguments, self._argmap_class_info)
-               _arguments['----'] = _object
-
-
-               _reply, _arguments, _attributes = self.send(_code, _subcode,
-                               _arguments, _attributes)
-               if _arguments.has_key('errn'):
-                       raise aetools.Error, aetools.decodeerror(_arguments)
-               # XXXX Optionally decode result
-               if _arguments.has_key('----'):
-                       return _arguments['----']
-
-
-class application(aetools.ComponentItem):
-       """application - An application program """
-       want = 'capp'
-class name(aetools.NProperty):
-       """name - the name of the application """
-       which = 'pnam'
-       want = 'itxt'
-class frontmost(aetools.NProperty):
-       """frontmost - Is this the frontmost application? """
-       which = 'pisf'
-       want = 'bool'
-class selection(aetools.NProperty):
-       """selection - the selection visible to the user.  Use the \8cselect¹ command to set a new selection; use \8ccontents of selection¹ to get or change information in the document. """
-       which = 'sele'
-       want = 'csel'
-class clipboard(aetools.NProperty):
-       """clipboard - the contents of the clipboard for this application """
-       which = 'pcli'
-       want = '****'
-class version(aetools.NProperty):
-       """version - the version of the application """
-       which = 'vers'
-       want = 'vers'
-
-applications = application
-
-class document(aetools.ComponentItem):
-       """document - A document of a scriptable application """
-       want = 'docu'
-class modified(aetools.NProperty):
-       """modified - Has the document been modified since the last save? """
-       which = 'imod'
-       want = 'bool'
-
-documents = document
-
-class file(aetools.ComponentItem):
-       """file - a file on a disk or server (or a file yet to be created) """
-       want = 'file'
-class stationery(aetools.NProperty):
-       """stationery - Is the file a stationery file? """
-       which = 'pspd'
-       want = 'bool'
-
-files = file
-
-class alias(aetools.ComponentItem):
-       """alias - a file on a disk or server.  The file must exist when you check the syntax of your script. """
-       want = 'alis'
-
-aliases = alias
-
-class selection_2d_object(aetools.ComponentItem):
-       """selection-object - A way to refer to the state of the current of the selection.  Use the \8cselect¹ command to make a new selection. """
-       want = 'csel'
-class contents(aetools.NProperty):
-       """contents - the information currently selected.  Use \8ccontents of selection¹ to get or change information in a document. """
-       which = 'pcnt'
-       want = '****'
-
-class window(aetools.ComponentItem):
-       """window - A window """
-       want = 'cwin'
-class bounds(aetools.NProperty):
-       """bounds - the boundary rectangle for the window """
-       which = 'pbnd'
-       want = 'qdrt'
-class closeable(aetools.NProperty):
-       """closeable - Does the window have a close box? """
-       which = 'hclb'
-       want = 'bool'
-class titled(aetools.NProperty):
-       """titled - Does the window have a title bar? """
-       which = 'ptit'
-       want = 'bool'
-class index(aetools.NProperty):
-       """index - the number of the window """
-       which = 'pidx'
-       want = 'long'
-class floating(aetools.NProperty):
-       """floating - Does the window float? """
-       which = 'isfl'
-       want = 'bool'
-class modal(aetools.NProperty):
-       """modal - Is the window modal? """
-       which = 'pmod'
-       want = 'bool'
-class resizable(aetools.NProperty):
-       """resizable - Is the window resizable? """
-       which = 'prsz'
-       want = 'bool'
-class zoomable(aetools.NProperty):
-       """zoomable - Is the window zoomable? """
-       which = 'iszm'
-       want = 'bool'
-class zoomed(aetools.NProperty):
-       """zoomed - Is the window zoomed? """
-       which = 'pzum'
-       want = 'bool'
-class visible(aetools.NProperty):
-       """visible - Is the window visible? """
-       which = 'pvis'
-       want = 'bool'
-
-windows = window
-
-class insertion_point(aetools.ComponentItem):
-       """insertion point - An insertion location between two objects """
-       want = 'cins'
-
-insertion_points = insertion_point
-application._propdict = {
-       'name' : name,
-       'frontmost' : frontmost,
-       'selection' : selection,
-       'clipboard' : clipboard,
-       'version' : version,
-}
-application._elemdict = {
-}
-document._propdict = {
-       'modified' : modified,
-}
-document._elemdict = {
-}
-file._propdict = {
-       'stationery' : stationery,
-}
-file._elemdict = {
-}
-alias._propdict = {
-}
-alias._elemdict = {
-}
-selection_2d_object._propdict = {
-       'contents' : contents,
-}
-selection_2d_object._elemdict = {
-}
-window._propdict = {
-       'bounds' : bounds,
-       'closeable' : closeable,
-       'titled' : titled,
-       'index' : index,
-       'floating' : floating,
-       'modal' : modal,
-       'resizable' : resizable,
-       'zoomable' : zoomable,
-       'zoomed' : zoomed,
-       'visible' : visible,
-}
-window._elemdict = {
-}
-insertion_point._propdict = {
-}
-insertion_point._elemdict = {
-}
-class starts_with(aetools.NComparison):
-       """starts with - Starts with """
-class contains(aetools.NComparison):
-       """contains - Contains """
-class ends_with(aetools.NComparison):
-       """ends with - Ends with """
-class _3d_(aetools.NComparison):
-       """= - Equal """
-class _3e_(aetools.NComparison):
-       """> - Greater than """
-class _b3_(aetools.NComparison):
-       """\84 - Greater than or equal to """
-class _3c_(aetools.NComparison):
-       """< - Less than """
-class _b2_(aetools.NComparison):
-       """¾ - Less than or equal to """
-_Enum_savo = {
-       'yes' : 'yes ', # Save objects now
-       'no' : 'no  ',  # Do not save objects
-       'ask' : 'ask ', # Ask the user whether to save
-}
-
-_Enum_kfrm = {
-       'index' : 'indx',       # keyform designating indexed access
-       'named' : 'name',       # keyform designating named access
-       'id' : 'ID  ',  # keyform designating access by unique identifier
-}
-
-_Enum_styl = {
-       'plain' : 'plan',       # Plain
-       'bold' : 'bold',        # Bold
-       'italic' : 'ital',      # Italic
-       'outline' : 'outl',     # Outline
-       'shadow' : 'shad',      # Shadow
-       'underline' : 'undl',   # Underline
-       'superscript' : 'spsc', # Superscript
-       'subscript' : 'sbsc',   # Subscript
-       'strikethrough' : 'strk',       # Strikethrough
-       'small_caps' : 'smcp',  # Small caps
-       'all_caps' : 'alcp',    # All capital letters
-       'all_lowercase' : 'lowc',       # Lowercase
-       'condensed' : 'cond',   # Condensed
-       'expanded' : 'pexp',    # Expanded
-       'hidden' : 'hidn',      # Hidden
-}
-
-
-#
-# Indices of types declared in this module
-#
-_classdeclarations = {
-       'docu' : document,
-       'cins' : insertion_point,
-       'capp' : application,
-       'alis' : alias,
-       'csel' : selection_2d_object,
-       'file' : file,
-       'cwin' : window,
-}
-
-_propdeclarations = {
-       'ptit' : titled,
-       'pidx' : index,
-       'pnam' : name,
-       'pzum' : zoomed,
-       'pcnt' : contents,
-       'pcli' : clipboard,
-       'hclb' : closeable,
-       'iszm' : zoomable,
-       'isfl' : floating,
-       'pspd' : stationery,
-       'pisf' : frontmost,
-       'sele' : selection,
-       'pbnd' : bounds,
-       'imod' : modified,
-       'pvis' : visible,
-       'pmod' : modal,
-       'vers' : version,
-       'prsz' : resizable,
-}
-
-_compdeclarations = {
-       '>   ' : _3e_,
-       'bgwt' : starts_with,
-       '>=  ' : _b3_,
-       '=   ' : _3d_,
-       '<=  ' : _b2_,
-       'cont' : contains,
-       'ends' : ends_with,
-       '<   ' : _3c_,
-}
-
-_enumdeclarations = {
-       'styl' : _Enum_styl,
-       'savo' : _Enum_savo,
-       'kfrm' : _Enum_kfrm,
-}
diff --git a/Mac/Lib/lib-scriptpackages/StdSuites/Table_Suite.py b/Mac/Lib/lib-scriptpackages/StdSuites/Table_Suite.py
deleted file mode 100644 (file)
index b5a8ff3..0000000
+++ /dev/null
@@ -1,100 +0,0 @@
-"""Suite Table Suite: Classes for manipulating tables
-Level 1, version 1
-
-Generated from Macintosh HD:Systeemmap:Extensies:AppleScript
-AETE/AEUT resource version 1/0, language 0, script 0
-"""
-
-import aetools
-import MacOS
-
-_code = 'tbls'
-
-class Table_Suite_Events:
-
-       pass
-
-
-class cell(aetools.ComponentItem):
-       """cell - A cell """
-       want = 'ccel'
-class formula(aetools.NProperty):
-       """formula - the formula of the cell """
-       which = 'pfor'
-       want = 'ctxt'
-class protection(aetools.NProperty):
-       """protection - Indicates whether value or formula in the cell can be changed """
-       which = 'ppro'
-       want = 'prtn'
-
-cells = cell
-
-class column(aetools.ComponentItem):
-       """column - A column """
-       want = 'ccol'
-class name(aetools.NProperty):
-       """name - the name of the column """
-       which = 'pnam'
-       want = 'itxt'
-
-columns = column
-
-class row(aetools.ComponentItem):
-       """row - A row """
-       want = 'crow'
-
-rows = row
-
-class table(aetools.ComponentItem):
-       """table - A table """
-       want = 'ctbl'
-
-tables = table
-cell._propdict = {
-       'formula' : formula,
-       'protection' : protection,
-}
-cell._elemdict = {
-}
-column._propdict = {
-       'name' : name,
-}
-column._elemdict = {
-}
-row._propdict = {
-}
-row._elemdict = {
-}
-table._propdict = {
-}
-table._elemdict = {
-}
-_Enum_prtn = {
-       'read_only' : 'nmod',   # Can¹t change values or formulas
-       'formulas_protected' : 'fpro',  # Can changes values but not formulas
-       'read_2f_write' : 'modf',       # Can change values and formulas
-}
-
-
-#
-# Indices of types declared in this module
-#
-_classdeclarations = {
-       'ccel' : cell,
-       'ctbl' : table,
-       'ccol' : column,
-       'crow' : row,
-}
-
-_propdeclarations = {
-       'ppro' : protection,
-       'pfor' : formula,
-       'pnam' : name,
-}
-
-_compdeclarations = {
-}
-
-_enumdeclarations = {
-       'prtn' : _Enum_prtn,
-}
diff --git a/Mac/Lib/lib-scriptpackages/StdSuites/Text_Suite.py b/Mac/Lib/lib-scriptpackages/StdSuites/Text_Suite.py
deleted file mode 100644 (file)
index de879ef..0000000
+++ /dev/null
@@ -1,215 +0,0 @@
-"""Suite Text Suite: A set of basic classes for text processing
-Level 1, version 1
-
-Generated from Macintosh HD:Systeemmap:Extensies:AppleScript
-AETE/AEUT resource version 1/0, language 0, script 0
-"""
-
-import aetools
-import MacOS
-
-_code = 'TEXT'
-
-class Text_Suite_Events:
-
-       pass
-
-
-class character(aetools.ComponentItem):
-       """character - A character """
-       want = 'cha '
-class _3c_inheritance_3e_(aetools.NProperty):
-       """<inheritance> - inherits some of its properties from this class """
-       which = 'c@#^'
-       want = 'ctxt'
-
-class line(aetools.ComponentItem):
-       """line - A line of text """
-       want = 'clin'
-# repeated property _3c_inheritance_3e_ inherits some of its properties from this class
-class justification(aetools.NProperty):
-       """justification - the justification of the text """
-       which = 'pjst'
-       want = 'just'
-
-lines = line
-
-class paragraph(aetools.ComponentItem):
-       """paragraph - A paragraph """
-       want = 'cpar'
-# repeated property _3c_inheritance_3e_ inherits some of its properties from this class
-
-paragraphs = paragraph
-
-class text(aetools.ComponentItem):
-       """text - Text """
-       want = 'ctxt'
-class color(aetools.NProperty):
-       """color - the color of the first character """
-       which = 'colr'
-       want = 'cRGB'
-class font(aetools.NProperty):
-       """font - the name of the font of the first character """
-       which = 'font'
-       want = 'ctxt'
-class size(aetools.NProperty):
-       """size - the size in points of the first character """
-       which = 'ptsz'
-       want = 'fixd'
-class writing_code(aetools.NProperty):
-       """writing code - the script system and language """
-       which = 'psct'
-       want = 'intl'
-class style(aetools.NProperty):
-       """style - the text style of the first character of the first character """
-       which = 'txst'
-       want = 'tsty'
-class uniform_styles(aetools.NProperty):
-       """uniform styles - the text styles that are uniform throughout the text """
-       which = 'ustl'
-       want = 'tsty'
-#        element 'cha ' as ['indx']
-#        element 'clin' as ['indx']
-#        element 'cpar' as ['indx']
-#        element 'ctxt' as ['indx']
-#        element 'cwor' as ['indx']
-
-class text_flow(aetools.ComponentItem):
-       """text flow - A contiguous block of text.  Page layout applications call this a \8cstory.¹ """
-       want = 'cflo'
-# repeated property _3c_inheritance_3e_ inherits some of its properties from this class
-class name(aetools.NProperty):
-       """name - the name """
-       which = 'pnam'
-       want = 'itxt'
-
-text_flows = text_flow
-
-class text_style_info(aetools.ComponentItem):
-       """text style info - On and Off styles of text run """
-       want = 'tsty'
-class on_styles(aetools.NProperty):
-       """on styles - the styles that are on for the text """
-       which = 'onst'
-       want = 'styl'
-class off_styles(aetools.NProperty):
-       """off styles - the styles that are off for the text """
-       which = 'ofst'
-       want = 'styl'
-
-text_style_infos = text_style_info
-
-class word(aetools.ComponentItem):
-       """word - A word """
-       want = 'cwor'
-# repeated property _3c_inheritance_3e_ inherits some of its properties from this class
-
-words = word
-character._propdict = {
-       '_3c_inheritance_3e_' : _3c_inheritance_3e_,
-}
-character._elemdict = {
-}
-line._propdict = {
-       '_3c_inheritance_3e_' : _3c_inheritance_3e_,
-       'justification' : justification,
-}
-line._elemdict = {
-}
-paragraph._propdict = {
-       '_3c_inheritance_3e_' : _3c_inheritance_3e_,
-}
-paragraph._elemdict = {
-}
-text._propdict = {
-       'color' : color,
-       'font' : font,
-       'size' : size,
-       'writing_code' : writing_code,
-       'style' : style,
-       'uniform_styles' : uniform_styles,
-}
-text._elemdict = {
-       'character' : character,
-       'line' : line,
-       'paragraph' : paragraph,
-       'text' : text,
-       'word' : word,
-}
-text_flow._propdict = {
-       '_3c_inheritance_3e_' : _3c_inheritance_3e_,
-       'name' : name,
-}
-text_flow._elemdict = {
-}
-text_style_info._propdict = {
-       'on_styles' : on_styles,
-       'off_styles' : off_styles,
-}
-text_style_info._elemdict = {
-}
-word._propdict = {
-       '_3c_inheritance_3e_' : _3c_inheritance_3e_,
-}
-word._elemdict = {
-}
-_Enum_just = {
-       'left' : 'left',        # Align with left margin
-       'right' : 'rght',       # Align with right margin
-       'center' : 'cent',      # Align with center
-       'full' : 'full',        # Align with both left and right margins
-}
-
-_Enum_styl = {
-       'plain' : 'plan',       # Plain
-       'bold' : 'bold',        # Bold
-       'italic' : 'ital',      # Italic
-       'outline' : 'outl',     # Outline
-       'shadow' : 'shad',      # Shadow
-       'underline' : 'undl',   # Underline
-       'superscript' : 'spsc', # Superscript
-       'subscript' : 'sbsc',   # Subscript
-       'strikethrough' : 'strk',       # Strikethrough
-       'small_caps' : 'smcp',  # Small caps
-       'all_caps' : 'alcp',    # All capital letters
-       'all_lowercase' : 'lowc',       # Lowercase
-       'condensed' : 'cond',   # Condensed
-       'expanded' : 'pexp',    # Expanded
-       'hidden' : 'hidn',      # Hidden
-}
-
-
-#
-# Indices of types declared in this module
-#
-_classdeclarations = {
-       'clin' : line,
-       'ctxt' : text,
-       'cwor' : word,
-       'cflo' : text_flow,
-       'cpar' : paragraph,
-       'tsty' : text_style_info,
-       'cha ' : character,
-}
-
-_propdeclarations = {
-       'psct' : writing_code,
-       'txst' : style,
-       'colr' : color,
-       'font' : font,
-       'pnam' : name,
-       'ustl' : uniform_styles,
-       'pjst' : justification,
-       'ofst' : off_styles,
-       'onst' : on_styles,
-       'ptsz' : size,
-       'c@#^' : _3c_inheritance_3e_,
-}
-
-_compdeclarations = {
-}
-
-_enumdeclarations = {
-       'styl' : _Enum_styl,
-       'just' : _Enum_just,
-}
diff --git a/Mac/Lib/lib-toolbox/AppleEvents.py b/Mac/Lib/lib-toolbox/AppleEvents.py
deleted file mode 100644 (file)
index 0373685..0000000
+++ /dev/null
@@ -1,952 +0,0 @@
-# Generated from 'AEDataModel.h'
-
-def FOUR_CHAR_CODE(x): return x
-typeBoolean = FOUR_CHAR_CODE('bool')
-typeChar = FOUR_CHAR_CODE('TEXT')
-typeSInt16 = FOUR_CHAR_CODE('shor')
-typeSInt32 = FOUR_CHAR_CODE('long')
-typeUInt32 = FOUR_CHAR_CODE('magn')
-typeSInt64 = FOUR_CHAR_CODE('comp')
-typeIEEE32BitFloatingPoint = FOUR_CHAR_CODE('sing')
-typeIEEE64BitFloatingPoint = FOUR_CHAR_CODE('doub')
-type128BitFloatingPoint = FOUR_CHAR_CODE('ldbl')
-typeDecimalStruct = FOUR_CHAR_CODE('decm')
-typeSMInt = typeSInt16
-typeShortInteger = typeSInt16
-typeInteger = typeSInt32
-typeLongInteger = typeSInt32
-typeMagnitude = typeUInt32
-typeComp = typeSInt64
-typeSMFloat = typeIEEE32BitFloatingPoint
-typeShortFloat = typeIEEE32BitFloatingPoint
-typeFloat = typeIEEE64BitFloatingPoint
-typeLongFloat = typeIEEE64BitFloatingPoint
-typeExtended = FOUR_CHAR_CODE('exte')
-typeAEList = FOUR_CHAR_CODE('list')
-typeAERecord = FOUR_CHAR_CODE('reco')
-typeAppleEvent = FOUR_CHAR_CODE('aevt')
-typeEventRecord = FOUR_CHAR_CODE('evrc')
-typeTrue = FOUR_CHAR_CODE('true')
-typeFalse = FOUR_CHAR_CODE('fals')
-typeAlias = FOUR_CHAR_CODE('alis')
-typeEnumerated = FOUR_CHAR_CODE('enum')
-typeType = FOUR_CHAR_CODE('type')
-typeAppParameters = FOUR_CHAR_CODE('appa')
-typeProperty = FOUR_CHAR_CODE('prop')
-typeFSS = FOUR_CHAR_CODE('fss ')
-typeKeyword = FOUR_CHAR_CODE('keyw')
-typeSectionH = FOUR_CHAR_CODE('sect')
-typeWildCard = FOUR_CHAR_CODE('****')
-typeApplSignature = FOUR_CHAR_CODE('sign')
-typeQDRectangle = FOUR_CHAR_CODE('qdrt')
-typeFixed = FOUR_CHAR_CODE('fixd')
-typeSessionID = FOUR_CHAR_CODE('ssid')
-typeTargetID = FOUR_CHAR_CODE('targ')
-typeProcessSerialNumber = FOUR_CHAR_CODE('psn ')
-typeKernelProcessID = FOUR_CHAR_CODE('kpid')
-typeDispatcherID = FOUR_CHAR_CODE('dspt')
-typeNull = FOUR_CHAR_CODE('null')        
-keyTransactionIDAttr = FOUR_CHAR_CODE('tran')
-keyReturnIDAttr = FOUR_CHAR_CODE('rtid')
-keyEventClassAttr = FOUR_CHAR_CODE('evcl')
-keyEventIDAttr = FOUR_CHAR_CODE('evid')
-keyAddressAttr = FOUR_CHAR_CODE('addr')
-keyOptionalKeywordAttr = FOUR_CHAR_CODE('optk')
-keyTimeoutAttr = FOUR_CHAR_CODE('timo')
-keyInteractLevelAttr = FOUR_CHAR_CODE('inte')
-keyEventSourceAttr = FOUR_CHAR_CODE('esrc')
-keyMissedKeywordAttr = FOUR_CHAR_CODE('miss')
-keyOriginalAddressAttr = FOUR_CHAR_CODE('from')        
-kAEDescListFactorNone = 0
-kAEDescListFactorType = 4
-kAEDescListFactorTypeAndSize = 8
-kAutoGenerateReturnID = -1
-kAnyTransactionID = 0                             
-kAEDataArray = 0
-kAEPackedArray = 1
-kAEDescArray = 3
-kAEKeyDescArray = 4
-kAEHandleArray = 2
-keyDirectObject = FOUR_CHAR_CODE('----')
-keyErrorNumber = FOUR_CHAR_CODE('errn')
-keyErrorString = FOUR_CHAR_CODE('errs')
-keyProcessSerialNumber = FOUR_CHAR_CODE('psn ')
-keyPreDispatch = FOUR_CHAR_CODE('phac')
-keySelectProc = FOUR_CHAR_CODE('selh')
-keyAERecorderCount = FOUR_CHAR_CODE('recr')
-keyAEVersion = FOUR_CHAR_CODE('vers')        
-kCoreEventClass = FOUR_CHAR_CODE('aevt')
-kAEOpenApplication = FOUR_CHAR_CODE('oapp')
-kAEOpenDocuments = FOUR_CHAR_CODE('odoc')
-kAEPrintDocuments = FOUR_CHAR_CODE('pdoc')
-kAEQuitApplication = FOUR_CHAR_CODE('quit')
-kAEAnswer = FOUR_CHAR_CODE('ansr')
-kAEApplicationDied = FOUR_CHAR_CODE('obit')
-kAEStartRecording = FOUR_CHAR_CODE('reca')
-kAEStopRecording = FOUR_CHAR_CODE('recc')
-kAENotifyStartRecording = FOUR_CHAR_CODE('rec1')
-kAENotifyStopRecording = FOUR_CHAR_CODE('rec0')
-kAENotifyRecording = FOUR_CHAR_CODE('recr')        
-kAENeverInteract = 0x00000010
-kAECanInteract = 0x00000020
-kAEAlwaysInteract = 0x00000030
-kAECanSwitchLayer = 0x00000040
-kAEDontRecord = 0x00001000
-kAEDontExecute = 0x00002000
-kAEProcessNonReplyEvents = 0x00008000                    
-kAENoReply = 0x00000001
-kAEQueueReply = 0x00000002
-kAEWaitReply = 0x00000003
-kAEDontReconnect = 0x00000080
-kAEWantReceipt = 0x00000200                    
-kAEDefaultTimeout = -1
-kNoTimeOut = -2                            
-kAENormalPriority = 0x00000000
-kAEHighPriority = 0x00000001                    
-kAEUnknownSource = 0
-kAEDirectCall = 1
-kAESameProcess = 2
-kAELocalProcess = 3
-kAERemoteProcess = 4
-kAEInteractWithSelf = 0
-kAEInteractWithLocal = 1
-kAEInteractWithAll = 2
-kAEDoNotIgnoreHandler = 0x00000000
-kAEIgnoreAppPhacHandler = 0x00000001
-kAEIgnoreAppEventHandler = 0x00000002
-kAEIgnoreSysPhacHandler = 0x00000004
-kAEIgnoreSysEventHandler = 0x00000008
-kAEIngoreBuiltInEventHandler = 0x00000010
-# kAEDontDisposeOnResume = (long)0x80000000              
-kAENoDispatch = 0
-# kAEUseStandardDispatch = (long)0xFFFFFFFF              
-cAEList = FOUR_CHAR_CODE('list')
-cApplication = FOUR_CHAR_CODE('capp')
-cArc = FOUR_CHAR_CODE('carc')
-cBoolean = FOUR_CHAR_CODE('bool')
-cCell = FOUR_CHAR_CODE('ccel')
-cChar = FOUR_CHAR_CODE('cha ')
-cColorTable = FOUR_CHAR_CODE('clrt')
-cColumn = FOUR_CHAR_CODE('ccol')
-cDocument = FOUR_CHAR_CODE('docu')
-cDrawingArea = FOUR_CHAR_CODE('cdrw')
-cEnumeration = FOUR_CHAR_CODE('enum')
-cFile = FOUR_CHAR_CODE('file')
-cFixed = FOUR_CHAR_CODE('fixd')
-cFixedPoint = FOUR_CHAR_CODE('fpnt')
-cFixedRectangle = FOUR_CHAR_CODE('frct')
-cGraphicLine = FOUR_CHAR_CODE('glin')
-cGraphicObject = FOUR_CHAR_CODE('cgob')
-cGraphicShape = FOUR_CHAR_CODE('cgsh')
-cGraphicText = FOUR_CHAR_CODE('cgtx')
-cGroupedGraphic = FOUR_CHAR_CODE('cpic')        
-cInsertionLoc = FOUR_CHAR_CODE('insl')
-cInsertionPoint = FOUR_CHAR_CODE('cins')
-cIntlText = FOUR_CHAR_CODE('itxt')
-cIntlWritingCode = FOUR_CHAR_CODE('intl')
-cItem = FOUR_CHAR_CODE('citm')
-cLine = FOUR_CHAR_CODE('clin')
-cLongDateTime = FOUR_CHAR_CODE('ldt ')
-cLongFixed = FOUR_CHAR_CODE('lfxd')
-cLongFixedPoint = FOUR_CHAR_CODE('lfpt')
-cLongFixedRectangle = FOUR_CHAR_CODE('lfrc')
-cLongInteger = FOUR_CHAR_CODE('long')
-cLongPoint = FOUR_CHAR_CODE('lpnt')
-cLongRectangle = FOUR_CHAR_CODE('lrct')
-cMachineLoc = FOUR_CHAR_CODE('mLoc')
-cMenu = FOUR_CHAR_CODE('cmnu')
-cMenuItem = FOUR_CHAR_CODE('cmen')
-cObject = FOUR_CHAR_CODE('cobj')
-cObjectSpecifier = FOUR_CHAR_CODE('obj ')
-cOpenableObject = FOUR_CHAR_CODE('coob')
-cOval = FOUR_CHAR_CODE('covl')        
-cParagraph = FOUR_CHAR_CODE('cpar')
-cPICT = FOUR_CHAR_CODE('PICT')
-cPixel = FOUR_CHAR_CODE('cpxl')
-cPixelMap = FOUR_CHAR_CODE('cpix')
-cPolygon = FOUR_CHAR_CODE('cpgn')
-cProperty = FOUR_CHAR_CODE('prop')
-cQDPoint = FOUR_CHAR_CODE('QDpt')
-cQDRectangle = FOUR_CHAR_CODE('qdrt')
-cRectangle = FOUR_CHAR_CODE('crec')
-cRGBColor = FOUR_CHAR_CODE('cRGB')
-cRotation = FOUR_CHAR_CODE('trot')
-cRoundedRectangle = FOUR_CHAR_CODE('crrc')
-cRow = FOUR_CHAR_CODE('crow')
-cSelection = FOUR_CHAR_CODE('csel')
-cShortInteger = FOUR_CHAR_CODE('shor')
-cTable = FOUR_CHAR_CODE('ctbl')
-cText = FOUR_CHAR_CODE('ctxt')
-cTextFlow = FOUR_CHAR_CODE('cflo')
-cTextStyles = FOUR_CHAR_CODE('tsty')
-cType = FOUR_CHAR_CODE('type')        
-cVersion = FOUR_CHAR_CODE('vers')
-cWindow = FOUR_CHAR_CODE('cwin')
-cWord = FOUR_CHAR_CODE('cwor')
-enumArrows = FOUR_CHAR_CODE('arro')
-enumJustification = FOUR_CHAR_CODE('just')
-enumKeyForm = FOUR_CHAR_CODE('kfrm')
-enumPosition = FOUR_CHAR_CODE('posi')
-enumProtection = FOUR_CHAR_CODE('prtn')
-enumQuality = FOUR_CHAR_CODE('qual')
-enumSaveOptions = FOUR_CHAR_CODE('savo')
-enumStyle = FOUR_CHAR_CODE('styl')
-enumTransferMode = FOUR_CHAR_CODE('tran')
-formUniqueID = FOUR_CHAR_CODE('ID  ')
-kAEAbout = FOUR_CHAR_CODE('abou')
-kAEAfter = FOUR_CHAR_CODE('afte')
-kAEAliasSelection = FOUR_CHAR_CODE('sali')
-kAEAllCaps = FOUR_CHAR_CODE('alcp')
-kAEArrowAtEnd = FOUR_CHAR_CODE('aren')
-kAEArrowAtStart = FOUR_CHAR_CODE('arst')
-kAEArrowBothEnds = FOUR_CHAR_CODE('arbo')        
-kAEAsk = FOUR_CHAR_CODE('ask ')
-kAEBefore = FOUR_CHAR_CODE('befo')
-kAEBeginning = FOUR_CHAR_CODE('bgng')
-kAEBeginsWith = FOUR_CHAR_CODE('bgwt')
-kAEBeginTransaction = FOUR_CHAR_CODE('begi')
-kAEBold = FOUR_CHAR_CODE('bold')
-kAECaseSensEquals = FOUR_CHAR_CODE('cseq')
-kAECentered = FOUR_CHAR_CODE('cent')
-kAEChangeView = FOUR_CHAR_CODE('view')
-kAEClone = FOUR_CHAR_CODE('clon')
-kAEClose = FOUR_CHAR_CODE('clos')
-kAECondensed = FOUR_CHAR_CODE('cond')
-kAEContains = FOUR_CHAR_CODE('cont')
-kAECopy = FOUR_CHAR_CODE('copy')
-kAECoreSuite = FOUR_CHAR_CODE('core')
-kAECountElements = FOUR_CHAR_CODE('cnte')
-kAECreateElement = FOUR_CHAR_CODE('crel')
-kAECreatePublisher = FOUR_CHAR_CODE('cpub')
-kAECut = FOUR_CHAR_CODE('cut ')
-kAEDelete = FOUR_CHAR_CODE('delo')        
-kAEDoObjectsExist = FOUR_CHAR_CODE('doex')
-kAEDoScript = FOUR_CHAR_CODE('dosc')
-kAEDrag = FOUR_CHAR_CODE('drag')
-kAEDuplicateSelection = FOUR_CHAR_CODE('sdup')
-kAEEditGraphic = FOUR_CHAR_CODE('edit')
-kAEEmptyTrash = FOUR_CHAR_CODE('empt')
-kAEEnd = FOUR_CHAR_CODE('end ')
-kAEEndsWith = FOUR_CHAR_CODE('ends')
-kAEEndTransaction = FOUR_CHAR_CODE('endt')
-kAEEquals = FOUR_CHAR_CODE('=   ')
-kAEExpanded = FOUR_CHAR_CODE('pexp')
-kAEFast = FOUR_CHAR_CODE('fast')
-kAEFinderEvents = FOUR_CHAR_CODE('FNDR')
-kAEFormulaProtect = FOUR_CHAR_CODE('fpro')
-kAEFullyJustified = FOUR_CHAR_CODE('full')
-kAEGetClassInfo = FOUR_CHAR_CODE('qobj')
-kAEGetData = FOUR_CHAR_CODE('getd')
-kAEGetDataSize = FOUR_CHAR_CODE('dsiz')
-kAEGetEventInfo = FOUR_CHAR_CODE('gtei')
-kAEGetInfoSelection = FOUR_CHAR_CODE('sinf')        
-kAEGetPrivilegeSelection = FOUR_CHAR_CODE('sprv')
-kAEGetSuiteInfo = FOUR_CHAR_CODE('gtsi')
-kAEGreaterThan = FOUR_CHAR_CODE('>   ')
-kAEGreaterThanEquals = FOUR_CHAR_CODE('>=  ')
-kAEGrow = FOUR_CHAR_CODE('grow')
-kAEHidden = FOUR_CHAR_CODE('hidn')
-kAEHiQuality = FOUR_CHAR_CODE('hiqu')
-kAEImageGraphic = FOUR_CHAR_CODE('imgr')
-kAEIsUniform = FOUR_CHAR_CODE('isun')
-kAEItalic = FOUR_CHAR_CODE('ital')
-kAELeftJustified = FOUR_CHAR_CODE('left')
-kAELessThan = FOUR_CHAR_CODE('<   ')
-kAELessThanEquals = FOUR_CHAR_CODE('<=  ')
-kAELowercase = FOUR_CHAR_CODE('lowc')
-kAEMakeObjectsVisible = FOUR_CHAR_CODE('mvis')
-kAEMiscStandards = FOUR_CHAR_CODE('misc')
-kAEModifiable = FOUR_CHAR_CODE('modf')
-kAEMove = FOUR_CHAR_CODE('move')
-kAENo = FOUR_CHAR_CODE('no  ')
-kAENoArrow = FOUR_CHAR_CODE('arno')        
-kAENonmodifiable = FOUR_CHAR_CODE('nmod')
-kAEOpen = FOUR_CHAR_CODE('odoc')
-kAEOpenSelection = FOUR_CHAR_CODE('sope')
-kAEOutline = FOUR_CHAR_CODE('outl')
-kAEPageSetup = FOUR_CHAR_CODE('pgsu')
-kAEPaste = FOUR_CHAR_CODE('past')
-kAEPlain = FOUR_CHAR_CODE('plan')
-kAEPrint = FOUR_CHAR_CODE('pdoc')
-kAEPrintSelection = FOUR_CHAR_CODE('spri')
-kAEPrintWindow = FOUR_CHAR_CODE('pwin')
-kAEPutAwaySelection = FOUR_CHAR_CODE('sput')
-kAEQDAddOver = FOUR_CHAR_CODE('addo')
-kAEQDAddPin = FOUR_CHAR_CODE('addp')
-kAEQDAdMax = FOUR_CHAR_CODE('admx')
-kAEQDAdMin = FOUR_CHAR_CODE('admn')
-kAEQDBic = FOUR_CHAR_CODE('bic ')
-kAEQDBlend = FOUR_CHAR_CODE('blnd')
-kAEQDCopy = FOUR_CHAR_CODE('cpy ')
-kAEQDNotBic = FOUR_CHAR_CODE('nbic')
-kAEQDNotCopy = FOUR_CHAR_CODE('ncpy')        
-kAEQDNotOr = FOUR_CHAR_CODE('ntor')
-kAEQDNotXor = FOUR_CHAR_CODE('nxor')
-kAEQDOr = FOUR_CHAR_CODE('or  ')
-kAEQDSubOver = FOUR_CHAR_CODE('subo')
-kAEQDSubPin = FOUR_CHAR_CODE('subp')
-kAEQDSupplementalSuite = FOUR_CHAR_CODE('qdsp')
-kAEQDXor = FOUR_CHAR_CODE('xor ')
-kAEQuickdrawSuite = FOUR_CHAR_CODE('qdrw')
-kAEQuitAll = FOUR_CHAR_CODE('quia')
-kAERedo = FOUR_CHAR_CODE('redo')
-kAERegular = FOUR_CHAR_CODE('regl')
-kAEReopenApplication = FOUR_CHAR_CODE('rapp')
-kAEReplace = FOUR_CHAR_CODE('rplc')
-kAERequiredSuite = FOUR_CHAR_CODE('reqd')
-kAERestart = FOUR_CHAR_CODE('rest')
-kAERevealSelection = FOUR_CHAR_CODE('srev')
-kAERevert = FOUR_CHAR_CODE('rvrt')
-kAERightJustified = FOUR_CHAR_CODE('rght')
-kAESave = FOUR_CHAR_CODE('save')
-kAESelect = FOUR_CHAR_CODE('slct')
-kAESetData = FOUR_CHAR_CODE('setd')        
-kAESetPosition = FOUR_CHAR_CODE('posn')
-kAEShadow = FOUR_CHAR_CODE('shad')
-kAEShowClipboard = FOUR_CHAR_CODE('shcl')
-kAEShutDown = FOUR_CHAR_CODE('shut')
-kAESleep = FOUR_CHAR_CODE('slep')
-kAESmallCaps = FOUR_CHAR_CODE('smcp')
-kAESpecialClassProperties = FOUR_CHAR_CODE('c@#!')
-kAEStrikethrough = FOUR_CHAR_CODE('strk')
-kAESubscript = FOUR_CHAR_CODE('sbsc')
-kAESuperscript = FOUR_CHAR_CODE('spsc')
-kAETableSuite = FOUR_CHAR_CODE('tbls')
-kAETextSuite = FOUR_CHAR_CODE('TEXT')
-kAETransactionTerminated = FOUR_CHAR_CODE('ttrm')
-kAEUnderline = FOUR_CHAR_CODE('undl')
-kAEUndo = FOUR_CHAR_CODE('undo')
-kAEWholeWordEquals = FOUR_CHAR_CODE('wweq')
-kAEYes = FOUR_CHAR_CODE('yes ')
-kAEZoom = FOUR_CHAR_CODE('zoom')        
-kAEMouseClass = FOUR_CHAR_CODE('mous')
-kAEDown = FOUR_CHAR_CODE('down')
-kAEUp = FOUR_CHAR_CODE('up  ')
-kAEMoved = FOUR_CHAR_CODE('move')
-kAEStoppedMoving = FOUR_CHAR_CODE('stop')
-kAEWindowClass = FOUR_CHAR_CODE('wind')
-kAEUpdate = FOUR_CHAR_CODE('updt')
-kAEActivate = FOUR_CHAR_CODE('actv')
-kAEDeactivate = FOUR_CHAR_CODE('dact')
-kAECommandClass = FOUR_CHAR_CODE('cmnd')
-kAEKeyClass = FOUR_CHAR_CODE('keyc')
-kAERawKey = FOUR_CHAR_CODE('rkey')
-kAEVirtualKey = FOUR_CHAR_CODE('keyc')
-kAENavigationKey = FOUR_CHAR_CODE('nave')
-kAEAutoDown = FOUR_CHAR_CODE('auto')
-kAEApplicationClass = FOUR_CHAR_CODE('appl')
-kAESuspend = FOUR_CHAR_CODE('susp')
-kAEResume = FOUR_CHAR_CODE('rsme')
-kAEDiskEvent = FOUR_CHAR_CODE('disk')
-kAENullEvent = FOUR_CHAR_CODE('null')
-kAEWakeUpEvent = FOUR_CHAR_CODE('wake')
-kAEScrapEvent = FOUR_CHAR_CODE('scrp')
-kAEHighLevel = FOUR_CHAR_CODE('high')
-keyAEAngle = FOUR_CHAR_CODE('kang')
-keyAEArcAngle = FOUR_CHAR_CODE('parc')        
-keyAEBaseAddr = FOUR_CHAR_CODE('badd')
-keyAEBestType = FOUR_CHAR_CODE('pbst')
-keyAEBgndColor = FOUR_CHAR_CODE('kbcl')
-keyAEBgndPattern = FOUR_CHAR_CODE('kbpt')
-keyAEBounds = FOUR_CHAR_CODE('pbnd')
-keyAECellList = FOUR_CHAR_CODE('kclt')
-keyAEClassID = FOUR_CHAR_CODE('clID')
-keyAEColor = FOUR_CHAR_CODE('colr')
-keyAEColorTable = FOUR_CHAR_CODE('cltb')
-keyAECurveHeight = FOUR_CHAR_CODE('kchd')
-keyAECurveWidth = FOUR_CHAR_CODE('kcwd')
-keyAEDashStyle = FOUR_CHAR_CODE('pdst')
-keyAEData = FOUR_CHAR_CODE('data')
-keyAEDefaultType = FOUR_CHAR_CODE('deft')
-keyAEDefinitionRect = FOUR_CHAR_CODE('pdrt')
-keyAEDescType = FOUR_CHAR_CODE('dstp')
-keyAEDestination = FOUR_CHAR_CODE('dest')
-keyAEDoAntiAlias = FOUR_CHAR_CODE('anta')
-keyAEDoDithered = FOUR_CHAR_CODE('gdit')
-keyAEDoRotate = FOUR_CHAR_CODE('kdrt')        
-keyAEDoScale = FOUR_CHAR_CODE('ksca')
-keyAEDoTranslate = FOUR_CHAR_CODE('ktra')
-keyAEEditionFileLoc = FOUR_CHAR_CODE('eloc')
-keyAEElements = FOUR_CHAR_CODE('elms')
-keyAEEndPoint = FOUR_CHAR_CODE('pend')
-keyAEEventClass = FOUR_CHAR_CODE('evcl')
-keyAEEventID = FOUR_CHAR_CODE('evti')
-keyAEFile = FOUR_CHAR_CODE('kfil')
-keyAEFileType = FOUR_CHAR_CODE('fltp')
-keyAEFillColor = FOUR_CHAR_CODE('flcl')
-keyAEFillPattern = FOUR_CHAR_CODE('flpt')
-keyAEFlipHorizontal = FOUR_CHAR_CODE('kfho')
-keyAEFlipVertical = FOUR_CHAR_CODE('kfvt')
-keyAEFont = FOUR_CHAR_CODE('font')
-keyAEFormula = FOUR_CHAR_CODE('pfor')
-keyAEGraphicObjects = FOUR_CHAR_CODE('gobs')
-keyAEID = FOUR_CHAR_CODE('ID  ')
-keyAEImageQuality = FOUR_CHAR_CODE('gqua')
-keyAEInsertHere = FOUR_CHAR_CODE('insh')
-keyAEKeyForms = FOUR_CHAR_CODE('keyf')        
-keyAEKeyword = FOUR_CHAR_CODE('kywd')
-keyAELevel = FOUR_CHAR_CODE('levl')
-keyAELineArrow = FOUR_CHAR_CODE('arro')
-keyAEName = FOUR_CHAR_CODE('pnam')
-keyAENewElementLoc = FOUR_CHAR_CODE('pnel')
-keyAEObject = FOUR_CHAR_CODE('kobj')
-keyAEObjectClass = FOUR_CHAR_CODE('kocl')
-keyAEOffStyles = FOUR_CHAR_CODE('ofst')
-keyAEOnStyles = FOUR_CHAR_CODE('onst')
-keyAEParameters = FOUR_CHAR_CODE('prms')
-keyAEParamFlags = FOUR_CHAR_CODE('pmfg')
-keyAEPenColor = FOUR_CHAR_CODE('ppcl')
-keyAEPenPattern = FOUR_CHAR_CODE('pppa')
-keyAEPenWidth = FOUR_CHAR_CODE('ppwd')
-keyAEPixelDepth = FOUR_CHAR_CODE('pdpt')
-keyAEPixMapMinus = FOUR_CHAR_CODE('kpmm')
-keyAEPMTable = FOUR_CHAR_CODE('kpmt')
-keyAEPointList = FOUR_CHAR_CODE('ptlt')
-keyAEPointSize = FOUR_CHAR_CODE('ptsz')
-keyAEPosition = FOUR_CHAR_CODE('kpos')        
-keyAEPropData = FOUR_CHAR_CODE('prdt')
-keyAEProperties = FOUR_CHAR_CODE('qpro')
-keyAEProperty = FOUR_CHAR_CODE('kprp')
-keyAEPropFlags = FOUR_CHAR_CODE('prfg')
-keyAEPropID = FOUR_CHAR_CODE('prop')
-keyAEProtection = FOUR_CHAR_CODE('ppro')
-keyAERenderAs = FOUR_CHAR_CODE('kren')
-keyAERequestedType = FOUR_CHAR_CODE('rtyp')
-keyAEResult = FOUR_CHAR_CODE('----')
-keyAEResultInfo = FOUR_CHAR_CODE('rsin')
-keyAERotation = FOUR_CHAR_CODE('prot')
-keyAERotPoint = FOUR_CHAR_CODE('krtp')
-keyAERowList = FOUR_CHAR_CODE('krls')
-keyAESaveOptions = FOUR_CHAR_CODE('savo')
-keyAEScale = FOUR_CHAR_CODE('pscl')
-keyAEScriptTag = FOUR_CHAR_CODE('psct')
-keyAEShowWhere = FOUR_CHAR_CODE('show')
-keyAEStartAngle = FOUR_CHAR_CODE('pang')
-keyAEStartPoint = FOUR_CHAR_CODE('pstp')
-keyAEStyles = FOUR_CHAR_CODE('ksty')        
-keyAESuiteID = FOUR_CHAR_CODE('suit')
-keyAEText = FOUR_CHAR_CODE('ktxt')
-keyAETextColor = FOUR_CHAR_CODE('ptxc')
-keyAETextFont = FOUR_CHAR_CODE('ptxf')
-keyAETextPointSize = FOUR_CHAR_CODE('ptps')
-keyAETextStyles = FOUR_CHAR_CODE('txst')
-keyAETextLineHeight = FOUR_CHAR_CODE('ktlh')
-keyAETextLineAscent = FOUR_CHAR_CODE('ktas')
-keyAETheText = FOUR_CHAR_CODE('thtx')
-keyAETransferMode = FOUR_CHAR_CODE('pptm')
-keyAETranslation = FOUR_CHAR_CODE('ptrs')
-keyAETryAsStructGraf = FOUR_CHAR_CODE('toog')
-keyAEUniformStyles = FOUR_CHAR_CODE('ustl')
-keyAEUpdateOn = FOUR_CHAR_CODE('pupd')
-keyAEUserTerm = FOUR_CHAR_CODE('utrm')
-keyAEWindow = FOUR_CHAR_CODE('wndw')
-keyAEWritingCode = FOUR_CHAR_CODE('wrcd')        
-keyMiscellaneous = FOUR_CHAR_CODE('fmsc')
-keySelection = FOUR_CHAR_CODE('fsel')
-keyWindow = FOUR_CHAR_CODE('kwnd')
-keyWhen = FOUR_CHAR_CODE('when')
-keyWhere = FOUR_CHAR_CODE('wher')
-keyModifiers = FOUR_CHAR_CODE('mods')
-keyKey = FOUR_CHAR_CODE('key ')
-keyKeyCode = FOUR_CHAR_CODE('code')
-keyKeyboard = FOUR_CHAR_CODE('keyb')
-keyDriveNumber = FOUR_CHAR_CODE('drv#')
-keyErrorCode = FOUR_CHAR_CODE('err#')
-keyHighLevelClass = FOUR_CHAR_CODE('hcls')
-keyHighLevelID = FOUR_CHAR_CODE('hid ')
-pArcAngle = FOUR_CHAR_CODE('parc')
-pBackgroundColor = FOUR_CHAR_CODE('pbcl')
-pBackgroundPattern = FOUR_CHAR_CODE('pbpt')
-pBestType = FOUR_CHAR_CODE('pbst')
-pBounds = FOUR_CHAR_CODE('pbnd')
-pClass = FOUR_CHAR_CODE('pcls')
-pClipboard = FOUR_CHAR_CODE('pcli')
-pColor = FOUR_CHAR_CODE('colr')
-pColorTable = FOUR_CHAR_CODE('cltb')
-pContents = FOUR_CHAR_CODE('pcnt')
-pCornerCurveHeight = FOUR_CHAR_CODE('pchd')
-pCornerCurveWidth = FOUR_CHAR_CODE('pcwd')
-pDashStyle = FOUR_CHAR_CODE('pdst')
-pDefaultType = FOUR_CHAR_CODE('deft')
-pDefinitionRect = FOUR_CHAR_CODE('pdrt')
-pEnabled = FOUR_CHAR_CODE('enbl')
-pEndPoint = FOUR_CHAR_CODE('pend')
-pFillColor = FOUR_CHAR_CODE('flcl')
-pFillPattern = FOUR_CHAR_CODE('flpt')
-pFont = FOUR_CHAR_CODE('font')        
-pFormula = FOUR_CHAR_CODE('pfor')
-pGraphicObjects = FOUR_CHAR_CODE('gobs')
-pHasCloseBox = FOUR_CHAR_CODE('hclb')
-pHasTitleBar = FOUR_CHAR_CODE('ptit')
-pID = FOUR_CHAR_CODE('ID  ')
-pIndex = FOUR_CHAR_CODE('pidx')
-pInsertionLoc = FOUR_CHAR_CODE('pins')
-pIsFloating = FOUR_CHAR_CODE('isfl')
-pIsFrontProcess = FOUR_CHAR_CODE('pisf')
-pIsModal = FOUR_CHAR_CODE('pmod')
-pIsModified = FOUR_CHAR_CODE('imod')
-pIsResizable = FOUR_CHAR_CODE('prsz')
-pIsStationeryPad = FOUR_CHAR_CODE('pspd')
-pIsZoomable = FOUR_CHAR_CODE('iszm')
-pIsZoomed = FOUR_CHAR_CODE('pzum')
-pItemNumber = FOUR_CHAR_CODE('itmn')
-pJustification = FOUR_CHAR_CODE('pjst')
-pLineArrow = FOUR_CHAR_CODE('arro')
-pMenuID = FOUR_CHAR_CODE('mnid')
-pName = FOUR_CHAR_CODE('pnam')        
-pNewElementLoc = FOUR_CHAR_CODE('pnel')
-pPenColor = FOUR_CHAR_CODE('ppcl')
-pPenPattern = FOUR_CHAR_CODE('pppa')
-pPenWidth = FOUR_CHAR_CODE('ppwd')
-pPixelDepth = FOUR_CHAR_CODE('pdpt')
-pPointList = FOUR_CHAR_CODE('ptlt')
-pPointSize = FOUR_CHAR_CODE('ptsz')
-pProtection = FOUR_CHAR_CODE('ppro')
-pRotation = FOUR_CHAR_CODE('prot')
-pScale = FOUR_CHAR_CODE('pscl')
-pScript = FOUR_CHAR_CODE('scpt')
-pScriptTag = FOUR_CHAR_CODE('psct')
-pSelected = FOUR_CHAR_CODE('selc')
-pSelection = FOUR_CHAR_CODE('sele')
-pStartAngle = FOUR_CHAR_CODE('pang')
-pStartPoint = FOUR_CHAR_CODE('pstp')
-pTextColor = FOUR_CHAR_CODE('ptxc')
-pTextFont = FOUR_CHAR_CODE('ptxf')
-pTextItemDelimiters = FOUR_CHAR_CODE('txdl')
-pTextPointSize = FOUR_CHAR_CODE('ptps')        
-pTextStyles = FOUR_CHAR_CODE('txst')
-pTransferMode = FOUR_CHAR_CODE('pptm')
-pTranslation = FOUR_CHAR_CODE('ptrs')
-pUniformStyles = FOUR_CHAR_CODE('ustl')
-pUpdateOn = FOUR_CHAR_CODE('pupd')
-pUserSelection = FOUR_CHAR_CODE('pusl')
-pVersion = FOUR_CHAR_CODE('vers')
-pVisible = FOUR_CHAR_CODE('pvis')        
-typeAEText = FOUR_CHAR_CODE('tTXT')
-typeArc = FOUR_CHAR_CODE('carc')
-typeBest = FOUR_CHAR_CODE('best')
-typeCell = FOUR_CHAR_CODE('ccel')
-typeClassInfo = FOUR_CHAR_CODE('gcli')
-typeColorTable = FOUR_CHAR_CODE('clrt')
-typeColumn = FOUR_CHAR_CODE('ccol')
-typeDashStyle = FOUR_CHAR_CODE('tdas')
-typeData = FOUR_CHAR_CODE('tdta')
-typeDrawingArea = FOUR_CHAR_CODE('cdrw')
-typeElemInfo = FOUR_CHAR_CODE('elin')
-typeEnumeration = FOUR_CHAR_CODE('enum')
-typeEPS = FOUR_CHAR_CODE('EPS ')
-typeEventInfo = FOUR_CHAR_CODE('evin')        
-typeFinderWindow = FOUR_CHAR_CODE('fwin')
-typeFixedPoint = FOUR_CHAR_CODE('fpnt')
-typeFixedRectangle = FOUR_CHAR_CODE('frct')
-typeGraphicLine = FOUR_CHAR_CODE('glin')
-typeGraphicText = FOUR_CHAR_CODE('cgtx')
-typeGroupedGraphic = FOUR_CHAR_CODE('cpic')
-typeInsertionLoc = FOUR_CHAR_CODE('insl')
-typeIntlText = FOUR_CHAR_CODE('itxt')
-typeIntlWritingCode = FOUR_CHAR_CODE('intl')
-typeLongDateTime = FOUR_CHAR_CODE('ldt ')
-typeLongFixed = FOUR_CHAR_CODE('lfxd')
-typeLongFixedPoint = FOUR_CHAR_CODE('lfpt')
-typeLongFixedRectangle = FOUR_CHAR_CODE('lfrc')
-typeLongPoint = FOUR_CHAR_CODE('lpnt')
-typeLongRectangle = FOUR_CHAR_CODE('lrct')
-typeMachineLoc = FOUR_CHAR_CODE('mLoc')
-typeOval = FOUR_CHAR_CODE('covl')
-typeParamInfo = FOUR_CHAR_CODE('pmin')
-typePict = FOUR_CHAR_CODE('PICT')        
-typePixelMap = FOUR_CHAR_CODE('cpix')
-typePixMapMinus = FOUR_CHAR_CODE('tpmm')
-typePolygon = FOUR_CHAR_CODE('cpgn')
-typePropInfo = FOUR_CHAR_CODE('pinf')
-typeQDPoint = FOUR_CHAR_CODE('QDpt')
-typeQDRegion = FOUR_CHAR_CODE('Qrgn')
-typeRectangle = FOUR_CHAR_CODE('crec')
-typeRGB16 = FOUR_CHAR_CODE('tr16')
-typeRGB96 = FOUR_CHAR_CODE('tr96')
-typeRGBColor = FOUR_CHAR_CODE('cRGB')
-typeRotation = FOUR_CHAR_CODE('trot')
-typeRoundedRectangle = FOUR_CHAR_CODE('crrc')
-typeRow = FOUR_CHAR_CODE('crow')
-typeScrapStyles = FOUR_CHAR_CODE('styl')
-typeScript = FOUR_CHAR_CODE('scpt')
-typeStyledText = FOUR_CHAR_CODE('STXT')
-typeSuiteInfo = FOUR_CHAR_CODE('suin')
-typeTable = FOUR_CHAR_CODE('ctbl')
-typeTextStyles = FOUR_CHAR_CODE('tsty')        
-typeTIFF = FOUR_CHAR_CODE('TIFF')
-typeVersion = FOUR_CHAR_CODE('vers')        
-kAEMenuClass = FOUR_CHAR_CODE('menu')
-kAEMenuSelect = FOUR_CHAR_CODE('mhit')
-kAEMouseDown = FOUR_CHAR_CODE('mdwn')
-kAEMouseDownInBack = FOUR_CHAR_CODE('mdbk')
-kAEKeyDown = FOUR_CHAR_CODE('kdwn')
-kAEResized = FOUR_CHAR_CODE('rsiz')
-kAEPromise = FOUR_CHAR_CODE('prom')
-keyMenuID = FOUR_CHAR_CODE('mid ')
-keyMenuItem = FOUR_CHAR_CODE('mitm')
-keyCloseAllWindows = FOUR_CHAR_CODE('caw ')
-keyOriginalBounds = FOUR_CHAR_CODE('obnd')
-keyNewBounds = FOUR_CHAR_CODE('nbnd')
-keyLocalWhere = FOUR_CHAR_CODE('lwhr')
-typeHIMenu = FOUR_CHAR_CODE('mobj')
-typeHIWindow = FOUR_CHAR_CODE('wobj')
-kBySmallIcon = 0
-kByIconView = 1
-kByNameView = 2
-kByDateView = 3
-kBySizeView = 4
-kByKindView = 5
-kByCommentView = 6
-kByLabelView = 7
-kByVersionView = 8
-kAEInfo = 11
-kAEMain = 0
-kAESharing = 13
-kAEZoomIn = 7
-kAEZoomOut = 8
-kTextServiceClass = FOUR_CHAR_CODE('tsvc')
-kUpdateActiveInputArea = FOUR_CHAR_CODE('updt')
-kShowHideInputWindow = FOUR_CHAR_CODE('shiw')
-kPos2Offset = FOUR_CHAR_CODE('p2st')
-kOffset2Pos = FOUR_CHAR_CODE('st2p')
-kUnicodeNotFromInputMethod = FOUR_CHAR_CODE('unim')
-kGetSelectedText = FOUR_CHAR_CODE('gtxt')
-keyAETSMDocumentRefcon = FOUR_CHAR_CODE('refc')
-keyAEServerInstance = FOUR_CHAR_CODE('srvi')
-keyAETheData = FOUR_CHAR_CODE('kdat')
-keyAEFixLength = FOUR_CHAR_CODE('fixl')
-keyAEUpdateRange = FOUR_CHAR_CODE('udng')
-keyAECurrentPoint = FOUR_CHAR_CODE('cpos')
-keyAEBufferSize = FOUR_CHAR_CODE('buff')
-keyAEMoveView = FOUR_CHAR_CODE('mvvw')
-keyAENextBody = FOUR_CHAR_CODE('nxbd')
-keyAETSMScriptTag = FOUR_CHAR_CODE('sclg')
-keyAETSMTextFont = FOUR_CHAR_CODE('ktxf')
-keyAETSMTextPointSize = FOUR_CHAR_CODE('ktps')
-keyAETSMEventRecord = FOUR_CHAR_CODE('tevt')
-keyAETextServiceEncoding = FOUR_CHAR_CODE('tsen')
-keyAETextServiceMacEncoding = FOUR_CHAR_CODE('tmen')
-typeTextRange = FOUR_CHAR_CODE('txrn')
-typeComponentInstance = FOUR_CHAR_CODE('cmpi')
-typeOffsetArray = FOUR_CHAR_CODE('ofay')
-typeTextRangeArray = FOUR_CHAR_CODE('tray')
-typeLowLevelEventRecord = FOUR_CHAR_CODE('evtr')
-typeText = typeChar                      
-kTSMOutsideOfBody = 1
-kTSMInsideOfBody = 2
-kTSMInsideOfActiveInputArea = 3
-kNextBody = 1
-kPreviousBody = 2
-kCaretPosition = 1
-kRawText = 2
-kSelectedRawText = 3
-kConvertedText = 4
-kSelectedConvertedText = 5
-kBlockFillText = 6
-kOutlineText = 7
-kSelectedText = 8                             
-keyAEHiliteRange = FOUR_CHAR_CODE('hrng')
-keyAEPinRange = FOUR_CHAR_CODE('pnrg')
-keyAEClauseOffsets = FOUR_CHAR_CODE('clau')
-keyAEOffset = FOUR_CHAR_CODE('ofst')
-keyAEPoint = FOUR_CHAR_CODE('gpos')
-keyAELeftSide = FOUR_CHAR_CODE('klef')
-keyAERegionClass = FOUR_CHAR_CODE('rgnc')
-keyAEDragging = FOUR_CHAR_CODE('bool')        
-keyAELeadingEdge = keyAELeftSide
-typeUnicodeText = FOUR_CHAR_CODE('utxt')
-typeStyledUnicodeText = FOUR_CHAR_CODE('sutx')
-typeEncodedString = FOUR_CHAR_CODE('encs')
-typeCString = FOUR_CHAR_CODE('cstr')
-typePString = FOUR_CHAR_CODE('pstr')
-typeMeters = FOUR_CHAR_CODE('metr')
-typeInches = FOUR_CHAR_CODE('inch')
-typeFeet = FOUR_CHAR_CODE('feet')
-typeYards = FOUR_CHAR_CODE('yard')
-typeMiles = FOUR_CHAR_CODE('mile')
-typeKilometers = FOUR_CHAR_CODE('kmtr')
-typeCentimeters = FOUR_CHAR_CODE('cmtr')
-typeSquareMeters = FOUR_CHAR_CODE('sqrm')
-typeSquareFeet = FOUR_CHAR_CODE('sqft')
-typeSquareYards = FOUR_CHAR_CODE('sqyd')
-typeSquareMiles = FOUR_CHAR_CODE('sqmi')
-typeSquareKilometers = FOUR_CHAR_CODE('sqkm')
-typeLiters = FOUR_CHAR_CODE('litr')
-typeQuarts = FOUR_CHAR_CODE('qrts')
-typeGallons = FOUR_CHAR_CODE('galn')
-typeCubicMeters = FOUR_CHAR_CODE('cmet')
-typeCubicFeet = FOUR_CHAR_CODE('cfet')
-typeCubicInches = FOUR_CHAR_CODE('cuin')
-typeCubicCentimeter = FOUR_CHAR_CODE('ccmt')
-typeCubicYards = FOUR_CHAR_CODE('cyrd')
-typeKilograms = FOUR_CHAR_CODE('kgrm')
-typeGrams = FOUR_CHAR_CODE('gram')
-typeOunces = FOUR_CHAR_CODE('ozs ')
-typePounds = FOUR_CHAR_CODE('lbs ')
-typeDegreesC = FOUR_CHAR_CODE('degc')
-typeDegreesF = FOUR_CHAR_CODE('degf')
-typeDegreesK = FOUR_CHAR_CODE('degk')
-kFAServerApp = FOUR_CHAR_CODE('ssrv')
-kDoFolderActionEvent = FOUR_CHAR_CODE('fola')
-kFolderActionCode = FOUR_CHAR_CODE('actn')
-kFolderOpenedEvent = FOUR_CHAR_CODE('fopn')
-kFolderClosedEvent = FOUR_CHAR_CODE('fclo')
-kFolderWindowMovedEvent = FOUR_CHAR_CODE('fsiz')
-kFolderItemsAddedEvent = FOUR_CHAR_CODE('fget')
-kFolderItemsRemovedEvent = FOUR_CHAR_CODE('flos')
-kItemList = FOUR_CHAR_CODE('flst')
-kNewSizeParameter = FOUR_CHAR_CODE('fnsz')
-kFASuiteCode = FOUR_CHAR_CODE('faco')
-kFAAttachCommand = FOUR_CHAR_CODE('atfa')
-kFARemoveCommand = FOUR_CHAR_CODE('rmfa')
-kFAEditCommand = FOUR_CHAR_CODE('edfa')
-kFAFileParam = FOUR_CHAR_CODE('faal')
-kFAIndexParam = FOUR_CHAR_CODE('indx')        
-kAEInternetSuite = FOUR_CHAR_CODE('gurl')
-kAEISWebStarSuite = FOUR_CHAR_CODE('WWW\87')
-kAEISGetURL = FOUR_CHAR_CODE('gurl')
-KAEISHandleCGI = FOUR_CHAR_CODE('sdoc')
-cURL = FOUR_CHAR_CODE('url ')
-cInternetAddress = FOUR_CHAR_CODE('IPAD')
-cHTML = FOUR_CHAR_CODE('html')
-cFTPItem = FOUR_CHAR_CODE('ftp ')
-kAEISHTTPSearchArgs = FOUR_CHAR_CODE('kfor')
-kAEISPostArgs = FOUR_CHAR_CODE('post')
-kAEISMethod = FOUR_CHAR_CODE('meth')
-kAEISClientAddress = FOUR_CHAR_CODE('addr')
-kAEISUserName = FOUR_CHAR_CODE('user')
-kAEISPassword = FOUR_CHAR_CODE('pass')
-kAEISFromUser = FOUR_CHAR_CODE('frmu')
-kAEISServerName = FOUR_CHAR_CODE('svnm')
-kAEISServerPort = FOUR_CHAR_CODE('svpt')
-kAEISScriptName = FOUR_CHAR_CODE('scnm')
-kAEISContentType = FOUR_CHAR_CODE('ctyp')
-kAEISReferrer = FOUR_CHAR_CODE('refr')
-kAEISUserAgent = FOUR_CHAR_CODE('Agnt')
-kAEISAction = FOUR_CHAR_CODE('Kact')
-kAEISActionPath = FOUR_CHAR_CODE('Kapt')
-kAEISClientIP = FOUR_CHAR_CODE('Kcip')
-kAEISFullRequest = FOUR_CHAR_CODE('Kfrq')
-pScheme = FOUR_CHAR_CODE('pusc')
-pHost = FOUR_CHAR_CODE('HOST')
-pPath = FOUR_CHAR_CODE('FTPc')
-pUserName = FOUR_CHAR_CODE('RAun')
-pUserPassword = FOUR_CHAR_CODE('RApw')
-pDNSForm = FOUR_CHAR_CODE('pDNS')
-pURL = FOUR_CHAR_CODE('pURL')
-pTextEncoding = FOUR_CHAR_CODE('ptxe')
-pFTPKind = FOUR_CHAR_CODE('kind')
-eScheme = FOUR_CHAR_CODE('esch')
-eurlHTTP = FOUR_CHAR_CODE('http')
-eurlHTTPS = FOUR_CHAR_CODE('htps')
-eurlFTP = FOUR_CHAR_CODE('ftp ')
-eurlMail = FOUR_CHAR_CODE('mail')
-eurlFile = FOUR_CHAR_CODE('file')
-eurlGopher = FOUR_CHAR_CODE('gphr')
-eurlTelnet = FOUR_CHAR_CODE('tlnt')
-eurlNews = FOUR_CHAR_CODE('news')
-eurlSNews = FOUR_CHAR_CODE('snws')
-eurlNNTP = FOUR_CHAR_CODE('nntp')
-eurlMessage = FOUR_CHAR_CODE('mess')
-eurlMailbox = FOUR_CHAR_CODE('mbox')
-eurlMulti = FOUR_CHAR_CODE('mult')
-eurlLaunch = FOUR_CHAR_CODE('laun')
-eurlAFP = FOUR_CHAR_CODE('afp ')
-eurlAT = FOUR_CHAR_CODE('at  ')
-eurlEPPC = FOUR_CHAR_CODE('eppc')
-eurlRTSP = FOUR_CHAR_CODE('rtsp')
-eurlIMAP = FOUR_CHAR_CODE('imap')
-eurlNFS = FOUR_CHAR_CODE('unfs')
-eurlPOP = FOUR_CHAR_CODE('upop')
-eurlLDAP = FOUR_CHAR_CODE('uldp')
-eurlUnknown = FOUR_CHAR_CODE('url?')
-kConnSuite = FOUR_CHAR_CODE('macc')
-cDevSpec = FOUR_CHAR_CODE('cdev')
-cAddressSpec = FOUR_CHAR_CODE('cadr')
-cADBAddress = FOUR_CHAR_CODE('cadb')
-cAppleTalkAddress = FOUR_CHAR_CODE('cat ')
-cBusAddress = FOUR_CHAR_CODE('cbus')
-cEthernetAddress = FOUR_CHAR_CODE('cen ')
-cFireWireAddress = FOUR_CHAR_CODE('cfw ')
-cIPAddress = FOUR_CHAR_CODE('cip ')
-cLocalTalkAddress = FOUR_CHAR_CODE('clt ')
-cSCSIAddress = FOUR_CHAR_CODE('cscs')
-cTokenRingAddress = FOUR_CHAR_CODE('ctok')
-cUSBAddress = FOUR_CHAR_CODE('cusb')
-pDeviceType = FOUR_CHAR_CODE('pdvt')
-pDeviceAddress = FOUR_CHAR_CODE('pdva')
-pConduit = FOUR_CHAR_CODE('pcon')
-pProtocol = FOUR_CHAR_CODE('pprt')
-pATMachine = FOUR_CHAR_CODE('patm')
-pATZone = FOUR_CHAR_CODE('patz')
-pATType = FOUR_CHAR_CODE('patt')
-pDottedDecimal = FOUR_CHAR_CODE('pipd')
-pDNS = FOUR_CHAR_CODE('pdns')
-pPort = FOUR_CHAR_CODE('ppor')
-pNetwork = FOUR_CHAR_CODE('pnet')
-pNode = FOUR_CHAR_CODE('pnod')
-pSocket = FOUR_CHAR_CODE('psoc')
-pSCSIBus = FOUR_CHAR_CODE('pscb')
-pSCSILUN = FOUR_CHAR_CODE('pslu')
-eDeviceType = FOUR_CHAR_CODE('edvt')
-eAddressSpec = FOUR_CHAR_CODE('eads')
-eConduit = FOUR_CHAR_CODE('econ')
-eProtocol = FOUR_CHAR_CODE('epro')
-eADB = FOUR_CHAR_CODE('eadb')
-eAnalogAudio = FOUR_CHAR_CODE('epau')
-eAppleTalk = FOUR_CHAR_CODE('epat')
-eAudioLineIn = FOUR_CHAR_CODE('ecai')
-eAudioLineOut = FOUR_CHAR_CODE('ecal')
-eAudioOut = FOUR_CHAR_CODE('ecao')
-eBus = FOUR_CHAR_CODE('ebus')
-eCDROM = FOUR_CHAR_CODE('ecd ')
-eCommSlot = FOUR_CHAR_CODE('eccm')
-eDigitalAudio = FOUR_CHAR_CODE('epda')
-eDisplay = FOUR_CHAR_CODE('edds')
-eDVD = FOUR_CHAR_CODE('edvd')
-eEthernet = FOUR_CHAR_CODE('ecen')
-eFireWire = FOUR_CHAR_CODE('ecfw')
-eFloppy = FOUR_CHAR_CODE('efd ')
-eHD = FOUR_CHAR_CODE('ehd ')
-eInfrared = FOUR_CHAR_CODE('ecir')
-eIP = FOUR_CHAR_CODE('epip')
-eIrDA = FOUR_CHAR_CODE('epir')
-eIRTalk = FOUR_CHAR_CODE('epit')
-eKeyboard = FOUR_CHAR_CODE('ekbd')
-eLCD = FOUR_CHAR_CODE('edlc')
-eLocalTalk = FOUR_CHAR_CODE('eclt')
-eMacIP = FOUR_CHAR_CODE('epmi')
-eMacVideo = FOUR_CHAR_CODE('epmv')
-eMicrophone = FOUR_CHAR_CODE('ecmi')
-eModemPort = FOUR_CHAR_CODE('ecmp')
-eModemPrinterPort = FOUR_CHAR_CODE('empp')
-eModem = FOUR_CHAR_CODE('edmm')
-eMonitorOut = FOUR_CHAR_CODE('ecmn')
-eMouse = FOUR_CHAR_CODE('emou')
-eNuBusCard = FOUR_CHAR_CODE('ednb')
-eNuBus = FOUR_CHAR_CODE('enub')
-ePCcard = FOUR_CHAR_CODE('ecpc')
-ePCIbus = FOUR_CHAR_CODE('ecpi')
-ePCIcard = FOUR_CHAR_CODE('edpi')
-ePDSslot = FOUR_CHAR_CODE('ecpd')
-ePDScard = FOUR_CHAR_CODE('epds')
-ePointingDevice = FOUR_CHAR_CODE('edpd')
-ePostScript = FOUR_CHAR_CODE('epps')
-ePPP = FOUR_CHAR_CODE('eppp')
-ePrinterPort = FOUR_CHAR_CODE('ecpp')
-ePrinter = FOUR_CHAR_CODE('edpr')
-eSvideo = FOUR_CHAR_CODE('epsv')
-eSCSI = FOUR_CHAR_CODE('ecsc')
-eSerial = FOUR_CHAR_CODE('epsr')
-eSpeakers = FOUR_CHAR_CODE('edsp')
-eStorageDevice = FOUR_CHAR_CODE('edst')
-eSVGA = FOUR_CHAR_CODE('epsg')
-eTokenRing = FOUR_CHAR_CODE('etok')
-eTrackball = FOUR_CHAR_CODE('etrk')
-eTrackpad = FOUR_CHAR_CODE('edtp')
-eUSB = FOUR_CHAR_CODE('ecus')
-eVideoIn = FOUR_CHAR_CODE('ecvi')
-eVideoMonitor = FOUR_CHAR_CODE('edvm')
-eVideoOut = FOUR_CHAR_CODE('ecvo')
-cKeystroke = FOUR_CHAR_CODE('kprs')
-pKeystrokeKey = FOUR_CHAR_CODE('kMsg')
-pModifiers = FOUR_CHAR_CODE('kMod')
-pKeyKind = FOUR_CHAR_CODE('kknd')
-eModifiers = FOUR_CHAR_CODE('eMds')
-eOptionDown = FOUR_CHAR_CODE('Kopt')
-eCommandDown = FOUR_CHAR_CODE('Kcmd')
-eControlDown = FOUR_CHAR_CODE('Kctl')
-eShiftDown = FOUR_CHAR_CODE('Ksft')
-eCapsLockDown = FOUR_CHAR_CODE('Kclk')
-eKeyKind = FOUR_CHAR_CODE('ekst')
-eEscapeKey = 0x6B733500
-eDeleteKey = 0x6B733300
-eTabKey = 0x6B733000
-eReturnKey = 0x6B732400
-eClearKey = 0x6B734700
-eEnterKey = 0x6B734C00
-eUpArrowKey = 0x6B737E00
-eDownArrowKey = 0x6B737D00
-eLeftArrowKey = 0x6B737B00
-eRightArrowKey = 0x6B737C00
-eHelpKey = 0x6B737200
-eHomeKey = 0x6B737300
-ePageUpKey = 0x6B737400
-ePageDownKey = 0x6B737900
-eForwardDelKey = 0x6B737500
-eEndKey = 0x6B737700
-eF1Key = 0x6B737A00
-eF2Key = 0x6B737800
-eF3Key = 0x6B736300
-eF4Key = 0x6B737600
-eF5Key = 0x6B736000
-eF6Key = 0x6B736100
-eF7Key = 0x6B736200
-eF8Key = 0x6B736400
-eF9Key = 0x6B736500
-eF10Key = 0x6B736D00
-eF11Key = 0x6B736700
-eF12Key = 0x6B736F00
-eF13Key = 0x6B736900
-eF14Key = 0x6B736B00
-eF15Key = 0x6B737100
-kAEAND = FOUR_CHAR_CODE('AND ')
-kAEOR = FOUR_CHAR_CODE('OR  ')
-kAENOT = FOUR_CHAR_CODE('NOT ')
-kAEFirst = FOUR_CHAR_CODE('firs')
-kAELast = FOUR_CHAR_CODE('last')
-kAEMiddle = FOUR_CHAR_CODE('midd')
-kAEAny = FOUR_CHAR_CODE('any ')
-kAEAll = FOUR_CHAR_CODE('all ')
-kAENext = FOUR_CHAR_CODE('next')
-kAEPrevious = FOUR_CHAR_CODE('prev')
-keyAECompOperator = FOUR_CHAR_CODE('relo')
-keyAELogicalTerms = FOUR_CHAR_CODE('term')
-keyAELogicalOperator = FOUR_CHAR_CODE('logc')
-keyAEObject1 = FOUR_CHAR_CODE('obj1')
-keyAEObject2 = FOUR_CHAR_CODE('obj2')
-keyAEDesiredClass = FOUR_CHAR_CODE('want')
-keyAEContainer = FOUR_CHAR_CODE('from')
-keyAEKeyForm = FOUR_CHAR_CODE('form')
-keyAEKeyData = FOUR_CHAR_CODE('seld')        
-keyAERangeStart = FOUR_CHAR_CODE('star')
-keyAERangeStop = FOUR_CHAR_CODE('stop')
-keyDisposeTokenProc = FOUR_CHAR_CODE('xtok')
-keyAECompareProc = FOUR_CHAR_CODE('cmpr')
-keyAECountProc = FOUR_CHAR_CODE('cont')
-keyAEMarkTokenProc = FOUR_CHAR_CODE('mkid')
-keyAEMarkProc = FOUR_CHAR_CODE('mark')
-keyAEAdjustMarksProc = FOUR_CHAR_CODE('adjm')
-keyAEGetErrDescProc = FOUR_CHAR_CODE('indc')        
-formAbsolutePosition = FOUR_CHAR_CODE('indx')
-formRelativePosition = FOUR_CHAR_CODE('rele')
-formTest = FOUR_CHAR_CODE('test')
-formRange = FOUR_CHAR_CODE('rang')
-formPropertyID = FOUR_CHAR_CODE('prop')
-formName = FOUR_CHAR_CODE('name')
-typeObjectSpecifier = FOUR_CHAR_CODE('obj ')
-typeObjectBeingExamined = FOUR_CHAR_CODE('exmn')
-typeCurrentContainer = FOUR_CHAR_CODE('ccnt')
-typeToken = FOUR_CHAR_CODE('toke')
-typeRelativeDescriptor = FOUR_CHAR_CODE('rel ')
-typeAbsoluteOrdinal = FOUR_CHAR_CODE('abso')
-typeIndexDescriptor = FOUR_CHAR_CODE('inde')
-typeRangeDescriptor = FOUR_CHAR_CODE('rang')
-typeLogicalDescriptor = FOUR_CHAR_CODE('logi')
-typeCompDescriptor = FOUR_CHAR_CODE('cmpd')
-typeOSLTokenList = FOUR_CHAR_CODE('ostl')        
-kAEIDoMinimum = 0x0000
-kAEIDoWhose = 0x0001
-kAEIDoMarking = 0x0004
-kAEPassSubDescs = 0x0008
-kAEResolveNestedLists = 0x0010
-kAEHandleSimpleRanges = 0x0020
-kAEUseRelativeIterators = 0x0040
-typeWhoseDescriptor = FOUR_CHAR_CODE('whos')
-formWhose = FOUR_CHAR_CODE('whos')
-typeWhoseRange = FOUR_CHAR_CODE('wrng')
-keyAEWhoseRangeStart = FOUR_CHAR_CODE('wstr')
-keyAEWhoseRangeStop = FOUR_CHAR_CODE('wstp')
-keyAEIndex = FOUR_CHAR_CODE('kidx')
-keyAETest = FOUR_CHAR_CODE('ktst')        
diff --git a/Mac/Lib/lib-toolbox/Dialogs.py b/Mac/Lib/lib-toolbox/Dialogs.py
deleted file mode 100644 (file)
index 7a26e15..0000000
+++ /dev/null
@@ -1,72 +0,0 @@
-# Generated from 'Dialogs.h'
-
-def FOUR_CHAR_CODE(x): return x
-kControlDialogItem = 4
-kButtonDialogItem = kControlDialogItem | 0
-kCheckBoxDialogItem = kControlDialogItem | 1
-kRadioButtonDialogItem = kControlDialogItem | 2
-kResourceControlDialogItem = kControlDialogItem | 3
-kStaticTextDialogItem = 8
-kEditTextDialogItem = 16
-kIconDialogItem = 32
-kPictureDialogItem = 64
-kUserDialogItem = 0
-kHelpDialogItem = 1
-kItemDisableBit = 128
-ctrlItem = 4
-btnCtrl = 0
-chkCtrl = 1
-radCtrl = 2
-resCtrl = 3
-statText = 8
-editText = 16
-iconItem = 32
-picItem = 64
-userItem = 0
-itemDisable = 128
-kStdOkItemIndex = 1
-kStdCancelItemIndex = 2
-ok = kStdOkItemIndex
-cancel = kStdCancelItemIndex
-kStopIcon = 0
-kNoteIcon = 1
-kCautionIcon = 2
-stopIcon = kStopIcon
-noteIcon = kNoteIcon
-cautionIcon = kCautionIcon
-kOkItemIndex = 1
-kCancelItemIndex = 2
-overlayDITL = 0
-appendDITLRight = 1
-appendDITLBottom = 2
-kAlertStopAlert = 0
-kAlertNoteAlert = 1
-kAlertCautionAlert = 2
-kAlertPlainAlert = 3
-kAlertDefaultOKText = -1
-kAlertDefaultCancelText = -1
-kAlertDefaultOtherText = -1                            
-kAlertStdAlertOKButton = 1
-kAlertStdAlertCancelButton = 2
-kAlertStdAlertOtherButton = 3
-kAlertStdAlertHelpButton = 4
-kDialogFlagsUseThemeBackground = (1 << 0)
-kDialogFlagsUseControlHierarchy = (1 << 1)
-kDialogFlagsHandleMovableModal = (1 << 2)
-kDialogFlagsUseThemeControls = (1 << 3)
-kAlertFlagsUseThemeBackground = (1 << 0)
-kAlertFlagsUseControlHierarchy = (1 << 1)
-kAlertFlagsAlertIsMovable = (1 << 2)
-kAlertFlagsUseThemeControls = (1 << 3)
-kDialogFontNoFontStyle = 0
-kDialogFontUseFontMask = 0x0001
-kDialogFontUseFaceMask = 0x0002
-kDialogFontUseSizeMask = 0x0004
-kDialogFontUseForeColorMask = 0x0008
-kDialogFontUseBackColorMask = 0x0010
-kDialogFontUseModeMask = 0x0020
-kDialogFontUseJustMask = 0x0040
-kDialogFontUseAllMask = 0x00FF
-kDialogFontAddFontSizeMask = 0x0100
-kDialogFontUseFontNameMask = 0x0200
-kDialogFontAddToMetaFontMask = 0x0400
diff --git a/Mac/Lib/lib-toolbox/Icons.py b/Mac/Lib/lib-toolbox/Icons.py
deleted file mode 100644 (file)
index 2c8da98..0000000
+++ /dev/null
@@ -1,359 +0,0 @@
-# Generated from 'Icons.h'
-
-def FOUR_CHAR_CODE(x): return x
-kGenericDocumentIconResource = -4000
-kGenericStationeryIconResource = -3985
-kGenericEditionFileIconResource = -3989
-kGenericApplicationIconResource = -3996
-kGenericDeskAccessoryIconResource = -3991
-kGenericFolderIconResource = -3999
-kPrivateFolderIconResource = -3994
-kFloppyIconResource = -3998
-kTrashIconResource = -3993
-kGenericRAMDiskIconResource = -3988
-kGenericCDROMIconResource = -3987
-kDesktopIconResource = -3992
-kOpenFolderIconResource = -3997
-kGenericHardDiskIconResource = -3995
-kGenericFileServerIconResource = -3972
-kGenericSuitcaseIconResource = -3970
-kGenericMoverObjectIconResource = -3969
-kGenericPreferencesIconResource = -3971
-kGenericQueryDocumentIconResource = -16506
-kGenericExtensionIconResource = -16415
-kSystemFolderIconResource = -3983
-kHelpIconResource = -20271
-kAppleMenuFolderIconResource = -3982
-genericDocumentIconResource = kGenericDocumentIconResource
-genericStationeryIconResource = kGenericStationeryIconResource
-genericEditionFileIconResource = kGenericEditionFileIconResource
-genericApplicationIconResource = kGenericApplicationIconResource
-genericDeskAccessoryIconResource = kGenericDeskAccessoryIconResource
-genericFolderIconResource = kGenericFolderIconResource
-privateFolderIconResource = kPrivateFolderIconResource
-floppyIconResource = kFloppyIconResource
-trashIconResource = kTrashIconResource
-genericRAMDiskIconResource = kGenericRAMDiskIconResource
-genericCDROMIconResource = kGenericCDROMIconResource
-desktopIconResource = kDesktopIconResource
-openFolderIconResource = kOpenFolderIconResource
-genericHardDiskIconResource = kGenericHardDiskIconResource
-genericFileServerIconResource = kGenericFileServerIconResource
-genericSuitcaseIconResource = kGenericSuitcaseIconResource
-genericMoverObjectIconResource = kGenericMoverObjectIconResource
-genericPreferencesIconResource = kGenericPreferencesIconResource
-genericQueryDocumentIconResource = kGenericQueryDocumentIconResource
-genericExtensionIconResource = kGenericExtensionIconResource
-systemFolderIconResource = kSystemFolderIconResource
-appleMenuFolderIconResource = kAppleMenuFolderIconResource
-kStartupFolderIconResource = -3981
-kOwnedFolderIconResource = -3980
-kDropFolderIconResource = -3979
-kSharedFolderIconResource = -3978
-kMountedFolderIconResource = -3977
-kControlPanelFolderIconResource = -3976
-kPrintMonitorFolderIconResource = -3975
-kPreferencesFolderIconResource = -3974
-kExtensionsFolderIconResource = -3973
-kFontsFolderIconResource = -3968
-kFullTrashIconResource = -3984
-startupFolderIconResource = kStartupFolderIconResource
-ownedFolderIconResource = kOwnedFolderIconResource
-dropFolderIconResource = kDropFolderIconResource
-sharedFolderIconResource = kSharedFolderIconResource
-mountedFolderIconResource = kMountedFolderIconResource
-controlPanelFolderIconResource = kControlPanelFolderIconResource
-printMonitorFolderIconResource = kPrintMonitorFolderIconResource
-preferencesFolderIconResource = kPreferencesFolderIconResource
-extensionsFolderIconResource = kExtensionsFolderIconResource
-fontsFolderIconResource = kFontsFolderIconResource
-fullTrashIconResource = kFullTrashIconResource
-kThumbnail32BitData = FOUR_CHAR_CODE('it32')
-kThumbnail8BitMask = FOUR_CHAR_CODE('t8mk')
-kHuge1BitMask = FOUR_CHAR_CODE('ich#')
-kHuge4BitData = FOUR_CHAR_CODE('ich4')
-kHuge8BitData = FOUR_CHAR_CODE('ich8')
-kHuge32BitData = FOUR_CHAR_CODE('ih32')
-kHuge8BitMask = FOUR_CHAR_CODE('h8mk')
-kLarge1BitMask = FOUR_CHAR_CODE('ICN#')
-kLarge4BitData = FOUR_CHAR_CODE('icl4')
-kLarge8BitData = FOUR_CHAR_CODE('icl8')
-kLarge32BitData = FOUR_CHAR_CODE('il32')
-kLarge8BitMask = FOUR_CHAR_CODE('l8mk')
-kSmall1BitMask = FOUR_CHAR_CODE('ics#')
-kSmall4BitData = FOUR_CHAR_CODE('ics4')
-kSmall8BitData = FOUR_CHAR_CODE('ics8')
-kSmall32BitData = FOUR_CHAR_CODE('is32')
-kSmall8BitMask = FOUR_CHAR_CODE('s8mk')
-kMini1BitMask = FOUR_CHAR_CODE('icm#')
-kMini4BitData = FOUR_CHAR_CODE('icm4')
-kMini8BitData = FOUR_CHAR_CODE('icm8')
-kTileIconVariant = FOUR_CHAR_CODE('tile')
-kRolloverIconVariant = FOUR_CHAR_CODE('over')
-kDropIconVariant = FOUR_CHAR_CODE('drop')
-kOpenIconVariant = FOUR_CHAR_CODE('open')
-kOpenDropIconVariant = FOUR_CHAR_CODE('odrp')
-large1BitMask = kLarge1BitMask
-large4BitData = kLarge4BitData
-large8BitData = kLarge8BitData
-small1BitMask = kSmall1BitMask
-small4BitData = kSmall4BitData
-small8BitData = kSmall8BitData
-mini1BitMask = kMini1BitMask
-mini4BitData = kMini4BitData
-mini8BitData = kMini8BitData
-kAlignNone = 0x00
-kAlignVerticalCenter = 0x01
-kAlignTop = 0x02
-kAlignBottom = 0x03
-kAlignHorizontalCenter = 0x04
-kAlignAbsoluteCenter = kAlignVerticalCenter | kAlignHorizontalCenter
-kAlignCenterTop = kAlignTop | kAlignHorizontalCenter
-kAlignCenterBottom = kAlignBottom | kAlignHorizontalCenter
-kAlignLeft = 0x08
-kAlignCenterLeft = kAlignVerticalCenter | kAlignLeft
-kAlignTopLeft = kAlignTop | kAlignLeft
-kAlignBottomLeft = kAlignBottom | kAlignLeft
-kAlignRight = 0x0C
-kAlignCenterRight = kAlignVerticalCenter | kAlignRight
-kAlignTopRight = kAlignTop | kAlignRight
-kAlignBottomRight = kAlignBottom | kAlignRight
-atNone = kAlignNone
-atVerticalCenter = kAlignVerticalCenter
-atTop = kAlignTop
-atBottom = kAlignBottom
-atHorizontalCenter = kAlignHorizontalCenter
-atAbsoluteCenter = kAlignAbsoluteCenter
-atCenterTop = kAlignCenterTop
-atCenterBottom = kAlignCenterBottom
-atLeft = kAlignLeft
-atCenterLeft = kAlignCenterLeft
-atTopLeft = kAlignTopLeft
-atBottomLeft = kAlignBottomLeft
-atRight = kAlignRight
-atCenterRight = kAlignCenterRight
-atTopRight = kAlignTopRight
-atBottomRight = kAlignBottomRight
-kTransformNone = 0x00
-kTransformDisabled = 0x01
-kTransformOffline = 0x02
-kTransformOpen = 0x03
-kTransformLabel1 = 0x0100
-kTransformLabel2 = 0x0200
-kTransformLabel3 = 0x0300
-kTransformLabel4 = 0x0400
-kTransformLabel5 = 0x0500
-kTransformLabel6 = 0x0600
-kTransformLabel7 = 0x0700
-kTransformSelected = 0x4000
-kTransformSelectedDisabled = kTransformSelected | kTransformDisabled
-kTransformSelectedOffline = kTransformSelected | kTransformOffline
-kTransformSelectedOpen = kTransformSelected | kTransformOpen
-ttNone = kTransformNone
-ttDisabled = kTransformDisabled
-ttOffline = kTransformOffline
-ttOpen = kTransformOpen
-ttLabel1 = kTransformLabel1
-ttLabel2 = kTransformLabel2
-ttLabel3 = kTransformLabel3
-ttLabel4 = kTransformLabel4
-ttLabel5 = kTransformLabel5
-ttLabel6 = kTransformLabel6
-ttLabel7 = kTransformLabel7
-ttSelected = kTransformSelected
-ttSelectedDisabled = kTransformSelectedDisabled
-ttSelectedOffline = kTransformSelectedOffline
-ttSelectedOpen = kTransformSelectedOpen
-kSelectorLarge1Bit = 0x00000001
-kSelectorLarge4Bit = 0x00000002
-kSelectorLarge8Bit = 0x00000004
-kSelectorLarge32Bit = 0x00000008
-kSelectorLarge8BitMask = 0x00000010
-kSelectorSmall1Bit = 0x00000100
-kSelectorSmall4Bit = 0x00000200
-kSelectorSmall8Bit = 0x00000400
-kSelectorSmall32Bit = 0x00000800
-kSelectorSmall8BitMask = 0x00001000
-kSelectorMini1Bit = 0x00010000
-kSelectorMini4Bit = 0x00020000
-kSelectorMini8Bit = 0x00040000
-kSelectorHuge1Bit = 0x01000000
-kSelectorHuge4Bit = 0x02000000
-kSelectorHuge8Bit = 0x04000000
-kSelectorHuge32Bit = 0x08000000
-kSelectorHuge8BitMask = 0x10000000
-kSelectorAllLargeData = 0x000000FF
-kSelectorAllSmallData = 0x0000FF00
-kSelectorAllMiniData = 0x00FF0000
-# kSelectorAllHugeData = (long)0xFF000000
-kSelectorAll1BitData = kSelectorLarge1Bit | kSelectorSmall1Bit | kSelectorMini1Bit | kSelectorHuge1Bit
-kSelectorAll4BitData = kSelectorLarge4Bit | kSelectorSmall4Bit | kSelectorMini4Bit | kSelectorHuge4Bit
-kSelectorAll8BitData = kSelectorLarge8Bit | kSelectorSmall8Bit | kSelectorMini8Bit | kSelectorHuge8Bit
-kSelectorAll32BitData = kSelectorLarge32Bit | kSelectorSmall32Bit | kSelectorHuge32Bit
-# kSelectorAllAvailableData = (long)0xFFFFFFFF
-svLarge1Bit = kSelectorLarge1Bit
-svLarge4Bit = kSelectorLarge4Bit
-svLarge8Bit = kSelectorLarge8Bit
-svSmall1Bit = kSelectorSmall1Bit
-svSmall4Bit = kSelectorSmall4Bit
-svSmall8Bit = kSelectorSmall8Bit
-svMini1Bit = kSelectorMini1Bit
-svMini4Bit = kSelectorMini4Bit
-svMini8Bit = kSelectorMini8Bit
-svAllLargeData = kSelectorAllLargeData
-svAllSmallData = kSelectorAllSmallData
-svAllMiniData = kSelectorAllMiniData
-svAll1BitData = kSelectorAll1BitData
-svAll4BitData = kSelectorAll4BitData
-svAll8BitData = kSelectorAll8BitData
-# svAllAvailableData = kSelectorAllAvailableData
-kSystemIconsCreator = FOUR_CHAR_CODE('macs')
-# err = GetIconRef(kOnSystemDisk
-kClipboardIcon = FOUR_CHAR_CODE('CLIP')
-kClippingUnknownTypeIcon = FOUR_CHAR_CODE('clpu')
-kClippingPictureTypeIcon = FOUR_CHAR_CODE('clpp')
-kClippingTextTypeIcon = FOUR_CHAR_CODE('clpt')
-kClippingSoundTypeIcon = FOUR_CHAR_CODE('clps')
-kDesktopIcon = FOUR_CHAR_CODE('desk')
-kFinderIcon = FOUR_CHAR_CODE('FNDR')
-kFontSuitcaseIcon = FOUR_CHAR_CODE('FFIL')
-kFullTrashIcon = FOUR_CHAR_CODE('ftrh')
-kGenericApplicationIcon = FOUR_CHAR_CODE('APPL')
-kGenericCDROMIcon = FOUR_CHAR_CODE('cddr')
-kGenericControlPanelIcon = FOUR_CHAR_CODE('APPC')
-kGenericControlStripModuleIcon = FOUR_CHAR_CODE('sdev')
-kGenericComponentIcon = FOUR_CHAR_CODE('thng')
-kGenericDeskAccessoryIcon = FOUR_CHAR_CODE('APPD')
-kGenericDocumentIcon = FOUR_CHAR_CODE('docu')
-kGenericEditionFileIcon = FOUR_CHAR_CODE('edtf')
-kGenericExtensionIcon = FOUR_CHAR_CODE('INIT')
-kGenericFileServerIcon = FOUR_CHAR_CODE('srvr')
-kGenericFontIcon = FOUR_CHAR_CODE('ffil')
-kGenericFontScalerIcon = FOUR_CHAR_CODE('sclr')
-kGenericFloppyIcon = FOUR_CHAR_CODE('flpy')
-kGenericHardDiskIcon = FOUR_CHAR_CODE('hdsk')
-kGenericRemovableMediaIcon = FOUR_CHAR_CODE('rmov')
-kGenericMoverObjectIcon = FOUR_CHAR_CODE('movr')
-kGenericPCCardIcon = FOUR_CHAR_CODE('pcmc')
-kGenericPreferencesIcon = FOUR_CHAR_CODE('pref')
-kGenericQueryDocumentIcon = FOUR_CHAR_CODE('qery')
-kGenericRAMDiskIcon = FOUR_CHAR_CODE('ramd')
-kGenericSharedLibaryIcon = FOUR_CHAR_CODE('shlb')
-kGenericStationeryIcon = FOUR_CHAR_CODE('sdoc')
-kGenericSuitcaseIcon = FOUR_CHAR_CODE('suit')
-kGenericWORMIcon = FOUR_CHAR_CODE('worm')
-kInternationResourcesIcon = FOUR_CHAR_CODE('ifil')
-kKeyboardLayoutIcon = FOUR_CHAR_CODE('kfil')
-kSoundFileIcon = FOUR_CHAR_CODE('sfil')
-kSystemSuitcaseIcon = FOUR_CHAR_CODE('zsys')
-kTrashIcon = FOUR_CHAR_CODE('trsh')
-kTrueTypeFontIcon = FOUR_CHAR_CODE('tfil')
-kTrueTypeFlatFontIcon = FOUR_CHAR_CODE('sfnt')
-kTrueTypeMultiFlatFontIcon = FOUR_CHAR_CODE('ttcf')
-kInternetLocationHTTPIcon = FOUR_CHAR_CODE('ilht')
-kInternetLocationFTPIcon = FOUR_CHAR_CODE('ilft')
-kInternetLocationAppleShareIcon = FOUR_CHAR_CODE('ilaf')
-kInternetLocationAppleTalkZoneIcon = FOUR_CHAR_CODE('ilat')
-kInternetLocationFileIcon = FOUR_CHAR_CODE('ilfi')
-kInternetLocationMailIcon = FOUR_CHAR_CODE('ilma')
-kInternetLocationNewsIcon = FOUR_CHAR_CODE('ilnw')
-kInternetLocationNSLNeighborhoodIcon = FOUR_CHAR_CODE('ilns')
-kInternetLocationGenericIcon = FOUR_CHAR_CODE('ilge')
-kGenericFolderIcon = FOUR_CHAR_CODE('fldr')
-kDropFolderIcon = FOUR_CHAR_CODE('dbox')
-kMountedFolderIcon = FOUR_CHAR_CODE('mntd')
-kOpenFolderIcon = FOUR_CHAR_CODE('ofld')
-kOwnedFolderIcon = FOUR_CHAR_CODE('ownd')
-kPrivateFolderIcon = FOUR_CHAR_CODE('prvf')
-kSharedFolderIcon = FOUR_CHAR_CODE('shfl')
-kSharingPrivsNotApplicableIcon = FOUR_CHAR_CODE('shna')
-kSharingPrivsReadOnlyIcon = FOUR_CHAR_CODE('shro')
-kSharingPrivsReadWriteIcon = FOUR_CHAR_CODE('shrw')
-kSharingPrivsUnknownIcon = FOUR_CHAR_CODE('shuk')
-kSharingPrivsWritableIcon = FOUR_CHAR_CODE('writ')
-kUserFolderIcon = FOUR_CHAR_CODE('ufld')
-kWorkgroupFolderIcon = FOUR_CHAR_CODE('wfld')
-kGuestUserIcon = FOUR_CHAR_CODE('gusr')
-kUserIcon = FOUR_CHAR_CODE('user')
-kOwnerIcon = FOUR_CHAR_CODE('susr')
-kGroupIcon = FOUR_CHAR_CODE('grup')
-kAppleExtrasFolderIcon = FOUR_CHAR_CODE('aex\9f')
-kAppleMenuFolderIcon = FOUR_CHAR_CODE('amnu')
-kApplicationsFolderIcon = FOUR_CHAR_CODE('apps')
-kApplicationSupportFolderIcon = FOUR_CHAR_CODE('asup')
-kAssistantsFolderIcon = FOUR_CHAR_CODE('ast\9f')
-kContextualMenuItemsFolderIcon = FOUR_CHAR_CODE('cmnu')
-kControlPanelDisabledFolderIcon = FOUR_CHAR_CODE('ctrD')
-kControlPanelFolderIcon = FOUR_CHAR_CODE('ctrl')
-kControlStripModulesFolderIcon = FOUR_CHAR_CODE('sdv\9f')
-kDocumentsFolderIcon = FOUR_CHAR_CODE('docs')
-kExtensionsDisabledFolderIcon = FOUR_CHAR_CODE('extD')
-kExtensionsFolderIcon = FOUR_CHAR_CODE('extn')
-kFavoritesFolderIcon = FOUR_CHAR_CODE('favs')
-kFontsFolderIcon = FOUR_CHAR_CODE('font')
-kHelpFolderIcon = FOUR_CHAR_CODE('\9fhlp')
-kInternetFolderIcon = FOUR_CHAR_CODE('int\9f')
-kInternetPlugInFolderIcon = FOUR_CHAR_CODE('\9fnet')
-kLocalesFolderIcon = FOUR_CHAR_CODE('\9floc')
-kMacOSReadMeFolderIcon = FOUR_CHAR_CODE('mor\9f')
-kPreferencesFolderIcon = FOUR_CHAR_CODE('prf\9f')
-kPrinterDescriptionFolderIcon = FOUR_CHAR_CODE('ppdf')
-kPrinterDriverFolderIcon = FOUR_CHAR_CODE('\9fprd')
-kPrintMonitorFolderIcon = FOUR_CHAR_CODE('prnt')
-kRecentApplicationsFolderIcon = FOUR_CHAR_CODE('rapp')
-kRecentDocumentsFolderIcon = FOUR_CHAR_CODE('rdoc')
-kRecentServersFolderIcon = FOUR_CHAR_CODE('rsrv')
-kScriptingAdditionsFolderIcon = FOUR_CHAR_CODE('\9fscr')
-kSharedLibrariesFolderIcon = FOUR_CHAR_CODE('\9flib')
-kScriptsFolderIcon = FOUR_CHAR_CODE('scr\9f')
-kShutdownItemsDisabledFolderIcon = FOUR_CHAR_CODE('shdD')
-kShutdownItemsFolderIcon = FOUR_CHAR_CODE('shdf')
-kSpeakableItemsFolder = FOUR_CHAR_CODE('spki')
-kStartupItemsDisabledFolderIcon = FOUR_CHAR_CODE('strD')
-kStartupItemsFolderIcon = FOUR_CHAR_CODE('strt')
-kSystemExtensionDisabledFolderIcon = FOUR_CHAR_CODE('macD')
-kSystemFolderIcon = FOUR_CHAR_CODE('macs')
-kTextEncodingsFolderIcon = FOUR_CHAR_CODE('\9ftex')
-kAppearanceFolderIcon = FOUR_CHAR_CODE('appr')
-kUtilitiesFolderIcon = FOUR_CHAR_CODE('uti\9f')
-kVoicesFolderIcon = FOUR_CHAR_CODE('fvoc')
-kColorSyncFolderIcon = FOUR_CHAR_CODE('prof')
-kInternetSearchSitesFolderIcon = FOUR_CHAR_CODE('issf')
-kUsersFolderIcon = FOUR_CHAR_CODE('usr\9f')
-kAppleScriptBadgeIcon = FOUR_CHAR_CODE('scrp')
-kLockedBadgeIcon = FOUR_CHAR_CODE('lbdg')
-kMountedBadgeIcon = FOUR_CHAR_CODE('mbdg')
-kSharedBadgeIcon = FOUR_CHAR_CODE('sbdg')
-kAliasBadgeIcon = FOUR_CHAR_CODE('abdg')
-kAlertNoteIcon = FOUR_CHAR_CODE('note')
-kAlertCautionIcon = FOUR_CHAR_CODE('caut')
-kAlertStopIcon = FOUR_CHAR_CODE('stop')
-kAppleTalkIcon = FOUR_CHAR_CODE('atlk')
-kAppleTalkZoneIcon = FOUR_CHAR_CODE('atzn')
-kAFPServerIcon = FOUR_CHAR_CODE('afps')
-kFTPServerIcon = FOUR_CHAR_CODE('ftps')
-kHTTPServerIcon = FOUR_CHAR_CODE('htps')
-kGenericNetworkIcon = FOUR_CHAR_CODE('gnet')
-kIPFileServerIcon = FOUR_CHAR_CODE('isrv')
-kAppleLogoIcon = FOUR_CHAR_CODE('capl')
-kAppleMenuIcon = FOUR_CHAR_CODE('sapl')
-kBackwardArrowIcon = FOUR_CHAR_CODE('baro')
-kFavoriteItemsIcon = FOUR_CHAR_CODE('favr')
-kForwardArrowIcon = FOUR_CHAR_CODE('faro')
-kGridIcon = FOUR_CHAR_CODE('grid')
-kHelpIcon = FOUR_CHAR_CODE('help')
-kKeepArrangedIcon = FOUR_CHAR_CODE('arng')
-kLockedIcon = FOUR_CHAR_CODE('lock')
-kNoFilesIcon = FOUR_CHAR_CODE('nfil')
-kNoFolderIcon = FOUR_CHAR_CODE('nfld')
-kNoWriteIcon = FOUR_CHAR_CODE('nwrt')
-kProtectedApplicationFolderIcon = FOUR_CHAR_CODE('papp')
-kProtectedSystemFolderIcon = FOUR_CHAR_CODE('psys')
-kRecentItemsIcon = FOUR_CHAR_CODE('rcnt')
-kShortcutIcon = FOUR_CHAR_CODE('shrt')
-kSortAscendingIcon = FOUR_CHAR_CODE('asnd')
-kSortDescendingIcon = FOUR_CHAR_CODE('dsnd')
-kUnlockedIcon = FOUR_CHAR_CODE('ulck')
-kConnectToIcon = FOUR_CHAR_CODE('cnct')
-kIconServicesNormalUsageFlag = 0
-kIconFamilyType = FOUR_CHAR_CODE('icns')
diff --git a/Mac/Lib/macerrors.py b/Mac/Lib/macerrors.py
deleted file mode 100644 (file)
index 69a5368..0000000
+++ /dev/null
@@ -1,1789 +0,0 @@
-svTempDisable  =       -32768  #svTempDisable
-svDisabled     =       -32640  #Reserve range -32640 to -32768 for Apple temp disables.
-fontNotOutlineErr      =       -32615  #bitmap font passed to routine that does outlines only
-kURL68kNotSupportedError       =       -30788  #kURL68kNotSupportedError
-kURLAccessNotAvailableError    =       -30787  #kURLAccessNotAvailableError
-kURLInvalidConfigurationError  =       -30786  #kURLInvalidConfigurationError
-kURLExtensionFailureError      =       -30785  #kURLExtensionFailureError
-kURLFileEmptyError     =       -30783  #kURLFileEmptyError
-kURLInvalidCallError   =       -30781  #kURLInvalidCallError
-kURLUnsettablePropertyError    =       -30780  #kURLUnsettablePropertyError
-kURLPropertyBufferTooSmallError        =       -30779  #kURLPropertyBufferTooSmallError
-kURLUnknownPropertyError       =       -30778  #kURLUnknownPropertyError
-kURLPropertyNotYetKnownError   =       -30777  #kURLPropertyNotYetKnownError
-kURLAuthenticationError        =       -30776  #kURLAuthenticationError
-kURLServerBusyError    =       -30775  #kURLServerBusyError
-kURLUnsupportedSchemeError     =       -30774  #kURLUnsupportedSchemeError
-kURLInvalidURLError    =       -30773  #kURLInvalidURLError
-kURLDestinationExistsError     =       -30772  #kURLDestinationExistsError
-kURLProgressAlreadyDisplayedError      =       -30771  #kURLProgressAlreadyDisplayedError
-kURLInvalidURLReferenceError   =       -30770  #kURLInvalidURLReferenceError
-controlHandleInvalidErr        =       -30599  #controlHandleInvalidErr
-controlInvalidDataVersionErr   =       -30597  #controlInvalidDataVersionErr
-errItemNotControl      =       -30596  #errItemNotControl
-errCantEmbedRoot       =       -30595  #errCantEmbedRoot
-errCantEmbedIntoSelf   =       -30594  #errCantEmbedIntoSelf
-errWindowRegionCodeInvalid     =       -30593  #errWindowRegionCodeInvalid
-errControlHiddenOrDisabled     =       -30592  #errControlHiddenOrDisabled
-errDataSizeMismatch    =       -30591  #errDataSizeMismatch
-errControlIsNotEmbedder        =       -30590  #errControlIsNotEmbedder
-errControlsAlreadyExist        =       -30589  #errControlsAlreadyExist
-errInvalidPartCode     =       -30588  #errInvalidPartCode
-errRootAlreadyExists   =       -30587  #errRootAlreadyExists
-errNoRootControl       =       -30586  #errNoRootControl
-errCouldntSetFocus     =       -30585  #errCouldntSetFocus
-errUnknownControl      =       -30584  #errUnknownControl
-errWindowDoesntSupportFocus    =       -30583  #errWindowDoesntSupportFocus
-errControlDoesntSupportFocus   =       -30582  #errControlDoesntSupportFocus
-errDataNotSupported    =       -30581  #errDataNotSupported
-errMessageNotSupported =       -30580  #errMessageNotSupported
-themeMonitorDepthNotSupportedErr       =       -30567  #theme not supported at monitor depth
-themeScriptFontNotFoundErr     =       -30566  #theme font requested for uninstalled script system
-themeBadCursorIndexErr =       -30565  #themeBadCursorIndexErr
-themeHasNoAccentsErr   =       -30564  #themeHasNoAccentsErr
-themeBadTextColorErr   =       -30563  #themeBadTextColorErr
-themeProcessNotRegisteredErr   =       -30562  #themeProcessNotRegisteredErr
-themeProcessRegisteredErr      =       -30561  #themeProcessRegisteredErr
-themeInvalidBrushErr   =       -30560  #pattern index invalid
-qtvrUninitialized      =       -30555  #qtvrUninitialized
-qtvrLibraryLoadErr     =       -30554  #qtvrLibraryLoadErr
-streamingNodeNotReadyErr       =       -30553  #streamingNodeNotReadyErr
-noMemoryNodeFailedInitialize   =       -30552  #noMemoryNodeFailedInitialize
-invalidHotSpotIDErr    =       -30551  #invalidHotSpotIDErr
-invalidNodeFormatErr   =       -30550  #invalidNodeFormatErr
-limitReachedErr        =       -30549  #limitReachedErr
-settingNotSupportedByNodeErr   =       -30548  #settingNotSupportedByNodeErr
-propertyNotSupportedByNodeErr  =       -30547  #propertyNotSupportedByNodeErr
-timeNotInViewErr       =       -30546  #timeNotInViewErr
-invalidViewStateErr    =       -30545  #invalidViewStateErr
-invalidNodeIDErr       =       -30544  #invalidNodeIDErr
-selectorNotSupportedByNodeErr  =       -30543  #selectorNotSupportedByNodeErr
-callNotSupportedByNodeErr      =       -30542  #callNotSupportedByNodeErr
-constraintReachedErr   =       -30541  #constraintReachedErr
-notAQTVRMovieErr       =       -30540  #notAQTVRMovieErr
-kFBCnoSuchHit  =       -30532  #kFBCnoSuchHit
-kFBCbadSearchSession   =       -30531  #kFBCbadSearchSession
-kFBCindexDiskIOFailed  =       -30530  #kFBCindexDiskIOFailed
-kFBCsummarizationCanceled      =       -30529  #kFBCsummarizationCanceled
-kFBCbadIndexFileVersion        =       -30528  #kFBCbadIndexFileVersion
-kFBCanalysisNotAvailable       =       -30527  #kFBCanalysisNotAvailable
-kFBCillegalSessionChange       =       -30526  #tried to add/remove vols to a session
-kFBCsomeFilesNotIndexed        =       -30525  #kFBCsomeFilesNotIndexed
-kFBCsearchFailed       =       -30524  #kFBCsearchFailed
-kFBCindexNotAvailable  =       -30523  #kFBCindexNotAvailable
-kFBCindexFileDestroyed =       -30522  #kFBCindexFileDestroyed
-kFBCaccessCanceled     =       -30521  #kFBCaccessCanceled
-kFBCindexingCanceled   =       -30520  #kFBCindexingCanceled
-kFBCnoSearchSession    =       -30519  #kFBCnoSearchSession
-kFBCindexNotFound      =       -30518  #kFBCindexNotFound
-kFBCflushFailed        =       -30517  #kFBCflushFailed
-kFBCaddDocFailed       =       -30516  #kFBCaddDocFailed
-kFBCaccessorStoreFailed        =       -30515  #kFBCaccessorStoreFailed
-kFBCindexCreationFailed        =       -30514  #couldn't create index
-kFBCmergingFailed      =       -30513  #couldn't merge index files
-kFBCtokenizationFailed =       -30512  #couldn't read from document or query
-kFBCmoveFailed =       -30511  #V-Twin exception caught
-kFBCdeletionFailed     =       -30510  #V-Twin exception caught
-kFBCcommitFailed       =       -30509  #V-Twin exception caught
-kFBCindexingFailed     =       -30508  #V-Twin exception caught
-kFBCvalidationFailed   =       -30507  #V-Twin exception caught
-kFBCcompactionFailed   =       -30506  #V-Twin exception caught
-kFBCbadIndexFile       =       -30505  #bad FSSpec, or bad data in file
-kFBCfileNotIndexed     =       -30504  #kFBCfileNotIndexed
-kFBCbadParam   =       -30503  #kFBCbadParam
-kFBCallocFailed        =       -30502  #probably low memory
-kFBCnoIndexesFound     =       -30501  #kFBCnoIndexesFound
-kFBCvTwinExceptionErr  =       -30500  #no telling what it was
-kDSpStereoContextErr   =       -30450  #kDSpStereoContextErr
-kDSpInternalErr        =       -30449  #kDSpInternalErr
-kDSpConfirmSwitchWarning       =       -30448  #kDSpConfirmSwitchWarning
-kDSpFrameRateNotReadyErr       =       -30447  #kDSpFrameRateNotReadyErr
-kDSpContextNotFoundErr =       -30446  #kDSpContextNotFoundErr
-kDSpContextNotReservedErr      =       -30445  #kDSpContextNotReservedErr
-kDSpContextAlreadyReservedErr  =       -30444  #kDSpContextAlreadyReservedErr
-kDSpInvalidAttributesErr       =       -30443  #kDSpInvalidAttributesErr
-kDSpInvalidContextErr  =       -30442  #kDSpInvalidContextErr
-kDSpSystemSWTooOldErr  =       -30441  #kDSpSystemSWTooOldErr
-kDSpNotInitializedErr  =       -30440  #kDSpNotInitializedErr
-kISpListBusyErr        =       -30429  #kISpListBusyErr
-kISpDeviceActiveErr    =       -30428  #kISpDeviceActiveErr
-kISpSystemActiveErr    =       -30427  #kISpSystemActiveErr
-kISpDeviceInactiveErr  =       -30426  #kISpDeviceInactiveErr
-kISpSystemInactiveErr  =       -30425  #kISpSystemInactiveErr
-kISpElementNotInListErr        =       -30424  #kISpElementNotInListErr
-kISpElementInListErr   =       -30423  #kISpElementInListErr
-kISpBufferToSmallErr   =       -30422  #kISpBufferToSmallErr
-kISpSystemListErr      =       -30421  #kISpSystemListErr
-kISpInternalErr        =       -30420  #kISpInternalErr
-kNSpJoinFailedErr      =       -30399  #kNSpJoinFailedErr
-kNSpCantBlockErr       =       -30398  #kNSpCantBlockErr
-kNSpMessageTooBigErr   =       -30397  #kNSpMessageTooBigErr
-kNSpSendFailedErr      =       -30396  #kNSpSendFailedErr
-kNSpConnectFailedErr   =       -30395  #kNSpConnectFailedErr
-kNSpGameTerminatedErr  =       -30394  #kNSpGameTerminatedErr
-kNSpTimeoutErr =       -30393  #kNSpTimeoutErr
-kNSpInvalidProtocolListErr     =       -30392  #kNSpInvalidProtocolListErr
-kNSpInvalidProtocolRefErr      =       -30391  #kNSpInvalidProtocolRefErr
-kNSpInvalidDefinitionErr       =       -30390  #kNSpInvalidDefinitionErr
-kNSpAddPlayerFailedErr =       -30389  #kNSpAddPlayerFailedErr
-kNSpCreateGroupFailedErr       =       -30388  #kNSpCreateGroupFailedErr
-kNSpNoHostVolunteersErr        =       -30387  #kNSpNoHostVolunteersErr
-kNSpNoGroupsErr        =       -30386  #kNSpNoGroupsErr
-kNSpNoPlayersErr       =       -30385  #kNSpNoPlayersErr
-kNSpInvalidGroupIDErr  =       -30384  #kNSpInvalidGroupIDErr
-kNSpInvalidPlayerIDErr =       -30383  #kNSpInvalidPlayerIDErr
-kNSpNameRequiredErr    =       -30382  #kNSpNameRequiredErr
-kNSpFeatureNotImplementedErr   =       -30381  #kNSpFeatureNotImplementedErr
-kNSpAddressInUseErr    =       -30380  #kNSpAddressInUseErr
-kNSpRemovePlayerFailedErr      =       -30379  #kNSpRemovePlayerFailedErr
-kNSpFreeQExhaustedErr  =       -30378  #kNSpFreeQExhaustedErr
-kNSpInvalidAddressErr  =       -30377  #kNSpInvalidAddressErr
-kNSpNotAdvertisingErr  =       -30376  #kNSpNotAdvertisingErr
-kNSpAlreadyAdvertisingErr      =       -30374  #kNSpAlreadyAdvertisingErr
-kNSpMemAllocationErr   =       -30373  #kNSpMemAllocationErr
-kNSpOTVersionTooOldErr =       -30371  #kNSpOTVersionTooOldErr
-kNSpOTNotPresentErr    =       -30370  #kNSpOTNotPresentErr
-kNSpInvalidParameterErr        =       -30369  #kNSpInvalidParameterErr
-kNSpInvalidGameRefErr  =       -30367  #kNSpInvalidGameRefErr
-kNSpProtocolNotAvailableErr    =       -30366  #kNSpProtocolNotAvailableErr
-kNSpHostFailedErr      =       -30365  #kNSpHostFailedErr
-kNSpPipeFullErr        =       -30364  #kNSpPipeFullErr
-kNSpTopologyNotSupportedErr    =       -30362  #kNSpTopologyNotSupportedErr
-kNSpAlreadyInitializedErr      =       -30361  #kNSpAlreadyInitializedErr
-kNSpInitializationFailedErr    =       -30360  #kNSpInitializationFailedErr
-kSSpScaleToZeroErr     =       -30344  #kSSpScaleToZeroErr
-kSSpParallelUpVectorErr        =       -30343  #kSSpParallelUpVectorErr
-kSSpCantInstallErr     =       -30342  #kSSpCantInstallErr
-kSSpVersionErr =       -30341  #kSSpVersionErr
-kSSpInternalErr        =       -30340  #kSSpInternalErr
-kALMInternalErr        =       -30049  #kALMInternalErr
-kALMGroupNotFoundErr   =       -30048  #kALMGroupNotFoundErr
-kALMNoSuchModuleErr    =       -30047  #kALMNoSuchModuleErr
-kALMModuleCommunicationErr     =       -30046  #kALMModuleCommunicationErr
-kALMDuplicateModuleErr =       -30045  #kALMDuplicateModuleErr
-kALMInstallationErr    =       -30044  #kALMInstallationErr
-kALMDeferSwitchErr     =       -30043  #kALMDeferSwitchErr
-kALMRebootFlagsLevelErr        =       -30042  #kALMRebootFlagsLevelErr
-kLocalesDefaultDisplayStatus   =       -30029  #Requested display locale unavailable, used default
-kLocalesTableFormatErr =       -30002  #kLocalesTableFormatErr
-kLocalesBufferTooSmallErr      =       -30001  #kLocalesBufferTooSmallErr
-kFNSNameNotFoundErr    =       -29589  #The name with the requested paramters was not found
-kFNSBadFlattenedSizeErr        =       -29587  #flattened size didn't match input or was too small
-kFNSInsufficientDataErr        =       -29586  #insufficient data for the operation
-kFNSMismatchErr        =       -29585  #reference didn't match or wasn't found in profile
-kFNSDuplicateReferenceErr      =       -29584  #the ref. being added is already in the profile
-kFNSBadProfileVersionErr       =       -29583  #profile version is out of known range
-kFNSInvalidProfileErr  =       -29582  #profile is NULL or otherwise bad
-kFNSBadReferenceVersionErr     =       -29581  #ref. version is out of known range
-kFNSInvalidReferenceErr        =       -29580  #ref. was NULL or otherwise bad
-kCollateInvalidCollationRef    =       -29507  #kCollateInvalidCollationRef
-kCollateBufferTooSmall =       -29506  #kCollateBufferTooSmall
-kCollateInvalidChar    =       -29505  #kCollateInvalidChar
-kCollatePatternNotFoundErr     =       -29504  #kCollatePatternNotFoundErr
-kCollateUnicodeConvertFailedErr        =       -29503  #kCollateUnicodeConvertFailedErr
-kCollateMissingUnicodeTableErr =       -29502  #kCollateMissingUnicodeTableErr
-kCollateInvalidOptions =       -29501  #kCollateInvalidOptions
-kCollateAttributesNotFoundErr  =       -29500  #kCollateAttributesNotFoundErr
-kMPInvalidIDErr        =       -29299  #kMPInvalidIDErr
-kMPInsufficientResourcesErr    =       -29298  #kMPInsufficientResourcesErr
-kMPTaskAbortedErr      =       -29297  #kMPTaskAbortedErr
-kMPTimeoutErr  =       -29296  #kMPTimeoutErr
-kMPDeletedErr  =       -29295  #kMPDeletedErr
-kMPBlueBlockingErr     =       -29293  #kMPBlueBlockingErr
-kMPTaskStoppedErr      =       -29292  #A convention used with MPThrowException.
-kMPTaskBlockedErr      =       -29291  #kMPTaskBlockedErr
-kMPTaskCreatedErr      =       -29290  #kMPTaskCreatedErr
-kMPProcessTerminatedErr        =       -29289  #kMPProcessTerminatedErr
-kMPProcessCreatedErr   =       -29288  #kMPProcessCreatedErr
-kMPPrivilegedErr       =       -29276  #kMPPrivilegedErr
-kMPIterationEndErr     =       -29275  #kMPIterationEndErr
-kUCTextBreakLocatorMissingType =       -25341  #Unicode text break error
-kUCOutputBufferTooSmall        =       -25340  #Output buffer too small for Unicode string result
-errKCCreateChainFailed =       -25318  #errKCCreateChainFailed
-errKCDataNotModifiable =       -25317  #errKCDataNotModifiable
-errKCDataNotAvailable  =       -25316  #errKCDataNotAvailable
-errKCInteractionRequired       =       -25315  #errKCInteractionRequired
-errKCNoPolicyModule    =       -25314  #errKCNoPolicyModule
-errKCNoCertificateModule       =       -25313  #errKCNoCertificateModule
-errKCNoStorageModule   =       -25312  #errKCNoStorageModule
-errKCKeySizeNotAllowed =       -25311  #errKCKeySizeNotAllowed
-errKCWrongKCVersion    =       -25310  #errKCWrongKCVersion
-errKCReadOnlyAttr      =       -25309  #errKCReadOnlyAttr
-errKCInteractionNotAllowed     =       -25308  #errKCInteractionNotAllowed
-errKCNoDefaultKeychain =       -25307  #errKCNoDefaultKeychain
-errKCNoSuchClass       =       -25306  #errKCNoSuchClass
-errKCInvalidSearchRef  =       -25305  #errKCInvalidSearchRef
-errKCInvalidItemRef    =       -25304  #errKCInvalidItemRef
-errKCNoSuchAttr        =       -25303  #errKCNoSuchAttr
-errKCDataTooLarge      =       -25302  #errKCDataTooLarge
-errKCBufferTooSmall    =       -25301  #errKCBufferTooSmall
-errKCItemNotFound      =       -25300  #errKCItemNotFound
-errKCDuplicateItem     =       -25299  #errKCDuplicateItem
-errKCInvalidCallback   =       -25298  #errKCInvalidCallback
-errKCDuplicateCallback =       -25297  #errKCDuplicateCallback
-errKCDuplicateKeychain =       -25296  #errKCDuplicateKeychain
-errKCInvalidKeychain   =       -25295  #errKCInvalidKeychain
-errKCNoSuchKeychain    =       -25294  #errKCNoSuchKeychain
-errKCAuthFailed        =       -25293  #errKCAuthFailed
-errKCReadOnly  =       -25292  #errKCReadOnly
-errKCNotAvailable      =       -25291  #errKCNotAvailable
-printerStatusOpCodeNotSupportedErr     =       -25280  #printerStatusOpCodeNotSupportedErr
-kTXNATSUIIsNotInstalledErr     =       -22016  #kTXNATSUIIsNotInstalledErr
-kTXNDataTypeNotAllowedErr      =       -22015  #kTXNDataTypeNotAllowedErr
-kTXNCopyNotAllowedInEchoModeErr        =       -22014  #kTXNCopyNotAllowedInEchoModeErr
-kTXNCannotTurnTSMOffWhenUsingUnicodeErr        =       -22013  #kTXNCannotTurnTSMOffWhenUsingUnicodeErr
-kTXNAlreadyInitializedErr      =       -22012  #kTXNAlreadyInitializedErr
-kTXNInvalidRunIndex    =       -22011  #kTXNInvalidRunIndex
-kTXNSomeOrAllTagsInvalidForRunErr      =       -22010  #kTXNSomeOrAllTagsInvalidForRunErr
-kTXNAttributeTagInvalidForRunErr       =       -22009  #dataValue is set to this per invalid tag
-kTXNNoMatchErr =       -22008  #kTXNNoMatchErr
-kTXNRunIndexOutofBoundsErr     =       -22007  #kTXNRunIndexOutofBoundsErr
-kTXNCannotSetAutoIndentErr     =       -22006  #kTXNCannotSetAutoIndentErr
-kTXNBadDefaultFileTypeWarning  =       -22005  #kTXNBadDefaultFileTypeWarning
-kTXNUserCanceledOperationErr   =       -22004  #kTXNUserCanceledOperationErr
-kTXNIllegalToCrossDataBoundariesErr    =       -22003  #kTXNIllegalToCrossDataBoundariesErr
-kTXNInvalidFrameIDErr  =       -22002  #kTXNInvalidFrameIDErr
-kTXNCannotAddFrameErr  =       -22001  #kTXNCannotAddFrameErr
-kTXNEndIterationErr    =       -22000  #kTXNEndIterationErr
-invalidIndexErr        =       -20002  #The recordIndex parameter is not valid.
-recordDataTooBigErr    =       -20001  #The record data is bigger than buffer size (1024 bytes).
-unknownInsertModeErr   =       -20000  #There is no such an insert mode.
-kHIDBaseError  =       -13950  #kHIDBaseError
-kHIDNullStateErr       =       -13949  #kHIDNullStateErr
-kHIDBufferTooSmallErr  =       -13948  #kHIDBufferTooSmallErr
-kHIDValueOutOfRangeErr =       -13947  #kHIDValueOutOfRangeErr
-kHIDUsageNotFoundErr   =       -13946  #kHIDUsageNotFoundErr
-kHIDNotValueArrayErr   =       -13945  #kHIDNotValueArrayErr
-kHIDInvalidPreparsedDataErr    =       -13944  #kHIDInvalidPreparsedDataErr
-kHIDIncompatibleReportErr      =       -13943  #kHIDIncompatibleReportErr
-kHIDBadLogPhysValuesErr        =       -13942  #kHIDBadLogPhysValuesErr
-kHIDInvalidReportTypeErr       =       -13941  #kHIDInvalidReportTypeErr
-kHIDInvalidReportLengthErr     =       -13940  #kHIDInvalidReportLengthErr
-kHIDNullPointerErr     =       -13939  #kHIDNullPointerErr
-kHIDBadParameterErr    =       -13938  #kHIDBadParameterErr
-kHIDNotEnoughMemoryErr =       -13937  #kHIDNotEnoughMemoryErr
-kHIDEndOfDescriptorErr =       -13936  #kHIDEndOfDescriptorErr
-kHIDUsagePageZeroErr   =       -13935  #kHIDUsagePageZeroErr
-kHIDBadLogicalMinimumErr       =       -13934  #kHIDBadLogicalMinimumErr
-kHIDBadLogicalMaximumErr       =       -13933  #kHIDBadLogicalMaximumErr
-kHIDInvertedLogicalRangeErr    =       -13932  #kHIDInvertedLogicalRangeErr
-kHIDInvertedPhysicalRangeErr   =       -13931  #kHIDInvertedPhysicalRangeErr
-kHIDUnmatchedUsageRangeErr     =       -13930  #kHIDUnmatchedUsageRangeErr
-kHIDInvertedUsageRangeErr      =       -13929  #kHIDInvertedUsageRangeErr
-kHIDUnmatchedStringRangeErr    =       -13928  #kHIDUnmatchedStringRangeErr
-kHIDUnmatchedDesignatorRangeErr        =       -13927  #kHIDUnmatchedDesignatorRangeErr
-kHIDReportSizeZeroErr  =       -13926  #kHIDReportSizeZeroErr
-kHIDReportCountZeroErr =       -13925  #kHIDReportCountZeroErr
-kHIDReportIDZeroErr    =       -13924  #kHIDReportIDZeroErr
-kHIDInvalidRangePageErr        =       -13923  #kHIDInvalidRangePageErr
-kHIDDeviceNotReady     =       -13910  #The device is still initializing, try again later
-kHIDVersionIncompatibleErr     =       -13909  #kHIDVersionIncompatibleErr
-debuggingNoMatchErr    =       -13887  #debugging component or option not found at this index
-debuggingNoCallbackErr =       -13886  #debugging component has no callback
-debuggingInvalidNameErr        =       -13885  #componentName or optionName is invalid (NULL)
-debuggingInvalidOptionErr      =       -13884  #optionSelectorNum is not registered
-debuggingInvalidSignatureErr   =       -13883  #componentSignature not registered
-debuggingDuplicateOptionErr    =       -13882  #optionSelectorNum already registered
-debuggingDuplicateSignatureErr =       -13881  #componentSignature already registered
-debuggingExecutionContextErr   =       -13880  #routine cannot be called at this time
-kNoSuchPowerSource     =       -13020  #kNoSuchPowerSource
-kProcessorTempRoutineRequiresMPLib2    =       -13014  #kProcessorTempRoutineRequiresMPLib2
-kCantReportProcessorTemperatureErr     =       -13013  #kCantReportProcessorTemperatureErr
-kPowerMgtRequestDenied =       -13010  #kPowerMgtRequestDenied
-kPowerMgtMessageNotHandled     =       -13009  #kPowerMgtMessageNotHandled
-kPowerHandlerNotFoundForProcErr        =       -13008  #kPowerHandlerNotFoundForProcErr
-kPowerHandlerNotFoundForDeviceErr      =       -13007  #kPowerHandlerNotFoundForDeviceErr
-kPowerHandlerExistsForDeviceErr        =       -13006  #kPowerHandlerExistsForDeviceErr
-pmRecvEndErr   =       -13005  #during receive, pmgr did not finish hs configured for this connection
-pmRecvStartErr =       -13004  #during receive, pmgr did not start hs
-pmSendEndErr   =       -13003  #during send, pmgr did not finish hs
-pmSendStartErr =       -13002  #during send, pmgr did not start hs
-pmReplyTOErr   =       -13001  #Timed out waiting for reply
-pmBusyErr      =       -13000  #Power Mgr never ready to start handshake
-pictureDataErr =       -11005  #the picture data was invalid
-colorsRequestedErr     =       -11004  #the number of colors requested was illegal
-cantLoadPickMethodErr  =       -11003  #unable to load the custom pick proc
-pictInfoVerbErr        =       -11002  #the passed verb was invalid
-pictInfoIDErr  =       -11001  #the internal consistancy check for the PictInfoID is wrong
-pictInfoVersionErr     =       -11000  #wrong version of the PictInfo structure
-telNotEnoughdspBW      =       -10116  #not enough real-time for allocation
-telBadSampleRate       =       -10115  #incompatible sample rate
-telBadSWErr    =       -10114  #Software not installed properly
-telDetAlreadyOn        =       -10113  #detection is already turned on
-telAutoAnsNotOn        =       -10112  #autoAnswer in not turned on
-telValidateFailed      =       -10111  #telValidate failed
-telBadProcID   =       -10110  #invalid procID
-telDeviceNotFound      =       -10109  #device not found
-telBadCodeResource     =       -10108  #code resource not found
-telInitFailed  =       -10107  #initialization failed
-telNoCommFolder        =       -10106  #Communications/Extensions \9f not found
-telUnknownErr  =       -10103  #unable to set config
-telNoSuchTool  =       -10102  #unable to find tool with name specified
-telBadFunction =       -10091  #bad msgCode specified
-telPBErr       =       -10090  #parameter block error, bad format
-telCANotDeflectable    =       -10082  #CA not "deflectable"
-telCANotRejectable     =       -10081  #CA not "rejectable"
-telCANotAcceptable     =       -10080  #CA not "acceptable"
-telTermNotOpen =       -10072  #terminal not opened via TELOpenTerm
-telStillNeeded =       -10071  #terminal driver still needed by someone else
-telAlreadyOpen =       -10070  #terminal already open
-telNoCallbackRef       =       -10064  #no call back reference was specified, but is required
-telDisplayModeNotSupp  =       -10063  #display mode not supported by tool
-telBadDisplayMode      =       -10062  #bad display mode specified
-telFwdTypeNotSupp      =       -10061  #forward type not supported by tool
-telDNTypeNotSupp       =       -10060  #DN type not supported by tool
-telBadRate     =       -10059  #bad rate specified
-telBadBearerType       =       -10058  #bad bearerType specified
-telBadSelect   =       -10057  #unable to select or deselect DN
-telBadParkID   =       -10056  #bad park id specified
-telBadPickupGroupID    =       -10055  #bad pickup group ID specified
-telBadFwdType  =       -10054  #bad fwdType specified
-telBadFeatureID        =       -10053  #bad feature ID specified
-telBadIntercomID       =       -10052  #bad intercom ID specified
-telBadPageID   =       -10051  #bad page ID specified
-telBadDNType   =       -10050  #DN type invalid
-telConfLimitExceeded   =       -10047  #attempt to exceed switch conference limits
-telCBErr       =       -10046  #call back feature not set previously
-telTransferRej =       -10045  #transfer request rejected
-telTransferErr =       -10044  #transfer not prepared
-telConfRej     =       -10043  #conference request was rejected
-telConfErr     =       -10042  #conference was not prepared
-telConfNoLimit =       -10041  #no limit was specified but required
-telConfLimitErr        =       -10040  #limit specified is too high for this configuration
-telFeatNotSupp =       -10033  #feature program call not supported by this tool
-telFeatActive  =       -10032  #feature already active
-telFeatNotAvail        =       -10031  #feature subscribed but not available
-telFeatNotSub  =       -10030  #feature not subscribed
-errAEPropertiesClash   =       -10025  #illegal combination of properties settings for Set Data, make new, or duplicate
-errAECantPutThatThere  =       -10024  #in make new, duplicate, etc. class can't be an element of container
-errAENotAnEnumMember   =       -10023  #enumerated value in SetData is not allowed for this property
-telIntExtNotSupp       =       -10022  #internal external type not supported by this tool
-telBadIntExt   =       -10021  #bad internal external error
-telStateNotSupp        =       -10020  #device state not supported by tool
-telBadStateErr =       -10019  #bad device state specified
-telIndexNotSupp        =       -10018  #index not supported by this tool
-telBadIndex    =       -10017  #bad index specified
-telAPattNotSupp        =       -10016  #alerting pattern not supported by tool
-telBadAPattErr =       -10015  #bad alerting pattern specified
-telVTypeNotSupp        =       -10014  #volume type not supported by this tool
-telBadVTypeErr =       -10013  #bad volume type error
-telBadLevelErr =       -10012  #bad volume level setting
-telHTypeNotSupp        =       -10011  #hook type not supported by this tool
-telBadHTypeErr =       -10010  #bad hook type specified
-errAECantSupplyType    =       -10009  #errAECantSupplyType
-telNoOpenErr   =       -10008  #unable to open terminal
-telNoMemErr    =       -10007  #no memory to allocate handle
-errOSACantAssign       =       -10006  #Signaled when an object cannot be set in a container.
-telBadProcErr  =       -10005  #bad msgProc specified
-telBadHandErr  =       -10004  #bad handle specified
-OSAIllegalAssign       =       -10003  #Signaled when an object can never be set in a container
-telBadDNErr    =       -10002  #TELDNHandle not found or invalid
-telBadTermErr  =       -10001  #invalid TELHandle or handle not found
-errAEEventFailed       =       -10000  #errAEEventFailed
-cannotMoveAttachedController   =       -9999   #cannotMoveAttachedController
-controllerHasFixedHeight       =       -9998   #controllerHasFixedHeight
-cannotSetWidthOfAttachedController     =       -9997   #cannotSetWidthOfAttachedController
-controllerBoundsNotExact       =       -9996   #controllerBoundsNotExact
-editingNotAllowed      =       -9995   #editingNotAllowed
-badControllerHeight    =       -9994   #badControllerHeight
-deviceCantMeetRequest  =       -9408   #deviceCantMeetRequest
-seqGrabInfoNotAvailable        =       -9407   #seqGrabInfoNotAvailable
-badSGChannel   =       -9406   #badSGChannel
-couldntGetRequiredComponent    =       -9405   #couldntGetRequiredComponent
-notEnoughDiskSpaceToGrab       =       -9404   #notEnoughDiskSpaceToGrab
-notEnoughMemoryToGrab  =       -9403   #notEnoughMemoryToGrab
-cantDoThatInCurrentMode        =       -9402   #cantDoThatInCurrentMode
-grabTimeComplete       =       -9401   #grabTimeComplete
-noDeviceForChannel     =       -9400   #noDeviceForChannel
-kNoCardBusCISErr       =       -9109   #No valid CIS exists for this CardBus card
-kNotZVCapableErr       =       -9108   #This socket does not support Zoomed Video
-kCardPowerOffErr       =       -9107   #Power to the card has been turned off
-kAttemptDupCardEntryErr        =       -9106   #The Enabler was asked to create a duplicate card entry
-kAlreadySavedStateErr  =       -9105   #The state has been saved on previous call
-kTooManyIOWindowsErr   =       -9104   #device requested more than one I/O window
-kNotReadyErr   =       -9103   #PC Card failed to go ready
-kClientRequestDenied   =       -9102   #CS Clients should return this code inorder to
-kNoCompatibleNameErr   =       -9101   #There is no compatible driver name for this device
-kNoEnablerForCardErr   =       -9100   #No Enablers were found that can support the card
-kNoCardEnablersFoundErr        =       -9099   #No Enablers were found
-kUnsupportedCardErr    =       -9098   #Card not supported by generic enabler
-kNoClientTableErr      =       -9097   #The client table has not be initialized yet
-kNoMoreInterruptSlotsErr       =       -9096   #All internal Interrupt slots are in use
-kNoMoreTimerClientsErr =       -9095   #All timer callbacks are in use
-kNoIOWindowRequestedErr        =       -9094   #Request I/O window before calling configuration
-kBadCustomIFIDErr      =       -9093   #Custom interface ID is invalid
-kBadTupleDataErr       =       -9092   #Data in tuple is invalid
-kInvalidCSClientErr    =       -9091   #Card Services ClientID is not registered
-kUnsupportedVsErr      =       -9090   #Unsupported Voltage Sense
-kInvalidDeviceNumber   =       -9089   #kInvalidDeviceNumber
-kPostCardEventErr      =       -9088   #_PCCSLPostCardEvent failed and dropped an event
-kCantConfigureCardErr  =       -9087   #kCantConfigureCardErr
-kPassCallToChainErr    =       -9086   #kPassCallToChainErr
-kCardBusCardErr        =       -9085   #kCardBusCardErr
-k16BitCardErr  =       -9084   #k16BitCardErr
-kBadDeviceErr  =       -9083   #kBadDeviceErr
-kBadLinkErr    =       -9082   #kBadLinkErr
-kInvalidRegEntryErr    =       -9081   #kInvalidRegEntryErr
-kNoCardSevicesSocketsErr       =       -9080   #kNoCardSevicesSocketsErr
-kOutOfResourceErr      =       -9079   #Card Services has exhausted the resource
-kNoMoreItemsErr        =       -9078   #there are no more of the requested item
-kInUseErr      =       -9077   #requested resource is being used by a client
-kConfigurationLockedErr        =       -9076   #a configuration has already been locked
-kWriteProtectedErr     =       -9075   #media is write-protected
-kBusyErr       =       -9074   #unable to process request at this time - try later
-kUnsupportedModeErr    =       -9073   #mode is not supported
-kUnsupportedFunctionErr        =       -9072   #function is not supported by this implementation
-kNoCardErr     =       -9071   #no PC card in the socket
-kGeneralFailureErr     =       -9070   #an undefined error has occurred
-kWriteFailureErr       =       -9069   #unable to complete write request
-kReadFailureErr        =       -9068   #unable to complete read request
-kBadSpeedErr   =       -9067   #specified speed is unavailable
-kBadCISErr     =       -9066   #CIS on card is invalid
-kBadHandleErr  =       -9065   #clientHandle is invalid
-kBadArgsErr    =       -9064   #values in argument packet are invalid
-kBadArgLengthErr       =       -9063   #ArgLength argument is invalid
-kBadWindowErr  =       -9062   #specified window is invalid
-kBadVppErr     =       -9061   #specified Vpp1 or Vpp2 power level index is invalid
-kBadVccErr     =       -9060   #specified Vcc power level index is invalid
-kBadTypeErr    =       -9059   #specified window or interface type is invalid
-kBadSocketErr  =       -9058   #specified logical or physical socket number is invalid
-kBadSizeErr    =       -9057   #specified size is invalid
-kBadPageErr    =       -9056   #specified page is invalid
-kBadOffsetErr  =       -9055   #specified PC card memory array offset is invalid
-kBadIRQErr     =       -9054   #specified IRQ level is invalid
-kBadEDCErr     =       -9053   #specified EDC generator specified is invalid
-kBadBaseErr    =       -9052   #specified base system memory address is invalid
-kBadAttributeErr       =       -9051   #specified attributes field value is invalid
-kBadAdapterErr =       -9050   #invalid adapter number
-codecOffscreenFailedPleaseRetryErr     =       -8992   #codecOffscreenFailedPleaseRetryErr
-lockPortBitsWrongGDeviceErr    =       -8991   #lockPortBitsWrongGDeviceErr
-directXObjectAlreadyExists     =       -8990   #directXObjectAlreadyExists
-codecDroppedFrameErr   =       -8989   #returned from ImageCodecDrawBand
-codecOffscreenFailedErr        =       -8988   #codecOffscreenFailedErr
-codecNeedAccessKeyErr  =       -8987   #codec needs password in order to decompress
-codecParameterDialogConfirm    =       -8986   #codecParameterDialogConfirm
-lockPortBitsSurfaceLostErr     =       -8985   #lockPortBitsSurfaceLostErr
-lockPortBitsBadPortErr =       -8984   #lockPortBitsBadPortErr
-lockPortBitsWindowClippedErr   =       -8983   #lockPortBitsWindowClippedErr
-lockPortBitsWindowResizedErr   =       -8982   #lockPortBitsWindowResizedErr
-lockPortBitsWindowMovedErr     =       -8981   #lockPortBitsWindowMovedErr
-lockPortBitsBadSurfaceErr      =       -8980   #lockPortBitsBadSurfaceErr
-codecNeedToFlushChainErr       =       -8979   #codecNeedToFlushChainErr
-codecDisabledErr       =       -8978   #codec disabled itself -- pass codecFlagReenable to reset
-codecNoMemoryPleaseWaitErr     =       -8977   #codecNoMemoryPleaseWaitErr
-codecNothingToBlitErr  =       -8976   #codecNothingToBlitErr
-codecCantQueueErr      =       -8975   #codecCantQueueErr
-codecCantWhenErr       =       -8974   #codecCantWhenErr
-codecOpenErr   =       -8973   #codecOpenErr
-codecConditionErr      =       -8972   #codecConditionErr
-codecExtensionNotFoundErr      =       -8971   #codecExtensionNotFoundErr
-codecDataVersErr       =       -8970   #codecDataVersErr
-codecBadDataErr        =       -8969   #codecBadDataErr
-codecWouldOffscreenErr =       -8968   #codecWouldOffscreenErr
-codecAbortErr  =       -8967   #codecAbortErr
-codecSpoolErr  =       -8966   #codecSpoolErr
-codecImageBufErr       =       -8965   #codecImageBufErr
-codecScreenBufErr      =       -8964   #codecScreenBufErr
-codecSizeErr   =       -8963   #codecSizeErr
-codecUnimpErr  =       -8962   #codecUnimpErr
-noCodecErr     =       -8961   #noCodecErr
-codecErr       =       -8960   #codecErr
-kIllegalClockValueErr  =       -8852   #kIllegalClockValueErr
-kUTCOverflowErr        =       -8851   #kUTCOverflowErr
-kUTCUnderflowErr       =       -8850   #kUTCUnderflowErr
-kATSULastErr   =       -8809   #The last ATSUI error code.
-kATSULineBreakInWord   =       -8808   #This is not an error code but is returned by ATSUBreakLine to
-kATSUCoordinateOverflowErr     =       -8807   #Used to indicate the coordinates provided to an ATSUI routine caused
-kATSUNoFontScalerAvailableErr  =       -8806   #Used when no font scaler is available for the font passed
-kATSUNoFontCmapAvailableErr    =       -8805   #Used when no CMAP table can be accessed or synthesized for the
-kATSULowLevelErr       =       -8804   #Used when an error was encountered within the low level ATS
-kATSUQuickDrawTextErr  =       -8803   #Used when QuickDraw Text encounters an error rendering or measuring
-kATSUNoStyleRunsAssignedErr    =       -8802   #Used when an attempt was made to measure, highlight or draw
-kATSUNotSetErr =       -8801   #Used when the client attempts to retrieve an attribute,
-kATSUInvalidCacheErr   =       -8800   #Used when an attempt was made to read in style data
-kATSUInvalidAttributeTagErr    =       -8799   #Used when an attempt was made to use a tag value that
-kATSUInvalidAttributeSizeErr   =       -8798   #Used when an attempt was made to use an attribute with a
-kATSUInvalidAttributeValueErr  =       -8797   #Used when an attempt was made to use an attribute with
-kATSUInvalidFontErr    =       -8796   #Used when an attempt was made to use an invalid font ID.
-kATSUNoCorrespondingFontErr    =       -8795   #This value is retrned by font ID conversion
-kATSUFontsNotMatched   =       -8794   #This value is returned by ATSUMatchFontsToText()
-kATSUFontsMatched      =       -8793   #This is not an error code but is returned by
-kATSUInvalidTextRangeErr       =       -8792   #An attempt was made to extract information
-kATSUInvalidStyleErr   =       -8791   #An attempt was made to use a ATSUStyle which
-kATSUInvalidTextLayoutErr      =       -8790   #An attempt was made to use a ATSUTextLayout
-kTECOutputBufferFullStatus     =       -8785   #output buffer has no room for conversion of next input text element (partial conversion)
-kTECNeedFlushStatus    =       -8784   #kTECNeedFlushStatus
-kTECUsedFallbacksStatus        =       -8783   #kTECUsedFallbacksStatus
-kTECItemUnavailableErr =       -8771   #item (e.g. name) not available for specified region (& encoding if relevant)
-kTECGlobalsUnavailableErr      =       -8770   #globals have already been deallocated (premature TERM)
-unicodeChecksumErr     =       -8769   #unicodeChecksumErr
-unicodeNoTableErr      =       -8768   #unicodeNoTableErr
-unicodeVariantErr      =       -8767   #unicodeVariantErr
-unicodeFallbacksErr    =       -8766   #unicodeFallbacksErr
-unicodePartConvertErr  =       -8765   #unicodePartConvertErr
-unicodeBufErr  =       -8764   #unicodeBufErr
-unicodeCharErr =       -8763   #unicodeCharErr
-unicodeElementErr      =       -8762   #unicodeElementErr
-unicodeNotFoundErr     =       -8761   #unicodeNotFoundErr
-unicodeTableFormatErr  =       -8760   #unicodeTableFormatErr
-unicodeDirectionErr    =       -8759   #unicodeDirectionErr
-unicodeContextualErr   =       -8758   #unicodeContextualErr
-unicodeTextEncodingDataErr     =       -8757   #unicodeTextEncodingDataErr
-kTECDirectionErr       =       -8756   #direction stack overflow, etc.
-kTECIncompleteElementErr       =       -8755   #text element may be incomplete or is too long for internal buffers
-kTECUnmappableElementErr       =       -8754   #kTECUnmappableElementErr
-kTECPartialCharErr     =       -8753   #input buffer ends in the middle of a multibyte character, conversion stopped
-kTECBadTextRunErr      =       -8752   #kTECBadTextRunErr
-kTECArrayFullErr       =       -8751   #supplied name buffer or TextRun, TextEncoding, or UnicodeMapping array is too small
-kTECBufferBelowMinimumSizeErr  =       -8750   #output buffer too small to allow processing of first input text element
-kTECNoConversionPathErr        =       -8749   #kTECNoConversionPathErr
-kTECCorruptConverterErr        =       -8748   #invalid converter object reference
-kTECTableFormatErr     =       -8747   #kTECTableFormatErr
-kTECTableChecksumErr   =       -8746   #kTECTableChecksumErr
-kTECMissingTableErr    =       -8745   #kTECMissingTableErr
-kTextUndefinedElementErr       =       -8740   #text conversion errors
-kTextMalformedInputErr =       -8739   #in DBCS, for example, high byte followed by invalid low byte
-kTextUnsupportedEncodingErr    =       -8738   #specified encoding not supported for this operation
-dcmBufferOverflowErr   =       -7127   #data is larger than buffer size
-dcmIterationCompleteErr        =       -7126   #no more item in iterator
-dcmBadFeatureErr       =       -7124   #invalid AccessMethod feature
-dcmNoAccessMethodErr   =       -7122   #no such AccessMethod
-dcmProtectedErr        =       -7121   #need keyword to use dictionary
-dcmBadPropertyErr      =       -7119   #no such property exist
-dcmBadFindMethodErr    =       -7118   #no such find method supported
-dcmBadDataSizeErr      =       -7117   #too big data size
-dcmTooManyKeyErr       =       -7116   #too many key field
-dcmBadKeyErr   =       -7115   #bad key information
-dcmNoFieldErr  =       -7113   #no such field exist
-dcmBadFieldTypeErr     =       -7112   #no such field type supported
-dcmBadFieldInfoErr     =       -7111   #incomplete information
-dcmNecessaryFieldErr   =       -7110   #lack required/identify field
-dcmDupRecordErr        =       -7109   #same record already exist
-dcmNoRecordErr =       -7108   #no such record
-dcmBlockFullErr        =       -7107   #dictionary block full
-dcmDictionaryBusyErr   =       -7105   #dictionary is busy
-dcmDictionaryNotOpenErr        =       -7104   #dictionary not opened
-dcmPermissionErr       =       -7103   #invalid permission
-dcmBadDictionaryErr    =       -7102   #invalid dictionary
-dcmNotDictionaryErr    =       -7101   #not dictionary
-dcmParamErr    =       -7100   #bad parameter
-laEngineNotFoundErr    =       -7000   #can't find the engine
-laPropertyErr  =       -6999   #Error in properties
-kUSBUnknownDeviceErr   =       -6998   #device ref not recognised
-laPropertyIsReadOnlyErr        =       -6997   #the property is read only
-laPropertyUnknownErr   =       -6996   #the property is unknown to this environment
-laPropertyValueErr     =       -6995   #Invalid property value
-laDictionaryTooManyErr =       -6994   #too many dictionaries
-laDictionaryUnknownErr =       -6993   #can't use this dictionary with this environment
-laDictionaryNotOpenedErr       =       -6992   #the dictionary is not opened
-laTextOverFlowErr      =       -6991   #text is too long
-laFailAnalysisErr      =       -6990   #analysis failed
-laNoMoreMorphemeErr    =       -6989   #nothing to read
-laInvalidPathErr       =       -6988   #path is not correct
-kUSBNotHandled =       -6987   #Notification was not handled   (same as NotFound)
-laEnvironmentNotFoundErr       =       -6986   #can't fint the specified environment
-laEnvironmentBusyErr   =       -6985   #specified environment is used
-laTooSmallBufferErr    =       -6984   #output buffer is too small to store any result
-kUSBFlagsError =       -6983   #Unused flags not zeroed
-kUSBAbortedError       =       -6982   #Pipe aborted
-kUSBNoBandwidthError   =       -6981   #Not enough bandwidth available
-kUSBPipeIdleError      =       -6980   #Pipe is Idle, it will not accept transactions
-kUSBPipeStalledError   =       -6979   #Pipe has stalled, error needs to be cleared
-kUSBUnknownInterfaceErr        =       -6978   #Interface ref not recognised
-kUSBDeviceBusy =       -6977   #Device is already being configured
-kUSBDevicePowerProblem =       -6976   #Device has a power problem
-kUSBInvalidBuffer      =       -6975   #bad buffer, usually nil
-kUSBDeviceSuspended    =       -6974   #Device is suspended
-kUSBDeviceNotSuspended =       -6973   #device is not suspended for resume
-kUSBDeviceDisconnected =       -6972   #Disconnected during suspend or reset
-kUSBTimedOut   =       -6971   #Transaction timed out.
-kUSBQueueAborted       =       -6970   #Pipe zero stall cleared.
-kUSBPortDisabled       =       -6969   #The port you are attached to is disabled, use USBDeviceReset.
-kUSBBadDispatchTable   =       -6950   #Improper driver dispatch table
-kUSBUnknownNotification        =       -6949   #Notification type not defined
-kUSBQueueFull  =       -6948   #Internal queue maxxed
-kUSBLinkErr    =       -6916   #kUSBLinkErr
-kUSBCRCErr     =       -6915   #Pipe stall, bad CRC
-kUSBBitstufErr =       -6914   #Pipe stall, bitstuffing
-kUSBDataToggleErr      =       -6913   #Pipe stall, Bad data toggle
-kUSBEndpointStallErr   =       -6912   #Device didn't understand
-kUSBNotRespondingErr   =       -6911   #Pipe stall, No device, device hung
-kUSBPIDCheckErr        =       -6910   #Pipe stall, PID CRC error
-kUSBWrongPIDErr        =       -6909   #Pipe stall, Bad or wrong PID
-kUSBOverRunErr =       -6908   #Packet too large or more data than buffer
-kUSBUnderRunErr        =       -6907   #Less data than buffer
-kUSBRes1Err    =       -6906   #kUSBRes1Err
-kUSBRes2Err    =       -6905   #kUSBRes2Err
-kUSBBufOvrRunErr       =       -6904   #Host hardware failure on data in, PCI busy?
-kUSBBufUnderRunErr     =       -6903   #Host hardware failure on data out, PCI busy?
-kUSBNotSent1Err        =       -6902   #Transaction not sent
-kUSBNotSent2Err        =       -6901   #Transaction not sent
-kDMFoundErr    =       -6232   #Did not proceed because we found an item
-kDMMainDisplayCannotMoveErr    =       -6231   #Trying to move main display (or a display mirrored to it)
-kDMDisplayAlreadyInstalledErr  =       -6230   #Attempt to add an already installed display.
-kDMDisplayNotFoundErr  =       -6229   #Could not find item (will someday remove).
-kDMDriverNotDisplayMgrAwareErr =       -6228   #Video Driver does not support display manager.
-kDMSWNotInitializedErr =       -6227   #Required software not initialized (eg windowmanager or display mgr).
-kSysSWTooOld   =       -6226   #Missing critical pieces of System Software.
-kDMMirroringNotOn      =       -6225   #Returned by all calls that need mirroring to be on to do their thing.
-kDMCantBlock   =       -6224   #Mirroring is already on, can¹t Block now (call DMUnMirror() first).
-kDMMirroringBlocked    =       -6223   #DMBlockMirroring() has been called.
-kDMWrongNumberOfDisplays       =       -6222   #Can only handle 2 displays for now.
-kDMMirroringOnAlready  =       -6221   #Returned by all calls that need mirroring to be off to do their thing.
-kDMGenErr      =       -6220   #Unexpected Error
-kQTSSUnknownErr        =       -6150   #kQTSSUnknownErr
-collectionVersionErr   =       -5753   #collectionVersionErr
-collectionIndexRangeErr        =       -5752   #collectionIndexRangeErr
-collectionItemNotFoundErr      =       -5751   #collectionItemNotFoundErr
-collectionItemLockedErr        =       -5750   #collectionItemLockedErr
-kNavMissingKindStringErr       =       -5699   #kNavMissingKindStringErr
-kNavInvalidCustomControlMessageErr     =       -5698   #kNavInvalidCustomControlMessageErr
-kNavCustomControlMessageFailedErr      =       -5697   #kNavCustomControlMessageFailedErr
-kNavInvalidSystemConfigErr     =       -5696   #kNavInvalidSystemConfigErr
-dialogNoTimeoutErr     =       -5640   #dialogNoTimeoutErr
-menuInvalidErr =       -5623   #menu is invalid
-menuItemNotFoundErr    =       -5622   #specified menu item wasn't found
-menuUsesSystemDefErr   =       -5621   #GetMenuDefinition failed because the menu uses the system MDEF
-menuNotFoundErr        =       -5620   #specified menu or menu ID wasn't found
-errWindowNotFound      =       -5610   #returned from FindWindowOfClass
-errFloatingWindowsNotInitialized       =       -5609   #called HideFloatingWindows or ShowFloatingWindows without calling InitFloatingWindows
-errWindowsAlreadyInitialized   =       -5608   #tried to call InitFloatingWindows twice, or called InitWindows and then floating windows
-errUserWantsToDragWindow       =       -5607   #if returned from TrackWindowProxyDrag, you should call DragWindow on the window
-errCorruptWindowDescription    =       -5606   #tried to load a corrupt window description (size or version fields incorrect)
-errUnrecognizedWindowClass     =       -5605   #tried to create a window with a bad WindowClass
-errWindowPropertyNotFound      =       -5604   #tried to get a nonexistent property
-errInvalidWindowProperty       =       -5603   #tried to access a property tag with private creator
-errWindowDoesNotHaveProxy      =       -5602   #tried to do something requiring a proxy to a window which doesn¹t have a proxy
-errUnsupportedWindowAttributesForClass =       -5601   #tried to create a window with WindowAttributes not supported by the WindowClass
-errInvalidWindowPtr    =       -5600   #tried to pass a bad WindowRef argument
-gestaltLocationErr     =       -5553   #gestalt function ptr wasn't in sysheap
-gestaltDupSelectorErr  =       -5552   #tried to add an entry that already existed
-gestaltUndefSelectorErr        =       -5551   #undefined selector was passed to Gestalt
-gestaltUnknownErr      =       -5550   #value returned if Gestalt doesn't know the answer
-envVersTooBig  =       -5502   #Version bigger than call can handle
-envBadVers     =       -5501   #Version non-positive
-envNotPresent  =       -5500   #returned by glue.
-qtsAddressBusyErr      =       -5421   #qtsAddressBusyErr
-qtsConnectionFailedErr =       -5420   #qtsConnectionFailedErr
-qtsTimeoutErr  =       -5408   #qtsTimeoutErr
-qtsUnknownValueErr     =       -5407   #qtsUnknownValueErr
-qtsTooMuchDataErr      =       -5406   #qtsTooMuchDataErr
-qtsUnsupportedFeatureErr       =       -5405   #qtsUnsupportedFeatureErr
-qtsUnsupportedRateErr  =       -5404   #qtsUnsupportedRateErr
-qtsUnsupportedDataTypeErr      =       -5403   #qtsUnsupportedDataTypeErr
-qtsBadDataErr  =       -5402   #something is wrong with the data
-qtsBadStateErr =       -5401   #qtsBadStateErr
-qtsBadSelectorErr      =       -5400   #qtsBadSelectorErr
-errIAEndOfTextRun      =       -5388   #errIAEndOfTextRun
-errIATextExtractionErr =       -5387   #errIATextExtractionErr
-errIAInvalidDocument   =       -5386   #errIAInvalidDocument
-errIACanceled  =       -5385   #errIACanceled
-errIABufferTooSmall    =       -5384   #errIABufferTooSmall
-errIANoMoreItems       =       -5383   #errIANoMoreItems
-errIAParamErr  =       -5382   #errIAParamErr
-errIAAllocationErr     =       -5381   #errIAAllocationErr
-errIAUnknownErr        =       -5380   #errIAUnknownErr
-hrUnableToResizeHandleErr      =       -5362   #hrUnableToResizeHandleErr
-hrMiscellaneousExceptionErr    =       -5361   #hrMiscellaneousExceptionErr
-hrHTMLRenderingLibNotInstalledErr      =       -5360   #hrHTMLRenderingLibNotInstalledErr
-errCannotUndo  =       -5253   #errCannotUndo
-errNonContiuousAttribute       =       -5252   #errNonContiuousAttribute
-errUnknownElement      =       -5251   #errUnknownElement
-errReadOnlyText        =       -5250   #errReadOnlyText
-errEmptyScrap  =       -5249   #errEmptyScrap
-errNoHiliteText        =       -5248   #errNoHiliteText
-errOffsetNotOnElementBounday   =       -5247   #errOffsetNotOnElementBounday
-errInvalidRange        =       -5246   #errInvalidRange
-errIteratorReachedEnd  =       -5245   #errIteratorReachedEnd
-errEngineNotFound      =       -5244   #errEngineNotFound
-errAlreadyInImagingMode        =       -5243   #errAlreadyInImagingMode
-errNotInImagingMode    =       -5242   #errNotInImagingMode
-errMarginWilllNotFit   =       -5241   #errMarginWilllNotFit
-errUnknownAttributeTag =       -5240   #errUnknownAttributeTag
-afpSameNodeErr =       -5063   #An Attempt was made to connect to a file server running on the same machine
-afpAlreadyMounted      =       -5062   #The volume is already mounted
-afpCantMountMoreSrvre  =       -5061   #The Maximum number of server connections has been reached
-afpBadDirIDType        =       -5060   #afpBadDirIDType
-afpCallNotAllowed      =       -5048   #The server knows what you wanted to do, but won't let you do it just now
-afpAlreadyLoggedInErr  =       -5047   #User has been authenticated but is already logged in from another machine (and that's not allowed on this server)
-afpPwdPolicyErr        =       -5046   #Password does not conform to servers password policy
-afpPwdNeedsChangeErr   =       -5045   #The password needs to be changed
-afpInsideTrashErr      =       -5044   #The folder being shared is inside the trash folder OR the shared folder is being moved into the trash folder
-afpInsideSharedErr     =       -5043   #The folder being shared is inside a shared folder OR the folder contains a shared folder and is being moved into a shared folder
-afpPwdExpiredErr       =       -5042   #The password being used is too old: this requires the user to change the password before log-in can continue
-afpPwdTooShortErr      =       -5041   #The password being set is too short: there is a minimum length that must be met or exceeded
-afpPwdSameErr  =       -5040   #Someone tried to change their password to the same password on a mantadory password change
-afpBadIDErr    =       -5039   #afpBadIDErr
-afpSameObjectErr       =       -5038   #afpSameObjectErr
-afpCatalogChanged      =       -5037   #afpCatalogChanged
-afpDiffVolErr  =       -5036   #afpDiffVolErr
-afpIDExists    =       -5035   #afpIDExists
-afpIDNotFound  =       -5034   #afpIDNotFound
-afpContainsSharedErr   =       -5033   #the folder being shared contains a shared folder
-afpObjectLocked        =       -5032   #Object is M/R/D/W inhibited
-afpVolLocked   =       -5031   #Volume is Read-Only
-afpIconTypeError       =       -5030   #Icon size specified different from existing icon size
-afpDirNotFound =       -5029   #Unknown directory specified
-afpCantRename  =       -5028   #AFPRename cannot rename volume
-afpServerGoingDown     =       -5027   #Server is shutting down
-afpTooManyFilesOpen    =       -5026   #Maximum open file count reached
-afpObjectTypeErr       =       -5025   #File/Directory specified where Directory/File expected
-afpCallNotSupported    =       -5024   #Unsupported AFP call was made
-afpUserNotAuth =       -5023   #No AFPLogin call has successfully been made for this session
-afpSessClosed  =       -5022   #Session closed
-afpRangeOverlap        =       -5021   #Some or all of range already locked by same user
-afpRangeNotLocked      =       -5020   #Tried to unlock range that was not locked by user
-afpParmErr     =       -5019   #A specified parameter was out of allowable range
-afpObjectNotFound      =       -5018   #Specified file or directory does not exist
-afpObjectExists        =       -5017   #Specified destination file or directory already exists
-afpNoServer    =       -5016   #Server not responding
-afpNoMoreLocks =       -5015   #Maximum lock limit reached
-afpMiscErr     =       -5014   #Unexpected error encountered during execution
-afpLockErr     =       -5013   #Some or all of requested range is locked by another user
-afpItemNotFound        =       -5012   #Unknown UserName/UserID or missing comment/APPL entry
-afpFlatVol     =       -5011   #Cannot create directory on specified volume
-afpFileBusy    =       -5010   #Cannot delete an open file
-afpEofError    =       -5009   #Read beyond logical end-of-file
-afpDiskFull    =       -5008   #Insufficient free space on volume for operation
-afpDirNotEmpty =       -5007   #Cannot delete non-empty directory
-afpDenyConflict        =       -5006   #Specified open/deny modes conflict with current open modes
-afpCantMove    =       -5005   #Move destination is offspring of source, or root was specified
-afpBitmapErr   =       -5004   #Bitmap contained bits undefined for call
-afpBadVersNum  =       -5003   #Unknown AFP protocol version number specified
-afpBadUAM      =       -5002   #Unknown user authentication method specified
-afpAuthContinue        =       -5001   #Further information required to complete AFPLogin call
-afpAccessDenied        =       -5000   #Insufficient access privileges for operation
-illegalScrapFlavorSizeErr      =       -4999   #illegalScrapFlavorSizeErr
-illegalScrapFlavorTypeErr      =       -4998   #illegalScrapFlavorTypeErr
-illegalScrapFlavorFlagsErr     =       -4997   #illegalScrapFlavorFlagsErr
-scrapFlavorSizeMismatchErr     =       -4996   #scrapFlavorSizeMismatchErr
-scrapFlavorFlagsMismatchErr    =       -4995   #scrapFlavorFlagsMismatchErr
-nilScrapFlavorDataErr  =       -4994   #nilScrapFlavorDataErr
-noScrapPromiseKeeperErr        =       -4993   #noScrapPromiseKeeperErr
-scrapPromiseNotKeptErr =       -4992   #scrapPromiseNotKeptErr
-processStateIncorrectErr       =       -4991   #processStateIncorrectErr
-badScrapRefErr =       -4990   #badScrapRefErr
-duplicateScrapFlavorErr        =       -4989   #duplicateScrapFlavorErr
-internalScrapErr       =       -4988   #internalScrapErr
-coreFoundationUnknownErr       =       -4960   #coreFoundationUnknownErr
-badRoutingSizeErr      =       -4276   #badRoutingSizeErr
-routingNotFoundErr     =       -4275   #routingNotFoundErr
-duplicateRoutingErr    =       -4274   #duplicateRoutingErr
-invalidFolderTypeErr   =       -4273   #invalidFolderTypeErr
-noMoreFolderDescErr    =       -4272   #noMoreFolderDescErr
-duplicateFolderDescErr =       -4271   #duplicateFolderDescErr
-badFolderDescErr       =       -4270   #badFolderDescErr
-cmCantGamutCheckError  =       -4217   #Gammut checking not supported by this ColorWorld
-cmNamedColorNotFound   =       -4216   #NamedColor not found
-cmCantCopyModifiedV1Profile    =       -4215   #Illegal to copy version 1 profiles that have been modified
-cmRangeOverFlow        =       -4214   #Color conversion warning that some output color values over/underflowed and were clipped
-cmInvalidProfileComment        =       -4213   #Bad Profile comment during drawpicture
-cmNoGDevicesError      =       -4212   #Begin/End Matching -- no gdevices available
-cmInvalidDstMap        =       -4211   #Destination pix/bit map was invalid
-cmInvalidSrcMap        =       -4210   #Source pix/bit map was invalid
-cmInvalidColorSpace    =       -4209   #Profile colorspace does not match bitmap type
-cmErrIncompatibleProfile       =       -4208   #Other ColorSync Errors
-cmSearchError  =       -4207   #cmSearchError
-cmInvalidSearch        =       -4206   #Bad Search Handle
-cmInvalidProfileLocation       =       -4205   #Operation not supported for this profile location
-cmInvalidProfile       =       -4204   #A Profile must contain a 'cs1 ' tag to be valid
-cmFatalProfileErr      =       -4203   #cmFatalProfileErr
-cmCantDeleteElement    =       -4202   #cmCantDeleteElement
-cmIndexRangeErr        =       -4201   #Tag index out of range
-kNSLInitializationFailed       =       -4200   #UNABLE TO INITIALIZE THE MANAGER!!!!! DO NOT CONTINUE!!!!
-kNSLNotInitialized     =       -4199   #kNSLNotInitialized
-kNSLInsufficientSysVer =       -4198   #kNSLInsufficientSysVer
-kNSLInsufficientOTVer  =       -4197   #kNSLInsufficientOTVer
-kNSLNoElementsInList   =       -4196   #kNSLNoElementsInList
-kNSLBadReferenceErr    =       -4195   #kNSLBadReferenceErr
-kNSLBadServiceTypeErr  =       -4194   #kNSLBadServiceTypeErr
-kNSLBadDataTypeErr     =       -4193   #kNSLBadDataTypeErr
-kNSLBadNetConnection   =       -4192   #kNSLBadNetConnection
-kNSLNoSupportForService        =       -4191   #kNSLNoSupportForService
-kNSLInvalidPluginSpec  =       -4190   #kNSLInvalidPluginSpec
-kNSLRequestBufferAlreadyInList =       -4189   #kNSLRequestBufferAlreadyInList
-kNSLNoContextAvailable =       -4188   #(ContinueLookup function ptr invalid)
-kNSLBufferTooSmallForData      =       -4187   #(Client buffer too small for data from plugin)
-kNSLCannotContinueLookup       =       -4186   #(Can't continue lookup; error or bad state)
-kNSLBadClientInfoPtr   =       -4185   #(nil ClientAsyncInfoPtr; no reference available)
-kNSLNullListPtr        =       -4184   #(client is trying to add items to a nil list)
-kNSLBadProtocolTypeErr =       -4183   #(client is trying to add a null protocol type)
-kNSLPluginLoadFailed   =       -4182   #(manager unable to load one of the plugins)
-kNSLNoPluginsFound     =       -4181   #(manager didn't find any valid plugins to load)
-kNSLSearchAlreadyInProgress    =       -4180   #(you can only have one ongoing search per clientRef)
-kNSLNoPluginsForSearch =       -4179   #(no plugins will respond to search request; bad protocol(s)?)
-kNSLNullNeighborhoodPtr        =       -4178   #(client passed a null neighborhood ptr)
-kNSLSomePluginsFailedToLoad    =       -4177   #(one or more plugins failed to load, but at least one did load; this error isn't fatal)
-kNSLErrNullPtrError    =       -4176   #kNSLErrNullPtrError
-kNSLNotImplementedYet  =       -4175   #kNSLNotImplementedYet
-kNSLUILibraryNotAvailable      =       -4174   #The NSL UI Library needs to be in the Extensions Folder
-kNSLNoCarbonLib        =       -4173   #kNSLNoCarbonLib
-kNSLBadURLSyntax       =       -4172   #URL contains illegal characters
-kNSLSchedulerError     =       -4171   #A custom thread routine encountered an error
-kNSL68kContextNotSupported     =       -4170   #no 68k allowed
-noHelpForItem  =       -4009   #noHelpForItem
-badProfileError        =       -4008   #badProfileError
-colorSyncNotInstalled  =       -4007   #colorSyncNotInstalled
-pickerCantLive =       -4006   #pickerCantLive
-cantLoadPackage        =       -4005   #cantLoadPackage
-cantCreatePickerWindow =       -4004   #cantCreatePickerWindow
-cantLoadPicker =       -4003   #cantLoadPicker
-pickerResourceError    =       -4002   #pickerResourceError
-requiredFlagsDontMatch =       -4001   #requiredFlagsDontMatch
-firstPickerError       =       -4000   #firstPickerError
-kOTPortLostConnection  =       -3285   #
-kOTUserRequestedErr    =       -3284   #
-kOTConfigurationChangedErr     =       -3283   #
-kOTBadConfigurationErr =       -3282   #
-kOTPortWasEjectedErr   =       -3281   #
-kOTPortHasDiedErr      =       -3280   #
-kOTClientNotInittedErr =       -3279   #
-kENOMSGErr     =       -3278   #
-kESRCHErr      =       -3277   #
-kEINPROGRESSErr        =       -3276   #
-kENODATAErr    =       -3275   #
-kENOSTRErr     =       -3274   #
-kECANCELErr    =       -3273   #
-kEBADMSGErr    =       -3272   #
-kENOSRErr      =       -3271   #
-kETIMEErr      =       -3270   #
-kEPROTOErr     =       -3269   #\80\80\80 fill out missing codes \80\80\80
-kEHOSTUNREACHErr       =       -3264   #No route to host
-kEHOSTDOWNErr  =       -3263   #Host is down
-kECONNREFUSEDErr       =       -3260   #Connection refused
-kETIMEDOUTErr  =       -3259   #Connection timed out
-kETOOMANYREFSErr       =       -3258   #Too many references: can't splice
-kESHUTDOWNErr  =       -3257   #Can't send after socket shutdown
-kENOTCONNErr   =       -3256   #Socket is not connected
-kEISCONNErr    =       -3255   #Socket is already connected
-kENOBUFSErr    =       -3254   #No buffer space available
-kECONNRESETErr =       -3253   #Connection reset by peer
-kECONNABORTEDErr       =       -3252   #Software caused connection abort
-kENETRESETErr  =       -3251   #Network dropped connection on reset
-kENETUNREACHErr        =       -3250   #Network is unreachable
-kENETDOWNErr   =       -3249   #Network is down
-kEADDRNOTAVAILErr      =       -3248   #Can't assign requested address
-kEADDRINUSEErr =       -3247   #Address already in use
-kEOPNOTSUPPErr =       -3244   #Operation not supported on socket
-kESOCKTNOSUPPORTErr    =       -3243   #Socket type not supported
-kEPROTONOSUPPORTErr    =       -3242   #Protocol not supported
-kENOPROTOOPTErr        =       -3241   #Protocol not available
-kEPROTOTYPEErr =       -3240   #Protocol wrong type for socket
-kEMSGSIZEErr   =       -3239   #Message too long
-kEDESTADDRREQErr       =       -3238   #Destination address required
-kENOTSOCKErr   =       -3237   #Socket operation on non-socket
-kEALREADYErr   =       -3236   #
-kEWOULDBLOCKErr        =       -3234   #Call would block, so was aborted
-kERANGEErr     =       -3233   #Message size too large for STREAM
-kEPIPEErr      =       -3231   #Broken pipe
-kENOTTYErr     =       -3224   #Not a character device
-kEINVALErr     =       -3221   #Invalid argument
-kENODEVErr     =       -3218   #No such device
-kOTDuplicateFoundErr   =       -3216   #OT generic duplicate found error
-kEBUSYErr      =       -3215   #Device or resource busy
-kEFAULTErr     =       -3213   #Bad address
-kEACCESErr     =       -3212   #Permission denied
-kOTOutOfMemoryErr      =       -3211   #OT ran out of memory, may be a temporary
-kEAGAINErr     =       -3210   #Try operation again later
-kEBADFErr      =       -3208   #Bad file number
-kENXIOErr      =       -3205   #No such device or address
-kEIOErr        =       -3204   #I/O error
-kEINTRErr      =       -3203   #Interrupted system service
-kENORSRCErr    =       -3202   #No such resource
-kOTNotFoundErr =       -3201   #OT generic not found error
-kEPERMErr      =       -3200   #Permission denied
-kOTCanceledErr =       -3180   #XTI2OSStatus(TCANCELED) The command was cancelled
-kOTBadSyncErr  =       -3179   #XTI2OSStatus(TBADSYNC) A synchronous call at interrupt time
-kOTProtocolErr =       -3178   #XTI2OSStatus(TPROTO) An unspecified provider error occurred
-kOTQFullErr    =       -3177   #XTI2OSStatus(TQFULL)
-kOTResAddressErr       =       -3176   #XTI2OSStatus(TRESADDR)
-kOTResQLenErr  =       -3175   #XTI2OSStatus(TRESQLEN)
-kOTProviderMismatchErr =       -3174   #XTI2OSStatus(TPROVMISMATCH) Tried to accept on incompatible endpoint
-kOTIndOutErr   =       -3173   #XTI2OSStatus(TINDOUT) Accept failed because of pending listen
-kOTAddressBusyErr      =       -3172   #XTI2OSStatus(TADDRBUSY) Address requested is already in use
-kOTBadQLenErr  =       -3171   #XTI2OSStatus(TBADQLEN) A Bind to an in-use addr with qlen > 0
-kOTBadNameErr  =       -3170   #XTI2OSStatus(TBADNAME) A bad endpoint name was supplied
-kOTNoStructureTypeErr  =       -3169   #XTI2OSStatus(TNOSTRUCTYPE) Bad structure type requested for OTAlloc
-kOTStateChangeErr      =       -3168   #XTI2OSStatus(TSTATECHNG) State is changing - try again later
-kOTNotSupportedErr     =       -3167   #XTI2OSStatus(TNOTSUPPORT) Command is not supported
-kOTNoReleaseErr        =       -3166   #XTI2OSStatus(TNOREL) No orderly release indication available
-kOTBadFlagErr  =       -3165   #XTI2OSStatus(TBADFLAG) A Bad flag value was supplied
-kOTNoUDErrErr  =       -3164   #XTI2OSStatus(TNOUDERR) No Unit Data Error indication available
-kOTNoDisconnectErr     =       -3163   #XTI2OSStatus(TNODIS) No disconnect indication available
-kOTNoDataErr   =       -3162   #XTI2OSStatus(TNODATA) No data available for reading
-kOTFlowErr     =       -3161   #XTI2OSStatus(TFLOW) Provider is flow-controlled
-kOTBufferOverflowErr   =       -3160   #XTI2OSStatus(TBUFOVFLW) Passed buffer not big enough
-kOTBadDataErr  =       -3159   #XTI2OSStatus(TBADDATA) An illegal amount of data was specified
-kOTLookErr     =       -3158   #XTI2OSStatus(TLOOK) An event occurred - call Look()
-kOTSysErrorErr =       -3157   #XTI2OSStatus(TSYSERR) A system error occurred
-kOTBadSequenceErr      =       -3156   #XTI2OSStatus(TBADSEQ) Sequence specified does not exist
-kOTOutStateErr =       -3155   #XTI2OSStatus(TOUTSTATE) Call issued in wrong state
-kOTNoAddressErr        =       -3154   #XTI2OSStatus(TNOADDR) No address was specified
-kOTBadReferenceErr     =       -3153   #XTI2OSStatus(TBADF) Bad provider reference
-kOTAccessErr   =       -3152   #XTI2OSStatus(TACCES) Missing access permission
-kOTBadOptionErr        =       -3151   #XTI2OSStatus(TBADOPT) A Bad option was specified
-kOTBadAddressErr       =       -3150   #XTI2OSStatus(TBADADDR) A Bad address was specified
-sktClosedErr   =       -3109   #sktClosedErr
-recNotFnd      =       -3108   #recNotFnd
-atpBadRsp      =       -3107   #atpBadRsp
-atpLenErr      =       -3106   #atpLenErr
-readQErr       =       -3105   #readQErr
-extractErr     =       -3104   #extractErr
-ckSumErr       =       -3103   #ckSumErr
-noMPPErr       =       -3102   #noMPPErr
-buf2SmallErr   =       -3101   #buf2SmallErr
-noPrefAppErr   =       -3032   #noPrefAppErr
-badTranslationSpecErr  =       -3031   #badTranslationSpecErr
-noTranslationPathErr   =       -3030   #noTranslationPathErr
-couldNotParseSourceFileErr     =       -3026   #Source document does not contain source type
-invalidTranslationPathErr      =       -3025   #Source type to destination type not a valid path
-unresolvedComponentDLLErr      =       -3004   #unresolvedComponentDLLErr
-componentDontRegister  =       -3003   #componentDontRegister
-componentNotCaptured   =       -3002   #componentNotCaptured
-validInstancesExist    =       -3001   #validInstancesExist
-invalidComponentID     =       -3000   #invalidComponentID
-cfragLastErrCode       =       -2899   #The last value in the range of CFM errors.
-cfragOutputLengthErr   =       -2831   #An output parameter is too small to hold the value.
-cfragAbortClosureErr   =       -2830   #Used by notification handlers to abort a closure.
-cfragClosureIDErr      =       -2829   #The closure ID was not valid.
-cfragContainerIDErr    =       -2828   #The fragment container ID was not valid.
-cfragNoRegistrationErr =       -2827   #The registration name was not found.
-cfragNotClosureErr     =       -2826   #The closure ID was actually a connection ID.
-cfragFileSizeErr       =       -2825   #A file was too large to be mapped.
-cfragFragmentUsageErr  =       -2824   #A semantic error in usage of the fragment.
-cfragArchitectureErr   =       -2823   #A fragment has an unacceptable architecture.
-cfragNoApplicationErr  =       -2822   #No application member found in the cfrg resource.
-cfragInitFunctionErr   =       -2821   #A fragment's initialization routine returned an error.
-cfragFragmentCorruptErr        =       -2820   #A fragment's container was corrupt (known format).
-cfragCFMInternalErr    =       -2819   #An internal inconstistancy has been detected.
-cfragCFMStartupErr     =       -2818   #Internal error during CFM initialization.
-cfragLibConnErr        =       -2817   #
-cfragInitAtBootErr     =       -2816   #A boot library has an initialization function.  (System 7 only)
-cfragInitLoopErr       =       -2815   #Circularity in required initialization order.
-cfragImportTooNewErr   =       -2814   #An import library was too new for a client.
-cfragImportTooOldErr   =       -2813   #An import library was too old for a client.
-cfragInitOrderErr      =       -2812   #
-cfragNoIDsErr  =       -2811   #No more CFM IDs for contexts, connections, etc.
-cfragNoClientMemErr    =       -2810   #Out of memory for fragment mapping or section instances.
-cfragNoPrivateMemErr   =       -2809   #Out of memory for internal bookkeeping.
-cfragNoPositionErr     =       -2808   #The registration insertion point was not found.
-cfragUnresolvedErr     =       -2807   #A fragment had "hard" unresolved imports.
-cfragFragmentFormatErr =       -2806   #A fragment's container format is unknown.
-cfragDupRegistrationErr        =       -2805   #The registration name was already in use.
-cfragNoLibraryErr      =       -2804   #The named library was not found.
-cfragNoSectionErr      =       -2803   #The specified section was not found.
-cfragNoSymbolErr       =       -2802   #The specified symbol was not found.
-cfragConnectionIDErr   =       -2801   #The connection ID was not valid.
-cfragFirstErrCode      =       -2800   #The first value in the range of CFM errors.
-errASInconsistentNames =       -2780   #English errors:
-errASNoResultReturned  =       -2763   #The range -2780 thru -2799 is reserved for dialect specific error codes. (Error codes from different dialects may overlap.)
-errASParameterNotForEvent      =       -2762   #errASParameterNotForEvent
-errASIllegalFormalParameter    =       -2761   #errASIllegalFormalParameter
-errASTerminologyNestingTooDeep =       -2760   #errASTerminologyNestingTooDeep
-OSAControlFlowError    =       -2755   #Signaled when illegal control flow occurs in an application (no catcher for throw, non-lexical loop exit, etc.)
-OSAInconsistentDeclarations    =       -2754   #Signaled when a variable is declared inconsistently in the same scope, such as both local and global
-OSAUndefinedVariable   =       -2753   #Signaled when a variable is accessed that has no value
-OSADuplicateHandler    =       -2752   #Signaled when more than one handler is defined with the same name in a scope where the language doesn't allow it
-OSADuplicateProperty   =       -2751   #Signaled when a formal parameter, local variable, or instance variable is specified more than once.
-OSADuplicateParameter  =       -2750   #Signaled when a formal parameter, local variable, or instance variable is specified more than once
-OSATokenTooLong        =       -2742   #Signaled when a name or number is too long to be parsed
-OSASyntaxTypeError     =       -2741   #Signaled when another form of syntax was expected. (e.g. "expected a <type> but found <this>")
-OSASyntaxError =       -2740   #Signaled when a syntax error occurs. (e.g. "Syntax error" or "<this> can't go after <that>")
-errASCantCompareMoreThan32k    =       -2721   #Parser/Compiler errors:
-errASCantConsiderAndIgnore     =       -2720   #errASCantConsiderAndIgnore
-errOSACantCreate       =       -2710   #errOSACantCreate
-errOSACantGetTerminology       =       -2709   #errOSACantGetTerminology
-errOSADataBlockTooLarge        =       -2708   #Signaled when an intrinsic limitation is exceeded for the size of a value or data structure.
-errOSAInternalTableOverflow    =       -2707   #Signaled when a runtime internal data structure overflows
-errOSAStackOverflow    =       -2706   #Signaled when the runtime stack overflows
-errOSACorruptTerminology       =       -2705   #Signaled when an application's terminology resource is not readable
-errOSAAppNotHighLevelEventAware        =       -2704   #Signaled when an application can't respond to AppleEvents
-errOSACantLaunch       =       -2703   #Signaled when application can't be launched or when it is remote and program linking is not enabled
-errOSANumericOverflow  =       -2702   #Signaled when integer or real value is too large to be represented
-errOSADivideByZero     =       -2701   #Signaled when there is an attempt to divide by zero
-errOSAGeneralError     =       -2700   #Signaled by user scripts or applications when no actual error code is to be returned.
-noIconDataAvailableErr =       -2582   #The necessary icon data is not available
-noSuchIconErr  =       -2581   #The requested icon could not be found
-invalidIconRefErr      =       -2580   #The icon ref is not valid
-nrCallNotSupported     =       -2557   #This call is not available or supported on this machine
-nrTransactionAborted   =       -2556   #transaction was aborted
-nrExitedIteratorScope  =       -2555   #outer scope of iterator was exited
-nrIterationDone        =       -2554   #iteration operation is done
-nrPropertyAlreadyExists        =       -2553   #property already exists
-nrInvalidEntryIterationOp      =       -2552   #invalid entry iteration operation
-nrPathBufferTooSmall   =       -2551   #buffer for path is too small
-nrPathNotFound =       -2550   #a path component lookup failed
-nrResultCodeBase       =       -2549   #nrResultCodeBase
-nrOverrunErr   =       -2548   #nrOverrunErr
-nrNotModifiedErr       =       -2547   #nrNotModifiedErr
-nrTypeMismatchErr      =       -2546   #nrTypeMismatchErr
-nrPowerSwitchAbortErr  =       -2545   #nrPowerSwitchAbortErr
-nrPowerErr     =       -2544   #nrPowerErr
-nrDataTruncatedErr     =       -2543   #nrDataTruncatedErr
-nrNotSlotDeviceErr     =       -2542   #nrNotSlotDeviceErr
-nrNameErr      =       -2541   #nrNameErr
-nrNotCreatedErr        =       -2540   #nrNotCreatedErr
-nrNotFoundErr  =       -2539   #nrNotFoundErr
-nrInvalidNodeErr       =       -2538   #nrInvalidNodeErr
-nrNotEnoughMemoryErr   =       -2537   #nrNotEnoughMemoryErr
-nrLockedErr    =       -2536   #nrLockedErr
-mmInternalError        =       -2526   #mmInternalError
-tsmDefaultIsNotInputMethodErr  =       -2524   #Current Input source is KCHR or uchr, not Input Method  (GetDefaultInputMethod)
-tsmNoStem      =       -2523   #No stem exists for the token
-tsmNoMoreTokens        =       -2522   #No more tokens are available for the source text
-tsmNoHandler   =       -2521   #No Callback Handler exists for callback
-tsmInvalidContext      =       -2520   #Invalid TSMContext specified in call
-tsmUnknownErr  =       -2519   #any other errors
-tsmUnsupportedTypeErr  =       -2518   #unSupported interface type error
-tsmScriptHasNoIMErr    =       -2517   #script has no imput method or is using old IM
-tsmInputMethodIsOldErr =       -2516   #returned by GetDefaultInputMethod
-tsmComponentAlreadyOpenErr     =       -2515   #text service already opened for the document
-tsmTSNotOpenErr        =       -2514   #text service is not open
-tsmTSHasNoMenuErr      =       -2513   #the text service has no menu
-tsmUseInputWindowErr   =       -2512   #not TSM aware because we are using input window
-tsmDocumentOpenErr     =       -2511   #there are open documents
-tsmTextServiceNotFoundErr      =       -2510   #no text service found
-tsmCantOpenComponentErr        =       -2509   #can¹t open the component
-tsmNoOpenTSErr =       -2508   #no open text service
-tsmDocNotActiveErr     =       -2507   #document is NOT active
-tsmTSMDocBusyErr       =       -2506   #document is still active
-tsmInvalidDocIDErr     =       -2505   #invalid TSM documentation id
-tsmNeverRegisteredErr  =       -2504   #app never registered error (not TSM aware)
-tsmAlreadyRegisteredErr        =       -2503   #want to register again error
-tsmNotAnAppErr =       -2502   #not an application error
-tsmInputMethodNotFoundErr      =       -2501   #tsmInputMethodNotFoundErr
-tsmUnsupScriptLanguageErr      =       -2500   #tsmUnsupScriptLanguageErr
-kernelUnrecoverableErr =       -2499   #kernelUnrecoverableErr
-kernelReturnValueErr   =       -2422   #kernelReturnValueErr
-kernelAlreadyFreeErr   =       -2421   #kernelAlreadyFreeErr
-kernelIDErr    =       -2419   #kernelIDErr
-kernelExceptionErr     =       -2418   #kernelExceptionErr
-kernelTerminatedErr    =       -2417   #kernelTerminatedErr
-kernelInUseErr =       -2416   #kernelInUseErr
-kernelTimeoutErr       =       -2415   #kernelTimeoutErr
-kernelAsyncReceiveLimitErr     =       -2414   #kernelAsyncReceiveLimitErr
-kernelAsyncSendLimitErr        =       -2413   #kernelAsyncSendLimitErr
-kernelAttributeErr     =       -2412   #kernelAttributeErr
-kernelExecutionLevelErr        =       -2411   #kernelExecutionLevelErr
-kernelDeletePermissionErr      =       -2410   #kernelDeletePermissionErr
-kernelExecutePermissionErr     =       -2409   #kernelExecutePermissionErr
-kernelReadPermissionErr        =       -2408   #kernelReadPermissionErr
-kernelWritePermissionErr       =       -2407   #kernelWritePermissionErr
-kernelObjectExistsErr  =       -2406   #kernelObjectExistsErr
-kernelUnsupportedErr   =       -2405   #kernelUnsupportedErr
-kernelPrivilegeErr     =       -2404   #kernelPrivilegeErr
-kernelOptionsErr       =       -2403   #kernelOptionsErr
-kernelCanceledErr      =       -2402   #kernelCanceledErr
-kernelIncompleteErr    =       -2401   #kernelIncompleteErr
-badCallOrderErr        =       -2209   #Usually due to a status call being called prior to being setup first
-noDMAErr       =       -2208   #Can¹t do DMA digitizing (i.e. can't go to requested dest
-badDepthErr    =       -2207   #Can¹t digitize into this depth
-notExactSizeErr        =       -2206   #Can¹t do exact size requested
-noMoreKeyColorsErr     =       -2205   #all key indexes in use
-notExactMatrixErr      =       -2204   #warning of bad matrix, digitizer did its best
-matrixErr      =       -2203   #bad matrix, digitizer did nothing
-qtParamErr     =       -2202   #bad input parameter (out of range, etc)
-digiUnimpErr   =       -2201   #feature unimplemented
-qtActionNotHandledErr  =       -2157   #qtActionNotHandledErr
-notEnoughDataErr       =       -2149   #notEnoughDataErr
-urlDataHFTPURLErr      =       -2148   #urlDataHFTPURLErr
-urlDataHFTPServerDisconnectedErr       =       -2147   #urlDataHFTPServerDisconnectedErr
-urlDataHFTPNoPasswordErr       =       -2146   #urlDataHFTPNoPasswordErr
-urlDataHFTPNeedPasswordErr     =       -2145   #urlDataHFTPNeedPasswordErr
-urlDataHFTPBadNameListErr      =       -2144   #urlDataHFTPBadNameListErr
-urlDataHFTPNoNetDriverErr      =       -2143   #urlDataHFTPNoNetDriverErr
-urlDataHFTPFilenameErr =       -2142   #urlDataHFTPFilenameErr
-urlDataHFTPPermissionsErr      =       -2141   #urlDataHFTPPermissionsErr
-urlDataHFTPQuotaErr    =       -2140   #urlDataHFTPQuotaErr
-urlDataHFTPNoDirectoryErr      =       -2139   #urlDataHFTPNoDirectoryErr
-urlDataHFTPDataConnectionErr   =       -2138   #urlDataHFTPDataConnectionErr
-urlDataHFTPServerErr   =       -2137   #urlDataHFTPServerErr
-urlDataHFTPBadPasswordErr      =       -2136   #urlDataHFTPBadPasswordErr
-urlDataHFTPBadUserErr  =       -2135   #urlDataHFTPBadUserErr
-urlDataHFTPShutdownErr =       -2134   #urlDataHFTPShutdownErr
-urlDataHFTPProtocolErr =       -2133   #urlDataHFTPProtocolErr
-urlDataHHTTPRedirectErr        =       -2132   #urlDataHHTTPRedirectErr
-urlDataHHTTPURLErr     =       -2131   #urlDataHHTTPURLErr
-urlDataHHTTPNoNetDriverErr     =       -2130   #urlDataHHTTPNoNetDriverErr
-urlDataHHTTPProtocolErr        =       -2129   #urlDataHHTTPProtocolErr
-qtNetworkAlreadyAllocatedErr   =       -2127   #qtNetworkAlreadyAllocatedErr
-notAllowedToSaveMovieErr       =       -2126   #notAllowedToSaveMovieErr
-fileOffsetTooBigErr    =       -2125   #fileOffsetTooBigErr
-ASDEntryNotFoundErr    =       -2124   #ASDEntryNotFoundErr
-ASDBadForkErr  =       -2123   #ASDBadForkErr
-ASDBadHeaderErr        =       -2122   #ASDBadHeaderErr
-AAPNotFoundErr =       -2121   #AAPNotFoundErr
-AAPNotCreatedErr       =       -2120   #AAPNotCreatedErr
-qfcbNotCreatedErr      =       -2119   #qfcbNotCreatedErr
-qfcbNotFoundErr        =       -2118   #qfcbNotFoundErr
-wackBadMetaDataErr     =       -2117   #wackBadMetaDataErr
-wackForkNotFoundErr    =       -2116   #wackForkNotFoundErr
-wackBadFileErr =       -2115   #wackBadFileErr
-unknownFormatErr       =       -2114   #unknownFormatErr
-pathNotVerifiedErr     =       -2113   #pathNotVerifiedErr
-noPathMappingErr       =       -2112   #noPathMappingErr
-emptyPathErr   =       -2111   #emptyPathErr
-pathTooLongErr =       -2110   #pathTooLongErr
-cannotBeLeafAtomErr    =       -2109   #cannotBeLeafAtomErr
-invalidAtomTypeErr     =       -2108   #invalidAtomTypeErr
-invalidAtomContainerErr        =       -2107   #invalidAtomContainerErr
-invalidAtomErr =       -2106   #invalidAtomErr
-duplicateAtomTypeAndIDErr      =       -2105   #duplicateAtomTypeAndIDErr
-atomIndexInvalidErr    =       -2104   #atomIndexInvalidErr
-atomsNotOfSameTypeErr  =       -2103   #atomsNotOfSameTypeErr
-notLeafAtomErr =       -2102   #notLeafAtomErr
-cannotFindAtomErr      =       -2101   #cannotFindAtomErr
-unsupportedProcessorErr        =       -2097   #unsupportedProcessorErr
-unsupportedOSErr       =       -2096   #unsupportedOSErr
-qtmlUninitialized      =       -2095   #qtmlUninitialized
-qtmlDllEntryNotFoundErr        =       -2094   #Windows specific errors (when qtml is loading)
-qtmlDllLoadErr =       -2093   #Windows specific errors (when qtml is loading)
-componentDllEntryNotFoundErr   =       -2092   #Windows specific errors (when component is loading)
-componentDllLoadErr    =       -2091   #Windows specific errors (when component is loading)
-videoOutputInUseErr    =       -2090   #videoOutputInUseErr
-noExportProcAvailableErr       =       -2089   #noExportProcAvailableErr
-tuneParseOSErr =       -2087   #tuneParseOSErr
-tunePlayerFullOSErr    =       -2086   #tunePlayerFullOSErr
-noteChannelNotAllocatedOSErr   =       -2085   #noteChannelNotAllocatedOSErr
-illegalNoteChannelOSErr        =       -2084   #illegalNoteChannelOSErr
-synthesizerOSErr       =       -2083   #synthesizerOSErr
-synthesizerNotRespondingOSErr  =       -2082   #synthesizerNotRespondingOSErr
-midiManagerAbsentOSErr =       -2081   #midiManagerAbsentOSErr
-illegalControllerOSErr =       -2080   #illegalControllerOSErr
-illegalInstrumentOSErr =       -2079   #illegalInstrumentOSErr
-illegalKnobValueOSErr  =       -2078   #illegalKnobValueOSErr
-illegalKnobOSErr       =       -2077   #illegalKnobOSErr
-illegalChannelOSErr    =       -2076   #illegalChannelOSErr
-illegalPartOSErr       =       -2075   #illegalPartOSErr
-illegalVoiceAllocationOSErr    =       -2074   #illegalVoiceAllocationOSErr
-cantReceiveFromSynthesizerOSErr        =       -2073   #cantReceiveFromSynthesizerOSErr
-cantSendToSynthesizerOSErr     =       -2072   #cantSendToSynthesizerOSErr
-notImplementedMusicOSErr       =       -2071   #notImplementedMusicOSErr
-internalComponentErr   =       -2070   #internalComponentErr
-invalidSpriteIDErr     =       -2069   #invalidSpriteIDErr
-invalidImageIndexErr   =       -2068   #invalidImageIndexErr
-invalidSpriteIndexErr  =       -2067   #invalidSpriteIndexErr
-gWorldsNotSameDepthAndSizeErr  =       -2066   #gWorldsNotSameDepthAndSizeErr
-invalidSpritePropertyErr       =       -2065   #invalidSpritePropertyErr
-invalidSpriteWorldPropertyErr  =       -2064   #invalidSpriteWorldPropertyErr
-missingRequiredParameterErr    =       -2063   #missingRequiredParameterErr
-movieTextNotFoundErr   =       -2062   #movieTextNotFoundErr
-sourceNotFoundErr      =       -2061   #sourceNotFoundErr
-noSourceTreeFoundErr   =       -2060   #noSourceTreeFoundErr
-samplesAlreadyInMediaErr       =       -2059   #samplesAlreadyInMediaErr
-auxiliaryExportDataUnavailable =       -2058   #auxiliaryExportDataUnavailable
-unsupportedAuxiliaryImportData =       -2057   #unsupportedAuxiliaryImportData
-soundSupportNotAvailableErr    =       -2056   #QT for Windows error
-noSoundTrackInMovieErr =       -2055   #QT for Windows error
-noVideoTrackInMovieErr =       -2054   #QT for Windows error
-featureUnsupported     =       -2053   #featureUnsupported
-couldNotUseAnExistingSample    =       -2052   #couldNotUseAnExistingSample
-noDefaultDataRef       =       -2051   #noDefaultDataRef
-badDataRefIndex        =       -2050   #badDataRefIndex
-invalidDataRefContainer        =       -2049   #invalidDataRefContainer
-noMovieFound   =       -2048   #noMovieFound
-dataNoDataRef  =       -2047   #dataNoDataRef
-endOfDataReached       =       -2046   #endOfDataReached
-dataAlreadyClosed      =       -2045   #dataAlreadyClosed
-dataAlreadyOpenForWrite        =       -2044   #dataAlreadyOpenForWrite
-dataNotOpenForWrite    =       -2043   #dataNotOpenForWrite
-dataNotOpenForRead     =       -2042   #dataNotOpenForRead
-invalidSampleDescription       =       -2041   #invalidSampleDescription
-invalidChunkCache      =       -2040   #invalidChunkCache
-invalidSampleDescIndex =       -2039   #invalidSampleDescIndex
-invalidChunkNum        =       -2038   #invalidChunkNum
-invalidSampleNum       =       -2037   #invalidSampleNum
-invalidRect    =       -2036   #invalidRect
-cantEnableTrack        =       -2035   #cantEnableTrack
-internalQuickTimeError =       -2034   #internalQuickTimeError
-badEditIndex   =       -2033   #badEditIndex
-timeNotInMedia =       -2032   #timeNotInMedia
-timeNotInTrack =       -2031   #timeNotInTrack
-trackNotInMovie        =       -2030   #trackNotInMovie
-trackIDNotFound        =       -2029   #trackIDNotFound
-badTrackIndex  =       -2028   #badTrackIndex
-maxSizeToGrowTooSmall  =       -2027   #maxSizeToGrowTooSmall
-userDataItemNotFound   =       -2026   #userDataItemNotFound
-staleEditState =       -2025   #staleEditState
-nonMatchingEditState   =       -2024   #nonMatchingEditState
-invalidEditState       =       -2023   #invalidEditState
-cantCreateSingleForkFile       =       -2022   #happens when file already exists
-wfFileNotFound =       -2021   #wfFileNotFound
-movieToolboxUninitialized      =       -2020   #movieToolboxUninitialized
-progressProcAborted    =       -2019   #progressProcAborted
-mediaTypesDontMatch    =       -2018   #mediaTypesDontMatch
-badEditList    =       -2017   #badEditList
-cantPutPublicMovieAtom =       -2016   #cantPutPublicMovieAtom
-invalidTime    =       -2015   #invalidTime
-invalidDuration        =       -2014   #invalidDuration
-invalidHandler =       -2013   #invalidHandler
-invalidDataRef =       -2012   #invalidDataRef
-invalidSampleTable     =       -2011   #invalidSampleTable
-invalidMovie   =       -2010   #invalidMovie
-invalidTrack   =       -2009   #invalidTrack
-invalidMedia   =       -2008   #invalidMedia
-noDataHandler  =       -2007   #noDataHandler
-noMediaHandler =       -2006   #noMediaHandler
-badComponentType       =       -2005   #badComponentType
-cantOpenHandler        =       -2004   #cantOpenHandler
-cantFindHandler        =       -2003   #cantFindHandler
-badPublicMovieAtom     =       -2002   #badPublicMovieAtom
-badImageDescription    =       -2001   #badImageDescription
-couldNotResolveDataRef =       -2000   #couldNotResolveDataRef
-badImageErr    =       -1861   #bad translucent image PixMap
-badImageRgnErr =       -1860   #bad translucent image region
-noSuitableDisplaysErr  =       -1859   #no displays support translucency
-unsupportedForPlatformErr      =       -1858   #call is for PowerPC only
-dragNotAcceptedErr     =       -1857   #drag was not accepted by receiver
-handlerNotFoundErr     =       -1856   #handler not found
-duplicateHandlerErr    =       -1855   #handler already exists
-cantGetFlavorErr       =       -1854   #error while trying to get flavor data
-duplicateFlavorErr     =       -1853   #flavor type already exists
-badDragFlavorErr       =       -1852   #unknown flavor type
-badDragItemErr =       -1851   #unknown drag item reference
-badDragRefErr  =       -1850   #unknown drag reference
-errEndOfBody   =       -1813   #errEndOfBody
-errEndOfDocument       =       -1812   #errEndOfDocument
-errTopOfBody   =       -1811   #errTopOfBody
-errTopOfDocument       =       -1810   #errTopOfDocument
-errOffsetIsOutsideOfView       =       -1801   #errOffsetIsOutsideOfView
-errOffsetInvalid       =       -1800   #errOffsetInvalid
-errOSACantOpenComponent        =       -1762   #Can't connect to scripting system with that ID
-errOSAComponentMismatch        =       -1761   #Parameters are from 2 different components
-errOSADataFormatTooNew =       -1759   #errOSADataFormatTooNew
-errOSADataFormatObsolete       =       -1758   #errOSADataFormatObsolete
-errOSANoSuchDialect    =       -1757   #errOSANoSuchDialect
-errOSASourceNotAvailable       =       -1756   #errOSASourceNotAvailable
-errOSABadSelector      =       -1754   #errOSABadSelector
-errOSAScriptError      =       -1753   #errOSAScriptError
-errOSABadStorageType   =       -1752   #errOSABadStorageType
-errOSAInvalidID        =       -1751   #errOSAInvalidID
-errOSASystemError      =       -1750   #errOSASystemError
-errAEDescIsNull        =       -1739   #attempting to perform an invalid operation on a null descriptor
-errAEStreamAlreadyConverted    =       -1738   #attempt to convert a stream that has already been converted
-errAEStreamBadNesting  =       -1737   #nesting violation while streaming
-errAEDuplicateHandler  =       -1736   #attempt to install handler in table for identical class and id (1.1 or greater)
-errAEEventFiltered     =       -1735   #event has been filtered, and should not be propogated (1.1 or greater)
-errAEReceiveEscapeCurrent      =       -1734   #break out of only lowest level of AEReceive (1.1 or greater)
-errAEReceiveTerminate  =       -1733   #break out of all levels of AEReceive to the topmost (1.1 or greater)
-errAERecordingIsAlreadyOn      =       -1732   #available only in version 1.0.1 or greater
-errAEUnknownObjectType =       -1731   #available only in version 1.0.1 or greater
-errAEEmptyListContainer        =       -1730   #Attempt to pass empty list as container to accessor
-errAENegativeCount     =       -1729   #CountProc returned negative value
-errAENoSuchObject      =       -1728   #e.g.,: specifier asked for the 3rd, but there are only 2. Basically, this indicates a run-time resolution error.
-errAENotAnObjSpec      =       -1727   #Param to AEResolve not of type 'obj '
-errAEBadTestKey        =       -1726   #Test is neither typeLogicalDescriptor nor typeCompDescriptor
-errAENoSuchLogical     =       -1725   #Something other than AND, OR, or NOT
-errAEAccessorNotFound  =       -1723   #Accessor proc matching wantClass and containerType or wildcards not found
-errAEWrongNumberArgs   =       -1721   #Logical op kAENOT used with other than 1 term
-errAEImpossibleRange   =       -1720   #A range like 3rd to 2nd, or 1st to all.
-errAEIllegalIndex      =       -1719   #index is out of range in a put operation
-errAEReplyNotArrived   =       -1718   #the contents of the reply you are accessing have not arrived yet
-errAEHandlerNotFound   =       -1717   #no handler in the dispatch tables fits the parameters to AEGetEventHandler or AEGetCoercionHandler
-errAEUnknownAddressType        =       -1716   #the target address type is not known
-errAEParamMissed       =       -1715   #a required parameter was not accessed
-errAENotASpecialFunction       =       -1714   #there is no special function for/with this keyword
-errAENoUserInteraction =       -1713   #no user interaction is allowed
-errAETimeout   =       -1712   #the AppleEvent timed out
-errAEWaitCanceled      =       -1711   #in AESend, the user cancelled out of wait loop for reply or receipt
-errAEUnknownSendMode   =       -1710   #mode wasn't NoReply, WaitReply, or QueueReply or Interaction level is unknown
-errAEReplyNotValid     =       -1709   #AEResetTimer was passed an invalid reply parameter
-errAEEventNotHandled   =       -1708   #the AppleEvent was not handled by any handler
-errAENotAppleEvent     =       -1707   #the event is not in AppleEvent format
-errAENewerVersion      =       -1706   #need newer version of the AppleEvent manager
-errAEBadListItem       =       -1705   #the specified list item does not exist
-errAENotAEDesc =       -1704   #errAENotAEDesc
-errAEWrongDataType     =       -1703   #errAEWrongDataType
-errAECorruptData       =       -1702   #errAECorruptData
-errAEDescNotFound      =       -1701   #errAEDescNotFound
-errAECoercionFail      =       -1700   #bad parameter data or unable to coerce the data supplied
-errFSIteratorNotSupported      =       -1424   #The iterator's flags or container are not supported by this call
-errFSIteratorNotFound  =       -1423   #Passed FSIterator is not an open iterator
-errFSBadIteratorFlags  =       -1422   #Flags passed to FSOpenIterator are bad
-errFSForkExists        =       -1421   #Named fork already exists.
-errFSRefsDifferent     =       -1420   #FSCompareFSRefs; refs are for different objects
-errFSBadSearchParams   =       -1419   #Something wrong with CatalogSearch searchParams
-errFSBadItemCount      =       -1418   #maximumItems was zero
-errFSNoMoreItems       =       -1417   #Iteration ran out of items to return
-errFSBadAllocFlags     =       -1413   #Invalid bits set in allocationFlags
-errFSBadPosMode        =       -1412   #Newline bits set in positionMode
-errFSMissingName       =       -1411   #A Unicode name parameter was NULL or nameLength parameter was zero
-errFSNameTooLong       =       -1410   #File/fork name is too long to create/rename
-errFSForkNotFound      =       -1409   #Named fork does not exist
-errFSNotAFolder        =       -1407   #Expected a folder, got a file
-errFSMissingCatInfo    =       -1406   #A CatalogInfo parameter was NULL
-errFSBadInfoBitmap     =       -1405   #A CatalogInfoBitmap or VolumeInfoBitmap has reserved or invalid bits set
-errFSBadForkRef        =       -1404   #A ForkRefNum parameter was bad
-errFSBadBuffer =       -1403   #A buffer parameter was bad
-errFSBadForkName       =       -1402   #Fork name parameter is bad
-errFSBadFSRef  =       -1401   #FSRef parameter is bad
-errFSUnknownCall       =       -1400   #selector is not recognized by this filesystem
-badFCBErr      =       -1327   #FCBRecPtr is not valid
-volVMBusyErr   =       -1311   #can't eject because volume is in use by VM
-fsDataTooBigErr        =       -1310   #file or volume is too big for system
-fileBoundsErr  =       -1309   #file's EOF, offset, mark or size is too big
-notARemountErr =       -1308   #when _Mount allows only remounts and doesn't get one
-badFidErr      =       -1307   #file id is dangling or doesn't match with the file number
-sameFileErr    =       -1306   #can't exchange a file with itself
-desktopDamagedErr      =       -1305   #desktop database files are corrupted
-catChangedErr  =       -1304   #the catalog has been modified
-diffVolErr     =       -1303   #files on different volumes
-notAFileErr    =       -1302   #directory specified
-fidExists      =       -1301   #file id already exists
-fidNotFound    =       -1300   #no file thread exists.
-errRefNum      =       -1280   #bad connection refNum
-errAborted     =       -1279   #control call was aborted
-errState       =       -1278   #bad connection state for this operation
-errOpening     =       -1277   #open connection request failed
-errAttention   =       -1276   #attention message too long
-errFwdReset    =       -1275   #read terminated by forward reset
-errDSPQueueSize        =       -1274   #DSP Read/Write Queue Too small
-errOpenDenied  =       -1273   #open connection request was denied
-reqAborted     =       -1105   #reqAborted
-noDataArea     =       -1104   #noDataArea
-noSendResp     =       -1103   #noSendResp
-cbNotFound     =       -1102   #cbNotFound
-noRelErr       =       -1101   #noRelErr
-badBuffNum     =       -1100   #badBuffNum
-badATPSkt      =       -1099   #badATPSkt
-tooManySkts    =       -1098   #tooManySkts
-tooManyReqs    =       -1097   #tooManyReqs
-reqFailed      =       -1096   #reqFailed
-aspNoAck       =       -1075   #No ack on attention request (server err)
-aspTooMany     =       -1074   #Too many clients (server error)
-aspSizeErr     =       -1073   #Command block too big
-aspSessClosed  =       -1072   #Session closed
-aspServerBusy  =       -1071   #Server cannot open another session
-aspParamErr    =       -1070   #Parameter error
-aspNoServers   =       -1069   #No servers at that address
-aspNoMoreSess  =       -1068   #No more sessions on server
-aspBufTooSmall =       -1067   #Buffer too small
-aspBadVersNum  =       -1066   #Server cannot support this ASP version
-nbpNISErr      =       -1029   #Error trying to open the NIS
-nbpNotFound    =       -1028   #Name not found on remove
-nbpDuplicate   =       -1027   #Duplicate name exists already
-nbpConfDiff    =       -1026   #Name confirmed at different socket
-nbpNoConfirm   =       -1025   #nbpNoConfirm
-nbpBuffOvr     =       -1024   #Buffer overflow in LookupName
-noMaskFoundErr =       -1000   #Icon Utilties Error
-kFMFontContainerAccessErr      =       -985    #kFMFontContainerAccessErr
-kFMFontTableAccessErr  =       -984    #kFMFontTableAccessErr
-kFMIterationScopeModifiedErr   =       -983    #kFMIterationScopeModifiedErr
-kFMInvalidFontErr      =       -982    #kFMInvalidFontErr
-kFMInvalidFontFamilyErr        =       -981    #kFMInvalidFontFamilyErr
-kFMIterationCompleted  =       -980    #kFMIterationCompleted
-guestNotAllowedErr     =       -932    #destination port requires authentication
-badLocNameErr  =       -931    #location name malformed
-badServiceMethodErr    =       -930    #illegal service type, or not supported
-noUserRecErr   =       -928    #Invalid user reference number
-authFailErr    =       -927    #unable to authenticate user at destination
-noInformErr    =       -926    #PPCStart failed because destination did not have inform pending
-networkErr     =       -925    #An error has occurred in the network, not too likely
-noUserRefErr   =       -924    #unable to create a new userRefNum
-notLoggedInErr =       -923    #The default userRefNum does not yet exist
-noDefaultUserErr       =       -922    #user hasn't typed in owners name in Network Setup Control Pannel
-badPortNameErr =       -919    #PPCPortRec malformed
-sessClosedErr  =       -917    #session was closed
-portClosedErr  =       -916    #port was closed
-noResponseErr  =       -915    #unable to contact destination
-noToolboxNameErr       =       -914    #A system resource is missing, not too likely
-noMachineNameErr       =       -913    #user hasn't named his Macintosh in the Network Setup Control Panel
-userRejectErr  =       -912    #Destination rejected the session request
-noUserNameErr  =       -911    #user name unknown on destination machine
-portNameExistsErr      =       -910    #port is already open (perhaps in another app)
-badReqErr      =       -909    #bad parameter or invalid state for operation
-noSessionErr   =       -908    #Invalid session reference number
-sessTableErr   =       -907    #Out of session tables, try again later
-destPortErr    =       -906    #Port does not exist at destination
-localOnlyErr   =       -905    #Network activity is currently disabled
-noGlobalsErr   =       -904    #The system is hosed, better re-boot
-noPortErr      =       -903    #Unable to open port or bad portRefNum.  If you're calling
-nameTypeErr    =       -902    #Invalid or inappropriate locationKindSelector in locationName
-notInitErr     =       -900    #PPCToolBox not initialized
-appVersionTooOld       =       -876    #The application's creator and version are incompatible with the current version of Mac OS.
-wrongApplicationPlatform       =       -875    #The application could not launch because the required platform is not available
-hmCloseViewActive      =       -863    #Returned from HMRemoveBalloon if CloseView was active
-hmNoBalloonUp  =       -862    #Returned from HMRemoveBalloon if no balloon was visible when call was made
-hmOperationUnsupported =       -861    #Returned from HMShowBalloon call if bad method passed to routine
-hmUnknownHelpType      =       -859    #Returned if help msg record contained a bad type
-hmWrongVersion =       -858    #Returned if help mgr resource was the wrong version
-hmSkippedBalloon       =       -857    #Returned from calls if helpmsg specified a skip balloon
-hmHelpManagerNotInited =       -855    #Returned from HMGetHelpMenuHandle if help menu not setup
-hmSameAsLastBalloon    =       -854    #Returned from HMShowMenuBalloon if menu & item is same as last time
-hmBalloonAborted       =       -853    #Returned if mouse was moving or mouse wasn't in window port rect
-hmHelpDisabled =       -850    #Show Balloons mode was off, call to routine ignored
-rcDBPackNotInited      =       -813    #attempt to call other routine before InitDBPack
-rcDBWrongVersion       =       -812    #incompatible versions
-rcDBNoHandler  =       -811    #no app handler for specified data type
-rcDBBadAsyncPB =       -810    #tried to kill a bad pb
-rcDBAsyncNotSupp       =       -809    #ddev does not support async calls
-rcDBBadDDEV    =       -808    #bad ddev specified on DBInit
-rcDBBadSessNum =       -807    #bad session number for DBGetConnInfo
-rcDBBadSessID  =       -806    #rcDBBadSessID
-rcDBExec       =       -805    #rcDBExec
-rcDBBreak      =       -804    #rcDBBreak
-rcDBBadType    =       -803    #rcDBBadType
-rcDBError      =       -802    #rcDBError
-rcDBValue      =       -801    #rcDBValue
-rcDBNull       =       -800    #rcDBNull
-noMMUErr       =       -626    #no MMU present
-cannotDeferErr =       -625    #unable to defer additional functions
-interruptsMaskedErr    =       -624    #don¹t call with interrupts masked
-notLockedErr   =       -623    #specified range of memory is not locked
-cannotMakeContiguousErr        =       -622    #cannot make specified range contiguous
-notHeldErr     =       -621    #specified range of memory is not held
-notEnoughMemoryErr     =       -620    #insufficient physical memory
-threadProtocolErr      =       -619    #threadProtocolErr
-threadNotFoundErr      =       -618    #threadNotFoundErr
-threadTooManyReqsErr   =       -617    #threadTooManyReqsErr
-noUserInteractionAllowed       =       -610    #no user interaction allowed
-connectionInvalid      =       -609    #connectionInvalid
-noOutstandingHLE       =       -608    #noOutstandingHLE
-bufferIsSmall  =       -607    #error returns from Post and Accept
-appIsDaemon    =       -606    #app is BG-only, and launch flags disallow this
-appMemFullErr  =       -605    #application SIZE not big enough for launch
-hardwareConfigErr      =       -604    #hardware configuration not correct for call
-protocolErr    =       -603    #app made module calls in improper order
-appModeErr     =       -602    #memory mode is 32-bit, but app not 32-bit clean
-memFragErr     =       -601    #not enough room to launch app w/special requirements
-procNotFound   =       -600    #no eligible process with specified descriptor
-driverHardwareGoneErr  =       -503    #disk driver's hardware was disconnected
-hwParamErr     =       -502    #bad selector for _HWPriv
-teScrapSizeErr =       -501    #scrap item too big for text edit record
-rgnTooBigErr   =       -500    #rgnTooBigErr
-exUserBreak    =       -492    #user debugger break; execute debugger commands on stack
-strUserBreak   =       -491    #user debugger break; display string on stack
-userBreak      =       -490    #user debugger break
-notThePublisherWrn     =       -463    #not the first registered publisher for that container
-containerAlreadyOpenWrn        =       -462    #container already opened by this section
-containerNotFoundWrn   =       -461    #could not find editionContainer at this time
-multiplePublisherWrn   =       -460    #A Publisher is already registered for that container
-badSubPartErr  =       -454    #can not use sub parts in this release
-badEditionFileErr      =       -453    #edition file is corrupt
-notRegisteredSectionErr        =       -452    #not a registered SectionRecord
-badSectionErr  =       -451    #not a valid SectionRecord
-editionMgrInitErr      =       -450    #edition manager not inited by this app
-fsmUnknownFSMMessageErr        =       -438    #unknown message passed to FSM
-fsmNoAlternateStackErr =       -437    #no alternate stack for HFS CI
-fsmBadFSDVersionErr    =       -436    #FSM version incompatible with FSD
-fsmDuplicateFSIDErr    =       -435    #FSID already exists on InstallFS
-fsmBadFSDLenErr        =       -434    #FSD size incompatible with current FSM vers
-fsmBadFFSNameErr       =       -433    #Name length not 1 <= length <= 31
-fsmBusyFFSErr  =       -432    #File system is busy, cannot be removed
-fsmFFSNotFoundErr      =       -431    #Foreign File system does not exist - new Pack2 could return this error too
-btKeyAttrErr   =       -417    #There is no such a key attribute.
-btKeyLenErr    =       -416    #Maximum key length is too long or equal to zero.
-btRecNotFnd    =       -415    #Record cannot be found.
-btDupRecErr    =       -414    #Record already exists.
-btNoSpace      =       -413    #Can't allocate disk space.
-notBTree       =       -410    #The file is not a dictionary.
-gcrOnMFMErr    =       -400    #gcr format on high density media error
-slotNumErr     =       -360    #invalid slot # error
-smRecNotFnd    =       -351    #Record not found in the SRT.
-smSRTOvrFlErr  =       -350    #SRT over flow.
-smNoGoodOpens  =       -349    #No opens were successfull in the loop.
-smOffsetErr    =       -348    #Offset was too big (temporary error
-smByteLanesErr =       -347    #NumByteLanes was determined to be zero.
-smBadsPtrErr   =       -346    #Bad pointer was passed to sCalcsPointer
-smsGetDrvrErr  =       -345    #Error occurred during _sGetDriver.
-smNoMoresRsrcs =       -344    #No more sResources
-smDisDrvrNamErr        =       -343    #Error occurred during _sDisDrvrName.
-smGetDrvrNamErr        =       -342    #Error occurred during _sGetDrvrName.
-smCkStatusErr  =       -341    #Status of slot = fail.
-smBlkMoveErr   =       -340    #_BlockMove error
-smNewPErr      =       -339    #_NewPtr error
-smSelOOBErr    =       -338    #Selector out of bounds error
-smSlotOOBErr   =       -337    #Slot out of bounds error
-smNilsBlockErr =       -336    #Nil sBlock error (Dont allocate and try to use a nil sBlock)
-smsPointerNil  =       -335    #LPointer is nil From sOffsetData. If this error occurs; check sInfo rec for more information.
-smCPUErr       =       -334    #Code revision is wrong
-smCodeRevErr   =       -333    #Code revision is wrong
-smReservedErr  =       -332    #Reserved field not zero
-smBadsList     =       -331    #Bad sList: Id1 < Id2 < Id3 ...format is not followed.
-smBadRefId     =       -330    #Reference Id not found in List
-smBusErrTO     =       -320    #BusError time out.
-smBadBoardId   =       -319    #BoardId was wrong; re-init the PRAM record.
-smReservedSlot =       -318    #slot is reserved, VM should not use this address space.
-smInitTblVErr  =       -317    #An error occurred while trying to initialize the Slot Resource Table.
-smInitStatVErr =       -316    #The InitStatusV field was negative after primary or secondary init.
-smNoBoardId    =       -315    #No Board Id.
-smGetPRErr     =       -314    #Error occurred during _sGetPRAMRec (See SIMStatus).
-smNoBoardSRsrc =       -313    #No Board sResource.
-smDisposePErr  =       -312    #_DisposePointer error
-smFHBlkDispErr =       -311    #Error occurred during _sDisposePtr (Dispose of FHeader block).
-smFHBlockRdErr =       -310    #Error occurred during _sGetFHeader.
-smBLFieldBad   =       -309    #ByteLanes field was bad.
-smUnExBusErr   =       -308    #Unexpected BusError
-smResrvErr     =       -307    #Fatal reserved error. Resreved field <> 0.
-smNosInfoArray =       -306    #No sInfoArray. Memory Mgr error.
-smDisabledSlot =       -305    #This slot is disabled (-305 use to be smLWTstBad)
-smNoDir        =       -304    #Directory offset is Nil
-smRevisionErr  =       -303    #Wrong revison level
-smFormatErr    =       -302    #FHeader Format is not Apple's
-smCRCFail      =       -301    #CRC check failed for declaration data
-smEmptySlot    =       -300    #No card in slot
-nmTypErr       =       -299    #Notification Manager:wrong queue type
-smPriInitErr   =       -293    #Error; Cards could not be initialized.
-smPRAMInitErr  =       -292    #Error; Slot Resource Table could not be initialized.
-smSRTInitErr   =       -291    #Error; Slot Resource Table could not be initialized.
-smSDMInitErr   =       -290    #Error; SDM could not be initialized.
-midiInvalidCmdErr      =       -261    #command not supported for port type
-midiDupIDErr   =       -260    #duplicate client ID
-midiNameLenErr =       -259    #name supplied is longer than 31 characters
-midiWriteErr   =       -258    #MIDIWritePacket couldn't write to all connected ports
-midiNoConErr   =       -257    #no connection exists between specified ports
-midiVConnectRmvd       =       -256    #pending virtual connection removed
-midiVConnectMade       =       -255    #pending virtual connection resolved
-midiVConnectErr        =       -254    #pending virtual connection created
-midiTooManyConsErr     =       -253    #too many connections made
-midiTooManyPortsErr    =       -252    #too many ports already installed in the system
-midiNoPortErr  =       -251    #no port with that ID found
-midiNoClientErr        =       -250    #no client with that ID found
-badInputText   =       -247    #badInputText
-badDictFormat  =       -246    #badDictFormat
-incompatibleVoice      =       -245    #incompatibleVoice
-voiceNotFound  =       -244    #voiceNotFound
-bufTooSmall    =       -243    #bufTooSmall
-synthNotReady  =       -242    #synthNotReady
-synthOpenFailed        =       -241    #synthOpenFailed
-noSynthFound   =       -240    #noSynthFound
-siUnknownQuality       =       -232    #invalid quality selector (returned by driver)
-siUnknownInfoType      =       -231    #invalid info type selector (returned by driver)
-siInputDeviceErr       =       -230    #input device hardware failure
-siBadRefNum    =       -229    #invalid input device reference number
-siBadDeviceName        =       -228    #input device could not be opened
-siDeviceBusyErr        =       -227    #input device already in use
-siInvalidSampleSize    =       -226    #invalid sample size
-siInvalidSampleRate    =       -225    #invalid sample rate
-siHardDriveTooSlow     =       -224    #hard drive too slow to record to disk
-siInvalidCompression   =       -223    #invalid compression type
-siNoBufferSpecified    =       -222    #returned by synchronous SPBRecord if nil buffer passed
-siBadSoundInDevice     =       -221    #invalid index passed to SoundInGetIndexedDevice
-siNoSoundInHardware    =       -220    #no Sound Input hardware
-siVBRCompressionNotSupported   =       -213    #vbr audio compression not supported for this operation
-noMoreRealTime =       -212    #not enough CPU cycles left to add another task
-channelNotBusy =       -211    #channelNotBusy
-buffersTooSmall        =       -210    #can not operate in the memory allowed
-channelBusy    =       -209    #the Channel is being used for a PFD already
-badFileFormat  =       -208    #was not type AIFF or was of bad format,corrupt
-notEnoughBufferSpace   =       -207    #could not allocate enough memory
-badFormat      =       -206    #Sound Manager Error Returns
-badChannel     =       -205    #Sound Manager Error Returns
-resProblem     =       -204    #Sound Manager Error Returns
-queueFull      =       -203    #Sound Manager Error Returns
-notEnoughHardwareErr   =       -201    #Sound Manager Error Returns
-noHardwareErr  =       -200    #Sound Manager Error Returns
-mapReadErr     =       -199    #map inconsistent with operation
-resAttrErr     =       -198    #attribute inconsistent with operation
-rmvRefFailed   =       -197    #RmveReference failed
-rmvResFailed   =       -196    #RmveResource failed
-addRefFailed   =       -195    #AddReference failed
-addResFailed   =       -194    #AddResource failed
-resFNotFound   =       -193    #Resource file not found
-resNotFound    =       -192    #Resource not found
-inputOutOfBounds       =       -190    #Offset of Count out of bounds
-writingPastEnd =       -189    #Writing past end of file
-resourceInMemory       =       -188    #Resource already in memory
-CantDecompress =       -186    #resource bent ("the bends") - can't decompress a compressed resource
-badExtResource =       -185    #extended resource has a bad format.
-cmNoCurrentProfile     =       -182    #Responder error
-cmUnsupportedDataType  =       -181    #Responder error
-cmCantDeleteProfile    =       -180    #Responder error
-cmCantXYZ      =       -179    #CMM cant handle XYZ space
-cmCantConcatenateError =       -178    #Profile can't be concatenated
-cmProfilesIdentical    =       -177    #Profiles the same
-cmProfileNotFound      =       -176    #Responder error
-cmMethodNotFound       =       -175    #CMM not present
-cmMethodError  =       -171    #cmMethodError
-cmProfileError =       -170    #cmProfileError
-cDepthErr      =       -157    #invalid pixel depth
-cResErr        =       -156    #invalid resolution for MakeITable
-cDevErr        =       -155    #invalid type of graphics device
-cProtectErr    =       -154    #colorTable entry protection violation
-cRangeErr      =       -153    #range error on colorTable request
-cNoMemErr      =       -152    #failed to allocate memory for structure
-cTempMemErr    =       -151    #failed to allocate memory for temporary structures
-cMatchErr      =       -150    #Color2Index failed to find an index
-insufficientStackErr   =       -149    #insufficientStackErr
-pixMapTooDeepErr       =       -148    #pixMapTooDeepErr
-rgnOverflowErr =       -147    #rgnOverflowErr
-noMemForPictPlaybackErr        =       -145    #noMemForPictPlaybackErr
-userCanceledErr        =       -128    #userCanceledErr
-hMenuFindErr   =       -127    #could not find HMenu's parent in MenuKey (wrong error code - obsolete)
-mBarNFnd       =       -126    #system error code for MBDF not found
-updPixMemErr   =       -125    #insufficient memory to update a pixmap
-volGoneErr     =       -124    #Server volume has been disconnected.
-wrgVolTypErr   =       -123    #Wrong volume type error [operation not supported for MFS]
-badMovErr      =       -122    #Move into offspring error
-tmwdoErr       =       -121    #No free WDCB available
-dirNFErr       =       -120    #Directory not found
-memLockedErr   =       -117    #trying to move a locked block (MoveHHi)
-memSCErr       =       -116    #Size Check failed
-memBCErr       =       -115    #Block Check failed
-memPCErr       =       -114    #Pointer Check failed
-memAZErr       =       -113    #Address in zone check failed
-memPurErr      =       -112    #trying to purge a locked or non-purgeable block
-memWZErr       =       -111    #WhichZone failed (applied to free block)
-memAdrErr      =       -110    #address was odd; or out of range
-nilHandleErr   =       -109    #Master Pointer was NIL in HandleZone or other
-memFullErr     =       -108    #Not enough room in heap zone
-noTypeErr      =       -102    #No object of that type in scrap
-noScrapErr     =       -100    #No scrap exists error
-memROZWarn     =       -99     #soft error in ROZ
-portNotCf      =       -98     #driver Open error code (parameter RAM not configured for this connection)
-portInUse      =       -97     #driver Open error code (port is in use)
-portNotPwr     =       -96     #serial port not currently powered
-excessCollsns  =       -95     #excessive collisions on write
-lapProtErr     =       -94     #error in attaching/detaching protocol
-noBridgeErr    =       -93     #no network bridge for non-local send
-eLenErr        =       -92     #Length error ddpLenErr
-eMultiErr      =       -91     #Multicast address error ddpSktErr
-breakRecd      =       -90     #Break received (SCC)
-rcvrErr        =       -89     #SCC receiver error (framing; parity; OR)
-prInitErr      =       -88     #InitUtil found the parameter ram uninitialized
-prWrErr        =       -87     #parameter ram written didn't read-verify
-clkWrErr       =       -86     #time written did not verify
-clkRdErr       =       -85     #unable to read same clock value twice
-verErr =       -84     #track failed to verify
-fmt2Err        =       -83     #can't get enough sync
-fmt1Err        =       -82     #can't find sector 0 after track format
-sectNFErr      =       -81     #sector number never found on a track
-seekErr        =       -80     #track number wrong on address mark
-spdAdjErr      =       -79     #unable to correctly adjust disk speed
-twoSideErr     =       -78     #tried to read 2nd side on a 1-sided drive
-initIWMErr     =       -77     #unable to initialize IWM
-tk0BadErr      =       -76     #track 0 detect doesn't change
-cantStepErr    =       -75     #step handshake failed
-wrUnderrun     =       -74     #write underrun occurred
-badDBtSlp      =       -73     #bad data mark bit slip nibbles
-badDCksum      =       -72     #bad data mark checksum
-noDtaMkErr     =       -71     #couldn't find a data mark header
-badBtSlpErr    =       -70     #bad addr mark bit slip nibbles
-badCksmErr     =       -69     #addr mark checksum didn't check
-dataVerErr     =       -68     #read verify compare failed
-noAdrMkErr     =       -67     #couldn't find valid addr mark
-noNybErr       =       -66     #couldn't find 5 nybbles in 200 tries
-offLinErr      =       -65     #r/w requested for an off-line drive
-fontDecError   =       -64     #error during font declaration
-wrPermErr      =       -61     #write permissions error
-badMDBErr      =       -60     #bad master directory block
-fsRnErr        =       -59     #file system internal error:during rename the old entry was deleted but could not be restored.
-extFSErr       =       -58     #volume in question belongs to an external fs
-noMacDskErr    =       -57     #not a mac diskette (sig bytes are wrong)
-nsDrvErr       =       -56     #no such drive (tried to mount a bad drive num)
-volOnLinErr    =       -55     #drive volume already on-line at MountVol
-permErr        =       -54     #permissions error (on file open)
-volOffLinErr   =       -53     #volume not on line error (was Ejected)
-gfpErr =       -52     #get file position error
-rfNumErr       =       -51     #refnum error
-paramErr       =       -50     #error in user parameter list
-opWrErr        =       -49     #file already open with with write permission
-dupFNErr       =       -48     #duplicate filename (rename)
-fBsyErr        =       -47     #File is busy (delete)
-vLckdErr       =       -46     #volume is locked
-fLckdErr       =       -45     #file is locked
-wPrErr =       -44     #diskette is write protected.
-fnfErr =       -43     #File not found
-tmfoErr        =       -42     #too many files open
-mFulErr        =       -41     #memory full (open) or file won't fit (load)
-posErr =       -40     #tried to position to before start of file (r/w)
-eofErr =       -39     #End of file
-fnOpnErr       =       -38     #File not open
-bdNamErr       =       -37     #there may be no bad names in the final system!
-ioErr  =       -36     #I/O error (bummers)
-nsvErr =       -35     #no such volume
-dskFulErr      =       -34     #disk full
-dirFulErr      =       -33     #Directory full
-dceExtErr      =       -30     #dce extension error
-unitTblFullErr =       -29     #unit table has no more entries
-notOpenErr     =       -28     #Couldn't rd/wr/ctl/sts cause driver not opened
-iIOAbortErr    =       -27     #IO abort error (Printing Manager)
-dInstErr       =       -26     #DrvrInstall couldn't find driver in resources
-dRemovErr      =       -25     #tried to remove an open driver
-closErr        =       -24     #I/O System Errors
-openErr        =       -23     #I/O System Errors
-unitEmptyErr   =       -22     #I/O System Errors
-badUnitErr     =       -21     #I/O System Errors
-writErr        =       -20     #I/O System Errors
-readErr        =       -19     #I/O System Errors
-statusErr      =       -18     #I/O System Errors
-controlErr     =       -17     #I/O System Errors
-dsExtensionsDisabled   =       -13     #say Â³Extensions Disabled²
-dsHD20Installed        =       -12     #say Â³HD20 Startup²
-dsDisassemblerInstalled        =       -11     #say Â³Disassembler Installed²
-dsMacsBugInstalled     =       -10     #say Â³MacsBug Installed²
-seNoDB =       -8      #no debugger installed to handle debugger command
-SlpTypeErr     =       -5      #invalid queue element
-unimpErr       =       -4      #unimplemented core routine
-corErr =       -3      #core routine number out of range
-dsNoExtsDisassembler   =       -2      #not a SysErr, just a placeholder
-qErr   =       -1      #queue element not found during deletion
-tsmComponentNoErr      =       0       #component result = no error
-EPERM  =       1       #Operation not permitted
-ENOENT =       2       #No such file or directory
-ESRCH  =       3       #No such process
-EINTR  =       4       #Interrupted system call
-EIO    =       5       #Input/output error
-ENXIO  =       6       #Device not configured
-E2BIG  =       7       #Argument list too long
-ENOEXEC        =       8       #Exec format error
-EBADF  =       9       #Bad file descriptor
-ECHILD =       10      #No child processes
-EDEADLK        =       11      #Resource deadlock avoided
-ENOMEM =       12      #Cannot allocate memory
-EACCES =       13      #Permission denied
-EFAULT =       14      #Bad address
-ECANCELED      =       15      #Operation cancelled
-EBUSY  =       16      #Device busy
-EEXIST =       17      #File exists
-EXDEV  =       18      #Cross-device link
-ENODEV =       19      #Operation not supported by device
-ENOTDIR        =       20      #Not a directory
-EISDIR =       21      #Is a directory
-EINVAL =       22      #Invalid argument
-ENFILE =       23      #Too many open files in system
-EMFILE =       24      #Too many open files
-ENOTTY =       25      #Inappropriate ioctl for device
-EFBIG  =       27      #File too large
-ENOSPC =       28      #No space left on device
-ESPIPE =       29      #Illegal seek
-EROFS  =       30      #Read-only file system
-EMLINK =       31      #Too many links
-EPIPE  =       32      #Broken pipe
-EDOM   =       33      #Numerical argument out of domain
-ERANGE =       34      #Result too large
-EAGAIN =       35      #Resource temporarily unavailable
-EINPROGRESS    =       36      #Operation now in progress
-EALREADY       =       37      #Operation already in progress
-ENOTSOCK       =       38      #Socket operation on non-socket
-EDESTADDRREQ   =       39      #Destination address required
-EMSGSIZE       =       40      #Message too long
-EPROTOTYPE     =       41      #Protocol wrong type for socket
-ENOPROTOOPT    =       42      #Protocol not available
-EPROTONOSUPPORT        =       43      #Protocol not supported
-ESOCKTNOSUPPORT        =       44      #Socket type not supported
-EOPNOTSUPP     =       45      #Operation not supported
-EPFNOSUPPORT   =       46      #Protocol family not supported
-EAFNOSUPPORT   =       47      #Address family not supported by protocol family
-EADDRINUSE     =       48      #Address already in use
-EADDRNOTAVAIL  =       49      #Can't assign requested address
-ENETDOWN       =       50      #Network is down
-ENETUNREACH    =       51      #Network is unreachable
-ENETRESET      =       52      #Network dropped connection on reset
-ECONNABORTED   =       53      #Software caused connection abort
-ECONNRESET     =       54      #Connection reset by peer
-ENOBUFS        =       55      #No buffer space available
-EISCONN        =       56      #Socket is already connected
-ENOTCONN       =       57      #Socket is not connected
-ESHUTDOWN      =       58      #Can't send after socket shutdown
-ETOOMANYREFS   =       59      #Too many references: can't splice
-ETIMEDOUT      =       60      #Operation timed out
-ECONNREFUSED   =       61      #Connection refused
-ELOOP  =       62      #Too many levels of symbolic links
-ENAMETOOLONG   =       63      #File name too long
-EHOSTDOWN      =       64      #Host is down
-EHOSTUNREACH   =       65      #No route to host
-ENOTEMPTY      =       66      #Directory not empty
-ELOOK  =       67      #Internal mapping for kOTLookErr, don't return to client
-ENOLCK =       77      #No locks available
-ENOSYS =       78      #Function not implemented
diff --git a/Mac/Lib/test/tlist_dialog.rsrc b/Mac/Lib/test/tlist_dialog.rsrc
deleted file mode 100644 (file)
index a76ade8..0000000
Binary files a/Mac/Lib/test/tlist_dialog.rsrc and /dev/null differ
diff --git a/Mac/MPW/buildall b/Mac/MPW/buildall
deleted file mode 100644 (file)
index 5b1794a..0000000
+++ /dev/null
@@ -1,29 +0,0 @@
-Set Defines            "-d MPW -d HAVE_CONFIG_H"
-Set Includes   "-i :: -i ::Include -i ::Mac"
-Set SymOptions         "-sym off"
-Set ModelOptions "-model far"
-Set OtherOptions "-warnings off"
-Set LinkOptions "{SymOptions} {ModelOptions}"
-Set COptions   "{OtherOptions} {SymOptions} {ModelOptions} {Defines} {Includes}"
-# For compiling code resources; Restrictions apply
-Set ResCOptions "{SymOptions} -model near -b {Defines} {Includes} " 
-
-Export ResCOptions
-Export COptions
-Export LinkOptions
-
-# modules with the source in a single sub directory
-Date
-Directory {Python}
-for MODULE in Parser Mac Modules Objects Python 
-       Directory :{MODULE}:
-       Echo "### `Directory`: make {1}"
-       make {1} > makefile.out
-       makefile.out
-       Directory ::
-end
-
-Echo "### `Directory`: make {1}"
-make {1} > makefile.out
-makefile.out
-
diff --git a/Mac/Modules/Nav.c b/Mac/Modules/Nav.c
deleted file mode 100644 (file)
index 934dc87..0000000
+++ /dev/null
@@ -1,973 +0,0 @@
-/***********************************************************
-Copyright 1991-1995 by Stichting Mathematisch Centrum, Amsterdam,
-The Netherlands.
-
-                        All Rights Reserved
-
-Permission to use, copy, modify, and distribute this software and its
-documentation for any purpose and without fee is hereby granted,
-provided that the above copyright notice appear in all copies and that
-both that copyright notice and this permission notice appear in
-supporting documentation, and that the names of Stichting Mathematisch
-Centrum or CWI or Corporation for National Research Initiatives or
-CNRI not be used in advertising or publicity pertaining to
-distribution of the software without specific, written prior
-permission.
-
-While CWI is the initial source for this software, a modified version
-is made available by the Corporation for National Research Initiatives
-(CNRI) at the Internet address ftp://ftp.python.org.
-
-STICHTING MATHEMATISCH CENTRUM AND CNRI DISCLAIM ALL WARRANTIES WITH
-REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF
-MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL STICHTING MATHEMATISCH
-CENTRUM OR CNRI BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL
-DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
-PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
-TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
-PERFORMANCE OF THIS SOFTWARE.
-
-******************************************************************/
-
-#include "Python.h"
-#include "macglue.h"
-#include "pymactoolbox.h"
-#include <Navigation.h>
-
-static PyObject *ErrorObject;
-
-static NavEventUPP my_eventProcUPP;
-static NavPreviewUPP my_previewProcUPP;
-static NavObjectFilterUPP my_filterProcUPP;
-
-/* Callback functions */
-static pascal void
-my_eventProc(NavEventCallbackMessage callBackSelector,
-                        NavCBRecPtr callBackParms,
-                        NavCallBackUserData callbackUD)
-{
-       PyObject *dict = (PyObject *)callbackUD;
-       PyObject *pyfunc;
-       PyObject *rv;
-       
-       if (!dict) return;
-       if ( (pyfunc = PyDict_GetItemString(dict, "eventProc")) == NULL ) {
-               PyErr_Clear();
-               return;
-       }
-       if ( pyfunc == Py_None ) {
-               /* Special case: give update events to the Python event handling code */
-               if ( callBackSelector == kNavCBEvent && 
-                               callBackParms->eventData.eventDataParms.event->what == updateEvt)
-                       PyMac_HandleEvent(callBackParms->eventData.eventDataParms.event);
-               /* Ignore others */
-               return;
-       }
-       rv = PyObject_CallFunction(pyfunc, "ls#", (long)callBackSelector,
-                       (void *)callBackParms, sizeof(NavCBRec));
-       if ( rv )
-               Py_DECREF(rv);
-       else {
-               fprintf(stderr, "Nav: exception in eventProc callback\n");
-               PyErr_Clear();
-       }
-}
-
-static pascal Boolean
-my_previewProc(NavCBRecPtr callBackParms,
-                          NavCallBackUserData callbackUD)
-{
-       PyObject *dict = (PyObject *)callbackUD;
-       PyObject *pyfunc;
-       PyObject *rv;
-       Boolean c_rv = false;
-       
-       if (!dict) return;
-       if ( (pyfunc = PyDict_GetItemString(dict, "previewProc")) == NULL ) {
-               PyErr_Clear();
-               return;
-       }
-       rv = PyObject_CallFunction(pyfunc, "s#", (void *)callBackParms, sizeof(NavCBRec));
-       if ( rv ) {
-               c_rv = PyObject_IsTrue(rv);
-               Py_DECREF(rv);
-       } else {
-               fprintf(stderr, "Nav: exception in previewProc callback\n");
-               PyErr_Clear();
-       }
-       return c_rv;
-}
-
-static pascal Boolean
-my_filterProc(AEDesc *theItem, void *info,
-                         NavCallBackUserData callbackUD,
-                         NavFilterModes filterMode)
-{
-       PyObject *dict = (PyObject *)callbackUD;
-       PyObject *pyfunc;
-       PyObject *rv;
-       Boolean c_rv = false;
-       
-       if (!dict) return;
-       if ( (pyfunc = PyDict_GetItemString(dict, "filterProc")) == NULL ) {
-               PyErr_Clear();
-               return;
-       }
-       rv = PyObject_CallFunction(pyfunc, "O&s#h",
-               AEDesc_New, theItem, info, sizeof(NavFileOrFolderInfo), (short)filterMode);
-       if ( rv ) {
-               c_rv = PyObject_IsTrue(rv);
-               Py_DECREF(rv);
-       } else {
-               fprintf(stderr, "Nav: exception in filterProc callback\n");
-               PyErr_Clear();
-       }
-       return c_rv;
-}
-
-/* ----------------------------------------------------- */
-static int
-filldialogoptions(PyObject *d,
-               AEDesc **defaultLocationP,
-               NavDialogOptions *opt,
-               NavEventUPP *eventProcP,
-               NavPreviewUPP *previewProcP,
-               NavObjectFilterUPP *filterProcP,
-               NavTypeListHandle *typeListP,
-               OSType *fileTypeP,
-               OSType *fileCreatorP)
-{
-       int pos = 0;
-       PyObject *key, *value;
-       char *keystr;
-       AEDesc *defaultLocation_storage;
-       
-       NavGetDefaultDialogOptions(opt);
-
-       while ( PyDict_Next(d, &pos, &key, &value) ) {
-               if ( !key || !value || !PyString_Check(key) ) {
-                       PyErr_SetString(ErrorObject, "DialogOption has non-string key");
-                       return 0;
-               }
-               keystr = PyString_AsString(key);
-               if( strcmp(keystr, "defaultLocation") == 0 ) {
-                       if ( (defaultLocation_storage = PyMem_NEW(AEDesc, 1)) == NULL ) {
-                               PyErr_NoMemory();
-                               return 0;
-                       }
-                       if ( !PyArg_Parse(value, "O&", AEDesc_Convert, defaultLocation_storage) ) {
-                               PyMem_DEL(defaultLocation_storage);
-                               return 0;
-                       }
-                       *defaultLocationP = defaultLocation_storage;
-               } else if( strcmp(keystr, "version") == 0 ) {
-                       if ( !PyArg_Parse(value, "h", &opt->version) )
-                               return 0;
-               } else if( strcmp(keystr, "dialogOptionFlags") == 0 ) {
-                       if ( !PyArg_Parse(value, "l", &opt->dialogOptionFlags) )
-                               return 0;
-               } else if( strcmp(keystr, "location") == 0 ) {
-                       if ( !PyArg_Parse(value, "O&", PyMac_GetPoint, &opt->location) )
-                               return 0;
-               } else if( strcmp(keystr, "clientName") == 0 ) {
-                       if ( !PyArg_Parse(value, "O&", PyMac_GetStr255, &opt->clientName) )
-                               return 0;
-               } else if( strcmp(keystr, "windowTitle") == 0 ) {
-                       if ( !PyArg_Parse(value, "O&", PyMac_GetStr255, &opt->windowTitle) )
-                               return 0;
-               } else if( strcmp(keystr, "actionButtonLabel") == 0 ) {
-                       if ( !PyArg_Parse(value, "O&", PyMac_GetStr255, &opt->actionButtonLabel) )
-                               return 0;
-               } else if( strcmp(keystr, "cancelButtonLabel") == 0 ) {
-                       if ( !PyArg_Parse(value, "O&", PyMac_GetStr255, &opt->cancelButtonLabel) )
-                               return 0;
-               } else if( strcmp(keystr, "savedFileName") == 0 ) {
-                       if ( !PyArg_Parse(value, "O&", PyMac_GetStr255, &opt->savedFileName) )
-                               return 0;
-               } else if( strcmp(keystr, "message") == 0 ) {
-                       if ( !PyArg_Parse(value, "O&", PyMac_GetStr255, &opt->message) )
-                               return 0;
-               } else if( strcmp(keystr, "preferenceKey") == 0 ) {
-                       if ( !PyArg_Parse(value, "O&", PyMac_GetOSType, &opt->preferenceKey) )
-                               return 0;
-               } else if( strcmp(keystr, "popupExtension") == 0 ) {
-                       if ( !PyArg_Parse(value, "O&", ResObj_Convert, &opt->popupExtension) )
-                               return 0;
-               } else if( eventProcP && strcmp(keystr, "eventProc") == 0 ) {
-                       *eventProcP = my_eventProcUPP;
-               } else if( previewProcP && strcmp(keystr, "previewProc") == 0 ) {
-                       PyErr_SetString(ErrorObject, "No callbacks implemented yet");
-                       return 0;
-               } else if( filterProcP && strcmp(keystr, "filterProc") == 0 ) {
-                       PyErr_SetString(ErrorObject, "No callbacks implemented yet");
-                       return 0;
-               } else if( typeListP && strcmp(keystr, "typeList") == 0 ) {
-                       if ( !PyArg_Parse(value, "O&", ResObj_Convert, typeListP) )
-                               return 0;
-               } else if( fileTypeP && strcmp(keystr, "fileType") == 0 ) {
-                       if ( !PyArg_Parse(value, "O&", PyMac_GetOSType, fileTypeP) )
-                               return 0;
-               } else if( fileCreatorP && strcmp(keystr, "fileCreator") == 0 ) {
-                       if ( !PyArg_Parse(value, "O&", PyMac_GetOSType, fileCreatorP) )
-                               return 0;
-               } else {
-                       PyErr_Format(ErrorObject, "Unknown DialogOption key: %s", keystr);
-                       return 0;
-               }
-       }
-       return 1;
-}
-
-/* ----------------------------------------------------- */
-
-/* Declarations for objects of type NavReplyRecord */
-
-typedef struct {
-       PyObject_HEAD
-       NavReplyRecord itself;
-} navrrobject;
-
-staticforward PyTypeObject Navrrtype;
-
-
-
-/* ---------------------------------------------------------------- */
-
-static char nav_NavTranslateFile__doc__[] =
-"(NavTranslationOptions)->None"
-;
-
-static PyObject *
-nav_NavTranslateFile(self, args)
-       navrrobject *self;
-       PyObject *args;
-{
-       NavTranslationOptions howToTranslate;
-       OSErr err;
-
-       if (!PyArg_ParseTuple(args, "l", &howToTranslate))
-               return NULL;
-       err = NavTranslateFile(&self->itself, howToTranslate);
-       if ( err ) {
-               PyErr_Mac(ErrorObject, err);
-               return NULL;
-       }
-       Py_INCREF(Py_None);
-       return Py_None;
-}
-
-static char nav_NavCompleteSave__doc__[] =
-"(NavTranslationOptions)->None"
-;
-
-static PyObject *
-nav_NavCompleteSave(self, args)
-       navrrobject *self;
-       PyObject *args;
-{
-       NavTranslationOptions howToTranslate;
-       OSErr err;
-
-       if (!PyArg_ParseTuple(args, "l", &howToTranslate))
-               return NULL;
-       err = NavCompleteSave(&self->itself, howToTranslate);
-       if ( err ) {
-               PyErr_Mac(ErrorObject, err);
-               return NULL;
-       }
-       Py_INCREF(Py_None);
-       return Py_None;
-}
-
-
-static struct PyMethodDef navrr_methods[] = {
- {"NavTranslateFile",  (PyCFunction)nav_NavTranslateFile,      METH_VARARGS,   nav_NavTranslateFile__doc__},
- {"NavCompleteSave",   (PyCFunction)nav_NavCompleteSave,       METH_VARARGS,   nav_NavCompleteSave__doc__},
-       
-       {NULL,          NULL}           /* sentinel */
-};
-
-/* ---------- */
-
-
-static navrrobject *
-newnavrrobject(NavReplyRecord *itself)
-{
-       navrrobject *self;
-       
-       self = PyObject_NEW(navrrobject, &Navrrtype);
-       if (self == NULL)
-               return NULL;
-       self->itself = *itself;
-       return self;
-}
-
-
-static void
-navrr_dealloc(self)
-       navrrobject *self;
-{
-       NavDisposeReply(&self->itself);
-       PyMem_DEL(self);
-}
-
-static PyObject *
-navrr_getattr(self, name)
-       navrrobject *self;
-       char *name;
-{
-       FSSpec fss;
-       
-       if( strcmp(name, "__members__") == 0 )
-               return Py_BuildValue("sssssss", "version", "validRecord", "replacing",
-                       "isStationery", "translationNeeded", "selection", "fileTranslation");
-       if( strcmp(name, "version") == 0 )
-               return Py_BuildValue("h", self->itself.version);
-       if( strcmp(name, "validRecord") == 0 )
-               return Py_BuildValue("l", (long)self->itself.validRecord);
-       if( strcmp(name, "replacing") == 0 )
-               return Py_BuildValue("l", (long)self->itself.replacing);
-       if( strcmp(name, "isStationery") == 0 )
-               return Py_BuildValue("l", (long)self->itself.isStationery);
-       if( strcmp(name, "translationNeeded") == 0 )
-               return Py_BuildValue("l", (long)self->itself.translationNeeded);
-       if( strcmp(name, "selection") == 0 ) {
-               SInt32 i, count;
-               OSErr err;
-               PyObject *rv, *rvitem;
-               AEDesc desc;
-               
-               if (err=AECountItems(&self->itself.selection, &count)) {
-                       PyErr_Mac(ErrorObject, err);
-                       return NULL;
-               }
-               if ( (rv=PyList_New(count)) == NULL )
-                       return NULL;
-               for(i=0; i<count; i++) {
-                       desc.dataHandle = NULL;
-                       if (err=AEGetNthDesc(&self->itself.selection, i+1, typeFSS, NULL, &desc)) {
-                               Py_DECREF(rv);
-                               PyErr_Mac(ErrorObject, err);
-                               return NULL;
-                       }
-#if TARGET_API_MAC_CARBON
-                       if (err=AEGetDescData(&desc, &fss, sizeof(FSSpec))) {
-                               Py_DECREF(rv);
-                               PyErr_Mac(ErrorObject, err);
-                               return NULL;
-                       }
-#else
-                       memcpy((void *)&fss, (void *)*desc.dataHandle, sizeof(FSSpec));
-#endif
-                       rvitem = PyMac_BuildFSSpec(&fss);
-                       PyList_SetItem(rv, i, rvitem);
-                       AEDisposeDesc(&desc);
-               }
-               return rv;
-       }
-       if( strcmp(name, "fileTranslation") == 0 )
-               return ResObj_New((Handle)self->itself.fileTranslation);
-
-
-       return Py_FindMethod(navrr_methods, (PyObject *)self, name);
-}
-
-static int
-navrr_setattr(self, name, v)
-       navrrobject *self;
-       char *name;
-       PyObject *v;
-{
-       /* Set attribute 'name' to value 'v'. v==NULL means delete */
-       
-       /* XXXX Add your own setattr code here */
-       return -1;
-}
-
-static char Navrrtype__doc__[] = 
-"Record containing result of a Nav file selection call. Use dir() for member names."
-;
-
-static PyTypeObject Navrrtype = {
-       PyObject_HEAD_INIT(&PyType_Type)
-       0,                              /*ob_size*/
-       "NavReplyRecord",                       /*tp_name*/
-       sizeof(navrrobject),            /*tp_basicsize*/
-       0,                              /*tp_itemsize*/
-       /* methods */
-       (destructor)navrr_dealloc,      /*tp_dealloc*/
-       (printfunc)0,           /*tp_print*/
-       (getattrfunc)navrr_getattr,     /*tp_getattr*/
-       (setattrfunc)navrr_setattr,     /*tp_setattr*/
-       (cmpfunc)0,             /*tp_compare*/
-       (reprfunc)0,            /*tp_repr*/
-       0,                      /*tp_as_number*/
-       0,              /*tp_as_sequence*/
-       0,              /*tp_as_mapping*/
-       (hashfunc)0,            /*tp_hash*/
-       (ternaryfunc)0,         /*tp_call*/
-       (reprfunc)0,            /*tp_str*/
-
-       /* Space for future expansion */
-       0L,0L,0L,0L,
-       Navrrtype__doc__ /* Documentation string */
-};
-
-/* End of code for NavReplyRecord objects */
-               
-/* ----------------------------------------------------- */
-
-static char nav_NavGetFile__doc__[] =
-"(DialogOptions dict or kwargs+defaultLocation,eventProc,previewProc,filterProc,typeList) -> NavReplyRecord"
-;
-
-static PyObject *
-nav_NavGetFile(self, args, kw)
-       PyObject *self; /* Not used */
-       PyObject *args;
-       PyObject *kw;
-{
-       PyObject *dict;
-       AEDesc  *defaultLocation = NULL;
-       NavReplyRecord reply;
-       NavDialogOptions dialogOptions;
-       NavEventUPP eventProc = NULL;
-       NavPreviewUPP previewProc = NULL;
-       NavObjectFilterUPP filterProc = NULL;
-       NavTypeListHandle typeList = NULL;
-       OSErr err;
-
-       if ( kw && PyObject_IsTrue(kw) ) {
-               if (!PyArg_ParseTuple(args, ";either keyword arguments or dictionary expected"))
-                       return NULL;
-               dict = kw;
-       } else if (!PyArg_ParseTuple(args, "O!", &PyDict_Type, &dict))
-               return NULL;
-       if (!filldialogoptions(dict, &defaultLocation, &dialogOptions, &eventProc, &previewProc, &filterProc, &typeList, NULL, NULL))
-               return NULL;
-       err = NavGetFile(defaultLocation, &reply, &dialogOptions,
-                       eventProc, previewProc, filterProc, typeList, (void *)dict);
-       PyMem_DEL(defaultLocation);
-       if ( err ) {
-               PyErr_Mac(ErrorObject, err);
-               return NULL;
-       }
-       return (PyObject *)newnavrrobject(&reply);
-}
-
-static char nav_NavPutFile__doc__[] =
-"(DialogOptions dict or kwargs+defaultLocation,eventProc,fileCreator,fileType) -> NavReplyRecord"
-;
-
-static PyObject *
-nav_NavPutFile(self, args, kw)
-       PyObject *self; /* Not used */
-       PyObject *args;
-       PyObject *kw;
-{
-       PyObject *dict;
-       AEDesc  *defaultLocation = NULL;
-       NavReplyRecord reply;
-       NavDialogOptions dialogOptions;
-       NavEventUPP eventProc = NULL;
-       OSType fileType;
-       OSType fileCreator;
-       OSErr err;
-
-       if ( kw && PyObject_IsTrue(kw) ) {
-               if (!PyArg_ParseTuple(args, ";either keyword arguments or dictionary expected"))
-                       return NULL;
-               dict = kw;
-       } else if (!PyArg_ParseTuple(args, "O!", &PyDict_Type, &dict))
-               return NULL;
-       if (!filldialogoptions(dict, &defaultLocation, &dialogOptions, &eventProc, NULL, NULL, NULL, &fileType, &fileCreator))
-               return NULL;
-       err = NavPutFile(defaultLocation, &reply, &dialogOptions,
-                       eventProc, fileType, fileCreator, (void *)dict);
-       PyMem_DEL(defaultLocation);
-       if ( err ) {
-               PyErr_Mac(ErrorObject, err);
-               return NULL;
-       }
-       return (PyObject *)newnavrrobject(&reply);
-}
-
-static char nav_NavAskSaveChanges__doc__[] =
-"(NavAskSaveChangesAction, DialogOptions dict or kwargs+eventProc) -> NavAskSaveChangesResult"
-
-;
-
-static PyObject *
-nav_NavAskSaveChanges(self, args, kw)
-       PyObject *self; /* Not used */
-       PyObject *args;
-       PyObject *kw;
-{
-       PyObject *dict;
-       NavDialogOptions dialogOptions;
-       NavAskSaveChangesAction action;
-       NavAskSaveChangesResult reply;
-       NavEventUPP eventProc = NULL;
-       OSErr err;
-
-       if ( kw && PyObject_IsTrue(kw) ) {
-               if (!PyArg_ParseTuple(args, "l", &action))
-                       return NULL;
-               dict = kw;
-       } else if (!PyArg_ParseTuple(args, "lO!", &action, &PyDict_Type, &dict))
-               return NULL;
-       if (!filldialogoptions(dict, NULL, &dialogOptions, &eventProc, NULL, NULL, NULL, NULL, NULL))
-               return NULL;
-       err = NavAskSaveChanges(&dialogOptions, action, &reply, eventProc, (void *)dict);
-       if ( err ) {
-               PyErr_Mac(ErrorObject, err);
-               return NULL;
-       }
-       return Py_BuildValue("l", (long)reply);
-}
-
-static char nav_NavCustomAskSaveChanges__doc__[] =
-"(DialogOptions dict or kwargs+eventProc) -> NavAskSaveChangesResult"
-;
-
-static PyObject *
-nav_NavCustomAskSaveChanges(self, args, kw)
-       PyObject *self; /* Not used */
-       PyObject *args;
-       PyObject *kw;
-{
-       PyObject *dict;
-       NavDialogOptions dialogOptions;
-       NavAskSaveChangesResult reply;
-       NavEventUPP eventProc = NULL;
-       OSErr err;
-
-       if ( kw && PyObject_IsTrue(kw) ) {
-               if (!PyArg_ParseTuple(args, ";either keyword arguments or dictionary expected"))
-                       return NULL;
-               dict = kw;
-       } else if (!PyArg_ParseTuple(args, "O!", &PyDict_Type, &dict))
-               return NULL;
-       if (!filldialogoptions(dict, NULL, &dialogOptions, &eventProc, NULL, NULL, NULL, NULL, NULL))
-               return NULL;
-       err = NavCustomAskSaveChanges(&dialogOptions, &reply, eventProc, (void *)dict);
-       if ( err ) {
-               PyErr_Mac(ErrorObject, err);
-               return NULL;
-       }
-       return Py_BuildValue("l", (long)reply);
-}
-
-static char nav_NavAskDiscardChanges__doc__[] =
-"(DialogOptions dict or kwargs+eventProc) -> NavAskSaveChangesResult"
-;
-
-static PyObject *
-nav_NavAskDiscardChanges(self, args, kw)
-       PyObject *self; /* Not used */
-       PyObject *args;
-       PyObject *kw;
-{
-       PyObject *dict;
-       NavDialogOptions dialogOptions;
-       NavAskSaveChangesResult reply;
-       NavEventUPP eventProc = NULL;
-       OSErr err;
-
-       if ( kw && PyObject_IsTrue(kw) ) {
-               if (!PyArg_ParseTuple(args, ";either keyword arguments or dictionary expected"))
-                       return NULL;
-               dict = kw;
-       } else if (!PyArg_ParseTuple(args, "O!", &PyDict_Type, &dict))
-               return NULL;
-       if (!filldialogoptions(dict, NULL, &dialogOptions, &eventProc, NULL, NULL, NULL, NULL, NULL))
-               return NULL;
-       err = NavAskDiscardChanges(&dialogOptions, &reply, eventProc, (void *)dict);
-       if ( err ) {
-               PyErr_Mac(ErrorObject, err);
-               return NULL;
-       }
-       return Py_BuildValue("l", (long)reply);
-}
-
-static char nav_NavChooseFile__doc__[] =
-"(DialogOptions dict or kwargs+defaultLocation,eventProc,previewProc,filterProc,typeList) -> NavReplyRecord"
-;
-
-static PyObject *
-nav_NavChooseFile(self, args, kw)
-       PyObject *self; /* Not used */
-       PyObject *args;
-       PyObject *kw;
-{
-       PyObject *dict;
-       AEDesc  *defaultLocation = NULL;
-       NavReplyRecord reply;
-       NavDialogOptions dialogOptions;
-       NavEventUPP eventProc = NULL;
-       NavPreviewUPP previewProc = NULL;
-       NavObjectFilterUPP filterProc = NULL;
-       NavTypeListHandle typeList = NULL;
-       OSErr err;
-
-       if ( kw && PyObject_IsTrue(kw) ) {
-               if (!PyArg_ParseTuple(args, ";either keyword arguments or dictionary expected"))
-                       return NULL;
-               dict = kw;
-       } else if (!PyArg_ParseTuple(args, "O!", &PyDict_Type, &dict))
-               return NULL;
-       if (!filldialogoptions(dict, &defaultLocation, &dialogOptions, &eventProc, &previewProc, &filterProc, &typeList, NULL, NULL))
-               return NULL;
-       err = NavChooseFile(defaultLocation, &reply, &dialogOptions,
-                       eventProc, previewProc, filterProc, typeList, (void *)dict);
-       PyMem_DEL(defaultLocation);
-       if ( err ) {
-               PyErr_Mac(ErrorObject, err);
-               return NULL;
-       }
-       return (PyObject *)newnavrrobject(&reply);
-}
-
-static char nav_NavChooseFolder__doc__[] =
-"(DialogOptions dict or kwargs+defaultLocation,eventProc,filterProc) -> NavReplyRecord"
-;
-
-static PyObject *
-nav_NavChooseFolder(self, args, kw)
-       PyObject *self; /* Not used */
-       PyObject *args;
-       PyObject *kw;
-{
-       PyObject *dict;
-       AEDesc  *defaultLocation = NULL;
-       NavReplyRecord reply;
-       NavDialogOptions dialogOptions;
-       NavEventUPP eventProc = NULL;
-       NavObjectFilterUPP filterProc = NULL;
-       OSErr err;
-
-       if ( kw && PyObject_IsTrue(kw) ) {
-               if (!PyArg_ParseTuple(args, ";either keyword arguments or dictionary expected"))
-                       return NULL;
-               dict = kw;
-       } else if (!PyArg_ParseTuple(args, "O!", &PyDict_Type, &dict))
-               return NULL;
-       if (!filldialogoptions(dict, &defaultLocation, &dialogOptions, &eventProc, NULL, &filterProc, NULL, NULL, NULL))
-               return NULL;
-       err = NavChooseFolder(defaultLocation, &reply, &dialogOptions,
-                       eventProc, filterProc, (void *)dict);
-       PyMem_DEL(defaultLocation);
-       if ( err ) {
-               PyErr_Mac(ErrorObject, err);
-               return NULL;
-       }
-       return (PyObject *)newnavrrobject(&reply);
-}
-
-static char nav_NavChooseVolume__doc__[] =
-"(DialogOptions dict or kwargs+defaultLocation,eventProc,filterProc) -> NavReplyRecord"
-;
-
-static PyObject *
-nav_NavChooseVolume(self, args, kw)
-       PyObject *self; /* Not used */
-       PyObject *args;
-       PyObject *kw;
-{
-       PyObject *dict;
-       AEDesc  *defaultLocation = NULL;
-       NavReplyRecord reply;
-       NavDialogOptions dialogOptions;
-       NavEventUPP eventProc = NULL;
-       NavObjectFilterUPP filterProc = NULL;
-       OSErr err;
-
-       if ( kw && PyObject_IsTrue(kw) ) {
-               if (!PyArg_ParseTuple(args, ";either keyword arguments or dictionary expected"))
-                       return NULL;
-               dict = kw;
-       } else if (!PyArg_ParseTuple(args, "O!", &PyDict_Type, &dict))
-               return NULL;
-       if (!filldialogoptions(dict, &defaultLocation, &dialogOptions, &eventProc, NULL, &filterProc, NULL, NULL, NULL))
-               return NULL;
-       err = NavChooseVolume(defaultLocation, &reply, &dialogOptions,
-                       eventProc, filterProc, (void *)dict);
-       PyMem_DEL(defaultLocation);
-       if ( err ) {
-               PyErr_Mac(ErrorObject, err);
-               return NULL;
-       }
-       return (PyObject *)newnavrrobject(&reply);
-}
-
-static char nav_NavChooseObject__doc__[] =
-"(DialogOptions dict or kwargs+defaultLocation,eventProc,filterProc) -> NavReplyRecord"
-;
-
-static PyObject *
-nav_NavChooseObject(self, args, kw)
-       PyObject *self; /* Not used */
-       PyObject *args;
-       PyObject *kw;
-{
-       PyObject *dict;
-       AEDesc  *defaultLocation = NULL;
-       NavReplyRecord reply;
-       NavDialogOptions dialogOptions;
-       NavEventUPP eventProc = NULL;
-       NavObjectFilterUPP filterProc = NULL;
-       OSErr err;
-
-       if ( kw && PyObject_IsTrue(kw) ) {
-               if (!PyArg_ParseTuple(args, ";either keyword arguments or dictionary expected"))
-                       return NULL;
-               dict = kw;
-       } else if (!PyArg_ParseTuple(args, "O!", &PyDict_Type, &dict))
-               return NULL;
-       if (!filldialogoptions(dict, &defaultLocation, &dialogOptions, &eventProc, NULL, &filterProc, NULL, NULL, NULL))
-               return NULL;
-       err = NavChooseObject(defaultLocation, &reply, &dialogOptions,
-                       eventProc, filterProc, (void *)dict);
-       PyMem_DEL(defaultLocation);
-       if ( err ) {
-               PyErr_Mac(ErrorObject, err);
-               return NULL;
-       }
-       return (PyObject *)newnavrrobject(&reply);
-}
-
-static char nav_NavNewFolder__doc__[] =
-"(DialogOptions dict or kwargs+defaultLocation,eventProc) -> NavReplyRecord"
-;
-
-static PyObject *
-nav_NavNewFolder(self, args, kw)
-       PyObject *self; /* Not used */
-       PyObject *args;
-       PyObject *kw;
-{
-       PyObject *dict;
-       AEDesc  *defaultLocation = NULL;
-       NavReplyRecord reply;
-       NavDialogOptions dialogOptions;
-       NavEventUPP eventProc = NULL;
-       OSErr err;
-
-       if ( kw && PyObject_IsTrue(kw) ) {
-               if (!PyArg_ParseTuple(args, ";either keyword arguments or dictionary expected"))
-                       return NULL;
-               dict = kw;
-       } else if (!PyArg_ParseTuple(args, "O!", &PyDict_Type, &dict))
-               return NULL;
-       if (!filldialogoptions(dict, &defaultLocation, &dialogOptions, &eventProc, NULL, NULL, NULL, NULL, NULL))
-               return NULL;
-       err = NavNewFolder(defaultLocation, &reply, &dialogOptions, eventProc, (void *)dict);
-       PyMem_DEL(defaultLocation);
-       if ( err ) {
-               PyErr_Mac(ErrorObject, err);
-               return NULL;
-       }
-       return (PyObject *)newnavrrobject(&reply);
-}
-
-#if 0
-/* XXXX I don't know what to do with the void * argument */
-static char nav_NavCustomControl__doc__[] =
-""
-;
-
-
-static PyObject *
-nav_NavCustomControl(self, args)
-       PyObject *self; /* Not used */
-       PyObject *args;
-{
-
-       if (!PyArg_ParseTuple(args, ""))
-               return NULL;
-       Py_INCREF(Py_None);
-       return Py_None;
-}
-#endif
-
-static char nav_NavServicesCanRun__doc__[] =
-"()->int"
-;
-
-static PyObject *
-nav_NavServicesCanRun(self, args)
-       PyObject *self; /* Not used */
-       PyObject *args;
-{
-       Boolean rv;
-       if (!PyArg_ParseTuple(args, ""))
-               return NULL;
-       rv = NavServicesCanRun();
-       return Py_BuildValue("l", (long)rv);
-}
-
-static char nav_NavServicesAvailable__doc__[] =
-"()->int"
-;
-
-static PyObject *
-nav_NavServicesAvailable(self, args)
-       PyObject *self; /* Not used */
-       PyObject *args;
-{
-       Boolean rv;
-       
-       if (!PyArg_ParseTuple(args, ""))
-               return NULL;
-       rv = NavServicesAvailable();
-       return Py_BuildValue("l", (long)rv);
-}
-/* XX */
-static char nav_NavLoad__doc__[] =
-"()->None"
-;
-
-static PyObject *
-nav_NavLoad(self, args)
-       PyObject *self; /* Not used */
-       PyObject *args;
-{
-
-       if (!PyArg_ParseTuple(args, ""))
-               return NULL;
-       NavLoad();
-       Py_INCREF(Py_None);
-       return Py_None;
-}
-
-static char nav_NavUnload__doc__[] =
-"()->None"
-;
-
-static PyObject *
-nav_NavUnload(self, args)
-       PyObject *self; /* Not used */
-       PyObject *args;
-{
-
-       if (!PyArg_ParseTuple(args, ""))
-               return NULL;
-       NavUnload();
-       Py_INCREF(Py_None);
-       return Py_None;
-}
-
-static char nav_NavLibraryVersion__doc__[] =
-"()->int"
-;
-
-static PyObject *
-nav_NavLibraryVersion(self, args)
-       PyObject *self; /* Not used */
-       PyObject *args;
-{
-       UInt32 rv;
-       
-       if (!PyArg_ParseTuple(args, ""))
-               return NULL;
-       rv = NavLibraryVersion();
-       return Py_BuildValue("l", (long)rv);
-}
-
-static char nav_NavGetDefaultDialogOptions__doc__[] =
-"()->dict\nPass dict or keyword args with same names to other calls."
-;
-
-static PyObject *
-nav_NavGetDefaultDialogOptions(self, args)
-       PyObject *self; /* Not used */
-       PyObject *args;
-{
-       NavDialogOptions dialogOptions;
-       OSErr err;
-       
-       err = NavGetDefaultDialogOptions(&dialogOptions);
-       if ( err ) {
-               PyErr_Mac(ErrorObject, err);
-               return NULL;
-       }
-       return Py_BuildValue("{s:h,s:l,s:O&,s:O&,s:O&,s:O&,s:O&,s:O&,s:O&,s:O&,s:O&}",
-               "version", dialogOptions.version,
-               "dialogOptionFlags", dialogOptions.dialogOptionFlags,
-               "location", PyMac_BuildPoint, dialogOptions.location,
-               "clientName", PyMac_BuildStr255, &dialogOptions.clientName,
-               "windowTitle", PyMac_BuildStr255, &dialogOptions.windowTitle,
-               "actionButtonLabel", PyMac_BuildStr255, &dialogOptions.actionButtonLabel,
-               "cancelButtonLabel", PyMac_BuildStr255, &dialogOptions.cancelButtonLabel,
-               "savedFileName", PyMac_BuildStr255, &dialogOptions.savedFileName,
-               "message", PyMac_BuildStr255, &dialogOptions.message,
-               "preferenceKey", PyMac_BuildOSType, dialogOptions.preferenceKey,
-               "popupExtension", OptResObj_New, dialogOptions.popupExtension);
-}
-
-/* List of methods defined in the module */
-
-static struct PyMethodDef nav_methods[] = {
-       {"NavGetFile",  (PyCFunction)nav_NavGetFile,    METH_VARARGS|METH_KEYWORDS,     nav_NavGetFile__doc__},
- {"NavPutFile",        (PyCFunction)nav_NavPutFile,    METH_VARARGS|METH_KEYWORDS,     nav_NavPutFile__doc__},
- {"NavAskSaveChanges", (PyCFunction)nav_NavAskSaveChanges,     METH_VARARGS|METH_KEYWORDS,     nav_NavAskSaveChanges__doc__},
- {"NavCustomAskSaveChanges",   (PyCFunction)nav_NavCustomAskSaveChanges,       METH_VARARGS|METH_KEYWORDS,     nav_NavCustomAskSaveChanges__doc__},
- {"NavAskDiscardChanges",      (PyCFunction)nav_NavAskDiscardChanges,  METH_VARARGS|METH_KEYWORDS,     nav_NavAskDiscardChanges__doc__},
- {"NavChooseFile",     (PyCFunction)nav_NavChooseFile, METH_VARARGS|METH_KEYWORDS,     nav_NavChooseFile__doc__},
- {"NavChooseFolder",   (PyCFunction)nav_NavChooseFolder,       METH_VARARGS|METH_KEYWORDS,     nav_NavChooseFolder__doc__},
- {"NavChooseVolume",   (PyCFunction)nav_NavChooseVolume,       METH_VARARGS|METH_KEYWORDS,     nav_NavChooseVolume__doc__},
- {"NavChooseObject",   (PyCFunction)nav_NavChooseObject,       METH_VARARGS|METH_KEYWORDS,     nav_NavChooseObject__doc__},
- {"NavNewFolder",      (PyCFunction)nav_NavNewFolder,  METH_VARARGS|METH_KEYWORDS,     nav_NavNewFolder__doc__},
-#if 0
- {"NavCustomControl",  (PyCFunction)nav_NavCustomControl,      METH_VARARGS,   nav_NavCustomControl__doc__},
-#endif
- {"NavServicesCanRun", (PyCFunction)nav_NavServicesCanRun,     METH_VARARGS,   nav_NavServicesCanRun__doc__},
- {"NavServicesAvailable",      (PyCFunction)nav_NavServicesAvailable,  METH_VARARGS,   nav_NavServicesAvailable__doc__},
- {"NavLoad",   (PyCFunction)nav_NavLoad,       METH_VARARGS,   nav_NavLoad__doc__},
- {"NavUnload", (PyCFunction)nav_NavUnload,     METH_VARARGS,   nav_NavUnload__doc__},
- {"NavLibraryVersion", (PyCFunction)nav_NavLibraryVersion,     METH_VARARGS,   nav_NavLibraryVersion__doc__},
- {"NavGetDefaultDialogOptions",        (PyCFunction)nav_NavGetDefaultDialogOptions,    METH_VARARGS,   nav_NavGetDefaultDialogOptions__doc__},
-       {NULL,   (PyCFunction)NULL, 0, NULL}            /* sentinel */
-};
-
-
-/* Initialization function for the module (*must* be called initNav) */
-
-static char Nav_module_documentation[] = 
-"Interface to Navigation Services\n"
-"Most calls accept a NavDialogOptions dictionary or keywords with the same names, pass {}\n"
-"if you want the default options.\n"
-"Use NavGetDefaultDialogOptions() to find out common option names.\n"
-"See individual docstrings for additional keyword args/dictentries supported by each call.\n"
-"Pass None as eventProc to get movable-modal dialogs that process updates through the standard Python mechanism."
-;
-
-void
-initNav()
-{
-       PyObject *m, *d;
-
-       /* Test that we have NavServices */
-       if ( !NavServicesAvailable() ) {
-               PyErr_SetString(PyExc_ImportError, "Navigation Services not available");
-               return;
-       }
-       /* Create the module and add the functions */
-       m = Py_InitModule4("Nav", nav_methods,
-               Nav_module_documentation,
-               (PyObject*)NULL,PYTHON_API_VERSION);
-
-       /* Add some symbolic constants to the module */
-       d = PyModule_GetDict(m);
-       ErrorObject = PyString_FromString("Nav.error");
-       PyDict_SetItemString(d, "error", ErrorObject);
-
-       /* XXXX Add constants here */
-       
-       /* Set UPPs */
-       my_eventProcUPP = NewNavEventProc(my_eventProc);
-       my_previewProcUPP = NewNavPreviewProc(my_previewProc);
-       my_filterProcUPP = NewNavObjectFilterProc(my_filterProc);
-       
-}
-
diff --git a/Mac/Modules/ae/AEmodule.c b/Mac/Modules/ae/AEmodule.c
deleted file mode 100644 (file)
index e0ce470..0000000
+++ /dev/null
@@ -1,1349 +0,0 @@
-
-/* =========================== Module AE ============================ */
-
-#include "Python.h"
-
-
-
-#include "macglue.h"
-#include "pymactoolbox.h"
-
-#include <AppleEvents.h>
-#include <AEObjects.h>
-
-static pascal OSErr GenericEventHandler(); /* Forward */
-
-AEEventHandlerUPP upp_GenericEventHandler;
-
-static pascal Boolean AEIdleProc(EventRecord *theEvent, long *sleepTime, RgnHandle *mouseRgn)
-{
-       if ( PyOS_InterruptOccurred() )
-               return 1;
-       if ( PyMac_HandleEvent(theEvent) < 0 ) {
-               PySys_WriteStderr("Exception in user event handler during AE processing\n");
-               PyErr_Clear();
-       }
-       return 0;
-}
-
-AEIdleUPP upp_AEIdleProc;
-
-static PyObject *AE_Error;
-
-/* ----------------------- Object type AEDesc ----------------------- */
-
-PyTypeObject AEDesc_Type;
-
-#define AEDesc_Check(x) ((x)->ob_type == &AEDesc_Type)
-
-typedef struct AEDescObject {
-       PyObject_HEAD
-       AEDesc ob_itself;
-} AEDescObject;
-
-PyObject *AEDesc_New(itself)
-       AEDesc *itself;
-{
-       AEDescObject *it;
-       it = PyObject_NEW(AEDescObject, &AEDesc_Type);
-       if (it == NULL) return NULL;
-       it->ob_itself = *itself;
-       return (PyObject *)it;
-}
-AEDesc_Convert(v, p_itself)
-       PyObject *v;
-       AEDesc *p_itself;
-{
-       if (!AEDesc_Check(v))
-       {
-               PyErr_SetString(PyExc_TypeError, "AEDesc required");
-               return 0;
-       }
-       *p_itself = ((AEDescObject *)v)->ob_itself;
-       return 1;
-}
-
-static void AEDesc_dealloc(self)
-       AEDescObject *self;
-{
-       AEDisposeDesc(&self->ob_itself);
-       PyMem_DEL(self);
-}
-
-static PyObject *AEDesc_AECoerceDesc(_self, _args)
-       AEDescObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       DescType toType;
-       AEDesc result;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             PyMac_GetOSType, &toType))
-               return NULL;
-       _err = AECoerceDesc(&_self->ob_itself,
-                           toType,
-                           &result);
-       if (_err != noErr) return PyMac_Error(_err);
-       _res = Py_BuildValue("O&",
-                            AEDesc_New, &result);
-       return _res;
-}
-
-static PyObject *AEDesc_AEDuplicateDesc(_self, _args)
-       AEDescObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       AEDesc result;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _err = AEDuplicateDesc(&_self->ob_itself,
-                              &result);
-       if (_err != noErr) return PyMac_Error(_err);
-       _res = Py_BuildValue("O&",
-                            AEDesc_New, &result);
-       return _res;
-}
-
-static PyObject *AEDesc_AECountItems(_self, _args)
-       AEDescObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       long theCount;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _err = AECountItems(&_self->ob_itself,
-                           &theCount);
-       if (_err != noErr) return PyMac_Error(_err);
-       _res = Py_BuildValue("l",
-                            theCount);
-       return _res;
-}
-
-static PyObject *AEDesc_AEPutPtr(_self, _args)
-       AEDescObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       long index;
-       DescType typeCode;
-       char *dataPtr__in__;
-       long dataPtr__len__;
-       int dataPtr__in_len__;
-       if (!PyArg_ParseTuple(_args, "lO&s#",
-                             &index,
-                             PyMac_GetOSType, &typeCode,
-                             &dataPtr__in__, &dataPtr__in_len__))
-               return NULL;
-       dataPtr__len__ = dataPtr__in_len__;
-       _err = AEPutPtr(&_self->ob_itself,
-                       index,
-                       typeCode,
-                       dataPtr__in__, dataPtr__len__);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
- dataPtr__error__: ;
-       return _res;
-}
-
-static PyObject *AEDesc_AEPutDesc(_self, _args)
-       AEDescObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       long index;
-       AEDesc theAEDesc;
-       if (!PyArg_ParseTuple(_args, "lO&",
-                             &index,
-                             AEDesc_Convert, &theAEDesc))
-               return NULL;
-       _err = AEPutDesc(&_self->ob_itself,
-                        index,
-                        &theAEDesc);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *AEDesc_AEGetNthPtr(_self, _args)
-       AEDescObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       long index;
-       DescType desiredType;
-       AEKeyword theAEKeyword;
-       DescType typeCode;
-       char *dataPtr__out__;
-       long dataPtr__len__;
-       int dataPtr__in_len__;
-       if (!PyArg_ParseTuple(_args, "lO&i",
-                             &index,
-                             PyMac_GetOSType, &desiredType,
-                             &dataPtr__in_len__))
-               return NULL;
-       if ((dataPtr__out__ = malloc(dataPtr__in_len__)) == NULL)
-       {
-               PyErr_NoMemory();
-               goto dataPtr__error__;
-       }
-       dataPtr__len__ = dataPtr__in_len__;
-       _err = AEGetNthPtr(&_self->ob_itself,
-                          index,
-                          desiredType,
-                          &theAEKeyword,
-                          &typeCode,
-                          dataPtr__out__, dataPtr__len__, &dataPtr__len__);
-       if (_err != noErr) return PyMac_Error(_err);
-       _res = Py_BuildValue("O&O&s#",
-                            PyMac_BuildOSType, theAEKeyword,
-                            PyMac_BuildOSType, typeCode,
-                            dataPtr__out__, (int)dataPtr__len__);
-       free(dataPtr__out__);
- dataPtr__error__: ;
-       return _res;
-}
-
-static PyObject *AEDesc_AEGetNthDesc(_self, _args)
-       AEDescObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       long index;
-       DescType desiredType;
-       AEKeyword theAEKeyword;
-       AEDesc result;
-       if (!PyArg_ParseTuple(_args, "lO&",
-                             &index,
-                             PyMac_GetOSType, &desiredType))
-               return NULL;
-       _err = AEGetNthDesc(&_self->ob_itself,
-                           index,
-                           desiredType,
-                           &theAEKeyword,
-                           &result);
-       if (_err != noErr) return PyMac_Error(_err);
-       _res = Py_BuildValue("O&O&",
-                            PyMac_BuildOSType, theAEKeyword,
-                            AEDesc_New, &result);
-       return _res;
-}
-
-static PyObject *AEDesc_AESizeOfNthItem(_self, _args)
-       AEDescObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       long index;
-       DescType typeCode;
-       Size dataSize;
-       if (!PyArg_ParseTuple(_args, "l",
-                             &index))
-               return NULL;
-       _err = AESizeOfNthItem(&_self->ob_itself,
-                              index,
-                              &typeCode,
-                              &dataSize);
-       if (_err != noErr) return PyMac_Error(_err);
-       _res = Py_BuildValue("O&l",
-                            PyMac_BuildOSType, typeCode,
-                            dataSize);
-       return _res;
-}
-
-static PyObject *AEDesc_AEDeleteItem(_self, _args)
-       AEDescObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       long index;
-       if (!PyArg_ParseTuple(_args, "l",
-                             &index))
-               return NULL;
-       _err = AEDeleteItem(&_self->ob_itself,
-                           index);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *AEDesc_AEPutParamPtr(_self, _args)
-       AEDescObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       AEKeyword theAEKeyword;
-       DescType typeCode;
-       char *dataPtr__in__;
-       long dataPtr__len__;
-       int dataPtr__in_len__;
-       if (!PyArg_ParseTuple(_args, "O&O&s#",
-                             PyMac_GetOSType, &theAEKeyword,
-                             PyMac_GetOSType, &typeCode,
-                             &dataPtr__in__, &dataPtr__in_len__))
-               return NULL;
-       dataPtr__len__ = dataPtr__in_len__;
-       _err = AEPutParamPtr(&_self->ob_itself,
-                            theAEKeyword,
-                            typeCode,
-                            dataPtr__in__, dataPtr__len__);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
- dataPtr__error__: ;
-       return _res;
-}
-
-static PyObject *AEDesc_AEPutParamDesc(_self, _args)
-       AEDescObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       AEKeyword theAEKeyword;
-       AEDesc theAEDesc;
-       if (!PyArg_ParseTuple(_args, "O&O&",
-                             PyMac_GetOSType, &theAEKeyword,
-                             AEDesc_Convert, &theAEDesc))
-               return NULL;
-       _err = AEPutParamDesc(&_self->ob_itself,
-                             theAEKeyword,
-                             &theAEDesc);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *AEDesc_AEGetParamPtr(_self, _args)
-       AEDescObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       AEKeyword theAEKeyword;
-       DescType desiredType;
-       DescType typeCode;
-       char *dataPtr__out__;
-       long dataPtr__len__;
-       int dataPtr__in_len__;
-       if (!PyArg_ParseTuple(_args, "O&O&i",
-                             PyMac_GetOSType, &theAEKeyword,
-                             PyMac_GetOSType, &desiredType,
-                             &dataPtr__in_len__))
-               return NULL;
-       if ((dataPtr__out__ = malloc(dataPtr__in_len__)) == NULL)
-       {
-               PyErr_NoMemory();
-               goto dataPtr__error__;
-       }
-       dataPtr__len__ = dataPtr__in_len__;
-       _err = AEGetParamPtr(&_self->ob_itself,
-                            theAEKeyword,
-                            desiredType,
-                            &typeCode,
-                            dataPtr__out__, dataPtr__len__, &dataPtr__len__);
-       if (_err != noErr) return PyMac_Error(_err);
-       _res = Py_BuildValue("O&s#",
-                            PyMac_BuildOSType, typeCode,
-                            dataPtr__out__, (int)dataPtr__len__);
-       free(dataPtr__out__);
- dataPtr__error__: ;
-       return _res;
-}
-
-static PyObject *AEDesc_AEGetParamDesc(_self, _args)
-       AEDescObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       AEKeyword theAEKeyword;
-       DescType desiredType;
-       AEDesc result;
-       if (!PyArg_ParseTuple(_args, "O&O&",
-                             PyMac_GetOSType, &theAEKeyword,
-                             PyMac_GetOSType, &desiredType))
-               return NULL;
-       _err = AEGetParamDesc(&_self->ob_itself,
-                             theAEKeyword,
-                             desiredType,
-                             &result);
-       if (_err != noErr) return PyMac_Error(_err);
-       _res = Py_BuildValue("O&",
-                            AEDesc_New, &result);
-       return _res;
-}
-
-static PyObject *AEDesc_AESizeOfParam(_self, _args)
-       AEDescObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       AEKeyword theAEKeyword;
-       DescType typeCode;
-       Size dataSize;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             PyMac_GetOSType, &theAEKeyword))
-               return NULL;
-       _err = AESizeOfParam(&_self->ob_itself,
-                            theAEKeyword,
-                            &typeCode,
-                            &dataSize);
-       if (_err != noErr) return PyMac_Error(_err);
-       _res = Py_BuildValue("O&l",
-                            PyMac_BuildOSType, typeCode,
-                            dataSize);
-       return _res;
-}
-
-static PyObject *AEDesc_AEDeleteParam(_self, _args)
-       AEDescObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       AEKeyword theAEKeyword;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             PyMac_GetOSType, &theAEKeyword))
-               return NULL;
-       _err = AEDeleteParam(&_self->ob_itself,
-                            theAEKeyword);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *AEDesc_AEGetAttributePtr(_self, _args)
-       AEDescObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       AEKeyword theAEKeyword;
-       DescType desiredType;
-       DescType typeCode;
-       char *dataPtr__out__;
-       long dataPtr__len__;
-       int dataPtr__in_len__;
-       if (!PyArg_ParseTuple(_args, "O&O&i",
-                             PyMac_GetOSType, &theAEKeyword,
-                             PyMac_GetOSType, &desiredType,
-                             &dataPtr__in_len__))
-               return NULL;
-       if ((dataPtr__out__ = malloc(dataPtr__in_len__)) == NULL)
-       {
-               PyErr_NoMemory();
-               goto dataPtr__error__;
-       }
-       dataPtr__len__ = dataPtr__in_len__;
-       _err = AEGetAttributePtr(&_self->ob_itself,
-                                theAEKeyword,
-                                desiredType,
-                                &typeCode,
-                                dataPtr__out__, dataPtr__len__, &dataPtr__len__);
-       if (_err != noErr) return PyMac_Error(_err);
-       _res = Py_BuildValue("O&s#",
-                            PyMac_BuildOSType, typeCode,
-                            dataPtr__out__, (int)dataPtr__len__);
-       free(dataPtr__out__);
- dataPtr__error__: ;
-       return _res;
-}
-
-static PyObject *AEDesc_AEGetAttributeDesc(_self, _args)
-       AEDescObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       AEKeyword theAEKeyword;
-       DescType desiredType;
-       AEDesc result;
-       if (!PyArg_ParseTuple(_args, "O&O&",
-                             PyMac_GetOSType, &theAEKeyword,
-                             PyMac_GetOSType, &desiredType))
-               return NULL;
-       _err = AEGetAttributeDesc(&_self->ob_itself,
-                                 theAEKeyword,
-                                 desiredType,
-                                 &result);
-       if (_err != noErr) return PyMac_Error(_err);
-       _res = Py_BuildValue("O&",
-                            AEDesc_New, &result);
-       return _res;
-}
-
-static PyObject *AEDesc_AESizeOfAttribute(_self, _args)
-       AEDescObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       AEKeyword theAEKeyword;
-       DescType typeCode;
-       Size dataSize;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             PyMac_GetOSType, &theAEKeyword))
-               return NULL;
-       _err = AESizeOfAttribute(&_self->ob_itself,
-                                theAEKeyword,
-                                &typeCode,
-                                &dataSize);
-       if (_err != noErr) return PyMac_Error(_err);
-       _res = Py_BuildValue("O&l",
-                            PyMac_BuildOSType, typeCode,
-                            dataSize);
-       return _res;
-}
-
-static PyObject *AEDesc_AEPutAttributePtr(_self, _args)
-       AEDescObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       AEKeyword theAEKeyword;
-       DescType typeCode;
-       char *dataPtr__in__;
-       long dataPtr__len__;
-       int dataPtr__in_len__;
-       if (!PyArg_ParseTuple(_args, "O&O&s#",
-                             PyMac_GetOSType, &theAEKeyword,
-                             PyMac_GetOSType, &typeCode,
-                             &dataPtr__in__, &dataPtr__in_len__))
-               return NULL;
-       dataPtr__len__ = dataPtr__in_len__;
-       _err = AEPutAttributePtr(&_self->ob_itself,
-                                theAEKeyword,
-                                typeCode,
-                                dataPtr__in__, dataPtr__len__);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
- dataPtr__error__: ;
-       return _res;
-}
-
-static PyObject *AEDesc_AEPutAttributeDesc(_self, _args)
-       AEDescObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       AEKeyword theAEKeyword;
-       AEDesc theAEDesc;
-       if (!PyArg_ParseTuple(_args, "O&O&",
-                             PyMac_GetOSType, &theAEKeyword,
-                             AEDesc_Convert, &theAEDesc))
-               return NULL;
-       _err = AEPutAttributeDesc(&_self->ob_itself,
-                                 theAEKeyword,
-                                 &theAEDesc);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-#if TARGET_API_MAC_CARBON
-
-static PyObject *AEDesc_AEGetDescDataSize(_self, _args)
-       AEDescObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Size _rv;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _rv = AEGetDescDataSize(&_self->ob_itself);
-       _res = Py_BuildValue("l",
-                            _rv);
-       return _res;
-}
-#endif
-
-static PyObject *AEDesc_AESend(_self, _args)
-       AEDescObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       AppleEvent reply;
-       AESendMode sendMode;
-       AESendPriority sendPriority;
-       long timeOutInTicks;
-       if (!PyArg_ParseTuple(_args, "lhl",
-                             &sendMode,
-                             &sendPriority,
-                             &timeOutInTicks))
-               return NULL;
-       _err = AESend(&_self->ob_itself,
-                     &reply,
-                     sendMode,
-                     sendPriority,
-                     timeOutInTicks,
-                     upp_AEIdleProc,
-                     (AEFilterUPP)0);
-       if (_err != noErr) return PyMac_Error(_err);
-       _res = Py_BuildValue("O&",
-                            AEDesc_New, &reply);
-       return _res;
-}
-
-static PyObject *AEDesc_AEResetTimer(_self, _args)
-       AEDescObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _err = AEResetTimer(&_self->ob_itself);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *AEDesc_AESuspendTheCurrentEvent(_self, _args)
-       AEDescObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _err = AESuspendTheCurrentEvent(&_self->ob_itself);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *AEDesc_AEResumeTheCurrentEvent(_self, _args)
-       AEDescObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       AppleEvent reply;
-       AEEventHandlerUPP dispatcher__proc__ = upp_GenericEventHandler;
-       PyObject *dispatcher;
-       if (!PyArg_ParseTuple(_args, "O&O",
-                             AEDesc_Convert, &reply,
-                             &dispatcher))
-               return NULL;
-       _err = AEResumeTheCurrentEvent(&_self->ob_itself,
-                                      &reply,
-                                      dispatcher__proc__, (long)dispatcher);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       Py_INCREF(dispatcher); /* XXX leak, but needed */
-       return _res;
-}
-
-static PyObject *AEDesc_AEGetTheCurrentEvent(_self, _args)
-       AEDescObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _err = AEGetTheCurrentEvent(&_self->ob_itself);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *AEDesc_AESetTheCurrentEvent(_self, _args)
-       AEDescObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _err = AESetTheCurrentEvent(&_self->ob_itself);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *AEDesc_AEResolve(_self, _args)
-       AEDescObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       short callbackFlags;
-       AEDesc theToken;
-       if (!PyArg_ParseTuple(_args, "h",
-                             &callbackFlags))
-               return NULL;
-       _err = AEResolve(&_self->ob_itself,
-                        callbackFlags,
-                        &theToken);
-       if (_err != noErr) return PyMac_Error(_err);
-       _res = Py_BuildValue("O&",
-                            AEDesc_New, &theToken);
-       return _res;
-}
-
-static PyMethodDef AEDesc_methods[] = {
-       {"AECoerceDesc", (PyCFunction)AEDesc_AECoerceDesc, 1,
-        "(DescType toType) -> (AEDesc result)"},
-       {"AEDuplicateDesc", (PyCFunction)AEDesc_AEDuplicateDesc, 1,
-        "() -> (AEDesc result)"},
-       {"AECountItems", (PyCFunction)AEDesc_AECountItems, 1,
-        "() -> (long theCount)"},
-       {"AEPutPtr", (PyCFunction)AEDesc_AEPutPtr, 1,
-        "(long index, DescType typeCode, Buffer dataPtr) -> None"},
-       {"AEPutDesc", (PyCFunction)AEDesc_AEPutDesc, 1,
-        "(long index, AEDesc theAEDesc) -> None"},
-       {"AEGetNthPtr", (PyCFunction)AEDesc_AEGetNthPtr, 1,
-        "(long index, DescType desiredType, Buffer dataPtr) -> (AEKeyword theAEKeyword, DescType typeCode, Buffer dataPtr)"},
-       {"AEGetNthDesc", (PyCFunction)AEDesc_AEGetNthDesc, 1,
-        "(long index, DescType desiredType) -> (AEKeyword theAEKeyword, AEDesc result)"},
-       {"AESizeOfNthItem", (PyCFunction)AEDesc_AESizeOfNthItem, 1,
-        "(long index) -> (DescType typeCode, Size dataSize)"},
-       {"AEDeleteItem", (PyCFunction)AEDesc_AEDeleteItem, 1,
-        "(long index) -> None"},
-       {"AEPutParamPtr", (PyCFunction)AEDesc_AEPutParamPtr, 1,
-        "(AEKeyword theAEKeyword, DescType typeCode, Buffer dataPtr) -> None"},
-       {"AEPutParamDesc", (PyCFunction)AEDesc_AEPutParamDesc, 1,
-        "(AEKeyword theAEKeyword, AEDesc theAEDesc) -> None"},
-       {"AEGetParamPtr", (PyCFunction)AEDesc_AEGetParamPtr, 1,
-        "(AEKeyword theAEKeyword, DescType desiredType, Buffer dataPtr) -> (DescType typeCode, Buffer dataPtr)"},
-       {"AEGetParamDesc", (PyCFunction)AEDesc_AEGetParamDesc, 1,
-        "(AEKeyword theAEKeyword, DescType desiredType) -> (AEDesc result)"},
-       {"AESizeOfParam", (PyCFunction)AEDesc_AESizeOfParam, 1,
-        "(AEKeyword theAEKeyword) -> (DescType typeCode, Size dataSize)"},
-       {"AEDeleteParam", (PyCFunction)AEDesc_AEDeleteParam, 1,
-        "(AEKeyword theAEKeyword) -> None"},
-       {"AEGetAttributePtr", (PyCFunction)AEDesc_AEGetAttributePtr, 1,
-        "(AEKeyword theAEKeyword, DescType desiredType, Buffer dataPtr) -> (DescType typeCode, Buffer dataPtr)"},
-       {"AEGetAttributeDesc", (PyCFunction)AEDesc_AEGetAttributeDesc, 1,
-        "(AEKeyword theAEKeyword, DescType desiredType) -> (AEDesc result)"},
-       {"AESizeOfAttribute", (PyCFunction)AEDesc_AESizeOfAttribute, 1,
-        "(AEKeyword theAEKeyword) -> (DescType typeCode, Size dataSize)"},
-       {"AEPutAttributePtr", (PyCFunction)AEDesc_AEPutAttributePtr, 1,
-        "(AEKeyword theAEKeyword, DescType typeCode, Buffer dataPtr) -> None"},
-       {"AEPutAttributeDesc", (PyCFunction)AEDesc_AEPutAttributeDesc, 1,
-        "(AEKeyword theAEKeyword, AEDesc theAEDesc) -> None"},
-
-#if TARGET_API_MAC_CARBON
-       {"AEGetDescDataSize", (PyCFunction)AEDesc_AEGetDescDataSize, 1,
-        "() -> (Size _rv)"},
-#endif
-       {"AESend", (PyCFunction)AEDesc_AESend, 1,
-        "(AESendMode sendMode, AESendPriority sendPriority, long timeOutInTicks) -> (AppleEvent reply)"},
-       {"AEResetTimer", (PyCFunction)AEDesc_AEResetTimer, 1,
-        "() -> None"},
-       {"AESuspendTheCurrentEvent", (PyCFunction)AEDesc_AESuspendTheCurrentEvent, 1,
-        "() -> None"},
-       {"AEResumeTheCurrentEvent", (PyCFunction)AEDesc_AEResumeTheCurrentEvent, 1,
-        "(AppleEvent reply, EventHandler dispatcher) -> None"},
-       {"AEGetTheCurrentEvent", (PyCFunction)AEDesc_AEGetTheCurrentEvent, 1,
-        "() -> None"},
-       {"AESetTheCurrentEvent", (PyCFunction)AEDesc_AESetTheCurrentEvent, 1,
-        "() -> None"},
-       {"AEResolve", (PyCFunction)AEDesc_AEResolve, 1,
-        "(short callbackFlags) -> (AEDesc theToken)"},
-       {NULL, NULL, 0}
-};
-
-PyMethodChain AEDesc_chain = { AEDesc_methods, NULL };
-
-static PyObject *AEDesc_getattr(self, name)
-       AEDescObject *self;
-       char *name;
-{
-
-       if (strcmp(name, "type") == 0)
-               return PyMac_BuildOSType(self->ob_itself.descriptorType);
-       if (strcmp(name, "data") == 0) {
-               PyObject *res;
-#if !TARGET_API_MAC_CARBON
-               char state;
-               state = HGetState(self->ob_itself.dataHandle);
-               HLock(self->ob_itself.dataHandle);
-               res = PyString_FromStringAndSize(
-                       *self->ob_itself.dataHandle,
-                       GetHandleSize(self->ob_itself.dataHandle));
-               HUnlock(self->ob_itself.dataHandle);
-               HSetState(self->ob_itself.dataHandle, state);
-#else
-               Size size;
-               char *ptr;
-               OSErr err;
-               
-               size = AEGetDescDataSize(&self->ob_itself);
-               if ( (res = PyString_FromStringAndSize(NULL, size)) == NULL )
-                       return NULL;
-               if ( (ptr = PyString_AsString(res)) == NULL )
-                       return NULL;
-               if ( (err=AEGetDescData(&self->ob_itself, ptr, size)) < 0 )
-                       return PyMac_Error(err);        
-#endif
-               return res;
-       }
-       if (strcmp(name, "__members__") == 0)
-               return Py_BuildValue("[ss]", "data", "type");
-
-       return Py_FindMethodInChain(&AEDesc_chain, (PyObject *)self, name);
-}
-
-#define AEDesc_setattr NULL
-
-#define AEDesc_compare NULL
-
-#define AEDesc_repr NULL
-
-#define AEDesc_hash NULL
-
-PyTypeObject AEDesc_Type = {
-       PyObject_HEAD_INIT(&PyType_Type)
-       0, /*ob_size*/
-       "AEDesc", /*tp_name*/
-       sizeof(AEDescObject), /*tp_basicsize*/
-       0, /*tp_itemsize*/
-       /* methods */
-       (destructor) AEDesc_dealloc, /*tp_dealloc*/
-       0, /*tp_print*/
-       (getattrfunc) AEDesc_getattr, /*tp_getattr*/
-       (setattrfunc) AEDesc_setattr, /*tp_setattr*/
-       (cmpfunc) AEDesc_compare, /*tp_compare*/
-       (reprfunc) AEDesc_repr, /*tp_repr*/
-       (PyNumberMethods *)0, /* tp_as_number */
-       (PySequenceMethods *)0, /* tp_as_sequence */
-       (PyMappingMethods *)0, /* tp_as_mapping */
-       (hashfunc) AEDesc_hash, /*tp_hash*/
-};
-
-/* --------------------- End object type AEDesc --------------------- */
-
-
-static PyObject *AE_AECoercePtr(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       DescType typeCode;
-       char *dataPtr__in__;
-       long dataPtr__len__;
-       int dataPtr__in_len__;
-       DescType toType;
-       AEDesc result;
-       if (!PyArg_ParseTuple(_args, "O&s#O&",
-                             PyMac_GetOSType, &typeCode,
-                             &dataPtr__in__, &dataPtr__in_len__,
-                             PyMac_GetOSType, &toType))
-               return NULL;
-       dataPtr__len__ = dataPtr__in_len__;
-       _err = AECoercePtr(typeCode,
-                          dataPtr__in__, dataPtr__len__,
-                          toType,
-                          &result);
-       if (_err != noErr) return PyMac_Error(_err);
-       _res = Py_BuildValue("O&",
-                            AEDesc_New, &result);
- dataPtr__error__: ;
-       return _res;
-}
-
-static PyObject *AE_AECreateDesc(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       DescType typeCode;
-       char *dataPtr__in__;
-       long dataPtr__len__;
-       int dataPtr__in_len__;
-       AEDesc result;
-       if (!PyArg_ParseTuple(_args, "O&s#",
-                             PyMac_GetOSType, &typeCode,
-                             &dataPtr__in__, &dataPtr__in_len__))
-               return NULL;
-       dataPtr__len__ = dataPtr__in_len__;
-       _err = AECreateDesc(typeCode,
-                           dataPtr__in__, dataPtr__len__,
-                           &result);
-       if (_err != noErr) return PyMac_Error(_err);
-       _res = Py_BuildValue("O&",
-                            AEDesc_New, &result);
- dataPtr__error__: ;
-       return _res;
-}
-
-static PyObject *AE_AECreateList(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       char *factoringPtr__in__;
-       long factoringPtr__len__;
-       int factoringPtr__in_len__;
-       Boolean isRecord;
-       AEDescList resultList;
-       if (!PyArg_ParseTuple(_args, "s#b",
-                             &factoringPtr__in__, &factoringPtr__in_len__,
-                             &isRecord))
-               return NULL;
-       factoringPtr__len__ = factoringPtr__in_len__;
-       _err = AECreateList(factoringPtr__in__, factoringPtr__len__,
-                           isRecord,
-                           &resultList);
-       if (_err != noErr) return PyMac_Error(_err);
-       _res = Py_BuildValue("O&",
-                            AEDesc_New, &resultList);
- factoringPtr__error__: ;
-       return _res;
-}
-
-static PyObject *AE_AECreateAppleEvent(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       AEEventClass theAEEventClass;
-       AEEventID theAEEventID;
-       AEAddressDesc target;
-       AEReturnID returnID;
-       AETransactionID transactionID;
-       AppleEvent result;
-       if (!PyArg_ParseTuple(_args, "O&O&O&hl",
-                             PyMac_GetOSType, &theAEEventClass,
-                             PyMac_GetOSType, &theAEEventID,
-                             AEDesc_Convert, &target,
-                             &returnID,
-                             &transactionID))
-               return NULL;
-       _err = AECreateAppleEvent(theAEEventClass,
-                                 theAEEventID,
-                                 &target,
-                                 returnID,
-                                 transactionID,
-                                 &result);
-       if (_err != noErr) return PyMac_Error(_err);
-       _res = Py_BuildValue("O&",
-                            AEDesc_New, &result);
-       return _res;
-}
-
-#if TARGET_API_MAC_CARBON
-
-static PyObject *AE_AEReplaceDescData(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       DescType typeCode;
-       char *dataPtr__in__;
-       long dataPtr__len__;
-       int dataPtr__in_len__;
-       AEDesc theAEDesc;
-       if (!PyArg_ParseTuple(_args, "O&s#",
-                             PyMac_GetOSType, &typeCode,
-                             &dataPtr__in__, &dataPtr__in_len__))
-               return NULL;
-       dataPtr__len__ = dataPtr__in_len__;
-       _err = AEReplaceDescData(typeCode,
-                                dataPtr__in__, dataPtr__len__,
-                                &theAEDesc);
-       if (_err != noErr) return PyMac_Error(_err);
-       _res = Py_BuildValue("O&",
-                            AEDesc_New, &theAEDesc);
- dataPtr__error__: ;
-       return _res;
-}
-#endif
-
-static PyObject *AE_AEProcessAppleEvent(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       EventRecord theEventRecord;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             PyMac_GetEventRecord, &theEventRecord))
-               return NULL;
-       _err = AEProcessAppleEvent(&theEventRecord);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *AE_AEGetInteractionAllowed(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       AEInteractAllowed level;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _err = AEGetInteractionAllowed(&level);
-       if (_err != noErr) return PyMac_Error(_err);
-       _res = Py_BuildValue("b",
-                            level);
-       return _res;
-}
-
-static PyObject *AE_AESetInteractionAllowed(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       AEInteractAllowed level;
-       if (!PyArg_ParseTuple(_args, "b",
-                             &level))
-               return NULL;
-       _err = AESetInteractionAllowed(level);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *AE_AEInteractWithUser(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       long timeOutInTicks;
-       if (!PyArg_ParseTuple(_args, "l",
-                             &timeOutInTicks))
-               return NULL;
-       _err = AEInteractWithUser(timeOutInTicks,
-                                 (NMRecPtr)0,
-                                 upp_AEIdleProc);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *AE_AEInstallEventHandler(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       AEEventClass theAEEventClass;
-       AEEventID theAEEventID;
-       AEEventHandlerUPP handler__proc__ = upp_GenericEventHandler;
-       PyObject *handler;
-       if (!PyArg_ParseTuple(_args, "O&O&O",
-                             PyMac_GetOSType, &theAEEventClass,
-                             PyMac_GetOSType, &theAEEventID,
-                             &handler))
-               return NULL;
-       _err = AEInstallEventHandler(theAEEventClass,
-                                    theAEEventID,
-                                    handler__proc__, (long)handler,
-                                    0);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       Py_INCREF(handler); /* XXX leak, but needed */
-       return _res;
-}
-
-static PyObject *AE_AERemoveEventHandler(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       AEEventClass theAEEventClass;
-       AEEventID theAEEventID;
-       if (!PyArg_ParseTuple(_args, "O&O&",
-                             PyMac_GetOSType, &theAEEventClass,
-                             PyMac_GetOSType, &theAEEventID))
-               return NULL;
-       _err = AERemoveEventHandler(theAEEventClass,
-                                   theAEEventID,
-                                   upp_GenericEventHandler,
-                                   0);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *AE_AEGetEventHandler(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       AEEventClass theAEEventClass;
-       AEEventID theAEEventID;
-       AEEventHandlerUPP handler__proc__ = upp_GenericEventHandler;
-       PyObject *handler;
-       if (!PyArg_ParseTuple(_args, "O&O&",
-                             PyMac_GetOSType, &theAEEventClass,
-                             PyMac_GetOSType, &theAEEventID))
-               return NULL;
-       _err = AEGetEventHandler(theAEEventClass,
-                                theAEEventID,
-                                &handler__proc__, (long *)&handler,
-                                0);
-       if (_err != noErr) return PyMac_Error(_err);
-       _res = Py_BuildValue("O",
-                            handler);
-       Py_INCREF(handler); /* XXX leak, but needed */
-       return _res;
-}
-
-static PyObject *AE_AEInstallSpecialHandler(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       AEKeyword functionClass;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             PyMac_GetOSType, &functionClass))
-               return NULL;
-       _err = AEInstallSpecialHandler(functionClass,
-                                      upp_GenericEventHandler,
-                                      0);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *AE_AERemoveSpecialHandler(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       AEKeyword functionClass;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             PyMac_GetOSType, &functionClass))
-               return NULL;
-       _err = AERemoveSpecialHandler(functionClass,
-                                     upp_GenericEventHandler,
-                                     0);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *AE_AEManagerInfo(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       AEKeyword keyWord;
-       long result;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             PyMac_GetOSType, &keyWord))
-               return NULL;
-       _err = AEManagerInfo(keyWord,
-                            &result);
-       if (_err != noErr) return PyMac_Error(_err);
-       _res = Py_BuildValue("l",
-                            result);
-       return _res;
-}
-
-static PyObject *AE_AEObjectInit(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _err = AEObjectInit();
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *AE_AEDisposeToken(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       AEDesc theToken;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _err = AEDisposeToken(&theToken);
-       if (_err != noErr) return PyMac_Error(_err);
-       _res = Py_BuildValue("O&",
-                            AEDesc_New, &theToken);
-       return _res;
-}
-
-static PyObject *AE_AECallObjectAccessor(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       DescType desiredClass;
-       AEDesc containerToken;
-       DescType containerClass;
-       DescType keyForm;
-       AEDesc keyData;
-       AEDesc token;
-       if (!PyArg_ParseTuple(_args, "O&O&O&O&O&",
-                             PyMac_GetOSType, &desiredClass,
-                             AEDesc_Convert, &containerToken,
-                             PyMac_GetOSType, &containerClass,
-                             PyMac_GetOSType, &keyForm,
-                             AEDesc_Convert, &keyData))
-               return NULL;
-       _err = AECallObjectAccessor(desiredClass,
-                                   &containerToken,
-                                   containerClass,
-                                   keyForm,
-                                   &keyData,
-                                   &token);
-       if (_err != noErr) return PyMac_Error(_err);
-       _res = Py_BuildValue("O&",
-                            AEDesc_New, &token);
-       return _res;
-}
-
-static PyMethodDef AE_methods[] = {
-       {"AECoercePtr", (PyCFunction)AE_AECoercePtr, 1,
-        "(DescType typeCode, Buffer dataPtr, DescType toType) -> (AEDesc result)"},
-       {"AECreateDesc", (PyCFunction)AE_AECreateDesc, 1,
-        "(DescType typeCode, Buffer dataPtr) -> (AEDesc result)"},
-       {"AECreateList", (PyCFunction)AE_AECreateList, 1,
-        "(Buffer factoringPtr, Boolean isRecord) -> (AEDescList resultList)"},
-       {"AECreateAppleEvent", (PyCFunction)AE_AECreateAppleEvent, 1,
-        "(AEEventClass theAEEventClass, AEEventID theAEEventID, AEAddressDesc target, AEReturnID returnID, AETransactionID transactionID) -> (AppleEvent result)"},
-
-#if TARGET_API_MAC_CARBON
-       {"AEReplaceDescData", (PyCFunction)AE_AEReplaceDescData, 1,
-        "(DescType typeCode, Buffer dataPtr) -> (AEDesc theAEDesc)"},
-#endif
-       {"AEProcessAppleEvent", (PyCFunction)AE_AEProcessAppleEvent, 1,
-        "(EventRecord theEventRecord) -> None"},
-       {"AEGetInteractionAllowed", (PyCFunction)AE_AEGetInteractionAllowed, 1,
-        "() -> (AEInteractAllowed level)"},
-       {"AESetInteractionAllowed", (PyCFunction)AE_AESetInteractionAllowed, 1,
-        "(AEInteractAllowed level) -> None"},
-       {"AEInteractWithUser", (PyCFunction)AE_AEInteractWithUser, 1,
-        "(long timeOutInTicks) -> None"},
-       {"AEInstallEventHandler", (PyCFunction)AE_AEInstallEventHandler, 1,
-        "(AEEventClass theAEEventClass, AEEventID theAEEventID, EventHandler handler) -> None"},
-       {"AERemoveEventHandler", (PyCFunction)AE_AERemoveEventHandler, 1,
-        "(AEEventClass theAEEventClass, AEEventID theAEEventID) -> None"},
-       {"AEGetEventHandler", (PyCFunction)AE_AEGetEventHandler, 1,
-        "(AEEventClass theAEEventClass, AEEventID theAEEventID) -> (EventHandler handler)"},
-       {"AEInstallSpecialHandler", (PyCFunction)AE_AEInstallSpecialHandler, 1,
-        "(AEKeyword functionClass) -> None"},
-       {"AERemoveSpecialHandler", (PyCFunction)AE_AERemoveSpecialHandler, 1,
-        "(AEKeyword functionClass) -> None"},
-       {"AEManagerInfo", (PyCFunction)AE_AEManagerInfo, 1,
-        "(AEKeyword keyWord) -> (long result)"},
-       {"AEObjectInit", (PyCFunction)AE_AEObjectInit, 1,
-        "() -> None"},
-       {"AEDisposeToken", (PyCFunction)AE_AEDisposeToken, 1,
-        "() -> (AEDesc theToken)"},
-       {"AECallObjectAccessor", (PyCFunction)AE_AECallObjectAccessor, 1,
-        "(DescType desiredClass, AEDesc containerToken, DescType containerClass, DescType keyForm, AEDesc keyData) -> (AEDesc token)"},
-       {NULL, NULL, 0}
-};
-
-
-
-static pascal OSErr
-GenericEventHandler(const AppleEvent *request, AppleEvent *reply, unsigned long refcon)
-{
-       PyObject *handler = (PyObject *)refcon;
-       AEDescObject *requestObject, *replyObject;
-       PyObject *args, *res;
-       if ((requestObject = (AEDescObject *)AEDesc_New((AppleEvent *)request)) == NULL) {
-               return -1;
-       }
-       if ((replyObject = (AEDescObject *)AEDesc_New(reply)) == NULL) {
-               Py_DECREF(requestObject);
-               return -1;
-       }
-       if ((args = Py_BuildValue("OO", requestObject, replyObject)) == NULL) {
-               Py_DECREF(requestObject);
-               Py_DECREF(replyObject);
-               return -1;
-       }
-       res = PyEval_CallObject(handler, args);
-       requestObject->ob_itself.descriptorType = 'null';
-       requestObject->ob_itself.dataHandle = NULL;
-       replyObject->ob_itself.descriptorType = 'null';
-       replyObject->ob_itself.dataHandle = NULL;
-       Py_DECREF(args);
-       if (res == NULL)
-               return -1;
-       Py_DECREF(res);
-       return noErr;
-}
-
-
-void initAE()
-{
-       PyObject *m;
-       PyObject *d;
-
-
-
-               upp_AEIdleProc = NewAEIdleProc(AEIdleProc);
-               upp_GenericEventHandler = NewAEEventHandlerProc(GenericEventHandler);
-
-
-       m = Py_InitModule("AE", AE_methods);
-       d = PyModule_GetDict(m);
-       AE_Error = PyMac_GetOSErrException();
-       if (AE_Error == NULL ||
-           PyDict_SetItemString(d, "Error", AE_Error) != 0)
-               return;
-       AEDesc_Type.ob_type = &PyType_Type;
-       Py_INCREF(&AEDesc_Type);
-       if (PyDict_SetItemString(d, "AEDescType", (PyObject *)&AEDesc_Type) != 0)
-               Py_FatalError("can't initialize AEDescType");
-}
-
-/* ========================= End module AE ========================== */
-
diff --git a/Mac/Modules/ae/aesupport.py b/Mac/Modules/ae/aesupport.py
deleted file mode 100644 (file)
index 86f2094..0000000
+++ /dev/null
@@ -1,202 +0,0 @@
-# This script will generate the AppleEvents interface for Python.
-# It uses the "bgen" package to generate C code.
-# It execs the file aegen.py which contain the function definitions
-# (aegen.py was generated by aescan.py, scanning the <AppleEvents.h> header file).
-
-
-from macsupport import *
-
-
-AEArrayType = Type("AEArrayType", "c")
-AESendMode = Type("AESendMode", "l")
-AESendPriority = Type("AESendPriority", "h")
-AEInteractAllowed = Type("AEInteractAllowed", "b")
-AEReturnID = Type("AEReturnID", "h")
-AETransactionID = Type("AETransactionID", "l")
-
-
-
-AEEventClass = OSTypeType('AEEventClass')
-AEEventID = OSTypeType('AEEventID')
-AEKeyword = OSTypeType('AEKeyword')
-DescType = OSTypeType('DescType')
-
-
-AEDesc = OpaqueType('AEDesc')
-AEDesc_ptr = OpaqueType('AEDesc')
-
-AEAddressDesc = OpaqueType('AEAddressDesc', 'AEDesc')
-AEAddressDesc_ptr = OpaqueType('AEAddressDesc', 'AEDesc')
-
-AEDescList = OpaqueType('AEDescList', 'AEDesc')
-AEDescList_ptr = OpaqueType('AEDescList', 'AEDesc')
-
-AERecord = OpaqueType('AERecord', 'AEDesc')
-AERecord_ptr = OpaqueType('AERecord', 'AEDesc')
-
-AppleEvent = OpaqueType('AppleEvent', 'AEDesc')
-AppleEvent_ptr = OpaqueType('AppleEvent', 'AEDesc')
-
-
-class EHType(Type):
-       def __init__(self, name = 'EventHandler', format = ''):
-               Type.__init__(self, name, format)
-       def declare(self, name):
-               Output("AEEventHandlerUPP %s__proc__ = upp_GenericEventHandler;", name)
-               Output("PyObject *%s;", name)
-       def getargsFormat(self):
-               return "O"
-       def getargsArgs(self, name):
-               return "&%s" % name
-       def passInput(self, name):
-               return "%s__proc__, (long)%s" % (name, name)
-       def passOutput(self, name):
-               return "&%s__proc__, (long *)&%s" % (name, name)
-       def mkvalueFormat(self):
-               return "O"
-       def mkvalueArgs(self, name):
-               return name
-       def cleanup(self, name):
-               Output("Py_INCREF(%s); /* XXX leak, but needed */", name)
-
-class EHNoRefConType(EHType):
-       def passInput(self, name):
-               return "upp_GenericEventHandler"
-
-EventHandler = EHType()
-EventHandlerNoRefCon = EHNoRefConType()
-
-
-IdleProcPtr = FakeType("upp_AEIdleProc")
-AEIdleUPP = IdleProcPtr
-EventFilterProcPtr = FakeType("(AEFilterUPP)0")
-AEFilterUPP = EventFilterProcPtr
-NMRecPtr = FakeType("(NMRecPtr)0")
-EventHandlerProcPtr = FakeType("upp_GenericEventHandler")
-AEEventHandlerUPP = EventHandlerProcPtr
-AlwaysFalse = FakeType("0")
-
-
-AEFunction = OSErrFunctionGenerator
-AEMethod = OSErrMethodGenerator
-
-
-includestuff = includestuff + """
-#include <AppleEvents.h>
-#include <AEObjects.h>
-
-static pascal OSErr GenericEventHandler(); /* Forward */
-
-AEEventHandlerUPP upp_GenericEventHandler;
-
-static pascal Boolean AEIdleProc(EventRecord *theEvent, long *sleepTime, RgnHandle *mouseRgn)
-{
-       if ( PyOS_InterruptOccurred() )
-               return 1;
-       if ( PyMac_HandleEvent(theEvent) < 0 ) {
-               PySys_WriteStderr("Exception in user event handler during AE processing\\n");
-               PyErr_Clear();
-       }
-       return 0;
-}
-
-AEIdleUPP upp_AEIdleProc;
-"""
-
-finalstuff = finalstuff + """
-static pascal OSErr
-GenericEventHandler(const AppleEvent *request, AppleEvent *reply, unsigned long refcon)
-{
-       PyObject *handler = (PyObject *)refcon;
-       AEDescObject *requestObject, *replyObject;
-       PyObject *args, *res;
-       if ((requestObject = (AEDescObject *)AEDesc_New((AppleEvent *)request)) == NULL) {
-               return -1;
-       }
-       if ((replyObject = (AEDescObject *)AEDesc_New(reply)) == NULL) {
-               Py_DECREF(requestObject);
-               return -1;
-       }
-       if ((args = Py_BuildValue("OO", requestObject, replyObject)) == NULL) {
-               Py_DECREF(requestObject);
-               Py_DECREF(replyObject);
-               return -1;
-       }
-       res = PyEval_CallObject(handler, args);
-       requestObject->ob_itself.descriptorType = 'null';
-       requestObject->ob_itself.dataHandle = NULL;
-       replyObject->ob_itself.descriptorType = 'null';
-       replyObject->ob_itself.dataHandle = NULL;
-       Py_DECREF(args);
-       if (res == NULL)
-               return -1;
-       Py_DECREF(res);
-       return noErr;
-}
-"""
-
-initstuff = initstuff + """
-       upp_AEIdleProc = NewAEIdleProc(AEIdleProc);
-       upp_GenericEventHandler = NewAEEventHandlerProc(GenericEventHandler);
-"""
-
-module = MacModule('AE', 'AE', includestuff, finalstuff, initstuff)
-
-class AEDescDefinition(GlobalObjectDefinition):
-
-       def __init__(self, name, prefix = None, itselftype = None):
-               GlobalObjectDefinition.__init__(self, name, prefix or name, itselftype or name)
-               self.argref = "*"
-
-       def outputFreeIt(self, name):
-               Output("AEDisposeDesc(&%s);", name)
-
-       def outputGetattrHook(self):
-               Output("""
-if (strcmp(name, "type") == 0)
-       return PyMac_BuildOSType(self->ob_itself.descriptorType);
-if (strcmp(name, "data") == 0) {
-       PyObject *res;
-#if !TARGET_API_MAC_CARBON
-       char state;
-       state = HGetState(self->ob_itself.dataHandle);
-       HLock(self->ob_itself.dataHandle);
-       res = PyString_FromStringAndSize(
-               *self->ob_itself.dataHandle,
-               GetHandleSize(self->ob_itself.dataHandle));
-       HUnlock(self->ob_itself.dataHandle);
-       HSetState(self->ob_itself.dataHandle, state);
-#else
-       Size size;
-       char *ptr;
-       OSErr err;
-       
-       size = AEGetDescDataSize(&self->ob_itself);
-       if ( (res = PyString_FromStringAndSize(NULL, size)) == NULL )
-               return NULL;
-       if ( (ptr = PyString_AsString(res)) == NULL )
-               return NULL;
-       if ( (err=AEGetDescData(&self->ob_itself, ptr, size)) < 0 )
-               return PyMac_Error(err);        
-#endif
-       return res;
-}
-if (strcmp(name, "__members__") == 0)
-       return Py_BuildValue("[ss]", "data", "type");
-""")
-
-
-aedescobject = AEDescDefinition('AEDesc')
-module.addobject(aedescobject)
-
-functions = []
-aedescmethods = []
-
-execfile('aegen.py')
-##execfile('aedatamodelgen.py')
-
-for f in functions: module.add(f)
-for f in aedescmethods: aedescobject.add(f)
-
-SetOutputFileName('AEmodule.c')
-module.generate()
diff --git a/Mac/Modules/app/Appmodule.c b/Mac/Modules/app/Appmodule.c
deleted file mode 100644 (file)
index 929c34f..0000000
+++ /dev/null
@@ -1,1271 +0,0 @@
-
-/* =========================== Module App =========================== */
-
-#include "Python.h"
-
-
-
-#include "macglue.h"
-#include "pymactoolbox.h"
-
-#include <Appearance.h>
-
-static PyObject *App_Error;
-
-static PyObject *App_RegisterAppearanceClient(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSStatus _err;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _err = RegisterAppearanceClient();
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *App_UnregisterAppearanceClient(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSStatus _err;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _err = UnregisterAppearanceClient();
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *App_SetThemePen(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSStatus _err;
-       ThemeBrush inBrush;
-       SInt16 inDepth;
-       Boolean inIsColorDevice;
-       if (!PyArg_ParseTuple(_args, "hhb",
-                             &inBrush,
-                             &inDepth,
-                             &inIsColorDevice))
-               return NULL;
-       _err = SetThemePen(inBrush,
-                          inDepth,
-                          inIsColorDevice);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *App_SetThemeBackground(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSStatus _err;
-       ThemeBrush inBrush;
-       SInt16 inDepth;
-       Boolean inIsColorDevice;
-       if (!PyArg_ParseTuple(_args, "hhb",
-                             &inBrush,
-                             &inDepth,
-                             &inIsColorDevice))
-               return NULL;
-       _err = SetThemeBackground(inBrush,
-                                 inDepth,
-                                 inIsColorDevice);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *App_SetThemeTextColor(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSStatus _err;
-       ThemeTextColor inColor;
-       SInt16 inDepth;
-       Boolean inIsColorDevice;
-       if (!PyArg_ParseTuple(_args, "hhb",
-                             &inColor,
-                             &inDepth,
-                             &inIsColorDevice))
-               return NULL;
-       _err = SetThemeTextColor(inColor,
-                                inDepth,
-                                inIsColorDevice);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *App_SetThemeWindowBackground(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSStatus _err;
-       WindowPtr inWindow;
-       ThemeBrush inBrush;
-       Boolean inUpdate;
-       if (!PyArg_ParseTuple(_args, "O&hb",
-                             WinObj_Convert, &inWindow,
-                             &inBrush,
-                             &inUpdate))
-               return NULL;
-       _err = SetThemeWindowBackground(inWindow,
-                                       inBrush,
-                                       inUpdate);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *App_DrawThemeWindowHeader(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSStatus _err;
-       Rect inRect;
-       ThemeDrawState inState;
-       if (!PyArg_ParseTuple(_args, "O&l",
-                             PyMac_GetRect, &inRect,
-                             &inState))
-               return NULL;
-       _err = DrawThemeWindowHeader(&inRect,
-                                    inState);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *App_DrawThemeWindowListViewHeader(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSStatus _err;
-       Rect inRect;
-       ThemeDrawState inState;
-       if (!PyArg_ParseTuple(_args, "O&l",
-                             PyMac_GetRect, &inRect,
-                             &inState))
-               return NULL;
-       _err = DrawThemeWindowListViewHeader(&inRect,
-                                            inState);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *App_DrawThemePlacard(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSStatus _err;
-       Rect inRect;
-       ThemeDrawState inState;
-       if (!PyArg_ParseTuple(_args, "O&l",
-                             PyMac_GetRect, &inRect,
-                             &inState))
-               return NULL;
-       _err = DrawThemePlacard(&inRect,
-                               inState);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *App_DrawThemeEditTextFrame(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSStatus _err;
-       Rect inRect;
-       ThemeDrawState inState;
-       if (!PyArg_ParseTuple(_args, "O&l",
-                             PyMac_GetRect, &inRect,
-                             &inState))
-               return NULL;
-       _err = DrawThemeEditTextFrame(&inRect,
-                                     inState);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *App_DrawThemeListBoxFrame(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSStatus _err;
-       Rect inRect;
-       ThemeDrawState inState;
-       if (!PyArg_ParseTuple(_args, "O&l",
-                             PyMac_GetRect, &inRect,
-                             &inState))
-               return NULL;
-       _err = DrawThemeListBoxFrame(&inRect,
-                                    inState);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *App_DrawThemeFocusRect(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSStatus _err;
-       Rect inRect;
-       Boolean inHasFocus;
-       if (!PyArg_ParseTuple(_args, "O&b",
-                             PyMac_GetRect, &inRect,
-                             &inHasFocus))
-               return NULL;
-       _err = DrawThemeFocusRect(&inRect,
-                                 inHasFocus);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *App_DrawThemePrimaryGroup(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSStatus _err;
-       Rect inRect;
-       ThemeDrawState inState;
-       if (!PyArg_ParseTuple(_args, "O&l",
-                             PyMac_GetRect, &inRect,
-                             &inState))
-               return NULL;
-       _err = DrawThemePrimaryGroup(&inRect,
-                                    inState);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *App_DrawThemeSecondaryGroup(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSStatus _err;
-       Rect inRect;
-       ThemeDrawState inState;
-       if (!PyArg_ParseTuple(_args, "O&l",
-                             PyMac_GetRect, &inRect,
-                             &inState))
-               return NULL;
-       _err = DrawThemeSecondaryGroup(&inRect,
-                                      inState);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *App_DrawThemeSeparator(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSStatus _err;
-       Rect inRect;
-       ThemeDrawState inState;
-       if (!PyArg_ParseTuple(_args, "O&l",
-                             PyMac_GetRect, &inRect,
-                             &inState))
-               return NULL;
-       _err = DrawThemeSeparator(&inRect,
-                                 inState);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *App_DrawThemeModelessDialogFrame(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSStatus _err;
-       Rect inRect;
-       ThemeDrawState inState;
-       if (!PyArg_ParseTuple(_args, "O&l",
-                             PyMac_GetRect, &inRect,
-                             &inState))
-               return NULL;
-       _err = DrawThemeModelessDialogFrame(&inRect,
-                                           inState);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *App_DrawThemeGenericWell(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSStatus _err;
-       Rect inRect;
-       ThemeDrawState inState;
-       Boolean inFillCenter;
-       if (!PyArg_ParseTuple(_args, "O&lb",
-                             PyMac_GetRect, &inRect,
-                             &inState,
-                             &inFillCenter))
-               return NULL;
-       _err = DrawThemeGenericWell(&inRect,
-                                   inState,
-                                   inFillCenter);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *App_DrawThemeFocusRegion(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSStatus _err;
-       Boolean inHasFocus;
-       if (!PyArg_ParseTuple(_args, "b",
-                             &inHasFocus))
-               return NULL;
-       _err = DrawThemeFocusRegion((RgnHandle)0,
-                                   inHasFocus);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *App_IsThemeInColor(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Boolean _rv;
-       SInt16 inDepth;
-       Boolean inIsColorDevice;
-       if (!PyArg_ParseTuple(_args, "hb",
-                             &inDepth,
-                             &inIsColorDevice))
-               return NULL;
-       _rv = IsThemeInColor(inDepth,
-                            inIsColorDevice);
-       _res = Py_BuildValue("b",
-                            _rv);
-       return _res;
-}
-
-static PyObject *App_GetThemeAccentColors(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSStatus _err;
-       CTabHandle outColors;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _err = GetThemeAccentColors(&outColors);
-       if (_err != noErr) return PyMac_Error(_err);
-       _res = Py_BuildValue("O&",
-                            ResObj_New, outColors);
-       return _res;
-}
-
-static PyObject *App_DrawThemeMenuBarBackground(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSStatus _err;
-       Rect inBounds;
-       ThemeMenuBarState inState;
-       UInt32 inAttributes;
-       if (!PyArg_ParseTuple(_args, "O&Hl",
-                             PyMac_GetRect, &inBounds,
-                             &inState,
-                             &inAttributes))
-               return NULL;
-       _err = DrawThemeMenuBarBackground(&inBounds,
-                                         inState,
-                                         inAttributes);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *App_GetThemeMenuBarHeight(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSStatus _err;
-       SInt16 outHeight;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _err = GetThemeMenuBarHeight(&outHeight);
-       if (_err != noErr) return PyMac_Error(_err);
-       _res = Py_BuildValue("h",
-                            outHeight);
-       return _res;
-}
-
-static PyObject *App_DrawThemeMenuBackground(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSStatus _err;
-       Rect inMenuRect;
-       ThemeMenuType inMenuType;
-       if (!PyArg_ParseTuple(_args, "O&H",
-                             PyMac_GetRect, &inMenuRect,
-                             &inMenuType))
-               return NULL;
-       _err = DrawThemeMenuBackground(&inMenuRect,
-                                      inMenuType);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *App_GetThemeMenuBackgroundRegion(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSStatus _err;
-       Rect inMenuRect;
-       ThemeMenuType menuType;
-       if (!PyArg_ParseTuple(_args, "O&H",
-                             PyMac_GetRect, &inMenuRect,
-                             &menuType))
-               return NULL;
-       _err = GetThemeMenuBackgroundRegion(&inMenuRect,
-                                           menuType,
-                                           (RgnHandle)0);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *App_DrawThemeMenuSeparator(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSStatus _err;
-       Rect inItemRect;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             PyMac_GetRect, &inItemRect))
-               return NULL;
-       _err = DrawThemeMenuSeparator(&inItemRect);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *App_GetThemeMenuSeparatorHeight(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSStatus _err;
-       SInt16 outHeight;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _err = GetThemeMenuSeparatorHeight(&outHeight);
-       if (_err != noErr) return PyMac_Error(_err);
-       _res = Py_BuildValue("h",
-                            outHeight);
-       return _res;
-}
-
-static PyObject *App_GetThemeMenuItemExtra(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSStatus _err;
-       ThemeMenuItemType inItemType;
-       SInt16 outHeight;
-       SInt16 outWidth;
-       if (!PyArg_ParseTuple(_args, "H",
-                             &inItemType))
-               return NULL;
-       _err = GetThemeMenuItemExtra(inItemType,
-                                    &outHeight,
-                                    &outWidth);
-       if (_err != noErr) return PyMac_Error(_err);
-       _res = Py_BuildValue("hh",
-                            outHeight,
-                            outWidth);
-       return _res;
-}
-
-static PyObject *App_GetThemeMenuTitleExtra(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSStatus _err;
-       SInt16 outWidth;
-       Boolean inIsSquished;
-       if (!PyArg_ParseTuple(_args, "b",
-                             &inIsSquished))
-               return NULL;
-       _err = GetThemeMenuTitleExtra(&outWidth,
-                                     inIsSquished);
-       if (_err != noErr) return PyMac_Error(_err);
-       _res = Py_BuildValue("h",
-                            outWidth);
-       return _res;
-}
-
-static PyObject *App_DrawThemeTabPane(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSStatus _err;
-       Rect inRect;
-       ThemeDrawState inState;
-       if (!PyArg_ParseTuple(_args, "O&l",
-                             PyMac_GetRect, &inRect,
-                             &inState))
-               return NULL;
-       _err = DrawThemeTabPane(&inRect,
-                               inState);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *App_GetThemeTabRegion(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSStatus _err;
-       Rect inRect;
-       ThemeTabStyle inStyle;
-       ThemeTabDirection inDirection;
-       if (!PyArg_ParseTuple(_args, "O&HH",
-                             PyMac_GetRect, &inRect,
-                             &inStyle,
-                             &inDirection))
-               return NULL;
-       _err = GetThemeTabRegion(&inRect,
-                                inStyle,
-                                inDirection,
-                                (RgnHandle)0);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *App_SetThemeCursor(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSStatus _err;
-       ThemeCursor inCursor;
-       if (!PyArg_ParseTuple(_args, "l",
-                             &inCursor))
-               return NULL;
-       _err = SetThemeCursor(inCursor);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *App_SetAnimatedThemeCursor(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSStatus _err;
-       ThemeCursor inCursor;
-       UInt32 inAnimationStep;
-       if (!PyArg_ParseTuple(_args, "ll",
-                             &inCursor,
-                             &inAnimationStep))
-               return NULL;
-       _err = SetAnimatedThemeCursor(inCursor,
-                                     inAnimationStep);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *App_GetThemeScrollBarThumbStyle(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSStatus _err;
-       ThemeScrollBarThumbStyle outStyle;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _err = GetThemeScrollBarThumbStyle(&outStyle);
-       if (_err != noErr) return PyMac_Error(_err);
-       _res = Py_BuildValue("H",
-                            outStyle);
-       return _res;
-}
-
-static PyObject *App_GetThemeScrollBarArrowStyle(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSStatus _err;
-       ThemeScrollBarArrowStyle outStyle;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _err = GetThemeScrollBarArrowStyle(&outStyle);
-       if (_err != noErr) return PyMac_Error(_err);
-       _res = Py_BuildValue("H",
-                            outStyle);
-       return _res;
-}
-
-static PyObject *App_GetThemeCheckBoxStyle(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSStatus _err;
-       ThemeCheckBoxStyle outStyle;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _err = GetThemeCheckBoxStyle(&outStyle);
-       if (_err != noErr) return PyMac_Error(_err);
-       _res = Py_BuildValue("H",
-                            outStyle);
-       return _res;
-}
-
-static PyObject *App_UseThemeFont(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSStatus _err;
-       ThemeFontID inFontID;
-       ScriptCode inScript;
-       if (!PyArg_ParseTuple(_args, "Hh",
-                             &inFontID,
-                             &inScript))
-               return NULL;
-       _err = UseThemeFont(inFontID,
-                           inScript);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *App_DrawThemeScrollBarArrows(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSStatus _err;
-       Rect bounds;
-       ThemeTrackEnableState enableState;
-       ThemeTrackPressState pressState;
-       Boolean isHoriz;
-       Rect trackBounds;
-       if (!PyArg_ParseTuple(_args, "O&bbb",
-                             PyMac_GetRect, &bounds,
-                             &enableState,
-                             &pressState,
-                             &isHoriz))
-               return NULL;
-       _err = DrawThemeScrollBarArrows(&bounds,
-                                       enableState,
-                                       pressState,
-                                       isHoriz,
-                                       &trackBounds);
-       if (_err != noErr) return PyMac_Error(_err);
-       _res = Py_BuildValue("O&",
-                            PyMac_BuildRect, &trackBounds);
-       return _res;
-}
-
-static PyObject *App_GetThemeScrollBarTrackRect(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSStatus _err;
-       Rect bounds;
-       ThemeTrackEnableState enableState;
-       ThemeTrackPressState pressState;
-       Boolean isHoriz;
-       Rect trackBounds;
-       if (!PyArg_ParseTuple(_args, "O&bbb",
-                             PyMac_GetRect, &bounds,
-                             &enableState,
-                             &pressState,
-                             &isHoriz))
-               return NULL;
-       _err = GetThemeScrollBarTrackRect(&bounds,
-                                         enableState,
-                                         pressState,
-                                         isHoriz,
-                                         &trackBounds);
-       if (_err != noErr) return PyMac_Error(_err);
-       _res = Py_BuildValue("O&",
-                            PyMac_BuildRect, &trackBounds);
-       return _res;
-}
-
-static PyObject *App_HitTestThemeScrollBarArrows(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Boolean _rv;
-       Rect scrollBarBounds;
-       ThemeTrackEnableState enableState;
-       ThemeTrackPressState pressState;
-       Boolean isHoriz;
-       Point ptHit;
-       Rect trackBounds;
-       ControlPartCode partcode;
-       if (!PyArg_ParseTuple(_args, "O&bbbO&",
-                             PyMac_GetRect, &scrollBarBounds,
-                             &enableState,
-                             &pressState,
-                             &isHoriz,
-                             PyMac_GetPoint, &ptHit))
-               return NULL;
-       _rv = HitTestThemeScrollBarArrows(&scrollBarBounds,
-                                         enableState,
-                                         pressState,
-                                         isHoriz,
-                                         ptHit,
-                                         &trackBounds,
-                                         &partcode);
-       _res = Py_BuildValue("bO&h",
-                            _rv,
-                            PyMac_BuildRect, &trackBounds,
-                            partcode);
-       return _res;
-}
-
-static PyObject *App_DrawThemeScrollBarDelimiters(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSStatus _err;
-       ThemeWindowType flavor;
-       Rect inContRect;
-       ThemeDrawState state;
-       ThemeWindowAttributes attributes;
-       if (!PyArg_ParseTuple(_args, "HO&ll",
-                             &flavor,
-                             PyMac_GetRect, &inContRect,
-                             &state,
-                             &attributes))
-               return NULL;
-       _err = DrawThemeScrollBarDelimiters(flavor,
-                                           &inContRect,
-                                           state,
-                                           attributes);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *App_PlayThemeSound(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSStatus _err;
-       ThemeSoundKind kind;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             PyMac_GetOSType, &kind))
-               return NULL;
-       _err = PlayThemeSound(kind);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *App_BeginThemeDragSound(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSStatus _err;
-       ThemeDragSoundKind kind;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             PyMac_GetOSType, &kind))
-               return NULL;
-       _err = BeginThemeDragSound(kind);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *App_EndThemeDragSound(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSStatus _err;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _err = EndThemeDragSound();
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *App_DrawThemeTickMark(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSStatus _err;
-       Rect bounds;
-       ThemeDrawState state;
-       if (!PyArg_ParseTuple(_args, "O&l",
-                             PyMac_GetRect, &bounds,
-                             &state))
-               return NULL;
-       _err = DrawThemeTickMark(&bounds,
-                                state);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *App_DrawThemeStandaloneGrowBox(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSStatus _err;
-       Point origin;
-       ThemeGrowDirection growDirection;
-       Boolean isSmall;
-       ThemeDrawState state;
-       if (!PyArg_ParseTuple(_args, "O&Hbl",
-                             PyMac_GetPoint, &origin,
-                             &growDirection,
-                             &isSmall,
-                             &state))
-               return NULL;
-       _err = DrawThemeStandaloneGrowBox(origin,
-                                         growDirection,
-                                         isSmall,
-                                         state);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *App_DrawThemeStandaloneNoGrowBox(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSStatus _err;
-       Point origin;
-       ThemeGrowDirection growDirection;
-       Boolean isSmall;
-       ThemeDrawState state;
-       if (!PyArg_ParseTuple(_args, "O&Hbl",
-                             PyMac_GetPoint, &origin,
-                             &growDirection,
-                             &isSmall,
-                             &state))
-               return NULL;
-       _err = DrawThemeStandaloneNoGrowBox(origin,
-                                           growDirection,
-                                           isSmall,
-                                           state);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *App_GetThemeStandaloneGrowBoxBounds(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSStatus _err;
-       Point origin;
-       ThemeGrowDirection growDirection;
-       Boolean isSmall;
-       Rect bounds;
-       if (!PyArg_ParseTuple(_args, "O&Hb",
-                             PyMac_GetPoint, &origin,
-                             &growDirection,
-                             &isSmall))
-               return NULL;
-       _err = GetThemeStandaloneGrowBoxBounds(origin,
-                                              growDirection,
-                                              isSmall,
-                                              &bounds);
-       if (_err != noErr) return PyMac_Error(_err);
-       _res = Py_BuildValue("O&",
-                            PyMac_BuildRect, &bounds);
-       return _res;
-}
-
-static PyObject *App_NormalizeThemeDrawingState(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSStatus _err;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _err = NormalizeThemeDrawingState();
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *App_ApplyThemeBackground(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSStatus _err;
-       ThemeBackgroundKind inKind;
-       Rect bounds;
-       ThemeDrawState inState;
-       SInt16 inDepth;
-       Boolean inColorDev;
-       if (!PyArg_ParseTuple(_args, "lO&lhb",
-                             &inKind,
-                             PyMac_GetRect, &bounds,
-                             &inState,
-                             &inDepth,
-                             &inColorDev))
-               return NULL;
-       _err = ApplyThemeBackground(inKind,
-                                   &bounds,
-                                   inState,
-                                   inDepth,
-                                   inColorDev);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *App_SetThemeTextColorForWindow(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSStatus _err;
-       WindowPtr window;
-       Boolean isActive;
-       SInt16 depth;
-       Boolean isColorDev;
-       if (!PyArg_ParseTuple(_args, "O&bhb",
-                             WinObj_Convert, &window,
-                             &isActive,
-                             &depth,
-                             &isColorDev))
-               return NULL;
-       _err = SetThemeTextColorForWindow(window,
-                                         isActive,
-                                         depth,
-                                         isColorDev);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *App_IsValidAppearanceFileType(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Boolean _rv;
-       OSType fileType;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             PyMac_GetOSType, &fileType))
-               return NULL;
-       _rv = IsValidAppearanceFileType(fileType);
-       _res = Py_BuildValue("b",
-                            _rv);
-       return _res;
-}
-
-static PyObject *App_GetThemeBrushAsColor(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSStatus _err;
-       ThemeBrush inBrush;
-       SInt16 inDepth;
-       Boolean inColorDev;
-       RGBColor outColor;
-       if (!PyArg_ParseTuple(_args, "hhb",
-                             &inBrush,
-                             &inDepth,
-                             &inColorDev))
-               return NULL;
-       _err = GetThemeBrushAsColor(inBrush,
-                                   inDepth,
-                                   inColorDev,
-                                   &outColor);
-       if (_err != noErr) return PyMac_Error(_err);
-       _res = Py_BuildValue("O&",
-                            QdRGB_New, &outColor);
-       return _res;
-}
-
-static PyObject *App_GetThemeTextColor(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSStatus _err;
-       ThemeTextColor inColor;
-       SInt16 inDepth;
-       Boolean inColorDev;
-       RGBColor outColor;
-       if (!PyArg_ParseTuple(_args, "hhb",
-                             &inColor,
-                             &inDepth,
-                             &inColorDev))
-               return NULL;
-       _err = GetThemeTextColor(inColor,
-                                inDepth,
-                                inColorDev,
-                                &outColor);
-       if (_err != noErr) return PyMac_Error(_err);
-       _res = Py_BuildValue("O&",
-                            QdRGB_New, &outColor);
-       return _res;
-}
-
-#if TARGET_API_MAC_CARBON
-
-static PyObject *App_GetThemeMetric(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSStatus _err;
-       ThemeMetric inMetric;
-       SInt32 outMetric;
-       if (!PyArg_ParseTuple(_args, "l",
-                             &inMetric))
-               return NULL;
-       _err = GetThemeMetric(inMetric,
-                             &outMetric);
-       if (_err != noErr) return PyMac_Error(_err);
-       _res = Py_BuildValue("l",
-                            outMetric);
-       return _res;
-}
-#endif
-
-static PyMethodDef App_methods[] = {
-       {"RegisterAppearanceClient", (PyCFunction)App_RegisterAppearanceClient, 1,
-        "() -> None"},
-       {"UnregisterAppearanceClient", (PyCFunction)App_UnregisterAppearanceClient, 1,
-        "() -> None"},
-       {"SetThemePen", (PyCFunction)App_SetThemePen, 1,
-        "(ThemeBrush inBrush, SInt16 inDepth, Boolean inIsColorDevice) -> None"},
-       {"SetThemeBackground", (PyCFunction)App_SetThemeBackground, 1,
-        "(ThemeBrush inBrush, SInt16 inDepth, Boolean inIsColorDevice) -> None"},
-       {"SetThemeTextColor", (PyCFunction)App_SetThemeTextColor, 1,
-        "(ThemeTextColor inColor, SInt16 inDepth, Boolean inIsColorDevice) -> None"},
-       {"SetThemeWindowBackground", (PyCFunction)App_SetThemeWindowBackground, 1,
-        "(WindowPtr inWindow, ThemeBrush inBrush, Boolean inUpdate) -> None"},
-       {"DrawThemeWindowHeader", (PyCFunction)App_DrawThemeWindowHeader, 1,
-        "(Rect inRect, ThemeDrawState inState) -> None"},
-       {"DrawThemeWindowListViewHeader", (PyCFunction)App_DrawThemeWindowListViewHeader, 1,
-        "(Rect inRect, ThemeDrawState inState) -> None"},
-       {"DrawThemePlacard", (PyCFunction)App_DrawThemePlacard, 1,
-        "(Rect inRect, ThemeDrawState inState) -> None"},
-       {"DrawThemeEditTextFrame", (PyCFunction)App_DrawThemeEditTextFrame, 1,
-        "(Rect inRect, ThemeDrawState inState) -> None"},
-       {"DrawThemeListBoxFrame", (PyCFunction)App_DrawThemeListBoxFrame, 1,
-        "(Rect inRect, ThemeDrawState inState) -> None"},
-       {"DrawThemeFocusRect", (PyCFunction)App_DrawThemeFocusRect, 1,
-        "(Rect inRect, Boolean inHasFocus) -> None"},
-       {"DrawThemePrimaryGroup", (PyCFunction)App_DrawThemePrimaryGroup, 1,
-        "(Rect inRect, ThemeDrawState inState) -> None"},
-       {"DrawThemeSecondaryGroup", (PyCFunction)App_DrawThemeSecondaryGroup, 1,
-        "(Rect inRect, ThemeDrawState inState) -> None"},
-       {"DrawThemeSeparator", (PyCFunction)App_DrawThemeSeparator, 1,
-        "(Rect inRect, ThemeDrawState inState) -> None"},
-       {"DrawThemeModelessDialogFrame", (PyCFunction)App_DrawThemeModelessDialogFrame, 1,
-        "(Rect inRect, ThemeDrawState inState) -> None"},
-       {"DrawThemeGenericWell", (PyCFunction)App_DrawThemeGenericWell, 1,
-        "(Rect inRect, ThemeDrawState inState, Boolean inFillCenter) -> None"},
-       {"DrawThemeFocusRegion", (PyCFunction)App_DrawThemeFocusRegion, 1,
-        "(Boolean inHasFocus) -> None"},
-       {"IsThemeInColor", (PyCFunction)App_IsThemeInColor, 1,
-        "(SInt16 inDepth, Boolean inIsColorDevice) -> (Boolean _rv)"},
-       {"GetThemeAccentColors", (PyCFunction)App_GetThemeAccentColors, 1,
-        "() -> (CTabHandle outColors)"},
-       {"DrawThemeMenuBarBackground", (PyCFunction)App_DrawThemeMenuBarBackground, 1,
-        "(Rect inBounds, ThemeMenuBarState inState, UInt32 inAttributes) -> None"},
-       {"GetThemeMenuBarHeight", (PyCFunction)App_GetThemeMenuBarHeight, 1,
-        "() -> (SInt16 outHeight)"},
-       {"DrawThemeMenuBackground", (PyCFunction)App_DrawThemeMenuBackground, 1,
-        "(Rect inMenuRect, ThemeMenuType inMenuType) -> None"},
-       {"GetThemeMenuBackgroundRegion", (PyCFunction)App_GetThemeMenuBackgroundRegion, 1,
-        "(Rect inMenuRect, ThemeMenuType menuType) -> None"},
-       {"DrawThemeMenuSeparator", (PyCFunction)App_DrawThemeMenuSeparator, 1,
-        "(Rect inItemRect) -> None"},
-       {"GetThemeMenuSeparatorHeight", (PyCFunction)App_GetThemeMenuSeparatorHeight, 1,
-        "() -> (SInt16 outHeight)"},
-       {"GetThemeMenuItemExtra", (PyCFunction)App_GetThemeMenuItemExtra, 1,
-        "(ThemeMenuItemType inItemType) -> (SInt16 outHeight, SInt16 outWidth)"},
-       {"GetThemeMenuTitleExtra", (PyCFunction)App_GetThemeMenuTitleExtra, 1,
-        "(Boolean inIsSquished) -> (SInt16 outWidth)"},
-       {"DrawThemeTabPane", (PyCFunction)App_DrawThemeTabPane, 1,
-        "(Rect inRect, ThemeDrawState inState) -> None"},
-       {"GetThemeTabRegion", (PyCFunction)App_GetThemeTabRegion, 1,
-        "(Rect inRect, ThemeTabStyle inStyle, ThemeTabDirection inDirection) -> None"},
-       {"SetThemeCursor", (PyCFunction)App_SetThemeCursor, 1,
-        "(ThemeCursor inCursor) -> None"},
-       {"SetAnimatedThemeCursor", (PyCFunction)App_SetAnimatedThemeCursor, 1,
-        "(ThemeCursor inCursor, UInt32 inAnimationStep) -> None"},
-       {"GetThemeScrollBarThumbStyle", (PyCFunction)App_GetThemeScrollBarThumbStyle, 1,
-        "() -> (ThemeScrollBarThumbStyle outStyle)"},
-       {"GetThemeScrollBarArrowStyle", (PyCFunction)App_GetThemeScrollBarArrowStyle, 1,
-        "() -> (ThemeScrollBarArrowStyle outStyle)"},
-       {"GetThemeCheckBoxStyle", (PyCFunction)App_GetThemeCheckBoxStyle, 1,
-        "() -> (ThemeCheckBoxStyle outStyle)"},
-       {"UseThemeFont", (PyCFunction)App_UseThemeFont, 1,
-        "(ThemeFontID inFontID, ScriptCode inScript) -> None"},
-       {"DrawThemeScrollBarArrows", (PyCFunction)App_DrawThemeScrollBarArrows, 1,
-        "(Rect bounds, ThemeTrackEnableState enableState, ThemeTrackPressState pressState, Boolean isHoriz) -> (Rect trackBounds)"},
-       {"GetThemeScrollBarTrackRect", (PyCFunction)App_GetThemeScrollBarTrackRect, 1,
-        "(Rect bounds, ThemeTrackEnableState enableState, ThemeTrackPressState pressState, Boolean isHoriz) -> (Rect trackBounds)"},
-       {"HitTestThemeScrollBarArrows", (PyCFunction)App_HitTestThemeScrollBarArrows, 1,
-        "(Rect scrollBarBounds, ThemeTrackEnableState enableState, ThemeTrackPressState pressState, Boolean isHoriz, Point ptHit) -> (Boolean _rv, Rect trackBounds, ControlPartCode partcode)"},
-       {"DrawThemeScrollBarDelimiters", (PyCFunction)App_DrawThemeScrollBarDelimiters, 1,
-        "(ThemeWindowType flavor, Rect inContRect, ThemeDrawState state, ThemeWindowAttributes attributes) -> None"},
-       {"PlayThemeSound", (PyCFunction)App_PlayThemeSound, 1,
-        "(ThemeSoundKind kind) -> None"},
-       {"BeginThemeDragSound", (PyCFunction)App_BeginThemeDragSound, 1,
-        "(ThemeDragSoundKind kind) -> None"},
-       {"EndThemeDragSound", (PyCFunction)App_EndThemeDragSound, 1,
-        "() -> None"},
-       {"DrawThemeTickMark", (PyCFunction)App_DrawThemeTickMark, 1,
-        "(Rect bounds, ThemeDrawState state) -> None"},
-       {"DrawThemeStandaloneGrowBox", (PyCFunction)App_DrawThemeStandaloneGrowBox, 1,
-        "(Point origin, ThemeGrowDirection growDirection, Boolean isSmall, ThemeDrawState state) -> None"},
-       {"DrawThemeStandaloneNoGrowBox", (PyCFunction)App_DrawThemeStandaloneNoGrowBox, 1,
-        "(Point origin, ThemeGrowDirection growDirection, Boolean isSmall, ThemeDrawState state) -> None"},
-       {"GetThemeStandaloneGrowBoxBounds", (PyCFunction)App_GetThemeStandaloneGrowBoxBounds, 1,
-        "(Point origin, ThemeGrowDirection growDirection, Boolean isSmall) -> (Rect bounds)"},
-       {"NormalizeThemeDrawingState", (PyCFunction)App_NormalizeThemeDrawingState, 1,
-        "() -> None"},
-       {"ApplyThemeBackground", (PyCFunction)App_ApplyThemeBackground, 1,
-        "(ThemeBackgroundKind inKind, Rect bounds, ThemeDrawState inState, SInt16 inDepth, Boolean inColorDev) -> None"},
-       {"SetThemeTextColorForWindow", (PyCFunction)App_SetThemeTextColorForWindow, 1,
-        "(WindowPtr window, Boolean isActive, SInt16 depth, Boolean isColorDev) -> None"},
-       {"IsValidAppearanceFileType", (PyCFunction)App_IsValidAppearanceFileType, 1,
-        "(OSType fileType) -> (Boolean _rv)"},
-       {"GetThemeBrushAsColor", (PyCFunction)App_GetThemeBrushAsColor, 1,
-        "(ThemeBrush inBrush, SInt16 inDepth, Boolean inColorDev) -> (RGBColor outColor)"},
-       {"GetThemeTextColor", (PyCFunction)App_GetThemeTextColor, 1,
-        "(ThemeTextColor inColor, SInt16 inDepth, Boolean inColorDev) -> (RGBColor outColor)"},
-
-#if TARGET_API_MAC_CARBON
-       {"GetThemeMetric", (PyCFunction)App_GetThemeMetric, 1,
-        "(ThemeMetric inMetric) -> (SInt32 outMetric)"},
-#endif
-       {NULL, NULL, 0}
-};
-
-
-
-
-void initApp()
-{
-       PyObject *m;
-       PyObject *d;
-
-
-
-
-       m = Py_InitModule("App", App_methods);
-       d = PyModule_GetDict(m);
-       App_Error = PyMac_GetOSErrException();
-       if (App_Error == NULL ||
-           PyDict_SetItemString(d, "Error", App_Error) != 0)
-               return;
-}
-
-/* ========================= End module App ========================= */
-
diff --git a/Mac/Modules/app/appsupport.py b/Mac/Modules/app/appsupport.py
deleted file mode 100644 (file)
index bd314dd..0000000
+++ /dev/null
@@ -1,112 +0,0 @@
-# This script generates a Python interface for an Apple Macintosh Manager.
-# It uses the "bgen" package to generate C code.
-# The function specifications are generated by scanning the mamager's header file,
-# using the "scantools" package (customized for this particular manager).
-
-import string
-
-# Declarations that change for each manager
-MACHEADERFILE = 'Appearance.h'         # The Apple header file
-MODNAME = 'App'                                # The name of the module
-OBJECTNAME = 'UNUSED'                  # The basic name of the objects used here
-KIND = 'Record'                                # Usually 'Ptr' or 'Handle'
-
-# The following is *usually* unchanged but may still require tuning
-MODPREFIX = MODNAME                    # The prefix for module-wide routines
-OBJECTTYPE = OBJECTNAME + KIND         # The C type used to represent them
-OBJECTPREFIX = MODPREFIX + 'Obj'       # The prefix for object methods
-INPUTFILE = string.lower(MODPREFIX) + 'gen.py' # The file generated by the scanner
-OUTPUTFILE = MODNAME + "module.c"      # The file generated by this program
-
-from macsupport import *
-
-# Create the type objects
-#MenuRef = OpaqueByValueType("MenuRef", "MenuObj")
-
-
-#WindowPeek = OpaqueByValueType("WindowPeek", OBJECTPREFIX)
-
-RgnHandle = FakeType("(RgnHandle)0")
-# XXXX Should be next, but this will break a lot of code...
-# RgnHandle = OpaqueByValueType("RgnHandle", "OptResObj")
-
-#KeyMap = ArrayOutputBufferType("KeyMap")
-#MacOSEventKind = Type("MacOSEventKind", "h") # Old-style
-#MacOSEventMask = Type("MacOSEventMask", "h") # Old-style
-#EventMask = Type("EventMask", "h")
-#EventKind = Type("EventKind", "h")
-ThemeBrush = Type("ThemeBrush", "h")
-ThemeColor = Type("ThemeColor", "h")
-ThemeTextColor = Type("ThemeTextColor", "h")
-ThemeMenuBarState = Type("ThemeMenuBarState", "H")
-ThemeMenuState = Type("ThemeMenuState", "H")
-ThemeMenuType = Type("ThemeMenuType", "H")
-ThemeMenuItemType = Type("ThemeMenuItemType", "H")
-ThemeFontID = Type("ThemeFontID", "H")
-ThemeTabStyle = Type("ThemeTabStyle", "H")
-ThemeTabDirection = Type("ThemeTabDirection", "H")
-ThemeDrawState = Type("ThemeDrawState", "l")
-ThemeCursor = Type("ThemeCursor", "l")
-ThemeCheckBoxStyle = Type("ThemeCheckBoxStyle", "H")
-ThemeScrollBarArrowStyle = Type("ThemeScrollBarArrowStyle", "H")
-ThemeScrollBarThumbStyle = Type("ThemeScrollBarThumbStyle", "H")
-CTabHandle = OpaqueByValueType("CTabHandle", "ResObj")
-ThemeTrackEnableState = Type("ThemeTrackEnableState", "b")
-ThemeTrackPressState = Type("ThemeTrackPressState", "b")
-ThemeThumbDirection = Type("ThemeThumbDirection", "b")
-ThemeTrackAttributes = Type("ThemeTrackAttributes", "H")
-ControlPartCode = Type("ControlPartCode", "h")
-ThemeWindowAttributes = Type("ThemeWindowAttributes", "l")
-ThemeWindowType = Type("ThemeWindowType", "H")
-ThemeTitleBarWidget = Type("ThemeTitleBarWidget", "H")
-ThemeArrowOrientation = Type("ThemeArrowOrientation", "H")
-ThemePopupArrowSize = Type("ThemePopupArrowSize", "H")
-ThemeGrowDirection = Type("ThemeGrowDirection", "H")
-ThemeSoundKind = OSTypeType("ThemeSoundKind")
-ThemeDragSoundKind = OSTypeType("ThemeDragSoundKind")
-ThemeBackgroundKind = Type("ThemeBackgroundKind", "l")
-ThemeMetric = Type("ThemeMetric", "l")
-RGBColor = OpaqueType("RGBColor", "QdRGB")
-
-includestuff = includestuff + """
-#include <%s>""" % MACHEADERFILE + """
-"""
-
-## class MyObjectDefinition(GlobalObjectDefinition):
-##     def outputCheckNewArg(self):
-##             Output("if (itself == NULL) return PyMac_Error(resNotFound);")
-##     def outputCheckConvertArg(self):
-##             OutLbrace("if (DlgObj_Check(v))")
-##             Output("*p_itself = ((WindowObject *)v)->ob_itself;")
-##             Output("return 1;")
-##             OutRbrace()
-##             Out("""
-##             if (v == Py_None) { *p_itself = NULL; return 1; }
-##             if (PyInt_Check(v)) { *p_itself = (WindowPtr)PyInt_AsLong(v); return 1; }
-##             """)
-
-# From here on it's basically all boiler plate...
-
-# Create the generator groups and link them
-module = MacModule(MODNAME, MODPREFIX, includestuff, finalstuff, initstuff)
-##object = MyObjectDefinition(OBJECTNAME, OBJECTPREFIX, OBJECTTYPE)
-##module.addobject(object)
-
-# Create the generator classes used to populate the lists
-Function = OSErrFunctionGenerator
-##Method = OSErrMethodGenerator
-
-# Create and populate the lists
-functions = []
-##methods = []
-execfile(INPUTFILE)
-
-# add the populated lists to the generator groups
-# (in a different wordl the scan program would generate this)
-for f in functions: module.add(f)
-##for f in methods: object.add(f)
-
-# generate output (open the output file as late as possible)
-SetOutputFileName(OUTPUTFILE)
-module.generate()
-
diff --git a/Mac/Modules/cm/Cmmodule.c b/Mac/Modules/cm/Cmmodule.c
deleted file mode 100644 (file)
index 93a3e09..0000000
+++ /dev/null
@@ -1,846 +0,0 @@
-
-/* =========================== Module Cm ============================ */
-
-#include "Python.h"
-
-
-
-#include "macglue.h"
-#include "pymactoolbox.h"
-
-#include <Components.h>
-
-/*
-** Parse/generate ComponentDescriptor records
-*/
-static PyObject *
-CmpDesc_New(itself)
-       ComponentDescription *itself;
-{
-
-       return Py_BuildValue("O&O&O&ll", 
-               PyMac_BuildOSType, itself->componentType,
-               PyMac_BuildOSType, itself->componentSubType,
-               PyMac_BuildOSType, itself->componentManufacturer,
-               itself->componentFlags, itself->componentFlagsMask);
-}
-
-static int
-CmpDesc_Convert(v, p_itself)
-       PyObject *v;
-       ComponentDescription *p_itself;
-{
-       return PyArg_ParseTuple(v, "O&O&O&ll",
-               PyMac_GetOSType, &p_itself->componentType,
-               PyMac_GetOSType, &p_itself->componentSubType,
-               PyMac_GetOSType, &p_itself->componentManufacturer,
-               &p_itself->componentFlags, &p_itself->componentFlagsMask);
-}
-
-
-static PyObject *Cm_Error;
-
-/* ----------------- Object type ComponentInstance ------------------ */
-
-PyTypeObject ComponentInstance_Type;
-
-#define CmpInstObj_Check(x) ((x)->ob_type == &ComponentInstance_Type)
-
-typedef struct ComponentInstanceObject {
-       PyObject_HEAD
-       ComponentInstance ob_itself;
-} ComponentInstanceObject;
-
-PyObject *CmpInstObj_New(itself)
-       ComponentInstance itself;
-{
-       ComponentInstanceObject *it;
-       if (itself == NULL) {
-                                               PyErr_SetString(Cm_Error,"NULL ComponentInstance");
-                                               return NULL;
-                                       }
-       it = PyObject_NEW(ComponentInstanceObject, &ComponentInstance_Type);
-       if (it == NULL) return NULL;
-       it->ob_itself = itself;
-       return (PyObject *)it;
-}
-CmpInstObj_Convert(v, p_itself)
-       PyObject *v;
-       ComponentInstance *p_itself;
-{
-       if (!CmpInstObj_Check(v))
-       {
-               PyErr_SetString(PyExc_TypeError, "ComponentInstance required");
-               return 0;
-       }
-       *p_itself = ((ComponentInstanceObject *)v)->ob_itself;
-       return 1;
-}
-
-static void CmpInstObj_dealloc(self)
-       ComponentInstanceObject *self;
-{
-       /* Cleanup of self->ob_itself goes here */
-       PyMem_DEL(self);
-}
-
-static PyObject *CmpInstObj_CloseComponent(_self, _args)
-       ComponentInstanceObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _err = CloseComponent(_self->ob_itself);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *CmpInstObj_GetComponentInstanceError(_self, _args)
-       ComponentInstanceObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _err = GetComponentInstanceError(_self->ob_itself);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *CmpInstObj_SetComponentInstanceError(_self, _args)
-       ComponentInstanceObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr theError;
-       if (!PyArg_ParseTuple(_args, "h",
-                             &theError))
-               return NULL;
-       SetComponentInstanceError(_self->ob_itself,
-                                 theError);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *CmpInstObj_GetComponentInstanceStorage(_self, _args)
-       ComponentInstanceObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Handle _rv;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _rv = GetComponentInstanceStorage(_self->ob_itself);
-       _res = Py_BuildValue("O&",
-                            ResObj_New, _rv);
-       return _res;
-}
-
-static PyObject *CmpInstObj_SetComponentInstanceStorage(_self, _args)
-       ComponentInstanceObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Handle theStorage;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             ResObj_Convert, &theStorage))
-               return NULL;
-       SetComponentInstanceStorage(_self->ob_itself,
-                                   theStorage);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-#if !TARGET_API_MAC_CARBON
-
-static PyObject *CmpInstObj_GetComponentInstanceA5(_self, _args)
-       ComponentInstanceObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       long _rv;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _rv = GetComponentInstanceA5(_self->ob_itself);
-       _res = Py_BuildValue("l",
-                            _rv);
-       return _res;
-}
-#endif
-
-#if !TARGET_API_MAC_CARBON
-
-static PyObject *CmpInstObj_SetComponentInstanceA5(_self, _args)
-       ComponentInstanceObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       long theA5;
-       if (!PyArg_ParseTuple(_args, "l",
-                             &theA5))
-               return NULL;
-       SetComponentInstanceA5(_self->ob_itself,
-                              theA5);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-#endif
-
-static PyObject *CmpInstObj_ComponentFunctionImplemented(_self, _args)
-       ComponentInstanceObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       long _rv;
-       short ftnNumber;
-       if (!PyArg_ParseTuple(_args, "h",
-                             &ftnNumber))
-               return NULL;
-       _rv = ComponentFunctionImplemented(_self->ob_itself,
-                                          ftnNumber);
-       _res = Py_BuildValue("l",
-                            _rv);
-       return _res;
-}
-
-static PyObject *CmpInstObj_GetComponentVersion(_self, _args)
-       ComponentInstanceObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       long _rv;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _rv = GetComponentVersion(_self->ob_itself);
-       _res = Py_BuildValue("l",
-                            _rv);
-       return _res;
-}
-
-static PyObject *CmpInstObj_ComponentSetTarget(_self, _args)
-       ComponentInstanceObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       long _rv;
-       ComponentInstance target;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             CmpInstObj_Convert, &target))
-               return NULL;
-       _rv = ComponentSetTarget(_self->ob_itself,
-                                target);
-       _res = Py_BuildValue("l",
-                            _rv);
-       return _res;
-}
-
-static PyMethodDef CmpInstObj_methods[] = {
-       {"CloseComponent", (PyCFunction)CmpInstObj_CloseComponent, 1,
-        "() -> None"},
-       {"GetComponentInstanceError", (PyCFunction)CmpInstObj_GetComponentInstanceError, 1,
-        "() -> None"},
-       {"SetComponentInstanceError", (PyCFunction)CmpInstObj_SetComponentInstanceError, 1,
-        "(OSErr theError) -> None"},
-       {"GetComponentInstanceStorage", (PyCFunction)CmpInstObj_GetComponentInstanceStorage, 1,
-        "() -> (Handle _rv)"},
-       {"SetComponentInstanceStorage", (PyCFunction)CmpInstObj_SetComponentInstanceStorage, 1,
-        "(Handle theStorage) -> None"},
-
-#if !TARGET_API_MAC_CARBON
-       {"GetComponentInstanceA5", (PyCFunction)CmpInstObj_GetComponentInstanceA5, 1,
-        "() -> (long _rv)"},
-#endif
-
-#if !TARGET_API_MAC_CARBON
-       {"SetComponentInstanceA5", (PyCFunction)CmpInstObj_SetComponentInstanceA5, 1,
-        "(long theA5) -> None"},
-#endif
-       {"ComponentFunctionImplemented", (PyCFunction)CmpInstObj_ComponentFunctionImplemented, 1,
-        "(short ftnNumber) -> (long _rv)"},
-       {"GetComponentVersion", (PyCFunction)CmpInstObj_GetComponentVersion, 1,
-        "() -> (long _rv)"},
-       {"ComponentSetTarget", (PyCFunction)CmpInstObj_ComponentSetTarget, 1,
-        "(ComponentInstance target) -> (long _rv)"},
-       {NULL, NULL, 0}
-};
-
-PyMethodChain CmpInstObj_chain = { CmpInstObj_methods, NULL };
-
-static PyObject *CmpInstObj_getattr(self, name)
-       ComponentInstanceObject *self;
-       char *name;
-{
-       return Py_FindMethodInChain(&CmpInstObj_chain, (PyObject *)self, name);
-}
-
-#define CmpInstObj_setattr NULL
-
-#define CmpInstObj_compare NULL
-
-#define CmpInstObj_repr NULL
-
-#define CmpInstObj_hash NULL
-
-PyTypeObject ComponentInstance_Type = {
-       PyObject_HEAD_INIT(&PyType_Type)
-       0, /*ob_size*/
-       "ComponentInstance", /*tp_name*/
-       sizeof(ComponentInstanceObject), /*tp_basicsize*/
-       0, /*tp_itemsize*/
-       /* methods */
-       (destructor) CmpInstObj_dealloc, /*tp_dealloc*/
-       0, /*tp_print*/
-       (getattrfunc) CmpInstObj_getattr, /*tp_getattr*/
-       (setattrfunc) CmpInstObj_setattr, /*tp_setattr*/
-       (cmpfunc) CmpInstObj_compare, /*tp_compare*/
-       (reprfunc) CmpInstObj_repr, /*tp_repr*/
-       (PyNumberMethods *)0, /* tp_as_number */
-       (PySequenceMethods *)0, /* tp_as_sequence */
-       (PyMappingMethods *)0, /* tp_as_mapping */
-       (hashfunc) CmpInstObj_hash, /*tp_hash*/
-};
-
-/* --------------- End object type ComponentInstance ---------------- */
-
-
-/* --------------------- Object type Component ---------------------- */
-
-PyTypeObject Component_Type;
-
-#define CmpObj_Check(x) ((x)->ob_type == &Component_Type)
-
-typedef struct ComponentObject {
-       PyObject_HEAD
-       Component ob_itself;
-} ComponentObject;
-
-PyObject *CmpObj_New(itself)
-       Component itself;
-{
-       ComponentObject *it;
-       if (itself == NULL) {
-                                               /* XXXX Or should we return None? */
-                                               PyErr_SetString(Cm_Error,"No such component");
-                                               return NULL;
-                                       }
-       it = PyObject_NEW(ComponentObject, &Component_Type);
-       if (it == NULL) return NULL;
-       it->ob_itself = itself;
-       return (PyObject *)it;
-}
-CmpObj_Convert(v, p_itself)
-       PyObject *v;
-       Component *p_itself;
-{
-       if ( v == Py_None ) {
-                                               *p_itself = 0;
-                                               return 1;
-                       }
-       if (!CmpObj_Check(v))
-       {
-               PyErr_SetString(PyExc_TypeError, "Component required");
-               return 0;
-       }
-       *p_itself = ((ComponentObject *)v)->ob_itself;
-       return 1;
-}
-
-static void CmpObj_dealloc(self)
-       ComponentObject *self;
-{
-       /* Cleanup of self->ob_itself goes here */
-       PyMem_DEL(self);
-}
-
-static PyObject *CmpObj_UnregisterComponent(_self, _args)
-       ComponentObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _err = UnregisterComponent(_self->ob_itself);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *CmpObj_GetComponentInfo(_self, _args)
-       ComponentObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       ComponentDescription cd;
-       Handle componentName;
-       Handle componentInfo;
-       Handle componentIcon;
-       if (!PyArg_ParseTuple(_args, "O&O&O&",
-                             ResObj_Convert, &componentName,
-                             ResObj_Convert, &componentInfo,
-                             ResObj_Convert, &componentIcon))
-               return NULL;
-       _err = GetComponentInfo(_self->ob_itself,
-                               &cd,
-                               componentName,
-                               componentInfo,
-                               componentIcon);
-       if (_err != noErr) return PyMac_Error(_err);
-       _res = Py_BuildValue("O&",
-                            CmpDesc_New, &cd);
-       return _res;
-}
-
-static PyObject *CmpObj_OpenComponent(_self, _args)
-       ComponentObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       ComponentInstance _rv;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _rv = OpenComponent(_self->ob_itself);
-       _res = Py_BuildValue("O&",
-                            CmpInstObj_New, _rv);
-       return _res;
-}
-
-static PyObject *CmpObj_GetComponentRefcon(_self, _args)
-       ComponentObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       long _rv;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _rv = GetComponentRefcon(_self->ob_itself);
-       _res = Py_BuildValue("l",
-                            _rv);
-       return _res;
-}
-
-static PyObject *CmpObj_SetComponentRefcon(_self, _args)
-       ComponentObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       long theRefcon;
-       if (!PyArg_ParseTuple(_args, "l",
-                             &theRefcon))
-               return NULL;
-       SetComponentRefcon(_self->ob_itself,
-                          theRefcon);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *CmpObj_OpenComponentResFile(_self, _args)
-       ComponentObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       short _rv;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _rv = OpenComponentResFile(_self->ob_itself);
-       _res = Py_BuildValue("h",
-                            _rv);
-       return _res;
-}
-
-static PyObject *CmpObj_GetComponentResource(_self, _args)
-       ComponentObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       OSType resType;
-       short resID;
-       Handle theResource;
-       if (!PyArg_ParseTuple(_args, "O&h",
-                             PyMac_GetOSType, &resType,
-                             &resID))
-               return NULL;
-       _err = GetComponentResource(_self->ob_itself,
-                                   resType,
-                                   resID,
-                                   &theResource);
-       if (_err != noErr) return PyMac_Error(_err);
-       _res = Py_BuildValue("O&",
-                            ResObj_New, theResource);
-       return _res;
-}
-
-static PyObject *CmpObj_GetComponentIndString(_self, _args)
-       ComponentObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       Str255 theString;
-       short strListID;
-       short index;
-       if (!PyArg_ParseTuple(_args, "O&hh",
-                             PyMac_GetStr255, theString,
-                             &strListID,
-                             &index))
-               return NULL;
-       _err = GetComponentIndString(_self->ob_itself,
-                                    theString,
-                                    strListID,
-                                    index);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *CmpObj_ResolveComponentAlias(_self, _args)
-       ComponentObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Component _rv;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _rv = ResolveComponentAlias(_self->ob_itself);
-       _res = Py_BuildValue("O&",
-                            CmpObj_New, _rv);
-       return _res;
-}
-
-static PyObject *CmpObj_CountComponentInstances(_self, _args)
-       ComponentObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       long _rv;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _rv = CountComponentInstances(_self->ob_itself);
-       _res = Py_BuildValue("l",
-                            _rv);
-       return _res;
-}
-
-static PyObject *CmpObj_SetDefaultComponent(_self, _args)
-       ComponentObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       short flags;
-       if (!PyArg_ParseTuple(_args, "h",
-                             &flags))
-               return NULL;
-       _err = SetDefaultComponent(_self->ob_itself,
-                                  flags);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *CmpObj_CaptureComponent(_self, _args)
-       ComponentObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Component _rv;
-       Component capturingComponent;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             CmpObj_Convert, &capturingComponent))
-               return NULL;
-       _rv = CaptureComponent(_self->ob_itself,
-                              capturingComponent);
-       _res = Py_BuildValue("O&",
-                            CmpObj_New, _rv);
-       return _res;
-}
-
-static PyObject *CmpObj_UncaptureComponent(_self, _args)
-       ComponentObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _err = UncaptureComponent(_self->ob_itself);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *CmpObj_GetComponentIconSuite(_self, _args)
-       ComponentObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       Handle iconSuite;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _err = GetComponentIconSuite(_self->ob_itself,
-                                    &iconSuite);
-       if (_err != noErr) return PyMac_Error(_err);
-       _res = Py_BuildValue("O&",
-                            ResObj_New, iconSuite);
-       return _res;
-}
-
-static PyMethodDef CmpObj_methods[] = {
-       {"UnregisterComponent", (PyCFunction)CmpObj_UnregisterComponent, 1,
-        "() -> None"},
-       {"GetComponentInfo", (PyCFunction)CmpObj_GetComponentInfo, 1,
-        "(Handle componentName, Handle componentInfo, Handle componentIcon) -> (ComponentDescription cd)"},
-       {"OpenComponent", (PyCFunction)CmpObj_OpenComponent, 1,
-        "() -> (ComponentInstance _rv)"},
-       {"GetComponentRefcon", (PyCFunction)CmpObj_GetComponentRefcon, 1,
-        "() -> (long _rv)"},
-       {"SetComponentRefcon", (PyCFunction)CmpObj_SetComponentRefcon, 1,
-        "(long theRefcon) -> None"},
-       {"OpenComponentResFile", (PyCFunction)CmpObj_OpenComponentResFile, 1,
-        "() -> (short _rv)"},
-       {"GetComponentResource", (PyCFunction)CmpObj_GetComponentResource, 1,
-        "(OSType resType, short resID) -> (Handle theResource)"},
-       {"GetComponentIndString", (PyCFunction)CmpObj_GetComponentIndString, 1,
-        "(Str255 theString, short strListID, short index) -> None"},
-       {"ResolveComponentAlias", (PyCFunction)CmpObj_ResolveComponentAlias, 1,
-        "() -> (Component _rv)"},
-       {"CountComponentInstances", (PyCFunction)CmpObj_CountComponentInstances, 1,
-        "() -> (long _rv)"},
-       {"SetDefaultComponent", (PyCFunction)CmpObj_SetDefaultComponent, 1,
-        "(short flags) -> None"},
-       {"CaptureComponent", (PyCFunction)CmpObj_CaptureComponent, 1,
-        "(Component capturingComponent) -> (Component _rv)"},
-       {"UncaptureComponent", (PyCFunction)CmpObj_UncaptureComponent, 1,
-        "() -> None"},
-       {"GetComponentIconSuite", (PyCFunction)CmpObj_GetComponentIconSuite, 1,
-        "() -> (Handle iconSuite)"},
-       {NULL, NULL, 0}
-};
-
-PyMethodChain CmpObj_chain = { CmpObj_methods, NULL };
-
-static PyObject *CmpObj_getattr(self, name)
-       ComponentObject *self;
-       char *name;
-{
-       return Py_FindMethodInChain(&CmpObj_chain, (PyObject *)self, name);
-}
-
-#define CmpObj_setattr NULL
-
-#define CmpObj_compare NULL
-
-#define CmpObj_repr NULL
-
-#define CmpObj_hash NULL
-
-PyTypeObject Component_Type = {
-       PyObject_HEAD_INIT(&PyType_Type)
-       0, /*ob_size*/
-       "Component", /*tp_name*/
-       sizeof(ComponentObject), /*tp_basicsize*/
-       0, /*tp_itemsize*/
-       /* methods */
-       (destructor) CmpObj_dealloc, /*tp_dealloc*/
-       0, /*tp_print*/
-       (getattrfunc) CmpObj_getattr, /*tp_getattr*/
-       (setattrfunc) CmpObj_setattr, /*tp_setattr*/
-       (cmpfunc) CmpObj_compare, /*tp_compare*/
-       (reprfunc) CmpObj_repr, /*tp_repr*/
-       (PyNumberMethods *)0, /* tp_as_number */
-       (PySequenceMethods *)0, /* tp_as_sequence */
-       (PyMappingMethods *)0, /* tp_as_mapping */
-       (hashfunc) CmpObj_hash, /*tp_hash*/
-};
-
-/* ------------------- End object type Component -------------------- */
-
-
-static PyObject *Cm_RegisterComponentResource(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Component _rv;
-       ComponentResourceHandle cr;
-       short global;
-       if (!PyArg_ParseTuple(_args, "O&h",
-                             ResObj_Convert, &cr,
-                             &global))
-               return NULL;
-       _rv = RegisterComponentResource(cr,
-                                       global);
-       _res = Py_BuildValue("O&",
-                            CmpObj_New, _rv);
-       return _res;
-}
-
-static PyObject *Cm_FindNextComponent(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Component _rv;
-       Component aComponent;
-       ComponentDescription looking;
-       if (!PyArg_ParseTuple(_args, "O&O&",
-                             CmpObj_Convert, &aComponent,
-                             CmpDesc_Convert, &looking))
-               return NULL;
-       _rv = FindNextComponent(aComponent,
-                               &looking);
-       _res = Py_BuildValue("O&",
-                            CmpObj_New, _rv);
-       return _res;
-}
-
-static PyObject *Cm_CountComponents(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       long _rv;
-       ComponentDescription looking;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             CmpDesc_Convert, &looking))
-               return NULL;
-       _rv = CountComponents(&looking);
-       _res = Py_BuildValue("l",
-                            _rv);
-       return _res;
-}
-
-static PyObject *Cm_GetComponentListModSeed(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       long _rv;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _rv = GetComponentListModSeed();
-       _res = Py_BuildValue("l",
-                            _rv);
-       return _res;
-}
-
-static PyObject *Cm_CloseComponentResFile(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       short refnum;
-       if (!PyArg_ParseTuple(_args, "h",
-                             &refnum))
-               return NULL;
-       _err = CloseComponentResFile(refnum);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *Cm_OpenDefaultComponent(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       ComponentInstance _rv;
-       OSType componentType;
-       OSType componentSubType;
-       if (!PyArg_ParseTuple(_args, "O&O&",
-                             PyMac_GetOSType, &componentType,
-                             PyMac_GetOSType, &componentSubType))
-               return NULL;
-       _rv = OpenDefaultComponent(componentType,
-                                  componentSubType);
-       _res = Py_BuildValue("O&",
-                            CmpInstObj_New, _rv);
-       return _res;
-}
-
-static PyObject *Cm_RegisterComponentResourceFile(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       long _rv;
-       short resRefNum;
-       short global;
-       if (!PyArg_ParseTuple(_args, "hh",
-                             &resRefNum,
-                             &global))
-               return NULL;
-       _rv = RegisterComponentResourceFile(resRefNum,
-                                           global);
-       _res = Py_BuildValue("l",
-                            _rv);
-       return _res;
-}
-
-static PyMethodDef Cm_methods[] = {
-       {"RegisterComponentResource", (PyCFunction)Cm_RegisterComponentResource, 1,
-        "(ComponentResourceHandle cr, short global) -> (Component _rv)"},
-       {"FindNextComponent", (PyCFunction)Cm_FindNextComponent, 1,
-        "(Component aComponent, ComponentDescription looking) -> (Component _rv)"},
-       {"CountComponents", (PyCFunction)Cm_CountComponents, 1,
-        "(ComponentDescription looking) -> (long _rv)"},
-       {"GetComponentListModSeed", (PyCFunction)Cm_GetComponentListModSeed, 1,
-        "() -> (long _rv)"},
-       {"CloseComponentResFile", (PyCFunction)Cm_CloseComponentResFile, 1,
-        "(short refnum) -> None"},
-       {"OpenDefaultComponent", (PyCFunction)Cm_OpenDefaultComponent, 1,
-        "(OSType componentType, OSType componentSubType) -> (ComponentInstance _rv)"},
-       {"RegisterComponentResourceFile", (PyCFunction)Cm_RegisterComponentResourceFile, 1,
-        "(short resRefNum, short global) -> (long _rv)"},
-       {NULL, NULL, 0}
-};
-
-
-
-
-void initCm()
-{
-       PyObject *m;
-       PyObject *d;
-
-
-
-
-       m = Py_InitModule("Cm", Cm_methods);
-       d = PyModule_GetDict(m);
-       Cm_Error = PyMac_GetOSErrException();
-       if (Cm_Error == NULL ||
-           PyDict_SetItemString(d, "Error", Cm_Error) != 0)
-               return;
-       ComponentInstance_Type.ob_type = &PyType_Type;
-       Py_INCREF(&ComponentInstance_Type);
-       if (PyDict_SetItemString(d, "ComponentInstanceType", (PyObject *)&ComponentInstance_Type) != 0)
-               Py_FatalError("can't initialize ComponentInstanceType");
-       Component_Type.ob_type = &PyType_Type;
-       Py_INCREF(&Component_Type);
-       if (PyDict_SetItemString(d, "ComponentType", (PyObject *)&Component_Type) != 0)
-               Py_FatalError("can't initialize ComponentType");
-}
-
-/* ========================= End module Cm ========================== */
-
diff --git a/Mac/Modules/cm/cmsupport.py b/Mac/Modules/cm/cmsupport.py
deleted file mode 100644 (file)
index 598b51d..0000000
+++ /dev/null
@@ -1,110 +0,0 @@
-# This script generates a Python interface for an Apple Macintosh Manager.
-# It uses the "bgen" package to generate C code.
-# The function specifications are generated by scanning the mamager's header file,
-# using the "scantools" package (customized for this particular manager).
-
-import string
-
-# Declarations that change for each manager
-MACHEADERFILE = 'Components.h'         # The Apple header file
-MODNAME = 'Cm'                         # The name of the module
-
-# The following is *usually* unchanged but may still require tuning
-MODPREFIX = MODNAME                    # The prefix for module-wide routines
-C_OBJECTPREFIX = 'CmpObj'      # The prefix for object methods
-CI_OBJECTPREFIX = 'CmpInstObj'
-INPUTFILE = string.lower(MODPREFIX) + 'gen.py' # The file generated by the scanner
-OUTPUTFILE = MODNAME + "module.c"      # The file generated by this program
-
-from macsupport import *
-
-# Create the type objects
-
-includestuff = includestuff + """
-#include <%s>""" % MACHEADERFILE + """
-
-/*
-** Parse/generate ComponentDescriptor records
-*/
-static PyObject *
-CmpDesc_New(itself)
-       ComponentDescription *itself;
-{
-
-       return Py_BuildValue("O&O&O&ll", 
-               PyMac_BuildOSType, itself->componentType,
-               PyMac_BuildOSType, itself->componentSubType,
-               PyMac_BuildOSType, itself->componentManufacturer,
-               itself->componentFlags, itself->componentFlagsMask);
-}
-
-static int
-CmpDesc_Convert(v, p_itself)
-       PyObject *v;
-       ComponentDescription *p_itself;
-{
-       return PyArg_ParseTuple(v, "O&O&O&ll",
-               PyMac_GetOSType, &p_itself->componentType,
-               PyMac_GetOSType, &p_itself->componentSubType,
-               PyMac_GetOSType, &p_itself->componentManufacturer,
-               &p_itself->componentFlags, &p_itself->componentFlagsMask);
-}
-
-"""
-
-ComponentDescription = OpaqueType('ComponentDescription', 'CmpDesc')
-Component = OpaqueByValueType('Component', C_OBJECTPREFIX)
-ComponentInstance = OpaqueByValueType('ComponentInstance', CI_OBJECTPREFIX)
-ComponentResult = Type("ComponentResult", "l")
-
-ComponentResourceHandle = OpaqueByValueType("ComponentResourceHandle", "ResObj")
-
-class MyCIObjectDefinition(GlobalObjectDefinition):
-       def outputCheckNewArg(self):
-               Output("""if (itself == NULL) {
-                                       PyErr_SetString(Cm_Error,"NULL ComponentInstance");
-                                       return NULL;
-                               }""")
-
-class MyCObjectDefinition(GlobalObjectDefinition):
-       def outputCheckNewArg(self):
-               Output("""if (itself == NULL) {
-                                       /* XXXX Or should we return None? */
-                                       PyErr_SetString(Cm_Error,"No such component");
-                                       return NULL;
-                               }""")
-                               
-       def outputCheckConvertArg(self):
-               Output("""if ( v == Py_None ) {
-                                       *p_itself = 0;
-                                       return 1;
-               }""")
-
-# Create the generator groups and link them
-module = MacModule(MODNAME, MODPREFIX, includestuff, finalstuff, initstuff)
-ci_object = MyCIObjectDefinition('ComponentInstance', CI_OBJECTPREFIX,
-               'ComponentInstance')
-c_object = MyCObjectDefinition('Component', C_OBJECTPREFIX, 'Component')
-module.addobject(ci_object)
-module.addobject(c_object)
-
-# Create the generator classes used to populate the lists
-Function = OSErrFunctionGenerator
-Method = OSErrMethodGenerator
-
-# Create and populate the lists
-functions = []
-c_methods = []
-ci_methods = []
-execfile(INPUTFILE)
-
-# add the populated lists to the generator groups
-# (in a different wordl the scan program would generate this)
-for f in functions: module.add(f)
-for f in c_methods: c_object.add(f)
-for f in ci_methods: ci_object.add(f)
-
-# generate output (open the output file as late as possible)
-SetOutputFileName(OUTPUTFILE)
-module.generate()
-
diff --git a/Mac/Modules/ctl/Ctlmodule.c b/Mac/Modules/ctl/Ctlmodule.c
deleted file mode 100644 (file)
index 91df945..0000000
+++ /dev/null
@@ -1,2943 +0,0 @@
-
-/* =========================== Module Ctl =========================== */
-
-#include "Python.h"
-
-
-
-#include "macglue.h"
-#include "pymactoolbox.h"
-
-#include <Controls.h>
-#ifndef kControlCheckBoxUncheckedValue
-#include <ControlDefinitions.h>
-#endif
-
-staticforward PyObject *CtlObj_WhichControl(ControlHandle);
-
-#define as_Control(h) ((ControlHandle)h)
-#define as_Resource(ctl) ((Handle)ctl)
-#if TARGET_API_MAC_CARBON
-#define GetControlRect(ctl, rectp) GetControlBounds(ctl, rectp)
-#else
-#define GetControlRect(ctl, rectp) (*(rectp) = ((*(ctl))->contrlRect))
-#endif
-
-/*
-** Parse/generate ControlFontStyleRec records
-*/
-#if 0 /* Not needed */
-static PyObject *
-ControlFontStyle_New(itself)
-       ControlFontStyleRec *itself;
-{
-
-       return Py_BuildValue("hhhhhhO&O&", itself->flags, itself->font,
-               itself->size, itself->style, itself->mode, itself->just,
-               QdRGB_New, &itself->foreColor, QdRGB_New, &itself->backColor);
-}
-#endif
-
-static int
-ControlFontStyle_Convert(v, itself)
-       PyObject *v;
-       ControlFontStyleRec *itself;
-{
-       return PyArg_ParseTuple(v, "hhhhhhO&O&", &itself->flags,
-               &itself->font, &itself->size, &itself->style, &itself->mode,
-               &itself->just, QdRGB_Convert, &itself->foreColor,
-               QdRGB_Convert, &itself->backColor);
-}
-
-/*
-** Parse/generate ControlID records
-*/
-static PyObject *
-PyControlID_New(itself)
-       ControlID *itself;
-{
-
-       return Py_BuildValue("O&l", PyMac_BuildOSType, itself->signature, itself->id);
-}
-
-static int
-PyControlID_Convert(v, itself)
-       PyObject *v;
-       ControlID *itself;
-{
-       return PyArg_ParseTuple(v, "O&l", PyMac_GetOSType, &itself->signature, &itself->id);
-}
-
-
-/* TrackControl and HandleControlClick callback support */
-static PyObject *tracker;
-static ControlActionUPP mytracker_upp;
-static ControlUserPaneDrawUPP mydrawproc_upp;
-static ControlUserPaneIdleUPP myidleproc_upp;
-static ControlUserPaneHitTestUPP myhittestproc_upp;
-static ControlUserPaneTrackingUPP mytrackingproc_upp;
-
-extern int settrackfunc(PyObject *);   /* forward */
-extern void clrtrackfunc(void);        /* forward */
-staticforward int setcallback(PyObject *, OSType, PyObject *, UniversalProcPtr *);
-
-static PyObject *Ctl_Error;
-
-/* ---------------------- Object type Control ----------------------- */
-
-PyTypeObject Control_Type;
-
-#define CtlObj_Check(x) ((x)->ob_type == &Control_Type)
-
-typedef struct ControlObject {
-       PyObject_HEAD
-       ControlHandle ob_itself;
-       PyObject *ob_callbackdict;
-} ControlObject;
-
-PyObject *CtlObj_New(itself)
-       ControlHandle itself;
-{
-       ControlObject *it;
-       if (itself == NULL) return PyMac_Error(resNotFound);
-       it = PyObject_NEW(ControlObject, &Control_Type);
-       if (it == NULL) return NULL;
-       it->ob_itself = itself;
-       SetControlReference(itself, (long)it);
-       it->ob_callbackdict = NULL;
-       return (PyObject *)it;
-}
-CtlObj_Convert(v, p_itself)
-       PyObject *v;
-       ControlHandle *p_itself;
-{
-       if (!CtlObj_Check(v))
-       {
-               PyErr_SetString(PyExc_TypeError, "Control required");
-               return 0;
-       }
-       *p_itself = ((ControlObject *)v)->ob_itself;
-       return 1;
-}
-
-static void CtlObj_dealloc(self)
-       ControlObject *self;
-{
-       Py_XDECREF(self->ob_callbackdict);
-       if (self->ob_itself)SetControlReference(self->ob_itself, (long)0); /* Make it forget about us */
-       PyMem_DEL(self);
-}
-
-static PyObject *CtlObj_HiliteControl(_self, _args)
-       ControlObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       ControlPartCode hiliteState;
-       if (!PyArg_ParseTuple(_args, "h",
-                             &hiliteState))
-               return NULL;
-       HiliteControl(_self->ob_itself,
-                     hiliteState);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *CtlObj_ShowControl(_self, _args)
-       ControlObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       ShowControl(_self->ob_itself);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *CtlObj_HideControl(_self, _args)
-       ControlObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       HideControl(_self->ob_itself);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *CtlObj_IsControlActive(_self, _args)
-       ControlObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Boolean _rv;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _rv = IsControlActive(_self->ob_itself);
-       _res = Py_BuildValue("b",
-                            _rv);
-       return _res;
-}
-
-static PyObject *CtlObj_IsControlVisible(_self, _args)
-       ControlObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Boolean _rv;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _rv = IsControlVisible(_self->ob_itself);
-       _res = Py_BuildValue("b",
-                            _rv);
-       return _res;
-}
-
-static PyObject *CtlObj_ActivateControl(_self, _args)
-       ControlObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _err = ActivateControl(_self->ob_itself);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *CtlObj_DeactivateControl(_self, _args)
-       ControlObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _err = DeactivateControl(_self->ob_itself);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *CtlObj_SetControlVisibility(_self, _args)
-       ControlObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       Boolean inIsVisible;
-       Boolean inDoDraw;
-       if (!PyArg_ParseTuple(_args, "bb",
-                             &inIsVisible,
-                             &inDoDraw))
-               return NULL;
-       _err = SetControlVisibility(_self->ob_itself,
-                                   inIsVisible,
-                                   inDoDraw);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *CtlObj_Draw1Control(_self, _args)
-       ControlObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       Draw1Control(_self->ob_itself);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *CtlObj_GetBestControlRect(_self, _args)
-       ControlObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       Rect outRect;
-       SInt16 outBaseLineOffset;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _err = GetBestControlRect(_self->ob_itself,
-                                 &outRect,
-                                 &outBaseLineOffset);
-       if (_err != noErr) return PyMac_Error(_err);
-       _res = Py_BuildValue("O&h",
-                            PyMac_BuildRect, &outRect,
-                            outBaseLineOffset);
-       return _res;
-}
-
-static PyObject *CtlObj_SetControlFontStyle(_self, _args)
-       ControlObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       ControlFontStyleRec inStyle;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             ControlFontStyle_Convert, &inStyle))
-               return NULL;
-       _err = SetControlFontStyle(_self->ob_itself,
-                                  &inStyle);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *CtlObj_DrawControlInCurrentPort(_self, _args)
-       ControlObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       DrawControlInCurrentPort(_self->ob_itself);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *CtlObj_SetUpControlBackground(_self, _args)
-       ControlObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       SInt16 inDepth;
-       Boolean inIsColorDevice;
-       if (!PyArg_ParseTuple(_args, "hb",
-                             &inDepth,
-                             &inIsColorDevice))
-               return NULL;
-       _err = SetUpControlBackground(_self->ob_itself,
-                                     inDepth,
-                                     inIsColorDevice);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *CtlObj_SetUpControlTextColor(_self, _args)
-       ControlObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       SInt16 inDepth;
-       Boolean inIsColorDevice;
-       if (!PyArg_ParseTuple(_args, "hb",
-                             &inDepth,
-                             &inIsColorDevice))
-               return NULL;
-       _err = SetUpControlTextColor(_self->ob_itself,
-                                    inDepth,
-                                    inIsColorDevice);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *CtlObj_DragControl(_self, _args)
-       ControlObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Point startPoint;
-       Rect limitRect;
-       Rect slopRect;
-       DragConstraint axis;
-       if (!PyArg_ParseTuple(_args, "O&O&O&H",
-                             PyMac_GetPoint, &startPoint,
-                             PyMac_GetRect, &limitRect,
-                             PyMac_GetRect, &slopRect,
-                             &axis))
-               return NULL;
-       DragControl(_self->ob_itself,
-                   startPoint,
-                   &limitRect,
-                   &slopRect,
-                   axis);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *CtlObj_TestControl(_self, _args)
-       ControlObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       ControlPartCode _rv;
-       Point testPoint;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             PyMac_GetPoint, &testPoint))
-               return NULL;
-       _rv = TestControl(_self->ob_itself,
-                         testPoint);
-       _res = Py_BuildValue("h",
-                            _rv);
-       return _res;
-}
-
-#if TARGET_API_MAC_CARBON
-
-static PyObject *CtlObj_HandleControlContextualMenuClick(_self, _args)
-       ControlObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSStatus _err;
-       Point inWhere;
-       Boolean menuDisplayed;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             PyMac_GetPoint, &inWhere))
-               return NULL;
-       _err = HandleControlContextualMenuClick(_self->ob_itself,
-                                               inWhere,
-                                               &menuDisplayed);
-       if (_err != noErr) return PyMac_Error(_err);
-       _res = Py_BuildValue("b",
-                            menuDisplayed);
-       return _res;
-}
-#endif
-
-#if TARGET_API_MAC_CARBON
-
-static PyObject *CtlObj_GetControlClickActivation(_self, _args)
-       ControlObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSStatus _err;
-       Point inWhere;
-       EventModifiers inModifiers;
-       ClickActivationResult outResult;
-       if (!PyArg_ParseTuple(_args, "O&H",
-                             PyMac_GetPoint, &inWhere,
-                             &inModifiers))
-               return NULL;
-       _err = GetControlClickActivation(_self->ob_itself,
-                                        inWhere,
-                                        inModifiers,
-                                        &outResult);
-       if (_err != noErr) return PyMac_Error(_err);
-       _res = Py_BuildValue("l",
-                            outResult);
-       return _res;
-}
-#endif
-
-static PyObject *CtlObj_HandleControlKey(_self, _args)
-       ControlObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       SInt16 _rv;
-       SInt16 inKeyCode;
-       SInt16 inCharCode;
-       EventModifiers inModifiers;
-       if (!PyArg_ParseTuple(_args, "hhH",
-                             &inKeyCode,
-                             &inCharCode,
-                             &inModifiers))
-               return NULL;
-       _rv = HandleControlKey(_self->ob_itself,
-                              inKeyCode,
-                              inCharCode,
-                              inModifiers);
-       _res = Py_BuildValue("h",
-                            _rv);
-       return _res;
-}
-
-#if TARGET_API_MAC_CARBON
-
-static PyObject *CtlObj_HandleControlSetCursor(_self, _args)
-       ControlObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSStatus _err;
-       Point localPoint;
-       EventModifiers modifiers;
-       Boolean cursorWasSet;
-       if (!PyArg_ParseTuple(_args, "O&H",
-                             PyMac_GetPoint, &localPoint,
-                             &modifiers))
-               return NULL;
-       _err = HandleControlSetCursor(_self->ob_itself,
-                                     localPoint,
-                                     modifiers,
-                                     &cursorWasSet);
-       if (_err != noErr) return PyMac_Error(_err);
-       _res = Py_BuildValue("b",
-                            cursorWasSet);
-       return _res;
-}
-#endif
-
-static PyObject *CtlObj_MoveControl(_self, _args)
-       ControlObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       SInt16 h;
-       SInt16 v;
-       if (!PyArg_ParseTuple(_args, "hh",
-                             &h,
-                             &v))
-               return NULL;
-       MoveControl(_self->ob_itself,
-                   h,
-                   v);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *CtlObj_SizeControl(_self, _args)
-       ControlObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       SInt16 w;
-       SInt16 h;
-       if (!PyArg_ParseTuple(_args, "hh",
-                             &w,
-                             &h))
-               return NULL;
-       SizeControl(_self->ob_itself,
-                   w,
-                   h);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *CtlObj_SetControlTitle(_self, _args)
-       ControlObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Str255 title;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             PyMac_GetStr255, title))
-               return NULL;
-       SetControlTitle(_self->ob_itself,
-                       title);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *CtlObj_GetControlTitle(_self, _args)
-       ControlObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Str255 title;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       GetControlTitle(_self->ob_itself,
-                       title);
-       _res = Py_BuildValue("O&",
-                            PyMac_BuildStr255, title);
-       return _res;
-}
-
-static PyObject *CtlObj_GetControlValue(_self, _args)
-       ControlObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       SInt16 _rv;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _rv = GetControlValue(_self->ob_itself);
-       _res = Py_BuildValue("h",
-                            _rv);
-       return _res;
-}
-
-static PyObject *CtlObj_SetControlValue(_self, _args)
-       ControlObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       SInt16 newValue;
-       if (!PyArg_ParseTuple(_args, "h",
-                             &newValue))
-               return NULL;
-       SetControlValue(_self->ob_itself,
-                       newValue);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *CtlObj_GetControlMinimum(_self, _args)
-       ControlObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       SInt16 _rv;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _rv = GetControlMinimum(_self->ob_itself);
-       _res = Py_BuildValue("h",
-                            _rv);
-       return _res;
-}
-
-static PyObject *CtlObj_SetControlMinimum(_self, _args)
-       ControlObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       SInt16 newMinimum;
-       if (!PyArg_ParseTuple(_args, "h",
-                             &newMinimum))
-               return NULL;
-       SetControlMinimum(_self->ob_itself,
-                         newMinimum);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *CtlObj_GetControlMaximum(_self, _args)
-       ControlObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       SInt16 _rv;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _rv = GetControlMaximum(_self->ob_itself);
-       _res = Py_BuildValue("h",
-                            _rv);
-       return _res;
-}
-
-static PyObject *CtlObj_SetControlMaximum(_self, _args)
-       ControlObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       SInt16 newMaximum;
-       if (!PyArg_ParseTuple(_args, "h",
-                             &newMaximum))
-               return NULL;
-       SetControlMaximum(_self->ob_itself,
-                         newMaximum);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *CtlObj_GetControlViewSize(_self, _args)
-       ControlObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       SInt32 _rv;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _rv = GetControlViewSize(_self->ob_itself);
-       _res = Py_BuildValue("l",
-                            _rv);
-       return _res;
-}
-
-static PyObject *CtlObj_SetControlViewSize(_self, _args)
-       ControlObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       SInt32 newViewSize;
-       if (!PyArg_ParseTuple(_args, "l",
-                             &newViewSize))
-               return NULL;
-       SetControlViewSize(_self->ob_itself,
-                          newViewSize);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *CtlObj_GetControl32BitValue(_self, _args)
-       ControlObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       SInt32 _rv;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _rv = GetControl32BitValue(_self->ob_itself);
-       _res = Py_BuildValue("l",
-                            _rv);
-       return _res;
-}
-
-static PyObject *CtlObj_SetControl32BitValue(_self, _args)
-       ControlObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       SInt32 newValue;
-       if (!PyArg_ParseTuple(_args, "l",
-                             &newValue))
-               return NULL;
-       SetControl32BitValue(_self->ob_itself,
-                            newValue);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *CtlObj_GetControl32BitMaximum(_self, _args)
-       ControlObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       SInt32 _rv;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _rv = GetControl32BitMaximum(_self->ob_itself);
-       _res = Py_BuildValue("l",
-                            _rv);
-       return _res;
-}
-
-static PyObject *CtlObj_SetControl32BitMaximum(_self, _args)
-       ControlObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       SInt32 newMaximum;
-       if (!PyArg_ParseTuple(_args, "l",
-                             &newMaximum))
-               return NULL;
-       SetControl32BitMaximum(_self->ob_itself,
-                              newMaximum);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *CtlObj_GetControl32BitMinimum(_self, _args)
-       ControlObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       SInt32 _rv;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _rv = GetControl32BitMinimum(_self->ob_itself);
-       _res = Py_BuildValue("l",
-                            _rv);
-       return _res;
-}
-
-static PyObject *CtlObj_SetControl32BitMinimum(_self, _args)
-       ControlObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       SInt32 newMinimum;
-       if (!PyArg_ParseTuple(_args, "l",
-                             &newMinimum))
-               return NULL;
-       SetControl32BitMinimum(_self->ob_itself,
-                              newMinimum);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *CtlObj_IsValidControlHandle(_self, _args)
-       ControlObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Boolean _rv;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _rv = IsValidControlHandle(_self->ob_itself);
-       _res = Py_BuildValue("b",
-                            _rv);
-       return _res;
-}
-
-#if TARGET_API_MAC_CARBON
-
-static PyObject *CtlObj_SetControlID(_self, _args)
-       ControlObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSStatus _err;
-       ControlID inID;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             PyControlID_Convert, &inID))
-               return NULL;
-       _err = SetControlID(_self->ob_itself,
-                           &inID);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-#endif
-
-#if TARGET_API_MAC_CARBON
-
-static PyObject *CtlObj_GetControlID(_self, _args)
-       ControlObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSStatus _err;
-       ControlID outID;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _err = GetControlID(_self->ob_itself,
-                           &outID);
-       if (_err != noErr) return PyMac_Error(_err);
-       _res = Py_BuildValue("O&",
-                            PyControlID_New, &outID);
-       return _res;
-}
-#endif
-
-static PyObject *CtlObj_RemoveControlProperty(_self, _args)
-       ControlObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSStatus _err;
-       OSType propertyCreator;
-       OSType propertyTag;
-       if (!PyArg_ParseTuple(_args, "O&O&",
-                             PyMac_GetOSType, &propertyCreator,
-                             PyMac_GetOSType, &propertyTag))
-               return NULL;
-       _err = RemoveControlProperty(_self->ob_itself,
-                                    propertyCreator,
-                                    propertyTag);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-#if TARGET_API_MAC_CARBON
-
-static PyObject *CtlObj_GetControlPropertyAttributes(_self, _args)
-       ControlObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSStatus _err;
-       OSType propertyCreator;
-       OSType propertyTag;
-       UInt32 attributes;
-       if (!PyArg_ParseTuple(_args, "O&O&",
-                             PyMac_GetOSType, &propertyCreator,
-                             PyMac_GetOSType, &propertyTag))
-               return NULL;
-       _err = GetControlPropertyAttributes(_self->ob_itself,
-                                           propertyCreator,
-                                           propertyTag,
-                                           &attributes);
-       if (_err != noErr) return PyMac_Error(_err);
-       _res = Py_BuildValue("l",
-                            attributes);
-       return _res;
-}
-#endif
-
-#if TARGET_API_MAC_CARBON
-
-static PyObject *CtlObj_ChangeControlPropertyAttributes(_self, _args)
-       ControlObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSStatus _err;
-       OSType propertyCreator;
-       OSType propertyTag;
-       UInt32 attributesToSet;
-       UInt32 attributesToClear;
-       if (!PyArg_ParseTuple(_args, "O&O&ll",
-                             PyMac_GetOSType, &propertyCreator,
-                             PyMac_GetOSType, &propertyTag,
-                             &attributesToSet,
-                             &attributesToClear))
-               return NULL;
-       _err = ChangeControlPropertyAttributes(_self->ob_itself,
-                                              propertyCreator,
-                                              propertyTag,
-                                              attributesToSet,
-                                              attributesToClear);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-#endif
-
-static PyObject *CtlObj_GetControlRegion(_self, _args)
-       ControlObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSStatus _err;
-       ControlPartCode inPart;
-       RgnHandle outRegion;
-       if (!PyArg_ParseTuple(_args, "hO&",
-                             &inPart,
-                             ResObj_Convert, &outRegion))
-               return NULL;
-       _err = GetControlRegion(_self->ob_itself,
-                               inPart,
-                               outRegion);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *CtlObj_GetControlVariant(_self, _args)
-       ControlObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       ControlVariant _rv;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _rv = GetControlVariant(_self->ob_itself);
-       _res = Py_BuildValue("h",
-                            _rv);
-       return _res;
-}
-
-static PyObject *CtlObj_SetControlReference(_self, _args)
-       ControlObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       SInt32 data;
-       if (!PyArg_ParseTuple(_args, "l",
-                             &data))
-               return NULL;
-       SetControlReference(_self->ob_itself,
-                           data);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *CtlObj_GetControlReference(_self, _args)
-       ControlObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       SInt32 _rv;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _rv = GetControlReference(_self->ob_itself);
-       _res = Py_BuildValue("l",
-                            _rv);
-       return _res;
-}
-
-#if !TARGET_API_MAC_CARBON
-
-static PyObject *CtlObj_GetAuxiliaryControlRecord(_self, _args)
-       ControlObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Boolean _rv;
-       AuxCtlHandle acHndl;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _rv = GetAuxiliaryControlRecord(_self->ob_itself,
-                                       &acHndl);
-       _res = Py_BuildValue("bO&",
-                            _rv,
-                            ResObj_New, acHndl);
-       return _res;
-}
-#endif
-
-#if !TARGET_API_MAC_CARBON
-
-static PyObject *CtlObj_SetControlColor(_self, _args)
-       ControlObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       CCTabHandle newColorTable;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             ResObj_Convert, &newColorTable))
-               return NULL;
-       SetControlColor(_self->ob_itself,
-                       newColorTable);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-#endif
-
-static PyObject *CtlObj_SendControlMessage(_self, _args)
-       ControlObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       SInt32 _rv;
-       SInt16 inMessage;
-       SInt32 inParam;
-       if (!PyArg_ParseTuple(_args, "hl",
-                             &inMessage,
-                             &inParam))
-               return NULL;
-       _rv = SendControlMessage(_self->ob_itself,
-                                inMessage,
-                                inParam);
-       _res = Py_BuildValue("l",
-                            _rv);
-       return _res;
-}
-
-static PyObject *CtlObj_EmbedControl(_self, _args)
-       ControlObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       ControlHandle inContainer;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             CtlObj_Convert, &inContainer))
-               return NULL;
-       _err = EmbedControl(_self->ob_itself,
-                           inContainer);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *CtlObj_AutoEmbedControl(_self, _args)
-       ControlObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       WindowPtr inWindow;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             WinObj_Convert, &inWindow))
-               return NULL;
-       _err = AutoEmbedControl(_self->ob_itself,
-                               inWindow);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *CtlObj_GetSuperControl(_self, _args)
-       ControlObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       ControlHandle outParent;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _err = GetSuperControl(_self->ob_itself,
-                              &outParent);
-       if (_err != noErr) return PyMac_Error(_err);
-       _res = Py_BuildValue("O&",
-                            CtlObj_WhichControl, outParent);
-       return _res;
-}
-
-static PyObject *CtlObj_CountSubControls(_self, _args)
-       ControlObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       UInt16 outNumChildren;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _err = CountSubControls(_self->ob_itself,
-                               &outNumChildren);
-       if (_err != noErr) return PyMac_Error(_err);
-       _res = Py_BuildValue("H",
-                            outNumChildren);
-       return _res;
-}
-
-static PyObject *CtlObj_GetIndexedSubControl(_self, _args)
-       ControlObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       UInt16 inIndex;
-       ControlHandle outSubControl;
-       if (!PyArg_ParseTuple(_args, "H",
-                             &inIndex))
-               return NULL;
-       _err = GetIndexedSubControl(_self->ob_itself,
-                                   inIndex,
-                                   &outSubControl);
-       if (_err != noErr) return PyMac_Error(_err);
-       _res = Py_BuildValue("O&",
-                            CtlObj_WhichControl, outSubControl);
-       return _res;
-}
-
-static PyObject *CtlObj_SetControlSupervisor(_self, _args)
-       ControlObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       ControlHandle inBoss;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             CtlObj_Convert, &inBoss))
-               return NULL;
-       _err = SetControlSupervisor(_self->ob_itself,
-                                   inBoss);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *CtlObj_GetControlFeatures(_self, _args)
-       ControlObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       UInt32 outFeatures;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _err = GetControlFeatures(_self->ob_itself,
-                                 &outFeatures);
-       if (_err != noErr) return PyMac_Error(_err);
-       _res = Py_BuildValue("l",
-                            outFeatures);
-       return _res;
-}
-
-static PyObject *CtlObj_GetControlDataSize(_self, _args)
-       ControlObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       ControlPartCode inPart;
-       ResType inTagName;
-       Size outMaxSize;
-       if (!PyArg_ParseTuple(_args, "hO&",
-                             &inPart,
-                             PyMac_GetOSType, &inTagName))
-               return NULL;
-       _err = GetControlDataSize(_self->ob_itself,
-                                 inPart,
-                                 inTagName,
-                                 &outMaxSize);
-       if (_err != noErr) return PyMac_Error(_err);
-       _res = Py_BuildValue("l",
-                            outMaxSize);
-       return _res;
-}
-
-#if TARGET_API_MAC_CARBON
-
-static PyObject *CtlObj_HandleControlDragTracking(_self, _args)
-       ControlObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSStatus _err;
-       DragTrackingMessage inMessage;
-       DragReference inDrag;
-       Boolean outLikesDrag;
-       if (!PyArg_ParseTuple(_args, "hO&",
-                             &inMessage,
-                             DragObj_Convert, &inDrag))
-               return NULL;
-       _err = HandleControlDragTracking(_self->ob_itself,
-                                        inMessage,
-                                        inDrag,
-                                        &outLikesDrag);
-       if (_err != noErr) return PyMac_Error(_err);
-       _res = Py_BuildValue("b",
-                            outLikesDrag);
-       return _res;
-}
-#endif
-
-#if TARGET_API_MAC_CARBON
-
-static PyObject *CtlObj_HandleControlDragReceive(_self, _args)
-       ControlObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSStatus _err;
-       DragReference inDrag;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             DragObj_Convert, &inDrag))
-               return NULL;
-       _err = HandleControlDragReceive(_self->ob_itself,
-                                       inDrag);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-#endif
-
-#if TARGET_API_MAC_CARBON
-
-static PyObject *CtlObj_SetControlDragTrackingEnabled(_self, _args)
-       ControlObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSStatus _err;
-       Boolean tracks;
-       if (!PyArg_ParseTuple(_args, "b",
-                             &tracks))
-               return NULL;
-       _err = SetControlDragTrackingEnabled(_self->ob_itself,
-                                            tracks);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-#endif
-
-#if TARGET_API_MAC_CARBON
-
-static PyObject *CtlObj_IsControlDragTrackingEnabled(_self, _args)
-       ControlObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSStatus _err;
-       Boolean tracks;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _err = IsControlDragTrackingEnabled(_self->ob_itself,
-                                           &tracks);
-       if (_err != noErr) return PyMac_Error(_err);
-       _res = Py_BuildValue("b",
-                            tracks);
-       return _res;
-}
-#endif
-
-#if ACCESSOR_CALLS_ARE_FUNCTIONS
-
-static PyObject *CtlObj_GetControlBounds(_self, _args)
-       ControlObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Rect bounds;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       GetControlBounds(_self->ob_itself,
-                        &bounds);
-       _res = Py_BuildValue("O&",
-                            PyMac_BuildRect, &bounds);
-       return _res;
-}
-#endif
-
-#if ACCESSOR_CALLS_ARE_FUNCTIONS
-
-static PyObject *CtlObj_IsControlHilited(_self, _args)
-       ControlObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Boolean _rv;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _rv = IsControlHilited(_self->ob_itself);
-       _res = Py_BuildValue("b",
-                            _rv);
-       return _res;
-}
-#endif
-
-#if ACCESSOR_CALLS_ARE_FUNCTIONS
-
-static PyObject *CtlObj_GetControlHilite(_self, _args)
-       ControlObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       UInt16 _rv;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _rv = GetControlHilite(_self->ob_itself);
-       _res = Py_BuildValue("H",
-                            _rv);
-       return _res;
-}
-#endif
-
-#if ACCESSOR_CALLS_ARE_FUNCTIONS
-
-static PyObject *CtlObj_GetControlOwner(_self, _args)
-       ControlObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       WindowPtr _rv;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _rv = GetControlOwner(_self->ob_itself);
-       _res = Py_BuildValue("O&",
-                            WinObj_New, _rv);
-       return _res;
-}
-#endif
-
-#if ACCESSOR_CALLS_ARE_FUNCTIONS
-
-static PyObject *CtlObj_GetControlDataHandle(_self, _args)
-       ControlObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Handle _rv;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _rv = GetControlDataHandle(_self->ob_itself);
-       _res = Py_BuildValue("O&",
-                            ResObj_New, _rv);
-       return _res;
-}
-#endif
-
-#if ACCESSOR_CALLS_ARE_FUNCTIONS
-
-static PyObject *CtlObj_GetControlPopupMenuHandle(_self, _args)
-       ControlObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       MenuHandle _rv;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _rv = GetControlPopupMenuHandle(_self->ob_itself);
-       _res = Py_BuildValue("O&",
-                            MenuObj_New, _rv);
-       return _res;
-}
-#endif
-
-#if ACCESSOR_CALLS_ARE_FUNCTIONS
-
-static PyObject *CtlObj_GetControlPopupMenuID(_self, _args)
-       ControlObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       short _rv;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _rv = GetControlPopupMenuID(_self->ob_itself);
-       _res = Py_BuildValue("h",
-                            _rv);
-       return _res;
-}
-#endif
-
-#if ACCESSOR_CALLS_ARE_FUNCTIONS
-
-static PyObject *CtlObj_SetControlDataHandle(_self, _args)
-       ControlObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Handle dataHandle;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             ResObj_Convert, &dataHandle))
-               return NULL;
-       SetControlDataHandle(_self->ob_itself,
-                            dataHandle);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-#endif
-
-#if ACCESSOR_CALLS_ARE_FUNCTIONS
-
-static PyObject *CtlObj_SetControlBounds(_self, _args)
-       ControlObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Rect bounds;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             PyMac_GetRect, &bounds))
-               return NULL;
-       SetControlBounds(_self->ob_itself,
-                        &bounds);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-#endif
-
-#if ACCESSOR_CALLS_ARE_FUNCTIONS
-
-static PyObject *CtlObj_SetControlPopupMenuHandle(_self, _args)
-       ControlObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       MenuHandle popupMenu;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             MenuObj_Convert, &popupMenu))
-               return NULL;
-       SetControlPopupMenuHandle(_self->ob_itself,
-                                 popupMenu);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-#endif
-
-#if ACCESSOR_CALLS_ARE_FUNCTIONS
-
-static PyObject *CtlObj_SetControlPopupMenuID(_self, _args)
-       ControlObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       short menuID;
-       if (!PyArg_ParseTuple(_args, "h",
-                             &menuID))
-               return NULL;
-       SetControlPopupMenuID(_self->ob_itself,
-                             menuID);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-#endif
-
-static PyObject *CtlObj_GetBevelButtonMenuValue(_self, _args)
-       ControlObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       SInt16 outValue;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _err = GetBevelButtonMenuValue(_self->ob_itself,
-                                      &outValue);
-       if (_err != noErr) return PyMac_Error(_err);
-       _res = Py_BuildValue("h",
-                            outValue);
-       return _res;
-}
-
-static PyObject *CtlObj_SetBevelButtonMenuValue(_self, _args)
-       ControlObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       SInt16 inValue;
-       if (!PyArg_ParseTuple(_args, "h",
-                             &inValue))
-               return NULL;
-       _err = SetBevelButtonMenuValue(_self->ob_itself,
-                                      inValue);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *CtlObj_GetBevelButtonMenuHandle(_self, _args)
-       ControlObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       MenuHandle outHandle;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _err = GetBevelButtonMenuHandle(_self->ob_itself,
-                                       &outHandle);
-       if (_err != noErr) return PyMac_Error(_err);
-       _res = Py_BuildValue("O&",
-                            MenuObj_New, outHandle);
-       return _res;
-}
-
-static PyObject *CtlObj_SetBevelButtonTransform(_self, _args)
-       ControlObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       IconTransformType transform;
-       if (!PyArg_ParseTuple(_args, "h",
-                             &transform))
-               return NULL;
-       _err = SetBevelButtonTransform(_self->ob_itself,
-                                      transform);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *CtlObj_SetDisclosureTriangleLastValue(_self, _args)
-       ControlObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       SInt16 inValue;
-       if (!PyArg_ParseTuple(_args, "h",
-                             &inValue))
-               return NULL;
-       _err = SetDisclosureTriangleLastValue(_self->ob_itself,
-                                             inValue);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *CtlObj_GetTabContentRect(_self, _args)
-       ControlObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       Rect outContentRect;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _err = GetTabContentRect(_self->ob_itself,
-                                &outContentRect);
-       if (_err != noErr) return PyMac_Error(_err);
-       _res = Py_BuildValue("O&",
-                            PyMac_BuildRect, &outContentRect);
-       return _res;
-}
-
-static PyObject *CtlObj_SetTabEnabled(_self, _args)
-       ControlObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       SInt16 inTabToHilite;
-       Boolean inEnabled;
-       if (!PyArg_ParseTuple(_args, "hb",
-                             &inTabToHilite,
-                             &inEnabled))
-               return NULL;
-       _err = SetTabEnabled(_self->ob_itself,
-                            inTabToHilite,
-                            inEnabled);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *CtlObj_SetImageWellTransform(_self, _args)
-       ControlObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       IconTransformType inTransform;
-       if (!PyArg_ParseTuple(_args, "h",
-                             &inTransform))
-               return NULL;
-       _err = SetImageWellTransform(_self->ob_itself,
-                                    inTransform);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *CtlObj_as_Resource(_self, _args)
-       ControlObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Handle _rv;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _rv = as_Resource(_self->ob_itself);
-       _res = Py_BuildValue("O&",
-                            ResObj_New, _rv);
-       return _res;
-}
-
-static PyObject *CtlObj_GetControlRect(_self, _args)
-       ControlObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Rect rect;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       GetControlRect(_self->ob_itself,
-                      &rect);
-       _res = Py_BuildValue("O&",
-                            PyMac_BuildRect, &rect);
-       return _res;
-}
-
-static PyObject *CtlObj_DisposeControl(_self, _args)
-       ControlObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-
-               if (!PyArg_ParseTuple(_args, ""))
-                       return NULL;
-               if ( _self->ob_itself ) {
-                       SetControlReference(_self->ob_itself, (long)0); /* Make it forget about us */
-                       DisposeControl(_self->ob_itself);
-                       _self->ob_itself = NULL;
-               }
-               Py_INCREF(Py_None);
-               _res = Py_None;
-               return _res;
-
-}
-
-static PyObject *CtlObj_TrackControl(_self, _args)
-       ControlObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-
-       ControlPartCode _rv;
-       Point startPoint;
-       ControlActionUPP upp = 0;
-       PyObject *callback = 0;
-
-       if (!PyArg_ParseTuple(_args, "O&|O",
-                             PyMac_GetPoint, &startPoint, &callback))
-               return NULL;
-       if (callback && callback != Py_None) {
-               if (PyInt_Check(callback) && PyInt_AS_LONG(callback) == -1)
-                       upp = (ControlActionUPP)-1;
-               else {
-                       settrackfunc(callback);
-                       upp = mytracker_upp;
-               }
-       }
-       _rv = TrackControl(_self->ob_itself,
-                          startPoint,
-                          upp);
-       clrtrackfunc();
-       _res = Py_BuildValue("h",
-                            _rv);
-       return _res;
-
-}
-
-static PyObject *CtlObj_HandleControlClick(_self, _args)
-       ControlObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-
-       ControlPartCode _rv;
-       Point startPoint;
-       SInt16 modifiers;
-       ControlActionUPP upp = 0;
-       PyObject *callback = 0;
-
-       if (!PyArg_ParseTuple(_args, "O&h|O",
-                             PyMac_GetPoint, &startPoint,
-                             &modifiers,
-                             &callback))
-               return NULL;
-       if (callback && callback != Py_None) {
-               if (PyInt_Check(callback) && PyInt_AS_LONG(callback) == -1)
-                       upp = (ControlActionUPP)-1;
-               else {
-                       settrackfunc(callback);
-                       upp = mytracker_upp;
-               }
-       }
-       _rv = HandleControlClick(_self->ob_itself,
-                          startPoint,
-                          modifiers,
-                          upp);
-       clrtrackfunc();
-       _res = Py_BuildValue("h",
-                            _rv);
-       return _res;
-
-}
-
-static PyObject *CtlObj_SetControlData(_self, _args)
-       ControlObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-
-       OSErr _err;
-       ControlPartCode inPart;
-       ResType inTagName;
-       Size bufferSize;
-       Ptr buffer;
-
-       if (!PyArg_ParseTuple(_args, "hO&s#",
-                             &inPart,
-                             PyMac_GetOSType, &inTagName,
-                             &buffer, &bufferSize))
-               return NULL;
-
-       _err = SetControlData(_self->ob_itself,
-                             inPart,
-                             inTagName,
-                             bufferSize,
-                             buffer);
-
-       if (_err != noErr)
-               return PyMac_Error(_err);
-       _res = Py_None;
-       return _res;
-
-}
-
-static PyObject *CtlObj_GetControlData(_self, _args)
-       ControlObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-
-       OSErr _err;
-       ControlPartCode inPart;
-       ResType inTagName;
-       Size bufferSize;
-       Ptr buffer;
-       Size outSize;
-
-       if (!PyArg_ParseTuple(_args, "hO&",
-                             &inPart,
-                             PyMac_GetOSType, &inTagName))
-               return NULL;
-
-       /* allocate a buffer for the data */
-       _err = GetControlDataSize(_self->ob_itself,
-                                 inPart,
-                                 inTagName,
-                                 &bufferSize);
-       if (_err != noErr)
-               return PyMac_Error(_err);
-       buffer = PyMem_NEW(char, bufferSize);
-       if (buffer == NULL)
-               return PyErr_NoMemory();
-
-       _err = GetControlData(_self->ob_itself,
-                             inPart,
-                             inTagName,
-                             bufferSize,
-                             buffer,
-                             &outSize);
-
-       if (_err != noErr) {
-               PyMem_DEL(buffer);
-               return PyMac_Error(_err);
-       }
-       _res = Py_BuildValue("s#", buffer, outSize);
-       PyMem_DEL(buffer);
-       return _res;
-
-}
-
-static PyObject *CtlObj_SetControlData_Handle(_self, _args)
-       ControlObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-
-       OSErr _err;
-       ControlPartCode inPart;
-       ResType inTagName;
-       Handle buffer;
-
-       if (!PyArg_ParseTuple(_args, "hO&O&",
-                             &inPart,
-                             PyMac_GetOSType, &inTagName,
-                             OptResObj_Convert, &buffer))
-               return NULL;
-
-       _err = SetControlData(_self->ob_itself,
-                             inPart,
-                             inTagName,
-                             sizeof(buffer),
-                             (Ptr)&buffer);
-
-       if (_err != noErr)
-               return PyMac_Error(_err);
-       _res = Py_None;
-       return _res;
-
-}
-
-static PyObject *CtlObj_GetControlData_Handle(_self, _args)
-       ControlObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-
-       OSErr _err;
-       ControlPartCode inPart;
-       ResType inTagName;
-       Size bufferSize;
-       Handle hdl;
-
-       if (!PyArg_ParseTuple(_args, "hO&",
-                             &inPart,
-                             PyMac_GetOSType, &inTagName))
-               return NULL;
-
-       /* Check it is handle-sized */
-       _err = GetControlDataSize(_self->ob_itself,
-                                 inPart,
-                                 inTagName,
-                                 &bufferSize);
-       if (_err != noErr)
-               return PyMac_Error(_err);
-       if (bufferSize != sizeof(Handle)) {
-               PyErr_SetString(Ctl_Error, "GetControlDataSize() != sizeof(Handle)");
-               return NULL;
-       }
-
-       _err = GetControlData(_self->ob_itself,
-                             inPart,
-                             inTagName,
-                             sizeof(Handle),
-                             (Ptr)&hdl,
-                             &bufferSize);
-
-       if (_err != noErr) {
-               return PyMac_Error(_err);
-       }
-       return Py_BuildValue("O&", OptResObj_New, hdl);
-
-}
-
-static PyObject *CtlObj_SetControlData_Callback(_self, _args)
-       ControlObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-
-       OSErr _err;
-       ControlPartCode inPart;
-       ResType inTagName;
-       PyObject *callback;
-       UniversalProcPtr c_callback;
-
-       if (!PyArg_ParseTuple(_args, "hO&O",
-                             &inPart,
-                             PyMac_GetOSType, &inTagName,
-                             &callback))
-               return NULL;
-
-       if ( setcallback((PyObject *)_self, inTagName, callback, &c_callback) < 0 )
-               return NULL;
-       _err = SetControlData(_self->ob_itself,
-                             inPart,
-                             inTagName,
-                             sizeof(c_callback),
-                             (Ptr)&c_callback);
-
-       if (_err != noErr)
-               return PyMac_Error(_err);
-       _res = Py_None;
-       return _res;
-
-}
-
-#if !TARGET_API_MAC_CARBON
-
-static PyObject *CtlObj_GetPopupData(_self, _args)
-       ControlObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-
-       PopupPrivateDataHandle hdl;
-
-       if ( (*_self->ob_itself)->contrlData == NULL ) {
-               PyErr_SetString(Ctl_Error, "No contrlData handle in control");
-               return 0;
-       }
-       hdl = (PopupPrivateDataHandle)(*_self->ob_itself)->contrlData;
-       HLock((Handle)hdl);
-       _res = Py_BuildValue("O&i", MenuObj_New, (*hdl)->mHandle, (int)(*hdl)->mID);
-       HUnlock((Handle)hdl);
-       return _res;
-
-}
-#endif
-
-#if !TARGET_API_MAC_CARBON
-
-static PyObject *CtlObj_SetPopupData(_self, _args)
-       ControlObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-
-       PopupPrivateDataHandle hdl;
-       MenuHandle mHandle;
-       short mID;
-
-       if (!PyArg_ParseTuple(_args, "O&h", MenuObj_Convert, &mHandle, &mID) )
-               return 0;
-       if ( (*_self->ob_itself)->contrlData == NULL ) {
-               PyErr_SetString(Ctl_Error, "No contrlData handle in control");
-               return 0;
-       }
-       hdl = (PopupPrivateDataHandle)(*_self->ob_itself)->contrlData;
-       (*hdl)->mHandle = mHandle;
-       (*hdl)->mID = mID;
-       Py_INCREF(Py_None);
-       return Py_None;
-
-}
-#endif
-
-static PyMethodDef CtlObj_methods[] = {
-       {"HiliteControl", (PyCFunction)CtlObj_HiliteControl, 1,
-        "(ControlPartCode hiliteState) -> None"},
-       {"ShowControl", (PyCFunction)CtlObj_ShowControl, 1,
-        "() -> None"},
-       {"HideControl", (PyCFunction)CtlObj_HideControl, 1,
-        "() -> None"},
-       {"IsControlActive", (PyCFunction)CtlObj_IsControlActive, 1,
-        "() -> (Boolean _rv)"},
-       {"IsControlVisible", (PyCFunction)CtlObj_IsControlVisible, 1,
-        "() -> (Boolean _rv)"},
-       {"ActivateControl", (PyCFunction)CtlObj_ActivateControl, 1,
-        "() -> None"},
-       {"DeactivateControl", (PyCFunction)CtlObj_DeactivateControl, 1,
-        "() -> None"},
-       {"SetControlVisibility", (PyCFunction)CtlObj_SetControlVisibility, 1,
-        "(Boolean inIsVisible, Boolean inDoDraw) -> None"},
-       {"Draw1Control", (PyCFunction)CtlObj_Draw1Control, 1,
-        "() -> None"},
-       {"GetBestControlRect", (PyCFunction)CtlObj_GetBestControlRect, 1,
-        "() -> (Rect outRect, SInt16 outBaseLineOffset)"},
-       {"SetControlFontStyle", (PyCFunction)CtlObj_SetControlFontStyle, 1,
-        "(ControlFontStyleRec inStyle) -> None"},
-       {"DrawControlInCurrentPort", (PyCFunction)CtlObj_DrawControlInCurrentPort, 1,
-        "() -> None"},
-       {"SetUpControlBackground", (PyCFunction)CtlObj_SetUpControlBackground, 1,
-        "(SInt16 inDepth, Boolean inIsColorDevice) -> None"},
-       {"SetUpControlTextColor", (PyCFunction)CtlObj_SetUpControlTextColor, 1,
-        "(SInt16 inDepth, Boolean inIsColorDevice) -> None"},
-       {"DragControl", (PyCFunction)CtlObj_DragControl, 1,
-        "(Point startPoint, Rect limitRect, Rect slopRect, DragConstraint axis) -> None"},
-       {"TestControl", (PyCFunction)CtlObj_TestControl, 1,
-        "(Point testPoint) -> (ControlPartCode _rv)"},
-
-#if TARGET_API_MAC_CARBON
-       {"HandleControlContextualMenuClick", (PyCFunction)CtlObj_HandleControlContextualMenuClick, 1,
-        "(Point inWhere) -> (Boolean menuDisplayed)"},
-#endif
-
-#if TARGET_API_MAC_CARBON
-       {"GetControlClickActivation", (PyCFunction)CtlObj_GetControlClickActivation, 1,
-        "(Point inWhere, EventModifiers inModifiers) -> (ClickActivationResult outResult)"},
-#endif
-       {"HandleControlKey", (PyCFunction)CtlObj_HandleControlKey, 1,
-        "(SInt16 inKeyCode, SInt16 inCharCode, EventModifiers inModifiers) -> (SInt16 _rv)"},
-
-#if TARGET_API_MAC_CARBON
-       {"HandleControlSetCursor", (PyCFunction)CtlObj_HandleControlSetCursor, 1,
-        "(Point localPoint, EventModifiers modifiers) -> (Boolean cursorWasSet)"},
-#endif
-       {"MoveControl", (PyCFunction)CtlObj_MoveControl, 1,
-        "(SInt16 h, SInt16 v) -> None"},
-       {"SizeControl", (PyCFunction)CtlObj_SizeControl, 1,
-        "(SInt16 w, SInt16 h) -> None"},
-       {"SetControlTitle", (PyCFunction)CtlObj_SetControlTitle, 1,
-        "(Str255 title) -> None"},
-       {"GetControlTitle", (PyCFunction)CtlObj_GetControlTitle, 1,
-        "() -> (Str255 title)"},
-       {"GetControlValue", (PyCFunction)CtlObj_GetControlValue, 1,
-        "() -> (SInt16 _rv)"},
-       {"SetControlValue", (PyCFunction)CtlObj_SetControlValue, 1,
-        "(SInt16 newValue) -> None"},
-       {"GetControlMinimum", (PyCFunction)CtlObj_GetControlMinimum, 1,
-        "() -> (SInt16 _rv)"},
-       {"SetControlMinimum", (PyCFunction)CtlObj_SetControlMinimum, 1,
-        "(SInt16 newMinimum) -> None"},
-       {"GetControlMaximum", (PyCFunction)CtlObj_GetControlMaximum, 1,
-        "() -> (SInt16 _rv)"},
-       {"SetControlMaximum", (PyCFunction)CtlObj_SetControlMaximum, 1,
-        "(SInt16 newMaximum) -> None"},
-       {"GetControlViewSize", (PyCFunction)CtlObj_GetControlViewSize, 1,
-        "() -> (SInt32 _rv)"},
-       {"SetControlViewSize", (PyCFunction)CtlObj_SetControlViewSize, 1,
-        "(SInt32 newViewSize) -> None"},
-       {"GetControl32BitValue", (PyCFunction)CtlObj_GetControl32BitValue, 1,
-        "() -> (SInt32 _rv)"},
-       {"SetControl32BitValue", (PyCFunction)CtlObj_SetControl32BitValue, 1,
-        "(SInt32 newValue) -> None"},
-       {"GetControl32BitMaximum", (PyCFunction)CtlObj_GetControl32BitMaximum, 1,
-        "() -> (SInt32 _rv)"},
-       {"SetControl32BitMaximum", (PyCFunction)CtlObj_SetControl32BitMaximum, 1,
-        "(SInt32 newMaximum) -> None"},
-       {"GetControl32BitMinimum", (PyCFunction)CtlObj_GetControl32BitMinimum, 1,
-        "() -> (SInt32 _rv)"},
-       {"SetControl32BitMinimum", (PyCFunction)CtlObj_SetControl32BitMinimum, 1,
-        "(SInt32 newMinimum) -> None"},
-       {"IsValidControlHandle", (PyCFunction)CtlObj_IsValidControlHandle, 1,
-        "() -> (Boolean _rv)"},
-
-#if TARGET_API_MAC_CARBON
-       {"SetControlID", (PyCFunction)CtlObj_SetControlID, 1,
-        "(ControlID inID) -> None"},
-#endif
-
-#if TARGET_API_MAC_CARBON
-       {"GetControlID", (PyCFunction)CtlObj_GetControlID, 1,
-        "() -> (ControlID outID)"},
-#endif
-       {"RemoveControlProperty", (PyCFunction)CtlObj_RemoveControlProperty, 1,
-        "(OSType propertyCreator, OSType propertyTag) -> None"},
-
-#if TARGET_API_MAC_CARBON
-       {"GetControlPropertyAttributes", (PyCFunction)CtlObj_GetControlPropertyAttributes, 1,
-        "(OSType propertyCreator, OSType propertyTag) -> (UInt32 attributes)"},
-#endif
-
-#if TARGET_API_MAC_CARBON
-       {"ChangeControlPropertyAttributes", (PyCFunction)CtlObj_ChangeControlPropertyAttributes, 1,
-        "(OSType propertyCreator, OSType propertyTag, UInt32 attributesToSet, UInt32 attributesToClear) -> None"},
-#endif
-       {"GetControlRegion", (PyCFunction)CtlObj_GetControlRegion, 1,
-        "(ControlPartCode inPart, RgnHandle outRegion) -> None"},
-       {"GetControlVariant", (PyCFunction)CtlObj_GetControlVariant, 1,
-        "() -> (ControlVariant _rv)"},
-       {"SetControlReference", (PyCFunction)CtlObj_SetControlReference, 1,
-        "(SInt32 data) -> None"},
-       {"GetControlReference", (PyCFunction)CtlObj_GetControlReference, 1,
-        "() -> (SInt32 _rv)"},
-
-#if !TARGET_API_MAC_CARBON
-       {"GetAuxiliaryControlRecord", (PyCFunction)CtlObj_GetAuxiliaryControlRecord, 1,
-        "() -> (Boolean _rv, AuxCtlHandle acHndl)"},
-#endif
-
-#if !TARGET_API_MAC_CARBON
-       {"SetControlColor", (PyCFunction)CtlObj_SetControlColor, 1,
-        "(CCTabHandle newColorTable) -> None"},
-#endif
-       {"SendControlMessage", (PyCFunction)CtlObj_SendControlMessage, 1,
-        "(SInt16 inMessage, SInt32 inParam) -> (SInt32 _rv)"},
-       {"EmbedControl", (PyCFunction)CtlObj_EmbedControl, 1,
-        "(ControlHandle inContainer) -> None"},
-       {"AutoEmbedControl", (PyCFunction)CtlObj_AutoEmbedControl, 1,
-        "(WindowPtr inWindow) -> None"},
-       {"GetSuperControl", (PyCFunction)CtlObj_GetSuperControl, 1,
-        "() -> (ControlHandle outParent)"},
-       {"CountSubControls", (PyCFunction)CtlObj_CountSubControls, 1,
-        "() -> (UInt16 outNumChildren)"},
-       {"GetIndexedSubControl", (PyCFunction)CtlObj_GetIndexedSubControl, 1,
-        "(UInt16 inIndex) -> (ControlHandle outSubControl)"},
-       {"SetControlSupervisor", (PyCFunction)CtlObj_SetControlSupervisor, 1,
-        "(ControlHandle inBoss) -> None"},
-       {"GetControlFeatures", (PyCFunction)CtlObj_GetControlFeatures, 1,
-        "() -> (UInt32 outFeatures)"},
-       {"GetControlDataSize", (PyCFunction)CtlObj_GetControlDataSize, 1,
-        "(ControlPartCode inPart, ResType inTagName) -> (Size outMaxSize)"},
-
-#if TARGET_API_MAC_CARBON
-       {"HandleControlDragTracking", (PyCFunction)CtlObj_HandleControlDragTracking, 1,
-        "(DragTrackingMessage inMessage, DragReference inDrag) -> (Boolean outLikesDrag)"},
-#endif
-
-#if TARGET_API_MAC_CARBON
-       {"HandleControlDragReceive", (PyCFunction)CtlObj_HandleControlDragReceive, 1,
-        "(DragReference inDrag) -> None"},
-#endif
-
-#if TARGET_API_MAC_CARBON
-       {"SetControlDragTrackingEnabled", (PyCFunction)CtlObj_SetControlDragTrackingEnabled, 1,
-        "(Boolean tracks) -> None"},
-#endif
-
-#if TARGET_API_MAC_CARBON
-       {"IsControlDragTrackingEnabled", (PyCFunction)CtlObj_IsControlDragTrackingEnabled, 1,
-        "() -> (Boolean tracks)"},
-#endif
-
-#if ACCESSOR_CALLS_ARE_FUNCTIONS
-       {"GetControlBounds", (PyCFunction)CtlObj_GetControlBounds, 1,
-        "() -> (Rect bounds)"},
-#endif
-
-#if ACCESSOR_CALLS_ARE_FUNCTIONS
-       {"IsControlHilited", (PyCFunction)CtlObj_IsControlHilited, 1,
-        "() -> (Boolean _rv)"},
-#endif
-
-#if ACCESSOR_CALLS_ARE_FUNCTIONS
-       {"GetControlHilite", (PyCFunction)CtlObj_GetControlHilite, 1,
-        "() -> (UInt16 _rv)"},
-#endif
-
-#if ACCESSOR_CALLS_ARE_FUNCTIONS
-       {"GetControlOwner", (PyCFunction)CtlObj_GetControlOwner, 1,
-        "() -> (WindowPtr _rv)"},
-#endif
-
-#if ACCESSOR_CALLS_ARE_FUNCTIONS
-       {"GetControlDataHandle", (PyCFunction)CtlObj_GetControlDataHandle, 1,
-        "() -> (Handle _rv)"},
-#endif
-
-#if ACCESSOR_CALLS_ARE_FUNCTIONS
-       {"GetControlPopupMenuHandle", (PyCFunction)CtlObj_GetControlPopupMenuHandle, 1,
-        "() -> (MenuHandle _rv)"},
-#endif
-
-#if ACCESSOR_CALLS_ARE_FUNCTIONS
-       {"GetControlPopupMenuID", (PyCFunction)CtlObj_GetControlPopupMenuID, 1,
-        "() -> (short _rv)"},
-#endif
-
-#if ACCESSOR_CALLS_ARE_FUNCTIONS
-       {"SetControlDataHandle", (PyCFunction)CtlObj_SetControlDataHandle, 1,
-        "(Handle dataHandle) -> None"},
-#endif
-
-#if ACCESSOR_CALLS_ARE_FUNCTIONS
-       {"SetControlBounds", (PyCFunction)CtlObj_SetControlBounds, 1,
-        "(Rect bounds) -> None"},
-#endif
-
-#if ACCESSOR_CALLS_ARE_FUNCTIONS
-       {"SetControlPopupMenuHandle", (PyCFunction)CtlObj_SetControlPopupMenuHandle, 1,
-        "(MenuHandle popupMenu) -> None"},
-#endif
-
-#if ACCESSOR_CALLS_ARE_FUNCTIONS
-       {"SetControlPopupMenuID", (PyCFunction)CtlObj_SetControlPopupMenuID, 1,
-        "(short menuID) -> None"},
-#endif
-       {"GetBevelButtonMenuValue", (PyCFunction)CtlObj_GetBevelButtonMenuValue, 1,
-        "() -> (SInt16 outValue)"},
-       {"SetBevelButtonMenuValue", (PyCFunction)CtlObj_SetBevelButtonMenuValue, 1,
-        "(SInt16 inValue) -> None"},
-       {"GetBevelButtonMenuHandle", (PyCFunction)CtlObj_GetBevelButtonMenuHandle, 1,
-        "() -> (MenuHandle outHandle)"},
-       {"SetBevelButtonTransform", (PyCFunction)CtlObj_SetBevelButtonTransform, 1,
-        "(IconTransformType transform) -> None"},
-       {"SetDisclosureTriangleLastValue", (PyCFunction)CtlObj_SetDisclosureTriangleLastValue, 1,
-        "(SInt16 inValue) -> None"},
-       {"GetTabContentRect", (PyCFunction)CtlObj_GetTabContentRect, 1,
-        "() -> (Rect outContentRect)"},
-       {"SetTabEnabled", (PyCFunction)CtlObj_SetTabEnabled, 1,
-        "(SInt16 inTabToHilite, Boolean inEnabled) -> None"},
-       {"SetImageWellTransform", (PyCFunction)CtlObj_SetImageWellTransform, 1,
-        "(IconTransformType inTransform) -> None"},
-       {"as_Resource", (PyCFunction)CtlObj_as_Resource, 1,
-        "() -> (Handle _rv)"},
-       {"GetControlRect", (PyCFunction)CtlObj_GetControlRect, 1,
-        "() -> (Rect rect)"},
-       {"DisposeControl", (PyCFunction)CtlObj_DisposeControl, 1,
-        "() -> None"},
-       {"TrackControl", (PyCFunction)CtlObj_TrackControl, 1,
-        "(Point startPoint [,trackercallback]) -> (ControlPartCode _rv)"},
-       {"HandleControlClick", (PyCFunction)CtlObj_HandleControlClick, 1,
-        "(Point startPoint, Integer modifiers, [,trackercallback]) -> (ControlPartCode _rv)"},
-       {"SetControlData", (PyCFunction)CtlObj_SetControlData, 1,
-        "(stuff) -> None"},
-       {"GetControlData", (PyCFunction)CtlObj_GetControlData, 1,
-        "(part, type) -> String"},
-       {"SetControlData_Handle", (PyCFunction)CtlObj_SetControlData_Handle, 1,
-        "(ResObj) -> None"},
-       {"GetControlData_Handle", (PyCFunction)CtlObj_GetControlData_Handle, 1,
-        "(part, type) -> ResObj"},
-       {"SetControlData_Callback", (PyCFunction)CtlObj_SetControlData_Callback, 1,
-        "(callbackfunc) -> None"},
-
-#if !TARGET_API_MAC_CARBON
-       {"GetPopupData", (PyCFunction)CtlObj_GetPopupData, 1,
-        NULL},
-#endif
-
-#if !TARGET_API_MAC_CARBON
-       {"SetPopupData", (PyCFunction)CtlObj_SetPopupData, 1,
-        NULL},
-#endif
-       {NULL, NULL, 0}
-};
-
-PyMethodChain CtlObj_chain = { CtlObj_methods, NULL };
-
-static PyObject *CtlObj_getattr(self, name)
-       ControlObject *self;
-       char *name;
-{
-       return Py_FindMethodInChain(&CtlObj_chain, (PyObject *)self, name);
-}
-
-#define CtlObj_setattr NULL
-
-static int CtlObj_compare(self, other)
-       ControlObject *self, *other;
-{
-       unsigned long v, w;
-
-       if (!CtlObj_Check((PyObject *)other))
-       {
-               v=(unsigned long)self;
-               w=(unsigned long)other;
-       }
-       else
-       {
-               v=(unsigned long)self->ob_itself;
-               w=(unsigned long)other->ob_itself;
-       }
-       if( v < w ) return -1;
-       if( v > w ) return 1;
-       return 0;
-}
-
-#define CtlObj_repr NULL
-
-static long CtlObj_hash(self)
-       ControlObject *self;
-{
-       return (long)self->ob_itself;
-}
-
-PyTypeObject Control_Type = {
-       PyObject_HEAD_INIT(&PyType_Type)
-       0, /*ob_size*/
-       "Control", /*tp_name*/
-       sizeof(ControlObject), /*tp_basicsize*/
-       0, /*tp_itemsize*/
-       /* methods */
-       (destructor) CtlObj_dealloc, /*tp_dealloc*/
-       0, /*tp_print*/
-       (getattrfunc) CtlObj_getattr, /*tp_getattr*/
-       (setattrfunc) CtlObj_setattr, /*tp_setattr*/
-       (cmpfunc) CtlObj_compare, /*tp_compare*/
-       (reprfunc) CtlObj_repr, /*tp_repr*/
-       (PyNumberMethods *)0, /* tp_as_number */
-       (PySequenceMethods *)0, /* tp_as_sequence */
-       (PyMappingMethods *)0, /* tp_as_mapping */
-       (hashfunc) CtlObj_hash, /*tp_hash*/
-};
-
-/* -------------------- End object type Control --------------------- */
-
-
-static PyObject *Ctl_NewControl(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       ControlHandle _rv;
-       WindowPtr owningWindow;
-       Rect boundsRect;
-       Str255 controlTitle;
-       Boolean initiallyVisible;
-       SInt16 initialValue;
-       SInt16 minimumValue;
-       SInt16 maximumValue;
-       SInt16 procID;
-       SInt32 controlReference;
-       if (!PyArg_ParseTuple(_args, "O&O&O&bhhhhl",
-                             WinObj_Convert, &owningWindow,
-                             PyMac_GetRect, &boundsRect,
-                             PyMac_GetStr255, controlTitle,
-                             &initiallyVisible,
-                             &initialValue,
-                             &minimumValue,
-                             &maximumValue,
-                             &procID,
-                             &controlReference))
-               return NULL;
-       _rv = NewControl(owningWindow,
-                        &boundsRect,
-                        controlTitle,
-                        initiallyVisible,
-                        initialValue,
-                        minimumValue,
-                        maximumValue,
-                        procID,
-                        controlReference);
-       _res = Py_BuildValue("O&",
-                            CtlObj_New, _rv);
-       return _res;
-}
-
-static PyObject *Ctl_GetNewControl(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       ControlHandle _rv;
-       SInt16 resourceID;
-       WindowPtr owningWindow;
-       if (!PyArg_ParseTuple(_args, "hO&",
-                             &resourceID,
-                             WinObj_Convert, &owningWindow))
-               return NULL;
-       _rv = GetNewControl(resourceID,
-                           owningWindow);
-       _res = Py_BuildValue("O&",
-                            CtlObj_New, _rv);
-       return _res;
-}
-
-static PyObject *Ctl_DrawControls(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       WindowPtr theWindow;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             WinObj_Convert, &theWindow))
-               return NULL;
-       DrawControls(theWindow);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *Ctl_UpdateControls(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       WindowPtr theWindow;
-       RgnHandle updateRegion;
-       if (!PyArg_ParseTuple(_args, "O&O&",
-                             WinObj_Convert, &theWindow,
-                             ResObj_Convert, &updateRegion))
-               return NULL;
-       UpdateControls(theWindow,
-                      updateRegion);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *Ctl_FindControl(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       ControlPartCode _rv;
-       Point testPoint;
-       WindowPtr theWindow;
-       ControlHandle theControl;
-       if (!PyArg_ParseTuple(_args, "O&O&",
-                             PyMac_GetPoint, &testPoint,
-                             WinObj_Convert, &theWindow))
-               return NULL;
-       _rv = FindControl(testPoint,
-                         theWindow,
-                         &theControl);
-       _res = Py_BuildValue("hO&",
-                            _rv,
-                            CtlObj_WhichControl, theControl);
-       return _res;
-}
-
-static PyObject *Ctl_FindControlUnderMouse(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       ControlHandle _rv;
-       Point inWhere;
-       WindowPtr inWindow;
-       SInt16 outPart;
-       if (!PyArg_ParseTuple(_args, "O&O&",
-                             PyMac_GetPoint, &inWhere,
-                             WinObj_Convert, &inWindow))
-               return NULL;
-       _rv = FindControlUnderMouse(inWhere,
-                                   inWindow,
-                                   &outPart);
-       _res = Py_BuildValue("O&h",
-                            CtlObj_New, _rv,
-                            outPart);
-       return _res;
-}
-
-static PyObject *Ctl_IdleControls(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       WindowPtr inWindow;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             WinObj_Convert, &inWindow))
-               return NULL;
-       IdleControls(inWindow);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-#if TARGET_API_MAC_CARBON
-
-static PyObject *Ctl_GetControlByID(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSStatus _err;
-       WindowPtr inWindow;
-       ControlID inID;
-       ControlHandle outControl;
-       if (!PyArg_ParseTuple(_args, "O&O&",
-                             WinObj_Convert, &inWindow,
-                             PyControlID_Convert, &inID))
-               return NULL;
-       _err = GetControlByID(inWindow,
-                             &inID,
-                             &outControl);
-       if (_err != noErr) return PyMac_Error(_err);
-       _res = Py_BuildValue("O&",
-                            CtlObj_WhichControl, outControl);
-       return _res;
-}
-#endif
-
-static PyObject *Ctl_DumpControlHierarchy(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       WindowPtr inWindow;
-       FSSpec inDumpFile;
-       if (!PyArg_ParseTuple(_args, "O&O&",
-                             WinObj_Convert, &inWindow,
-                             PyMac_GetFSSpec, &inDumpFile))
-               return NULL;
-       _err = DumpControlHierarchy(inWindow,
-                                   &inDumpFile);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *Ctl_CreateRootControl(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       WindowPtr inWindow;
-       ControlHandle outControl;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             WinObj_Convert, &inWindow))
-               return NULL;
-       _err = CreateRootControl(inWindow,
-                                &outControl);
-       if (_err != noErr) return PyMac_Error(_err);
-       _res = Py_BuildValue("O&",
-                            CtlObj_WhichControl, outControl);
-       return _res;
-}
-
-static PyObject *Ctl_GetRootControl(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       WindowPtr inWindow;
-       ControlHandle outControl;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             WinObj_Convert, &inWindow))
-               return NULL;
-       _err = GetRootControl(inWindow,
-                             &outControl);
-       if (_err != noErr) return PyMac_Error(_err);
-       _res = Py_BuildValue("O&",
-                            CtlObj_WhichControl, outControl);
-       return _res;
-}
-
-static PyObject *Ctl_GetKeyboardFocus(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       WindowPtr inWindow;
-       ControlHandle outControl;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             WinObj_Convert, &inWindow))
-               return NULL;
-       _err = GetKeyboardFocus(inWindow,
-                               &outControl);
-       if (_err != noErr) return PyMac_Error(_err);
-       _res = Py_BuildValue("O&",
-                            CtlObj_WhichControl, outControl);
-       return _res;
-}
-
-static PyObject *Ctl_SetKeyboardFocus(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       WindowPtr inWindow;
-       ControlHandle inControl;
-       ControlFocusPart inPart;
-       if (!PyArg_ParseTuple(_args, "O&O&h",
-                             WinObj_Convert, &inWindow,
-                             CtlObj_Convert, &inControl,
-                             &inPart))
-               return NULL;
-       _err = SetKeyboardFocus(inWindow,
-                               inControl,
-                               inPart);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *Ctl_AdvanceKeyboardFocus(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       WindowPtr inWindow;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             WinObj_Convert, &inWindow))
-               return NULL;
-       _err = AdvanceKeyboardFocus(inWindow);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *Ctl_ReverseKeyboardFocus(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       WindowPtr inWindow;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             WinObj_Convert, &inWindow))
-               return NULL;
-       _err = ReverseKeyboardFocus(inWindow);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *Ctl_ClearKeyboardFocus(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       WindowPtr inWindow;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             WinObj_Convert, &inWindow))
-               return NULL;
-       _err = ClearKeyboardFocus(inWindow);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-#if TARGET_API_MAC_CARBON
-
-static PyObject *Ctl_SetAutomaticControlDragTrackingEnabledForWindow(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSStatus _err;
-       WindowPtr theWindow;
-       Boolean tracks;
-       if (!PyArg_ParseTuple(_args, "O&b",
-                             WinObj_Convert, &theWindow,
-                             &tracks))
-               return NULL;
-       _err = SetAutomaticControlDragTrackingEnabledForWindow(theWindow,
-                                                              tracks);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-#endif
-
-#if TARGET_API_MAC_CARBON
-
-static PyObject *Ctl_IsAutomaticControlDragTrackingEnabledForWindow(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSStatus _err;
-       WindowPtr theWindow;
-       Boolean tracks;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             WinObj_Convert, &theWindow))
-               return NULL;
-       _err = IsAutomaticControlDragTrackingEnabledForWindow(theWindow,
-                                                             &tracks);
-       if (_err != noErr) return PyMac_Error(_err);
-       _res = Py_BuildValue("b",
-                            tracks);
-       return _res;
-}
-#endif
-
-static PyObject *Ctl_as_Control(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       ControlHandle _rv;
-       Handle h;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             ResObj_Convert, &h))
-               return NULL;
-       _rv = as_Control(h);
-       _res = Py_BuildValue("O&",
-                            CtlObj_New, _rv);
-       return _res;
-}
-
-static PyMethodDef Ctl_methods[] = {
-       {"NewControl", (PyCFunction)Ctl_NewControl, 1,
-        "(WindowPtr owningWindow, Rect boundsRect, Str255 controlTitle, Boolean initiallyVisible, SInt16 initialValue, SInt16 minimumValue, SInt16 maximumValue, SInt16 procID, SInt32 controlReference) -> (ControlHandle _rv)"},
-       {"GetNewControl", (PyCFunction)Ctl_GetNewControl, 1,
-        "(SInt16 resourceID, WindowPtr owningWindow) -> (ControlHandle _rv)"},
-       {"DrawControls", (PyCFunction)Ctl_DrawControls, 1,
-        "(WindowPtr theWindow) -> None"},
-       {"UpdateControls", (PyCFunction)Ctl_UpdateControls, 1,
-        "(WindowPtr theWindow, RgnHandle updateRegion) -> None"},
-       {"FindControl", (PyCFunction)Ctl_FindControl, 1,
-        "(Point testPoint, WindowPtr theWindow) -> (ControlPartCode _rv, ControlHandle theControl)"},
-       {"FindControlUnderMouse", (PyCFunction)Ctl_FindControlUnderMouse, 1,
-        "(Point inWhere, WindowPtr inWindow) -> (ControlHandle _rv, SInt16 outPart)"},
-       {"IdleControls", (PyCFunction)Ctl_IdleControls, 1,
-        "(WindowPtr inWindow) -> None"},
-
-#if TARGET_API_MAC_CARBON
-       {"GetControlByID", (PyCFunction)Ctl_GetControlByID, 1,
-        "(WindowPtr inWindow, ControlID inID) -> (ControlHandle outControl)"},
-#endif
-       {"DumpControlHierarchy", (PyCFunction)Ctl_DumpControlHierarchy, 1,
-        "(WindowPtr inWindow, FSSpec inDumpFile) -> None"},
-       {"CreateRootControl", (PyCFunction)Ctl_CreateRootControl, 1,
-        "(WindowPtr inWindow) -> (ControlHandle outControl)"},
-       {"GetRootControl", (PyCFunction)Ctl_GetRootControl, 1,
-        "(WindowPtr inWindow) -> (ControlHandle outControl)"},
-       {"GetKeyboardFocus", (PyCFunction)Ctl_GetKeyboardFocus, 1,
-        "(WindowPtr inWindow) -> (ControlHandle outControl)"},
-       {"SetKeyboardFocus", (PyCFunction)Ctl_SetKeyboardFocus, 1,
-        "(WindowPtr inWindow, ControlHandle inControl, ControlFocusPart inPart) -> None"},
-       {"AdvanceKeyboardFocus", (PyCFunction)Ctl_AdvanceKeyboardFocus, 1,
-        "(WindowPtr inWindow) -> None"},
-       {"ReverseKeyboardFocus", (PyCFunction)Ctl_ReverseKeyboardFocus, 1,
-        "(WindowPtr inWindow) -> None"},
-       {"ClearKeyboardFocus", (PyCFunction)Ctl_ClearKeyboardFocus, 1,
-        "(WindowPtr inWindow) -> None"},
-
-#if TARGET_API_MAC_CARBON
-       {"SetAutomaticControlDragTrackingEnabledForWindow", (PyCFunction)Ctl_SetAutomaticControlDragTrackingEnabledForWindow, 1,
-        "(WindowPtr theWindow, Boolean tracks) -> None"},
-#endif
-
-#if TARGET_API_MAC_CARBON
-       {"IsAutomaticControlDragTrackingEnabledForWindow", (PyCFunction)Ctl_IsAutomaticControlDragTrackingEnabledForWindow, 1,
-        "(WindowPtr theWindow) -> (Boolean tracks)"},
-#endif
-       {"as_Control", (PyCFunction)Ctl_as_Control, 1,
-        "(Handle h) -> (ControlHandle _rv)"},
-       {NULL, NULL, 0}
-};
-
-
-
-static PyObject *
-CtlObj_NewUnmanaged(itself)
-       ControlHandle itself;
-{
-       ControlObject *it;
-       if (itself == NULL) return PyMac_Error(resNotFound);
-       it = PyObject_NEW(ControlObject, &Control_Type);
-       if (it == NULL) return NULL;
-       it->ob_itself = itself;
-       it->ob_callbackdict = NULL;
-       return (PyObject *)it;
-}
-
-static PyObject *
-CtlObj_WhichControl(ControlHandle c)
-{
-       PyObject *it;
-
-       if (c == NULL)
-               it = Py_None;
-       else {
-               it = (PyObject *) GetControlReference(c);
-               /*
-               ** If the refcon is zero or doesn't point back to the Python object
-               ** the control is not ours. Return a temporary object.
-               */
-               if (it == NULL || ((ControlObject *)it)->ob_itself != c)
-                       return CtlObj_NewUnmanaged(c);
-       }
-       Py_INCREF(it);
-       return it;
-}
-
-static int
-settrackfunc(obj)
-       PyObject *obj;
-{
-       if (tracker) {
-               PyErr_SetString(Ctl_Error, "Tracker function in use");
-               return 0;
-       }
-       tracker = obj;
-       Py_INCREF(tracker);
-}
-
-static void
-clrtrackfunc()
-{
-       Py_XDECREF(tracker);
-       tracker = 0;
-}
-
-static pascal void
-mytracker(ControlHandle ctl, short part)
-{
-       PyObject *args, *rv=0;
-
-       args = Py_BuildValue("(O&i)", CtlObj_WhichControl, ctl, (int)part);
-       if (args && tracker) {
-               rv = PyEval_CallObject(tracker, args);
-               Py_DECREF(args);
-       }
-       if (rv)
-               Py_DECREF(rv);
-       else
-               PySys_WriteStderr("TrackControl or HandleControlClick: exception in tracker function\n");
-}
-
-static int
-setcallback(myself, which, callback, uppp)
-       PyObject *myself;
-       OSType which;
-       PyObject *callback;
-       UniversalProcPtr *uppp;
-{
-       ControlObject *self = (ControlObject *)myself;
-       char keybuf[9];
-       
-       if ( which == kControlUserPaneDrawProcTag )
-               *uppp = (UniversalProcPtr)mydrawproc_upp;
-       else if ( which == kControlUserPaneIdleProcTag )
-               *uppp = (UniversalProcPtr)myidleproc_upp;
-       else if ( which == kControlUserPaneHitTestProcTag )
-               *uppp = (UniversalProcPtr)myhittestproc_upp;
-       else if ( which == kControlUserPaneTrackingProcTag )
-               *uppp = (UniversalProcPtr)mytrackingproc_upp;
-       else
-               return -1;
-       /* Only now do we test for clearing of the callback: */
-       if ( callback == Py_None )
-               *uppp = NULL;
-       /* Create the dict if it doesn't exist yet (so we don't get such a dict for every control) */
-       if ( self->ob_callbackdict == NULL )
-               if ( (self->ob_callbackdict = PyDict_New()) == NULL )
-                       return -1;
-       /* And store the Python callback */
-       sprintf(keybuf, "%x", which);
-       if (PyDict_SetItemString(self->ob_callbackdict, keybuf, callback) < 0)
-               return -1;
-       return 0;
-}
-
-static PyObject *
-callcallback(self, which, arglist)
-       ControlObject *self;
-       OSType which;
-       PyObject *arglist;
-{
-       char keybuf[9];
-       PyObject *func, *rv;
-       
-       sprintf(keybuf, "%x", which);
-       if ( self->ob_callbackdict == NULL ||
-                       (func = PyDict_GetItemString(self->ob_callbackdict, keybuf)) == NULL ) {
-               PySys_WriteStderr("Control callback %x without callback object\n", which);
-               return NULL;
-       }
-       rv = PyEval_CallObject(func, arglist);
-       if ( rv == NULL )
-               PySys_WriteStderr("Exception in control callback %x handler\n", which);
-       return rv;
-}
-
-static pascal void
-mydrawproc(ControlHandle control, SInt16 part)
-{
-       ControlObject *ctl_obj;
-       PyObject *arglist, *rv;
-       
-       ctl_obj = (ControlObject *)CtlObj_WhichControl(control);
-       arglist = Py_BuildValue("Oh", ctl_obj, part);
-       rv = callcallback(ctl_obj, kControlUserPaneDrawProcTag, arglist);
-       Py_XDECREF(arglist);
-       Py_XDECREF(rv);
-}
-
-static pascal void
-myidleproc(ControlHandle control)
-{
-       ControlObject *ctl_obj;
-       PyObject *arglist, *rv;
-       
-       ctl_obj = (ControlObject *)CtlObj_WhichControl(control);
-       arglist = Py_BuildValue("O", ctl_obj);
-       rv = callcallback(ctl_obj, kControlUserPaneIdleProcTag, arglist);
-       Py_XDECREF(arglist);
-       Py_XDECREF(rv);
-}
-
-static pascal ControlPartCode
-myhittestproc(ControlHandle control, Point where)
-{
-       ControlObject *ctl_obj;
-       PyObject *arglist, *rv;
-       short c_rv = -1;
-
-       ctl_obj = (ControlObject *)CtlObj_WhichControl(control);
-       arglist = Py_BuildValue("OO&", ctl_obj, PyMac_BuildPoint, where);
-       rv = callcallback(ctl_obj, kControlUserPaneHitTestProcTag, arglist);
-       Py_XDECREF(arglist);
-       /* Ignore errors, nothing we can do about them */
-       if ( rv )
-               PyArg_Parse(rv, "h", &c_rv);
-       Py_XDECREF(rv);
-       return (ControlPartCode)c_rv;
-}
-
-static pascal ControlPartCode
-mytrackingproc(ControlHandle control, Point startPt, ControlActionUPP actionProc)
-{
-       ControlObject *ctl_obj;
-       PyObject *arglist, *rv;
-       short c_rv = -1;
-
-       ctl_obj = (ControlObject *)CtlObj_WhichControl(control);
-       /* We cannot pass the actionProc without lots of work */
-       arglist = Py_BuildValue("OO&", ctl_obj, PyMac_BuildPoint, startPt);
-       rv = callcallback(ctl_obj, kControlUserPaneTrackingProcTag, arglist);
-       Py_XDECREF(arglist);
-       if ( rv )
-               PyArg_Parse(rv, "h", &c_rv);
-       Py_XDECREF(rv);
-       return (ControlPartCode)c_rv;
-}
-
-
-void initCtl()
-{
-       PyObject *m;
-       PyObject *d;
-
-
-
-       mytracker_upp = NewControlActionProc(mytracker);
-       mydrawproc_upp = NewControlUserPaneDrawProc(mydrawproc);
-       myidleproc_upp = NewControlUserPaneIdleProc(myidleproc);
-       myhittestproc_upp = NewControlUserPaneHitTestProc(myhittestproc);
-       mytrackingproc_upp = NewControlUserPaneTrackingProc(mytrackingproc);
-
-
-       m = Py_InitModule("Ctl", Ctl_methods);
-       d = PyModule_GetDict(m);
-       Ctl_Error = PyMac_GetOSErrException();
-       if (Ctl_Error == NULL ||
-           PyDict_SetItemString(d, "Error", Ctl_Error) != 0)
-               return;
-       Control_Type.ob_type = &PyType_Type;
-       Py_INCREF(&Control_Type);
-       if (PyDict_SetItemString(d, "ControlType", (PyObject *)&Control_Type) != 0)
-               Py_FatalError("can't initialize ControlType");
-}
-
-/* ========================= End module Ctl ========================= */
-
diff --git a/Mac/Modules/ctl/ctlscan.py b/Mac/Modules/ctl/ctlscan.py
deleted file mode 100644 (file)
index 1a502d6..0000000
+++ /dev/null
@@ -1,171 +0,0 @@
-# Scan <Controls.h>, generating ctlgen.py.
-import sys
-import os
-BGENDIR=os.path.join(sys.prefix, ':Tools:bgen:bgen')
-sys.path.append(BGENDIR)
-
-from scantools import Scanner
-from bgenlocations import TOOLBOXDIR
-
-def main():
-#      input = "Controls.h" # Universal Headers < 3.3
-       input = ["Controls.h", "ControlDefinitions.h"] # Universal Headers >= 3.3
-       output = "ctlgen.py"
-       defsoutput = TOOLBOXDIR + "Controls.py"
-       scanner = MyScanner(input, output, defsoutput)
-       scanner.scan()
-       scanner.close()
-       print "=== Done scanning and generating, now doing 'import ctlsupport' ==="
-       import ctlsupport
-       print "=== Done.  It's up to you to compile Ctlmodule.c ==="
-
-class MyScanner(Scanner):
-
-       def destination(self, type, name, arglist):
-               classname = "Function"
-               listname = "functions"
-               if arglist:
-                       t, n, m = arglist[0]
-                       if t in ("ControlHandle", "ControlRef") and m == "InMode":
-                               classname = "Method"
-                               listname = "methods"
-               return classname, listname
-
-       def writeinitialdefs(self):
-               self.defsfile.write("def FOUR_CHAR_CODE(x): return x\n")
-               self.defsfile.write("from TextEdit import *\n")
-               self.defsfile.write("from QuickDraw import *\n")
-               self.defsfile.write("from Dragconst import *\n")
-               self.defsfile.write("\n")
-
-       def makeblacklistnames(self):
-               return [
-                       'DisposeControl', # Generated manually
-                       'KillControls', # Implied by close of dialog
-                       'SetCtlAction',
-                       'TrackControl', # Generated manually
-                       'HandleControlClick',   # Generated manually
-                       'SetControlData',       # Generated manually
-                       'GetControlData',       # Generated manually
-                       'kControlBevelButtonCenterPopupGlyphTag', # Constant with funny definition
-                       'kControlProgressBarIndeterminateTag', # ditto
-                       # The following are unavailable for static 68k (appearance manager)
-##                     'GetBevelButtonMenuValue',
-##                     'SetBevelButtonMenuValue',
-##                     'GetBevelButtonMenuHandle',
-##                     'SetBevelButtonTransform',
-                       'SetBevelButtonGraphicAlignment',
-                       'SetBevelButtonTextAlignment',
-                       'SetBevelButtonTextPlacement',
-##                     'SetImageWellTransform',
-##                     'GetTabContentRect',
-##                     'SetTabEnabled',
-##                     'SetDisclosureTriangleLastValue',
-##                     # Unavailable in CW Pro 3 libraries
-##                     'SetUpControlTextColor',
-##                     # Unavailable in Jack's CW Pro 5.1 libraries
-##                     'GetControlRegion',
-##                     'RemoveControlProperty',
-##                     'IsValidControlHandle',
-##                     'SetControl32BitMinimum',
-##                     'GetControl32BitMinimum',
-##                     'SetControl32BitMaximum',
-##                     'GetControl32BitMaximum',
-##                     'SetControl32BitValue',
-##                     'GetControl32BitValue',
-##                     'SetControlViewSize',
-##                     'GetControlViewSize',
-                       # Generally Bad News
-                       'GetControlProperty',
-                       'SetControlProperty',
-                       'GetControlPropertySize',
-                       ]
-
-       def makegreylist(self):
-               return [
-                       ('#if !TARGET_API_MAC_CARBON', [
-                               'GetAuxiliaryControlRecord',
-                               'SetControlColor',
-                               # These have suddenly disappeared in UH 3.3.2...
-##                             'GetBevelButtonMenuValue',
-##                             'SetBevelButtonMenuValue',
-##                             'GetBevelButtonMenuHandle',
-##                             'SetBevelButtonTransform',
-##                             'SetImageWellTransform',
-##                             'GetTabContentRect',
-##                             'SetTabEnabled',
-##                             'SetDisclosureTriangleLastValue',
-                       ]),
-                       ('#if TARGET_API_MAC_CARBON', [
-                               'IsAutomaticControlDragTrackingEnabledForWindow',
-                               'SetAutomaticControlDragTrackingEnabledForWindow',
-                               'HandleControlDragReceive',
-                               'HandleControlDragTracking',
-                               'GetControlByID',
-                               'IsControlDragTrackingEnabled',
-                               'SetControlDragTrackingEnabled',
-                               'GetControlPropertyAttributes',
-                               'ChangeControlPropertyAttributes',
-                               'GetControlID',
-                               'SetControlID',
-                               'HandleControlSetCursor',
-                               'GetControlClickActivation',
-                               'HandleControlContextualMenuClick',
-                       ]),
-                       ('#if ACCESSOR_CALLS_ARE_FUNCTIONS', [
-                               # XXX These are silly, they should be #defined to access the fields
-                               # directly. Later...
-                               'GetControlBounds',
-                               'IsControlHilited',
-                               'GetControlHilite',
-                               'GetControlOwner',
-                               'GetControlDataHandle',
-                               'GetControlPopupMenuHandle',
-                               'GetControlPopupMenuID',
-                               'SetControlDataHandle',
-                               'SetControlBounds',
-                               'SetControlPopupMenuHandle',
-                               'SetControlPopupMenuID',
-                       ])]
-                       
-       def makeblacklisttypes(self):
-               return [
-                       'ProcPtr',
-                       'ControlActionUPP',
-                       'ControlButtonContentInfoPtr',
-                       'Ptr',
-                       'ControlDefSpec', # Don't know how to do this yet
-                       'ControlDefSpec_ptr', # ditto
-                       'Collection', # Ditto
-                       ]
-
-       def makerepairinstructions(self):
-               return [
-                       ([("void_ptr", "*", "InMode"), ("long", "*", "InMode")],
-                        [("InBuffer", "*", "*")]),
-
-                       ([("void", "*", "OutMode"), ("long", "*", "InMode"),
-                                                   ("long", "*", "OutMode")],
-                        [("VarVarOutBuffer", "*", "InOutMode")]),
-
-##                     # For TrackControl
-##                     ([("ProcPtr", "actionProc", "InMode")],
-##                      [("FakeType('(ControlActionUPP)0')", "*", "*")]),
-##                     ([("ControlActionUPP", "actionProc", "InMode")],
-##                      [("FakeType('(ControlActionUPP)0')", "*", "*")]),
-
-                       # For GetControlTitle
-                       ([('Str255', 'title', 'InMode')],
-                        [('Str255', 'title', 'OutMode')]),
-
-                       ([("ControlHandle", "*", "OutMode")],
-                        [("ExistingControlHandle", "*", "*")]),
-                       ([("ControlRef", "*", "OutMode")],      # Ditto, for Universal Headers
-                        [("ExistingControlHandle", "*", "*")]),
-                        
-                       ([("Rect_ptr", "*", "ReturnMode")], # GetControlBounds
-                        [("void", "*", "ReturnMode")]),
-                       ]
-
-if __name__ == "__main__":
-       main()
diff --git a/Mac/Modules/ctl/ctlsupport.py b/Mac/Modules/ctl/ctlsupport.py
deleted file mode 100644 (file)
index 557ff48..0000000
+++ /dev/null
@@ -1,639 +0,0 @@
-# This script generates a Python interface for an Apple Macintosh Manager.
-# It uses the "bgen" package to generate C code.
-# The function specifications are generated by scanning the mamager's header file,
-# using the "scantools" package (customized for this particular manager).
-
-import string
-
-# Declarations that change for each manager
-MACHEADERFILE = 'Controls.h'           # The Apple header file
-MODNAME = 'Ctl'                                # The name of the module
-OBJECTNAME = 'Control'                 # The basic name of the objects used here
-
-# The following is *usually* unchanged but may still require tuning
-MODPREFIX = MODNAME                    # The prefix for module-wide routines
-OBJECTTYPE = OBJECTNAME + 'Handle'     # The C type used to represent them
-OBJECTPREFIX = MODPREFIX + 'Obj'       # The prefix for object methods
-INPUTFILE = string.lower(MODPREFIX) + 'gen.py' # The file generated by the scanner
-OUTPUTFILE = MODNAME + "module.c"      # The file generated by this program
-
-from macsupport import *
-
-# Create the type objects
-
-ControlHandle = OpaqueByValueType(OBJECTTYPE, OBJECTPREFIX)
-ControlRef = ControlHandle
-ExistingControlHandle = OpaqueByValueType(OBJECTTYPE, "CtlObj_WhichControl", "BUG")
-
-RgnHandle = OpaqueByValueType("RgnHandle", "ResObj")
-CCTabHandle = OpaqueByValueType("CCTabHandle", "ResObj")
-AuxCtlHandle = OpaqueByValueType("AuxCtlHandle", "ResObj")
-ControlPartCode = Type("ControlPartCode", "h")
-DragConstraint = Type("DragConstraint", "H")
-ControlVariant = Type("ControlVariant", "h")
-IconTransformType = Type("IconTransformType", "h")
-EventModifiers = Type("EventModifiers", "H")
-ClickActivationResult = Type("ClickActivationResult", "l")
-ControlButtonGraphicAlignment = Type("ControlButtonGraphicAlignment", "h")
-ControlButtonTextAlignment = Type("ControlButtonTextAlignment", "h")
-ControlButtonTextPlacement = Type("ControlButtonTextPlacement", "h")
-ControlContentType = Type("ControlContentType", "h")
-ControlFocusPart = Type("ControlFocusPart", "h")
-
-ControlFontStyleRec = OpaqueType('ControlFontStyleRec', 'ControlFontStyle')
-ControlFontStyleRec_ptr = ControlFontStyleRec
-ControlID = OpaqueType('ControlID', 'PyControlID')
-ControlID_ptr = ControlID
-
-DragTrackingMessage = Type("DragTrackingMessage", "h")
-DragReference = OpaqueByValueType("DragReference", "DragObj")
-
-includestuff = includestuff + """
-#include <%s>""" % MACHEADERFILE + """
-#ifndef kControlCheckBoxUncheckedValue
-#include <ControlDefinitions.h>
-#endif
-
-staticforward PyObject *CtlObj_WhichControl(ControlHandle);
-
-#define as_Control(h) ((ControlHandle)h)
-#define as_Resource(ctl) ((Handle)ctl)
-#if TARGET_API_MAC_CARBON
-#define GetControlRect(ctl, rectp) GetControlBounds(ctl, rectp)
-#else
-#define GetControlRect(ctl, rectp) (*(rectp) = ((*(ctl))->contrlRect))
-#endif
-
-/*
-** Parse/generate ControlFontStyleRec records
-*/
-#if 0 /* Not needed */
-static PyObject *
-ControlFontStyle_New(itself)
-       ControlFontStyleRec *itself;
-{
-
-       return Py_BuildValue("hhhhhhO&O&", itself->flags, itself->font,
-               itself->size, itself->style, itself->mode, itself->just,
-               QdRGB_New, &itself->foreColor, QdRGB_New, &itself->backColor);
-}
-#endif
-
-static int
-ControlFontStyle_Convert(v, itself)
-       PyObject *v;
-       ControlFontStyleRec *itself;
-{
-       return PyArg_ParseTuple(v, "hhhhhhO&O&", &itself->flags,
-               &itself->font, &itself->size, &itself->style, &itself->mode,
-               &itself->just, QdRGB_Convert, &itself->foreColor,
-               QdRGB_Convert, &itself->backColor);
-}
-
-/*
-** Parse/generate ControlID records
-*/
-static PyObject *
-PyControlID_New(itself)
-       ControlID *itself;
-{
-
-       return Py_BuildValue("O&l", PyMac_BuildOSType, itself->signature, itself->id);
-}
-
-static int
-PyControlID_Convert(v, itself)
-       PyObject *v;
-       ControlID *itself;
-{
-       return PyArg_ParseTuple(v, "O&l", PyMac_GetOSType, &itself->signature, &itself->id);
-}
-
-
-/* TrackControl and HandleControlClick callback support */
-static PyObject *tracker;
-static ControlActionUPP mytracker_upp;
-static ControlUserPaneDrawUPP mydrawproc_upp;
-static ControlUserPaneIdleUPP myidleproc_upp;
-static ControlUserPaneHitTestUPP myhittestproc_upp;
-static ControlUserPaneTrackingUPP mytrackingproc_upp;
-
-extern int settrackfunc(PyObject *);   /* forward */
-extern void clrtrackfunc(void);        /* forward */
-staticforward int setcallback(PyObject *, OSType, PyObject *, UniversalProcPtr *);
-"""
-
-finalstuff = finalstuff + """
-static PyObject *
-CtlObj_NewUnmanaged(itself)
-       ControlHandle itself;
-{
-       ControlObject *it;
-       if (itself == NULL) return PyMac_Error(resNotFound);
-       it = PyObject_NEW(ControlObject, &Control_Type);
-       if (it == NULL) return NULL;
-       it->ob_itself = itself;
-       it->ob_callbackdict = NULL;
-       return (PyObject *)it;
-}
-
-static PyObject *
-CtlObj_WhichControl(ControlHandle c)
-{
-       PyObject *it;
-
-       if (c == NULL)
-               it = Py_None;
-       else {
-               it = (PyObject *) GetControlReference(c);
-               /*
-               ** If the refcon is zero or doesn't point back to the Python object
-               ** the control is not ours. Return a temporary object.
-               */
-               if (it == NULL || ((ControlObject *)it)->ob_itself != c)
-                       return CtlObj_NewUnmanaged(c);
-       }
-       Py_INCREF(it);
-       return it;
-}
-
-static int
-settrackfunc(obj)
-       PyObject *obj;
-{
-       if (tracker) {
-               PyErr_SetString(Ctl_Error, "Tracker function in use");
-               return 0;
-       }
-       tracker = obj;
-       Py_INCREF(tracker);
-}
-
-static void
-clrtrackfunc()
-{
-       Py_XDECREF(tracker);
-       tracker = 0;
-}
-
-static pascal void
-mytracker(ControlHandle ctl, short part)
-{
-       PyObject *args, *rv=0;
-
-       args = Py_BuildValue("(O&i)", CtlObj_WhichControl, ctl, (int)part);
-       if (args && tracker) {
-               rv = PyEval_CallObject(tracker, args);
-               Py_DECREF(args);
-       }
-       if (rv)
-               Py_DECREF(rv);
-       else
-               PySys_WriteStderr("TrackControl or HandleControlClick: exception in tracker function\\n");
-}
-
-static int
-setcallback(myself, which, callback, uppp)
-       PyObject *myself;
-       OSType which;
-       PyObject *callback;
-       UniversalProcPtr *uppp;
-{
-       ControlObject *self = (ControlObject *)myself;
-       char keybuf[9];
-       
-       if ( which == kControlUserPaneDrawProcTag )
-               *uppp = (UniversalProcPtr)mydrawproc_upp;
-       else if ( which == kControlUserPaneIdleProcTag )
-               *uppp = (UniversalProcPtr)myidleproc_upp;
-       else if ( which == kControlUserPaneHitTestProcTag )
-               *uppp = (UniversalProcPtr)myhittestproc_upp;
-       else if ( which == kControlUserPaneTrackingProcTag )
-               *uppp = (UniversalProcPtr)mytrackingproc_upp;
-       else
-               return -1;
-       /* Only now do we test for clearing of the callback: */
-       if ( callback == Py_None )
-               *uppp = NULL;
-       /* Create the dict if it doesn't exist yet (so we don't get such a dict for every control) */
-       if ( self->ob_callbackdict == NULL )
-               if ( (self->ob_callbackdict = PyDict_New()) == NULL )
-                       return -1;
-       /* And store the Python callback */
-       sprintf(keybuf, "%x", which);
-       if (PyDict_SetItemString(self->ob_callbackdict, keybuf, callback) < 0)
-               return -1;
-       return 0;
-}
-
-static PyObject *
-callcallback(self, which, arglist)
-       ControlObject *self;
-       OSType which;
-       PyObject *arglist;
-{
-       char keybuf[9];
-       PyObject *func, *rv;
-       
-       sprintf(keybuf, "%x", which);
-       if ( self->ob_callbackdict == NULL ||
-                       (func = PyDict_GetItemString(self->ob_callbackdict, keybuf)) == NULL ) {
-               PySys_WriteStderr("Control callback %x without callback object\\n", which);
-               return NULL;
-       }
-       rv = PyEval_CallObject(func, arglist);
-       if ( rv == NULL )
-               PySys_WriteStderr("Exception in control callback %x handler\\n", which);
-       return rv;
-}
-
-static pascal void
-mydrawproc(ControlHandle control, SInt16 part)
-{
-       ControlObject *ctl_obj;
-       PyObject *arglist, *rv;
-       
-       ctl_obj = (ControlObject *)CtlObj_WhichControl(control);
-       arglist = Py_BuildValue("Oh", ctl_obj, part);
-       rv = callcallback(ctl_obj, kControlUserPaneDrawProcTag, arglist);
-       Py_XDECREF(arglist);
-       Py_XDECREF(rv);
-}
-
-static pascal void
-myidleproc(ControlHandle control)
-{
-       ControlObject *ctl_obj;
-       PyObject *arglist, *rv;
-       
-       ctl_obj = (ControlObject *)CtlObj_WhichControl(control);
-       arglist = Py_BuildValue("O", ctl_obj);
-       rv = callcallback(ctl_obj, kControlUserPaneIdleProcTag, arglist);
-       Py_XDECREF(arglist);
-       Py_XDECREF(rv);
-}
-
-static pascal ControlPartCode
-myhittestproc(ControlHandle control, Point where)
-{
-       ControlObject *ctl_obj;
-       PyObject *arglist, *rv;
-       short c_rv = -1;
-
-       ctl_obj = (ControlObject *)CtlObj_WhichControl(control);
-       arglist = Py_BuildValue("OO&", ctl_obj, PyMac_BuildPoint, where);
-       rv = callcallback(ctl_obj, kControlUserPaneHitTestProcTag, arglist);
-       Py_XDECREF(arglist);
-       /* Ignore errors, nothing we can do about them */
-       if ( rv )
-               PyArg_Parse(rv, "h", &c_rv);
-       Py_XDECREF(rv);
-       return (ControlPartCode)c_rv;
-}
-
-static pascal ControlPartCode
-mytrackingproc(ControlHandle control, Point startPt, ControlActionUPP actionProc)
-{
-       ControlObject *ctl_obj;
-       PyObject *arglist, *rv;
-       short c_rv = -1;
-
-       ctl_obj = (ControlObject *)CtlObj_WhichControl(control);
-       /* We cannot pass the actionProc without lots of work */
-       arglist = Py_BuildValue("OO&", ctl_obj, PyMac_BuildPoint, startPt);
-       rv = callcallback(ctl_obj, kControlUserPaneTrackingProcTag, arglist);
-       Py_XDECREF(arglist);
-       if ( rv )
-               PyArg_Parse(rv, "h", &c_rv);
-       Py_XDECREF(rv);
-       return (ControlPartCode)c_rv;
-}
-"""
-
-initstuff = initstuff + """
-mytracker_upp = NewControlActionProc(mytracker);
-mydrawproc_upp = NewControlUserPaneDrawProc(mydrawproc);
-myidleproc_upp = NewControlUserPaneIdleProc(myidleproc);
-myhittestproc_upp = NewControlUserPaneHitTestProc(myhittestproc);
-mytrackingproc_upp = NewControlUserPaneTrackingProc(mytrackingproc);
-"""
-
-class MyObjectDefinition(ObjectIdentityMixin, GlobalObjectDefinition):
-       def outputStructMembers(self):
-               GlobalObjectDefinition.outputStructMembers(self)
-               Output("PyObject *ob_callbackdict;")
-       def outputCheckNewArg(self):
-               Output("if (itself == NULL) return PyMac_Error(resNotFound);")
-       def outputInitStructMembers(self):
-               GlobalObjectDefinition.outputInitStructMembers(self)
-               Output("SetControlReference(itself, (long)it);")
-               Output("it->ob_callbackdict = NULL;")
-       def outputCleanupStructMembers(self):
-               Output("Py_XDECREF(self->ob_callbackdict);")
-               Output("if (self->ob_itself)SetControlReference(self->ob_itself, (long)0); /* Make it forget about us */")
-
-# Create the generator groups and link them
-module = MacModule(MODNAME, MODPREFIX, includestuff, finalstuff, initstuff)
-object = MyObjectDefinition(OBJECTNAME, OBJECTPREFIX, OBJECTTYPE)
-module.addobject(object)
-
-# Create the generator classes used to populate the lists
-Function = OSErrFunctionGenerator
-Method = OSErrMethodGenerator
-
-# Create and populate the lists
-functions = []
-methods = []
-execfile(INPUTFILE)
-execfile('ctledit.py')
-
-# add the populated lists to the generator groups
-for f in functions: module.add(f)
-for f in methods: object.add(f)
-
-# Manual generator for TrackControl, due to callback ideosyncracies
-trackcontrol_body = """
-ControlPartCode _rv;
-Point startPoint;
-ControlActionUPP upp = 0;
-PyObject *callback = 0;
-
-if (!PyArg_ParseTuple(_args, "O&|O",
-                      PyMac_GetPoint, &startPoint, &callback))
-       return NULL;
-if (callback && callback != Py_None) {
-       if (PyInt_Check(callback) && PyInt_AS_LONG(callback) == -1)
-               upp = (ControlActionUPP)-1;
-       else {
-               settrackfunc(callback);
-               upp = mytracker_upp;
-       }
-}
-_rv = TrackControl(_self->ob_itself,
-                   startPoint,
-                   upp);
-clrtrackfunc();
-_res = Py_BuildValue("h",
-                     _rv);
-return _res;
-"""
-
-f = ManualGenerator("TrackControl", trackcontrol_body);
-f.docstring = lambda: "(Point startPoint [,trackercallback]) -> (ControlPartCode _rv)"
-object.add(f)
-
-# CJW - added 5/12/99
-# Manual generator for HandleControlClick, as for TrackControl
-handlecontrolclick_body = """
-ControlPartCode _rv;
-Point startPoint;
-SInt16 modifiers;
-ControlActionUPP upp = 0;
-PyObject *callback = 0;
-
-if (!PyArg_ParseTuple(_args, "O&h|O",
-                      PyMac_GetPoint, &startPoint,
-                      &modifiers,
-                      &callback))
-       return NULL;
-if (callback && callback != Py_None) {
-       if (PyInt_Check(callback) && PyInt_AS_LONG(callback) == -1)
-               upp = (ControlActionUPP)-1;
-       else {
-               settrackfunc(callback);
-               upp = mytracker_upp;
-       }
-}
-_rv = HandleControlClick(_self->ob_itself,
-                   startPoint,
-                   modifiers,
-                   upp);
-clrtrackfunc();
-_res = Py_BuildValue("h",
-                     _rv);
-return _res;
-"""
-
-f = ManualGenerator("HandleControlClick", handlecontrolclick_body);
-f.docstring = lambda: "(Point startPoint, Integer modifiers, [,trackercallback]) -> (ControlPartCode _rv)"
-object.add(f)
-
-# Manual Generator for SetControlData
-setcontroldata_body = """
-OSErr _err;
-ControlPartCode inPart;
-ResType inTagName;
-Size bufferSize;
-Ptr buffer;
-
-if (!PyArg_ParseTuple(_args, "hO&s#",
-                      &inPart,
-                      PyMac_GetOSType, &inTagName,
-                      &buffer, &bufferSize))
-       return NULL;
-
-_err = SetControlData(_self->ob_itself,
-                     inPart,
-                     inTagName,
-                     bufferSize,
-                      buffer);
-
-if (_err != noErr)
-       return PyMac_Error(_err);
-_res = Py_None;
-return _res;
-"""
-
-f = ManualGenerator("SetControlData", setcontroldata_body);
-f.docstring = lambda: "(stuff) -> None"
-object.add(f)
-
-# Manual Generator for GetControlData
-getcontroldata_body = """
-OSErr _err;
-ControlPartCode inPart;
-ResType inTagName;
-Size bufferSize;
-Ptr buffer;
-Size outSize;
-
-if (!PyArg_ParseTuple(_args, "hO&",
-                      &inPart,
-                      PyMac_GetOSType, &inTagName))
-       return NULL;
-
-/* allocate a buffer for the data */
-_err = GetControlDataSize(_self->ob_itself,
-                         inPart,
-                         inTagName,
-                          &bufferSize);
-if (_err != noErr)
-       return PyMac_Error(_err);
-buffer = PyMem_NEW(char, bufferSize);
-if (buffer == NULL)
-       return PyErr_NoMemory();
-
-_err = GetControlData(_self->ob_itself,
-                     inPart,
-                     inTagName,
-                     bufferSize,
-                      buffer,
-                      &outSize);
-
-if (_err != noErr) {
-       PyMem_DEL(buffer);
-       return PyMac_Error(_err);
-}
-_res = Py_BuildValue("s#", buffer, outSize);
-PyMem_DEL(buffer);
-return _res;
-"""
-
-f = ManualGenerator("GetControlData", getcontroldata_body);
-f.docstring = lambda: "(part, type) -> String"
-object.add(f)
-
-# Manual Generator for SetControlData_Handle
-setcontroldata_handle_body = """
-OSErr _err;
-ControlPartCode inPart;
-ResType inTagName;
-Handle buffer;
-
-if (!PyArg_ParseTuple(_args, "hO&O&",
-                      &inPart,
-                      PyMac_GetOSType, &inTagName,
-                      OptResObj_Convert, &buffer))
-       return NULL;
-
-_err = SetControlData(_self->ob_itself,
-                     inPart,
-                     inTagName,
-                     sizeof(buffer),
-                      (Ptr)&buffer);
-
-if (_err != noErr)
-       return PyMac_Error(_err);
-_res = Py_None;
-return _res;
-"""
-
-f = ManualGenerator("SetControlData_Handle", setcontroldata_handle_body);
-f.docstring = lambda: "(ResObj) -> None"
-object.add(f)
-
-# Manual Generator for GetControlData_Handle
-getcontroldata_handle_body = """
-OSErr _err;
-ControlPartCode inPart;
-ResType inTagName;
-Size bufferSize;
-Handle hdl;
-
-if (!PyArg_ParseTuple(_args, "hO&",
-                      &inPart,
-                      PyMac_GetOSType, &inTagName))
-       return NULL;
-
-/* Check it is handle-sized */
-_err = GetControlDataSize(_self->ob_itself,
-                         inPart,
-                         inTagName,
-                          &bufferSize);
-if (_err != noErr)
-       return PyMac_Error(_err);
-if (bufferSize != sizeof(Handle)) {
-       PyErr_SetString(Ctl_Error, "GetControlDataSize() != sizeof(Handle)");
-       return NULL;
-}
-
-_err = GetControlData(_self->ob_itself,
-                     inPart,
-                     inTagName,
-                     sizeof(Handle),
-                      (Ptr)&hdl,
-                      &bufferSize);
-
-if (_err != noErr) {
-       return PyMac_Error(_err);
-}
-return Py_BuildValue("O&", OptResObj_New, hdl);
-"""
-
-f = ManualGenerator("GetControlData_Handle", getcontroldata_handle_body);
-f.docstring = lambda: "(part, type) -> ResObj"
-object.add(f)
-
-# Manual Generator for SetControlData_Callback
-setcontroldata_callback_body = """
-OSErr _err;
-ControlPartCode inPart;
-ResType inTagName;
-PyObject *callback;
-UniversalProcPtr c_callback;
-
-if (!PyArg_ParseTuple(_args, "hO&O",
-                      &inPart,
-                      PyMac_GetOSType, &inTagName,
-                      &callback))
-       return NULL;
-
-if ( setcallback((PyObject *)_self, inTagName, callback, &c_callback) < 0 )
-       return NULL;
-_err = SetControlData(_self->ob_itself,
-                     inPart,
-                     inTagName,
-                     sizeof(c_callback),
-                      (Ptr)&c_callback);
-
-if (_err != noErr)
-       return PyMac_Error(_err);
-_res = Py_None;
-return _res;
-"""
-
-f = ManualGenerator("SetControlData_Callback", setcontroldata_callback_body);
-f.docstring = lambda: "(callbackfunc) -> None"
-object.add(f)
-
-# And manual generators to get/set popup menu information
-getpopupdata_body = """
-PopupPrivateDataHandle hdl;
-
-if ( (*_self->ob_itself)->contrlData == NULL ) {
-       PyErr_SetString(Ctl_Error, "No contrlData handle in control");
-       return 0;
-}
-hdl = (PopupPrivateDataHandle)(*_self->ob_itself)->contrlData;
-HLock((Handle)hdl);
-_res = Py_BuildValue("O&i", MenuObj_New, (*hdl)->mHandle, (int)(*hdl)->mID);
-HUnlock((Handle)hdl);
-return _res;
-"""
-f = ManualGenerator("GetPopupData", getpopupdata_body, condition="#if !TARGET_API_MAC_CARBON")
-object.add(f)
-
-setpopupdata_body = """
-PopupPrivateDataHandle hdl;
-MenuHandle mHandle;
-short mID;
-
-if (!PyArg_ParseTuple(_args, "O&h", MenuObj_Convert, &mHandle, &mID) )
-       return 0;
-if ( (*_self->ob_itself)->contrlData == NULL ) {
-       PyErr_SetString(Ctl_Error, "No contrlData handle in control");
-       return 0;
-}
-hdl = (PopupPrivateDataHandle)(*_self->ob_itself)->contrlData;
-(*hdl)->mHandle = mHandle;
-(*hdl)->mID = mID;
-Py_INCREF(Py_None);
-return Py_None;
-"""
-f = ManualGenerator("SetPopupData", setpopupdata_body, condition="#if !TARGET_API_MAC_CARBON")
-object.add(f)
-
-
-# generate output (open the output file as late as possible)
-SetOutputFileName(OUTPUTFILE)
-module.generate()
diff --git a/Mac/Modules/dlg/Dlgmodule.c b/Mac/Modules/dlg/Dlgmodule.c
deleted file mode 100644 (file)
index 2262b54..0000000
+++ /dev/null
@@ -1,1533 +0,0 @@
-
-/* =========================== Module Dlg =========================== */
-
-#include "Python.h"
-
-
-
-#include "macglue.h"
-#include "pymactoolbox.h"
-
-#include <Dialogs.h>
-
-#if !ACCESSOR_CALLS_ARE_FUNCTIONS
-#define GetDialogTextEditHandle(dlg) (((DialogPeek)(dlg))->textH)
-#define SetPortDialogPort(dlg) SetPort(dlg)
-#define GetDialogPort(dlg) ((CGrafPtr)(dlg))
-#define GetDialogFromWindow(win) ((DialogRef)(win))
-#endif
-
-/* XXX Shouldn't this be a stack? */
-static PyObject *Dlg_FilterProc_callback = NULL;
-
-static pascal Boolean Dlg_UnivFilterProc(DialogPtr dialog,
-                                         EventRecord *event,
-                                         short *itemHit)
-{
-       Boolean rv;
-       PyObject *args, *res;
-       PyObject *callback = Dlg_FilterProc_callback;
-       if (callback == NULL)
-               return 0; /* Default behavior */
-       Dlg_FilterProc_callback = NULL; /* We'll restore it when call successful */
-       args = Py_BuildValue("O&O&", DlgObj_WhichDialog, dialog, PyMac_BuildEventRecord, event);
-       if (args == NULL)
-               res = NULL;
-       else {
-               res = PyEval_CallObject(callback, args);
-               Py_DECREF(args);
-       }
-       if (res == NULL) {
-               PySys_WriteStderr("Exception in Dialog Filter\n");
-               PyErr_Print();
-               *itemHit = -1; /* Fake return item */
-               return 1; /* We handled it */
-       }
-       else {
-               Dlg_FilterProc_callback = callback;
-               if (PyInt_Check(res)) {
-                       *itemHit = PyInt_AsLong(res);
-                       rv = 1;
-               }
-               else
-                       rv = PyObject_IsTrue(res);
-       }
-       Py_DECREF(res);
-       return rv;
-}
-
-static ModalFilterUPP
-Dlg_PassFilterProc(PyObject *callback)
-{
-       PyObject *tmp = Dlg_FilterProc_callback;
-       static ModalFilterUPP UnivFilterUpp = NULL;
-       
-       Dlg_FilterProc_callback = NULL;
-       if (callback == Py_None) {
-               Py_XDECREF(tmp);
-               return NULL;
-       }
-       Py_INCREF(callback);
-       Dlg_FilterProc_callback = callback;
-       Py_XDECREF(tmp);
-       if ( UnivFilterUpp == NULL )
-               UnivFilterUpp = NewModalFilterUPP(&Dlg_UnivFilterProc);
-       return UnivFilterUpp;
-}
-
-static PyObject *Dlg_UserItemProc_callback = NULL;
-
-static pascal void Dlg_UnivUserItemProc(DialogPtr dialog,
-                                         short item)
-{
-       PyObject *args, *res;
-
-       if (Dlg_UserItemProc_callback == NULL)
-               return; /* Default behavior */
-       Dlg_FilterProc_callback = NULL; /* We'll restore it when call successful */
-       args = Py_BuildValue("O&h", DlgObj_WhichDialog, dialog, item);
-       if (args == NULL)
-               res = NULL;
-       else {
-               res = PyEval_CallObject(Dlg_UserItemProc_callback, args);
-               Py_DECREF(args);
-       }
-       if (res == NULL) {
-               PySys_WriteStderr("Exception in Dialog UserItem proc\n");
-               PyErr_Print();
-       }
-       Py_XDECREF(res);
-       return;
-}
-
-#if 0
-/*
-** Treating DialogObjects as WindowObjects is (I think) illegal under Carbon.
-** However, as they are still identical under MacOS9 Carbon this is a problem, even
-** if we neatly call GetDialogWindow() at the right places: there's one refcon field
-** and it points to the DialogObject, so WinObj_WhichWindow will smartly return the
-** dialog object, and therefore we still don't have a WindowObject.
-** I'll leave the chaining code in place for now, with this comment to warn the
-** unsuspecting victims (i.e. me, probably, in a few weeks:-)
-*/
-extern PyMethodChain WinObj_chain;
-#endif
-
-static PyObject *Dlg_Error;
-
-/* ----------------------- Object type Dialog ----------------------- */
-
-PyTypeObject Dialog_Type;
-
-#define DlgObj_Check(x) ((x)->ob_type == &Dialog_Type)
-
-typedef struct DialogObject {
-       PyObject_HEAD
-       DialogPtr ob_itself;
-} DialogObject;
-
-PyObject *DlgObj_New(itself)
-       DialogPtr itself;
-{
-       DialogObject *it;
-       if (itself == NULL) return Py_None;
-       it = PyObject_NEW(DialogObject, &Dialog_Type);
-       if (it == NULL) return NULL;
-       it->ob_itself = itself;
-       SetWRefCon(GetDialogWindow(itself), (long)it);
-       return (PyObject *)it;
-}
-DlgObj_Convert(v, p_itself)
-       PyObject *v;
-       DialogPtr *p_itself;
-{
-       if (v == Py_None) { *p_itself = NULL; return 1; }
-       if (PyInt_Check(v)) { *p_itself = (DialogPtr)PyInt_AsLong(v);
-                             return 1; }
-       if (!DlgObj_Check(v))
-       {
-               PyErr_SetString(PyExc_TypeError, "Dialog required");
-               return 0;
-       }
-       *p_itself = ((DialogObject *)v)->ob_itself;
-       return 1;
-}
-
-static void DlgObj_dealloc(self)
-       DialogObject *self;
-{
-       DisposeDialog(self->ob_itself);
-       PyMem_DEL(self);
-}
-
-static PyObject *DlgObj_DrawDialog(_self, _args)
-       DialogObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       DrawDialog(_self->ob_itself);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *DlgObj_UpdateDialog(_self, _args)
-       DialogObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       RgnHandle updateRgn;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             ResObj_Convert, &updateRgn))
-               return NULL;
-       UpdateDialog(_self->ob_itself,
-                    updateRgn);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *DlgObj_HideDialogItem(_self, _args)
-       DialogObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       DialogItemIndex itemNo;
-       if (!PyArg_ParseTuple(_args, "h",
-                             &itemNo))
-               return NULL;
-       HideDialogItem(_self->ob_itself,
-                      itemNo);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *DlgObj_ShowDialogItem(_self, _args)
-       DialogObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       DialogItemIndex itemNo;
-       if (!PyArg_ParseTuple(_args, "h",
-                             &itemNo))
-               return NULL;
-       ShowDialogItem(_self->ob_itself,
-                      itemNo);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *DlgObj_FindDialogItem(_self, _args)
-       DialogObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       DialogItemIndexZeroBased _rv;
-       Point thePt;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             PyMac_GetPoint, &thePt))
-               return NULL;
-       _rv = FindDialogItem(_self->ob_itself,
-                            thePt);
-       _res = Py_BuildValue("h",
-                            _rv);
-       return _res;
-}
-
-static PyObject *DlgObj_DialogCut(_self, _args)
-       DialogObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       DialogCut(_self->ob_itself);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *DlgObj_DialogPaste(_self, _args)
-       DialogObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       DialogPaste(_self->ob_itself);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *DlgObj_DialogCopy(_self, _args)
-       DialogObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       DialogCopy(_self->ob_itself);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *DlgObj_DialogDelete(_self, _args)
-       DialogObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       DialogDelete(_self->ob_itself);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *DlgObj_GetDialogItem(_self, _args)
-       DialogObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       DialogItemIndex itemNo;
-       DialogItemType itemType;
-       Handle item;
-       Rect box;
-       if (!PyArg_ParseTuple(_args, "h",
-                             &itemNo))
-               return NULL;
-       GetDialogItem(_self->ob_itself,
-                     itemNo,
-                     &itemType,
-                     &item,
-                     &box);
-       _res = Py_BuildValue("hO&O&",
-                            itemType,
-                            OptResObj_New, item,
-                            PyMac_BuildRect, &box);
-       return _res;
-}
-
-static PyObject *DlgObj_SetDialogItem(_self, _args)
-       DialogObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       DialogItemIndex itemNo;
-       DialogItemType itemType;
-       Handle item;
-       Rect box;
-       if (!PyArg_ParseTuple(_args, "hhO&O&",
-                             &itemNo,
-                             &itemType,
-                             ResObj_Convert, &item,
-                             PyMac_GetRect, &box))
-               return NULL;
-       SetDialogItem(_self->ob_itself,
-                     itemNo,
-                     itemType,
-                     item,
-                     &box);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *DlgObj_SelectDialogItemText(_self, _args)
-       DialogObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       DialogItemIndex itemNo;
-       SInt16 strtSel;
-       SInt16 endSel;
-       if (!PyArg_ParseTuple(_args, "hhh",
-                             &itemNo,
-                             &strtSel,
-                             &endSel))
-               return NULL;
-       SelectDialogItemText(_self->ob_itself,
-                            itemNo,
-                            strtSel,
-                            endSel);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *DlgObj_AppendDITL(_self, _args)
-       DialogObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Handle theHandle;
-       DITLMethod method;
-       if (!PyArg_ParseTuple(_args, "O&h",
-                             ResObj_Convert, &theHandle,
-                             &method))
-               return NULL;
-       AppendDITL(_self->ob_itself,
-                  theHandle,
-                  method);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *DlgObj_CountDITL(_self, _args)
-       DialogObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       DialogItemIndex _rv;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _rv = CountDITL(_self->ob_itself);
-       _res = Py_BuildValue("h",
-                            _rv);
-       return _res;
-}
-
-static PyObject *DlgObj_ShortenDITL(_self, _args)
-       DialogObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       DialogItemIndex numberItems;
-       if (!PyArg_ParseTuple(_args, "h",
-                             &numberItems))
-               return NULL;
-       ShortenDITL(_self->ob_itself,
-                   numberItems);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-#if TARGET_API_MAC_CARBON
-
-static PyObject *DlgObj_InsertDialogItem(_self, _args)
-       DialogObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSStatus _err;
-       DialogItemIndex afterItem;
-       DialogItemType itemType;
-       Handle itemHandle;
-       Rect box;
-       if (!PyArg_ParseTuple(_args, "hhO&O&",
-                             &afterItem,
-                             &itemType,
-                             ResObj_Convert, &itemHandle,
-                             PyMac_GetRect, &box))
-               return NULL;
-       _err = InsertDialogItem(_self->ob_itself,
-                               afterItem,
-                               itemType,
-                               itemHandle,
-                               &box);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-#endif
-
-#if TARGET_API_MAC_CARBON
-
-static PyObject *DlgObj_RemoveDialogItems(_self, _args)
-       DialogObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSStatus _err;
-       DialogItemIndex itemNo;
-       DialogItemIndex amountToRemove;
-       Boolean disposeItemData;
-       if (!PyArg_ParseTuple(_args, "hhb",
-                             &itemNo,
-                             &amountToRemove,
-                             &disposeItemData))
-               return NULL;
-       _err = RemoveDialogItems(_self->ob_itself,
-                                itemNo,
-                                amountToRemove,
-                                disposeItemData);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-#endif
-
-static PyObject *DlgObj_StdFilterProc(_self, _args)
-       DialogObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Boolean _rv;
-       EventRecord event;
-       DialogItemIndex itemHit;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _rv = StdFilterProc(_self->ob_itself,
-                           &event,
-                           &itemHit);
-       _res = Py_BuildValue("bO&h",
-                            _rv,
-                            PyMac_BuildEventRecord, &event,
-                            itemHit);
-       return _res;
-}
-
-static PyObject *DlgObj_SetDialogDefaultItem(_self, _args)
-       DialogObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       DialogItemIndex newItem;
-       if (!PyArg_ParseTuple(_args, "h",
-                             &newItem))
-               return NULL;
-       _err = SetDialogDefaultItem(_self->ob_itself,
-                                   newItem);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *DlgObj_SetDialogCancelItem(_self, _args)
-       DialogObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       DialogItemIndex newItem;
-       if (!PyArg_ParseTuple(_args, "h",
-                             &newItem))
-               return NULL;
-       _err = SetDialogCancelItem(_self->ob_itself,
-                                  newItem);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *DlgObj_SetDialogTracksCursor(_self, _args)
-       DialogObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       Boolean tracks;
-       if (!PyArg_ParseTuple(_args, "b",
-                             &tracks))
-               return NULL;
-       _err = SetDialogTracksCursor(_self->ob_itself,
-                                    tracks);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *DlgObj_AutoSizeDialog(_self, _args)
-       DialogObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _err = AutoSizeDialog(_self->ob_itself);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *DlgObj_GetDialogItemAsControl(_self, _args)
-       DialogObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       SInt16 inItemNo;
-       ControlHandle outControl;
-       if (!PyArg_ParseTuple(_args, "h",
-                             &inItemNo))
-               return NULL;
-       _err = GetDialogItemAsControl(_self->ob_itself,
-                                     inItemNo,
-                                     &outControl);
-       if (_err != noErr) return PyMac_Error(_err);
-       _res = Py_BuildValue("O&",
-                            CtlObj_New, outControl);
-       return _res;
-}
-
-static PyObject *DlgObj_MoveDialogItem(_self, _args)
-       DialogObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       SInt16 inItemNo;
-       SInt16 inHoriz;
-       SInt16 inVert;
-       if (!PyArg_ParseTuple(_args, "hhh",
-                             &inItemNo,
-                             &inHoriz,
-                             &inVert))
-               return NULL;
-       _err = MoveDialogItem(_self->ob_itself,
-                             inItemNo,
-                             inHoriz,
-                             inVert);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *DlgObj_SizeDialogItem(_self, _args)
-       DialogObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       SInt16 inItemNo;
-       SInt16 inWidth;
-       SInt16 inHeight;
-       if (!PyArg_ParseTuple(_args, "hhh",
-                             &inItemNo,
-                             &inWidth,
-                             &inHeight))
-               return NULL;
-       _err = SizeDialogItem(_self->ob_itself,
-                             inItemNo,
-                             inWidth,
-                             inHeight);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *DlgObj_AppendDialogItemList(_self, _args)
-       DialogObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       SInt16 ditlID;
-       DITLMethod method;
-       if (!PyArg_ParseTuple(_args, "hh",
-                             &ditlID,
-                             &method))
-               return NULL;
-       _err = AppendDialogItemList(_self->ob_itself,
-                                   ditlID,
-                                   method);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *DlgObj_SetDialogTimeout(_self, _args)
-       DialogObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSStatus _err;
-       SInt16 inButtonToPress;
-       UInt32 inSecondsToWait;
-       if (!PyArg_ParseTuple(_args, "hl",
-                             &inButtonToPress,
-                             &inSecondsToWait))
-               return NULL;
-       _err = SetDialogTimeout(_self->ob_itself,
-                               inButtonToPress,
-                               inSecondsToWait);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *DlgObj_GetDialogTimeout(_self, _args)
-       DialogObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSStatus _err;
-       SInt16 outButtonToPress;
-       UInt32 outSecondsToWait;
-       UInt32 outSecondsRemaining;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _err = GetDialogTimeout(_self->ob_itself,
-                               &outButtonToPress,
-                               &outSecondsToWait,
-                               &outSecondsRemaining);
-       if (_err != noErr) return PyMac_Error(_err);
-       _res = Py_BuildValue("hll",
-                            outButtonToPress,
-                            outSecondsToWait,
-                            outSecondsRemaining);
-       return _res;
-}
-
-static PyObject *DlgObj_SetModalDialogEventMask(_self, _args)
-       DialogObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSStatus _err;
-       EventMask inMask;
-       if (!PyArg_ParseTuple(_args, "H",
-                             &inMask))
-               return NULL;
-       _err = SetModalDialogEventMask(_self->ob_itself,
-                                      inMask);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *DlgObj_GetModalDialogEventMask(_self, _args)
-       DialogObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSStatus _err;
-       EventMask outMask;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _err = GetModalDialogEventMask(_self->ob_itself,
-                                      &outMask);
-       if (_err != noErr) return PyMac_Error(_err);
-       _res = Py_BuildValue("H",
-                            outMask);
-       return _res;
-}
-
-static PyObject *DlgObj_GetDialogWindow(_self, _args)
-       DialogObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       WindowPtr _rv;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _rv = GetDialogWindow(_self->ob_itself);
-       _res = Py_BuildValue("O&",
-                            WinObj_New, _rv);
-       return _res;
-}
-
-static PyObject *DlgObj_GetDialogTextEditHandle(_self, _args)
-       DialogObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       TEHandle _rv;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _rv = GetDialogTextEditHandle(_self->ob_itself);
-       _res = Py_BuildValue("O&",
-                            ResObj_New, _rv);
-       return _res;
-}
-
-static PyObject *DlgObj_GetDialogDefaultItem(_self, _args)
-       DialogObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       SInt16 _rv;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _rv = GetDialogDefaultItem(_self->ob_itself);
-       _res = Py_BuildValue("h",
-                            _rv);
-       return _res;
-}
-
-static PyObject *DlgObj_GetDialogCancelItem(_self, _args)
-       DialogObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       SInt16 _rv;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _rv = GetDialogCancelItem(_self->ob_itself);
-       _res = Py_BuildValue("h",
-                            _rv);
-       return _res;
-}
-
-static PyObject *DlgObj_GetDialogKeyboardFocusItem(_self, _args)
-       DialogObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       SInt16 _rv;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _rv = GetDialogKeyboardFocusItem(_self->ob_itself);
-       _res = Py_BuildValue("h",
-                            _rv);
-       return _res;
-}
-
-static PyObject *DlgObj_SetPortDialogPort(_self, _args)
-       DialogObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       SetPortDialogPort(_self->ob_itself);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *DlgObj_GetDialogPort(_self, _args)
-       DialogObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       CGrafPtr _rv;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _rv = GetDialogPort(_self->ob_itself);
-       _res = Py_BuildValue("O&",
-                            GrafObj_New, _rv);
-       return _res;
-}
-
-#if !TARGET_API_MAC_CARBON
-
-static PyObject *DlgObj_SetGrafPortOfDialog(_self, _args)
-       DialogObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       SetGrafPortOfDialog(_self->ob_itself);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-#endif
-
-static PyMethodDef DlgObj_methods[] = {
-       {"DrawDialog", (PyCFunction)DlgObj_DrawDialog, 1,
-        "() -> None"},
-       {"UpdateDialog", (PyCFunction)DlgObj_UpdateDialog, 1,
-        "(RgnHandle updateRgn) -> None"},
-       {"HideDialogItem", (PyCFunction)DlgObj_HideDialogItem, 1,
-        "(DialogItemIndex itemNo) -> None"},
-       {"ShowDialogItem", (PyCFunction)DlgObj_ShowDialogItem, 1,
-        "(DialogItemIndex itemNo) -> None"},
-       {"FindDialogItem", (PyCFunction)DlgObj_FindDialogItem, 1,
-        "(Point thePt) -> (DialogItemIndexZeroBased _rv)"},
-       {"DialogCut", (PyCFunction)DlgObj_DialogCut, 1,
-        "() -> None"},
-       {"DialogPaste", (PyCFunction)DlgObj_DialogPaste, 1,
-        "() -> None"},
-       {"DialogCopy", (PyCFunction)DlgObj_DialogCopy, 1,
-        "() -> None"},
-       {"DialogDelete", (PyCFunction)DlgObj_DialogDelete, 1,
-        "() -> None"},
-       {"GetDialogItem", (PyCFunction)DlgObj_GetDialogItem, 1,
-        "(DialogItemIndex itemNo) -> (DialogItemType itemType, Handle item, Rect box)"},
-       {"SetDialogItem", (PyCFunction)DlgObj_SetDialogItem, 1,
-        "(DialogItemIndex itemNo, DialogItemType itemType, Handle item, Rect box) -> None"},
-       {"SelectDialogItemText", (PyCFunction)DlgObj_SelectDialogItemText, 1,
-        "(DialogItemIndex itemNo, SInt16 strtSel, SInt16 endSel) -> None"},
-       {"AppendDITL", (PyCFunction)DlgObj_AppendDITL, 1,
-        "(Handle theHandle, DITLMethod method) -> None"},
-       {"CountDITL", (PyCFunction)DlgObj_CountDITL, 1,
-        "() -> (DialogItemIndex _rv)"},
-       {"ShortenDITL", (PyCFunction)DlgObj_ShortenDITL, 1,
-        "(DialogItemIndex numberItems) -> None"},
-
-#if TARGET_API_MAC_CARBON
-       {"InsertDialogItem", (PyCFunction)DlgObj_InsertDialogItem, 1,
-        "(DialogItemIndex afterItem, DialogItemType itemType, Handle itemHandle, Rect box) -> None"},
-#endif
-
-#if TARGET_API_MAC_CARBON
-       {"RemoveDialogItems", (PyCFunction)DlgObj_RemoveDialogItems, 1,
-        "(DialogItemIndex itemNo, DialogItemIndex amountToRemove, Boolean disposeItemData) -> None"},
-#endif
-       {"StdFilterProc", (PyCFunction)DlgObj_StdFilterProc, 1,
-        "() -> (Boolean _rv, EventRecord event, DialogItemIndex itemHit)"},
-       {"SetDialogDefaultItem", (PyCFunction)DlgObj_SetDialogDefaultItem, 1,
-        "(DialogItemIndex newItem) -> None"},
-       {"SetDialogCancelItem", (PyCFunction)DlgObj_SetDialogCancelItem, 1,
-        "(DialogItemIndex newItem) -> None"},
-       {"SetDialogTracksCursor", (PyCFunction)DlgObj_SetDialogTracksCursor, 1,
-        "(Boolean tracks) -> None"},
-       {"AutoSizeDialog", (PyCFunction)DlgObj_AutoSizeDialog, 1,
-        "() -> None"},
-       {"GetDialogItemAsControl", (PyCFunction)DlgObj_GetDialogItemAsControl, 1,
-        "(SInt16 inItemNo) -> (ControlHandle outControl)"},
-       {"MoveDialogItem", (PyCFunction)DlgObj_MoveDialogItem, 1,
-        "(SInt16 inItemNo, SInt16 inHoriz, SInt16 inVert) -> None"},
-       {"SizeDialogItem", (PyCFunction)DlgObj_SizeDialogItem, 1,
-        "(SInt16 inItemNo, SInt16 inWidth, SInt16 inHeight) -> None"},
-       {"AppendDialogItemList", (PyCFunction)DlgObj_AppendDialogItemList, 1,
-        "(SInt16 ditlID, DITLMethod method) -> None"},
-       {"SetDialogTimeout", (PyCFunction)DlgObj_SetDialogTimeout, 1,
-        "(SInt16 inButtonToPress, UInt32 inSecondsToWait) -> None"},
-       {"GetDialogTimeout", (PyCFunction)DlgObj_GetDialogTimeout, 1,
-        "() -> (SInt16 outButtonToPress, UInt32 outSecondsToWait, UInt32 outSecondsRemaining)"},
-       {"SetModalDialogEventMask", (PyCFunction)DlgObj_SetModalDialogEventMask, 1,
-        "(EventMask inMask) -> None"},
-       {"GetModalDialogEventMask", (PyCFunction)DlgObj_GetModalDialogEventMask, 1,
-        "() -> (EventMask outMask)"},
-       {"GetDialogWindow", (PyCFunction)DlgObj_GetDialogWindow, 1,
-        "() -> (WindowPtr _rv)"},
-       {"GetDialogTextEditHandle", (PyCFunction)DlgObj_GetDialogTextEditHandle, 1,
-        "() -> (TEHandle _rv)"},
-       {"GetDialogDefaultItem", (PyCFunction)DlgObj_GetDialogDefaultItem, 1,
-        "() -> (SInt16 _rv)"},
-       {"GetDialogCancelItem", (PyCFunction)DlgObj_GetDialogCancelItem, 1,
-        "() -> (SInt16 _rv)"},
-       {"GetDialogKeyboardFocusItem", (PyCFunction)DlgObj_GetDialogKeyboardFocusItem, 1,
-        "() -> (SInt16 _rv)"},
-       {"SetPortDialogPort", (PyCFunction)DlgObj_SetPortDialogPort, 1,
-        "() -> None"},
-       {"GetDialogPort", (PyCFunction)DlgObj_GetDialogPort, 1,
-        "() -> (CGrafPtr _rv)"},
-
-#if !TARGET_API_MAC_CARBON
-       {"SetGrafPortOfDialog", (PyCFunction)DlgObj_SetGrafPortOfDialog, 1,
-        "() -> None"},
-#endif
-       {NULL, NULL, 0}
-};
-
-PyMethodChain DlgObj_chain = { DlgObj_methods, NULL };
-
-static PyObject *DlgObj_getattr(self, name)
-       DialogObject *self;
-       char *name;
-{
-       return Py_FindMethodInChain(&DlgObj_chain, (PyObject *)self, name);
-}
-
-#define DlgObj_setattr NULL
-
-static int DlgObj_compare(self, other)
-       DialogObject *self, *other;
-{
-       if ( self->ob_itself > other->ob_itself ) return 1;
-       if ( self->ob_itself < other->ob_itself ) return -1;
-       return 0;
-}
-
-#define DlgObj_repr NULL
-
-static int DlgObj_hash(self)
-       DialogObject *self;
-{
-       return (int)self->ob_itself;
-}
-
-PyTypeObject Dialog_Type = {
-       PyObject_HEAD_INIT(&PyType_Type)
-       0, /*ob_size*/
-       "Dialog", /*tp_name*/
-       sizeof(DialogObject), /*tp_basicsize*/
-       0, /*tp_itemsize*/
-       /* methods */
-       (destructor) DlgObj_dealloc, /*tp_dealloc*/
-       0, /*tp_print*/
-       (getattrfunc) DlgObj_getattr, /*tp_getattr*/
-       (setattrfunc) DlgObj_setattr, /*tp_setattr*/
-       (cmpfunc) DlgObj_compare, /*tp_compare*/
-       (reprfunc) DlgObj_repr, /*tp_repr*/
-       (PyNumberMethods *)0, /* tp_as_number */
-       (PySequenceMethods *)0, /* tp_as_sequence */
-       (PyMappingMethods *)0, /* tp_as_mapping */
-       (hashfunc) DlgObj_hash, /*tp_hash*/
-};
-
-/* --------------------- End object type Dialog --------------------- */
-
-
-static PyObject *Dlg_NewDialog(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       DialogPtr _rv;
-       Rect boundsRect;
-       Str255 title;
-       Boolean visible;
-       SInt16 procID;
-       WindowPtr behind;
-       Boolean goAwayFlag;
-       SInt32 refCon;
-       Handle items;
-       if (!PyArg_ParseTuple(_args, "O&O&bhO&blO&",
-                             PyMac_GetRect, &boundsRect,
-                             PyMac_GetStr255, title,
-                             &visible,
-                             &procID,
-                             WinObj_Convert, &behind,
-                             &goAwayFlag,
-                             &refCon,
-                             ResObj_Convert, &items))
-               return NULL;
-       _rv = NewDialog((void *)0,
-                       &boundsRect,
-                       title,
-                       visible,
-                       procID,
-                       behind,
-                       goAwayFlag,
-                       refCon,
-                       items);
-       _res = Py_BuildValue("O&",
-                            DlgObj_New, _rv);
-       return _res;
-}
-
-static PyObject *Dlg_GetNewDialog(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       DialogPtr _rv;
-       SInt16 dialogID;
-       WindowPtr behind;
-       if (!PyArg_ParseTuple(_args, "hO&",
-                             &dialogID,
-                             WinObj_Convert, &behind))
-               return NULL;
-       _rv = GetNewDialog(dialogID,
-                          (void *)0,
-                          behind);
-       _res = Py_BuildValue("O&",
-                            DlgObj_New, _rv);
-       return _res;
-}
-
-static PyObject *Dlg_NewColorDialog(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       DialogPtr _rv;
-       Rect boundsRect;
-       Str255 title;
-       Boolean visible;
-       SInt16 procID;
-       WindowPtr behind;
-       Boolean goAwayFlag;
-       SInt32 refCon;
-       Handle items;
-       if (!PyArg_ParseTuple(_args, "O&O&bhO&blO&",
-                             PyMac_GetRect, &boundsRect,
-                             PyMac_GetStr255, title,
-                             &visible,
-                             &procID,
-                             WinObj_Convert, &behind,
-                             &goAwayFlag,
-                             &refCon,
-                             ResObj_Convert, &items))
-               return NULL;
-       _rv = NewColorDialog((void *)0,
-                            &boundsRect,
-                            title,
-                            visible,
-                            procID,
-                            behind,
-                            goAwayFlag,
-                            refCon,
-                            items);
-       _res = Py_BuildValue("O&",
-                            DlgObj_New, _rv);
-       return _res;
-}
-
-static PyObject *Dlg_ModalDialog(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       PyObject* modalFilter;
-       DialogItemIndex itemHit;
-       if (!PyArg_ParseTuple(_args, "O",
-                             &modalFilter))
-               return NULL;
-       ModalDialog(Dlg_PassFilterProc(modalFilter),
-                   &itemHit);
-       _res = Py_BuildValue("h",
-                            itemHit);
-       return _res;
-}
-
-static PyObject *Dlg_IsDialogEvent(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Boolean _rv;
-       EventRecord theEvent;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             PyMac_GetEventRecord, &theEvent))
-               return NULL;
-       _rv = IsDialogEvent(&theEvent);
-       _res = Py_BuildValue("b",
-                            _rv);
-       return _res;
-}
-
-static PyObject *Dlg_DialogSelect(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Boolean _rv;
-       EventRecord theEvent;
-       DialogPtr theDialog;
-       DialogItemIndex itemHit;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             PyMac_GetEventRecord, &theEvent))
-               return NULL;
-       _rv = DialogSelect(&theEvent,
-                          &theDialog,
-                          &itemHit);
-       _res = Py_BuildValue("bO&h",
-                            _rv,
-                            DlgObj_WhichDialog, theDialog,
-                            itemHit);
-       return _res;
-}
-
-static PyObject *Dlg_Alert(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       DialogItemIndex _rv;
-       SInt16 alertID;
-       PyObject* modalFilter;
-       if (!PyArg_ParseTuple(_args, "hO",
-                             &alertID,
-                             &modalFilter))
-               return NULL;
-       _rv = Alert(alertID,
-                   Dlg_PassFilterProc(modalFilter));
-       _res = Py_BuildValue("h",
-                            _rv);
-       return _res;
-}
-
-static PyObject *Dlg_StopAlert(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       DialogItemIndex _rv;
-       SInt16 alertID;
-       PyObject* modalFilter;
-       if (!PyArg_ParseTuple(_args, "hO",
-                             &alertID,
-                             &modalFilter))
-               return NULL;
-       _rv = StopAlert(alertID,
-                       Dlg_PassFilterProc(modalFilter));
-       _res = Py_BuildValue("h",
-                            _rv);
-       return _res;
-}
-
-static PyObject *Dlg_NoteAlert(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       DialogItemIndex _rv;
-       SInt16 alertID;
-       PyObject* modalFilter;
-       if (!PyArg_ParseTuple(_args, "hO",
-                             &alertID,
-                             &modalFilter))
-               return NULL;
-       _rv = NoteAlert(alertID,
-                       Dlg_PassFilterProc(modalFilter));
-       _res = Py_BuildValue("h",
-                            _rv);
-       return _res;
-}
-
-static PyObject *Dlg_CautionAlert(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       DialogItemIndex _rv;
-       SInt16 alertID;
-       PyObject* modalFilter;
-       if (!PyArg_ParseTuple(_args, "hO",
-                             &alertID,
-                             &modalFilter))
-               return NULL;
-       _rv = CautionAlert(alertID,
-                          Dlg_PassFilterProc(modalFilter));
-       _res = Py_BuildValue("h",
-                            _rv);
-       return _res;
-}
-
-static PyObject *Dlg_ParamText(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Str255 param0;
-       Str255 param1;
-       Str255 param2;
-       Str255 param3;
-       if (!PyArg_ParseTuple(_args, "O&O&O&O&",
-                             PyMac_GetStr255, param0,
-                             PyMac_GetStr255, param1,
-                             PyMac_GetStr255, param2,
-                             PyMac_GetStr255, param3))
-               return NULL;
-       ParamText(param0,
-                 param1,
-                 param2,
-                 param3);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *Dlg_GetDialogItemText(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Handle item;
-       Str255 text;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             ResObj_Convert, &item))
-               return NULL;
-       GetDialogItemText(item,
-                         text);
-       _res = Py_BuildValue("O&",
-                            PyMac_BuildStr255, text);
-       return _res;
-}
-
-static PyObject *Dlg_SetDialogItemText(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Handle item;
-       Str255 text;
-       if (!PyArg_ParseTuple(_args, "O&O&",
-                             ResObj_Convert, &item,
-                             PyMac_GetStr255, text))
-               return NULL;
-       SetDialogItemText(item,
-                         text);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *Dlg_GetAlertStage(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       SInt16 _rv;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _rv = GetAlertStage();
-       _res = Py_BuildValue("h",
-                            _rv);
-       return _res;
-}
-
-static PyObject *Dlg_SetDialogFont(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       SInt16 fontNum;
-       if (!PyArg_ParseTuple(_args, "h",
-                             &fontNum))
-               return NULL;
-       SetDialogFont(fontNum);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *Dlg_ResetAlertStage(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       ResetAlertStage();
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-#if TARGET_API_MAC_CARBON
-
-static PyObject *Dlg_GetParamText(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Str255 param0;
-       Str255 param1;
-       Str255 param2;
-       Str255 param3;
-       if (!PyArg_ParseTuple(_args, "O&O&O&O&",
-                             PyMac_GetStr255, param0,
-                             PyMac_GetStr255, param1,
-                             PyMac_GetStr255, param2,
-                             PyMac_GetStr255, param3))
-               return NULL;
-       GetParamText(param0,
-                    param1,
-                    param2,
-                    param3);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-#endif
-
-static PyObject *Dlg_NewFeaturesDialog(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       DialogPtr _rv;
-       Rect inBoundsRect;
-       Str255 inTitle;
-       Boolean inIsVisible;
-       SInt16 inProcID;
-       WindowPtr inBehind;
-       Boolean inGoAwayFlag;
-       SInt32 inRefCon;
-       Handle inItemListHandle;
-       UInt32 inFlags;
-       if (!PyArg_ParseTuple(_args, "O&O&bhO&blO&l",
-                             PyMac_GetRect, &inBoundsRect,
-                             PyMac_GetStr255, inTitle,
-                             &inIsVisible,
-                             &inProcID,
-                             WinObj_Convert, &inBehind,
-                             &inGoAwayFlag,
-                             &inRefCon,
-                             ResObj_Convert, &inItemListHandle,
-                             &inFlags))
-               return NULL;
-       _rv = NewFeaturesDialog((void *)0,
-                               &inBoundsRect,
-                               inTitle,
-                               inIsVisible,
-                               inProcID,
-                               inBehind,
-                               inGoAwayFlag,
-                               inRefCon,
-                               inItemListHandle,
-                               inFlags);
-       _res = Py_BuildValue("O&",
-                            DlgObj_New, _rv);
-       return _res;
-}
-
-static PyObject *Dlg_GetDialogFromWindow(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       DialogPtr _rv;
-       WindowPtr window;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             WinObj_Convert, &window))
-               return NULL;
-       _rv = GetDialogFromWindow(window);
-       _res = Py_BuildValue("O&",
-                            DlgObj_New, _rv);
-       return _res;
-}
-
-static PyObject *Dlg_SetUserItemHandler(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-
-               PyObject *new = NULL;
-               
-               
-               if (!PyArg_ParseTuple(_args, "|O", &new))
-                       return NULL;
-
-               if (Dlg_UserItemProc_callback && new && new != Py_None) {
-                       PyErr_SetString(Dlg_Error, "Another UserItemProc is already installed");
-                       return NULL;
-               }
-               
-               if (new == NULL || new == Py_None) {
-                       new = NULL;
-                       _res = Py_None;
-                       Py_INCREF(Py_None);
-               } else {
-                       Py_INCREF(new);
-                       _res = Py_BuildValue("O&", ResObj_New, (Handle)NewUserItemProc(Dlg_UnivUserItemProc));
-               }
-               
-               Dlg_UserItemProc_callback = new;
-               return _res;
-
-}
-
-static PyMethodDef Dlg_methods[] = {
-       {"NewDialog", (PyCFunction)Dlg_NewDialog, 1,
-        "(Rect boundsRect, Str255 title, Boolean visible, SInt16 procID, WindowPtr behind, Boolean goAwayFlag, SInt32 refCon, Handle items) -> (DialogPtr _rv)"},
-       {"GetNewDialog", (PyCFunction)Dlg_GetNewDialog, 1,
-        "(SInt16 dialogID, WindowPtr behind) -> (DialogPtr _rv)"},
-       {"NewColorDialog", (PyCFunction)Dlg_NewColorDialog, 1,
-        "(Rect boundsRect, Str255 title, Boolean visible, SInt16 procID, WindowPtr behind, Boolean goAwayFlag, SInt32 refCon, Handle items) -> (DialogPtr _rv)"},
-       {"ModalDialog", (PyCFunction)Dlg_ModalDialog, 1,
-        "(PyObject* modalFilter) -> (DialogItemIndex itemHit)"},
-       {"IsDialogEvent", (PyCFunction)Dlg_IsDialogEvent, 1,
-        "(EventRecord theEvent) -> (Boolean _rv)"},
-       {"DialogSelect", (PyCFunction)Dlg_DialogSelect, 1,
-        "(EventRecord theEvent) -> (Boolean _rv, DialogPtr theDialog, DialogItemIndex itemHit)"},
-       {"Alert", (PyCFunction)Dlg_Alert, 1,
-        "(SInt16 alertID, PyObject* modalFilter) -> (DialogItemIndex _rv)"},
-       {"StopAlert", (PyCFunction)Dlg_StopAlert, 1,
-        "(SInt16 alertID, PyObject* modalFilter) -> (DialogItemIndex _rv)"},
-       {"NoteAlert", (PyCFunction)Dlg_NoteAlert, 1,
-        "(SInt16 alertID, PyObject* modalFilter) -> (DialogItemIndex _rv)"},
-       {"CautionAlert", (PyCFunction)Dlg_CautionAlert, 1,
-        "(SInt16 alertID, PyObject* modalFilter) -> (DialogItemIndex _rv)"},
-       {"ParamText", (PyCFunction)Dlg_ParamText, 1,
-        "(Str255 param0, Str255 param1, Str255 param2, Str255 param3) -> None"},
-       {"GetDialogItemText", (PyCFunction)Dlg_GetDialogItemText, 1,
-        "(Handle item) -> (Str255 text)"},
-       {"SetDialogItemText", (PyCFunction)Dlg_SetDialogItemText, 1,
-        "(Handle item, Str255 text) -> None"},
-       {"GetAlertStage", (PyCFunction)Dlg_GetAlertStage, 1,
-        "() -> (SInt16 _rv)"},
-       {"SetDialogFont", (PyCFunction)Dlg_SetDialogFont, 1,
-        "(SInt16 fontNum) -> None"},
-       {"ResetAlertStage", (PyCFunction)Dlg_ResetAlertStage, 1,
-        "() -> None"},
-
-#if TARGET_API_MAC_CARBON
-       {"GetParamText", (PyCFunction)Dlg_GetParamText, 1,
-        "(Str255 param0, Str255 param1, Str255 param2, Str255 param3) -> None"},
-#endif
-       {"NewFeaturesDialog", (PyCFunction)Dlg_NewFeaturesDialog, 1,
-        "(Rect inBoundsRect, Str255 inTitle, Boolean inIsVisible, SInt16 inProcID, WindowPtr inBehind, Boolean inGoAwayFlag, SInt32 inRefCon, Handle inItemListHandle, UInt32 inFlags) -> (DialogPtr _rv)"},
-       {"GetDialogFromWindow", (PyCFunction)Dlg_GetDialogFromWindow, 1,
-        "(WindowPtr window) -> (DialogPtr _rv)"},
-       {"SetUserItemHandler", (PyCFunction)Dlg_SetUserItemHandler, 1,
-        NULL},
-       {NULL, NULL, 0}
-};
-
-
-
-/* Return the WindowPtr corresponding to a DialogObject */
-
-WindowPtr
-DlgObj_ConvertToWindow(self)
-       PyObject *self;
-{
-       if ( DlgObj_Check(self) )
-               return GetDialogWindow(((DialogObject *)self)->ob_itself);
-       return NULL;
-}
-/* Return the object corresponding to the dialog, or None */
-
-PyObject *
-DlgObj_WhichDialog(d)
-       DialogPtr d;
-{
-       PyObject *it;
-       
-       if (d == NULL) {
-               it = Py_None;
-               Py_INCREF(it);
-       } else {
-               WindowPtr w = GetDialogWindow(d);
-               
-               it = (PyObject *) GetWRefCon(w);
-               if (it == NULL || ((DialogObject *)it)->ob_itself != d || !DlgObj_Check(it)) {
-#if 0
-                       /* Should do this, but we don't have an ob_freeit for dialogs yet. */
-                       it = WinObj_New(w);
-                       ((WindowObject *)it)->ob_freeit = NULL;
-#else
-                       it = Py_None;
-                       Py_INCREF(it);
-#endif
-               } else {
-                       Py_INCREF(it);
-               }
-       }
-       return it;
-}
-
-
-void initDlg()
-{
-       PyObject *m;
-       PyObject *d;
-
-
-
-
-       m = Py_InitModule("Dlg", Dlg_methods);
-       d = PyModule_GetDict(m);
-       Dlg_Error = PyMac_GetOSErrException();
-       if (Dlg_Error == NULL ||
-           PyDict_SetItemString(d, "Error", Dlg_Error) != 0)
-               return;
-       Dialog_Type.ob_type = &PyType_Type;
-       Py_INCREF(&Dialog_Type);
-       if (PyDict_SetItemString(d, "DialogType", (PyObject *)&Dialog_Type) != 0)
-               Py_FatalError("can't initialize DialogType");
-}
-
-/* ========================= End module Dlg ========================= */
-
diff --git a/Mac/Modules/dlg/dlgsupport.py b/Mac/Modules/dlg/dlgsupport.py
deleted file mode 100644 (file)
index 594b7a8..0000000
+++ /dev/null
@@ -1,291 +0,0 @@
-# This script generates the Dialogs interface for Python.
-# It uses the "bgen" package to generate C code.
-# It execs the file dlggen.py which contain the function definitions
-# (dlggen.py was generated by dlgscan.py, scanning the <Dialogs.h> header file).
-
-from macsupport import *
-
-# Create the type objects
-
-DialogPtr = OpaqueByValueType("DialogPtr", "DlgObj")
-DialogRef = DialogPtr
-
-# An OptHandle is either a handle or None (in case NULL is passed in).
-# This is needed for GetDialogItem().
-OptHandle = OpaqueByValueType("Handle", "OptResObj")
-
-ModalFilterProcPtr = InputOnlyType("PyObject*", "O")
-ModalFilterProcPtr.passInput = lambda name: "Dlg_PassFilterProc(%s)" % name
-ModalFilterUPP = ModalFilterProcPtr
-
-RgnHandle = OpaqueByValueType("RgnHandle", "ResObj")
-TEHandle = OpaqueByValueType("TEHandle", "ResObj")
-CGrafPtr = OpaqueByValueType("CGrafPtr", "GrafObj")
-
-DITLMethod = Type("DITLMethod", "h")
-DialogItemIndex = Type("DialogItemIndex", "h")
-DialogItemType = Type("DialogItemType", "h")
-DialogItemIndexZeroBased = Type("DialogItemIndexZeroBased", "h")
-AlertType = Type("AlertType", "h")
-StringPtr = Str255
-EventMask = Type("EventMask", "H")
-
-includestuff = includestuff + """
-#include <Dialogs.h>
-
-#if !ACCESSOR_CALLS_ARE_FUNCTIONS
-#define GetDialogTextEditHandle(dlg) (((DialogPeek)(dlg))->textH)
-#define SetPortDialogPort(dlg) SetPort(dlg)
-#define GetDialogPort(dlg) ((CGrafPtr)(dlg))
-#define GetDialogFromWindow(win) ((DialogRef)(win))
-#endif
-
-/* XXX Shouldn't this be a stack? */
-static PyObject *Dlg_FilterProc_callback = NULL;
-
-static pascal Boolean Dlg_UnivFilterProc(DialogPtr dialog,
-                                         EventRecord *event,
-                                         short *itemHit)
-{
-       Boolean rv;
-       PyObject *args, *res;
-       PyObject *callback = Dlg_FilterProc_callback;
-       if (callback == NULL)
-               return 0; /* Default behavior */
-       Dlg_FilterProc_callback = NULL; /* We'll restore it when call successful */
-       args = Py_BuildValue("O&O&", DlgObj_WhichDialog, dialog, PyMac_BuildEventRecord, event);
-       if (args == NULL)
-               res = NULL;
-       else {
-               res = PyEval_CallObject(callback, args);
-               Py_DECREF(args);
-       }
-       if (res == NULL) {
-               PySys_WriteStderr("Exception in Dialog Filter\\n");
-               PyErr_Print();
-               *itemHit = -1; /* Fake return item */
-               return 1; /* We handled it */
-       }
-       else {
-               Dlg_FilterProc_callback = callback;
-               if (PyInt_Check(res)) {
-                       *itemHit = PyInt_AsLong(res);
-                       rv = 1;
-               }
-               else
-                       rv = PyObject_IsTrue(res);
-       }
-       Py_DECREF(res);
-       return rv;
-}
-
-static ModalFilterUPP
-Dlg_PassFilterProc(PyObject *callback)
-{
-       PyObject *tmp = Dlg_FilterProc_callback;
-       static ModalFilterUPP UnivFilterUpp = NULL;
-       
-       Dlg_FilterProc_callback = NULL;
-       if (callback == Py_None) {
-               Py_XDECREF(tmp);
-               return NULL;
-       }
-       Py_INCREF(callback);
-       Dlg_FilterProc_callback = callback;
-       Py_XDECREF(tmp);
-       if ( UnivFilterUpp == NULL )
-               UnivFilterUpp = NewModalFilterUPP(&Dlg_UnivFilterProc);
-       return UnivFilterUpp;
-}
-
-static PyObject *Dlg_UserItemProc_callback = NULL;
-
-static pascal void Dlg_UnivUserItemProc(DialogPtr dialog,
-                                         short item)
-{
-       PyObject *args, *res;
-
-       if (Dlg_UserItemProc_callback == NULL)
-               return; /* Default behavior */
-       Dlg_FilterProc_callback = NULL; /* We'll restore it when call successful */
-       args = Py_BuildValue("O&h", DlgObj_WhichDialog, dialog, item);
-       if (args == NULL)
-               res = NULL;
-       else {
-               res = PyEval_CallObject(Dlg_UserItemProc_callback, args);
-               Py_DECREF(args);
-       }
-       if (res == NULL) {
-               PySys_WriteStderr("Exception in Dialog UserItem proc\\n");
-               PyErr_Print();
-       }
-       Py_XDECREF(res);
-       return;
-}
-
-#if 0
-/*
-** Treating DialogObjects as WindowObjects is (I think) illegal under Carbon.
-** However, as they are still identical under MacOS9 Carbon this is a problem, even
-** if we neatly call GetDialogWindow() at the right places: there's one refcon field
-** and it points to the DialogObject, so WinObj_WhichWindow will smartly return the
-** dialog object, and therefore we still don't have a WindowObject.
-** I'll leave the chaining code in place for now, with this comment to warn the
-** unsuspecting victims (i.e. me, probably, in a few weeks:-)
-*/
-extern PyMethodChain WinObj_chain;
-#endif
-"""
-
-finalstuff = finalstuff + """
-/* Return the WindowPtr corresponding to a DialogObject */
-
-WindowPtr
-DlgObj_ConvertToWindow(self)
-       PyObject *self;
-{
-       if ( DlgObj_Check(self) )
-               return GetDialogWindow(((DialogObject *)self)->ob_itself);
-       return NULL;
-}
-/* Return the object corresponding to the dialog, or None */
-
-PyObject *
-DlgObj_WhichDialog(d)
-       DialogPtr d;
-{
-       PyObject *it;
-       
-       if (d == NULL) {
-               it = Py_None;
-               Py_INCREF(it);
-       } else {
-               WindowPtr w = GetDialogWindow(d);
-               
-               it = (PyObject *) GetWRefCon(w);
-               if (it == NULL || ((DialogObject *)it)->ob_itself != d || !DlgObj_Check(it)) {
-#if 0
-                       /* Should do this, but we don't have an ob_freeit for dialogs yet. */
-                       it = WinObj_New(w);
-                       ((WindowObject *)it)->ob_freeit = NULL;
-#else
-                       it = Py_None;
-                       Py_INCREF(it);
-#endif
-               } else {
-                       Py_INCREF(it);
-               }
-       }
-       return it;
-}
-"""
-
-
-# Define a class which specializes our object definition
-class MyObjectDefinition(GlobalObjectDefinition):
-       def __init__(self, name, prefix = None, itselftype = None):
-               GlobalObjectDefinition.__init__(self, name, prefix, itselftype)
-## This won't work in Carbon, so we disable it for all MacPythons:-(
-## But see the comment above:-((
-##             self.basechain = "&WinObj_chain"
-
-       def outputInitStructMembers(self):
-               GlobalObjectDefinition.outputInitStructMembers(self)
-               Output("SetWRefCon(GetDialogWindow(itself), (long)it);")
-
-       def outputCheckNewArg(self):
-               Output("if (itself == NULL) return Py_None;")
-
-       def outputCheckConvertArg(self):
-               Output("if (v == Py_None) { *p_itself = NULL; return 1; }")
-               Output("if (PyInt_Check(v)) { *p_itself = (DialogPtr)PyInt_AsLong(v);")
-               Output("                      return 1; }")
-
-       def outputCompare(self):
-               Output()
-               Output("static int %s_compare(self, other)", self.prefix)
-               IndentLevel()
-               Output("%s *self, *other;", self.objecttype)
-               DedentLevel()
-               OutLbrace()
-               Output("if ( self->ob_itself > other->ob_itself ) return 1;")
-               Output("if ( self->ob_itself < other->ob_itself ) return -1;")
-               Output("return 0;")
-               OutRbrace()
-               
-       def outputHash(self):
-               Output()
-               Output("static int %s_hash(self)", self.prefix)
-               IndentLevel()
-               Output("%s *self;", self.objecttype)
-               DedentLevel()
-               OutLbrace()
-               Output("return (int)self->ob_itself;")
-               OutRbrace()
-               
-       def outputFreeIt(self, itselfname):
-               Output("DisposeDialog(%s);", itselfname)
-
-# Create the generator groups and link them
-module = MacModule('Dlg', 'Dlg', includestuff, finalstuff, initstuff)
-object = MyObjectDefinition('Dialog', 'DlgObj', 'DialogPtr')
-module.addobject(object)
-
-# Create the generator classes used to populate the lists
-Function = OSErrFunctionGenerator
-Method = OSErrMethodGenerator
-
-# Create and populate the lists
-functions = []
-methods = []
-execfile("dlggen.py")
-
-# add the populated lists to the generator groups
-for f in functions: module.add(f)
-for f in methods: object.add(f)
-
-# Some methods that are currently macro's in C, but will be real routines
-# in MacOS 8.
-
-##f = Method(ExistingWindowPtr, 'GetDialogWindow', (DialogRef, 'dialog', InMode))
-##object.add(f)
-##f = Method(SInt16, 'GetDialogDefaultItem', (DialogRef, 'dialog', InMode))
-##object.add(f)
-##f = Method(SInt16, 'GetDialogCancelItem', (DialogRef, 'dialog', InMode))
-##object.add(f)
-##f = Method(SInt16, 'GetDialogKeyboardFocusItem', (DialogRef, 'dialog', InMode))
-##object.add(f)
-f = Method(void, 'SetGrafPortOfDialog', (DialogRef, 'dialog', InMode), 
-       condition='#if !TARGET_API_MAC_CARBON')
-object.add(f)
-
-setuseritembody = """
-       PyObject *new = NULL;
-       
-       
-       if (!PyArg_ParseTuple(_args, "|O", &new))
-               return NULL;
-
-       if (Dlg_UserItemProc_callback && new && new != Py_None) {
-               PyErr_SetString(Dlg_Error, "Another UserItemProc is already installed");
-               return NULL;
-       }
-       
-       if (new == NULL || new == Py_None) {
-               new = NULL;
-               _res = Py_None;
-               Py_INCREF(Py_None);
-       } else {
-               Py_INCREF(new);
-               _res = Py_BuildValue("O&", ResObj_New, (Handle)NewUserItemProc(Dlg_UnivUserItemProc));
-       }
-       
-       Dlg_UserItemProc_callback = new;
-       return _res;
-"""
-f = ManualGenerator("SetUserItemHandler", setuseritembody)
-module.add(f)
-
-# generate output
-SetOutputFileName('Dlgmodule.c')
-module.generate()
diff --git a/Mac/Modules/drag/Dragmodule.c b/Mac/Modules/drag/Dragmodule.c
deleted file mode 100644 (file)
index fa6c2d9..0000000
+++ /dev/null
@@ -1,1067 +0,0 @@
-
-/* ========================== Module Drag =========================== */
-
-#include "Python.h"
-
-
-
-#include "macglue.h"
-#include "pymactoolbox.h"
-
-#include <Drag.h>
-
-/* Callback glue routines */
-DragTrackingHandlerUPP dragglue_TrackingHandlerUPP;
-DragReceiveHandlerUPP dragglue_ReceiveHandlerUPP;
-DragSendDataUPP dragglue_SendDataUPP;
-#if 0
-DragInputUPP dragglue_InputUPP;
-DragDrawingUPP dragglue_DrawingUPP;
-#endif
-
-static PyObject *Drag_Error;
-
-/* ---------------------- Object type DragObj ----------------------- */
-
-PyTypeObject DragObj_Type;
-
-#define DragObj_Check(x) ((x)->ob_type == &DragObj_Type)
-
-typedef struct DragObjObject {
-       PyObject_HEAD
-       DragRef ob_itself;
-       PyObject *sendproc;
-} DragObjObject;
-
-PyObject *DragObj_New(itself)
-       DragRef itself;
-{
-       DragObjObject *it;
-       if (itself == NULL) {
-                                               PyErr_SetString(Drag_Error,"Cannot create null Drag");
-                                               return NULL;
-                                       }
-       it = PyObject_NEW(DragObjObject, &DragObj_Type);
-       if (it == NULL) return NULL;
-       it->ob_itself = itself;
-       it->sendproc = NULL;
-       return (PyObject *)it;
-}
-DragObj_Convert(v, p_itself)
-       PyObject *v;
-       DragRef *p_itself;
-{
-       if (!DragObj_Check(v))
-       {
-               PyErr_SetString(PyExc_TypeError, "DragObj required");
-               return 0;
-       }
-       *p_itself = ((DragObjObject *)v)->ob_itself;
-       return 1;
-}
-
-static void DragObj_dealloc(self)
-       DragObjObject *self;
-{
-       Py_XDECREF(self->sendproc);
-       PyMem_DEL(self);
-}
-
-static PyObject *DragObj_DisposeDrag(_self, _args)
-       DragObjObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _err = DisposeDrag(_self->ob_itself);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *DragObj_AddDragItemFlavor(_self, _args)
-       DragObjObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       ItemReference theItemRef;
-       FlavorType theType;
-       char *dataPtr__in__;
-       long dataPtr__len__;
-       int dataPtr__in_len__;
-       FlavorFlags theFlags;
-       if (!PyArg_ParseTuple(_args, "lO&z#l",
-                             &theItemRef,
-                             PyMac_GetOSType, &theType,
-                             &dataPtr__in__, &dataPtr__in_len__,
-                             &theFlags))
-               return NULL;
-       dataPtr__len__ = dataPtr__in_len__;
-       _err = AddDragItemFlavor(_self->ob_itself,
-                                theItemRef,
-                                theType,
-                                dataPtr__in__, dataPtr__len__,
-                                theFlags);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
- dataPtr__error__: ;
-       return _res;
-}
-
-static PyObject *DragObj_SetDragItemFlavorData(_self, _args)
-       DragObjObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       ItemReference theItemRef;
-       FlavorType theType;
-       char *dataPtr__in__;
-       long dataPtr__len__;
-       int dataPtr__in_len__;
-       UInt32 dataOffset;
-       if (!PyArg_ParseTuple(_args, "lO&z#l",
-                             &theItemRef,
-                             PyMac_GetOSType, &theType,
-                             &dataPtr__in__, &dataPtr__in_len__,
-                             &dataOffset))
-               return NULL;
-       dataPtr__len__ = dataPtr__in_len__;
-       _err = SetDragItemFlavorData(_self->ob_itself,
-                                    theItemRef,
-                                    theType,
-                                    dataPtr__in__, dataPtr__len__,
-                                    dataOffset);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
- dataPtr__error__: ;
-       return _res;
-}
-
-static PyObject *DragObj_SetDragImage(_self, _args)
-       DragObjObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       PixMapHandle imagePixMap;
-       RgnHandle imageRgn;
-       Point imageOffsetPt;
-       DragImageFlags theImageFlags;
-       if (!PyArg_ParseTuple(_args, "O&O&O&l",
-                             ResObj_Convert, &imagePixMap,
-                             ResObj_Convert, &imageRgn,
-                             PyMac_GetPoint, &imageOffsetPt,
-                             &theImageFlags))
-               return NULL;
-       _err = SetDragImage(_self->ob_itself,
-                           imagePixMap,
-                           imageRgn,
-                           imageOffsetPt,
-                           theImageFlags);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *DragObj_ChangeDragBehaviors(_self, _args)
-       DragObjObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       DragBehaviors inBehaviorsToSet;
-       DragBehaviors inBehaviorsToClear;
-       if (!PyArg_ParseTuple(_args, "ll",
-                             &inBehaviorsToSet,
-                             &inBehaviorsToClear))
-               return NULL;
-       _err = ChangeDragBehaviors(_self->ob_itself,
-                                  inBehaviorsToSet,
-                                  inBehaviorsToClear);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *DragObj_TrackDrag(_self, _args)
-       DragObjObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       EventRecord theEvent;
-       RgnHandle theRegion;
-       if (!PyArg_ParseTuple(_args, "O&O&",
-                             PyMac_GetEventRecord, &theEvent,
-                             ResObj_Convert, &theRegion))
-               return NULL;
-       _err = TrackDrag(_self->ob_itself,
-                        &theEvent,
-                        theRegion);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *DragObj_CountDragItems(_self, _args)
-       DragObjObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       UInt16 numItems;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _err = CountDragItems(_self->ob_itself,
-                             &numItems);
-       if (_err != noErr) return PyMac_Error(_err);
-       _res = Py_BuildValue("H",
-                            numItems);
-       return _res;
-}
-
-static PyObject *DragObj_GetDragItemReferenceNumber(_self, _args)
-       DragObjObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       UInt16 index;
-       ItemReference theItemRef;
-       if (!PyArg_ParseTuple(_args, "H",
-                             &index))
-               return NULL;
-       _err = GetDragItemReferenceNumber(_self->ob_itself,
-                                         index,
-                                         &theItemRef);
-       if (_err != noErr) return PyMac_Error(_err);
-       _res = Py_BuildValue("l",
-                            theItemRef);
-       return _res;
-}
-
-static PyObject *DragObj_CountDragItemFlavors(_self, _args)
-       DragObjObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       ItemReference theItemRef;
-       UInt16 numFlavors;
-       if (!PyArg_ParseTuple(_args, "l",
-                             &theItemRef))
-               return NULL;
-       _err = CountDragItemFlavors(_self->ob_itself,
-                                   theItemRef,
-                                   &numFlavors);
-       if (_err != noErr) return PyMac_Error(_err);
-       _res = Py_BuildValue("H",
-                            numFlavors);
-       return _res;
-}
-
-static PyObject *DragObj_GetFlavorType(_self, _args)
-       DragObjObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       ItemReference theItemRef;
-       UInt16 index;
-       FlavorType theType;
-       if (!PyArg_ParseTuple(_args, "lH",
-                             &theItemRef,
-                             &index))
-               return NULL;
-       _err = GetFlavorType(_self->ob_itself,
-                            theItemRef,
-                            index,
-                            &theType);
-       if (_err != noErr) return PyMac_Error(_err);
-       _res = Py_BuildValue("O&",
-                            PyMac_BuildOSType, theType);
-       return _res;
-}
-
-static PyObject *DragObj_GetFlavorFlags(_self, _args)
-       DragObjObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       ItemReference theItemRef;
-       FlavorType theType;
-       FlavorFlags theFlags;
-       if (!PyArg_ParseTuple(_args, "lO&",
-                             &theItemRef,
-                             PyMac_GetOSType, &theType))
-               return NULL;
-       _err = GetFlavorFlags(_self->ob_itself,
-                             theItemRef,
-                             theType,
-                             &theFlags);
-       if (_err != noErr) return PyMac_Error(_err);
-       _res = Py_BuildValue("l",
-                            theFlags);
-       return _res;
-}
-
-static PyObject *DragObj_GetFlavorDataSize(_self, _args)
-       DragObjObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       ItemReference theItemRef;
-       FlavorType theType;
-       Size dataSize;
-       if (!PyArg_ParseTuple(_args, "lO&",
-                             &theItemRef,
-                             PyMac_GetOSType, &theType))
-               return NULL;
-       _err = GetFlavorDataSize(_self->ob_itself,
-                                theItemRef,
-                                theType,
-                                &dataSize);
-       if (_err != noErr) return PyMac_Error(_err);
-       _res = Py_BuildValue("l",
-                            dataSize);
-       return _res;
-}
-
-static PyObject *DragObj_GetFlavorData(_self, _args)
-       DragObjObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       ItemReference theItemRef;
-       FlavorType theType;
-       char *dataPtr__out__;
-       long dataPtr__len__;
-       int dataPtr__in_len__;
-       UInt32 dataOffset;
-       if (!PyArg_ParseTuple(_args, "lO&il",
-                             &theItemRef,
-                             PyMac_GetOSType, &theType,
-                             &dataPtr__in_len__,
-                             &dataOffset))
-               return NULL;
-       if ((dataPtr__out__ = malloc(dataPtr__in_len__)) == NULL)
-       {
-               PyErr_NoMemory();
-               goto dataPtr__error__;
-       }
-       dataPtr__len__ = dataPtr__in_len__;
-       _err = GetFlavorData(_self->ob_itself,
-                            theItemRef,
-                            theType,
-                            dataPtr__out__, &dataPtr__len__,
-                            dataOffset);
-       if (_err != noErr) return PyMac_Error(_err);
-       _res = Py_BuildValue("s#",
-                            dataPtr__out__, (int)dataPtr__len__);
-       free(dataPtr__out__);
- dataPtr__error__: ;
-       return _res;
-}
-
-static PyObject *DragObj_GetDragItemBounds(_self, _args)
-       DragObjObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       ItemReference theItemRef;
-       Rect itemBounds;
-       if (!PyArg_ParseTuple(_args, "l",
-                             &theItemRef))
-               return NULL;
-       _err = GetDragItemBounds(_self->ob_itself,
-                                theItemRef,
-                                &itemBounds);
-       if (_err != noErr) return PyMac_Error(_err);
-       _res = Py_BuildValue("O&",
-                            PyMac_BuildRect, &itemBounds);
-       return _res;
-}
-
-static PyObject *DragObj_SetDragItemBounds(_self, _args)
-       DragObjObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       ItemReference theItemRef;
-       Rect itemBounds;
-       if (!PyArg_ParseTuple(_args, "lO&",
-                             &theItemRef,
-                             PyMac_GetRect, &itemBounds))
-               return NULL;
-       _err = SetDragItemBounds(_self->ob_itself,
-                                theItemRef,
-                                &itemBounds);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *DragObj_GetDropLocation(_self, _args)
-       DragObjObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       AEDesc dropLocation;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _err = GetDropLocation(_self->ob_itself,
-                              &dropLocation);
-       if (_err != noErr) return PyMac_Error(_err);
-       _res = Py_BuildValue("O&",
-                            AEDesc_New, &dropLocation);
-       return _res;
-}
-
-static PyObject *DragObj_SetDropLocation(_self, _args)
-       DragObjObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       AEDesc dropLocation;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             AEDesc_Convert, &dropLocation))
-               return NULL;
-       _err = SetDropLocation(_self->ob_itself,
-                              &dropLocation);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *DragObj_GetDragAttributes(_self, _args)
-       DragObjObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       DragAttributes flags;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _err = GetDragAttributes(_self->ob_itself,
-                                &flags);
-       if (_err != noErr) return PyMac_Error(_err);
-       _res = Py_BuildValue("l",
-                            flags);
-       return _res;
-}
-
-static PyObject *DragObj_GetDragMouse(_self, _args)
-       DragObjObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       Point mouse;
-       Point globalPinnedMouse;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _err = GetDragMouse(_self->ob_itself,
-                           &mouse,
-                           &globalPinnedMouse);
-       if (_err != noErr) return PyMac_Error(_err);
-       _res = Py_BuildValue("O&O&",
-                            PyMac_BuildPoint, mouse,
-                            PyMac_BuildPoint, globalPinnedMouse);
-       return _res;
-}
-
-static PyObject *DragObj_SetDragMouse(_self, _args)
-       DragObjObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       Point globalPinnedMouse;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             PyMac_GetPoint, &globalPinnedMouse))
-               return NULL;
-       _err = SetDragMouse(_self->ob_itself,
-                           globalPinnedMouse);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *DragObj_GetDragOrigin(_self, _args)
-       DragObjObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       Point globalInitialMouse;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _err = GetDragOrigin(_self->ob_itself,
-                            &globalInitialMouse);
-       if (_err != noErr) return PyMac_Error(_err);
-       _res = Py_BuildValue("O&",
-                            PyMac_BuildPoint, globalInitialMouse);
-       return _res;
-}
-
-static PyObject *DragObj_GetDragModifiers(_self, _args)
-       DragObjObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       SInt16 modifiers;
-       SInt16 mouseDownModifiers;
-       SInt16 mouseUpModifiers;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _err = GetDragModifiers(_self->ob_itself,
-                               &modifiers,
-                               &mouseDownModifiers,
-                               &mouseUpModifiers);
-       if (_err != noErr) return PyMac_Error(_err);
-       _res = Py_BuildValue("hhh",
-                            modifiers,
-                            mouseDownModifiers,
-                            mouseUpModifiers);
-       return _res;
-}
-
-static PyObject *DragObj_ShowDragHilite(_self, _args)
-       DragObjObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       RgnHandle hiliteFrame;
-       Boolean inside;
-       if (!PyArg_ParseTuple(_args, "O&b",
-                             ResObj_Convert, &hiliteFrame,
-                             &inside))
-               return NULL;
-       _err = ShowDragHilite(_self->ob_itself,
-                             hiliteFrame,
-                             inside);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *DragObj_HideDragHilite(_self, _args)
-       DragObjObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _err = HideDragHilite(_self->ob_itself);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *DragObj_DragPreScroll(_self, _args)
-       DragObjObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       SInt16 dH;
-       SInt16 dV;
-       if (!PyArg_ParseTuple(_args, "hh",
-                             &dH,
-                             &dV))
-               return NULL;
-       _err = DragPreScroll(_self->ob_itself,
-                            dH,
-                            dV);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *DragObj_DragPostScroll(_self, _args)
-       DragObjObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _err = DragPostScroll(_self->ob_itself);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *DragObj_UpdateDragHilite(_self, _args)
-       DragObjObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       RgnHandle updateRgn;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             ResObj_Convert, &updateRgn))
-               return NULL;
-       _err = UpdateDragHilite(_self->ob_itself,
-                               updateRgn);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyMethodDef DragObj_methods[] = {
-       {"DisposeDrag", (PyCFunction)DragObj_DisposeDrag, 1,
-        "() -> None"},
-       {"AddDragItemFlavor", (PyCFunction)DragObj_AddDragItemFlavor, 1,
-        "(ItemReference theItemRef, FlavorType theType, Buffer dataPtr, FlavorFlags theFlags) -> None"},
-       {"SetDragItemFlavorData", (PyCFunction)DragObj_SetDragItemFlavorData, 1,
-        "(ItemReference theItemRef, FlavorType theType, Buffer dataPtr, UInt32 dataOffset) -> None"},
-       {"SetDragImage", (PyCFunction)DragObj_SetDragImage, 1,
-        "(PixMapHandle imagePixMap, RgnHandle imageRgn, Point imageOffsetPt, DragImageFlags theImageFlags) -> None"},
-       {"ChangeDragBehaviors", (PyCFunction)DragObj_ChangeDragBehaviors, 1,
-        "(DragBehaviors inBehaviorsToSet, DragBehaviors inBehaviorsToClear) -> None"},
-       {"TrackDrag", (PyCFunction)DragObj_TrackDrag, 1,
-        "(EventRecord theEvent, RgnHandle theRegion) -> None"},
-       {"CountDragItems", (PyCFunction)DragObj_CountDragItems, 1,
-        "() -> (UInt16 numItems)"},
-       {"GetDragItemReferenceNumber", (PyCFunction)DragObj_GetDragItemReferenceNumber, 1,
-        "(UInt16 index) -> (ItemReference theItemRef)"},
-       {"CountDragItemFlavors", (PyCFunction)DragObj_CountDragItemFlavors, 1,
-        "(ItemReference theItemRef) -> (UInt16 numFlavors)"},
-       {"GetFlavorType", (PyCFunction)DragObj_GetFlavorType, 1,
-        "(ItemReference theItemRef, UInt16 index) -> (FlavorType theType)"},
-       {"GetFlavorFlags", (PyCFunction)DragObj_GetFlavorFlags, 1,
-        "(ItemReference theItemRef, FlavorType theType) -> (FlavorFlags theFlags)"},
-       {"GetFlavorDataSize", (PyCFunction)DragObj_GetFlavorDataSize, 1,
-        "(ItemReference theItemRef, FlavorType theType) -> (Size dataSize)"},
-       {"GetFlavorData", (PyCFunction)DragObj_GetFlavorData, 1,
-        "(ItemReference theItemRef, FlavorType theType, Buffer dataPtr, UInt32 dataOffset) -> (Buffer dataPtr)"},
-       {"GetDragItemBounds", (PyCFunction)DragObj_GetDragItemBounds, 1,
-        "(ItemReference theItemRef) -> (Rect itemBounds)"},
-       {"SetDragItemBounds", (PyCFunction)DragObj_SetDragItemBounds, 1,
-        "(ItemReference theItemRef, Rect itemBounds) -> None"},
-       {"GetDropLocation", (PyCFunction)DragObj_GetDropLocation, 1,
-        "() -> (AEDesc dropLocation)"},
-       {"SetDropLocation", (PyCFunction)DragObj_SetDropLocation, 1,
-        "(AEDesc dropLocation) -> None"},
-       {"GetDragAttributes", (PyCFunction)DragObj_GetDragAttributes, 1,
-        "() -> (DragAttributes flags)"},
-       {"GetDragMouse", (PyCFunction)DragObj_GetDragMouse, 1,
-        "() -> (Point mouse, Point globalPinnedMouse)"},
-       {"SetDragMouse", (PyCFunction)DragObj_SetDragMouse, 1,
-        "(Point globalPinnedMouse) -> None"},
-       {"GetDragOrigin", (PyCFunction)DragObj_GetDragOrigin, 1,
-        "() -> (Point globalInitialMouse)"},
-       {"GetDragModifiers", (PyCFunction)DragObj_GetDragModifiers, 1,
-        "() -> (SInt16 modifiers, SInt16 mouseDownModifiers, SInt16 mouseUpModifiers)"},
-       {"ShowDragHilite", (PyCFunction)DragObj_ShowDragHilite, 1,
-        "(RgnHandle hiliteFrame, Boolean inside) -> None"},
-       {"HideDragHilite", (PyCFunction)DragObj_HideDragHilite, 1,
-        "() -> None"},
-       {"DragPreScroll", (PyCFunction)DragObj_DragPreScroll, 1,
-        "(SInt16 dH, SInt16 dV) -> None"},
-       {"DragPostScroll", (PyCFunction)DragObj_DragPostScroll, 1,
-        "() -> None"},
-       {"UpdateDragHilite", (PyCFunction)DragObj_UpdateDragHilite, 1,
-        "(RgnHandle updateRgn) -> None"},
-       {NULL, NULL, 0}
-};
-
-PyMethodChain DragObj_chain = { DragObj_methods, NULL };
-
-static PyObject *DragObj_getattr(self, name)
-       DragObjObject *self;
-       char *name;
-{
-       return Py_FindMethodInChain(&DragObj_chain, (PyObject *)self, name);
-}
-
-#define DragObj_setattr NULL
-
-#define DragObj_compare NULL
-
-#define DragObj_repr NULL
-
-#define DragObj_hash NULL
-
-PyTypeObject DragObj_Type = {
-       PyObject_HEAD_INIT(&PyType_Type)
-       0, /*ob_size*/
-       "DragObj", /*tp_name*/
-       sizeof(DragObjObject), /*tp_basicsize*/
-       0, /*tp_itemsize*/
-       /* methods */
-       (destructor) DragObj_dealloc, /*tp_dealloc*/
-       0, /*tp_print*/
-       (getattrfunc) DragObj_getattr, /*tp_getattr*/
-       (setattrfunc) DragObj_setattr, /*tp_setattr*/
-       (cmpfunc) DragObj_compare, /*tp_compare*/
-       (reprfunc) DragObj_repr, /*tp_repr*/
-       (PyNumberMethods *)0, /* tp_as_number */
-       (PySequenceMethods *)0, /* tp_as_sequence */
-       (PyMappingMethods *)0, /* tp_as_mapping */
-       (hashfunc) DragObj_hash, /*tp_hash*/
-};
-
-/* -------------------- End object type DragObj --------------------- */
-
-
-static PyObject *Drag_NewDrag(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       DragRef theDrag;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _err = NewDrag(&theDrag);
-       if (_err != noErr) return PyMac_Error(_err);
-       _res = Py_BuildValue("O&",
-                            DragObj_New, theDrag);
-       return _res;
-}
-
-static PyObject *Drag_GetDragHiliteColor(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       WindowPtr window;
-       RGBColor color;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             WinObj_Convert, &window))
-               return NULL;
-       _err = GetDragHiliteColor(window,
-                                 &color);
-       if (_err != noErr) return PyMac_Error(_err);
-       _res = Py_BuildValue("O&",
-                            QdRGB_New, &color);
-       return _res;
-}
-
-static PyObject *Drag_WaitMouseMoved(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Boolean _rv;
-       Point initialMouse;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             PyMac_GetPoint, &initialMouse))
-               return NULL;
-       _rv = WaitMouseMoved(initialMouse);
-       _res = Py_BuildValue("b",
-                            _rv);
-       return _res;
-}
-
-static PyObject *Drag_ZoomRects(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       Rect fromRect;
-       Rect toRect;
-       SInt16 zoomSteps;
-       ZoomAcceleration acceleration;
-       if (!PyArg_ParseTuple(_args, "O&O&hh",
-                             PyMac_GetRect, &fromRect,
-                             PyMac_GetRect, &toRect,
-                             &zoomSteps,
-                             &acceleration))
-               return NULL;
-       _err = ZoomRects(&fromRect,
-                        &toRect,
-                        zoomSteps,
-                        acceleration);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *Drag_ZoomRegion(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       RgnHandle region;
-       Point zoomDistance;
-       SInt16 zoomSteps;
-       ZoomAcceleration acceleration;
-       if (!PyArg_ParseTuple(_args, "O&O&hh",
-                             ResObj_Convert, &region,
-                             PyMac_GetPoint, &zoomDistance,
-                             &zoomSteps,
-                             &acceleration))
-               return NULL;
-       _err = ZoomRegion(region,
-                         zoomDistance,
-                         zoomSteps,
-                         acceleration);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *Drag_InstallTrackingHandler(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-
-           PyObject *callback;
-           WindowPtr theWindow = NULL;
-           OSErr _err;
-           
-           if ( !PyArg_ParseTuple(_args, "O|O&", &callback, WinObj_Convert, &theWindow) )
-               return NULL;
-           Py_INCREF(callback);        /* Cannot decref later, too bad */
-           _err = InstallTrackingHandler(dragglue_TrackingHandlerUPP, theWindow, (void *)callback);
-               if (_err != noErr) return PyMac_Error(_err);
-               Py_INCREF(Py_None);
-               return Py_None;
-
-}
-
-static PyObject *Drag_InstallReceiveHandler(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-
-           PyObject *callback;
-           WindowPtr theWindow = NULL;
-           OSErr _err;
-           
-           if ( !PyArg_ParseTuple(_args, "O|O&", &callback, WinObj_Convert, &theWindow) )
-               return NULL;
-           Py_INCREF(callback);        /* Cannot decref later, too bad */
-           _err = InstallReceiveHandler(dragglue_ReceiveHandlerUPP, theWindow, (void *)callback);
-               if (_err != noErr) return PyMac_Error(_err);
-               Py_INCREF(Py_None);
-               return Py_None;
-
-}
-
-static PyObject *Drag_RemoveTrackingHandler(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-
-           WindowPtr theWindow = NULL;
-           OSErr _err;
-           
-           if ( !PyArg_ParseTuple(_args, "|O&", WinObj_Convert, &theWindow) )
-               return NULL;
-           _err = RemoveTrackingHandler(dragglue_TrackingHandlerUPP, theWindow);
-               if (_err != noErr) return PyMac_Error(_err);
-               Py_INCREF(Py_None);
-               return Py_None;
-
-}
-
-static PyObject *Drag_RemoveReceiveHandler(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-
-           WindowPtr theWindow = NULL;
-           OSErr _err;
-           
-           if ( !PyArg_ParseTuple(_args, "|O&", WinObj_Convert, &theWindow) )
-               return NULL;
-           _err = RemoveReceiveHandler(dragglue_ReceiveHandlerUPP, theWindow);
-               if (_err != noErr) return PyMac_Error(_err);
-               Py_INCREF(Py_None);
-               return Py_None;
-
-}
-
-static PyMethodDef Drag_methods[] = {
-       {"NewDrag", (PyCFunction)Drag_NewDrag, 1,
-        "() -> (DragRef theDrag)"},
-       {"GetDragHiliteColor", (PyCFunction)Drag_GetDragHiliteColor, 1,
-        "(WindowPtr window) -> (RGBColor color)"},
-       {"WaitMouseMoved", (PyCFunction)Drag_WaitMouseMoved, 1,
-        "(Point initialMouse) -> (Boolean _rv)"},
-       {"ZoomRects", (PyCFunction)Drag_ZoomRects, 1,
-        "(Rect fromRect, Rect toRect, SInt16 zoomSteps, ZoomAcceleration acceleration) -> None"},
-       {"ZoomRegion", (PyCFunction)Drag_ZoomRegion, 1,
-        "(RgnHandle region, Point zoomDistance, SInt16 zoomSteps, ZoomAcceleration acceleration) -> None"},
-       {"InstallTrackingHandler", (PyCFunction)Drag_InstallTrackingHandler, 1,
-        NULL},
-       {"InstallReceiveHandler", (PyCFunction)Drag_InstallReceiveHandler, 1,
-        NULL},
-       {"RemoveTrackingHandler", (PyCFunction)Drag_RemoveTrackingHandler, 1,
-        NULL},
-       {"RemoveReceiveHandler", (PyCFunction)Drag_RemoveReceiveHandler, 1,
-        NULL},
-       {NULL, NULL, 0}
-};
-
-
-
-static pascal OSErr
-dragglue_TrackingHandler(DragTrackingMessage theMessage, WindowPtr theWindow,
-                         void *handlerRefCon, DragReference theDrag)
-{
-       PyObject *args, *rv;
-       int i;
-       
-       args = Py_BuildValue("hO&O&", theMessage, DragObj_New, theDrag, WinObj_WhichWindow, theWindow);
-       if ( args == NULL )
-               return -1;
-       rv = PyEval_CallObject((PyObject *)handlerRefCon, args);
-       Py_DECREF(args);
-       if ( rv == NULL ) {
-               fprintf(stderr, "Drag: Exception in TrackingHandler\n");
-               return -1;
-       }
-       i = -1;
-       if ( rv == Py_None )
-               i = 0;
-       else
-               PyArg_Parse(rv, "l", &i);
-       Py_DECREF(rv);
-       return i;
-}
-
-static pascal OSErr
-dragglue_ReceiveHandler(WindowPtr theWindow, void *handlerRefCon,
-                        DragReference theDrag)
-{
-       PyObject *args, *rv;
-       int i;
-       
-       args = Py_BuildValue("O&O&", DragObj_New, theDrag, WinObj_WhichWindow, theWindow);
-       if ( args == NULL )
-               return -1;
-       rv = PyEval_CallObject((PyObject *)handlerRefCon, args);
-       Py_DECREF(args);
-       if ( rv == NULL ) {
-               fprintf(stderr, "Drag: Exception in ReceiveHandler\n");
-               return -1;
-       }
-       i = -1;
-       if ( rv == Py_None )
-               i = 0;
-       else
-               PyArg_Parse(rv, "l", &i);
-       Py_DECREF(rv);
-       return i;
-}
-
-static pascal OSErr
-dragglue_SendData(FlavorType theType, void *dragSendRefCon,
-                      ItemReference theItem, DragReference theDrag)
-{
-       DragObjObject *self = (DragObjObject *)dragSendRefCon;
-       PyObject *args, *rv;
-       int i;
-       
-       if ( self->sendproc == NULL )
-               return -1;
-       args = Py_BuildValue("O&l", PyMac_BuildOSType, theType, theItem);
-       if ( args == NULL )
-               return -1;
-       rv = PyEval_CallObject(self->sendproc, args);
-       Py_DECREF(args);
-       if ( rv == NULL ) {
-               fprintf(stderr, "Drag: Exception in SendDataHandler\n");
-               return -1;
-       }
-       i = -1;
-       if ( rv == Py_None )
-               i = 0;
-       else
-               PyArg_Parse(rv, "l", &i);
-       Py_DECREF(rv);
-       return i;
-}
-
-#if 0
-static pascal OSErr
-dragglue_Input(Point *mouse, short *modifiers,
-                   void *dragSendRefCon, DragReference theDrag)
-{
-    return 0;
-}
-
-static pascal OSErr
-dragglue_Drawing(xxxx
-                   void *dragSendRefCon, DragReference theDrag)
-{
-    return 0;
-}
-#endif
-
-
-
-void initDrag()
-{
-       PyObject *m;
-       PyObject *d;
-
-
-
-
-       m = Py_InitModule("Drag", Drag_methods);
-       d = PyModule_GetDict(m);
-       Drag_Error = PyMac_GetOSErrException();
-       if (Drag_Error == NULL ||
-           PyDict_SetItemString(d, "Error", Drag_Error) != 0)
-               return;
-       DragObj_Type.ob_type = &PyType_Type;
-       Py_INCREF(&DragObj_Type);
-       if (PyDict_SetItemString(d, "DragObjType", (PyObject *)&DragObj_Type) != 0)
-               Py_FatalError("can't initialize DragObjType");
-
-       dragglue_TrackingHandlerUPP = NewDragTrackingHandlerProc(dragglue_TrackingHandler);
-       dragglue_ReceiveHandlerUPP = NewDragReceiveHandlerProc(dragglue_ReceiveHandler);
-       dragglue_SendDataUPP = NewDragSendDataProc(dragglue_SendData);
-#if 0
-       dragglue_InputUPP = NewDragInputProc(dragglue_Input);
-       dragglue_DrawingUPP = NewDragDrawingProc(dragglue_Drawing);
-#endif
-
-
-}
-
-/* ======================== End module Drag ========================= */
-
diff --git a/Mac/Modules/drag/dragsupport.py b/Mac/Modules/drag/dragsupport.py
deleted file mode 100644 (file)
index d90acc9..0000000
+++ /dev/null
@@ -1,273 +0,0 @@
-# This script generates a Python interface for an Apple Macintosh Manager.
-# It uses the "bgen" package to generate C code.
-# The function specifications are generated by scanning the mamager's header file,
-# using the "scantools" package (customized for this particular manager).
-
-import string
-
-# Declarations that change for each manager
-MACHEADERFILE = 'Drag.h'               # The Apple header file
-MODNAME = 'Drag'                               # The name of the module
-OBJECTNAME = 'DragObj'                 # The basic name of the objects used here
-
-# The following is *usually* unchanged but may still require tuning
-MODPREFIX = MODNAME                    # The prefix for module-wide routines
-OBJECTTYPE = 'DragRef' # The C type used to represent them
-OBJECTPREFIX = MODPREFIX + 'Obj'       # The prefix for object methods
-INPUTFILE = string.lower(MODPREFIX) + 'gen.py' # The file generated by the scanner
-OUTPUTFILE = MODNAME + "module.c"      # The file generated by this program
-
-from macsupport import *
-
-# Create the type objects
-
-DragRef = OpaqueByValueType(OBJECTTYPE, OBJECTPREFIX)
-DragItemRef = Type("ItemReference", "l")
-# Old names
-DragReference = DragRef
-ItemReference = DragItemRef
-
-PixMapHandle = OpaqueByValueType("PixMapHandle", "ResObj")
-RgnHandle = OpaqueByValueType("RgnHandle", "ResObj")
-AEDesc = OpaqueType('AEDesc')
-AEDesc_ptr = AEDesc
-RGBColor = OpaqueType("RGBColor", "QdRGB")
-
-FlavorType = OSTypeType("FlavorType")
-DragAttributes = Type("DragAttributes", "l")
-DragBehaviors = Type("DragBehaviors", "l")
-DragImageFlags = Type("DragImageFlags", "l")
-DragImageTranslucency = Type("DragImageTranslucency", "l")
-DragRegionMessage = Type("DragRegionMessage", "h")
-ZoomAcceleration = Type("ZoomAcceleration", "h")
-FlavorFlags = Type("FlavorFlags", "l")
-DragTrackingMessage = Type("DragTrackingMessage", "h")
-
-includestuff = includestuff + """
-#include <%s>""" % MACHEADERFILE + """
-
-/* Callback glue routines */
-DragTrackingHandlerUPP dragglue_TrackingHandlerUPP;
-DragReceiveHandlerUPP dragglue_ReceiveHandlerUPP;
-DragSendDataUPP dragglue_SendDataUPP;
-#if 0
-DragInputUPP dragglue_InputUPP;
-DragDrawingUPP dragglue_DrawingUPP;
-#endif
-"""
-
-finalstuff = finalstuff + """
-static pascal OSErr
-dragglue_TrackingHandler(DragTrackingMessage theMessage, WindowPtr theWindow,
-                         void *handlerRefCon, DragReference theDrag)
-{
-       PyObject *args, *rv;
-       int i;
-       
-       args = Py_BuildValue("hO&O&", theMessage, DragObj_New, theDrag, WinObj_WhichWindow, theWindow);
-       if ( args == NULL )
-               return -1;
-       rv = PyEval_CallObject((PyObject *)handlerRefCon, args);
-       Py_DECREF(args);
-       if ( rv == NULL ) {
-               fprintf(stderr, "Drag: Exception in TrackingHandler\\n");
-               return -1;
-       }
-       i = -1;
-       if ( rv == Py_None )
-               i = 0;
-       else
-               PyArg_Parse(rv, "l", &i);
-       Py_DECREF(rv);
-       return i;
-}
-
-static pascal OSErr
-dragglue_ReceiveHandler(WindowPtr theWindow, void *handlerRefCon,
-                        DragReference theDrag)
-{
-       PyObject *args, *rv;
-       int i;
-       
-       args = Py_BuildValue("O&O&", DragObj_New, theDrag, WinObj_WhichWindow, theWindow);
-       if ( args == NULL )
-               return -1;
-       rv = PyEval_CallObject((PyObject *)handlerRefCon, args);
-       Py_DECREF(args);
-       if ( rv == NULL ) {
-               fprintf(stderr, "Drag: Exception in ReceiveHandler\\n");
-               return -1;
-       }
-       i = -1;
-       if ( rv == Py_None )
-               i = 0;
-       else
-               PyArg_Parse(rv, "l", &i);
-       Py_DECREF(rv);
-       return i;
-}
-
-static pascal OSErr
-dragglue_SendData(FlavorType theType, void *dragSendRefCon,
-                      ItemReference theItem, DragReference theDrag)
-{
-       DragObjObject *self = (DragObjObject *)dragSendRefCon;
-       PyObject *args, *rv;
-       int i;
-       
-       if ( self->sendproc == NULL )
-               return -1;
-       args = Py_BuildValue("O&l", PyMac_BuildOSType, theType, theItem);
-       if ( args == NULL )
-               return -1;
-       rv = PyEval_CallObject(self->sendproc, args);
-       Py_DECREF(args);
-       if ( rv == NULL ) {
-               fprintf(stderr, "Drag: Exception in SendDataHandler\\n");
-               return -1;
-       }
-       i = -1;
-       if ( rv == Py_None )
-               i = 0;
-       else
-               PyArg_Parse(rv, "l", &i);
-       Py_DECREF(rv);
-       return i;
-}
-
-#if 0
-static pascal OSErr
-dragglue_Input(Point *mouse, short *modifiers,
-                   void *dragSendRefCon, DragReference theDrag)
-{
-    return 0;
-}
-
-static pascal OSErr
-dragglue_Drawing(xxxx
-                   void *dragSendRefCon, DragReference theDrag)
-{
-    return 0;
-}
-#endif
-
-"""
-
-variablestuff = """
-dragglue_TrackingHandlerUPP = NewDragTrackingHandlerProc(dragglue_TrackingHandler);
-dragglue_ReceiveHandlerUPP = NewDragReceiveHandlerProc(dragglue_ReceiveHandler);
-dragglue_SendDataUPP = NewDragSendDataProc(dragglue_SendData);
-#if 0
-dragglue_InputUPP = NewDragInputProc(dragglue_Input);
-dragglue_DrawingUPP = NewDragDrawingProc(dragglue_Drawing);
-#endif
-"""    
-
-class MyObjectDefinition(GlobalObjectDefinition):
-       def outputCheckNewArg(self):
-               Output("""if (itself == NULL) {
-                                       PyErr_SetString(Drag_Error,"Cannot create null Drag");
-                                       return NULL;
-                               }""")
-       def outputFreeIt(self, itselfname):
-               ## Output("DisposeDrag(%s);", itselfname)
-               Output("Py_XDECREF(self->sendproc);")
-               ## Output("Py_XDECREF(self->inputproc);")
-               ## Output("Py_XDECREF(self->drawingproc);")
-               
-       def outputStructMembers(self):
-               GlobalObjectDefinition.outputStructMembers(self)
-               Output("PyObject *sendproc;")
-               ## Output("PyObject *inputproc;")
-               ## Output("PyObject *drawingproc;")
-               
-       def outputInitStructMembers(self):
-               GlobalObjectDefinition.outputInitStructMembers(self)
-               Output("it->sendproc = NULL;")
-               ## Output("it->inputproc = NULL;")
-               ## Output("it->drawingproc = NULL;")
-               
-               
-# Create the generator groups and link them
-module = MacModule(MODNAME, MODPREFIX, includestuff, finalstuff, initstuff, variablestuff)
-object = MyObjectDefinition(OBJECTNAME, OBJECTPREFIX, OBJECTTYPE)
-module.addobject(object)
-
-# Create the generator classes used to populate the lists
-Function = OSErrFunctionGenerator
-Method = OSErrMethodGenerator
-
-# Create and populate the lists
-functions = []
-methods = []
-execfile(INPUTFILE)
-
-# add the populated lists to the generator groups
-for f in functions: module.add(f)
-for f in methods: object.add(f)
-
-# Manual generators for the callbacks
-
-installtracking_body = """
-    PyObject *callback;
-    WindowPtr theWindow = NULL;
-    OSErr _err;
-    
-    if ( !PyArg_ParseTuple(_args, "O|O&", &callback, WinObj_Convert, &theWindow) )
-       return NULL;
-    Py_INCREF(callback);       /* Cannot decref later, too bad */
-    _err = InstallTrackingHandler(dragglue_TrackingHandlerUPP, theWindow, (void *)callback);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       return Py_None;
-"""
-installtracking = ManualGenerator("InstallTrackingHandler", installtracking_body)
-module.add(installtracking)
-
-installreceive_body = """
-    PyObject *callback;
-    WindowPtr theWindow = NULL;
-    OSErr _err;
-    
-    if ( !PyArg_ParseTuple(_args, "O|O&", &callback, WinObj_Convert, &theWindow) )
-       return NULL;
-    Py_INCREF(callback);       /* Cannot decref later, too bad */
-    _err = InstallReceiveHandler(dragglue_ReceiveHandlerUPP, theWindow, (void *)callback);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       return Py_None;
-"""
-installreceive = ManualGenerator("InstallReceiveHandler", installreceive_body)
-module.add(installreceive)
-
-removetracking_body = """
-    WindowPtr theWindow = NULL;
-    OSErr _err;
-    
-    if ( !PyArg_ParseTuple(_args, "|O&", WinObj_Convert, &theWindow) )
-       return NULL;
-    _err = RemoveTrackingHandler(dragglue_TrackingHandlerUPP, theWindow);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       return Py_None;
-"""
-removetracking = ManualGenerator("RemoveTrackingHandler", removetracking_body)
-module.add(removetracking)
-
-removereceive_body = """
-    WindowPtr theWindow = NULL;
-    OSErr _err;
-    
-    if ( !PyArg_ParseTuple(_args, "|O&", WinObj_Convert, &theWindow) )
-       return NULL;
-    _err = RemoveReceiveHandler(dragglue_ReceiveHandlerUPP, theWindow);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       return Py_None;
-"""
-removereceive = ManualGenerator("RemoveReceiveHandler", removereceive_body)
-module.add(removereceive)
-
-# generate output (open the output file as late as possible)
-SetOutputFileName(OUTPUTFILE)
-module.generate()
diff --git a/Mac/Modules/evt/Evtmodule.c b/Mac/Modules/evt/Evtmodule.c
deleted file mode 100644 (file)
index ed18f9c..0000000
+++ /dev/null
@@ -1,490 +0,0 @@
-
-/* =========================== Module Evt =========================== */
-
-#include "Python.h"
-
-
-
-#include "macglue.h"
-#include "pymactoolbox.h"
-
-#include <Events.h>
-
-static PyObject *Evt_Error;
-
-static PyObject *Evt_GetMouse(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Point mouseLoc;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       GetMouse(&mouseLoc);
-       _res = Py_BuildValue("O&",
-                            PyMac_BuildPoint, mouseLoc);
-       return _res;
-}
-
-static PyObject *Evt_Button(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Boolean _rv;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _rv = Button();
-       _res = Py_BuildValue("b",
-                            _rv);
-       return _res;
-}
-
-static PyObject *Evt_StillDown(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Boolean _rv;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _rv = StillDown();
-       _res = Py_BuildValue("b",
-                            _rv);
-       return _res;
-}
-
-static PyObject *Evt_WaitMouseUp(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Boolean _rv;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _rv = WaitMouseUp();
-       _res = Py_BuildValue("b",
-                            _rv);
-       return _res;
-}
-
-static PyObject *Evt_TickCount(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       UInt32 _rv;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _rv = TickCount();
-       _res = Py_BuildValue("l",
-                            _rv);
-       return _res;
-}
-
-static PyObject *Evt_GetCaretTime(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       UInt32 _rv;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _rv = GetCaretTime();
-       _res = Py_BuildValue("l",
-                            _rv);
-       return _res;
-}
-
-static PyObject *Evt_GetKeys(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       KeyMap theKeys__out__;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       GetKeys(theKeys__out__);
-       _res = Py_BuildValue("s#",
-                            (char *)&theKeys__out__, (int)sizeof(KeyMap));
- theKeys__error__: ;
-       return _res;
-}
-
-static PyObject *Evt_GetDblTime(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       UInt32 _rv;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _rv = GetDblTime();
-       _res = Py_BuildValue("l",
-                            _rv);
-       return _res;
-}
-
-static PyObject *Evt_SetEventMask(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       EventMask value;
-       if (!PyArg_ParseTuple(_args, "H",
-                             &value))
-               return NULL;
-       SetEventMask(value);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *Evt_GetNextEvent(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Boolean _rv;
-       EventMask eventMask;
-       EventRecord theEvent;
-       if (!PyArg_ParseTuple(_args, "H",
-                             &eventMask))
-               return NULL;
-       _rv = GetNextEvent(eventMask,
-                          &theEvent);
-       _res = Py_BuildValue("bO&",
-                            _rv,
-                            PyMac_BuildEventRecord, &theEvent);
-       return _res;
-}
-
-static PyObject *Evt_EventAvail(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Boolean _rv;
-       EventMask eventMask;
-       EventRecord theEvent;
-       if (!PyArg_ParseTuple(_args, "H",
-                             &eventMask))
-               return NULL;
-       _rv = EventAvail(eventMask,
-                        &theEvent);
-       _res = Py_BuildValue("bO&",
-                            _rv,
-                            PyMac_BuildEventRecord, &theEvent);
-       return _res;
-}
-
-static PyObject *Evt_PostEvent(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       EventKind eventNum;
-       UInt32 eventMsg;
-       if (!PyArg_ParseTuple(_args, "Hl",
-                             &eventNum,
-                             &eventMsg))
-               return NULL;
-       _err = PostEvent(eventNum,
-                        eventMsg);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-#if !TARGET_API_MAC_CARBON
-
-static PyObject *Evt_OSEventAvail(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Boolean _rv;
-       EventMask mask;
-       EventRecord theEvent;
-       if (!PyArg_ParseTuple(_args, "H",
-                             &mask))
-               return NULL;
-       _rv = OSEventAvail(mask,
-                          &theEvent);
-       _res = Py_BuildValue("bO&",
-                            _rv,
-                            PyMac_BuildEventRecord, &theEvent);
-       return _res;
-}
-#endif
-
-#if !TARGET_API_MAC_CARBON
-
-static PyObject *Evt_GetOSEvent(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Boolean _rv;
-       EventMask mask;
-       EventRecord theEvent;
-       if (!PyArg_ParseTuple(_args, "H",
-                             &mask))
-               return NULL;
-       _rv = GetOSEvent(mask,
-                        &theEvent);
-       _res = Py_BuildValue("bO&",
-                            _rv,
-                            PyMac_BuildEventRecord, &theEvent);
-       return _res;
-}
-#endif
-
-static PyObject *Evt_FlushEvents(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       EventMask whichMask;
-       EventMask stopMask;
-       if (!PyArg_ParseTuple(_args, "HH",
-                             &whichMask,
-                             &stopMask))
-               return NULL;
-       FlushEvents(whichMask,
-                   stopMask);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-#if !TARGET_API_MAC_CARBON
-
-static PyObject *Evt_SystemClick(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       EventRecord theEvent;
-       WindowPtr theWindow;
-       if (!PyArg_ParseTuple(_args, "O&O&",
-                             PyMac_GetEventRecord, &theEvent,
-                             WinObj_Convert, &theWindow))
-               return NULL;
-       SystemClick(&theEvent,
-                   theWindow);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-#endif
-
-#if !TARGET_API_MAC_CARBON
-
-static PyObject *Evt_SystemTask(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       SystemTask();
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-#endif
-
-#if !TARGET_API_MAC_CARBON
-
-static PyObject *Evt_SystemEvent(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Boolean _rv;
-       EventRecord theEvent;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             PyMac_GetEventRecord, &theEvent))
-               return NULL;
-       _rv = SystemEvent(&theEvent);
-       _res = Py_BuildValue("b",
-                            _rv);
-       return _res;
-}
-#endif
-
-#if TARGET_API_MAC_CARBON
-
-static PyObject *Evt_GetGlobalMouse(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Point globalMouse;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       GetGlobalMouse(&globalMouse);
-       _res = Py_BuildValue("O&",
-                            PyMac_BuildPoint, globalMouse);
-       return _res;
-}
-#endif
-
-#if TARGET_API_MAC_CARBON
-
-static PyObject *Evt_GetCurrentKeyModifiers(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       UInt32 _rv;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _rv = GetCurrentKeyModifiers();
-       _res = Py_BuildValue("l",
-                            _rv);
-       return _res;
-}
-#endif
-
-#if TARGET_API_MAC_CARBON
-
-static PyObject *Evt_CheckEventQueueForUserCancel(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Boolean _rv;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _rv = CheckEventQueueForUserCancel();
-       _res = Py_BuildValue("b",
-                            _rv);
-       return _res;
-}
-#endif
-
-static PyObject *Evt_WaitNextEvent(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-
-       Boolean _rv;
-       EventMask eventMask;
-       EventRecord theEvent;
-       UInt32 sleep;
-       Handle mouseregion = (Handle)0;
-
-       if (!PyArg_ParseTuple(_args, "Hl|O&",
-                             &eventMask,
-                             &sleep,
-                             OptResObj_Convert, &mouseregion))
-               return NULL;
-       _rv = WaitNextEvent(eventMask,
-                           &theEvent,
-                           sleep,
-                           (RgnHandle)mouseregion);
-       _res = Py_BuildValue("bO&",
-                            _rv,
-                            PyMac_BuildEventRecord, &theEvent);
-       return _res;
-
-}
-
-static PyMethodDef Evt_methods[] = {
-       {"GetMouse", (PyCFunction)Evt_GetMouse, 1,
-        "() -> (Point mouseLoc)"},
-       {"Button", (PyCFunction)Evt_Button, 1,
-        "() -> (Boolean _rv)"},
-       {"StillDown", (PyCFunction)Evt_StillDown, 1,
-        "() -> (Boolean _rv)"},
-       {"WaitMouseUp", (PyCFunction)Evt_WaitMouseUp, 1,
-        "() -> (Boolean _rv)"},
-       {"TickCount", (PyCFunction)Evt_TickCount, 1,
-        "() -> (UInt32 _rv)"},
-       {"GetCaretTime", (PyCFunction)Evt_GetCaretTime, 1,
-        "() -> (UInt32 _rv)"},
-       {"GetKeys", (PyCFunction)Evt_GetKeys, 1,
-        "() -> (KeyMap theKeys)"},
-       {"GetDblTime", (PyCFunction)Evt_GetDblTime, 1,
-        "() -> (UInt32 _rv)"},
-       {"SetEventMask", (PyCFunction)Evt_SetEventMask, 1,
-        "(EventMask value) -> None"},
-       {"GetNextEvent", (PyCFunction)Evt_GetNextEvent, 1,
-        "(EventMask eventMask) -> (Boolean _rv, EventRecord theEvent)"},
-       {"EventAvail", (PyCFunction)Evt_EventAvail, 1,
-        "(EventMask eventMask) -> (Boolean _rv, EventRecord theEvent)"},
-       {"PostEvent", (PyCFunction)Evt_PostEvent, 1,
-        "(EventKind eventNum, UInt32 eventMsg) -> None"},
-
-#if !TARGET_API_MAC_CARBON
-       {"OSEventAvail", (PyCFunction)Evt_OSEventAvail, 1,
-        "(EventMask mask) -> (Boolean _rv, EventRecord theEvent)"},
-#endif
-
-#if !TARGET_API_MAC_CARBON
-       {"GetOSEvent", (PyCFunction)Evt_GetOSEvent, 1,
-        "(EventMask mask) -> (Boolean _rv, EventRecord theEvent)"},
-#endif
-       {"FlushEvents", (PyCFunction)Evt_FlushEvents, 1,
-        "(EventMask whichMask, EventMask stopMask) -> None"},
-
-#if !TARGET_API_MAC_CARBON
-       {"SystemClick", (PyCFunction)Evt_SystemClick, 1,
-        "(EventRecord theEvent, WindowPtr theWindow) -> None"},
-#endif
-
-#if !TARGET_API_MAC_CARBON
-       {"SystemTask", (PyCFunction)Evt_SystemTask, 1,
-        "() -> None"},
-#endif
-
-#if !TARGET_API_MAC_CARBON
-       {"SystemEvent", (PyCFunction)Evt_SystemEvent, 1,
-        "(EventRecord theEvent) -> (Boolean _rv)"},
-#endif
-
-#if TARGET_API_MAC_CARBON
-       {"GetGlobalMouse", (PyCFunction)Evt_GetGlobalMouse, 1,
-        "() -> (Point globalMouse)"},
-#endif
-
-#if TARGET_API_MAC_CARBON
-       {"GetCurrentKeyModifiers", (PyCFunction)Evt_GetCurrentKeyModifiers, 1,
-        "() -> (UInt32 _rv)"},
-#endif
-
-#if TARGET_API_MAC_CARBON
-       {"CheckEventQueueForUserCancel", (PyCFunction)Evt_CheckEventQueueForUserCancel, 1,
-        "() -> (Boolean _rv)"},
-#endif
-       {"WaitNextEvent", (PyCFunction)Evt_WaitNextEvent, 1,
-        "(EventMask eventMask, UInt32 sleep [,RegionHandle]) -> (Boolean _rv, EventRecord theEvent)"},
-       {NULL, NULL, 0}
-};
-
-
-
-
-void initEvt()
-{
-       PyObject *m;
-       PyObject *d;
-
-
-
-
-       m = Py_InitModule("Evt", Evt_methods);
-       d = PyModule_GetDict(m);
-       Evt_Error = PyMac_GetOSErrException();
-       if (Evt_Error == NULL ||
-           PyDict_SetItemString(d, "Error", Evt_Error) != 0)
-               return;
-}
-
-/* ========================= End module Evt ========================= */
-
diff --git a/Mac/Modules/evt/evtsupport.py b/Mac/Modules/evt/evtsupport.py
deleted file mode 100644 (file)
index 7725ded..0000000
+++ /dev/null
@@ -1,103 +0,0 @@
-# This script generates a Python interface for an Apple Macintosh Manager.
-# It uses the "bgen" package to generate C code.
-# The function specifications are generated by scanning the mamager's header file,
-# using the "scantools" package (customized for this particular manager).
-
-import string
-
-# Declarations that change for each manager
-MACHEADERFILE = 'Events.h'             # The Apple header file
-MODNAME = 'Evt'                                # The name of the module
-OBJECTNAME = 'Event'                   # The basic name of the objects used here
-KIND = 'Record'                                # Usually 'Ptr' or 'Handle'
-
-# The following is *usually* unchanged but may still require tuning
-MODPREFIX = MODNAME                    # The prefix for module-wide routines
-OBJECTTYPE = OBJECTNAME + KIND         # The C type used to represent them
-OBJECTPREFIX = MODPREFIX + 'Obj'       # The prefix for object methods
-INPUTFILE = string.lower(MODPREFIX) + 'gen.py' # The file generated by the scanner
-OUTPUTFILE = MODNAME + "module.c"      # The file generated by this program
-
-from macsupport import *
-
-# Create the type objects
-
-#WindowPeek = OpaqueByValueType("WindowPeek", OBJECTPREFIX)
-
-RgnHandle = FakeType("(RgnHandle)0")
-# XXXX Should be next, but this will break a lot of code...
-# RgnHandle = OpaqueByValueType("RgnHandle", "OptResObj")
-
-KeyMap = ArrayOutputBufferType("KeyMap")
-##MacOSEventKind = Type("MacOSEventKind", "h") # Old-style
-##MacOSEventMask = Type("MacOSEventMask", "h") # Old-style
-EventMask = Type("EventMask", "H")
-EventKind = Type("EventKind", "H")
-
-includestuff = includestuff + """
-#include <%s>""" % MACHEADERFILE + """
-"""
-
-class MyObjectDefinition(GlobalObjectDefinition):
-       def outputCheckNewArg(self):
-               Output("if (itself == NULL) return PyMac_Error(resNotFound);")
-       def outputCheckConvertArg(self):
-               OutLbrace("if (DlgObj_Check(v))")
-               Output("*p_itself = ((WindowObject *)v)->ob_itself;")
-               Output("return 1;")
-               OutRbrace()
-               Out("""
-               if (v == Py_None) { *p_itself = NULL; return 1; }
-               if (PyInt_Check(v)) { *p_itself = (WindowPtr)PyInt_AsLong(v); return 1; }
-               """)
-
-# From here on it's basically all boiler plate...
-
-# Create the generator groups and link them
-module = MacModule(MODNAME, MODPREFIX, includestuff, finalstuff, initstuff)
-##object = MyObjectDefinition(OBJECTNAME, OBJECTPREFIX, OBJECTTYPE)
-##module.addobject(object)
-
-# Create the generator classes used to populate the lists
-Function = OSErrFunctionGenerator
-##Method = OSErrMethodGenerator
-
-# Create and populate the lists
-functions = []
-##methods = []
-execfile(INPUTFILE)
-
-# add the populated lists to the generator groups
-# (in a different wordl the scan program would generate this)
-for f in functions: module.add(f)
-##for f in methods: object.add(f)
-
-WaitNextEvent_body = """
-Boolean _rv;
-EventMask eventMask;
-EventRecord theEvent;
-UInt32 sleep;
-Handle mouseregion = (Handle)0;
-
-if (!PyArg_ParseTuple(_args, "Hl|O&",
-                      &eventMask,
-                      &sleep,
-                      OptResObj_Convert, &mouseregion))
-       return NULL;
-_rv = WaitNextEvent(eventMask,
-                    &theEvent,
-                    sleep,
-                    (RgnHandle)mouseregion);
-_res = Py_BuildValue("bO&",
-                     _rv,
-                     PyMac_BuildEventRecord, &theEvent);
-return _res;
-"""
-f = ManualGenerator("WaitNextEvent", WaitNextEvent_body);
-f.docstring = lambda: "(EventMask eventMask, UInt32 sleep [,RegionHandle]) -> (Boolean _rv, EventRecord theEvent)"
-module.add(f)
-
-# generate output (open the output file as late as possible)
-SetOutputFileName(OUTPUTFILE)
-module.generate()
-
diff --git a/Mac/Modules/fm/Fmmodule.c b/Mac/Modules/fm/Fmmodule.c
deleted file mode 100644 (file)
index 0d66d16..0000000
+++ /dev/null
@@ -1,423 +0,0 @@
-
-/* =========================== Module Fm ============================ */
-
-#include "Python.h"
-
-
-
-#include "macglue.h"
-#include "pymactoolbox.h"
-
-#include <Fonts.h>
-
-/*
-** Parse/generate ComponentDescriptor records
-*/
-static PyObject *
-FMRec_New(itself)
-       FMetricRec *itself;
-{
-
-       return Py_BuildValue("O&O&O&O&O&", 
-               PyMac_BuildFixed, itself->ascent,
-               PyMac_BuildFixed, itself->descent,
-               PyMac_BuildFixed, itself->leading,
-               PyMac_BuildFixed, itself->widMax,
-               ResObj_New, itself->wTabHandle);
-}
-
-#if 0
-/* Not needed... */
-static int
-FMRec_Convert(v, p_itself)
-       PyObject *v;
-       FMetricRec *p_itself;
-{
-       return PyArg_ParseTuple(v, "O&O&O&O&O&",
-               PyMac_GetFixed, &itself->ascent,
-               PyMac_GetFixed, &itself->descent,
-               PyMac_GetFixed, &itself->leading,
-               PyMac_GetFixed, &itself->widMax,
-               ResObj_Convert, &itself->wTabHandle);
-}
-#endif
-
-
-static PyObject *Fm_Error;
-
-#if !TARGET_API_MAC_CARBON
-
-static PyObject *Fm_InitFonts(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       InitFonts();
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-#endif
-
-static PyObject *Fm_GetFontName(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       short familyID;
-       Str255 name;
-       if (!PyArg_ParseTuple(_args, "h",
-                             &familyID))
-               return NULL;
-       GetFontName(familyID,
-                   name);
-       _res = Py_BuildValue("O&",
-                            PyMac_BuildStr255, name);
-       return _res;
-}
-
-static PyObject *Fm_GetFNum(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Str255 name;
-       short familyID;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             PyMac_GetStr255, name))
-               return NULL;
-       GetFNum(name,
-               &familyID);
-       _res = Py_BuildValue("h",
-                            familyID);
-       return _res;
-}
-
-static PyObject *Fm_RealFont(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Boolean _rv;
-       short fontNum;
-       short size;
-       if (!PyArg_ParseTuple(_args, "hh",
-                             &fontNum,
-                             &size))
-               return NULL;
-       _rv = RealFont(fontNum,
-                      size);
-       _res = Py_BuildValue("b",
-                            _rv);
-       return _res;
-}
-
-#if !TARGET_API_MAC_CARBON
-
-static PyObject *Fm_SetFontLock(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Boolean lockFlag;
-       if (!PyArg_ParseTuple(_args, "b",
-                             &lockFlag))
-               return NULL;
-       SetFontLock(lockFlag);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-#endif
-
-static PyObject *Fm_SetFScaleDisable(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Boolean fscaleDisable;
-       if (!PyArg_ParseTuple(_args, "b",
-                             &fscaleDisable))
-               return NULL;
-       SetFScaleDisable(fscaleDisable);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *Fm_FontMetrics(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       FMetricRec theMetrics;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       FontMetrics(&theMetrics);
-       _res = Py_BuildValue("O&",
-                            FMRec_New, &theMetrics);
-       return _res;
-}
-
-static PyObject *Fm_SetFractEnable(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Boolean fractEnable;
-       if (!PyArg_ParseTuple(_args, "b",
-                             &fractEnable))
-               return NULL;
-       SetFractEnable(fractEnable);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *Fm_GetDefFontSize(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       short _rv;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _rv = GetDefFontSize();
-       _res = Py_BuildValue("h",
-                            _rv);
-       return _res;
-}
-
-static PyObject *Fm_IsOutline(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Boolean _rv;
-       Point numer;
-       Point denom;
-       if (!PyArg_ParseTuple(_args, "O&O&",
-                             PyMac_GetPoint, &numer,
-                             PyMac_GetPoint, &denom))
-               return NULL;
-       _rv = IsOutline(numer,
-                       denom);
-       _res = Py_BuildValue("b",
-                            _rv);
-       return _res;
-}
-
-static PyObject *Fm_SetOutlinePreferred(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Boolean outlinePreferred;
-       if (!PyArg_ParseTuple(_args, "b",
-                             &outlinePreferred))
-               return NULL;
-       SetOutlinePreferred(outlinePreferred);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *Fm_GetOutlinePreferred(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Boolean _rv;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _rv = GetOutlinePreferred();
-       _res = Py_BuildValue("b",
-                            _rv);
-       return _res;
-}
-
-static PyObject *Fm_SetPreserveGlyph(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Boolean preserveGlyph;
-       if (!PyArg_ParseTuple(_args, "b",
-                             &preserveGlyph))
-               return NULL;
-       SetPreserveGlyph(preserveGlyph);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *Fm_GetPreserveGlyph(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Boolean _rv;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _rv = GetPreserveGlyph();
-       _res = Py_BuildValue("b",
-                            _rv);
-       return _res;
-}
-
-#if !TARGET_API_MAC_CARBON
-
-static PyObject *Fm_FlushFonts(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _err = FlushFonts();
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-#endif
-
-static PyObject *Fm_GetSysFont(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       short _rv;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _rv = GetSysFont();
-       _res = Py_BuildValue("h",
-                            _rv);
-       return _res;
-}
-
-static PyObject *Fm_GetAppFont(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       short _rv;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _rv = GetAppFont();
-       _res = Py_BuildValue("h",
-                            _rv);
-       return _res;
-}
-
-static PyObject *Fm_SetAntiAliasedTextEnabled(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSStatus _err;
-       Boolean iEnable;
-       SInt16 iMinFontSize;
-       if (!PyArg_ParseTuple(_args, "bh",
-                             &iEnable,
-                             &iMinFontSize))
-               return NULL;
-       _err = SetAntiAliasedTextEnabled(iEnable,
-                                        iMinFontSize);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *Fm_IsAntiAliasedTextEnabled(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Boolean _rv;
-       SInt16 oMinFontSize;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _rv = IsAntiAliasedTextEnabled(&oMinFontSize);
-       _res = Py_BuildValue("bh",
-                            _rv,
-                            oMinFontSize);
-       return _res;
-}
-
-static PyMethodDef Fm_methods[] = {
-
-#if !TARGET_API_MAC_CARBON
-       {"InitFonts", (PyCFunction)Fm_InitFonts, 1,
-        "() -> None"},
-#endif
-       {"GetFontName", (PyCFunction)Fm_GetFontName, 1,
-        "(short familyID) -> (Str255 name)"},
-       {"GetFNum", (PyCFunction)Fm_GetFNum, 1,
-        "(Str255 name) -> (short familyID)"},
-       {"RealFont", (PyCFunction)Fm_RealFont, 1,
-        "(short fontNum, short size) -> (Boolean _rv)"},
-
-#if !TARGET_API_MAC_CARBON
-       {"SetFontLock", (PyCFunction)Fm_SetFontLock, 1,
-        "(Boolean lockFlag) -> None"},
-#endif
-       {"SetFScaleDisable", (PyCFunction)Fm_SetFScaleDisable, 1,
-        "(Boolean fscaleDisable) -> None"},
-       {"FontMetrics", (PyCFunction)Fm_FontMetrics, 1,
-        "() -> (FMetricRec theMetrics)"},
-       {"SetFractEnable", (PyCFunction)Fm_SetFractEnable, 1,
-        "(Boolean fractEnable) -> None"},
-       {"GetDefFontSize", (PyCFunction)Fm_GetDefFontSize, 1,
-        "() -> (short _rv)"},
-       {"IsOutline", (PyCFunction)Fm_IsOutline, 1,
-        "(Point numer, Point denom) -> (Boolean _rv)"},
-       {"SetOutlinePreferred", (PyCFunction)Fm_SetOutlinePreferred, 1,
-        "(Boolean outlinePreferred) -> None"},
-       {"GetOutlinePreferred", (PyCFunction)Fm_GetOutlinePreferred, 1,
-        "() -> (Boolean _rv)"},
-       {"SetPreserveGlyph", (PyCFunction)Fm_SetPreserveGlyph, 1,
-        "(Boolean preserveGlyph) -> None"},
-       {"GetPreserveGlyph", (PyCFunction)Fm_GetPreserveGlyph, 1,
-        "() -> (Boolean _rv)"},
-
-#if !TARGET_API_MAC_CARBON
-       {"FlushFonts", (PyCFunction)Fm_FlushFonts, 1,
-        "() -> None"},
-#endif
-       {"GetSysFont", (PyCFunction)Fm_GetSysFont, 1,
-        "() -> (short _rv)"},
-       {"GetAppFont", (PyCFunction)Fm_GetAppFont, 1,
-        "() -> (short _rv)"},
-       {"SetAntiAliasedTextEnabled", (PyCFunction)Fm_SetAntiAliasedTextEnabled, 1,
-        "(Boolean iEnable, SInt16 iMinFontSize) -> None"},
-       {"IsAntiAliasedTextEnabled", (PyCFunction)Fm_IsAntiAliasedTextEnabled, 1,
-        "() -> (Boolean _rv, SInt16 oMinFontSize)"},
-       {NULL, NULL, 0}
-};
-
-
-
-
-void initFm()
-{
-       PyObject *m;
-       PyObject *d;
-
-
-
-
-       m = Py_InitModule("Fm", Fm_methods);
-       d = PyModule_GetDict(m);
-       Fm_Error = PyMac_GetOSErrException();
-       if (Fm_Error == NULL ||
-           PyDict_SetItemString(d, "Error", Fm_Error) != 0)
-               return;
-}
-
-/* ========================= End module Fm ========================== */
-
diff --git a/Mac/Modules/fm/fmscan.py b/Mac/Modules/fm/fmscan.py
deleted file mode 100644 (file)
index 02f8ec2..0000000
+++ /dev/null
@@ -1,67 +0,0 @@
-# Scan an Apple header file, generating a Python file of generator calls.
-
-import sys
-import os
-BGENDIR=os.path.join(sys.prefix, ':Tools:bgen:bgen')
-sys.path.append(BGENDIR)
-from scantools import Scanner
-from bgenlocations import TOOLBOXDIR
-
-LONG = "Fonts"
-SHORT = "fm"
-
-def main():
-       input = "Fonts.h"
-       output = SHORT + "gen.py"
-       defsoutput = TOOLBOXDIR + LONG + ".py"
-       scanner = MyScanner(input, output, defsoutput)
-       scanner.scan()
-       scanner.close()
-       print "=== Done scanning and generating, now importing the generated code... ==="
-       exec "import " + SHORT + "support"
-       print "=== Done.  It's up to you to compile it now! ==="
-
-class MyScanner(Scanner):
-
-       def destination(self, type, name, arglist):
-               classname = "Function"
-               listname = "functions"
-               return classname, listname
-
-       def makeblacklistnames(self):
-               return [
-                       "OutlineMetrics",       # Too complicated
-                       "AntiTextIsAntiAliased",        # XXXX Missing from library...
-                       "AntiTextGetEnabled",
-                       "AntiTextSetEnabled",
-                       "AntiTextGetApplicationAware",
-                       "AntiTextSetApplicationAware",
-                       ]
-
-       def makegreylist(self):
-               return [
-                       ('#if !TARGET_API_MAC_CARBON', [
-                               'InitFonts',
-                               'SetFontLock',
-                               'FlushFonts',
-                       ])]
-       def makeblacklisttypes(self):
-               return [
-                       "FMInput_ptr",  # Not needed for now
-                       "FMOutPtr",             # Ditto
-                       "void_ptr",             # Don't know how to do this right now
-                       "FontInfo",             # Ditto
-                       ]
-
-       def makerepairinstructions(self):
-               return [
-                       ([('Str255', '*', 'InMode')], [('Str255', '*', 'OutMode')]),
-                       ([('FMetricRecPtr', 'theMetrics', 'InMode')], [('FMetricRecPtr', 'theMetrics', 'OutMode')]),
-                       ]
-                       
-       def writeinitialdefs(self):
-               self.defsfile.write("def FOUR_CHAR_CODE(x): return x\n")
-               self.defsfile.write("kNilOptions = 0\n")
-
-if __name__ == "__main__":
-       main()
diff --git a/Mac/Modules/fm/fmsupport.py b/Mac/Modules/fm/fmsupport.py
deleted file mode 100644 (file)
index 1afc8b8..0000000
+++ /dev/null
@@ -1,77 +0,0 @@
-# This script generates a Python interface for an Apple Macintosh Manager.
-# It uses the "bgen" package to generate C code.
-# The function specifications are generated by scanning the mamager's header file,
-# using the "scantools" package (customized for this particular manager).
-
-import string
-
-# Declarations that change for each manager
-MACHEADERFILE = 'Fonts.h'              # The Apple header file
-MODNAME = 'Fm'                         # The name of the module
-
-# The following is *usually* unchanged but may still require tuning
-MODPREFIX = MODNAME                    # The prefix for module-wide routines
-INPUTFILE = string.lower(MODPREFIX) + 'gen.py' # The file generated by the scanner
-OUTPUTFILE = MODNAME + "module.c"      # The file generated by this program
-
-from macsupport import *
-
-# Create the type objects
-
-includestuff = includestuff + """
-#include <%s>""" % MACHEADERFILE + """
-
-/*
-** Parse/generate ComponentDescriptor records
-*/
-static PyObject *
-FMRec_New(itself)
-       FMetricRec *itself;
-{
-
-       return Py_BuildValue("O&O&O&O&O&", 
-               PyMac_BuildFixed, itself->ascent,
-               PyMac_BuildFixed, itself->descent,
-               PyMac_BuildFixed, itself->leading,
-               PyMac_BuildFixed, itself->widMax,
-               ResObj_New, itself->wTabHandle);
-}
-
-#if 0
-/* Not needed... */
-static int
-FMRec_Convert(v, p_itself)
-       PyObject *v;
-       FMetricRec *p_itself;
-{
-       return PyArg_ParseTuple(v, "O&O&O&O&O&",
-               PyMac_GetFixed, &itself->ascent,
-               PyMac_GetFixed, &itself->descent,
-               PyMac_GetFixed, &itself->leading,
-               PyMac_GetFixed, &itself->widMax,
-               ResObj_Convert, &itself->wTabHandle);
-}
-#endif
-
-"""
-
-FMetricRecPtr = OpaqueType('FMetricRec', 'FMRec')
-
-# Create the generator groups and link them
-module = MacModule(MODNAME, MODPREFIX, includestuff, finalstuff, initstuff)
-
-# Create the generator classes used to populate the lists
-Function = OSErrFunctionGenerator
-
-# Create and populate the lists
-functions = []
-execfile(INPUTFILE)
-
-# add the populated lists to the generator groups
-# (in a different wordl the scan program would generate this)
-for f in functions: module.add(f)
-
-# generate output (open the output file as late as possible)
-SetOutputFileName(OUTPUTFILE)
-module.generate()
-
diff --git a/Mac/Modules/gestaltmodule.c b/Mac/Modules/gestaltmodule.c
deleted file mode 100644 (file)
index 3cba45b..0000000
+++ /dev/null
@@ -1,65 +0,0 @@
-/***********************************************************
-Copyright 1991-1997 by Stichting Mathematisch Centrum, Amsterdam,
-The Netherlands.
-
-                        All Rights Reserved
-
-Permission to use, copy, modify, and distribute this software and its 
-documentation for any purpose and without fee is hereby granted, 
-provided that the above copyright notice appear in all copies and that
-both that copyright notice and this permission notice appear in 
-supporting documentation, and that the names of Stichting Mathematisch
-Centrum or CWI not be used in advertising or publicity pertaining to
-distribution of the software without specific, written prior permission.
-
-STICHTING MATHEMATISCH CENTRUM DISCLAIMS ALL WARRANTIES WITH REGARD TO
-THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
-FITNESS, IN NO EVENT SHALL STICHTING MATHEMATISCH CENTRUM BE LIABLE
-FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
-WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
-ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
-OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
-
-******************************************************************/
-
-/* Macintosh Gestalt interface */
-
-#include "Python.h"
-#include "macglue.h"
-
-#include <Types.h>
-#include <Gestalt.h>
-
-static PyObject *
-gestalt_gestalt(self, args)
-       PyObject *self;
-       PyObject *args;
-{
-       OSErr iErr;
-       char *str;
-       int size;
-       OSType selector;
-       long response;
-       if (!PyArg_Parse(args, "s#", &str, &size))
-               return NULL;
-       if (size != 4) {
-               PyErr_SetString(PyExc_TypeError, "gestalt arg must be 4-char string");
-               return NULL;
-       }
-       selector = *(OSType*)str;
-       iErr = Gestalt ( selector, &response );
-       if (iErr != 0) 
-               return PyMac_Error(iErr);
-       return PyInt_FromLong(response);
-}
-
-static struct PyMethodDef gestalt_methods[] = {
-       {"gestalt", gestalt_gestalt},
-       {NULL, NULL} /* Sentinel */
-};
-
-void
-initgestalt()
-{
-       Py_InitModule("gestalt", gestalt_methods);
-}
diff --git a/Mac/Modules/help/Helpmodule.c b/Mac/Modules/help/Helpmodule.c
deleted file mode 100644 (file)
index 3a44632..0000000
+++ /dev/null
@@ -1,322 +0,0 @@
-
-/* ========================== Module Help =========================== */
-
-#include "Python.h"
-
-
-
-#include "macglue.h"
-#include "pymactoolbox.h"
-
-#include <Balloons.h>
-
-static PyObject *Help_Error;
-
-static PyObject *Help_HMGetHelpMenuHandle(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       MenuHandle mh;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _err = HMGetHelpMenuHandle(&mh);
-       if (_err != noErr) return PyMac_Error(_err);
-       _res = Py_BuildValue("O&",
-                            MenuObj_New, mh);
-       return _res;
-}
-
-static PyObject *Help_HMRemoveBalloon(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _err = HMRemoveBalloon();
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *Help_HMIsBalloon(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Boolean _rv;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _rv = HMIsBalloon();
-       _res = Py_BuildValue("b",
-                            _rv);
-       return _res;
-}
-
-static PyObject *Help_HMGetBalloons(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Boolean _rv;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _rv = HMGetBalloons();
-       _res = Py_BuildValue("b",
-                            _rv);
-       return _res;
-}
-
-static PyObject *Help_HMSetBalloons(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       Boolean flag;
-       if (!PyArg_ParseTuple(_args, "b",
-                             &flag))
-               return NULL;
-       _err = HMSetBalloons(flag);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *Help_HMSetFont(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       SInt16 font;
-       if (!PyArg_ParseTuple(_args, "h",
-                             &font))
-               return NULL;
-       _err = HMSetFont(font);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *Help_HMSetFontSize(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       UInt16 fontSize;
-       if (!PyArg_ParseTuple(_args, "H",
-                             &fontSize))
-               return NULL;
-       _err = HMSetFontSize(fontSize);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *Help_HMGetFont(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       SInt16 font;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _err = HMGetFont(&font);
-       if (_err != noErr) return PyMac_Error(_err);
-       _res = Py_BuildValue("h",
-                            font);
-       return _res;
-}
-
-static PyObject *Help_HMGetFontSize(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       UInt16 fontSize;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _err = HMGetFontSize(&fontSize);
-       if (_err != noErr) return PyMac_Error(_err);
-       _res = Py_BuildValue("H",
-                            fontSize);
-       return _res;
-}
-
-static PyObject *Help_HMSetDialogResID(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       SInt16 resID;
-       if (!PyArg_ParseTuple(_args, "h",
-                             &resID))
-               return NULL;
-       _err = HMSetDialogResID(resID);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *Help_HMSetMenuResID(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       SInt16 menuID;
-       SInt16 resID;
-       if (!PyArg_ParseTuple(_args, "hh",
-                             &menuID,
-                             &resID))
-               return NULL;
-       _err = HMSetMenuResID(menuID,
-                             resID);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *Help_HMScanTemplateItems(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       SInt16 whichID;
-       SInt16 whichResFile;
-       ResType whichType;
-       if (!PyArg_ParseTuple(_args, "hhO&",
-                             &whichID,
-                             &whichResFile,
-                             PyMac_GetOSType, &whichType))
-               return NULL;
-       _err = HMScanTemplateItems(whichID,
-                                  whichResFile,
-                                  whichType);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *Help_HMGetDialogResID(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       SInt16 resID;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _err = HMGetDialogResID(&resID);
-       if (_err != noErr) return PyMac_Error(_err);
-       _res = Py_BuildValue("h",
-                            resID);
-       return _res;
-}
-
-static PyObject *Help_HMGetMenuResID(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       SInt16 menuID;
-       SInt16 resID;
-       if (!PyArg_ParseTuple(_args, "h",
-                             &menuID))
-               return NULL;
-       _err = HMGetMenuResID(menuID,
-                             &resID);
-       if (_err != noErr) return PyMac_Error(_err);
-       _res = Py_BuildValue("h",
-                            resID);
-       return _res;
-}
-
-static PyObject *Help_HMGetBalloonWindow(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       WindowPtr window;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _err = HMGetBalloonWindow(&window);
-       if (_err != noErr) return PyMac_Error(_err);
-       _res = Py_BuildValue("O&",
-                            WinObj_WhichWindow, window);
-       return _res;
-}
-
-static PyMethodDef Help_methods[] = {
-       {"HMGetHelpMenuHandle", (PyCFunction)Help_HMGetHelpMenuHandle, 1,
-        "() -> (MenuHandle mh)"},
-       {"HMRemoveBalloon", (PyCFunction)Help_HMRemoveBalloon, 1,
-        "() -> None"},
-       {"HMIsBalloon", (PyCFunction)Help_HMIsBalloon, 1,
-        "() -> (Boolean _rv)"},
-       {"HMGetBalloons", (PyCFunction)Help_HMGetBalloons, 1,
-        "() -> (Boolean _rv)"},
-       {"HMSetBalloons", (PyCFunction)Help_HMSetBalloons, 1,
-        "(Boolean flag) -> None"},
-       {"HMSetFont", (PyCFunction)Help_HMSetFont, 1,
-        "(SInt16 font) -> None"},
-       {"HMSetFontSize", (PyCFunction)Help_HMSetFontSize, 1,
-        "(UInt16 fontSize) -> None"},
-       {"HMGetFont", (PyCFunction)Help_HMGetFont, 1,
-        "() -> (SInt16 font)"},
-       {"HMGetFontSize", (PyCFunction)Help_HMGetFontSize, 1,
-        "() -> (UInt16 fontSize)"},
-       {"HMSetDialogResID", (PyCFunction)Help_HMSetDialogResID, 1,
-        "(SInt16 resID) -> None"},
-       {"HMSetMenuResID", (PyCFunction)Help_HMSetMenuResID, 1,
-        "(SInt16 menuID, SInt16 resID) -> None"},
-       {"HMScanTemplateItems", (PyCFunction)Help_HMScanTemplateItems, 1,
-        "(SInt16 whichID, SInt16 whichResFile, ResType whichType) -> None"},
-       {"HMGetDialogResID", (PyCFunction)Help_HMGetDialogResID, 1,
-        "() -> (SInt16 resID)"},
-       {"HMGetMenuResID", (PyCFunction)Help_HMGetMenuResID, 1,
-        "(SInt16 menuID) -> (SInt16 resID)"},
-       {"HMGetBalloonWindow", (PyCFunction)Help_HMGetBalloonWindow, 1,
-        "() -> (WindowPtr window)"},
-       {NULL, NULL, 0}
-};
-
-
-
-
-void initHelp()
-{
-       PyObject *m;
-       PyObject *d;
-
-
-
-
-       m = Py_InitModule("Help", Help_methods);
-       d = PyModule_GetDict(m);
-       Help_Error = PyMac_GetOSErrException();
-       if (Help_Error == NULL ||
-           PyDict_SetItemString(d, "Error", Help_Error) != 0)
-               return;
-}
-
-/* ======================== End module Help ========================= */
-
diff --git a/Mac/Modules/icgluemodule.c b/Mac/Modules/icgluemodule.c
deleted file mode 100644 (file)
index b617439..0000000
+++ /dev/null
@@ -1,608 +0,0 @@
-/***********************************************************
-Copyright 1991-1997 by Stichting Mathematisch Centrum, Amsterdam,
-The Netherlands.
-
-                        All Rights Reserved
-
-Permission to use, copy, modify, and distribute this software and its
-documentation for any purpose and without fee is hereby granted,
-provided that the above copyright notice appear in all copies and that
-both that copyright notice and this permission notice appear in
-supporting documentation, and that the names of Stichting Mathematisch
-Centrum or CWI or Corporation for National Research Initiatives or
-CNRI not be used in advertising or publicity pertaining to
-distribution of the software without specific, written prior
-permission.
-
-While CWI is the initial source for this software, a modified version
-is made available by the Corporation for National Research Initiatives
-(CNRI) at the Internet address ftp://ftp.python.org.
-
-STICHTING MATHEMATISCH CENTRUM AND CNRI DISCLAIM ALL WARRANTIES WITH
-REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF
-MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL STICHTING MATHEMATISCH
-CENTRUM OR CNRI BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL
-DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
-PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
-TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
-PERFORMANCE OF THIS SOFTWARE.
-
-******************************************************************/
-
-#include "Python.h"
-#include "macglue.h"
-
-extern int ResObj_Convert(PyObject *, Handle *); /* From Resmodule.c */
-
-#if TARGET_API_MAC_CARBON
-/* The Carbon headers define PRAGMA_ALIGN_SUPPORT to something illegal,
-** because you shouldn't use it for Carbon. All good and well, but portable
-** code still needs it. So, we undefine it here.
-*/
-#undef PRAGMA_ALIGN_SUPPORTED
-#define PRAGMA_ALIGN_SUPPORTED 0
-#endif /* TARGET_API_MAC_CARBON */
-
-#include "ICAPI.h"
-
-static PyObject *ErrorObject;
-
-static PyObject *
-ici_error(ICError err)
-{
-       PyErr_SetObject(ErrorObject, PyInt_FromLong((long)err));
-       return NULL;
-}
-
-/* ----------------------------------------------------- */
-
-/* Declarations for objects of type ic_instance */
-
-typedef struct {
-       PyObject_HEAD
-       ICInstance inst;
-} iciobject;
-
-staticforward PyTypeObject Icitype;
-
-
-
-/* ---------------------------------------------------------------- */
-
-#if !TARGET_API_MAC_CARBON
-static char ici_ICFindConfigFile__doc__[] = 
-"()->None; Find config file in standard places"
-;
-
-static PyObject *
-ici_ICFindConfigFile(self, args)
-       iciobject *self;
-       PyObject *args;
-{
-       ICError err;
-       
-       if (!PyArg_ParseTuple(args, ""))
-               return NULL;
-       if ((err=ICFindConfigFile(self->inst, 0, NULL)) != 0 )
-               return ici_error(err);
-       Py_INCREF(Py_None);
-       return Py_None;
-}
-
-
-static char ici_ICFindUserConfigFile__doc__[] = 
-"(vRefNum, dirID)->None; Find config file in specified place"
-;
-
-static PyObject *
-ici_ICFindUserConfigFile(self, args)
-       iciobject *self;
-       PyObject *args;
-{
-       ICError err;
-       ICDirSpec where;        
-
-       if (!PyArg_ParseTuple(args, "sl", &where.vRefNum, &where.dirID))
-               return NULL;
-       if ((err=ICFindUserConfigFile(self->inst, &where)) != 0 )
-               return ici_error(err);
-       Py_INCREF(Py_None);
-       return Py_None;
-}
-
-
-static char ici_ICChooseConfig__doc__[] = 
-"()->None; Let the user choose a config file"
-;
-
-static PyObject *
-ici_ICChooseConfig(self, args)
-       iciobject *self;
-       PyObject *args;
-{
-       ICError err;
-       
-       if (!PyArg_ParseTuple(args, ""))
-               return NULL;
-       if ((err=ICChooseConfig(self->inst)) != 0 )
-               return ici_error(err);
-       Py_INCREF(Py_None);
-       return Py_None;
-}
-#endif /* !TARGET_API_MAC_CARBON */
-
-
-static char ici_ICChooseNewConfig__doc__[] = 
-"()->None; Let the user choose a new config file"
-;
-
-static PyObject *
-ici_ICChooseNewConfig(self, args)
-       iciobject *self;
-       PyObject *args;
-{
-       ICError err;
-       
-       if (!PyArg_ParseTuple(args, ""))
-               return NULL;
-       if ((err=ICChooseNewConfig(self->inst)) != 0 )
-               return ici_error(err);
-       Py_INCREF(Py_None);
-       return Py_None;
-}
-
-
-static char ici_ICGetSeed__doc__[] = 
-"()->int; Returns int that changes when configuration does"
-;
-
-static PyObject *
-ici_ICGetSeed(self, args)
-       iciobject *self;
-       PyObject *args;
-{
-       ICError err;
-       long seed;
-       
-       if (!PyArg_ParseTuple(args, ""))
-               return NULL;
-       if ((err=ICGetSeed(self->inst, &seed)) != 0 )
-               return ici_error(err);
-       return Py_BuildValue("i", (int)seed);
-}
-
-
-static char ici_ICBegin__doc__[] = 
-"(perm)->None; Lock config file for read/write"
-;
-
-static PyObject *
-ici_ICBegin(self, args)
-       iciobject *self;
-       PyObject *args;
-{
-       ICError err;
-       int perm;
-       
-       if (!PyArg_ParseTuple(args, "i", &perm))
-               return NULL;
-       if ((err=ICBegin(self->inst, (ICPerm)perm)) != 0 )
-               return ici_error(err);
-       Py_INCREF(Py_None);
-       return Py_None;
-}
-
-
-static char ici_ICFindPrefHandle__doc__[] = 
-"(key, handle)->attrs; Lookup key, store result in handle, return attributes"
-;
-
-static PyObject *
-ici_ICFindPrefHandle(self, args)
-       iciobject *self;
-       PyObject *args;
-{
-       ICError err;
-       Str255 key;
-       ICAttr attr;
-       Handle h;
-       
-       if (!PyArg_ParseTuple(args, "O&O&", PyMac_GetStr255, &key, ResObj_Convert, &h))
-               return NULL;
-       if ((err=ICFindPrefHandle(self->inst, key, &attr, h)) != 0 )
-               return ici_error(err);
-       return Py_BuildValue("i", (int)attr);
-}
-
-
-static char ici_ICSetPref__doc__[] = 
-"(key, attr, data)->None; Set preference key to data with attributes"
-;
-
-static PyObject *
-ici_ICSetPref(self, args)
-       iciobject *self;
-       PyObject *args;
-{
-       ICError err;
-       Str255 key;
-       int attr;
-       char *data;
-       int datalen;
-       
-       if (!PyArg_ParseTuple(args, "O&is#", PyMac_GetStr255, &key, &attr, 
-                                       &data, &datalen))
-               return NULL;
-       if ((err=ICSetPref(self->inst, key, (ICAttr)attr, (Ptr)data, 
-                       (long)datalen)) != 0)
-               return ici_error(err);
-       Py_INCREF(Py_None);
-       return Py_None;
-}
-
-
-static char ici_ICCountPref__doc__[] = 
-"()->int; Return number of preferences"
-;
-
-static PyObject *
-ici_ICCountPref(self, args)
-       iciobject *self;
-       PyObject *args;
-{
-       ICError err;
-       long count;
-       
-       if (!PyArg_ParseTuple(args, ""))
-               return NULL;
-       if ((err=ICCountPref(self->inst, &count)) != 0 )
-               return ici_error(err);
-       return Py_BuildValue("i", (int)count);
-}
-
-
-static char ici_ICGetIndPref__doc__[] = 
-"(num)->key; Return key of preference with given index"
-;
-
-static PyObject *
-ici_ICGetIndPref(self, args)
-       iciobject *self;
-       PyObject *args;
-{
-       ICError err;
-       long num;
-       Str255 key;
-       
-       if (!PyArg_ParseTuple(args, "l", &num))
-               return NULL;
-       if ((err=ICGetIndPref(self->inst, num, key)) != 0 )
-               return ici_error(err);
-       return Py_BuildValue("O&", PyMac_BuildStr255, key);
-}
-
-
-static char ici_ICDeletePref__doc__[] = 
-"(key)->None; Delete preference"
-;
-
-static PyObject *
-ici_ICDeletePref(self, args)
-       iciobject *self;
-       PyObject *args;
-{
-       ICError err;
-       Str255 key;
-
-       if (!PyArg_ParseTuple(args, "O&", PyMac_GetStr255, key))
-               return NULL;
-       if ((err=ICDeletePref(self->inst, key)) != 0 )
-               return ici_error(err);
-       Py_INCREF(Py_None);
-       return Py_None;
-}
-
-
-static char ici_ICEnd__doc__[] = 
-"()->None; Unlock file after ICBegin call"
-;
-
-static PyObject *
-ici_ICEnd(self, args)
-       iciobject *self;
-       PyObject *args;
-{
-       ICError err;
-       
-       if (!PyArg_ParseTuple(args, ""))
-               return NULL;
-       if ((err=ICEnd(self->inst)) != 0 )
-               return ici_error(err);
-       Py_INCREF(Py_None);
-       return Py_None;
-}
-
-
-static char ici_ICEditPreferences__doc__[] = 
-"(key)->None; Ask user to edit preferences, staring with key"
-;
-
-static PyObject *
-ici_ICEditPreferences(self, args)
-       iciobject *self;
-       PyObject *args;
-{
-       ICError err;
-       Str255 key;
-       
-       if (!PyArg_ParseTuple(args, "O&", PyMac_GetStr255, key))
-               return NULL;
-       if ((err=ICEditPreferences(self->inst, key)) != 0 )
-               return ici_error(err);
-       Py_INCREF(Py_None);
-       return Py_None;
-}
-
-
-static char ici_ICParseURL__doc__[] = 
-"(hint, data, selStart, selEnd, handle)->selStart, selEnd; Find an URL, return in handle"
-;
-
-static PyObject *
-ici_ICParseURL(self, args)
-       iciobject *self;
-       PyObject *args;
-{
-       ICError err;
-       Str255 hint;
-       char *data;
-       int datalen;
-       long selStart, selEnd;
-       Handle h;
-       
-       if (!PyArg_ParseTuple(args, "O&s#llO&", PyMac_GetStr255, hint, &data, &datalen,
-                               &selStart, &selEnd, ResObj_Convert, &h))
-               return NULL;
-       if ((err=ICParseURL(self->inst, hint, (Ptr)data, (long)datalen,
-                               &selStart, &selEnd, h)) != 0 )
-               return ici_error(err);
-       return Py_BuildValue("ii", (int)selStart, (int)selEnd);
-}
-
-
-static char ici_ICLaunchURL__doc__[] = 
-"(hint, data, selStart, selEnd)->None; Find an URL and launch the correct app"
-;
-
-static PyObject *
-ici_ICLaunchURL(self, args)
-       iciobject *self;
-       PyObject *args;
-{
-       ICError err;
-       Str255 hint;
-       char *data;
-       int datalen;
-       long selStart, selEnd;
-       
-       if (!PyArg_ParseTuple(args, "O&s#ll", PyMac_GetStr255, hint, &data, &datalen,
-                               &selStart, &selEnd))
-               return NULL;
-       if ((err=ICLaunchURL(self->inst, hint, (Ptr)data, (long)datalen,
-                               &selStart, &selEnd)) != 0 )
-               return ici_error(err);
-       return Py_BuildValue("ii", (int)selStart, (int)selEnd);
-}
-
-
-static char ici_ICMapFilename__doc__[] = 
-"(filename)->mapinfo; Get filemap info for given filename"
-;
-
-static PyObject *
-ici_ICMapFilename(self, args)
-       iciobject *self;
-       PyObject *args;
-{
-       ICError err;
-       Str255 filename;
-       ICMapEntry entry;
-       
-       if (!PyArg_ParseTuple(args, "O&", PyMac_GetStr255, filename))
-               return NULL;
-       if ((err=ICMapFilename(self->inst, filename, &entry)) != 0 )
-               return ici_error(err);
-       return Py_BuildValue("hO&O&O&lO&O&O&O&O&", entry.version, 
-               PyMac_BuildOSType, entry.file_type,
-               PyMac_BuildOSType, entry.file_creator, 
-               PyMac_BuildOSType, entry.post_creator, 
-               entry.flags,
-               PyMac_BuildStr255, entry.extension,
-               PyMac_BuildStr255, entry.creator_app_name,
-               PyMac_BuildStr255, entry.post_app_name,
-               PyMac_BuildStr255, entry.MIME_type,
-               PyMac_BuildStr255, entry.entry_name);
-}
-
-
-static char ici_ICMapTypeCreator__doc__[] = 
-"(type, creator, filename)->mapinfo; Get filemap info for given tp/cr/filename"
-;
-
-static PyObject *
-ici_ICMapTypeCreator(self, args)
-       iciobject *self;
-       PyObject *args;
-{
-       ICError err;
-       OSType type, creator;
-       Str255 filename;
-       ICMapEntry entry;
-       
-       if (!PyArg_ParseTuple(args, "O&O&O&",
-                       PyMac_GetOSType, &type,
-                       PyMac_GetOSType, &creator,
-                       PyMac_GetStr255, filename))
-               return NULL;
-       if ((err=ICMapTypeCreator(self->inst, type, creator, filename, &entry)) != 0 )
-               return ici_error(err);
-       return Py_BuildValue("hO&O&O&lO&O&O&O&O&", entry.version, 
-               PyMac_BuildOSType, entry.file_type,
-               PyMac_BuildOSType, entry.file_creator, 
-               PyMac_BuildOSType, entry.post_creator, 
-               entry.flags,
-               PyMac_BuildStr255, entry.extension,
-               PyMac_BuildStr255, entry.creator_app_name,
-               PyMac_BuildStr255, entry.post_app_name,
-               PyMac_BuildStr255, entry.MIME_type,
-               PyMac_BuildStr255, entry.entry_name);
-}
-
-
-static struct PyMethodDef ici_methods[] = {
-#if !TARGET_API_MAC_CARBON
- {"ICFindConfigFile",  (PyCFunction)ici_ICFindConfigFile,      METH_VARARGS,   ici_ICFindConfigFile__doc__},
- {"ICFindUserConfigFile",      (PyCFunction)ici_ICFindUserConfigFile,  METH_VARARGS,   ici_ICFindUserConfigFile__doc__},
- {"ICChooseConfig",    (PyCFunction)ici_ICChooseConfig,        METH_VARARGS,   ici_ICChooseConfig__doc__},
- {"ICChooseNewConfig", (PyCFunction)ici_ICChooseNewConfig,     METH_VARARGS,   ici_ICChooseNewConfig__doc__},
-#endif /* !TARGET_API_MAC_CARBON */
- {"ICGetSeed", (PyCFunction)ici_ICGetSeed,     METH_VARARGS,   ici_ICGetSeed__doc__},
- {"ICBegin",   (PyCFunction)ici_ICBegin,       METH_VARARGS,   ici_ICBegin__doc__},
- {"ICFindPrefHandle",  (PyCFunction)ici_ICFindPrefHandle,      METH_VARARGS,   ici_ICFindPrefHandle__doc__},
- {"ICSetPref", (PyCFunction)ici_ICSetPref,     METH_VARARGS,   ici_ICSetPref__doc__},
- {"ICCountPref",       (PyCFunction)ici_ICCountPref,   METH_VARARGS,   ici_ICCountPref__doc__},
- {"ICGetIndPref",      (PyCFunction)ici_ICGetIndPref,  METH_VARARGS,   ici_ICGetIndPref__doc__},
- {"ICDeletePref",      (PyCFunction)ici_ICDeletePref,  METH_VARARGS,   ici_ICDeletePref__doc__},
- {"ICEnd",     (PyCFunction)ici_ICEnd, METH_VARARGS,   ici_ICEnd__doc__},
- {"ICEditPreferences", (PyCFunction)ici_ICEditPreferences,     METH_VARARGS,   ici_ICEditPreferences__doc__},
- {"ICParseURL",        (PyCFunction)ici_ICParseURL,    METH_VARARGS,   ici_ICParseURL__doc__},
- {"ICLaunchURL",       (PyCFunction)ici_ICLaunchURL,   METH_VARARGS,   ici_ICLaunchURL__doc__},
- {"ICMapFilename",     (PyCFunction)ici_ICMapFilename, METH_VARARGS,   ici_ICMapFilename__doc__},
- {"ICMapTypeCreator",  (PyCFunction)ici_ICMapTypeCreator,      METH_VARARGS,   ici_ICMapTypeCreator__doc__},
-       {NULL,          NULL}           /* sentinel */
-};
-
-/* ---------- */
-
-
-static iciobject *
-newiciobject(OSType creator)
-{
-       iciobject *self;
-       ICError err;
-       
-       self = PyObject_NEW(iciobject, &Icitype);
-       if (self == NULL)
-               return NULL;
-       if ((err=ICStart(&self->inst, creator)) != 0 ) {
-               (void)ici_error(err);
-               PyMem_DEL(self);
-               return NULL;
-       }
-       return self;
-}
-
-
-static void
-ici_dealloc(self)
-       iciobject *self;
-{
-       (void)ICStop(self->inst);
-       PyMem_DEL(self);
-}
-
-static PyObject *
-ici_getattr(self, name)
-       iciobject *self;
-       char *name;
-{
-       return Py_FindMethod(ici_methods, (PyObject *)self, name);
-}
-
-static char Icitype__doc__[] = 
-"Internet Config instance"
-;
-
-static PyTypeObject Icitype = {
-       PyObject_HEAD_INIT(&PyType_Type)
-       0,                              /*ob_size*/
-       "ic_instance",                  /*tp_name*/
-       sizeof(iciobject),              /*tp_basicsize*/
-       0,                              /*tp_itemsize*/
-       /* methods */
-       (destructor)ici_dealloc,        /*tp_dealloc*/
-       (printfunc)0,           /*tp_print*/
-       (getattrfunc)ici_getattr,       /*tp_getattr*/
-       (setattrfunc)0, /*tp_setattr*/
-       (cmpfunc)0,             /*tp_compare*/
-       (reprfunc)0,            /*tp_repr*/
-       0,                      /*tp_as_number*/
-       0,              /*tp_as_sequence*/
-       0,              /*tp_as_mapping*/
-       (hashfunc)0,            /*tp_hash*/
-       (ternaryfunc)0,         /*tp_call*/
-       (reprfunc)0,            /*tp_str*/
-
-       /* Space for future expansion */
-       0L,0L,0L,0L,
-       Icitype__doc__ /* Documentation string */
-};
-
-/* End of code for ic_instance objects */
-/* -------------------------------------------------------- */
-
-
-static char ic_ICStart__doc__[] =
-"(OSType)->ic_instance; Create an Internet Config instance"
-;
-
-static PyObject *
-ic_ICStart(self, args)
-       PyObject *self; /* Not used */
-       PyObject *args;
-{
-       OSType creator;
-
-       if (!PyArg_ParseTuple(args, "O&", PyMac_GetOSType, &creator))
-               return NULL;
-       return (PyObject *)newiciobject(creator);
-}
-
-/* List of methods defined in the module */
-
-static struct PyMethodDef ic_methods[] = {
-       {"ICStart",     (PyCFunction)ic_ICStart,        METH_VARARGS,   ic_ICStart__doc__},
-       {NULL,   (PyCFunction)NULL, 0, NULL}            /* sentinel */
-};
-
-
-/* Initialization function for the module (*must* be called initicglue) */
-
-static char icglue_module_documentation[] = 
-"Implements low-level Internet Config interface"
-;
-
-void
-initicglue()
-{
-       PyObject *m, *d;
-
-       /* Create the module and add the functions */
-       m = Py_InitModule4("icglue", ic_methods,
-               icglue_module_documentation,
-               (PyObject*)NULL,PYTHON_API_VERSION);
-
-       /* Add some symbolic constants to the module */
-       d = PyModule_GetDict(m);
-       ErrorObject = PyString_FromString("icglue.error");
-       PyDict_SetItemString(d, "error", ErrorObject);
-
-       /* XXXX Add constants here */
-       
-       /* Check for errors */
-       if (PyErr_Occurred())
-               Py_FatalError("can't initialize module icglue");
-}
-
diff --git a/Mac/Modules/icn/Icnmodule.c b/Mac/Modules/icn/Icnmodule.c
deleted file mode 100644 (file)
index 4a5eda0..0000000
+++ /dev/null
@@ -1,1526 +0,0 @@
-
-/* =========================== Module Icn =========================== */
-
-#include "Python.h"
-
-
-
-#include "macglue.h"
-#include "pymactoolbox.h"
-
-#include <Icons.h>
-
-static PyObject *Icn_Error;
-
-static PyObject *Icn_GetCIcon(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       CIconHandle _rv;
-       SInt16 iconID;
-       if (!PyArg_ParseTuple(_args, "h",
-                             &iconID))
-               return NULL;
-       _rv = GetCIcon(iconID);
-       _res = Py_BuildValue("O&",
-                            ResObj_New, _rv);
-       return _res;
-}
-
-static PyObject *Icn_PlotCIcon(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Rect theRect;
-       CIconHandle theIcon;
-       if (!PyArg_ParseTuple(_args, "O&O&",
-                             PyMac_GetRect, &theRect,
-                             ResObj_Convert, &theIcon))
-               return NULL;
-       PlotCIcon(&theRect,
-                 theIcon);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *Icn_DisposeCIcon(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       CIconHandle theIcon;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             ResObj_Convert, &theIcon))
-               return NULL;
-       DisposeCIcon(theIcon);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *Icn_GetIcon(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Handle _rv;
-       SInt16 iconID;
-       if (!PyArg_ParseTuple(_args, "h",
-                             &iconID))
-               return NULL;
-       _rv = GetIcon(iconID);
-       _res = Py_BuildValue("O&",
-                            ResObj_New, _rv);
-       return _res;
-}
-
-static PyObject *Icn_PlotIcon(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Rect theRect;
-       Handle theIcon;
-       if (!PyArg_ParseTuple(_args, "O&O&",
-                             PyMac_GetRect, &theRect,
-                             ResObj_Convert, &theIcon))
-               return NULL;
-       PlotIcon(&theRect,
-                theIcon);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *Icn_PlotIconID(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       Rect theRect;
-       IconAlignmentType align;
-       IconTransformType transform;
-       SInt16 theResID;
-       if (!PyArg_ParseTuple(_args, "O&hhh",
-                             PyMac_GetRect, &theRect,
-                             &align,
-                             &transform,
-                             &theResID))
-               return NULL;
-       _err = PlotIconID(&theRect,
-                         align,
-                         transform,
-                         theResID);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *Icn_NewIconSuite(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       IconSuiteRef theIconSuite;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _err = NewIconSuite(&theIconSuite);
-       if (_err != noErr) return PyMac_Error(_err);
-       _res = Py_BuildValue("O&",
-                            ResObj_New, theIconSuite);
-       return _res;
-}
-
-static PyObject *Icn_AddIconToSuite(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       Handle theIconData;
-       IconSuiteRef theSuite;
-       ResType theType;
-       if (!PyArg_ParseTuple(_args, "O&O&O&",
-                             ResObj_Convert, &theIconData,
-                             ResObj_Convert, &theSuite,
-                             PyMac_GetOSType, &theType))
-               return NULL;
-       _err = AddIconToSuite(theIconData,
-                             theSuite,
-                             theType);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *Icn_GetIconFromSuite(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       Handle theIconData;
-       IconSuiteRef theSuite;
-       ResType theType;
-       if (!PyArg_ParseTuple(_args, "O&O&",
-                             ResObj_Convert, &theSuite,
-                             PyMac_GetOSType, &theType))
-               return NULL;
-       _err = GetIconFromSuite(&theIconData,
-                               theSuite,
-                               theType);
-       if (_err != noErr) return PyMac_Error(_err);
-       _res = Py_BuildValue("O&",
-                            ResObj_New, theIconData);
-       return _res;
-}
-
-static PyObject *Icn_GetIconSuite(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       IconSuiteRef theIconSuite;
-       SInt16 theResID;
-       IconSelectorValue selector;
-       if (!PyArg_ParseTuple(_args, "hl",
-                             &theResID,
-                             &selector))
-               return NULL;
-       _err = GetIconSuite(&theIconSuite,
-                           theResID,
-                           selector);
-       if (_err != noErr) return PyMac_Error(_err);
-       _res = Py_BuildValue("O&",
-                            ResObj_New, theIconSuite);
-       return _res;
-}
-
-static PyObject *Icn_DisposeIconSuite(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       IconSuiteRef theIconSuite;
-       Boolean disposeData;
-       if (!PyArg_ParseTuple(_args, "O&b",
-                             ResObj_Convert, &theIconSuite,
-                             &disposeData))
-               return NULL;
-       _err = DisposeIconSuite(theIconSuite,
-                               disposeData);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *Icn_PlotIconSuite(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       Rect theRect;
-       IconAlignmentType align;
-       IconTransformType transform;
-       IconSuiteRef theIconSuite;
-       if (!PyArg_ParseTuple(_args, "O&hhO&",
-                             PyMac_GetRect, &theRect,
-                             &align,
-                             &transform,
-                             ResObj_Convert, &theIconSuite))
-               return NULL;
-       _err = PlotIconSuite(&theRect,
-                            align,
-                            transform,
-                            theIconSuite);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *Icn_LoadIconCache(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       Rect theRect;
-       IconAlignmentType align;
-       IconTransformType transform;
-       IconCacheRef theIconCache;
-       if (!PyArg_ParseTuple(_args, "O&hhO&",
-                             PyMac_GetRect, &theRect,
-                             &align,
-                             &transform,
-                             ResObj_Convert, &theIconCache))
-               return NULL;
-       _err = LoadIconCache(&theRect,
-                            align,
-                            transform,
-                            theIconCache);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *Icn_GetLabel(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       SInt16 labelNumber;
-       RGBColor labelColor;
-       Str255 labelString;
-       if (!PyArg_ParseTuple(_args, "hO&",
-                             &labelNumber,
-                             PyMac_GetStr255, labelString))
-               return NULL;
-       _err = GetLabel(labelNumber,
-                       &labelColor,
-                       labelString);
-       if (_err != noErr) return PyMac_Error(_err);
-       _res = Py_BuildValue("O&",
-                            QdRGB_New, &labelColor);
-       return _res;
-}
-
-static PyObject *Icn_PtInIconID(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Boolean _rv;
-       Point testPt;
-       Rect iconRect;
-       IconAlignmentType align;
-       SInt16 iconID;
-       if (!PyArg_ParseTuple(_args, "O&O&hh",
-                             PyMac_GetPoint, &testPt,
-                             PyMac_GetRect, &iconRect,
-                             &align,
-                             &iconID))
-               return NULL;
-       _rv = PtInIconID(testPt,
-                        &iconRect,
-                        align,
-                        iconID);
-       _res = Py_BuildValue("b",
-                            _rv);
-       return _res;
-}
-
-static PyObject *Icn_PtInIconSuite(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Boolean _rv;
-       Point testPt;
-       Rect iconRect;
-       IconAlignmentType align;
-       IconSuiteRef theIconSuite;
-       if (!PyArg_ParseTuple(_args, "O&O&hO&",
-                             PyMac_GetPoint, &testPt,
-                             PyMac_GetRect, &iconRect,
-                             &align,
-                             ResObj_Convert, &theIconSuite))
-               return NULL;
-       _rv = PtInIconSuite(testPt,
-                           &iconRect,
-                           align,
-                           theIconSuite);
-       _res = Py_BuildValue("b",
-                            _rv);
-       return _res;
-}
-
-static PyObject *Icn_RectInIconID(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Boolean _rv;
-       Rect testRect;
-       Rect iconRect;
-       IconAlignmentType align;
-       SInt16 iconID;
-       if (!PyArg_ParseTuple(_args, "O&O&hh",
-                             PyMac_GetRect, &testRect,
-                             PyMac_GetRect, &iconRect,
-                             &align,
-                             &iconID))
-               return NULL;
-       _rv = RectInIconID(&testRect,
-                          &iconRect,
-                          align,
-                          iconID);
-       _res = Py_BuildValue("b",
-                            _rv);
-       return _res;
-}
-
-static PyObject *Icn_RectInIconSuite(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Boolean _rv;
-       Rect testRect;
-       Rect iconRect;
-       IconAlignmentType align;
-       IconSuiteRef theIconSuite;
-       if (!PyArg_ParseTuple(_args, "O&O&hO&",
-                             PyMac_GetRect, &testRect,
-                             PyMac_GetRect, &iconRect,
-                             &align,
-                             ResObj_Convert, &theIconSuite))
-               return NULL;
-       _rv = RectInIconSuite(&testRect,
-                             &iconRect,
-                             align,
-                             theIconSuite);
-       _res = Py_BuildValue("b",
-                            _rv);
-       return _res;
-}
-
-static PyObject *Icn_IconIDToRgn(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       RgnHandle theRgn;
-       Rect iconRect;
-       IconAlignmentType align;
-       SInt16 iconID;
-       if (!PyArg_ParseTuple(_args, "O&O&hh",
-                             ResObj_Convert, &theRgn,
-                             PyMac_GetRect, &iconRect,
-                             &align,
-                             &iconID))
-               return NULL;
-       _err = IconIDToRgn(theRgn,
-                          &iconRect,
-                          align,
-                          iconID);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *Icn_IconSuiteToRgn(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       RgnHandle theRgn;
-       Rect iconRect;
-       IconAlignmentType align;
-       IconSuiteRef theIconSuite;
-       if (!PyArg_ParseTuple(_args, "O&O&hO&",
-                             ResObj_Convert, &theRgn,
-                             PyMac_GetRect, &iconRect,
-                             &align,
-                             ResObj_Convert, &theIconSuite))
-               return NULL;
-       _err = IconSuiteToRgn(theRgn,
-                             &iconRect,
-                             align,
-                             theIconSuite);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *Icn_SetSuiteLabel(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       IconSuiteRef theSuite;
-       SInt16 theLabel;
-       if (!PyArg_ParseTuple(_args, "O&h",
-                             ResObj_Convert, &theSuite,
-                             &theLabel))
-               return NULL;
-       _err = SetSuiteLabel(theSuite,
-                            theLabel);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *Icn_GetSuiteLabel(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       SInt16 _rv;
-       IconSuiteRef theSuite;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             ResObj_Convert, &theSuite))
-               return NULL;
-       _rv = GetSuiteLabel(theSuite);
-       _res = Py_BuildValue("h",
-                            _rv);
-       return _res;
-}
-
-static PyObject *Icn_PlotIconHandle(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       Rect theRect;
-       IconAlignmentType align;
-       IconTransformType transform;
-       Handle theIcon;
-       if (!PyArg_ParseTuple(_args, "O&hhO&",
-                             PyMac_GetRect, &theRect,
-                             &align,
-                             &transform,
-                             ResObj_Convert, &theIcon))
-               return NULL;
-       _err = PlotIconHandle(&theRect,
-                             align,
-                             transform,
-                             theIcon);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *Icn_PlotSICNHandle(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       Rect theRect;
-       IconAlignmentType align;
-       IconTransformType transform;
-       Handle theSICN;
-       if (!PyArg_ParseTuple(_args, "O&hhO&",
-                             PyMac_GetRect, &theRect,
-                             &align,
-                             &transform,
-                             ResObj_Convert, &theSICN))
-               return NULL;
-       _err = PlotSICNHandle(&theRect,
-                             align,
-                             transform,
-                             theSICN);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *Icn_PlotCIconHandle(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       Rect theRect;
-       IconAlignmentType align;
-       IconTransformType transform;
-       CIconHandle theCIcon;
-       if (!PyArg_ParseTuple(_args, "O&hhO&",
-                             PyMac_GetRect, &theRect,
-                             &align,
-                             &transform,
-                             ResObj_Convert, &theCIcon))
-               return NULL;
-       _err = PlotCIconHandle(&theRect,
-                              align,
-                              transform,
-                              theCIcon);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-#if !TARGET_API_MAC_CARBON
-
-static PyObject *Icn_IconServicesTerminate(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       IconServicesTerminate();
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-#endif
-
-static PyObject *Icn_IconRefToIconFamily(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       IconRef theIconRef;
-       IconSelectorValue whichIcons;
-       IconFamilyHandle iconFamily;
-       if (!PyArg_ParseTuple(_args, "O&l",
-                             ResObj_Convert, &theIconRef,
-                             &whichIcons))
-               return NULL;
-       _err = IconRefToIconFamily(theIconRef,
-                                  whichIcons,
-                                  &iconFamily);
-       if (_err != noErr) return PyMac_Error(_err);
-       _res = Py_BuildValue("O&",
-                            ResObj_New, iconFamily);
-       return _res;
-}
-
-static PyObject *Icn_IconFamilyToIconSuite(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       IconFamilyHandle iconFamily;
-       IconSelectorValue whichIcons;
-       IconSuiteRef iconSuite;
-       if (!PyArg_ParseTuple(_args, "O&l",
-                             ResObj_Convert, &iconFamily,
-                             &whichIcons))
-               return NULL;
-       _err = IconFamilyToIconSuite(iconFamily,
-                                    whichIcons,
-                                    &iconSuite);
-       if (_err != noErr) return PyMac_Error(_err);
-       _res = Py_BuildValue("O&",
-                            ResObj_New, iconSuite);
-       return _res;
-}
-
-static PyObject *Icn_IconSuiteToIconFamily(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       IconSuiteRef iconSuite;
-       IconSelectorValue whichIcons;
-       IconFamilyHandle iconFamily;
-       if (!PyArg_ParseTuple(_args, "O&l",
-                             ResObj_Convert, &iconSuite,
-                             &whichIcons))
-               return NULL;
-       _err = IconSuiteToIconFamily(iconSuite,
-                                    whichIcons,
-                                    &iconFamily);
-       if (_err != noErr) return PyMac_Error(_err);
-       _res = Py_BuildValue("O&",
-                            ResObj_New, iconFamily);
-       return _res;
-}
-
-static PyObject *Icn_SetIconFamilyData(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       IconFamilyHandle iconFamily;
-       OSType iconType;
-       Handle h;
-       if (!PyArg_ParseTuple(_args, "O&O&O&",
-                             ResObj_Convert, &iconFamily,
-                             PyMac_GetOSType, &iconType,
-                             ResObj_Convert, &h))
-               return NULL;
-       _err = SetIconFamilyData(iconFamily,
-                                iconType,
-                                h);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *Icn_GetIconFamilyData(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       IconFamilyHandle iconFamily;
-       OSType iconType;
-       Handle h;
-       if (!PyArg_ParseTuple(_args, "O&O&O&",
-                             ResObj_Convert, &iconFamily,
-                             PyMac_GetOSType, &iconType,
-                             ResObj_Convert, &h))
-               return NULL;
-       _err = GetIconFamilyData(iconFamily,
-                                iconType,
-                                h);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *Icn_GetIconRefOwners(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       IconRef theIconRef;
-       UInt16 owners;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             ResObj_Convert, &theIconRef))
-               return NULL;
-       _err = GetIconRefOwners(theIconRef,
-                               &owners);
-       if (_err != noErr) return PyMac_Error(_err);
-       _res = Py_BuildValue("H",
-                            owners);
-       return _res;
-}
-
-static PyObject *Icn_AcquireIconRef(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       IconRef theIconRef;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             ResObj_Convert, &theIconRef))
-               return NULL;
-       _err = AcquireIconRef(theIconRef);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *Icn_ReleaseIconRef(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       IconRef theIconRef;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             ResObj_Convert, &theIconRef))
-               return NULL;
-       _err = ReleaseIconRef(theIconRef);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *Icn_GetIconRefFromFile(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       FSSpec theFile;
-       IconRef theIconRef;
-       SInt16 theLabel;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             PyMac_GetFSSpec, &theFile))
-               return NULL;
-       _err = GetIconRefFromFile(&theFile,
-                                 &theIconRef,
-                                 &theLabel);
-       if (_err != noErr) return PyMac_Error(_err);
-       _res = Py_BuildValue("O&h",
-                            ResObj_New, theIconRef,
-                            theLabel);
-       return _res;
-}
-
-static PyObject *Icn_GetIconRef(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       SInt16 vRefNum;
-       OSType creator;
-       OSType iconType;
-       IconRef theIconRef;
-       if (!PyArg_ParseTuple(_args, "hO&O&",
-                             &vRefNum,
-                             PyMac_GetOSType, &creator,
-                             PyMac_GetOSType, &iconType))
-               return NULL;
-       _err = GetIconRef(vRefNum,
-                         creator,
-                         iconType,
-                         &theIconRef);
-       if (_err != noErr) return PyMac_Error(_err);
-       _res = Py_BuildValue("O&",
-                            ResObj_New, theIconRef);
-       return _res;
-}
-
-static PyObject *Icn_GetIconRefFromFolder(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       SInt16 vRefNum;
-       SInt32 parentFolderID;
-       SInt32 folderID;
-       SInt8 attributes;
-       SInt8 accessPrivileges;
-       IconRef theIconRef;
-       if (!PyArg_ParseTuple(_args, "hllbb",
-                             &vRefNum,
-                             &parentFolderID,
-                             &folderID,
-                             &attributes,
-                             &accessPrivileges))
-               return NULL;
-       _err = GetIconRefFromFolder(vRefNum,
-                                   parentFolderID,
-                                   folderID,
-                                   attributes,
-                                   accessPrivileges,
-                                   &theIconRef);
-       if (_err != noErr) return PyMac_Error(_err);
-       _res = Py_BuildValue("O&",
-                            ResObj_New, theIconRef);
-       return _res;
-}
-
-static PyObject *Icn_RegisterIconRefFromIconFamily(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       OSType creator;
-       OSType iconType;
-       IconFamilyHandle iconFamily;
-       IconRef theIconRef;
-       if (!PyArg_ParseTuple(_args, "O&O&O&",
-                             PyMac_GetOSType, &creator,
-                             PyMac_GetOSType, &iconType,
-                             ResObj_Convert, &iconFamily))
-               return NULL;
-       _err = RegisterIconRefFromIconFamily(creator,
-                                            iconType,
-                                            iconFamily,
-                                            &theIconRef);
-       if (_err != noErr) return PyMac_Error(_err);
-       _res = Py_BuildValue("O&",
-                            ResObj_New, theIconRef);
-       return _res;
-}
-
-static PyObject *Icn_RegisterIconRefFromResource(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       OSType creator;
-       OSType iconType;
-       FSSpec resourceFile;
-       SInt16 resourceID;
-       IconRef theIconRef;
-       if (!PyArg_ParseTuple(_args, "O&O&O&h",
-                             PyMac_GetOSType, &creator,
-                             PyMac_GetOSType, &iconType,
-                             PyMac_GetFSSpec, &resourceFile,
-                             &resourceID))
-               return NULL;
-       _err = RegisterIconRefFromResource(creator,
-                                          iconType,
-                                          &resourceFile,
-                                          resourceID,
-                                          &theIconRef);
-       if (_err != noErr) return PyMac_Error(_err);
-       _res = Py_BuildValue("O&",
-                            ResObj_New, theIconRef);
-       return _res;
-}
-
-static PyObject *Icn_UnregisterIconRef(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       OSType creator;
-       OSType iconType;
-       if (!PyArg_ParseTuple(_args, "O&O&",
-                             PyMac_GetOSType, &creator,
-                             PyMac_GetOSType, &iconType))
-               return NULL;
-       _err = UnregisterIconRef(creator,
-                                iconType);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *Icn_UpdateIconRef(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       IconRef theIconRef;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             ResObj_Convert, &theIconRef))
-               return NULL;
-       _err = UpdateIconRef(theIconRef);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *Icn_OverrideIconRefFromResource(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       IconRef theIconRef;
-       FSSpec resourceFile;
-       SInt16 resourceID;
-       if (!PyArg_ParseTuple(_args, "O&O&h",
-                             ResObj_Convert, &theIconRef,
-                             PyMac_GetFSSpec, &resourceFile,
-                             &resourceID))
-               return NULL;
-       _err = OverrideIconRefFromResource(theIconRef,
-                                          &resourceFile,
-                                          resourceID);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *Icn_OverrideIconRef(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       IconRef oldIconRef;
-       IconRef newIconRef;
-       if (!PyArg_ParseTuple(_args, "O&O&",
-                             ResObj_Convert, &oldIconRef,
-                             ResObj_Convert, &newIconRef))
-               return NULL;
-       _err = OverrideIconRef(oldIconRef,
-                              newIconRef);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *Icn_RemoveIconRefOverride(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       IconRef theIconRef;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             ResObj_Convert, &theIconRef))
-               return NULL;
-       _err = RemoveIconRefOverride(theIconRef);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *Icn_CompositeIconRef(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       IconRef backgroundIconRef;
-       IconRef foregroundIconRef;
-       IconRef compositeIconRef;
-       if (!PyArg_ParseTuple(_args, "O&O&",
-                             ResObj_Convert, &backgroundIconRef,
-                             ResObj_Convert, &foregroundIconRef))
-               return NULL;
-       _err = CompositeIconRef(backgroundIconRef,
-                               foregroundIconRef,
-                               &compositeIconRef);
-       if (_err != noErr) return PyMac_Error(_err);
-       _res = Py_BuildValue("O&",
-                            ResObj_New, compositeIconRef);
-       return _res;
-}
-
-static PyObject *Icn_IsIconRefComposite(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       IconRef compositeIconRef;
-       IconRef backgroundIconRef;
-       IconRef foregroundIconRef;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             ResObj_Convert, &compositeIconRef))
-               return NULL;
-       _err = IsIconRefComposite(compositeIconRef,
-                                 &backgroundIconRef,
-                                 &foregroundIconRef);
-       if (_err != noErr) return PyMac_Error(_err);
-       _res = Py_BuildValue("O&O&",
-                            ResObj_New, backgroundIconRef,
-                            ResObj_New, foregroundIconRef);
-       return _res;
-}
-
-static PyObject *Icn_IsValidIconRef(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Boolean _rv;
-       IconRef theIconRef;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             ResObj_Convert, &theIconRef))
-               return NULL;
-       _rv = IsValidIconRef(theIconRef);
-       _res = Py_BuildValue("b",
-                            _rv);
-       return _res;
-}
-
-static PyObject *Icn_PlotIconRef(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       Rect theRect;
-       IconAlignmentType align;
-       IconTransformType transform;
-       IconServicesUsageFlags theIconServicesUsageFlags;
-       IconRef theIconRef;
-       if (!PyArg_ParseTuple(_args, "O&hhlO&",
-                             PyMac_GetRect, &theRect,
-                             &align,
-                             &transform,
-                             &theIconServicesUsageFlags,
-                             ResObj_Convert, &theIconRef))
-               return NULL;
-       _err = PlotIconRef(&theRect,
-                          align,
-                          transform,
-                          theIconServicesUsageFlags,
-                          theIconRef);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *Icn_PtInIconRef(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Boolean _rv;
-       Point testPt;
-       Rect iconRect;
-       IconAlignmentType align;
-       IconServicesUsageFlags theIconServicesUsageFlags;
-       IconRef theIconRef;
-       if (!PyArg_ParseTuple(_args, "O&O&hlO&",
-                             PyMac_GetPoint, &testPt,
-                             PyMac_GetRect, &iconRect,
-                             &align,
-                             &theIconServicesUsageFlags,
-                             ResObj_Convert, &theIconRef))
-               return NULL;
-       _rv = PtInIconRef(&testPt,
-                         &iconRect,
-                         align,
-                         theIconServicesUsageFlags,
-                         theIconRef);
-       _res = Py_BuildValue("b",
-                            _rv);
-       return _res;
-}
-
-static PyObject *Icn_RectInIconRef(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Boolean _rv;
-       Rect testRect;
-       Rect iconRect;
-       IconAlignmentType align;
-       IconServicesUsageFlags iconServicesUsageFlags;
-       IconRef theIconRef;
-       if (!PyArg_ParseTuple(_args, "O&O&hlO&",
-                             PyMac_GetRect, &testRect,
-                             PyMac_GetRect, &iconRect,
-                             &align,
-                             &iconServicesUsageFlags,
-                             ResObj_Convert, &theIconRef))
-               return NULL;
-       _rv = RectInIconRef(&testRect,
-                           &iconRect,
-                           align,
-                           iconServicesUsageFlags,
-                           theIconRef);
-       _res = Py_BuildValue("b",
-                            _rv);
-       return _res;
-}
-
-static PyObject *Icn_IconRefToRgn(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       RgnHandle theRgn;
-       Rect iconRect;
-       IconAlignmentType align;
-       IconServicesUsageFlags iconServicesUsageFlags;
-       IconRef theIconRef;
-       if (!PyArg_ParseTuple(_args, "O&O&hlO&",
-                             ResObj_Convert, &theRgn,
-                             PyMac_GetRect, &iconRect,
-                             &align,
-                             &iconServicesUsageFlags,
-                             ResObj_Convert, &theIconRef))
-               return NULL;
-       _err = IconRefToRgn(theRgn,
-                           &iconRect,
-                           align,
-                           iconServicesUsageFlags,
-                           theIconRef);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *Icn_GetIconSizesFromIconRef(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       IconSelectorValue iconSelectorInput;
-       IconSelectorValue iconSelectorOutputPtr;
-       IconServicesUsageFlags iconServicesUsageFlags;
-       IconRef theIconRef;
-       if (!PyArg_ParseTuple(_args, "llO&",
-                             &iconSelectorInput,
-                             &iconServicesUsageFlags,
-                             ResObj_Convert, &theIconRef))
-               return NULL;
-       _err = GetIconSizesFromIconRef(iconSelectorInput,
-                                      &iconSelectorOutputPtr,
-                                      iconServicesUsageFlags,
-                                      theIconRef);
-       if (_err != noErr) return PyMac_Error(_err);
-       _res = Py_BuildValue("l",
-                            iconSelectorOutputPtr);
-       return _res;
-}
-
-static PyObject *Icn_FlushIconRefs(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       OSType creator;
-       OSType iconType;
-       if (!PyArg_ParseTuple(_args, "O&O&",
-                             PyMac_GetOSType, &creator,
-                             PyMac_GetOSType, &iconType))
-               return NULL;
-       _err = FlushIconRefs(creator,
-                            iconType);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *Icn_FlushIconRefsByVolume(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       SInt16 vRefNum;
-       if (!PyArg_ParseTuple(_args, "h",
-                             &vRefNum))
-               return NULL;
-       _err = FlushIconRefsByVolume(vRefNum);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *Icn_SetCustomIconsEnabled(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       SInt16 vRefNum;
-       Boolean enableCustomIcons;
-       if (!PyArg_ParseTuple(_args, "hb",
-                             &vRefNum,
-                             &enableCustomIcons))
-               return NULL;
-       _err = SetCustomIconsEnabled(vRefNum,
-                                    enableCustomIcons);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *Icn_GetCustomIconsEnabled(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       SInt16 vRefNum;
-       Boolean customIconsEnabled;
-       if (!PyArg_ParseTuple(_args, "h",
-                             &vRefNum))
-               return NULL;
-       _err = GetCustomIconsEnabled(vRefNum,
-                                    &customIconsEnabled);
-       if (_err != noErr) return PyMac_Error(_err);
-       _res = Py_BuildValue("b",
-                            customIconsEnabled);
-       return _res;
-}
-
-static PyObject *Icn_IsIconRefMaskEmpty(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Boolean _rv;
-       IconRef iconRef;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             ResObj_Convert, &iconRef))
-               return NULL;
-       _rv = IsIconRefMaskEmpty(iconRef);
-       _res = Py_BuildValue("b",
-                            _rv);
-       return _res;
-}
-
-#if TARGET_API_MAC_CARBON
-
-static PyObject *Icn_GetIconRefVariant(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       IconRef _rv;
-       IconRef inIconRef;
-       OSType inVariant;
-       IconTransformType outTransform;
-       if (!PyArg_ParseTuple(_args, "O&O&",
-                             ResObj_Convert, &inIconRef,
-                             PyMac_GetOSType, &inVariant))
-               return NULL;
-       _rv = GetIconRefVariant(inIconRef,
-                               inVariant,
-                               &outTransform);
-       _res = Py_BuildValue("O&h",
-                            ResObj_New, _rv,
-                            outTransform);
-       return _res;
-}
-#endif
-
-#if TARGET_API_MAC_CARBON
-
-static PyObject *Icn_RegisterIconRefFromIconFile(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       OSType creator;
-       OSType iconType;
-       FSSpec iconFile;
-       IconRef theIconRef;
-       if (!PyArg_ParseTuple(_args, "O&O&O&",
-                             PyMac_GetOSType, &creator,
-                             PyMac_GetOSType, &iconType,
-                             PyMac_GetFSSpec, &iconFile))
-               return NULL;
-       _err = RegisterIconRefFromIconFile(creator,
-                                          iconType,
-                                          &iconFile,
-                                          &theIconRef);
-       if (_err != noErr) return PyMac_Error(_err);
-       _res = Py_BuildValue("O&",
-                            ResObj_New, theIconRef);
-       return _res;
-}
-#endif
-
-#if TARGET_API_MAC_CARBON
-
-static PyObject *Icn_ReadIconFile(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       FSSpec iconFile;
-       IconFamilyHandle iconFamily;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             PyMac_GetFSSpec, &iconFile))
-               return NULL;
-       _err = ReadIconFile(&iconFile,
-                           &iconFamily);
-       if (_err != noErr) return PyMac_Error(_err);
-       _res = Py_BuildValue("O&",
-                            ResObj_New, iconFamily);
-       return _res;
-}
-#endif
-
-#if TARGET_API_MAC_CARBON
-
-static PyObject *Icn_WriteIconFile(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       IconFamilyHandle iconFamily;
-       FSSpec iconFile;
-       if (!PyArg_ParseTuple(_args, "O&O&",
-                             ResObj_Convert, &iconFamily,
-                             PyMac_GetFSSpec, &iconFile))
-               return NULL;
-       _err = WriteIconFile(iconFamily,
-                            &iconFile);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-#endif
-
-static PyMethodDef Icn_methods[] = {
-       {"GetCIcon", (PyCFunction)Icn_GetCIcon, 1,
-        "(SInt16 iconID) -> (CIconHandle _rv)"},
-       {"PlotCIcon", (PyCFunction)Icn_PlotCIcon, 1,
-        "(Rect theRect, CIconHandle theIcon) -> None"},
-       {"DisposeCIcon", (PyCFunction)Icn_DisposeCIcon, 1,
-        "(CIconHandle theIcon) -> None"},
-       {"GetIcon", (PyCFunction)Icn_GetIcon, 1,
-        "(SInt16 iconID) -> (Handle _rv)"},
-       {"PlotIcon", (PyCFunction)Icn_PlotIcon, 1,
-        "(Rect theRect, Handle theIcon) -> None"},
-       {"PlotIconID", (PyCFunction)Icn_PlotIconID, 1,
-        "(Rect theRect, IconAlignmentType align, IconTransformType transform, SInt16 theResID) -> None"},
-       {"NewIconSuite", (PyCFunction)Icn_NewIconSuite, 1,
-        "() -> (IconSuiteRef theIconSuite)"},
-       {"AddIconToSuite", (PyCFunction)Icn_AddIconToSuite, 1,
-        "(Handle theIconData, IconSuiteRef theSuite, ResType theType) -> None"},
-       {"GetIconFromSuite", (PyCFunction)Icn_GetIconFromSuite, 1,
-        "(IconSuiteRef theSuite, ResType theType) -> (Handle theIconData)"},
-       {"GetIconSuite", (PyCFunction)Icn_GetIconSuite, 1,
-        "(SInt16 theResID, IconSelectorValue selector) -> (IconSuiteRef theIconSuite)"},
-       {"DisposeIconSuite", (PyCFunction)Icn_DisposeIconSuite, 1,
-        "(IconSuiteRef theIconSuite, Boolean disposeData) -> None"},
-       {"PlotIconSuite", (PyCFunction)Icn_PlotIconSuite, 1,
-        "(Rect theRect, IconAlignmentType align, IconTransformType transform, IconSuiteRef theIconSuite) -> None"},
-       {"LoadIconCache", (PyCFunction)Icn_LoadIconCache, 1,
-        "(Rect theRect, IconAlignmentType align, IconTransformType transform, IconCacheRef theIconCache) -> None"},
-       {"GetLabel", (PyCFunction)Icn_GetLabel, 1,
-        "(SInt16 labelNumber, Str255 labelString) -> (RGBColor labelColor)"},
-       {"PtInIconID", (PyCFunction)Icn_PtInIconID, 1,
-        "(Point testPt, Rect iconRect, IconAlignmentType align, SInt16 iconID) -> (Boolean _rv)"},
-       {"PtInIconSuite", (PyCFunction)Icn_PtInIconSuite, 1,
-        "(Point testPt, Rect iconRect, IconAlignmentType align, IconSuiteRef theIconSuite) -> (Boolean _rv)"},
-       {"RectInIconID", (PyCFunction)Icn_RectInIconID, 1,
-        "(Rect testRect, Rect iconRect, IconAlignmentType align, SInt16 iconID) -> (Boolean _rv)"},
-       {"RectInIconSuite", (PyCFunction)Icn_RectInIconSuite, 1,
-        "(Rect testRect, Rect iconRect, IconAlignmentType align, IconSuiteRef theIconSuite) -> (Boolean _rv)"},
-       {"IconIDToRgn", (PyCFunction)Icn_IconIDToRgn, 1,
-        "(RgnHandle theRgn, Rect iconRect, IconAlignmentType align, SInt16 iconID) -> None"},
-       {"IconSuiteToRgn", (PyCFunction)Icn_IconSuiteToRgn, 1,
-        "(RgnHandle theRgn, Rect iconRect, IconAlignmentType align, IconSuiteRef theIconSuite) -> None"},
-       {"SetSuiteLabel", (PyCFunction)Icn_SetSuiteLabel, 1,
-        "(IconSuiteRef theSuite, SInt16 theLabel) -> None"},
-       {"GetSuiteLabel", (PyCFunction)Icn_GetSuiteLabel, 1,
-        "(IconSuiteRef theSuite) -> (SInt16 _rv)"},
-       {"PlotIconHandle", (PyCFunction)Icn_PlotIconHandle, 1,
-        "(Rect theRect, IconAlignmentType align, IconTransformType transform, Handle theIcon) -> None"},
-       {"PlotSICNHandle", (PyCFunction)Icn_PlotSICNHandle, 1,
-        "(Rect theRect, IconAlignmentType align, IconTransformType transform, Handle theSICN) -> None"},
-       {"PlotCIconHandle", (PyCFunction)Icn_PlotCIconHandle, 1,
-        "(Rect theRect, IconAlignmentType align, IconTransformType transform, CIconHandle theCIcon) -> None"},
-
-#if !TARGET_API_MAC_CARBON
-       {"IconServicesTerminate", (PyCFunction)Icn_IconServicesTerminate, 1,
-        "() -> None"},
-#endif
-       {"IconRefToIconFamily", (PyCFunction)Icn_IconRefToIconFamily, 1,
-        "(IconRef theIconRef, IconSelectorValue whichIcons) -> (IconFamilyHandle iconFamily)"},
-       {"IconFamilyToIconSuite", (PyCFunction)Icn_IconFamilyToIconSuite, 1,
-        "(IconFamilyHandle iconFamily, IconSelectorValue whichIcons) -> (IconSuiteRef iconSuite)"},
-       {"IconSuiteToIconFamily", (PyCFunction)Icn_IconSuiteToIconFamily, 1,
-        "(IconSuiteRef iconSuite, IconSelectorValue whichIcons) -> (IconFamilyHandle iconFamily)"},
-       {"SetIconFamilyData", (PyCFunction)Icn_SetIconFamilyData, 1,
-        "(IconFamilyHandle iconFamily, OSType iconType, Handle h) -> None"},
-       {"GetIconFamilyData", (PyCFunction)Icn_GetIconFamilyData, 1,
-        "(IconFamilyHandle iconFamily, OSType iconType, Handle h) -> None"},
-       {"GetIconRefOwners", (PyCFunction)Icn_GetIconRefOwners, 1,
-        "(IconRef theIconRef) -> (UInt16 owners)"},
-       {"AcquireIconRef", (PyCFunction)Icn_AcquireIconRef, 1,
-        "(IconRef theIconRef) -> None"},
-       {"ReleaseIconRef", (PyCFunction)Icn_ReleaseIconRef, 1,
-        "(IconRef theIconRef) -> None"},
-       {"GetIconRefFromFile", (PyCFunction)Icn_GetIconRefFromFile, 1,
-        "(FSSpec theFile) -> (IconRef theIconRef, SInt16 theLabel)"},
-       {"GetIconRef", (PyCFunction)Icn_GetIconRef, 1,
-        "(SInt16 vRefNum, OSType creator, OSType iconType) -> (IconRef theIconRef)"},
-       {"GetIconRefFromFolder", (PyCFunction)Icn_GetIconRefFromFolder, 1,
-        "(SInt16 vRefNum, SInt32 parentFolderID, SInt32 folderID, SInt8 attributes, SInt8 accessPrivileges) -> (IconRef theIconRef)"},
-       {"RegisterIconRefFromIconFamily", (PyCFunction)Icn_RegisterIconRefFromIconFamily, 1,
-        "(OSType creator, OSType iconType, IconFamilyHandle iconFamily) -> (IconRef theIconRef)"},
-       {"RegisterIconRefFromResource", (PyCFunction)Icn_RegisterIconRefFromResource, 1,
-        "(OSType creator, OSType iconType, FSSpec resourceFile, SInt16 resourceID) -> (IconRef theIconRef)"},
-       {"UnregisterIconRef", (PyCFunction)Icn_UnregisterIconRef, 1,
-        "(OSType creator, OSType iconType) -> None"},
-       {"UpdateIconRef", (PyCFunction)Icn_UpdateIconRef, 1,
-        "(IconRef theIconRef) -> None"},
-       {"OverrideIconRefFromResource", (PyCFunction)Icn_OverrideIconRefFromResource, 1,
-        "(IconRef theIconRef, FSSpec resourceFile, SInt16 resourceID) -> None"},
-       {"OverrideIconRef", (PyCFunction)Icn_OverrideIconRef, 1,
-        "(IconRef oldIconRef, IconRef newIconRef) -> None"},
-       {"RemoveIconRefOverride", (PyCFunction)Icn_RemoveIconRefOverride, 1,
-        "(IconRef theIconRef) -> None"},
-       {"CompositeIconRef", (PyCFunction)Icn_CompositeIconRef, 1,
-        "(IconRef backgroundIconRef, IconRef foregroundIconRef) -> (IconRef compositeIconRef)"},
-       {"IsIconRefComposite", (PyCFunction)Icn_IsIconRefComposite, 1,
-        "(IconRef compositeIconRef) -> (IconRef backgroundIconRef, IconRef foregroundIconRef)"},
-       {"IsValidIconRef", (PyCFunction)Icn_IsValidIconRef, 1,
-        "(IconRef theIconRef) -> (Boolean _rv)"},
-       {"PlotIconRef", (PyCFunction)Icn_PlotIconRef, 1,
-        "(Rect theRect, IconAlignmentType align, IconTransformType transform, IconServicesUsageFlags theIconServicesUsageFlags, IconRef theIconRef) -> None"},
-       {"PtInIconRef", (PyCFunction)Icn_PtInIconRef, 1,
-        "(Point testPt, Rect iconRect, IconAlignmentType align, IconServicesUsageFlags theIconServicesUsageFlags, IconRef theIconRef) -> (Boolean _rv)"},
-       {"RectInIconRef", (PyCFunction)Icn_RectInIconRef, 1,
-        "(Rect testRect, Rect iconRect, IconAlignmentType align, IconServicesUsageFlags iconServicesUsageFlags, IconRef theIconRef) -> (Boolean _rv)"},
-       {"IconRefToRgn", (PyCFunction)Icn_IconRefToRgn, 1,
-        "(RgnHandle theRgn, Rect iconRect, IconAlignmentType align, IconServicesUsageFlags iconServicesUsageFlags, IconRef theIconRef) -> None"},
-       {"GetIconSizesFromIconRef", (PyCFunction)Icn_GetIconSizesFromIconRef, 1,
-        "(IconSelectorValue iconSelectorInput, IconServicesUsageFlags iconServicesUsageFlags, IconRef theIconRef) -> (IconSelectorValue iconSelectorOutputPtr)"},
-       {"FlushIconRefs", (PyCFunction)Icn_FlushIconRefs, 1,
-        "(OSType creator, OSType iconType) -> None"},
-       {"FlushIconRefsByVolume", (PyCFunction)Icn_FlushIconRefsByVolume, 1,
-        "(SInt16 vRefNum) -> None"},
-       {"SetCustomIconsEnabled", (PyCFunction)Icn_SetCustomIconsEnabled, 1,
-        "(SInt16 vRefNum, Boolean enableCustomIcons) -> None"},
-       {"GetCustomIconsEnabled", (PyCFunction)Icn_GetCustomIconsEnabled, 1,
-        "(SInt16 vRefNum) -> (Boolean customIconsEnabled)"},
-       {"IsIconRefMaskEmpty", (PyCFunction)Icn_IsIconRefMaskEmpty, 1,
-        "(IconRef iconRef) -> (Boolean _rv)"},
-
-#if TARGET_API_MAC_CARBON
-       {"GetIconRefVariant", (PyCFunction)Icn_GetIconRefVariant, 1,
-        "(IconRef inIconRef, OSType inVariant) -> (IconRef _rv, IconTransformType outTransform)"},
-#endif
-
-#if TARGET_API_MAC_CARBON
-       {"RegisterIconRefFromIconFile", (PyCFunction)Icn_RegisterIconRefFromIconFile, 1,
-        "(OSType creator, OSType iconType, FSSpec iconFile) -> (IconRef theIconRef)"},
-#endif
-
-#if TARGET_API_MAC_CARBON
-       {"ReadIconFile", (PyCFunction)Icn_ReadIconFile, 1,
-        "(FSSpec iconFile) -> (IconFamilyHandle iconFamily)"},
-#endif
-
-#if TARGET_API_MAC_CARBON
-       {"WriteIconFile", (PyCFunction)Icn_WriteIconFile, 1,
-        "(IconFamilyHandle iconFamily, FSSpec iconFile) -> None"},
-#endif
-       {NULL, NULL, 0}
-};
-
-
-
-
-void initIcn()
-{
-       PyObject *m;
-       PyObject *d;
-
-
-
-
-       m = Py_InitModule("Icn", Icn_methods);
-       d = PyModule_GetDict(m);
-       Icn_Error = PyMac_GetOSErrException();
-       if (Icn_Error == NULL ||
-           PyDict_SetItemString(d, "Error", Icn_Error) != 0)
-               return;
-}
-
-/* ========================= End module Icn ========================= */
-
diff --git a/Mac/Modules/icn/icnsupport.py b/Mac/Modules/icn/icnsupport.py
deleted file mode 100644 (file)
index 5ea6a45..0000000
+++ /dev/null
@@ -1,89 +0,0 @@
-# This script generates a Python interface for an Apple Macintosh Manager.
-# It uses the "bgen" package to generate C code.
-# The function specifications are generated by scanning the mamager's header file,
-# using the "scantools" package (customized for this particular manager).
-
-import string
-
-# Declarations that change for each manager
-MACHEADERFILE = 'Icons.h'              # The Apple header file
-MODNAME = 'Icn'                                # The name of the module
-OBJECTNAME = 'Icon'                    # The basic name of the objects used here
-KIND = 'Handle'                                # Usually 'Ptr' or 'Handle'
-
-# The following is *usually* unchanged but may still require tuning
-MODPREFIX = MODNAME                    # The prefix for module-wide routines
-OBJECTTYPE = OBJECTNAME + KIND         # The C type used to represent them
-OBJECTPREFIX = MODPREFIX + 'Obj'       # The prefix for object methods
-INPUTFILE = string.lower(MODPREFIX) + 'gen.py' # The file generated by the scanner
-OUTPUTFILE = MODNAME + "module.c"      # The file generated by this program
-
-from macsupport import *
-
-# Create the type objects
-CIconHandle = OpaqueByValueType("CIconHandle", "ResObj")
-IconSuiteRef = OpaqueByValueType("IconSuiteRef", "ResObj")
-IconCacheRef = OpaqueByValueType("IconCacheRef", "ResObj")
-IconRef = OpaqueByValueType("IconRef", "ResObj")
-IconFamilyHandle = OpaqueByValueType("IconFamilyHandle", "ResObj")
-RgnHandle = OpaqueByValueType("RgnHandle", "ResObj")
-IconAlignmentType = Type("IconAlignmentType", "h")
-IconTransformType = Type("IconTransformType", "h")
-IconSelectorValue = Type("IconSelectorValue", "l")
-IconServicesUsageFlags = Type("IconServicesUsageFlags", "l")
-RGBColor = OpaqueType("RGBColor", "QdRGB")
-
-#WindowPeek = OpaqueByValueType("WindowPeek", OBJECTPREFIX)
-
-# RgnHandle = FakeType("(RgnHandle)0")
-# XXXX Should be next, but this will break a lot of code...
-# RgnHandle = OpaqueByValueType("RgnHandle", "OptResObj")
-
-# KeyMap = ArrayOutputBufferType("KeyMap")
-#MacOSEventKind = Type("MacOSEventKind", "h") # Old-style
-#MacOSEventMask = Type("MacOSEventMask", "h") # Old-style
-#EventMask = Type("EventMask", "H")
-#EventKind = Type("EventKind", "H")
-
-includestuff = includestuff + """
-#include <%s>""" % MACHEADERFILE + """
-"""
-
-class MyObjectDefinition(GlobalObjectDefinition):
-       def outputCheckNewArg(self):
-               Output("if (itself == NULL) return PyMac_Error(resNotFound);")
-       def outputCheckConvertArg(self):
-               OutLbrace("if (DlgObj_Check(v))")
-               Output("*p_itself = ((WindowObject *)v)->ob_itself;")
-               Output("return 1;")
-               OutRbrace()
-               Out("""
-               if (v == Py_None) { *p_itself = NULL; return 1; }
-               if (PyInt_Check(v)) { *p_itself = (WindowPtr)PyInt_AsLong(v); return 1; }
-               """)
-
-# From here on it's basically all boiler plate...
-
-# Create the generator groups and link them
-module = MacModule(MODNAME, MODPREFIX, includestuff, finalstuff, initstuff)
-##object = MyObjectDefinition(OBJECTNAME, OBJECTPREFIX, OBJECTTYPE)
-##module.addobject(object)
-
-# Create the generator classes used to populate the lists
-Function = OSErrFunctionGenerator
-##Method = OSErrMethodGenerator
-
-# Create and populate the lists
-functions = []
-##methods = []
-execfile(INPUTFILE)
-
-# add the populated lists to the generator groups
-# (in a different wordl the scan program would generate this)
-for f in functions: module.add(f)
-##for f in methods: object.add(f)
-
-# generate output (open the output file as late as possible)
-SetOutputFileName(OUTPUTFILE)
-module.generate()
-
diff --git a/Mac/Modules/list/Listmodule.c b/Mac/Modules/list/Listmodule.c
deleted file mode 100644 (file)
index 0509812..0000000
+++ /dev/null
@@ -1,1083 +0,0 @@
-
-/* ========================== Module List =========================== */
-
-#include "Python.h"
-
-
-
-#include "macglue.h"
-#include "pymactoolbox.h"
-
-#include <Lists.h>
-
-#if !ACCESSOR_CALLS_ARE_FUNCTIONS
-#define GetListPort(list) ((CGrafPtr)(*(list))->port)
-#define GetListVerticalScrollBar(list) ((*(list))->vScroll)
-#define GetListHorizontalScrollBar(list) ((*(list))->hScroll)
-#define GetListActive(list) ((*(list))->lActive)
-#define GetListClickTime(list) ((*(list))->clikTime)
-#define GetListRefCon(list) ((*(list))->refCon)
-#define GetListDefinition(list) ((*(list))->listDefProc) /* XXX Is this indeed the same? */
-#define GetListUserHandle(list) ((*(list))->userHandle)
-#define GetListDataHandle(list) ((*(list))->cells)
-#define GetListFlags(list) ((*(list))->listFlags)
-#define GetListSelectionFlags(list) ((*(list))->selFlags)
-#define SetListViewBounds(list, bounds) (((*(list))->rView) = *(bounds))
-
-#define SetListPort(list, port) (((*(list))->port) = (GrafPtr)(port))
-#define SetListCellIndent(list, ind) (((*(list))->indent) = *(ind))
-#define SetListClickTime(list, time) (((*(list))->clikTime) = (time))
-#define SetListLastClick(list, click) (((*(list)->lastClick) = *(click))
-#define SetListRefCon(list, refcon) (((*(list))->refCon) = (refcon))
-#define SetListUserHandle(list, handle) (((*(list))->userHandle) = (handle))
-#define SetListFlags(list, flags) (((*(list))->listFlags) = (flags))
-#define SetListSelectionFlags(list, flags) (((*(list))->selFlags) = (flags))
-
-#endif
-
-#define as_List(x) ((ListHandle)x)
-#define as_Resource(lh) ((Handle)lh)
-
-static PyObject *List_Error;
-
-/* ------------------------ Object type List ------------------------ */
-
-PyTypeObject List_Type;
-
-#define ListObj_Check(x) ((x)->ob_type == &List_Type)
-
-typedef struct ListObject {
-       PyObject_HEAD
-       ListHandle ob_itself;
-       int ob_must_be_disposed;
-} ListObject;
-
-PyObject *ListObj_New(itself)
-       ListHandle itself;
-{
-       ListObject *it;
-       if (itself == NULL) {
-                                               PyErr_SetString(List_Error,"Cannot create null List");
-                                               return NULL;
-                                       }
-       it = PyObject_NEW(ListObject, &List_Type);
-       if (it == NULL) return NULL;
-       it->ob_itself = itself;
-       it->ob_must_be_disposed = 1;
-       return (PyObject *)it;
-}
-ListObj_Convert(v, p_itself)
-       PyObject *v;
-       ListHandle *p_itself;
-{
-       if (!ListObj_Check(v))
-       {
-               PyErr_SetString(PyExc_TypeError, "List required");
-               return 0;
-       }
-       *p_itself = ((ListObject *)v)->ob_itself;
-       return 1;
-}
-
-static void ListObj_dealloc(self)
-       ListObject *self;
-{
-       if (self->ob_must_be_disposed && self->ob_itself) LDispose(self->ob_itself);
-       PyMem_DEL(self);
-}
-
-static PyObject *ListObj_LAddColumn(_self, _args)
-       ListObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       short _rv;
-       short count;
-       short colNum;
-       if (!PyArg_ParseTuple(_args, "hh",
-                             &count,
-                             &colNum))
-               return NULL;
-       _rv = LAddColumn(count,
-                        colNum,
-                        _self->ob_itself);
-       _res = Py_BuildValue("h",
-                            _rv);
-       return _res;
-}
-
-static PyObject *ListObj_LAddRow(_self, _args)
-       ListObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       short _rv;
-       short count;
-       short rowNum;
-       if (!PyArg_ParseTuple(_args, "hh",
-                             &count,
-                             &rowNum))
-               return NULL;
-       _rv = LAddRow(count,
-                     rowNum,
-                     _self->ob_itself);
-       _res = Py_BuildValue("h",
-                            _rv);
-       return _res;
-}
-
-static PyObject *ListObj_LDelColumn(_self, _args)
-       ListObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       short count;
-       short colNum;
-       if (!PyArg_ParseTuple(_args, "hh",
-                             &count,
-                             &colNum))
-               return NULL;
-       LDelColumn(count,
-                  colNum,
-                  _self->ob_itself);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *ListObj_LDelRow(_self, _args)
-       ListObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       short count;
-       short rowNum;
-       if (!PyArg_ParseTuple(_args, "hh",
-                             &count,
-                             &rowNum))
-               return NULL;
-       LDelRow(count,
-               rowNum,
-               _self->ob_itself);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *ListObj_LGetSelect(_self, _args)
-       ListObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Boolean _rv;
-       Boolean next;
-       Point theCell;
-       if (!PyArg_ParseTuple(_args, "bO&",
-                             &next,
-                             PyMac_GetPoint, &theCell))
-               return NULL;
-       _rv = LGetSelect(next,
-                        &theCell,
-                        _self->ob_itself);
-       _res = Py_BuildValue("bO&",
-                            _rv,
-                            PyMac_BuildPoint, theCell);
-       return _res;
-}
-
-static PyObject *ListObj_LLastClick(_self, _args)
-       ListObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Point _rv;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _rv = LLastClick(_self->ob_itself);
-       _res = Py_BuildValue("O&",
-                            PyMac_BuildPoint, _rv);
-       return _res;
-}
-
-static PyObject *ListObj_LNextCell(_self, _args)
-       ListObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Boolean _rv;
-       Boolean hNext;
-       Boolean vNext;
-       Point theCell;
-       if (!PyArg_ParseTuple(_args, "bbO&",
-                             &hNext,
-                             &vNext,
-                             PyMac_GetPoint, &theCell))
-               return NULL;
-       _rv = LNextCell(hNext,
-                       vNext,
-                       &theCell,
-                       _self->ob_itself);
-       _res = Py_BuildValue("bO&",
-                            _rv,
-                            PyMac_BuildPoint, theCell);
-       return _res;
-}
-
-static PyObject *ListObj_LSize(_self, _args)
-       ListObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       short listWidth;
-       short listHeight;
-       if (!PyArg_ParseTuple(_args, "hh",
-                             &listWidth,
-                             &listHeight))
-               return NULL;
-       LSize(listWidth,
-             listHeight,
-             _self->ob_itself);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *ListObj_LSetDrawingMode(_self, _args)
-       ListObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Boolean drawIt;
-       if (!PyArg_ParseTuple(_args, "b",
-                             &drawIt))
-               return NULL;
-       LSetDrawingMode(drawIt,
-                       _self->ob_itself);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *ListObj_LScroll(_self, _args)
-       ListObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       short dCols;
-       short dRows;
-       if (!PyArg_ParseTuple(_args, "hh",
-                             &dCols,
-                             &dRows))
-               return NULL;
-       LScroll(dCols,
-               dRows,
-               _self->ob_itself);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *ListObj_LAutoScroll(_self, _args)
-       ListObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       LAutoScroll(_self->ob_itself);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *ListObj_LUpdate(_self, _args)
-       ListObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       RgnHandle theRgn;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             ResObj_Convert, &theRgn))
-               return NULL;
-       LUpdate(theRgn,
-               _self->ob_itself);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *ListObj_LActivate(_self, _args)
-       ListObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Boolean act;
-       if (!PyArg_ParseTuple(_args, "b",
-                             &act))
-               return NULL;
-       LActivate(act,
-                 _self->ob_itself);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *ListObj_LCellSize(_self, _args)
-       ListObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Point cSize;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             PyMac_GetPoint, &cSize))
-               return NULL;
-       LCellSize(cSize,
-                 _self->ob_itself);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *ListObj_LClick(_self, _args)
-       ListObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Boolean _rv;
-       Point pt;
-       short modifiers;
-       if (!PyArg_ParseTuple(_args, "O&h",
-                             PyMac_GetPoint, &pt,
-                             &modifiers))
-               return NULL;
-       _rv = LClick(pt,
-                    modifiers,
-                    _self->ob_itself);
-       _res = Py_BuildValue("b",
-                            _rv);
-       return _res;
-}
-
-static PyObject *ListObj_LAddToCell(_self, _args)
-       ListObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       char *dataPtr__in__;
-       short dataPtr__len__;
-       int dataPtr__in_len__;
-       Point theCell;
-       if (!PyArg_ParseTuple(_args, "s#O&",
-                             &dataPtr__in__, &dataPtr__in_len__,
-                             PyMac_GetPoint, &theCell))
-               return NULL;
-       dataPtr__len__ = dataPtr__in_len__;
-       LAddToCell(dataPtr__in__, dataPtr__len__,
-                  theCell,
-                  _self->ob_itself);
-       Py_INCREF(Py_None);
-       _res = Py_None;
- dataPtr__error__: ;
-       return _res;
-}
-
-static PyObject *ListObj_LClrCell(_self, _args)
-       ListObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Point theCell;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             PyMac_GetPoint, &theCell))
-               return NULL;
-       LClrCell(theCell,
-                _self->ob_itself);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *ListObj_LGetCell(_self, _args)
-       ListObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       char *dataPtr__out__;
-       short dataPtr__len__;
-       int dataPtr__in_len__;
-       Point theCell;
-       if (!PyArg_ParseTuple(_args, "iO&",
-                             &dataPtr__in_len__,
-                             PyMac_GetPoint, &theCell))
-               return NULL;
-       if ((dataPtr__out__ = malloc(dataPtr__in_len__)) == NULL)
-       {
-               PyErr_NoMemory();
-               goto dataPtr__error__;
-       }
-       dataPtr__len__ = dataPtr__in_len__;
-       LGetCell(dataPtr__out__, &dataPtr__len__,
-                theCell,
-                _self->ob_itself);
-       _res = Py_BuildValue("s#",
-                            dataPtr__out__, (int)dataPtr__len__);
-       free(dataPtr__out__);
- dataPtr__error__: ;
-       return _res;
-}
-
-static PyObject *ListObj_LRect(_self, _args)
-       ListObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Rect cellRect;
-       Point theCell;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             PyMac_GetPoint, &theCell))
-               return NULL;
-       LRect(&cellRect,
-             theCell,
-             _self->ob_itself);
-       _res = Py_BuildValue("O&",
-                            PyMac_BuildRect, &cellRect);
-       return _res;
-}
-
-static PyObject *ListObj_LSetCell(_self, _args)
-       ListObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       char *dataPtr__in__;
-       short dataPtr__len__;
-       int dataPtr__in_len__;
-       Point theCell;
-       if (!PyArg_ParseTuple(_args, "s#O&",
-                             &dataPtr__in__, &dataPtr__in_len__,
-                             PyMac_GetPoint, &theCell))
-               return NULL;
-       dataPtr__len__ = dataPtr__in_len__;
-       LSetCell(dataPtr__in__, dataPtr__len__,
-                theCell,
-                _self->ob_itself);
-       Py_INCREF(Py_None);
-       _res = Py_None;
- dataPtr__error__: ;
-       return _res;
-}
-
-static PyObject *ListObj_LSetSelect(_self, _args)
-       ListObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Boolean setIt;
-       Point theCell;
-       if (!PyArg_ParseTuple(_args, "bO&",
-                             &setIt,
-                             PyMac_GetPoint, &theCell))
-               return NULL;
-       LSetSelect(setIt,
-                  theCell,
-                  _self->ob_itself);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *ListObj_LDraw(_self, _args)
-       ListObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Point theCell;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             PyMac_GetPoint, &theCell))
-               return NULL;
-       LDraw(theCell,
-             _self->ob_itself);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *ListObj_as_Resource(_self, _args)
-       ListObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Handle _rv;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _rv = as_Resource(_self->ob_itself);
-       _res = Py_BuildValue("O&",
-                            ResObj_New, _rv);
-       return _res;
-}
-
-static PyMethodDef ListObj_methods[] = {
-       {"LAddColumn", (PyCFunction)ListObj_LAddColumn, 1,
-        "(short count, short colNum) -> (short _rv)"},
-       {"LAddRow", (PyCFunction)ListObj_LAddRow, 1,
-        "(short count, short rowNum) -> (short _rv)"},
-       {"LDelColumn", (PyCFunction)ListObj_LDelColumn, 1,
-        "(short count, short colNum) -> None"},
-       {"LDelRow", (PyCFunction)ListObj_LDelRow, 1,
-        "(short count, short rowNum) -> None"},
-       {"LGetSelect", (PyCFunction)ListObj_LGetSelect, 1,
-        "(Boolean next, Point theCell) -> (Boolean _rv, Point theCell)"},
-       {"LLastClick", (PyCFunction)ListObj_LLastClick, 1,
-        "() -> (Point _rv)"},
-       {"LNextCell", (PyCFunction)ListObj_LNextCell, 1,
-        "(Boolean hNext, Boolean vNext, Point theCell) -> (Boolean _rv, Point theCell)"},
-       {"LSize", (PyCFunction)ListObj_LSize, 1,
-        "(short listWidth, short listHeight) -> None"},
-       {"LSetDrawingMode", (PyCFunction)ListObj_LSetDrawingMode, 1,
-        "(Boolean drawIt) -> None"},
-       {"LScroll", (PyCFunction)ListObj_LScroll, 1,
-        "(short dCols, short dRows) -> None"},
-       {"LAutoScroll", (PyCFunction)ListObj_LAutoScroll, 1,
-        "() -> None"},
-       {"LUpdate", (PyCFunction)ListObj_LUpdate, 1,
-        "(RgnHandle theRgn) -> None"},
-       {"LActivate", (PyCFunction)ListObj_LActivate, 1,
-        "(Boolean act) -> None"},
-       {"LCellSize", (PyCFunction)ListObj_LCellSize, 1,
-        "(Point cSize) -> None"},
-       {"LClick", (PyCFunction)ListObj_LClick, 1,
-        "(Point pt, short modifiers) -> (Boolean _rv)"},
-       {"LAddToCell", (PyCFunction)ListObj_LAddToCell, 1,
-        "(Buffer dataPtr, Point theCell) -> None"},
-       {"LClrCell", (PyCFunction)ListObj_LClrCell, 1,
-        "(Point theCell) -> None"},
-       {"LGetCell", (PyCFunction)ListObj_LGetCell, 1,
-        "(Buffer dataPtr, Point theCell) -> (Buffer dataPtr)"},
-       {"LRect", (PyCFunction)ListObj_LRect, 1,
-        "(Point theCell) -> (Rect cellRect)"},
-       {"LSetCell", (PyCFunction)ListObj_LSetCell, 1,
-        "(Buffer dataPtr, Point theCell) -> None"},
-       {"LSetSelect", (PyCFunction)ListObj_LSetSelect, 1,
-        "(Boolean setIt, Point theCell) -> None"},
-       {"LDraw", (PyCFunction)ListObj_LDraw, 1,
-        "(Point theCell) -> None"},
-       {"as_Resource", (PyCFunction)ListObj_as_Resource, 1,
-        "() -> (Handle _rv)"},
-       {NULL, NULL, 0}
-};
-
-PyMethodChain ListObj_chain = { ListObj_methods, NULL };
-
-static PyObject *ListObj_getattr(self, name)
-       ListObject *self;
-       char *name;
-{
-       {
-               /* XXXX Should we HLock() here?? */
-               if ( strcmp(name, "listFlags") == 0 )
-                       return Py_BuildValue("l", (long)(*self->ob_itself)->listFlags & 0xff);
-               if ( strcmp(name, "selFlags") == 0 )
-                       return Py_BuildValue("l", (long)(*self->ob_itself)->selFlags & 0xff);
-       }
-       return Py_FindMethodInChain(&ListObj_chain, (PyObject *)self, name);
-}
-
-static int
-ListObj_setattr(self, name, value)
-       ListObject *self;
-       char *name;
-       PyObject *value;
-{
-       long intval;
-               
-       if ( value == NULL || !PyInt_Check(value) )
-               return -1;
-       intval = PyInt_AsLong(value);
-       if (strcmp(name, "listFlags") == 0 ) {
-               /* XXXX Should we HLock the handle here?? */
-               (*self->ob_itself)->listFlags = intval;
-               return 0;
-       }
-       if (strcmp(name, "selFlags") == 0 ) {
-               (*self->ob_itself)->selFlags = intval;
-               return 0;
-       }
-       return -1;
-}
-
-
-#define ListObj_compare NULL
-
-#define ListObj_repr NULL
-
-#define ListObj_hash NULL
-
-PyTypeObject List_Type = {
-       PyObject_HEAD_INIT(&PyType_Type)
-       0, /*ob_size*/
-       "List", /*tp_name*/
-       sizeof(ListObject), /*tp_basicsize*/
-       0, /*tp_itemsize*/
-       /* methods */
-       (destructor) ListObj_dealloc, /*tp_dealloc*/
-       0, /*tp_print*/
-       (getattrfunc) ListObj_getattr, /*tp_getattr*/
-       (setattrfunc) ListObj_setattr, /*tp_setattr*/
-       (cmpfunc) ListObj_compare, /*tp_compare*/
-       (reprfunc) ListObj_repr, /*tp_repr*/
-       (PyNumberMethods *)0, /* tp_as_number */
-       (PySequenceMethods *)0, /* tp_as_sequence */
-       (PyMappingMethods *)0, /* tp_as_mapping */
-       (hashfunc) ListObj_hash, /*tp_hash*/
-};
-
-/* ---------------------- End object type List ---------------------- */
-
-
-static PyObject *List_LNew(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       ListHandle _rv;
-       Rect rView;
-       Rect dataBounds;
-       Point cSize;
-       short theProc;
-       WindowPtr theWindow;
-       Boolean drawIt;
-       Boolean hasGrow;
-       Boolean scrollHoriz;
-       Boolean scrollVert;
-       if (!PyArg_ParseTuple(_args, "O&O&O&hO&bbbb",
-                             PyMac_GetRect, &rView,
-                             PyMac_GetRect, &dataBounds,
-                             PyMac_GetPoint, &cSize,
-                             &theProc,
-                             WinObj_Convert, &theWindow,
-                             &drawIt,
-                             &hasGrow,
-                             &scrollHoriz,
-                             &scrollVert))
-               return NULL;
-       _rv = LNew(&rView,
-                  &dataBounds,
-                  cSize,
-                  theProc,
-                  theWindow,
-                  drawIt,
-                  hasGrow,
-                  scrollHoriz,
-                  scrollVert);
-       _res = Py_BuildValue("O&",
-                            ListObj_New, _rv);
-       return _res;
-}
-
-static PyObject *List_GetListPort(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       CGrafPtr _rv;
-       ListHandle list;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             ListObj_Convert, &list))
-               return NULL;
-       _rv = GetListPort(list);
-       _res = Py_BuildValue("O&",
-                            GrafObj_New, _rv);
-       return _res;
-}
-
-static PyObject *List_GetListVerticalScrollBar(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       ControlHandle _rv;
-       ListHandle list;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             ListObj_Convert, &list))
-               return NULL;
-       _rv = GetListVerticalScrollBar(list);
-       _res = Py_BuildValue("O&",
-                            CtlObj_New, _rv);
-       return _res;
-}
-
-static PyObject *List_GetListHorizontalScrollBar(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       ControlHandle _rv;
-       ListHandle list;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             ListObj_Convert, &list))
-               return NULL;
-       _rv = GetListHorizontalScrollBar(list);
-       _res = Py_BuildValue("O&",
-                            CtlObj_New, _rv);
-       return _res;
-}
-
-static PyObject *List_GetListActive(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Boolean _rv;
-       ListHandle list;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             ListObj_Convert, &list))
-               return NULL;
-       _rv = GetListActive(list);
-       _res = Py_BuildValue("b",
-                            _rv);
-       return _res;
-}
-
-static PyObject *List_GetListClickTime(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       SInt32 _rv;
-       ListHandle list;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             ListObj_Convert, &list))
-               return NULL;
-       _rv = GetListClickTime(list);
-       _res = Py_BuildValue("l",
-                            _rv);
-       return _res;
-}
-
-static PyObject *List_GetListRefCon(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       SInt32 _rv;
-       ListHandle list;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             ListObj_Convert, &list))
-               return NULL;
-       _rv = GetListRefCon(list);
-       _res = Py_BuildValue("l",
-                            _rv);
-       return _res;
-}
-
-static PyObject *List_GetListDefinition(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Handle _rv;
-       ListHandle list;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             ListObj_Convert, &list))
-               return NULL;
-       _rv = GetListDefinition(list);
-       _res = Py_BuildValue("O&",
-                            ResObj_New, _rv);
-       return _res;
-}
-
-static PyObject *List_GetListUserHandle(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Handle _rv;
-       ListHandle list;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             ListObj_Convert, &list))
-               return NULL;
-       _rv = GetListUserHandle(list);
-       _res = Py_BuildValue("O&",
-                            ResObj_New, _rv);
-       return _res;
-}
-
-static PyObject *List_GetListDataHandle(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       DataHandle _rv;
-       ListHandle list;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             ListObj_Convert, &list))
-               return NULL;
-       _rv = GetListDataHandle(list);
-       _res = Py_BuildValue("O&",
-                            ResObj_New, _rv);
-       return _res;
-}
-
-static PyObject *List_GetListFlags(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OptionBits _rv;
-       ListHandle list;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             ListObj_Convert, &list))
-               return NULL;
-       _rv = GetListFlags(list);
-       _res = Py_BuildValue("l",
-                            _rv);
-       return _res;
-}
-
-static PyObject *List_GetListSelectionFlags(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OptionBits _rv;
-       ListHandle list;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             ListObj_Convert, &list))
-               return NULL;
-       _rv = GetListSelectionFlags(list);
-       _res = Py_BuildValue("l",
-                            _rv);
-       return _res;
-}
-
-static PyObject *List_SetListViewBounds(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       ListHandle list;
-       Rect view;
-       if (!PyArg_ParseTuple(_args, "O&O&",
-                             ListObj_Convert, &list,
-                             PyMac_GetRect, &view))
-               return NULL;
-       SetListViewBounds(list,
-                         &view);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *List_SetListPort(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       ListHandle list;
-       CGrafPtr port;
-       if (!PyArg_ParseTuple(_args, "O&O&",
-                             ListObj_Convert, &list,
-                             GrafObj_Convert, &port))
-               return NULL;
-       SetListPort(list,
-                   port);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *List_SetListCellIndent(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       ListHandle list;
-       Point indent;
-       if (!PyArg_ParseTuple(_args, "O&O&",
-                             ListObj_Convert, &list,
-                             PyMac_GetPoint, &indent))
-               return NULL;
-       SetListCellIndent(list,
-                         &indent);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *List_SetListClickTime(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       ListHandle list;
-       SInt32 time;
-       if (!PyArg_ParseTuple(_args, "O&l",
-                             ListObj_Convert, &list,
-                             &time))
-               return NULL;
-       SetListClickTime(list,
-                        time);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *List_SetListRefCon(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       ListHandle list;
-       SInt32 refCon;
-       if (!PyArg_ParseTuple(_args, "O&l",
-                             ListObj_Convert, &list,
-                             &refCon))
-               return NULL;
-       SetListRefCon(list,
-                     refCon);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *List_SetListUserHandle(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       ListHandle list;
-       Handle userHandle;
-       if (!PyArg_ParseTuple(_args, "O&O&",
-                             ListObj_Convert, &list,
-                             ResObj_Convert, &userHandle))
-               return NULL;
-       SetListUserHandle(list,
-                         userHandle);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *List_SetListFlags(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       ListHandle list;
-       OptionBits listFlags;
-       if (!PyArg_ParseTuple(_args, "O&l",
-                             ListObj_Convert, &list,
-                             &listFlags))
-               return NULL;
-       SetListFlags(list,
-                    listFlags);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *List_SetListSelectionFlags(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       ListHandle list;
-       OptionBits selectionFlags;
-       if (!PyArg_ParseTuple(_args, "O&l",
-                             ListObj_Convert, &list,
-                             &selectionFlags))
-               return NULL;
-       SetListSelectionFlags(list,
-                             selectionFlags);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *List_as_List(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-
-       Handle h;
-       ListObject *l;
-       if (!PyArg_ParseTuple(_args, "O&", ResObj_Convert, &h))
-               return NULL;
-       l = (ListObject *)ListObj_New(as_List(h));
-       l->ob_must_be_disposed = 0;
-       return Py_BuildValue("O", l);
-
-}
-
-static PyMethodDef List_methods[] = {
-       {"LNew", (PyCFunction)List_LNew, 1,
-        "(Rect rView, Rect dataBounds, Point cSize, short theProc, WindowPtr theWindow, Boolean drawIt, Boolean hasGrow, Boolean scrollHoriz, Boolean scrollVert) -> (ListHandle _rv)"},
-       {"GetListPort", (PyCFunction)List_GetListPort, 1,
-        "(ListHandle list) -> (CGrafPtr _rv)"},
-       {"GetListVerticalScrollBar", (PyCFunction)List_GetListVerticalScrollBar, 1,
-        "(ListHandle list) -> (ControlHandle _rv)"},
-       {"GetListHorizontalScrollBar", (PyCFunction)List_GetListHorizontalScrollBar, 1,
-        "(ListHandle list) -> (ControlHandle _rv)"},
-       {"GetListActive", (PyCFunction)List_GetListActive, 1,
-        "(ListHandle list) -> (Boolean _rv)"},
-       {"GetListClickTime", (PyCFunction)List_GetListClickTime, 1,
-        "(ListHandle list) -> (SInt32 _rv)"},
-       {"GetListRefCon", (PyCFunction)List_GetListRefCon, 1,
-        "(ListHandle list) -> (SInt32 _rv)"},
-       {"GetListDefinition", (PyCFunction)List_GetListDefinition, 1,
-        "(ListHandle list) -> (Handle _rv)"},
-       {"GetListUserHandle", (PyCFunction)List_GetListUserHandle, 1,
-        "(ListHandle list) -> (Handle _rv)"},
-       {"GetListDataHandle", (PyCFunction)List_GetListDataHandle, 1,
-        "(ListHandle list) -> (DataHandle _rv)"},
-       {"GetListFlags", (PyCFunction)List_GetListFlags, 1,
-        "(ListHandle list) -> (OptionBits _rv)"},
-       {"GetListSelectionFlags", (PyCFunction)List_GetListSelectionFlags, 1,
-        "(ListHandle list) -> (OptionBits _rv)"},
-       {"SetListViewBounds", (PyCFunction)List_SetListViewBounds, 1,
-        "(ListHandle list, Rect view) -> None"},
-       {"SetListPort", (PyCFunction)List_SetListPort, 1,
-        "(ListHandle list, CGrafPtr port) -> None"},
-       {"SetListCellIndent", (PyCFunction)List_SetListCellIndent, 1,
-        "(ListHandle list, Point indent) -> None"},
-       {"SetListClickTime", (PyCFunction)List_SetListClickTime, 1,
-        "(ListHandle list, SInt32 time) -> None"},
-       {"SetListRefCon", (PyCFunction)List_SetListRefCon, 1,
-        "(ListHandle list, SInt32 refCon) -> None"},
-       {"SetListUserHandle", (PyCFunction)List_SetListUserHandle, 1,
-        "(ListHandle list, Handle userHandle) -> None"},
-       {"SetListFlags", (PyCFunction)List_SetListFlags, 1,
-        "(ListHandle list, OptionBits listFlags) -> None"},
-       {"SetListSelectionFlags", (PyCFunction)List_SetListSelectionFlags, 1,
-        "(ListHandle list, OptionBits selectionFlags) -> None"},
-       {"as_List", (PyCFunction)List_as_List, 1,
-        "(Resource)->List.\nReturns List object (which is not auto-freed!)"},
-       {NULL, NULL, 0}
-};
-
-
-
-
-void initList()
-{
-       PyObject *m;
-       PyObject *d;
-
-
-
-
-       m = Py_InitModule("List", List_methods);
-       d = PyModule_GetDict(m);
-       List_Error = PyMac_GetOSErrException();
-       if (List_Error == NULL ||
-           PyDict_SetItemString(d, "Error", List_Error) != 0)
-               return;
-       List_Type.ob_type = &PyType_Type;
-       Py_INCREF(&List_Type);
-       if (PyDict_SetItemString(d, "ListType", (PyObject *)&List_Type) != 0)
-               Py_FatalError("can't initialize ListType");
-}
-
-/* ======================== End module List ========================= */
-
diff --git a/Mac/Modules/list/listsupport.py b/Mac/Modules/list/listsupport.py
deleted file mode 100644 (file)
index ecf8392..0000000
+++ /dev/null
@@ -1,182 +0,0 @@
-# This script generates a Python interface for an Apple Macintosh Manager.
-# It uses the "bgen" package to generate C code.
-# The function specifications are generated by scanning the mamager's header file,
-# using the "scantools" package (customized for this particular manager).
-
-import string
-
-# Declarations that change for each manager
-MACHEADERFILE = 'Lists.h'              # The Apple header file
-MODNAME = 'List'                               # The name of the module
-OBJECTNAME = 'List'                    # The basic name of the objects used here
-KIND = 'Handle'                                # Usually 'Ptr' or 'Handle'
-
-# The following is *usually* unchanged but may still require tuning
-MODPREFIX = MODNAME                    # The prefix for module-wide routines
-OBJECTTYPE = "ListHandle"              # The C type used to represent them
-OBJECTPREFIX = MODPREFIX + 'Obj'       # The prefix for object methods
-INPUTFILE = string.lower(MODPREFIX) + 'gen.py' # The file generated by the scanner
-OUTPUTFILE = MODNAME + "module.c"      # The file generated by this program
-
-from macsupport import *
-
-# Create the type objects
-ListHandle = OpaqueByValueType("ListHandle", "ListObj")
-ListRef = ListHandle # Obsolete, but used in Lists.h
-Cell = Point
-ListBounds = Rect
-ListBounds_ptr = Rect_ptr
-VarOutBufferShortsize = VarHeapOutputBufferType('char', 'short', 's')  # (buf, &len)
-InBufferShortsize = VarInputBufferType('char', 'short', 's')           # (buf, len)
-
-RgnHandle = OpaqueByValueType("RgnHandle", "ResObj")
-DataHandle = OpaqueByValueType("DataHandle", "ResObj")
-Handle = OpaqueByValueType("Handle", "ResObj")
-CGrafPtr = OpaqueByValueType("CGrafPtr", "GrafObj")
-
-includestuff = includestuff + """
-#include <%s>""" % MACHEADERFILE + """
-
-#if !ACCESSOR_CALLS_ARE_FUNCTIONS
-#define GetListPort(list) ((CGrafPtr)(*(list))->port)
-#define GetListVerticalScrollBar(list) ((*(list))->vScroll)
-#define GetListHorizontalScrollBar(list) ((*(list))->hScroll)
-#define GetListActive(list) ((*(list))->lActive)
-#define GetListClickTime(list) ((*(list))->clikTime)
-#define GetListRefCon(list) ((*(list))->refCon)
-#define GetListDefinition(list) ((*(list))->listDefProc) /* XXX Is this indeed the same? */
-#define GetListUserHandle(list) ((*(list))->userHandle)
-#define GetListDataHandle(list) ((*(list))->cells)
-#define GetListFlags(list) ((*(list))->listFlags)
-#define GetListSelectionFlags(list) ((*(list))->selFlags)
-#define SetListViewBounds(list, bounds) (((*(list))->rView) = *(bounds))
-
-#define SetListPort(list, port) (((*(list))->port) = (GrafPtr)(port))
-#define SetListCellIndent(list, ind) (((*(list))->indent) = *(ind))
-#define SetListClickTime(list, time) (((*(list))->clikTime) = (time))
-#define SetListLastClick(list, click) (((*(list)->lastClick) = *(click))
-#define SetListRefCon(list, refcon) (((*(list))->refCon) = (refcon))
-#define SetListUserHandle(list, handle) (((*(list))->userHandle) = (handle))
-#define SetListFlags(list, flags) (((*(list))->listFlags) = (flags))
-#define SetListSelectionFlags(list, flags) (((*(list))->selFlags) = (flags))
-
-#endif
-
-#define as_List(x) ((ListHandle)x)
-#define as_Resource(lh) ((Handle)lh)
-"""
-
-class ListMethodGenerator(MethodGenerator):
-       """Similar to MethodGenerator, but has self as last argument"""
-
-       def parseArgumentList(self, args):
-               args, a0 = args[:-1], args[-1]
-               t0, n0, m0 = a0
-               if m0 != InMode:
-                       raise ValueError, "method's 'self' must be 'InMode'"
-               self.itself = Variable(t0, "_self->ob_itself", SelfMode)
-               FunctionGenerator.parseArgumentList(self, args)
-               self.argumentList.append(self.itself)
-
-getattrHookCode = """{
-       /* XXXX Should we HLock() here?? */
-       if ( strcmp(name, "listFlags") == 0 )
-               return Py_BuildValue("l", (long)(*self->ob_itself)->listFlags & 0xff);
-       if ( strcmp(name, "selFlags") == 0 )
-               return Py_BuildValue("l", (long)(*self->ob_itself)->selFlags & 0xff);
-}"""
-
-setattrCode = """
-static int
-ListObj_setattr(self, name, value)
-       ListObject *self;
-       char *name;
-       PyObject *value;
-{
-       long intval;
-               
-       if ( value == NULL || !PyInt_Check(value) )
-               return -1;
-       intval = PyInt_AsLong(value);
-       if (strcmp(name, "listFlags") == 0 ) {
-               /* XXXX Should we HLock the handle here?? */
-               (*self->ob_itself)->listFlags = intval;
-               return 0;
-       }
-       if (strcmp(name, "selFlags") == 0 ) {
-               (*self->ob_itself)->selFlags = intval;
-               return 0;
-       }
-       return -1;
-}
-"""
-
-
-class MyObjectDefinition(GlobalObjectDefinition):
-
-       def outputStructMembers(self):
-               ObjectDefinition.outputStructMembers(self)
-               Output("int ob_must_be_disposed;")
-
-       def outputCheckNewArg(self):
-               Output("""if (itself == NULL) {
-                                       PyErr_SetString(List_Error,"Cannot create null List");
-                                       return NULL;
-                               }""")
-                               
-       def outputInitStructMembers(self):
-               ObjectDefinition.outputInitStructMembers(self)
-               Output("it->ob_must_be_disposed = 1;")
-
-       def outputFreeIt(self, itselfname):
-               Output("if (self->ob_must_be_disposed && %s) LDispose(%s);", itselfname, itselfname)
-               
-       def outputGetattrHook(self):
-               Output(getattrHookCode)
-               
-       def outputSetattr(self):
-               Output(setattrCode)
-               
-# From here on it's basically all boiler plate...
-
-# Create the generator groups and link them
-module = MacModule(MODNAME, MODPREFIX, includestuff, finalstuff, initstuff)
-object = MyObjectDefinition(OBJECTNAME, OBJECTPREFIX, OBJECTTYPE)
-module.addobject(object)
-
-# Create the generator classes used to populate the lists
-Function = FunctionGenerator
-Method = ListMethodGenerator
-
-# Create and populate the lists
-functions = []
-methods = []
-execfile(INPUTFILE)
-
-# Function to convert any handle to a list and vv.
-##f = Function(ListHandle, 'as_List', (Handle, 'h', InMode))
-as_List_body = """
-Handle h;
-ListObject *l;
-if (!PyArg_ParseTuple(_args, "O&", ResObj_Convert, &h))
-       return NULL;
-l = (ListObject *)ListObj_New(as_List(h));
-l->ob_must_be_disposed = 0;
-return Py_BuildValue("O", l);
-"""
-f = ManualGenerator("as_List", as_List_body)
-f.docstring = lambda: "(Resource)->List.\nReturns List object (which is not auto-freed!)"
-functions.append(f)
-
-f = Method(Handle, 'as_Resource', (ListHandle, 'lh', InMode))
-methods.append(f)
-
-# add the populated lists to the generator groups
-# (in a different wordl the scan program would generate this)
-for f in functions: module.add(f)
-for f in methods: object.add(f)
-
-# generate output (open the output file as late as possible)
-SetOutputFileName(OUTPUTFILE)
-module.generate()
-
diff --git a/Mac/Modules/macconfig.c b/Mac/Modules/macconfig.c
deleted file mode 100644 (file)
index 266ac3b..0000000
+++ /dev/null
@@ -1,309 +0,0 @@
-/***********************************************************
-Copyright 1991-1997 by Stichting Mathematisch Centrum, Amsterdam,
-The Netherlands.
-
-                        All Rights Reserved
-
-Permission to use, copy, modify, and distribute this software and its 
-documentation for any purpose and without fee is hereby granted, 
-provided that the above copyright notice appear in all copies and that
-both that copyright notice and this permission notice appear in 
-supporting documentation, and that the names of Stichting Mathematisch
-Centrum or CWI not be used in advertising or publicity pertaining to
-distribution of the software without specific, written prior permission.
-
-STICHTING MATHEMATISCH CENTRUM DISCLAIMS ALL WARRANTIES WITH REGARD TO
-THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
-FITNESS, IN NO EVENT SHALL STICHTING MATHEMATISCH CENTRUM BE LIABLE
-FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
-WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
-ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
-OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
-
-******************************************************************/
-
-/* Macintosh Python configuration file */
-
-#include "Python.h"
-/* Table of built-in modules.
-   These are initialized when first imported.
-   Note: selection of optional extensions is now generally done by the
-   makesetup script. */
-
-extern void initarray();
-extern void initmath();
-#ifndef WITHOUT_COMPLEX
-extern void initcmath();
-#endif
-extern void initparser();
-extern void initmac();
-extern void initMacOS();
-extern void initregex();
-extern void initstrop();
-extern void initstruct();
-extern void inittime();
-extern void initdbm();
-extern void initfcntl();
-extern void initnis();
-extern void initpwd();
-extern void initgrp();
-extern void initcrypt();
-extern void initselect();
-extern void init_socket();
-extern void initaudioop();
-extern void initimageop();
-extern void initrgbimg();
-extern void initmd5();
-extern void initmpz();
-extern void initrotor();
-extern void inital();
-extern void initcd();
-extern void initcl();
-extern void initfm();
-extern void initgl();
-extern void initimgfile();
-extern void initimgformat();
-extern void initsgi();
-extern void initsv();
-extern void initfl();
-extern void initthread();
-extern void inittiming();
-extern void initsignal();
-extern void initnew();
-extern void initdl();
-extern void initsyslog();
-extern void initgestalt();
-extern void initmacfs();
-extern void initbinascii();
-extern void initoperator();
-extern void initerrno();
-extern void initpcre();
-extern void initunicodedata();
-extern void init_codecs();
-#ifdef USE_MACCTB
-extern void initctb();
-#endif
-#ifdef USE_MACSPEECH
-extern void initmacspeech();
-#endif
-#ifdef USE_MACTCP
-extern void initmacdnr();
-extern void initmactcp();
-#endif
-#ifdef USE_IC
-extern void initicglue();
-#endif
-#ifdef USE_TOOLBOX
-#ifndef USE_CORE_TOOLBOX
-#define USE_CORE_TOOLBOX
-#endif
-extern void initApp();
-extern void initFm();
-extern void initHelp();
-extern void initIcn();
-extern void initList();
-extern void initQdoffs();
-extern void initSnd();
-extern void initSndihooks();
-extern void initScrap();
-extern void initTE();
-extern void initColorPicker();
-extern void initPrinting();
-#endif
-#ifdef USE_CORE_TOOLBOX
-extern void initAE();
-extern void initCtl();
-extern void initDlg();
-extern void initDrag();
-extern void initEvt();
-extern void initMenu();
-extern void initQd();
-extern void initRes();
-extern void initWin();
-extern void initNav();
-#endif
-#ifdef USE_QT
-extern void initCm();
-extern void initQt();
-#endif
-
-#ifdef USE_IMG
-extern void initimgcolormap();
-extern void initimgformat();
-extern void initimggif();
-extern void initimgjpeg();
-extern void initimgpbm();
-extern void initimgppm();
-extern void initimgpgm();
-extern void initimgtiff();
-extern void initimgsgi();
-extern void initimgpng();
-extern void initimgop();
-#endif
-#ifdef USE_TK
-extern void init_tkinter();
-#endif
-#ifdef USE_GUSI
-extern void init_socket();
-extern void initselect();
-#endif
-#ifdef USE_WASTE
-extern void initwaste();
-#endif
-#ifdef USE_GDBM
-extern void initgdbm();
-#endif
-#ifdef USE_ZLIB
-extern void initzlib();
-#endif
-#ifdef WITH_THREAD
-extern void initthread();
-#endif
-#ifdef USE_PYEXPAT
-extern void initpyexpat();
-#endif
-
-extern void initcPickle();
-extern void initcStringIO();
-extern void init_codecs();
-extern void initsha();
-extern void init_locale();
-extern void init_sre();
-extern void initxreadlines();
-/* -- ADDMODULE MARKER 1 -- */
-
-extern void PyMarshal_Init();
-extern void initimp();
-
-struct _inittab _PyImport_Inittab[] = {
-
-       {"array", initarray},
-       {"math", initmath},
-#ifndef WITHOUT_COMPLEX
-       {"cmath", initcmath},
-#endif
-       {"parser", initparser},
-       {"mac", initmac},
-       {"MacOS", initMacOS},
-       {"regex", initregex},
-       {"strop", initstrop},
-       {"struct", initstruct},
-       {"time", inittime},
-       {"audioop", initaudioop},
-       {"imageop", initimageop},
-       {"rgbimg", initrgbimg},
-       {"md5", initmd5},
-       {"rotor", initrotor},
-       {"new", initnew},
-       {"gestalt", initgestalt},
-       {"macfs", initmacfs},
-       {"binascii", initbinascii},
-       {"operator", initoperator},
-       {"errno", initerrno},
-       {"pcre", initpcre},
-       {"unicodedata", initunicodedata},
-       {"_codecs", init_codecs},
-       {"sha", initsha},
-#ifdef USE_MACCTB
-       {"ctb", initctb},
-#endif
-/* This could probably be made to work on other compilers... */
-#ifdef USE_MACSPEECH
-       {"macspeech", initmacspeech},
-#endif
-#ifdef USE_MACTCP
-       {"macdnr", initmacdnr},
-       {"mactcp", initmactcp},
-#endif
-#ifdef USE_IC
-       {"icglue", initicglue},
-#endif
-#ifdef USE_CORE_TOOLBOX
-       {"AE", initAE},
-       {"Ctl", initCtl},
-       {"Dlg", initDlg},
-       {"Drag", initDrag},
-       {"Evt", initEvt},
-       {"Menu", initMenu},
-       {"Nav", initNav},
-       {"Qd", initQd},
-       {"Win", initWin},
-       {"Res", initRes},
-#endif
-#ifdef USE_TOOLBOX
-       {"App", initApp},
-       {"Fm", initFm},
-       {"Icn", initIcn},
-       {"List", initList},
-       {"Qdoffs", initQdoffs},
-       {"Snd", initSnd},
-       {"Sndihooks", initSndihooks},
-       /* Carbon scrap manager is completely different */
-       {"Scrap", initScrap},
-       {"TE", initTE},
-       {"ColorPicker", initColorPicker},
-#if !TARGET_API_MAC_CARBON
-       {"Help", initHelp},
-       {"Printing", initPrinting},
-#endif
-#endif
-#ifdef USE_QT
-       {"Cm", initCm},
-       {"Qt", initQt},
-#endif
-#ifdef USE_IMG
-       {"imgcolormap", initimgcolormap},
-       {"imgformat",   initimgformat},
-       {"imggif",      initimggif},
-       {"imgjpeg",     initimgjpeg},
-       {"imgpbm",      initimgpbm},
-       {"imgppm",      initimgppm},
-       {"imgpgm",      initimgpgm},
-       {"imgtiff",     initimgtiff},
-       {"imgsgi",      initimgsgi},
-       {"imgpng",      initimgpng},
-       {"imgop",       initimgop},
-#endif
-#ifdef USE_TK
-       {"_tkinter",    init_tkinter},
-#endif
-#ifdef USE_GUSI
-       {"_socket",     init_socket},
-       {"select",      initselect},
-#endif
-#ifdef USE_WASTE
-       {"waste",       initwaste},
-#endif
-#ifdef USE_GDBM
-       {"gdbm",        initgdbm},
-#endif /* USE_GDBM */
-#ifdef USE_ZLIB
-       {"zlib",        initzlib},
-#endif
-#ifdef WITH_THREAD
-       {"thread",      initthread},
-#endif
-#ifdef USE_PYEXPAT
-       {"pyexpat", initpyexpat},
-#endif
-       {"cPickle",     initcPickle},
-       {"cStringIO",   initcStringIO},
-       {"_locale", init_locale},
-       {"_sre", init_sre},
-       {"xreadlines", initxreadlines},
-/* -- ADDMODULE MARKER 2 -- */
-
-       /* This module "lives in" with marshal.c */
-       {"marshal", PyMarshal_Init},
-       
-       /* This module "lives in" with import.c */
-       {"imp", initimp},
-
-       /* These entries are here for sys.builtin_module_names */
-       {"__main__", NULL},
-       {"__builtin__", NULL},
-       {"sys", NULL},
-
-       /* Sentinel */
-       {0, 0}
-};
diff --git a/Mac/Modules/macfsmodule.c b/Mac/Modules/macfsmodule.c
deleted file mode 100644 (file)
index 744a091..0000000
+++ /dev/null
@@ -1,998 +0,0 @@
-/***********************************************************
-Copyright 1991-1997 by Stichting Mathematisch Centrum, Amsterdam,
-The Netherlands.
-
-                        All Rights Reserved
-
-Permission to use, copy, modify, and distribute this software and its 
-documentation for any purpose and without fee is hereby granted, 
-provided that the above copyright notice appear in all copies and that
-both that copyright notice and this permission notice appear in 
-supporting documentation, and that the names of Stichting Mathematisch
-Centrum or CWI not be used in advertising or publicity pertaining to
-distribution of the software without specific, written prior permission.
-
-STICHTING MATHEMATISCH CENTRUM DISCLAIMS ALL WARRANTIES WITH REGARD TO
-THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
-FITNESS, IN NO EVENT SHALL STICHTING MATHEMATISCH CENTRUM BE LIABLE
-FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
-WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
-ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
-OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
-
-******************************************************************/
-
-#include "Python.h"
-#include "macglue.h"
-
-#include <Memory.h>
-#include <Files.h>
-#include <Folders.h>
-#include <StandardFile.h>
-#include <Aliases.h>
-#include <LowMem.h>
-
-#include "getapplbycreator.h"
-
-/* Should this be in macglue.h? */
-extern FSSpec *mfs_GetFSSpecFSSpec(PyObject *);
-
-static PyObject *ErrorObject;
-
-/* ----------------------------------------------------- */
-/* Declarations for objects of type Alias */
-
-typedef struct {
-       PyObject_HEAD
-       AliasHandle alias;
-} mfsaobject;
-
-staticforward PyTypeObject Mfsatype;
-
-#define is_mfsaobject(v)               ((v)->ob_type == &Mfsatype)
-
-/* ---------------------------------------------------------------- */
-/* Declarations for objects of type FSSpec */
-
-typedef struct {
-       PyObject_HEAD
-       FSSpec fsspec;
-} mfssobject;
-
-staticforward PyTypeObject Mfsstype;
-
-#define is_mfssobject(v)               ((v)->ob_type == &Mfsstype)
-
-
-/* ---------------------------------------------------------------- */
-/* Declarations for objects of type FInfo */
-
-typedef struct {
-       PyObject_HEAD
-       FInfo finfo;
-} mfsiobject;
-
-staticforward PyTypeObject Mfsitype;
-
-#define is_mfsiobject(v)               ((v)->ob_type == &Mfsitype)
-
-
-mfssobject *newmfssobject(FSSpec *fss); /* Forward */
-
-/* ---------------------------------------------------------------- */
-
-static PyObject *
-mfsa_Resolve(self, args)
-       mfsaobject *self;
-       PyObject *args;
-{
-       FSSpec from, *fromp, result;
-       Boolean changed;
-       OSErr err;
-       
-       from.name[0] = 0;
-       if (!PyArg_ParseTuple(args, "|O&", PyMac_GetFSSpec, &from))
-               return NULL;
-       if (from.name[0] )
-               fromp = &from;
-       else
-               fromp = NULL;
-       err = ResolveAlias(fromp, self->alias, &result, &changed);
-       if ( err && err != fnfErr ) {
-               PyErr_Mac(ErrorObject, err);
-               return NULL;
-       }
-       return Py_BuildValue("(Oi)", newmfssobject(&result), (int)changed);
-}
-
-static PyObject *
-mfsa_GetInfo(self, args)
-       mfsaobject *self;
-       PyObject *args;
-{
-       Str63 value;
-       int i;
-       OSErr err;
-       
-       if (!PyArg_ParseTuple(args, "i", &i))
-               return NULL;
-       err = GetAliasInfo(self->alias, (AliasInfoType)i, value);
-       if ( err ) {
-               PyErr_Mac(ErrorObject, err);
-               return 0;
-       }
-       return PyString_FromStringAndSize((char *)&value[1], value[0]);
-}
-
-static PyObject *
-mfsa_Update(self, args)
-       mfsaobject *self;
-       PyObject *args;
-{
-       FSSpec target, fromfile, *fromfilep;
-       OSErr err;
-       Boolean changed;
-       
-       fromfile.name[0] = 0;
-       if (!PyArg_ParseTuple(args, "O&|O&",  PyMac_GetFSSpec, &target,
-                                        PyMac_GetFSSpec, &fromfile))
-               return NULL;
-       if ( fromfile.name[0] )
-               fromfilep = &fromfile;
-       else
-               fromfilep = NULL;
-       err = UpdateAlias(fromfilep, &target, self->alias, &changed);
-       if ( err ) {
-               PyErr_Mac(ErrorObject, err);
-               return 0;
-       }
-       return Py_BuildValue("i", (int)changed);
-}
-
-static struct PyMethodDef mfsa_methods[] = {
-       {"Resolve",     (PyCFunction)mfsa_Resolve,      1},
-       {"GetInfo",     (PyCFunction)mfsa_GetInfo,      1},
-       {"Update",      (PyCFunction)mfsa_Update,       1},
-       {NULL,          NULL}           /* sentinel */
-};
-
-/* ---------- */
-
-static PyObject *
-mfsa_getattr(self, name)
-       mfsaobject *self;
-       char *name;
-{
-       if ( strcmp(name, "data") == 0 ) {
-               int size;
-               PyObject *rv;
-               
-               size = GetHandleSize((Handle)self->alias);
-               HLock((Handle)self->alias);
-               rv = PyString_FromStringAndSize(*(Handle)self->alias, size);
-               HUnlock((Handle)self->alias);
-               return rv;
-       }
-       return Py_FindMethod(mfsa_methods, (PyObject *)self, name);
-}
-
-static mfsaobject *
-newmfsaobject(AliasHandle alias)
-{
-       mfsaobject *self;
-
-       self = PyObject_NEW(mfsaobject, &Mfsatype);
-       if (self == NULL)
-               return NULL;
-       self->alias = alias;
-       return self;
-}
-
-
-static void
-mfsa_dealloc(self)
-       mfsaobject *self;
-{
-#if 0
-       if ( self->alias ) {
-               should we do something here?
-       }
-#endif
-               
-       PyMem_DEL(self);
-}
-
-statichere PyTypeObject Mfsatype = {
-       PyObject_HEAD_INIT(&PyType_Type)
-       0,                              /*ob_size*/
-       "Alias",                        /*tp_name*/
-       sizeof(mfsaobject),             /*tp_basicsize*/
-       0,                              /*tp_itemsize*/
-       /* methods */
-       (destructor)mfsa_dealloc,       /*tp_dealloc*/
-       (printfunc)0,                   /*tp_print*/
-       (getattrfunc)mfsa_getattr,      /*tp_getattr*/
-       (setattrfunc)0,                 /*tp_setattr*/
-       (cmpfunc)0,                     /*tp_compare*/
-       (reprfunc)0,                    /*tp_repr*/
-       0,                              /*tp_as_number*/
-       0,                              /*tp_as_sequence*/
-       0,                              /*tp_as_mapping*/
-       (hashfunc)0,                    /*tp_hash*/
-};
-
-/* End of code for Alias objects */
-/* -------------------------------------------------------- */
-
-/* ---------------------------------------------------------------- */
-
-static struct PyMethodDef mfsi_methods[] = {
-       
-       {NULL,          NULL}           /* sentinel */
-};
-
-/* ---------- */
-
-static mfsiobject *
-newmfsiobject()
-{
-       mfsiobject *self;
-       
-       self = PyObject_NEW(mfsiobject, &Mfsitype);
-       if (self == NULL)
-               return NULL;
-       memset((char *)&self->finfo, '\0', sizeof(self->finfo));
-       return self;
-}
-
-static void
-mfsi_dealloc(self)
-       mfsiobject *self;
-{
-       PyMem_DEL(self);
-}
-
-static PyObject *
-mfsi_getattr(self, name)
-       mfsiobject *self;
-       char *name;
-{
-       if ( strcmp(name, "Type") == 0 )
-               return PyMac_BuildOSType(self->finfo.fdType);
-       else if ( strcmp(name, "Creator") == 0 )
-               return PyMac_BuildOSType(self->finfo.fdCreator);
-       else if ( strcmp(name, "Flags") == 0 )
-               return Py_BuildValue("i", (int)self->finfo.fdFlags);
-       else if ( strcmp(name, "Location") == 0 )
-               return PyMac_BuildPoint(self->finfo.fdLocation);
-       else if ( strcmp(name, "Fldr") == 0 )
-               return Py_BuildValue("i", (int)self->finfo.fdFldr);
-       else
-               return Py_FindMethod(mfsi_methods, (PyObject *)self, name);
-}
-
-
-static int
-mfsi_setattr(self, name, v)
-       mfsiobject *self;
-       char *name;
-       PyObject *v;
-{
-       int rv;
-       int i;
-       
-       if ( v == NULL ) {
-               PyErr_SetString(PyExc_AttributeError, "Cannot delete attribute");
-               return -1;
-       }
-       if ( strcmp(name, "Type") == 0 )
-               rv = PyMac_GetOSType(v, &self->finfo.fdType);
-       else if ( strcmp(name, "Creator") == 0 )
-               rv = PyMac_GetOSType(v, &self->finfo.fdCreator);
-       else if ( strcmp(name, "Flags") == 0 ) {
-               rv = PyArg_Parse(v, "i", &i);
-               self->finfo.fdFlags = (short)i;
-       } else if ( strcmp(name, "Location") == 0 )
-               rv = PyMac_GetPoint(v, &self->finfo.fdLocation);
-       else if ( strcmp(name, "Fldr") == 0 ) {
-               rv = PyArg_Parse(v, "i", &i);
-               self->finfo.fdFldr = (short)i;
-       } else {
-               PyErr_SetString(PyExc_AttributeError, "No such attribute");
-               return -1;
-       }
-       if (rv)
-               return 0;
-       return -1;
-}
-
-
-static PyTypeObject Mfsitype = {
-       PyObject_HEAD_INIT(&PyType_Type)
-       0,                              /*ob_size*/
-       "FInfo",                        /*tp_name*/
-       sizeof(mfsiobject),             /*tp_basicsize*/
-       0,                              /*tp_itemsize*/
-       /* methods */
-       (destructor)mfsi_dealloc,       /*tp_dealloc*/
-       (printfunc)0,           /*tp_print*/
-       (getattrfunc)mfsi_getattr,      /*tp_getattr*/
-       (setattrfunc)mfsi_setattr,      /*tp_setattr*/
-       (cmpfunc)0,             /*tp_compare*/
-       (reprfunc)0,            /*tp_repr*/
-       0,                      /*tp_as_number*/
-       0,              /*tp_as_sequence*/
-       0,              /*tp_as_mapping*/
-       (hashfunc)0,            /*tp_hash*/
-};
-
-/* End of code for FInfo object objects */
-/* -------------------------------------------------------- */
-
-
-/*
-** Helper routine for other modules: return an FSSpec * if the
-** object is a python fsspec object, else NULL
-*/
-FSSpec *
-mfs_GetFSSpecFSSpec(PyObject *self)
-{
-       if ( is_mfssobject(self) )
-               return &((mfssobject *)self)->fsspec;
-       return NULL;
-}
-
-/*
-** Two generally useful routines
-*/
-static OSErr
-PyMac_GetFileDates(fss, crdat, mddat, bkdat)
-       FSSpec *fss;
-       unsigned long *crdat, *mddat, *bkdat;
-{
-       CInfoPBRec pb;
-       OSErr error;
-       
-       pb.dirInfo.ioNamePtr = fss->name;
-       pb.dirInfo.ioFDirIndex = 0;
-       pb.dirInfo.ioVRefNum = fss->vRefNum;
-       pb.dirInfo.ioDrDirID = fss->parID;
-       error = PBGetCatInfoSync(&pb);
-       if ( error ) return error;
-       *crdat = pb.hFileInfo.ioFlCrDat;
-       *mddat = pb.hFileInfo.ioFlMdDat;
-       *bkdat = pb.hFileInfo.ioFlBkDat;
-       return 0;
-}      
-
-static OSErr
-PyMac_SetFileDates(fss, crdat, mddat, bkdat)
-       FSSpec *fss;
-       unsigned long crdat, mddat, bkdat;
-{
-       CInfoPBRec pb;
-       OSErr error;
-       
-       pb.dirInfo.ioNamePtr = fss->name;
-       pb.dirInfo.ioFDirIndex = 0;
-       pb.dirInfo.ioVRefNum = fss->vRefNum;
-       pb.dirInfo.ioDrDirID = fss->parID;
-       error = PBGetCatInfoSync(&pb);
-       if ( error ) return error;
-       pb.dirInfo.ioNamePtr = fss->name;
-       pb.dirInfo.ioFDirIndex = 0;
-       pb.dirInfo.ioVRefNum = fss->vRefNum;
-       pb.dirInfo.ioDrDirID = fss->parID;
-       pb.hFileInfo.ioFlCrDat = crdat;
-       pb.hFileInfo.ioFlMdDat = mddat;
-       pb.hFileInfo.ioFlBkDat = bkdat;
-       error = PBSetCatInfoSync(&pb);
-       return error;
-}
-
-static PyObject *
-mfss_as_pathname(self, args)
-       mfssobject *self;
-       PyObject *args;
-{
-       char strbuf[257];
-       OSErr err;
-
-       if (!PyArg_ParseTuple(args, ""))
-               return NULL;
-       err = PyMac_GetFullPath(&self->fsspec, strbuf);
-       if ( err ) {
-               PyErr_Mac(ErrorObject, err);
-               return NULL;
-       }
-       return PyString_FromString(strbuf);
-}
-
-static PyObject *
-mfss_as_tuple(self, args)
-       mfssobject *self;
-       PyObject *args;
-{
-       if (!PyArg_ParseTuple(args, ""))
-               return NULL;
-       return Py_BuildValue("(iis#)", self->fsspec.vRefNum, self->fsspec.parID, 
-                                               &self->fsspec.name[1], self->fsspec.name[0]);
-}
-
-static PyObject *
-mfss_NewAlias(self, args)
-       mfssobject *self;
-       PyObject *args;
-{
-       FSSpec src, *srcp;
-       OSErr err;
-       AliasHandle alias;
-       
-       src.name[0] = 0;
-       if (!PyArg_ParseTuple(args, "|O&", PyMac_GetFSSpec, &src))
-               return NULL;
-       if ( src.name[0] )
-               srcp = &src;
-       else
-               srcp = NULL;
-       err = NewAlias(srcp, &self->fsspec, &alias);
-       if ( err ) {
-               PyErr_Mac(ErrorObject, err);
-               return NULL;
-       }
-       
-       return (PyObject *)newmfsaobject(alias);
-}
-
-static PyObject *
-mfss_NewAliasMinimal(self, args)
-       mfssobject *self;
-       PyObject *args;
-{
-       OSErr err;
-       AliasHandle alias;
-       
-       if (!PyArg_ParseTuple(args, ""))
-               return NULL;
-       err = NewAliasMinimal(&self->fsspec, &alias);
-       if ( err ) {
-               PyErr_Mac(ErrorObject, err);
-               return NULL;
-       }
-       return (PyObject *)newmfsaobject(alias);
-}
-
-/* XXXX These routines should be replaced by a wrapper to the *FInfo routines */
-static PyObject *
-mfss_GetCreatorType(self, args)
-       mfssobject *self;
-       PyObject *args;
-{
-       OSErr err;
-       FInfo info;
-       
-       if (!PyArg_ParseTuple(args, ""))
-               return NULL;
-       err = FSpGetFInfo(&self->fsspec, &info);
-       if ( err ) {
-               PyErr_Mac(ErrorObject, err);
-               return NULL;
-       }
-       return Py_BuildValue("(O&O&)",
-                  PyMac_BuildOSType, info.fdCreator, PyMac_BuildOSType, info.fdType);
-}
-
-static PyObject *
-mfss_SetCreatorType(self, args)
-       mfssobject *self;
-       PyObject *args;
-{
-       OSErr err;
-       OSType creator, type;
-       FInfo info;
-       
-       if (!PyArg_ParseTuple(args, "O&O&", PyMac_GetOSType, &creator, PyMac_GetOSType, &type))
-               return NULL;
-       err = FSpGetFInfo(&self->fsspec, &info);
-       if ( err ) {
-               PyErr_Mac(ErrorObject, err);
-               return NULL;
-       }
-       info.fdType = type;
-       info.fdCreator = creator;
-       err = FSpSetFInfo(&self->fsspec, &info);
-       if ( err ) {
-               PyErr_Mac(ErrorObject, err);
-               return NULL;
-       }
-       Py_INCREF(Py_None);
-       return Py_None;
-}
-
-static PyObject *
-mfss_GetFInfo(self, args)
-       mfssobject *self;
-       PyObject *args;
-{
-       OSErr err;
-       mfsiobject *fip;
-       
-       
-       if (!PyArg_ParseTuple(args, ""))
-               return NULL;
-       if ( (fip=newmfsiobject()) == NULL )
-               return NULL;
-       err = FSpGetFInfo(&self->fsspec, &fip->finfo);
-       if ( err ) {
-               PyErr_Mac(ErrorObject, err);
-               Py_DECREF(fip);
-               return NULL;
-       }
-       return (PyObject *)fip;
-}
-
-static PyObject *
-mfss_SetFInfo(self, args)
-       mfssobject *self;
-       PyObject *args;
-{
-       OSErr err;
-       mfsiobject *fip;
-       
-       if (!PyArg_ParseTuple(args, "O!", &Mfsitype, &fip))
-               return NULL;
-       err = FSpSetFInfo(&self->fsspec, &fip->finfo);
-       if ( err ) {
-               PyErr_Mac(ErrorObject, err);
-               return NULL;
-       }
-       Py_INCREF(Py_None);
-       return Py_None;
-}
-
-static PyObject *
-mfss_GetDates(self, args)
-       mfssobject *self;
-       PyObject *args;
-{
-       OSErr err;
-       unsigned long crdat, mddat, bkdat;
-       
-       if (!PyArg_ParseTuple(args, ""))
-               return NULL;
-       err = PyMac_GetFileDates(&self->fsspec, &crdat, &mddat, &bkdat);
-       if ( err ) {
-               PyErr_Mac(ErrorObject, err);
-               return NULL;
-       }
-       return Py_BuildValue("ddd", (double)crdat, (double)mddat, (double)bkdat);
-}
-
-static PyObject *
-mfss_SetDates(self, args)
-       mfssobject *self;
-       PyObject *args;
-{
-       OSErr err;
-       double crdat, mddat, bkdat;
-       
-       if (!PyArg_ParseTuple(args, "ddd", &crdat, &mddat, &bkdat))
-               return NULL;
-       err = PyMac_SetFileDates(&self->fsspec, (unsigned long)crdat, 
-                               (unsigned long)mddat, (unsigned long)bkdat);
-       if ( err ) {
-               PyErr_Mac(ErrorObject, err);
-               return NULL;
-       }
-       Py_INCREF(Py_None);
-       return Py_None;
-}
-
-static struct PyMethodDef mfss_methods[] = {
-       {"as_pathname",         (PyCFunction)mfss_as_pathname,                  1},
-       {"as_tuple",            (PyCFunction)mfss_as_tuple,                             1},
-       {"NewAlias",            (PyCFunction)mfss_NewAlias,                             1},
-       {"NewAliasMinimal",     (PyCFunction)mfss_NewAliasMinimal,              1},
-       {"GetCreatorType",      (PyCFunction)mfss_GetCreatorType,               1},
-       {"SetCreatorType",      (PyCFunction)mfss_SetCreatorType,               1},
-       {"GetFInfo",            (PyCFunction)mfss_GetFInfo,                             1},
-       {"SetFInfo",            (PyCFunction)mfss_SetFInfo,                             1},
-       {"GetDates",            (PyCFunction)mfss_GetDates,                             1},
-       {"SetDates",            (PyCFunction)mfss_SetDates,                             1},
-       {NULL,                  NULL}           /* sentinel */
-};
-
-/* ---------- */
-
-static PyObject *
-mfss_getattr(self, name)
-       mfssobject *self;
-       char *name;
-{
-       if ( strcmp(name, "data") == 0)
-               return PyString_FromStringAndSize((char *)&self->fsspec, sizeof(FSSpec));       
-       return Py_FindMethod(mfss_methods, (PyObject *)self, name);
-}
-
-mfssobject *
-newmfssobject(fss)
-       FSSpec *fss;
-{
-       mfssobject *self;
-       
-       self = PyObject_NEW(mfssobject, &Mfsstype);
-       if (self == NULL)
-               return NULL;
-       self->fsspec = *fss;
-       return self;
-}
-
-static void
-mfss_dealloc(self)
-       mfssobject *self;
-{
-       PyMem_DEL(self);
-}
-
-static PyObject *
-mfss_repr(self)
-       mfssobject *self;
-{
-       char buf[512];
-
-       sprintf(buf, "FSSpec((%d, %d, '%.*s'))",
-               self->fsspec.vRefNum, 
-               self->fsspec.parID,
-               self->fsspec.name[0], self->fsspec.name+1);
-       return PyString_FromString(buf);
-}
-
-static int
-mfss_compare(v, w)
-       mfssobject *v, *w;
-{
-       int minlen;
-       int res;
-       
-       if ( v->fsspec.vRefNum < w->fsspec.vRefNum ) return -1;
-       if ( v->fsspec.vRefNum > w->fsspec.vRefNum ) return 1;
-       if ( v->fsspec.parID < w->fsspec.parID ) return -1;
-       if ( v->fsspec.parID > w->fsspec.parID ) return 1;
-       minlen = v->fsspec.name[0];
-       if ( w->fsspec.name[0] < minlen ) minlen = w->fsspec.name[0];
-       res = strncmp((char *)v->fsspec.name+1, (char *)w->fsspec.name+1, minlen);
-       if ( res ) return res;
-       if ( v->fsspec.name[0] < w->fsspec.name[0] ) return -1;
-       if ( v->fsspec.name[0] > w->fsspec.name[0] ) return 1;
-       return res;
-}
-
-statichere PyTypeObject Mfsstype = {
-       PyObject_HEAD_INIT(&PyType_Type)
-       0,                              /*ob_size*/
-       "FSSpec",                       /*tp_name*/
-       sizeof(mfssobject),             /*tp_basicsize*/
-       0,                              /*tp_itemsize*/
-       /* methods */
-       (destructor)mfss_dealloc,       /*tp_dealloc*/
-       (printfunc)0,           /*tp_print*/
-       (getattrfunc)mfss_getattr,      /*tp_getattr*/
-       (setattrfunc)0, /*tp_setattr*/
-       (cmpfunc)mfss_compare,          /*tp_compare*/
-       (reprfunc)mfss_repr,            /*tp_repr*/
-       0,                      /*tp_as_number*/
-       0,              /*tp_as_sequence*/
-       0,              /*tp_as_mapping*/
-       (hashfunc)0,            /*tp_hash*/
-};
-
-/* End of code for FSSpec objects */
-/* -------------------------------------------------------- */
-
-static PyObject *
-mfs_ResolveAliasFile(self, args)
-       PyObject *self; /* Not used */
-       PyObject *args;
-{
-       FSSpec fss;
-       Boolean chain = 1, isfolder, wasaliased;
-       OSErr err;
-
-       if (!PyArg_ParseTuple(args, "O&|i", PyMac_GetFSSpec, &fss, &chain))
-               return NULL;
-       err = ResolveAliasFile(&fss, chain, &isfolder, &wasaliased);
-       if ( err ) {
-               PyErr_Mac(ErrorObject, err);
-               return NULL;
-       }
-       return Py_BuildValue("Oii", newmfssobject(&fss), (int)isfolder, (int)wasaliased);
-}
-
-#if !TARGET_API_MAC_CARBON
-static PyObject *
-mfs_StandardGetFile(self, args)
-       PyObject *self; /* Not used */
-       PyObject *args;
-{
-       SFTypeList list;
-       short numtypes;
-       StandardFileReply reply;
-       
-       list[0] = list[1] = list[2] = list[3] = 0;
-       numtypes = 0;
-       if (!PyArg_ParseTuple(args, "|O&O&O&O&", PyMac_GetOSType, &list[0],
-                        PyMac_GetOSType, &list[1], PyMac_GetOSType, &list[2],
-                         PyMac_GetOSType, &list[3]) )
-               return NULL;
-       while ( numtypes < 4 && list[numtypes] ) {
-               numtypes++;
-       }
-       if ( numtypes == 0 )
-               numtypes = -1;
-       StandardGetFile((FileFilterUPP)0, numtypes, list, &reply);
-       return Py_BuildValue("(Oi)", newmfssobject(&reply.sfFile), reply.sfGood);
-}
-
-static PyObject *
-mfs_PromptGetFile(self, args)
-       PyObject *self; /* Not used */
-       PyObject *args;
-{
-       SFTypeList list;
-       short numtypes;
-       StandardFileReply reply;
-       char *prompt = NULL;
-       
-       list[0] = list[1] = list[2] = list[3] = 0;
-       numtypes = 0;
-       if (!PyArg_ParseTuple(args, "s|O&O&O&O&", &prompt, PyMac_GetOSType, &list[0],
-                        PyMac_GetOSType, &list[1], PyMac_GetOSType, &list[2],
-                         PyMac_GetOSType, &list[3]) )
-               return NULL;
-       while ( numtypes < 4 && list[numtypes] ) {
-               numtypes++;
-       }
-       if ( numtypes == 0 )
-               numtypes = -1;
-       PyMac_PromptGetFile(numtypes, list, &reply, prompt);
-       return Py_BuildValue("(Oi)", newmfssobject(&reply.sfFile), reply.sfGood);
-}
-
-static PyObject *
-mfs_StandardPutFile(self, args)
-       PyObject *self; /* Not used */
-       PyObject *args;
-{
-       Str255 prompt, dft;
-       StandardFileReply reply;
-       
-       dft[0] = 0;
-       if (!PyArg_ParseTuple(args, "O&|O&", PyMac_GetStr255, &prompt, PyMac_GetStr255, &dft) )
-               return NULL;
-       StandardPutFile(prompt, dft, &reply);
-       return Py_BuildValue("(Oi)",newmfssobject(&reply.sfFile), reply.sfGood);
-}
-
-/*
-** Set initial directory for file dialogs */
-static PyObject *
-mfs_SetFolder(self, args)
-       PyObject *self;
-       PyObject *args;
-{
-       FSSpec spec;
-       FSSpec ospec;
-       short orefnum;
-       long oparid;
-       
-       /* Get old values */
-       orefnum = -LMGetSFSaveDisk();
-       oparid = LMGetCurDirStore();
-       (void)FSMakeFSSpec(orefnum, oparid, "\pplaceholder", &ospec);
-       
-       /* Go to working directory by default */
-       (void)FSMakeFSSpec(0, 0, "\p:placeholder", &spec);
-       if (!PyArg_ParseTuple(args, "|O&", PyMac_GetFSSpec, &spec))
-               return NULL;
-       /* Set standard-file working directory */
-       LMSetSFSaveDisk(-spec.vRefNum);
-       LMSetCurDirStore(spec.parID);
-       return (PyObject *)newmfssobject(&ospec);
-}
-#endif
-
-static PyObject *
-mfs_FSSpec(self, args)
-       PyObject *self; /* Not used */
-       PyObject *args;
-{
-       FSSpec fss;
-
-       if (!PyArg_ParseTuple(args, "O&", PyMac_GetFSSpec, &fss))
-               return NULL;
-       return (PyObject *)newmfssobject(&fss);
-}
-
-static PyObject *
-mfs_RawFSSpec(self, args)
-       PyObject *self; /* Not used */
-       PyObject *args;
-{
-       FSSpec *fssp;
-       int size;
-
-       if (!PyArg_ParseTuple(args, "s#", &fssp, &size))
-               return NULL;
-       if ( size != sizeof(FSSpec) ) {
-               PyErr_SetString(PyExc_TypeError, "Incorrect size for FSSpec record");
-               return NULL;
-       }
-       return (PyObject *)newmfssobject(fssp);
-}
-
-static PyObject *
-mfs_RawAlias(self, args)
-       PyObject *self; /* Not used */
-       PyObject *args;
-{
-       char *dataptr;
-       Handle h;
-       int size;
-
-       if (!PyArg_ParseTuple(args, "s#", &dataptr, &size))
-               return NULL;
-       h = NewHandle(size);
-       if ( h == NULL ) {
-               PyErr_NoMemory();
-               return NULL;
-       }
-       HLock(h);
-       memcpy((char *)*h, dataptr, size);
-       HUnlock(h);
-       return (PyObject *)newmfsaobject((AliasHandle)h);
-}
-
-#if !TARGET_API_MAC_CARBON
-static PyObject *
-mfs_GetDirectory(self, args)
-       PyObject *self; /* Not used */
-       PyObject *args;
-{
-       FSSpec fsdir;
-       int ok;
-       char *prompt = NULL;
-               
-       if (!PyArg_ParseTuple(args, "|s", &prompt) )
-               return NULL;
-               
-       ok = PyMac_GetDirectory(&fsdir, prompt);
-       return Py_BuildValue("(Oi)", newmfssobject(&fsdir), ok);
-}
-#endif
-
-static PyObject *
-mfs_FindFolder(self, args)
-       PyObject *self; /* Not used */
-       PyObject *args;
-{
-       OSErr err;
-       short where;
-       OSType which;
-       int create;
-       short refnum;
-       long dirid;
-               
-       if (!PyArg_ParseTuple(args, "hO&i", &where, PyMac_GetOSType, &which, &create) )
-               return NULL;
-       err = FindFolder(where, which, (Boolean)create, &refnum, &dirid);
-       if ( err ) {
-               PyErr_Mac(ErrorObject, err);
-               return NULL;
-       }
-       return Py_BuildValue("(ii)", refnum, dirid);
-}
-
-static PyObject *
-mfs_FindApplication(self, args)
-       PyObject *self; /* Not used */
-       PyObject *args;
-{
-       OSErr err;
-       OSType which;
-       FSSpec  fss;
-               
-       if (!PyArg_ParseTuple(args, "O&", PyMac_GetOSType, &which) )
-               return NULL;
-       err = FindApplicationFromCreator(which, &fss);
-       if ( err ) {
-               PyErr_Mac(ErrorObject, err);
-               return NULL;
-       }
-       return (PyObject *)newmfssobject(&fss);
-}
-
-static PyObject *
-mfs_FInfo(self, args)
-       PyObject *self;
-       PyObject *args;
-{      
-       return (PyObject *)newmfsiobject();
-}
-
-static PyObject *
-mfs_NewAliasMinimalFromFullPath(self, args)
-       PyObject *self; /* Not used */
-       PyObject *args;
-{
-       OSErr err;
-       char *fullpath;
-       int fullpathlen;
-       AliasHandle alias;
-       Str32 zonename;
-       Str31 servername;
-                       
-       if (!PyArg_ParseTuple(args, "s#", &fullpath, &fullpathlen) )
-               return NULL;
-       zonename[0] = 0;
-       servername[0] = 0;
-       err = NewAliasMinimalFromFullPath(fullpathlen, (Ptr)fullpath, zonename, 
-                       servername, &alias);
-       if ( err ) {
-               PyErr_Mac(ErrorObject, err);
-               return NULL;
-       }
-       return (PyObject *)newmfsaobject(alias);
-}
-
-
-/* List of methods defined in the module */
-
-static struct PyMethodDef mfs_methods[] = {
-       {"ResolveAliasFile",    mfs_ResolveAliasFile,   1},
-#if !TARGET_API_MAC_CARBON
-       {"StandardGetFile",             mfs_StandardGetFile,    1},
-       {"PromptGetFile",               mfs_PromptGetFile,              1},
-       {"StandardPutFile",             mfs_StandardPutFile,    1},
-       {"GetDirectory",                mfs_GetDirectory,               1},
-       {"SetFolder",                   mfs_SetFolder,                  1},
-#endif
-       {"FSSpec",                              mfs_FSSpec,                             1},
-       {"RawFSSpec",                   mfs_RawFSSpec,                  1},
-       {"RawAlias",                    mfs_RawAlias,                   1},
-       {"FindFolder",                  mfs_FindFolder,                 1},
-       {"FindApplication",             mfs_FindApplication,    1},
-       {"FInfo",                               mfs_FInfo,                              1},
-       {"NewAliasMinimalFromFullPath", mfs_NewAliasMinimalFromFullPath,        1},
-       {NULL,          NULL}           /* sentinel */
-};
-
-
-/* Initialization function for the module (*must* be called initmacfs) */
-
-void
-initmacfs()
-{
-       PyObject *m, *d;
-
-       /* Create the module and add the functions */
-       m = Py_InitModule("macfs", mfs_methods);
-
-       /* Add some symbolic constants to the module */
-       d = PyModule_GetDict(m);
-       ErrorObject = PyMac_GetOSErrException();
-       PyDict_SetItemString(d, "error", ErrorObject);
-
-       Mfsatype.ob_type = &PyType_Type;
-       Py_INCREF(&Mfsatype);
-       PyDict_SetItemString(d, "AliasType", (PyObject *)&Mfsatype);
-       Mfsstype.ob_type = &PyType_Type;
-       Py_INCREF(&Mfsstype);
-       PyDict_SetItemString(d, "FSSpecType", (PyObject *)&Mfsstype);
-       Mfsitype.ob_type = &PyType_Type;
-       Py_INCREF(&Mfsitype);
-       PyDict_SetItemString(d, "FInfoType", (PyObject *)&Mfsitype);
-       /* XXXX Add constants here */
-}
diff --git a/Mac/Modules/macmodule.c b/Mac/Modules/macmodule.c
deleted file mode 100644 (file)
index b9a56ef..0000000
+++ /dev/null
@@ -1,652 +0,0 @@
-/***********************************************************
-Copyright 1991-1997 by Stichting Mathematisch Centrum, Amsterdam,
-The Netherlands.
-
-                        All Rights Reserved
-
-Permission to use, copy, modify, and distribute this software and its 
-documentation for any purpose and without fee is hereby granted, 
-provided that the above copyright notice appear in all copies and that
-both that copyright notice and this permission notice appear in 
-supporting documentation, and that the names of Stichting Mathematisch
-Centrum or CWI not be used in advertising or publicity pertaining to
-distribution of the software without specific, written prior permission.
-
-STICHTING MATHEMATISCH CENTRUM DISCLAIMS ALL WARRANTIES WITH REGARD TO
-THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
-FITNESS, IN NO EVENT SHALL STICHTING MATHEMATISCH CENTRUM BE LIABLE
-FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
-WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
-ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
-OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
-
-******************************************************************/
-
-/* Mac module implementation */
-
-#include "Python.h"
-#include "ceval.h"
-
-#include <stdio.h>
-#include <string.h>
-#include <errno.h>
-
-#if !TARGET_API_MAC_CARBON
-/* Skip for Carbon */
-#include "macstat.h"
-#endif
-
-#ifdef USE_GUSI
-/* Remove defines from macstat.h */
-#undef S_IFMT
-#undef S_IFDIR
-#undef S_IFREG
-#undef S_IREAD
-#undef S_IWRITE
-#undef S_IEXEC
-
-#ifdef USE_GUSI1
-#include <GUSI.h>
-#endif /* USE_GUSI1 */
-#include <sys/types.h>
-#include <sys/stat.h>
-#else /* USE_GUSI */
-#if !TARGET_API_MAC_CARBON
-#define stat macstat
-#endif
-#endif /* USE_GUSI */
-
-#ifdef USE_GUSI2
-#define sync bad_sync
-#include <unistd.h>
-#include <fcntl.h>
-#undef sync
-int sync(void);
-#else
-#define mode_t int
-#include <fcntl.h>
-#ifdef _POSIX
-#include <unistd.h>
-#include <stat.h>
-#endif
-#endif
-
-/* Optional routines, for some compiler/runtime combinations */
-#if defined(USE_GUSI) || !defined(__MWERKS__)
-#define WEHAVE_FDOPEN
-#endif
-#if defined(MPW) || defined(USE_GUSI)
-#define WEHAVE_DUP
-#endif
-#if defined(USE_GUSI)
-#define WEHAVE_FSTAT
-#endif
-
-#include "macdefs.h"
-#ifdef USE_GUSI
-#include <dirent.h>
-#else
-#include "dirent.h"
-#endif
-
-#ifndef MAXPATHLEN
-#define MAXPATHLEN 1024
-#endif
-
-/* Prototypes for Unix simulation on Mac */
-
-#ifndef USE_GUSI
-
-int chdir(const char *path);
-int mkdir(const char *path, int mode);
-DIR * opendir(char *);
-void closedir(DIR *);
-struct dirent * readdir(DIR *);
-int rmdir(const char *path);
-int sync(void);
-
-int unlink(const char *);
-
-#endif /* USE_GUSI */
-
-char *getwd(char *);
-char *getbootvol(void);
-
-
-static PyObject *MacError; /* Exception mac.error */
-
-/* Set a MAC-specific error from errno, and return NULL */
-
-static PyObject * 
-mac_error() 
-{
-       return PyErr_SetFromErrno(MacError);
-}
-
-/* MAC generic methods */
-
-static PyObject *
-mac_1str(args, func)
-       PyObject *args;
-       int (*func)(const char *);
-{
-       char *path1;
-       int res;
-       if (!PyArg_Parse(args, "s", &path1))
-               return NULL;
-       Py_BEGIN_ALLOW_THREADS
-       res = (*func)(path1);
-       Py_END_ALLOW_THREADS
-       if (res < 0)
-               return mac_error();
-       Py_INCREF(Py_None);
-       return Py_None;
-}
-
-static PyObject *
-mac_2str(args, func)
-       PyObject *args;
-       int (*func)(const char *, const char *);
-{
-       char *path1, *path2;
-       int res;
-       if (!PyArg_Parse(args, "(ss)", &path1, &path2))
-               return NULL;
-       Py_BEGIN_ALLOW_THREADS
-       res = (*func)(path1, path2);
-       Py_END_ALLOW_THREADS
-       if (res < 0)
-               return mac_error();
-       Py_INCREF(Py_None);
-       return Py_None;
-}
-
-static PyObject *
-mac_strint(args, func)
-       PyObject *args;
-       int (*func)(const char *, int);
-{
-       char *path;
-       int i;
-       int res;
-       if (!PyArg_Parse(args, "(si)", &path, &i))
-               return NULL;
-       Py_BEGIN_ALLOW_THREADS
-       res = (*func)(path, i);
-       Py_END_ALLOW_THREADS
-       if (res < 0)
-               return mac_error();
-       Py_INCREF(Py_None);
-       return Py_None;
-}
-
-static PyObject *
-mac_chdir(self, args)
-       PyObject *self;
-       PyObject *args;
-{
-#ifdef USE_GUSI1
-       PyObject *rv;
-       
-       /* Change MacOS's idea of wd too */
-       rv = mac_1str(args, chdir);
-       PyMac_FixGUSIcd();
-       return rv;
-#else
-       return mac_1str(args, chdir);
-#endif
-
-}
-
-static PyObject *
-mac_close(self, args)
-       PyObject *self;
-       PyObject *args;
-{
-       int fd, res;
-       if (!PyArg_Parse(args, "i", &fd))
-               return NULL;
-       Py_BEGIN_ALLOW_THREADS
-       res = close(fd);
-       Py_END_ALLOW_THREADS
-#ifndef USE_GUSI1
-       /* GUSI gives surious errors here? */
-       if (res < 0)
-               return mac_error();
-#endif
-       Py_INCREF(Py_None);
-       return Py_None;
-}
-
-#ifdef WEHAVE_DUP
-
-static PyObject *
-mac_dup(self, args)
-       PyObject *self;
-       PyObject *args;
-{
-       int fd;
-       if (!PyArg_Parse(args, "i", &fd))
-               return NULL;
-       Py_BEGIN_ALLOW_THREADS
-       fd = dup(fd);
-       Py_END_ALLOW_THREADS
-       if (fd < 0)
-               return mac_error();
-       return PyInt_FromLong((long)fd);
-}
-
-#endif
-
-#ifdef WEHAVE_FDOPEN
-static PyObject *
-mac_fdopen(self, args)
-       PyObject *self;
-       PyObject *args;
-{
-       extern int fclose(FILE *);
-       int fd;
-       char *mode;
-       FILE *fp;
-       if (!PyArg_Parse(args, "(is)", &fd, &mode))
-               return NULL;
-       Py_BEGIN_ALLOW_THREADS
-       fp = fdopen(fd, mode);
-       Py_END_ALLOW_THREADS
-       if (fp == NULL)
-               return mac_error();
-       return PyFile_FromFile(fp, "(fdopen)", mode, fclose);
-}
-#endif
-
-#if !TARGET_API_MAC_CARBON
-static PyObject *
-mac_getbootvol(self, args)
-       PyObject *self;
-       PyObject *args;
-{
-       char *res;
-       if (!PyArg_NoArgs(args))
-               return NULL;
-       Py_BEGIN_ALLOW_THREADS
-       res = getbootvol();
-       Py_END_ALLOW_THREADS
-       if (res == NULL)
-               return mac_error();
-       return PyString_FromString(res);
-}
-#endif
-
-static PyObject *
-mac_getcwd(self, args)
-       PyObject *self;
-       PyObject *args;
-{
-       char path[MAXPATHLEN];
-       char *res;
-       if (!PyArg_NoArgs(args))
-               return NULL;
-       Py_BEGIN_ALLOW_THREADS
-#ifdef USE_GUSI
-       res = getcwd(path, sizeof path);
-#else
-       res = getwd(path);
-#endif
-       Py_END_ALLOW_THREADS
-       if (res == NULL) {
-               PyErr_SetString(MacError, path);
-               return NULL;
-       }
-       return PyString_FromString(res);
-}
-
-static PyObject *
-mac_listdir(self, args)
-       PyObject *self;
-       PyObject *args;
-{
-       char *name;
-       PyObject *d, *v;
-       DIR *dirp;
-       struct dirent *ep;
-       if (!PyArg_Parse(args, "s", &name))
-               return NULL;
-       Py_BEGIN_ALLOW_THREADS
-       if ((dirp = opendir(name)) == NULL) {
-               Py_BLOCK_THREADS
-               return mac_error();
-       }
-       if ((d = PyList_New(0)) == NULL) {
-               closedir(dirp);
-               Py_BLOCK_THREADS
-               return NULL;
-       }
-       while ((ep = readdir(dirp)) != NULL) {
-               v = PyString_FromString(ep->d_name);
-               if (v == NULL) {
-                       Py_DECREF(d);
-                       d = NULL;
-                       break;
-               }
-               if (PyList_Append(d, v) != 0) {
-                       Py_DECREF(v);
-                       Py_DECREF(d);
-                       d = NULL;
-                       break;
-               }
-               Py_DECREF(v);
-       }
-       closedir(dirp);
-       Py_END_ALLOW_THREADS
-
-       return d;
-}
-
-static PyObject *
-mac_lseek(self, args)
-       PyObject *self;
-       PyObject *args;
-{
-       int fd;
-       int where;
-       int how;
-       long res;
-       if (!PyArg_Parse(args, "(iii)", &fd, &where, &how))
-               return NULL;
-       Py_BEGIN_ALLOW_THREADS
-       res = lseek(fd, (long)where, how);
-       Py_END_ALLOW_THREADS
-       if (res < 0)
-               return mac_error();
-       return PyInt_FromLong(res);
-}
-
-static PyObject *
-mac_mkdir(self, args)
-       PyObject *self;
-       PyObject *args;
-{
-       int res;
-       char *path;
-       int mode = 0777; /* Unused */
-       if (!PyArg_ParseTuple(args, "s|i", &path, &mode))
-               return NULL;
-       Py_BEGIN_ALLOW_THREADS
-#ifdef USE_GUSI1
-       res = mkdir(path);
-#else
-       res = mkdir(path, mode);
-#endif
-       Py_END_ALLOW_THREADS
-       if (res < 0)
-               return mac_error();
-       Py_INCREF(Py_None);
-       return Py_None;
-}
-
-static PyObject *
-mac_open(self, args)
-       PyObject *self;
-       PyObject *args;
-{
-       char *path;
-       int mode;
-       int fd;
-       if (!PyArg_Parse(args, "(si)", &path, &mode))
-               return NULL;
-       Py_BEGIN_ALLOW_THREADS
-       fd = open(path, mode);
-       Py_END_ALLOW_THREADS
-       if (fd < 0)
-               return mac_error();
-       return PyInt_FromLong((long)fd);
-}
-
-static PyObject *
-mac_read(self, args)
-       PyObject *self;
-       PyObject *args;
-{
-       int fd, size;
-       PyObject *buffer;
-       if (!PyArg_Parse(args, "(ii)", &fd, &size))
-               return NULL;
-       buffer = PyString_FromStringAndSize((char *)NULL, size);
-       if (buffer == NULL)
-               return NULL;
-       Py_BEGIN_ALLOW_THREADS
-       size = read(fd, PyString_AsString(buffer), size);
-       Py_END_ALLOW_THREADS
-       if (size < 0) {
-               Py_DECREF(buffer);
-               return mac_error();
-       }
-       _PyString_Resize(&buffer, size);
-       return buffer;
-}
-
-static PyObject *
-mac_rename(self, args)
-       PyObject *self;
-       PyObject *args;
-{
-       return mac_2str(args, rename);
-}
-
-static PyObject *
-mac_rmdir(self, args)
-       PyObject *self;
-       PyObject *args;
-{
-       return mac_1str(args, rmdir);
-}
-
-static PyObject *
-mac_stat(self, args)
-       PyObject *self;
-       PyObject *args;
-{
-       struct stat st;
-       char *path;
-       int res;
-       if (!PyArg_Parse(args, "s", &path))
-               return NULL;
-       Py_BEGIN_ALLOW_THREADS
-       res = stat(path, &st);
-       Py_END_ALLOW_THREADS
-       if (res != 0)
-               return mac_error();
-       return Py_BuildValue("(lllllllddd)",
-                   (long)st.st_mode,
-                   (long)st.st_ino,
-                   (long)st.st_dev,
-                   (long)st.st_nlink,
-                   (long)st.st_uid,
-                   (long)st.st_gid,
-                   (long)st.st_size,
-                   (double)st.st_atime,
-                   (double)st.st_mtime,
-                   (double)st.st_ctime);
-}
-
-#ifdef WEHAVE_FSTAT
-static PyObject *
-mac_fstat(self, args)
-       PyObject *self;
-       PyObject *args;
-{
-       struct stat st;
-       long fd;
-       int res;
-       if (!PyArg_Parse(args, "l", &fd))
-               return NULL;
-       Py_BEGIN_ALLOW_THREADS
-       res = fstat((int)fd, &st);
-       Py_END_ALLOW_THREADS
-       if (res != 0)
-               return mac_error();
-       return Py_BuildValue("(lllllllddd)",
-                   (long)st.st_mode,
-                   (long)st.st_ino,
-                   (long)st.st_dev,
-                   (long)st.st_nlink,
-                   (long)st.st_uid,
-                   (long)st.st_gid,
-                   (long)st.st_size,
-                   (double)st.st_atime,
-                   (double)st.st_mtime,
-                   (double)st.st_ctime);
-}
-#endif /* WEHAVE_FSTAT */
-
-#if !TARGET_API_MAC_CARBON
-static PyObject *
-mac_xstat(self, args)
-       PyObject *self;
-       PyObject *args;
-{
-       struct macstat mst;
-       struct stat st;
-       char *path;
-       int res;
-       if (!PyArg_Parse(args, "s", &path))
-               return NULL;
-       /*
-       ** Convoluted: we want stat() and xstat() to agree, so we call both
-       ** stat and macstat, and use the latter only for values not provided by
-       ** the former.
-       */
-       Py_BEGIN_ALLOW_THREADS
-       res = macstat(path, &mst);
-       Py_END_ALLOW_THREADS
-       if (res != 0)
-               return mac_error();
-       Py_BEGIN_ALLOW_THREADS
-       res = stat(path, &st);
-       Py_END_ALLOW_THREADS
-       if (res != 0)
-               return mac_error();
-       return Py_BuildValue("(llllllldddls#s#)",
-                   (long)st.st_mode,
-                   (long)st.st_ino,
-                   (long)st.st_dev,
-                   (long)st.st_nlink,
-                   (long)st.st_uid,
-                   (long)st.st_gid,
-                   (long)st.st_size,
-                   (double)st.st_atime,
-                   (double)st.st_mtime,
-                   (double)st.st_ctime,
-                   (long)mst.st_rsize,
-                   mst.st_creator, 4,
-                   mst.st_type, 4);
-}
-#endif
-
-static PyObject *
-mac_sync(self, args)
-       PyObject *self;
-       PyObject *args;
-{
-       int res;
-       if (!PyArg_NoArgs(args))
-               return NULL;
-       Py_BEGIN_ALLOW_THREADS
-       res = sync();
-       Py_END_ALLOW_THREADS
-       if (res != 0)
-               return mac_error();
-       Py_INCREF(Py_None);
-       return Py_None;
-}
-
-static PyObject *
-mac_unlink(self, args)
-       PyObject *self;
-       PyObject *args;
-{
-       return mac_1str(args, (int (*)(const char *))unlink);
-}
-
-static PyObject *
-mac_write(self, args)
-       PyObject *self;
-       PyObject *args;
-{
-       int fd, size;
-       char *buffer;
-       if (!PyArg_Parse(args, "(is#)", &fd, &buffer, &size))
-               return NULL;
-       Py_BEGIN_ALLOW_THREADS
-       size = write(fd, buffer, size);
-       Py_END_ALLOW_THREADS
-       if (size < 0)
-               return mac_error();
-       return PyInt_FromLong((long)size);
-}
-
-#ifdef USE_MALLOC_DEBUG
-void *mstats(char *);
-
-static PyObject *
-mac_mstats(self, args)
-       PyObject*self;
-       PyObject *args;
-{
-       mstats("python");
-       Py_INCREF(Py_None);
-       return Py_None;
-}
-#endif /* USE_MALLOC_DEBUG */
-
-static struct PyMethodDef mac_methods[] = {
-       {"chdir",       mac_chdir},
-       {"close",       mac_close},
-#ifdef WEHAVE_DUP
-       {"dup",         mac_dup},
-#endif
-#ifdef WEHAVE_FDOPEN
-       {"fdopen",      mac_fdopen},
-#endif
-#ifdef WEHAVE_FSTAT
-       {"fstat",       mac_fstat},
-#endif
-#if !TARGET_API_MAC_CARBON
-       {"getbootvol",  mac_getbootvol}, /* non-standard */
-#endif
-       {"getcwd",      mac_getcwd},
-       {"listdir",     mac_listdir, 0},
-       {"lseek",       mac_lseek},
-       {"mkdir",       mac_mkdir, 1},
-       {"open",        mac_open},
-       {"read",        mac_read},
-       {"rename",      mac_rename},
-       {"rmdir",       mac_rmdir},
-       {"stat",        mac_stat},
-#if !TARGET_API_MAC_CARBON
-       {"xstat",       mac_xstat},
-#endif
-       {"sync",        mac_sync},
-       {"remove",      mac_unlink},
-       {"unlink",      mac_unlink},
-       {"write",       mac_write},
-#ifdef USE_MALLOC_DEBUG
-       {"mstats",      mac_mstats},
-#endif
-
-       {NULL,          NULL}            /* Sentinel */
-};
-
-
-void
-initmac()
-{
-       PyObject *m, *d;
-       
-       m = Py_InitModule("mac", mac_methods);
-       d = PyModule_GetDict(m);
-       
-       /* Initialize mac.error exception */
-       MacError = PyErr_NewException("mac.error", NULL, NULL);
-       PyDict_SetItemString(d, "error", MacError);
-}
diff --git a/Mac/Modules/macosmodule.c b/Mac/Modules/macosmodule.c
deleted file mode 100644 (file)
index 6fe0bd0..0000000
+++ /dev/null
@@ -1,772 +0,0 @@
-/***********************************************************
-Copyright 1991-1997 by Stichting Mathematisch Centrum, Amsterdam,
-The Netherlands.
-
-                        All Rights Reserved
-
-Permission to use, copy, modify, and distribute this software and its 
-documentation for any purpose and without fee is hereby granted, 
-provided that the above copyright notice appear in all copies and that
-both that copyright notice and this permission notice appear in 
-supporting documentation, and that the names of Stichting Mathematisch
-Centrum or CWI not be used in advertising or publicity pertaining to
-distribution of the software without specific, written prior permission.
-
-STICHTING MATHEMATISCH CENTRUM DISCLAIMS ALL WARRANTIES WITH REGARD TO
-THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
-FITNESS, IN NO EVENT SHALL STICHTING MATHEMATISCH CENTRUM BE LIABLE
-FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
-WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
-ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
-OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
-
-******************************************************************/
-
-/* Macintosh OS-specific interface */
-
-#include "Python.h"
-#include "macglue.h"
-#include "pythonresources.h"
-
-#include <Windows.h>
-#include <Files.h>
-#include <LowMem.h>
-#include <Sound.h>
-#include <Events.h>
-
-static PyObject *MacOS_Error; /* Exception MacOS.Error */
-
-#ifdef MPW
-#define bufferIsSmall -607     /*error returns from Post and Accept */
-#endif
-
-static PyObject *ErrorObject;
-
-/* ----------------------------------------------------- */
-
-/* Declarations for objects of type Resource fork */
-
-typedef struct {
-       PyObject_HEAD
-       short fRefNum;
-       int isclosed;
-} rfobject;
-
-staticforward PyTypeObject Rftype;
-
-
-
-/* ---------------------------------------------------------------- */
-
-static void
-do_close(self)
-       rfobject *self;
-{
-       if (self->isclosed ) return;
-       (void)FSClose(self->fRefNum);
-       self->isclosed = 1;
-}
-
-static char rf_read__doc__[] = 
-"Read data from resource fork"
-;
-
-static PyObject *
-rf_read(self, args)
-       rfobject *self;
-       PyObject *args;
-{
-       long n;
-       PyObject *v;
-       OSErr err;
-       
-       if (self->isclosed) {
-               PyErr_SetString(PyExc_ValueError, "Operation on closed file");
-               return NULL;
-       }
-       
-       if (!PyArg_ParseTuple(args, "l", &n))
-               return NULL;
-               
-       v = PyString_FromStringAndSize((char *)NULL, n);
-       if (v == NULL)
-               return NULL;
-               
-       err = FSRead(self->fRefNum, &n, PyString_AsString(v));
-       if (err && err != eofErr) {
-               PyMac_Error(err);
-               Py_DECREF(v);
-               return NULL;
-       }
-       _PyString_Resize(&v, n);
-       return v;
-}
-
-
-static char rf_write__doc__[] = 
-"Write to resource fork"
-;
-
-static PyObject *
-rf_write(self, args)
-       rfobject *self;
-       PyObject *args;
-{
-       char *buffer;
-       long size;
-       OSErr err;
-       
-       if (self->isclosed) {
-               PyErr_SetString(PyExc_ValueError, "Operation on closed file");
-               return NULL;
-       }
-       if (!PyArg_ParseTuple(args, "s#", &buffer, &size))
-               return NULL;
-       err = FSWrite(self->fRefNum, &size, buffer);
-       if (err) {
-               PyMac_Error(err);
-               return NULL;
-       }
-       Py_INCREF(Py_None);
-       return Py_None;
-}
-
-
-static char rf_seek__doc__[] = 
-"Set file position"
-;
-
-static PyObject *
-rf_seek(self, args)
-       rfobject *self;
-       PyObject *args;
-{
-       long amount, pos;
-       int whence = SEEK_SET;
-       long eof;
-       OSErr err;
-       
-       if (self->isclosed) {
-               PyErr_SetString(PyExc_ValueError, "Operation on closed file");
-               return NULL;
-       }
-       if (!PyArg_ParseTuple(args, "l|i", &amount, &whence))
-               return NULL;
-       
-       if ( err = GetEOF(self->fRefNum, &eof))
-               goto ioerr;
-       
-       switch (whence) {
-       case SEEK_CUR:
-               if (err = GetFPos(self->fRefNum, &pos))
-                       goto ioerr; 
-               break;
-       case SEEK_END:
-               pos = eof;
-               break;
-       case SEEK_SET:
-               pos = 0;
-               break;
-       default:
-               PyErr_BadArgument();
-               return NULL;
-       }
-       
-       pos += amount;
-       
-       /* Don't bother implementing seek past EOF */
-       if (pos > eof || pos < 0) {
-               PyErr_BadArgument();
-               return NULL;
-       }
-       
-       if ( err = SetFPos(self->fRefNum, fsFromStart, pos) ) {
-ioerr:
-               PyMac_Error(err);
-               return NULL;
-       }
-       Py_INCREF(Py_None);
-       return Py_None;
-}
-
-
-static char rf_tell__doc__[] = 
-"Get file position"
-;
-
-static PyObject *
-rf_tell(self, args)
-       rfobject *self;
-       PyObject *args;
-{
-       long where;
-       OSErr err;
-       
-       if (self->isclosed) {
-               PyErr_SetString(PyExc_ValueError, "Operation on closed file");
-               return NULL;
-       }
-       if (!PyArg_ParseTuple(args, ""))
-               return NULL;
-       if ( err = GetFPos(self->fRefNum, &where) ) {
-               PyMac_Error(err);
-               return NULL;
-       }
-       return PyInt_FromLong(where);
-}
-
-static char rf_close__doc__[] = 
-"Close resource fork"
-;
-
-static PyObject *
-rf_close(self, args)
-       rfobject *self;
-       PyObject *args;
-{
-       if (!PyArg_ParseTuple(args, ""))
-               return NULL;
-       do_close(self);
-       Py_INCREF(Py_None);
-       return Py_None;
-}
-
-
-static struct PyMethodDef rf_methods[] = {
-       {"read",        rf_read,        1,      rf_read__doc__},
- {"write",     rf_write,       1,      rf_write__doc__},
- {"seek",      rf_seek,        1,      rf_seek__doc__},
- {"tell",      rf_tell,        1,      rf_tell__doc__},
- {"close",     rf_close,       1,      rf_close__doc__},
-       {NULL,          NULL}           /* sentinel */
-};
-
-/* ---------- */
-
-
-static rfobject *
-newrfobject()
-{
-       rfobject *self;
-       
-       self = PyObject_NEW(rfobject, &Rftype);
-       if (self == NULL)
-               return NULL;
-       self->isclosed = 1;
-       return self;
-}
-
-
-static void
-rf_dealloc(self)
-       rfobject *self;
-{
-       do_close(self);
-       PyMem_DEL(self);
-}
-
-static PyObject *
-rf_getattr(self, name)
-       rfobject *self;
-       char *name;
-{
-       return Py_FindMethod(rf_methods, (PyObject *)self, name);
-}
-
-static char Rftype__doc__[] = 
-"Resource fork file object"
-;
-
-static PyTypeObject Rftype = {
-       PyObject_HEAD_INIT(&PyType_Type)
-       0,                              /*ob_size*/
-       "ResourceFork",                 /*tp_name*/
-       sizeof(rfobject),               /*tp_basicsize*/
-       0,                              /*tp_itemsize*/
-       /* methods */
-       (destructor)rf_dealloc, /*tp_dealloc*/
-       (printfunc)0,           /*tp_print*/
-       (getattrfunc)rf_getattr,        /*tp_getattr*/
-       (setattrfunc)0, /*tp_setattr*/
-       (cmpfunc)0,             /*tp_compare*/
-       (reprfunc)0,            /*tp_repr*/
-       0,                      /*tp_as_number*/
-       0,              /*tp_as_sequence*/
-       0,              /*tp_as_mapping*/
-       (hashfunc)0,            /*tp_hash*/
-       (ternaryfunc)0,         /*tp_call*/
-       (reprfunc)0,            /*tp_str*/
-
-       /* Space for future expansion */
-       0L,0L,0L,0L,
-       Rftype__doc__ /* Documentation string */
-};
-
-/* End of code for Resource fork objects */
-/* -------------------------------------------------------- */
-
-/*----------------------------------------------------------------------*/
-/* Miscellaneous File System Operations */
-
-static char getcrtp_doc[] = "Obsolete, use macfs module";
-
-static PyObject *
-MacOS_GetCreatorAndType(PyObject *self, PyObject *args)
-{
-       FSSpec fss;
-       FInfo info;
-       PyObject *creator, *type, *res;
-       OSErr err;
-       
-       if (!PyArg_ParseTuple(args, "O&", PyMac_GetFSSpec, &fss))
-               return NULL;
-       if ((err = FSpGetFInfo(&fss, &info)) != noErr)
-               return PyErr_Mac(MacOS_Error, err);
-       creator = PyString_FromStringAndSize((char *)&info.fdCreator, 4);
-       type = PyString_FromStringAndSize((char *)&info.fdType, 4);
-       res = Py_BuildValue("OO", creator, type);
-       Py_DECREF(creator);
-       Py_DECREF(type);
-       return res;
-}
-
-static char setcrtp_doc[] = "Obsolete, use macfs module";
-
-static PyObject *
-MacOS_SetCreatorAndType(PyObject *self, PyObject *args)
-{
-       FSSpec fss;
-       ResType creator, type;
-       FInfo info;
-       OSErr err;
-       
-       if (!PyArg_ParseTuple(args, "O&O&O&",
-                       PyMac_GetFSSpec, &fss, PyMac_GetOSType, &creator, PyMac_GetOSType, &type))
-               return NULL;
-       if ((err = FSpGetFInfo(&fss, &info)) != noErr)
-               return PyErr_Mac(MacOS_Error, err);
-       info.fdCreator = creator;
-       info.fdType = type;
-       if ((err = FSpSetFInfo(&fss, &info)) != noErr)
-               return PyErr_Mac(MacOS_Error, err);
-       Py_INCREF(Py_None);
-       return Py_None;
-}
-
-/*----------------------------------------------------------------------*/
-/* STDWIN High Level Event interface */
-
-#include <EPPC.h>
-#include <Events.h>
-
-#if !TARGET_API_MAC_CARBON
-static char accepthle_doc[] = "Get arguments of pending high-level event";
-
-static PyObject *
-MacOS_AcceptHighLevelEvent(self, args)
-       PyObject *self;
-       PyObject *args;
-{
-       TargetID sender;
-       unsigned long refcon;
-       Ptr buf;
-       unsigned long len;
-       OSErr err;
-       PyObject *res;
-       
-       buf = NULL;
-       len = 0;
-       err = AcceptHighLevelEvent(&sender, &refcon, buf, &len);
-       if (err == bufferIsSmall) {
-               buf = malloc(len);
-               if (buf == NULL)
-                       return PyErr_NoMemory();
-               err = AcceptHighLevelEvent(&sender, &refcon, buf, &len);
-               if (err != noErr) {
-                       free(buf);
-                       return PyErr_Mac(MacOS_Error, (int)err);
-               }
-       }
-       else if (err != noErr)
-               return PyErr_Mac(MacOS_Error, (int)err);
-       res = Py_BuildValue("s#ls#",
-               (char *)&sender, (int)(sizeof sender), refcon, (char *)buf, (int)len);
-       free(buf);
-       return res;
-}
-#endif
-static char schedparams_doc[] = "Set/return mainloop interrupt check flag, etc";
-
-/*
-** Set scheduler parameters
-*/
-static PyObject *
-MacOS_SchedParams(PyObject *self, PyObject *args)
-{
-       PyMacSchedParams old, new;
-       
-       PyMac_GetSchedParams(&old);
-       new = old;
-       if (!PyArg_ParseTuple(args, "|iiidd", &new.check_interrupt, &new.process_events,
-                       &new.besocial, &new.check_interval, &new.bg_yield))
-               return NULL;
-       PyMac_SetSchedParams(&new);
-       return Py_BuildValue("iiidd", old.check_interrupt, old.process_events,
-                       old.besocial, old.check_interval, old.bg_yield);
-}
-
-static char appswitch_doc[] = "Obsolete, use SchedParams";
-
-/* Obsolete, for backward compatability */
-static PyObject *
-MacOS_EnableAppswitch(PyObject *self, PyObject *args)
-{
-       int new, old;
-       PyMacSchedParams schp;
-       
-       if (!PyArg_ParseTuple(args, "i", &new))
-               return NULL;
-       PyMac_GetSchedParams(&schp);
-       if ( schp.process_events )
-               old = 1;
-       else if ( schp.check_interrupt )
-               old = 0;
-       else
-               old = -1;
-       if ( new > 0 ) {
-               schp.process_events = mDownMask|keyDownMask|osMask;
-               schp.check_interrupt = 1;
-       } else if ( new == 0 ) {
-               schp.process_events = 0;
-               schp.check_interrupt = 1;
-       } else {
-               schp.process_events = 0;
-               schp.check_interrupt = 0;
-       }
-       PyMac_SetSchedParams(&schp);
-       return Py_BuildValue("i", old);
-}
-
-static char setevh_doc[] = "Set python event handler to be called in mainloop";
-
-static PyObject *
-MacOS_SetEventHandler(self, args)
-       PyObject *self;
-       PyObject *args;
-{
-       PyObject *evh = NULL;
-       
-       if (!PyArg_ParseTuple(args, "|O", &evh))
-               return NULL;
-       if (evh == Py_None)
-               evh = NULL;
-       if ( evh && !PyCallable_Check(evh) ) {
-               PyErr_SetString(PyExc_ValueError, "SetEventHandler argument must be callable");
-               return NULL;
-       }
-       if ( !PyMac_SetEventHandler(evh) )
-               return NULL;
-       Py_INCREF(Py_None);
-       return Py_None;
-}
-
-static char handleev_doc[] = "Pass event to other interested parties like sioux";
-
-static PyObject *
-MacOS_HandleEvent(PyObject *self, PyObject *args)
-{
-       EventRecord ev;
-       
-       if (!PyArg_ParseTuple(args, "O&", PyMac_GetEventRecord, &ev))
-               return NULL;
-       PyMac_HandleEventIntern(&ev);
-       Py_INCREF(Py_None);
-       return Py_None;
-}
-
-static char geterr_doc[] = "Convert OSErr number to string";
-
-static PyObject *
-MacOS_GetErrorString(PyObject *self, PyObject *args)
-{
-       int errn;
-       
-       if (!PyArg_ParseTuple(args, "i", &errn))
-               return NULL;
-       return Py_BuildValue("s", PyMac_StrError(errn));
-}
-
-static char splash_doc[] = "Open a splash-screen dialog by resource-id (0=close)";
-
-static PyObject *
-MacOS_splash(PyObject *self, PyObject *args)
-{
-       int resid = -1;
-       static DialogPtr curdialog = NULL;
-       DialogPtr olddialog;
-       WindowRef theWindow;
-       CGrafPtr thePort;
-#if 0
-       short xpos, ypos, width, height, swidth, sheight;
-#endif
-       
-       if (!PyArg_ParseTuple(args, "|i", &resid))
-               return NULL;
-       olddialog = curdialog;
-       curdialog = NULL;
-               
-       if ( resid != -1 ) {
-               curdialog = GetNewDialog(resid, NULL, (WindowPtr)-1);
-               if ( curdialog ) {
-                       theWindow = GetDialogWindow(curdialog);
-                       thePort = GetWindowPort(theWindow);
-#if 0
-                       width = thePort->portRect.right - thePort->portRect.left;
-                       height = thePort->portRect.bottom - thePort->portRect.top;
-                       swidth = qd.screenBits.bounds.right - qd.screenBits.bounds.left;
-                       sheight = qd.screenBits.bounds.bottom - qd.screenBits.bounds.top - LMGetMBarHeight();
-                       xpos = (swidth-width)/2;
-                       ypos = (sheight-height)/5 + LMGetMBarHeight();
-                       MoveWindow(theWindow, xpos, ypos, 0);
-                       ShowWindow(theWindow);
-#endif
-                       DrawDialog(curdialog);
-               }
-       }
-       if (olddialog)
-               DisposeDialog(olddialog);
-       Py_INCREF(Py_None);
-       return Py_None;
-}
-
-static char DebugStr_doc[] = "Switch to low-level debugger with a message";
-
-static PyObject *
-MacOS_DebugStr(PyObject *self, PyObject *args)
-{
-       Str255 message;
-       PyObject *object = 0;
-       
-       if (!PyArg_ParseTuple(args, "O&|O", PyMac_GetStr255, message, &object))
-               return NULL;
-       DebugStr(message);
-       Py_INCREF(Py_None);
-       return Py_None;
-}
-
-static char SysBeep_doc[] = "BEEEEEP!!!";
-
-static PyObject *
-MacOS_SysBeep(PyObject *self, PyObject *args)
-{
-       int duration = 6;
-       
-       if (!PyArg_ParseTuple(args, "|i", &duration))
-               return NULL;
-       SysBeep(duration);
-       Py_INCREF(Py_None);
-       return Py_None;
-}
-
-static char GetTicks_doc[] = "Return number of ticks since bootup";
-
-static PyObject *
-MacOS_GetTicks(PyObject *self, PyObject *args)
-{
-       return Py_BuildValue("i", (int)TickCount());
-}
-
-static char openrf_doc[] = "Open resource fork of a file";
-
-static PyObject *
-MacOS_openrf(PyObject *self, PyObject *args)
-{
-       OSErr err;
-       char *mode = "r";
-       FSSpec fss;
-       SignedByte permission = 1;
-       rfobject *fp;
-               
-       if (!PyArg_ParseTuple(args, "O&|s", PyMac_GetFSSpec, &fss, &mode))
-               return NULL;
-       while (*mode) {
-               switch (*mode++) {
-               case '*': break;
-               case 'r': permission = 1; break;
-               case 'w': permission = 2; break;
-               case 'b': break;
-               default:
-                       PyErr_BadArgument();
-                       return NULL;
-               }
-       }
-       
-       if ( (fp = newrfobject()) == NULL )
-               return NULL;
-               
-       err = HOpenRF(fss.vRefNum, fss.parID, fss.name, permission, &fp->fRefNum);
-       
-       if ( err == fnfErr ) {
-               /* In stead of doing complicated things here to get creator/type
-               ** correct we let the standard i/o library handle it
-               */
-               FILE *tfp;
-               char pathname[257];
-               
-               if ( err=PyMac_GetFullPath(&fss, pathname) ) {
-                       PyMac_Error(err);
-                       Py_DECREF(fp);
-                       return NULL;
-               }
-               
-               if ( (tfp = fopen(pathname, "w")) == NULL ) {
-                       PyMac_Error(fnfErr); /* What else... */
-                       Py_DECREF(fp);
-                       return NULL;
-               }
-               fclose(tfp);
-               err = HOpenRF(fss.vRefNum, fss.parID, fss.name, permission, &fp->fRefNum);
-       }
-       if ( err ) {
-               Py_DECREF(fp);
-               PyMac_Error(err);
-               return NULL;
-       }
-       fp->isclosed = 0;
-       return (PyObject *)fp;
-}
-
-static char FreeMem_doc[] = "Return the total amount of free space in the heap";
-
-static PyObject *
-MacOS_FreeMem(PyObject *self, PyObject *args)
-{
-       long rv;
-               
-       if (!PyArg_ParseTuple(args, ""))
-               return NULL;
-       rv = FreeMem();
-       return Py_BuildValue("l", rv);
-}
-
-static char MaxBlock_doc[] = "Return the largest contiguous block of free space in the heap";
-
-static PyObject *
-MacOS_MaxBlock(PyObject *self, PyObject *args)
-{
-       long rv;
-               
-       if (!PyArg_ParseTuple(args, ""))
-               return NULL;
-       rv = MaxBlock();
-       return Py_BuildValue("l", rv);
-}
-
-static char CompactMem_doc[] = "(wanted size)->actual largest block after compacting";
-
-static PyObject *
-MacOS_CompactMem(PyObject *self, PyObject *args)
-{
-       long value;
-       long rv;
-               
-       if (!PyArg_ParseTuple(args, "l", &value))
-               return NULL;
-       rv = CompactMem(value);
-       return Py_BuildValue("l", rv);
-}
-
-static char KeepConsole_doc[] = "(flag) Keep console open 0:never, 1:on output 2:on error, 3:always";
-
-static PyObject *
-MacOS_KeepConsole(PyObject *self, PyObject *args)
-{
-       int value;
-       
-       if (!PyArg_ParseTuple(args, "i", &value))
-               return NULL;
-       PyMac_options.keep_console = value;
-       Py_INCREF(Py_None);
-       return Py_None;
-}
-
-static char OutputSeen_doc[] = "Call to reset the 'unseen output' flag for the keep-console-open option";
-
-static PyObject *
-MacOS_OutputSeen(PyObject *self, PyObject *args)
-{
-       if (!PyArg_ParseTuple(args, ""))
-               return NULL;
-       PyMac_OutputSeen();
-       Py_INCREF(Py_None);
-       return Py_None;
-}
-
-static PyMethodDef MacOS_Methods[] = {
-#if !TARGET_API_MAC_CARBON
-       {"AcceptHighLevelEvent",        MacOS_AcceptHighLevelEvent, 1,  accepthle_doc},
-#endif
-       {"GetCreatorAndType",           MacOS_GetCreatorAndType, 1,     getcrtp_doc},
-       {"SetCreatorAndType",           MacOS_SetCreatorAndType, 1,     setcrtp_doc},
-       {"SchedParams",                 MacOS_SchedParams,      1,      schedparams_doc},
-       {"EnableAppswitch",             MacOS_EnableAppswitch,  1,      appswitch_doc},
-       {"SetEventHandler",             MacOS_SetEventHandler,  1,      setevh_doc},
-       {"HandleEvent",                 MacOS_HandleEvent,      1,      handleev_doc},
-       {"GetErrorString",              MacOS_GetErrorString,   1,      geterr_doc},
-       {"openrf",                      MacOS_openrf,           1,      openrf_doc},
-       {"splash",                      MacOS_splash,           1,      splash_doc},
-       {"DebugStr",                    MacOS_DebugStr,         1,      DebugStr_doc},
-       {"GetTicks",                    MacOS_GetTicks,         1,      GetTicks_doc},
-       {"SysBeep",                     MacOS_SysBeep,          1,      SysBeep_doc},
-       {"FreeMem",                     MacOS_FreeMem,          1,      FreeMem_doc},
-       {"MaxBlock",            MacOS_MaxBlock,         1,      MaxBlock_doc},
-       {"CompactMem",          MacOS_CompactMem,       1,      CompactMem_doc},
-       {"KeepConsole",         MacOS_KeepConsole,      1,      KeepConsole_doc},
-       {"OutputSeen",          MacOS_OutputSeen,       1,      OutputSeen_doc},
-       {NULL,                          NULL}            /* Sentinel */
-};
-
-
-void
-initMacOS()
-{
-       PyObject *m, *d;
-       
-       m = Py_InitModule("MacOS", MacOS_Methods);
-       d = PyModule_GetDict(m);
-       
-       /* Initialize MacOS.Error exception */
-       MacOS_Error = PyMac_GetOSErrException();
-       if (MacOS_Error == NULL || PyDict_SetItemString(d, "Error", MacOS_Error) != 0)
-               return;
-       Rftype.ob_type = &PyType_Type;
-       Py_INCREF(&Rftype);
-       if (PyDict_SetItemString(d, "ResourceForkType", (PyObject *)&Rftype) != 0)
-               return;
-       /*
-       ** This is a hack: the following constant added to the id() of a string
-       ** object gives you the address of the data. Unfortunately, it is needed for
-       ** some of the image and sound processing interfaces on the mac:-(
-       */
-       {
-               PyStringObject *p = 0;
-               long off = (long)&(p->ob_sval[0]);
-               
-               if( PyDict_SetItemString(d, "string_id_to_buffer", Py_BuildValue("i", off)) != 0)
-                       return;
-       }
-       if (PyDict_SetItemString(d, "AppearanceCompliant", 
-                               Py_BuildValue("i", PyMac_AppearanceCompliant)) != 0)
-               return;
-#if TARGET_API_MAC_CARBON
-/* Will need a different name for MachO-carbon later (macho?) */
-#define PY_RUNTIMEMODEL "carbon"
-#else
-#define PY_RUNTIMEMODEL "ppc"
-#endif
-       if (PyDict_SetItemString(d, "runtimemodel", 
-                               Py_BuildValue("s", PY_RUNTIMEMODEL)) != 0)
-               return;
-}
-
diff --git a/Mac/Modules/menu/Menumodule.c b/Mac/Modules/menu/Menumodule.c
deleted file mode 100644 (file)
index 782b270..0000000
+++ /dev/null
@@ -1,2797 +0,0 @@
-
-/* ========================== Module Menu =========================== */
-
-#include "Python.h"
-
-
-
-#include "macglue.h"
-#include "pymactoolbox.h"
-
-#include <Devices.h> /* Defines OpenDeskAcc in universal headers */
-#include <Menus.h>
-
-#if !ACCESSOR_CALLS_ARE_FUNCTIONS
-#define GetMenuID(menu) ((*(menu))->menuID)
-#define GetMenuWidth(menu) ((*(menu))->menuWidth)
-#define GetMenuHeight(menu) ((*(menu))->menuHeight)
-
-#define SetMenuID(menu, id) ((*(menu))->menuID = (id))
-#define SetMenuWidth(menu, width) ((*(menu))->menuWidth = (width))
-#define SetMenuHeight(menu, height) ((*(menu))->menuHeight = (height))
-#endif
-
-#define as_Menu(h) ((MenuHandle)h)
-#define as_Resource(h) ((Handle)h)
-
-static PyObject *Menu_Error;
-
-/* ------------------------ Object type Menu ------------------------ */
-
-PyTypeObject Menu_Type;
-
-#define MenuObj_Check(x) ((x)->ob_type == &Menu_Type)
-
-typedef struct MenuObject {
-       PyObject_HEAD
-       MenuHandle ob_itself;
-} MenuObject;
-
-PyObject *MenuObj_New(itself)
-       MenuHandle itself;
-{
-       MenuObject *it;
-       it = PyObject_NEW(MenuObject, &Menu_Type);
-       if (it == NULL) return NULL;
-       it->ob_itself = itself;
-       return (PyObject *)it;
-}
-MenuObj_Convert(v, p_itself)
-       PyObject *v;
-       MenuHandle *p_itself;
-{
-       if (!MenuObj_Check(v))
-       {
-               PyErr_SetString(PyExc_TypeError, "Menu required");
-               return 0;
-       }
-       *p_itself = ((MenuObject *)v)->ob_itself;
-       return 1;
-}
-
-static void MenuObj_dealloc(self)
-       MenuObject *self;
-{
-       /* Cleanup of self->ob_itself goes here */
-       PyMem_DEL(self);
-}
-
-static PyObject *MenuObj_DisposeMenu(_self, _args)
-       MenuObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       DisposeMenu(_self->ob_itself);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *MenuObj_CalcMenuSize(_self, _args)
-       MenuObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       CalcMenuSize(_self->ob_itself);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *MenuObj_CountMenuItems(_self, _args)
-       MenuObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       short _rv;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _rv = CountMenuItems(_self->ob_itself);
-       _res = Py_BuildValue("h",
-                            _rv);
-       return _res;
-}
-
-#if !TARGET_API_MAC_CARBON
-
-static PyObject *MenuObj_CountMItems(_self, _args)
-       MenuObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       short _rv;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _rv = CountMItems(_self->ob_itself);
-       _res = Py_BuildValue("h",
-                            _rv);
-       return _res;
-}
-#endif
-
-static PyObject *MenuObj_GetMenuFont(_self, _args)
-       MenuObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSStatus _err;
-       SInt16 outFontID;
-       UInt16 outFontSize;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _err = GetMenuFont(_self->ob_itself,
-                          &outFontID,
-                          &outFontSize);
-       if (_err != noErr) return PyMac_Error(_err);
-       _res = Py_BuildValue("hH",
-                            outFontID,
-                            outFontSize);
-       return _res;
-}
-
-static PyObject *MenuObj_SetMenuFont(_self, _args)
-       MenuObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSStatus _err;
-       SInt16 inFontID;
-       UInt16 inFontSize;
-       if (!PyArg_ParseTuple(_args, "hH",
-                             &inFontID,
-                             &inFontSize))
-               return NULL;
-       _err = SetMenuFont(_self->ob_itself,
-                          inFontID,
-                          inFontSize);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *MenuObj_GetMenuExcludesMarkColumn(_self, _args)
-       MenuObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Boolean _rv;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _rv = GetMenuExcludesMarkColumn(_self->ob_itself);
-       _res = Py_BuildValue("b",
-                            _rv);
-       return _res;
-}
-
-static PyObject *MenuObj_SetMenuExcludesMarkColumn(_self, _args)
-       MenuObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSStatus _err;
-       Boolean excludesMark;
-       if (!PyArg_ParseTuple(_args, "b",
-                             &excludesMark))
-               return NULL;
-       _err = SetMenuExcludesMarkColumn(_self->ob_itself,
-                                        excludesMark);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *MenuObj_MacAppendMenu(_self, _args)
-       MenuObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Str255 data;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             PyMac_GetStr255, data))
-               return NULL;
-       MacAppendMenu(_self->ob_itself,
-                     data);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *MenuObj_InsertResMenu(_self, _args)
-       MenuObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       ResType theType;
-       short afterItem;
-       if (!PyArg_ParseTuple(_args, "O&h",
-                             PyMac_GetOSType, &theType,
-                             &afterItem))
-               return NULL;
-       InsertResMenu(_self->ob_itself,
-                     theType,
-                     afterItem);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *MenuObj_AppendResMenu(_self, _args)
-       MenuObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       ResType theType;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             PyMac_GetOSType, &theType))
-               return NULL;
-       AppendResMenu(_self->ob_itself,
-                     theType);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *MenuObj_MacInsertMenuItem(_self, _args)
-       MenuObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Str255 itemString;
-       short afterItem;
-       if (!PyArg_ParseTuple(_args, "O&h",
-                             PyMac_GetStr255, itemString,
-                             &afterItem))
-               return NULL;
-       MacInsertMenuItem(_self->ob_itself,
-                         itemString,
-                         afterItem);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *MenuObj_DeleteMenuItem(_self, _args)
-       MenuObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       short item;
-       if (!PyArg_ParseTuple(_args, "h",
-                             &item))
-               return NULL;
-       DeleteMenuItem(_self->ob_itself,
-                      item);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *MenuObj_InsertFontResMenu(_self, _args)
-       MenuObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       short afterItem;
-       short scriptFilter;
-       if (!PyArg_ParseTuple(_args, "hh",
-                             &afterItem,
-                             &scriptFilter))
-               return NULL;
-       InsertFontResMenu(_self->ob_itself,
-                         afterItem,
-                         scriptFilter);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *MenuObj_InsertIntlResMenu(_self, _args)
-       MenuObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       ResType theType;
-       short afterItem;
-       short scriptFilter;
-       if (!PyArg_ParseTuple(_args, "O&hh",
-                             PyMac_GetOSType, &theType,
-                             &afterItem,
-                             &scriptFilter))
-               return NULL;
-       InsertIntlResMenu(_self->ob_itself,
-                         theType,
-                         afterItem,
-                         scriptFilter);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *MenuObj_AppendMenuItemText(_self, _args)
-       MenuObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSStatus _err;
-       Str255 inString;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             PyMac_GetStr255, inString))
-               return NULL;
-       _err = AppendMenuItemText(_self->ob_itself,
-                                 inString);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *MenuObj_InsertMenuItemText(_self, _args)
-       MenuObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSStatus _err;
-       Str255 inString;
-       MenuItemIndex afterItem;
-       if (!PyArg_ParseTuple(_args, "O&h",
-                             PyMac_GetStr255, inString,
-                             &afterItem))
-               return NULL;
-       _err = InsertMenuItemText(_self->ob_itself,
-                                 inString,
-                                 afterItem);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *MenuObj_PopUpMenuSelect(_self, _args)
-       MenuObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       long _rv;
-       short top;
-       short left;
-       short popUpItem;
-       if (!PyArg_ParseTuple(_args, "hhh",
-                             &top,
-                             &left,
-                             &popUpItem))
-               return NULL;
-       _rv = PopUpMenuSelect(_self->ob_itself,
-                             top,
-                             left,
-                             popUpItem);
-       _res = Py_BuildValue("l",
-                            _rv);
-       return _res;
-}
-
-static PyObject *MenuObj_MacInsertMenu(_self, _args)
-       MenuObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       MenuID beforeID;
-       if (!PyArg_ParseTuple(_args, "h",
-                             &beforeID))
-               return NULL;
-       MacInsertMenu(_self->ob_itself,
-                     beforeID);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *MenuObj_MacCheckMenuItem(_self, _args)
-       MenuObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       short item;
-       Boolean checked;
-       if (!PyArg_ParseTuple(_args, "hb",
-                             &item,
-                             &checked))
-               return NULL;
-       MacCheckMenuItem(_self->ob_itself,
-                        item,
-                        checked);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-#if !TARGET_API_MAC_CARBON
-
-static PyObject *MenuObj_CheckItem(_self, _args)
-       MenuObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       short item;
-       Boolean checked;
-       if (!PyArg_ParseTuple(_args, "hb",
-                             &item,
-                             &checked))
-               return NULL;
-       CheckItem(_self->ob_itself,
-                 item,
-                 checked);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-#endif
-
-static PyObject *MenuObj_SetMenuItemText(_self, _args)
-       MenuObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       short item;
-       Str255 itemString;
-       if (!PyArg_ParseTuple(_args, "hO&",
-                             &item,
-                             PyMac_GetStr255, itemString))
-               return NULL;
-       SetMenuItemText(_self->ob_itself,
-                       item,
-                       itemString);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *MenuObj_GetMenuItemText(_self, _args)
-       MenuObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       short item;
-       Str255 itemString;
-       if (!PyArg_ParseTuple(_args, "h",
-                             &item))
-               return NULL;
-       GetMenuItemText(_self->ob_itself,
-                       item,
-                       itemString);
-       _res = Py_BuildValue("O&",
-                            PyMac_BuildStr255, itemString);
-       return _res;
-}
-
-static PyObject *MenuObj_SetItemMark(_self, _args)
-       MenuObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       short item;
-       CharParameter markChar;
-       if (!PyArg_ParseTuple(_args, "hh",
-                             &item,
-                             &markChar))
-               return NULL;
-       SetItemMark(_self->ob_itself,
-                   item,
-                   markChar);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *MenuObj_GetItemMark(_self, _args)
-       MenuObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       short item;
-       CharParameter markChar;
-       if (!PyArg_ParseTuple(_args, "h",
-                             &item))
-               return NULL;
-       GetItemMark(_self->ob_itself,
-                   item,
-                   &markChar);
-       _res = Py_BuildValue("h",
-                            markChar);
-       return _res;
-}
-
-static PyObject *MenuObj_SetItemCmd(_self, _args)
-       MenuObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       short item;
-       CharParameter cmdChar;
-       if (!PyArg_ParseTuple(_args, "hh",
-                             &item,
-                             &cmdChar))
-               return NULL;
-       SetItemCmd(_self->ob_itself,
-                  item,
-                  cmdChar);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *MenuObj_GetItemCmd(_self, _args)
-       MenuObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       short item;
-       CharParameter cmdChar;
-       if (!PyArg_ParseTuple(_args, "h",
-                             &item))
-               return NULL;
-       GetItemCmd(_self->ob_itself,
-                  item,
-                  &cmdChar);
-       _res = Py_BuildValue("h",
-                            cmdChar);
-       return _res;
-}
-
-static PyObject *MenuObj_SetItemIcon(_self, _args)
-       MenuObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       short item;
-       short iconIndex;
-       if (!PyArg_ParseTuple(_args, "hh",
-                             &item,
-                             &iconIndex))
-               return NULL;
-       SetItemIcon(_self->ob_itself,
-                   item,
-                   iconIndex);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *MenuObj_GetItemIcon(_self, _args)
-       MenuObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       short item;
-       short iconIndex;
-       if (!PyArg_ParseTuple(_args, "h",
-                             &item))
-               return NULL;
-       GetItemIcon(_self->ob_itself,
-                   item,
-                   &iconIndex);
-       _res = Py_BuildValue("h",
-                            iconIndex);
-       return _res;
-}
-
-static PyObject *MenuObj_SetItemStyle(_self, _args)
-       MenuObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       short item;
-       StyleParameter chStyle;
-       if (!PyArg_ParseTuple(_args, "hh",
-                             &item,
-                             &chStyle))
-               return NULL;
-       SetItemStyle(_self->ob_itself,
-                    item,
-                    chStyle);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *MenuObj_GetItemStyle(_self, _args)
-       MenuObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       short item;
-       Style chStyle;
-       if (!PyArg_ParseTuple(_args, "h",
-                             &item))
-               return NULL;
-       GetItemStyle(_self->ob_itself,
-                    item,
-                    &chStyle);
-       _res = Py_BuildValue("b",
-                            chStyle);
-       return _res;
-}
-
-#if !TARGET_API_MAC_CARBON
-
-static PyObject *MenuObj_DisableItem(_self, _args)
-       MenuObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       short item;
-       if (!PyArg_ParseTuple(_args, "h",
-                             &item))
-               return NULL;
-       DisableItem(_self->ob_itself,
-                   item);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-#endif
-
-#if !TARGET_API_MAC_CARBON
-
-static PyObject *MenuObj_EnableItem(_self, _args)
-       MenuObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       short item;
-       if (!PyArg_ParseTuple(_args, "h",
-                             &item))
-               return NULL;
-       EnableItem(_self->ob_itself,
-                  item);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-#endif
-
-static PyObject *MenuObj_SetMenuItemCommandID(_self, _args)
-       MenuObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       SInt16 inItem;
-       MenuCommand inCommandID;
-       if (!PyArg_ParseTuple(_args, "hl",
-                             &inItem,
-                             &inCommandID))
-               return NULL;
-       _err = SetMenuItemCommandID(_self->ob_itself,
-                                   inItem,
-                                   inCommandID);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *MenuObj_GetMenuItemCommandID(_self, _args)
-       MenuObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       SInt16 inItem;
-       MenuCommand outCommandID;
-       if (!PyArg_ParseTuple(_args, "h",
-                             &inItem))
-               return NULL;
-       _err = GetMenuItemCommandID(_self->ob_itself,
-                                   inItem,
-                                   &outCommandID);
-       if (_err != noErr) return PyMac_Error(_err);
-       _res = Py_BuildValue("l",
-                            outCommandID);
-       return _res;
-}
-
-static PyObject *MenuObj_SetMenuItemModifiers(_self, _args)
-       MenuObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       SInt16 inItem;
-       UInt8 inModifiers;
-       if (!PyArg_ParseTuple(_args, "hb",
-                             &inItem,
-                             &inModifiers))
-               return NULL;
-       _err = SetMenuItemModifiers(_self->ob_itself,
-                                   inItem,
-                                   inModifiers);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *MenuObj_GetMenuItemModifiers(_self, _args)
-       MenuObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       SInt16 inItem;
-       UInt8 outModifiers;
-       if (!PyArg_ParseTuple(_args, "h",
-                             &inItem))
-               return NULL;
-       _err = GetMenuItemModifiers(_self->ob_itself,
-                                   inItem,
-                                   &outModifiers);
-       if (_err != noErr) return PyMac_Error(_err);
-       _res = Py_BuildValue("b",
-                            outModifiers);
-       return _res;
-}
-
-static PyObject *MenuObj_SetMenuItemIconHandle(_self, _args)
-       MenuObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       SInt16 inItem;
-       UInt8 inIconType;
-       Handle inIconHandle;
-       if (!PyArg_ParseTuple(_args, "hbO&",
-                             &inItem,
-                             &inIconType,
-                             ResObj_Convert, &inIconHandle))
-               return NULL;
-       _err = SetMenuItemIconHandle(_self->ob_itself,
-                                    inItem,
-                                    inIconType,
-                                    inIconHandle);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *MenuObj_GetMenuItemIconHandle(_self, _args)
-       MenuObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       SInt16 inItem;
-       UInt8 outIconType;
-       Handle outIconHandle;
-       if (!PyArg_ParseTuple(_args, "h",
-                             &inItem))
-               return NULL;
-       _err = GetMenuItemIconHandle(_self->ob_itself,
-                                    inItem,
-                                    &outIconType,
-                                    &outIconHandle);
-       if (_err != noErr) return PyMac_Error(_err);
-       _res = Py_BuildValue("bO&",
-                            outIconType,
-                            ResObj_New, outIconHandle);
-       return _res;
-}
-
-static PyObject *MenuObj_SetMenuItemTextEncoding(_self, _args)
-       MenuObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       SInt16 inItem;
-       TextEncoding inScriptID;
-       if (!PyArg_ParseTuple(_args, "hl",
-                             &inItem,
-                             &inScriptID))
-               return NULL;
-       _err = SetMenuItemTextEncoding(_self->ob_itself,
-                                      inItem,
-                                      inScriptID);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *MenuObj_GetMenuItemTextEncoding(_self, _args)
-       MenuObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       SInt16 inItem;
-       TextEncoding outScriptID;
-       if (!PyArg_ParseTuple(_args, "h",
-                             &inItem))
-               return NULL;
-       _err = GetMenuItemTextEncoding(_self->ob_itself,
-                                      inItem,
-                                      &outScriptID);
-       if (_err != noErr) return PyMac_Error(_err);
-       _res = Py_BuildValue("l",
-                            outScriptID);
-       return _res;
-}
-
-static PyObject *MenuObj_SetMenuItemHierarchicalID(_self, _args)
-       MenuObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       SInt16 inItem;
-       MenuID inHierID;
-       if (!PyArg_ParseTuple(_args, "hh",
-                             &inItem,
-                             &inHierID))
-               return NULL;
-       _err = SetMenuItemHierarchicalID(_self->ob_itself,
-                                        inItem,
-                                        inHierID);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *MenuObj_GetMenuItemHierarchicalID(_self, _args)
-       MenuObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       SInt16 inItem;
-       MenuID outHierID;
-       if (!PyArg_ParseTuple(_args, "h",
-                             &inItem))
-               return NULL;
-       _err = GetMenuItemHierarchicalID(_self->ob_itself,
-                                        inItem,
-                                        &outHierID);
-       if (_err != noErr) return PyMac_Error(_err);
-       _res = Py_BuildValue("h",
-                            outHierID);
-       return _res;
-}
-
-static PyObject *MenuObj_SetMenuItemFontID(_self, _args)
-       MenuObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       SInt16 inItem;
-       SInt16 inFontID;
-       if (!PyArg_ParseTuple(_args, "hh",
-                             &inItem,
-                             &inFontID))
-               return NULL;
-       _err = SetMenuItemFontID(_self->ob_itself,
-                                inItem,
-                                inFontID);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *MenuObj_GetMenuItemFontID(_self, _args)
-       MenuObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       SInt16 inItem;
-       SInt16 outFontID;
-       if (!PyArg_ParseTuple(_args, "h",
-                             &inItem))
-               return NULL;
-       _err = GetMenuItemFontID(_self->ob_itself,
-                                inItem,
-                                &outFontID);
-       if (_err != noErr) return PyMac_Error(_err);
-       _res = Py_BuildValue("h",
-                            outFontID);
-       return _res;
-}
-
-static PyObject *MenuObj_SetMenuItemRefCon(_self, _args)
-       MenuObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       SInt16 inItem;
-       UInt32 inRefCon;
-       if (!PyArg_ParseTuple(_args, "hl",
-                             &inItem,
-                             &inRefCon))
-               return NULL;
-       _err = SetMenuItemRefCon(_self->ob_itself,
-                                inItem,
-                                inRefCon);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *MenuObj_GetMenuItemRefCon(_self, _args)
-       MenuObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       SInt16 inItem;
-       UInt32 outRefCon;
-       if (!PyArg_ParseTuple(_args, "h",
-                             &inItem))
-               return NULL;
-       _err = GetMenuItemRefCon(_self->ob_itself,
-                                inItem,
-                                &outRefCon);
-       if (_err != noErr) return PyMac_Error(_err);
-       _res = Py_BuildValue("l",
-                            outRefCon);
-       return _res;
-}
-
-#if !TARGET_API_MAC_CARBON
-
-static PyObject *MenuObj_SetMenuItemRefCon2(_self, _args)
-       MenuObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       SInt16 inItem;
-       UInt32 inRefCon2;
-       if (!PyArg_ParseTuple(_args, "hl",
-                             &inItem,
-                             &inRefCon2))
-               return NULL;
-       _err = SetMenuItemRefCon2(_self->ob_itself,
-                                 inItem,
-                                 inRefCon2);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-#endif
-
-#if !TARGET_API_MAC_CARBON
-
-static PyObject *MenuObj_GetMenuItemRefCon2(_self, _args)
-       MenuObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       SInt16 inItem;
-       UInt32 outRefCon2;
-       if (!PyArg_ParseTuple(_args, "h",
-                             &inItem))
-               return NULL;
-       _err = GetMenuItemRefCon2(_self->ob_itself,
-                                 inItem,
-                                 &outRefCon2);
-       if (_err != noErr) return PyMac_Error(_err);
-       _res = Py_BuildValue("l",
-                            outRefCon2);
-       return _res;
-}
-#endif
-
-static PyObject *MenuObj_SetMenuItemKeyGlyph(_self, _args)
-       MenuObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       SInt16 inItem;
-       SInt16 inGlyph;
-       if (!PyArg_ParseTuple(_args, "hh",
-                             &inItem,
-                             &inGlyph))
-               return NULL;
-       _err = SetMenuItemKeyGlyph(_self->ob_itself,
-                                  inItem,
-                                  inGlyph);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *MenuObj_GetMenuItemKeyGlyph(_self, _args)
-       MenuObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       SInt16 inItem;
-       SInt16 outGlyph;
-       if (!PyArg_ParseTuple(_args, "h",
-                             &inItem))
-               return NULL;
-       _err = GetMenuItemKeyGlyph(_self->ob_itself,
-                                  inItem,
-                                  &outGlyph);
-       if (_err != noErr) return PyMac_Error(_err);
-       _res = Py_BuildValue("h",
-                            outGlyph);
-       return _res;
-}
-
-static PyObject *MenuObj_MacEnableMenuItem(_self, _args)
-       MenuObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       MenuItemIndex item;
-       if (!PyArg_ParseTuple(_args, "h",
-                             &item))
-               return NULL;
-       MacEnableMenuItem(_self->ob_itself,
-                         item);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *MenuObj_DisableMenuItem(_self, _args)
-       MenuObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       MenuItemIndex item;
-       if (!PyArg_ParseTuple(_args, "h",
-                             &item))
-               return NULL;
-       DisableMenuItem(_self->ob_itself,
-                       item);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *MenuObj_IsMenuItemEnabled(_self, _args)
-       MenuObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Boolean _rv;
-       MenuItemIndex item;
-       if (!PyArg_ParseTuple(_args, "h",
-                             &item))
-               return NULL;
-       _rv = IsMenuItemEnabled(_self->ob_itself,
-                               item);
-       _res = Py_BuildValue("b",
-                            _rv);
-       return _res;
-}
-
-static PyObject *MenuObj_EnableMenuItemIcon(_self, _args)
-       MenuObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       MenuItemIndex item;
-       if (!PyArg_ParseTuple(_args, "h",
-                             &item))
-               return NULL;
-       EnableMenuItemIcon(_self->ob_itself,
-                          item);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *MenuObj_DisableMenuItemIcon(_self, _args)
-       MenuObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       MenuItemIndex item;
-       if (!PyArg_ParseTuple(_args, "h",
-                             &item))
-               return NULL;
-       DisableMenuItemIcon(_self->ob_itself,
-                           item);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *MenuObj_IsMenuItemIconEnabled(_self, _args)
-       MenuObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Boolean _rv;
-       MenuItemIndex item;
-       if (!PyArg_ParseTuple(_args, "h",
-                             &item))
-               return NULL;
-       _rv = IsMenuItemIconEnabled(_self->ob_itself,
-                                   item);
-       _res = Py_BuildValue("b",
-                            _rv);
-       return _res;
-}
-
-#if TARGET_API_MAC_CARBON
-
-static PyObject *MenuObj_GetMenuItemPropertyAttributes(_self, _args)
-       MenuObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSStatus _err;
-       MenuItemIndex item;
-       OSType propertyCreator;
-       OSType propertyTag;
-       UInt32 attributes;
-       if (!PyArg_ParseTuple(_args, "hO&O&",
-                             &item,
-                             PyMac_GetOSType, &propertyCreator,
-                             PyMac_GetOSType, &propertyTag))
-               return NULL;
-       _err = GetMenuItemPropertyAttributes(_self->ob_itself,
-                                            item,
-                                            propertyCreator,
-                                            propertyTag,
-                                            &attributes);
-       if (_err != noErr) return PyMac_Error(_err);
-       _res = Py_BuildValue("l",
-                            attributes);
-       return _res;
-}
-#endif
-
-#if TARGET_API_MAC_CARBON
-
-static PyObject *MenuObj_ChangeMenuItemPropertyAttributes(_self, _args)
-       MenuObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSStatus _err;
-       MenuItemIndex item;
-       OSType propertyCreator;
-       OSType propertyTag;
-       UInt32 attributesToSet;
-       UInt32 attributesToClear;
-       if (!PyArg_ParseTuple(_args, "hO&O&ll",
-                             &item,
-                             PyMac_GetOSType, &propertyCreator,
-                             PyMac_GetOSType, &propertyTag,
-                             &attributesToSet,
-                             &attributesToClear))
-               return NULL;
-       _err = ChangeMenuItemPropertyAttributes(_self->ob_itself,
-                                               item,
-                                               propertyCreator,
-                                               propertyTag,
-                                               attributesToSet,
-                                               attributesToClear);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-#endif
-
-#if TARGET_API_MAC_CARBON
-
-static PyObject *MenuObj_GetMenuAttributes(_self, _args)
-       MenuObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSStatus _err;
-       MenuAttributes outAttributes;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _err = GetMenuAttributes(_self->ob_itself,
-                                &outAttributes);
-       if (_err != noErr) return PyMac_Error(_err);
-       _res = Py_BuildValue("l",
-                            outAttributes);
-       return _res;
-}
-#endif
-
-#if TARGET_API_MAC_CARBON
-
-static PyObject *MenuObj_ChangeMenuAttributes(_self, _args)
-       MenuObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSStatus _err;
-       MenuAttributes setTheseAttributes;
-       MenuAttributes clearTheseAttributes;
-       if (!PyArg_ParseTuple(_args, "ll",
-                             &setTheseAttributes,
-                             &clearTheseAttributes))
-               return NULL;
-       _err = ChangeMenuAttributes(_self->ob_itself,
-                                   setTheseAttributes,
-                                   clearTheseAttributes);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-#endif
-
-#if TARGET_API_MAC_CARBON
-
-static PyObject *MenuObj_GetMenuItemAttributes(_self, _args)
-       MenuObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSStatus _err;
-       MenuItemIndex item;
-       MenuItemAttributes outAttributes;
-       if (!PyArg_ParseTuple(_args, "h",
-                             &item))
-               return NULL;
-       _err = GetMenuItemAttributes(_self->ob_itself,
-                                    item,
-                                    &outAttributes);
-       if (_err != noErr) return PyMac_Error(_err);
-       _res = Py_BuildValue("l",
-                            outAttributes);
-       return _res;
-}
-#endif
-
-#if TARGET_API_MAC_CARBON
-
-static PyObject *MenuObj_ChangeMenuItemAttributes(_self, _args)
-       MenuObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSStatus _err;
-       MenuItemIndex item;
-       MenuItemAttributes setTheseAttributes;
-       MenuItemAttributes clearTheseAttributes;
-       if (!PyArg_ParseTuple(_args, "hll",
-                             &item,
-                             &setTheseAttributes,
-                             &clearTheseAttributes))
-               return NULL;
-       _err = ChangeMenuItemAttributes(_self->ob_itself,
-                                       item,
-                                       setTheseAttributes,
-                                       clearTheseAttributes);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-#endif
-
-#if TARGET_API_MAC_CARBON
-
-static PyObject *MenuObj_DisableAllMenuItems(_self, _args)
-       MenuObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       DisableAllMenuItems(_self->ob_itself);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-#endif
-
-#if TARGET_API_MAC_CARBON
-
-static PyObject *MenuObj_EnableAllMenuItems(_self, _args)
-       MenuObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       EnableAllMenuItems(_self->ob_itself);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-#endif
-
-#if TARGET_API_MAC_CARBON
-
-static PyObject *MenuObj_MenuHasEnabledItems(_self, _args)
-       MenuObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Boolean _rv;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _rv = MenuHasEnabledItems(_self->ob_itself);
-       _res = Py_BuildValue("b",
-                            _rv);
-       return _res;
-}
-#endif
-
-#if TARGET_API_MAC_CARBON
-
-static PyObject *MenuObj_CountMenuItemsWithCommandID(_self, _args)
-       MenuObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       ItemCount _rv;
-       MenuCommand commandID;
-       if (!PyArg_ParseTuple(_args, "l",
-                             &commandID))
-               return NULL;
-       _rv = CountMenuItemsWithCommandID(_self->ob_itself,
-                                         commandID);
-       _res = Py_BuildValue("l",
-                            _rv);
-       return _res;
-}
-#endif
-
-#if TARGET_API_MAC_CARBON
-
-static PyObject *MenuObj_GetIndMenuItemWithCommandID(_self, _args)
-       MenuObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSStatus _err;
-       MenuCommand commandID;
-       UInt32 itemIndex;
-       MenuHandle outMenu;
-       MenuItemIndex outIndex;
-       if (!PyArg_ParseTuple(_args, "ll",
-                             &commandID,
-                             &itemIndex))
-               return NULL;
-       _err = GetIndMenuItemWithCommandID(_self->ob_itself,
-                                          commandID,
-                                          itemIndex,
-                                          &outMenu,
-                                          &outIndex);
-       if (_err != noErr) return PyMac_Error(_err);
-       _res = Py_BuildValue("O&h",
-                            MenuObj_New, outMenu,
-                            outIndex);
-       return _res;
-}
-#endif
-
-#if TARGET_API_MAC_CARBON
-
-static PyObject *MenuObj_EnableMenuCommand(_self, _args)
-       MenuObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       MenuCommand commandID;
-       if (!PyArg_ParseTuple(_args, "l",
-                             &commandID))
-               return NULL;
-       EnableMenuCommand(_self->ob_itself,
-                         commandID);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-#endif
-
-#if TARGET_API_MAC_CARBON
-
-static PyObject *MenuObj_DisableMenuCommand(_self, _args)
-       MenuObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       MenuCommand commandID;
-       if (!PyArg_ParseTuple(_args, "l",
-                             &commandID))
-               return NULL;
-       DisableMenuCommand(_self->ob_itself,
-                          commandID);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-#endif
-
-#if TARGET_API_MAC_CARBON
-
-static PyObject *MenuObj_IsMenuCommandEnabled(_self, _args)
-       MenuObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Boolean _rv;
-       MenuCommand commandID;
-       if (!PyArg_ParseTuple(_args, "l",
-                             &commandID))
-               return NULL;
-       _rv = IsMenuCommandEnabled(_self->ob_itself,
-                                  commandID);
-       _res = Py_BuildValue("b",
-                            _rv);
-       return _res;
-}
-#endif
-
-#if TARGET_API_MAC_CARBON
-
-static PyObject *MenuObj_GetMenuCommandPropertySize(_self, _args)
-       MenuObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSStatus _err;
-       MenuCommand commandID;
-       OSType propertyCreator;
-       OSType propertyTag;
-       ByteCount size;
-       if (!PyArg_ParseTuple(_args, "lO&O&",
-                             &commandID,
-                             PyMac_GetOSType, &propertyCreator,
-                             PyMac_GetOSType, &propertyTag))
-               return NULL;
-       _err = GetMenuCommandPropertySize(_self->ob_itself,
-                                         commandID,
-                                         propertyCreator,
-                                         propertyTag,
-                                         &size);
-       if (_err != noErr) return PyMac_Error(_err);
-       _res = Py_BuildValue("l",
-                            size);
-       return _res;
-}
-#endif
-
-#if TARGET_API_MAC_CARBON
-
-static PyObject *MenuObj_RemoveMenuCommandProperty(_self, _args)
-       MenuObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSStatus _err;
-       MenuCommand commandID;
-       OSType propertyCreator;
-       OSType propertyTag;
-       if (!PyArg_ParseTuple(_args, "lO&O&",
-                             &commandID,
-                             PyMac_GetOSType, &propertyCreator,
-                             PyMac_GetOSType, &propertyTag))
-               return NULL;
-       _err = RemoveMenuCommandProperty(_self->ob_itself,
-                                        commandID,
-                                        propertyCreator,
-                                        propertyTag);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-#endif
-
-#if TARGET_API_MAC_CARBON
-
-static PyObject *MenuObj_CreateStandardFontMenu(_self, _args)
-       MenuObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSStatus _err;
-       MenuItemIndex afterItem;
-       MenuID firstHierMenuID;
-       OptionBits options;
-       ItemCount outHierMenuCount;
-       if (!PyArg_ParseTuple(_args, "hhl",
-                             &afterItem,
-                             &firstHierMenuID,
-                             &options))
-               return NULL;
-       _err = CreateStandardFontMenu(_self->ob_itself,
-                                     afterItem,
-                                     firstHierMenuID,
-                                     options,
-                                     &outHierMenuCount);
-       if (_err != noErr) return PyMac_Error(_err);
-       _res = Py_BuildValue("l",
-                            outHierMenuCount);
-       return _res;
-}
-#endif
-
-#if TARGET_API_MAC_CARBON
-
-static PyObject *MenuObj_UpdateStandardFontMenu(_self, _args)
-       MenuObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSStatus _err;
-       ItemCount outHierMenuCount;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _err = UpdateStandardFontMenu(_self->ob_itself,
-                                     &outHierMenuCount);
-       if (_err != noErr) return PyMac_Error(_err);
-       _res = Py_BuildValue("l",
-                            outHierMenuCount);
-       return _res;
-}
-#endif
-
-#if TARGET_API_MAC_CARBON
-
-static PyObject *MenuObj_GetFontFamilyFromMenuSelection(_self, _args)
-       MenuObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSStatus _err;
-       MenuItemIndex item;
-       FMFontFamily outFontFamily;
-       FMFontStyle outStyle;
-       if (!PyArg_ParseTuple(_args, "h",
-                             &item))
-               return NULL;
-       _err = GetFontFamilyFromMenuSelection(_self->ob_itself,
-                                             item,
-                                             &outFontFamily,
-                                             &outStyle);
-       if (_err != noErr) return PyMac_Error(_err);
-       _res = Py_BuildValue("hh",
-                            outFontFamily,
-                            outStyle);
-       return _res;
-}
-#endif
-
-static PyObject *MenuObj_GetMenuID(_self, _args)
-       MenuObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       MenuID _rv;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _rv = GetMenuID(_self->ob_itself);
-       _res = Py_BuildValue("h",
-                            _rv);
-       return _res;
-}
-
-static PyObject *MenuObj_GetMenuWidth(_self, _args)
-       MenuObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       SInt16 _rv;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _rv = GetMenuWidth(_self->ob_itself);
-       _res = Py_BuildValue("h",
-                            _rv);
-       return _res;
-}
-
-static PyObject *MenuObj_GetMenuHeight(_self, _args)
-       MenuObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       SInt16 _rv;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _rv = GetMenuHeight(_self->ob_itself);
-       _res = Py_BuildValue("h",
-                            _rv);
-       return _res;
-}
-
-static PyObject *MenuObj_SetMenuID(_self, _args)
-       MenuObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       MenuID menuID;
-       if (!PyArg_ParseTuple(_args, "h",
-                             &menuID))
-               return NULL;
-       SetMenuID(_self->ob_itself,
-                 menuID);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *MenuObj_SetMenuWidth(_self, _args)
-       MenuObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       SInt16 width;
-       if (!PyArg_ParseTuple(_args, "h",
-                             &width))
-               return NULL;
-       SetMenuWidth(_self->ob_itself,
-                    width);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *MenuObj_SetMenuHeight(_self, _args)
-       MenuObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       SInt16 height;
-       if (!PyArg_ParseTuple(_args, "h",
-                             &height))
-               return NULL;
-       SetMenuHeight(_self->ob_itself,
-                     height);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *MenuObj_as_Resource(_self, _args)
-       MenuObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Handle _rv;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _rv = as_Resource(_self->ob_itself);
-       _res = Py_BuildValue("O&",
-                            ResObj_New, _rv);
-       return _res;
-}
-
-static PyObject *MenuObj_AppendMenu(_self, _args)
-       MenuObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Str255 data;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             PyMac_GetStr255, data))
-               return NULL;
-       AppendMenu(_self->ob_itself,
-                  data);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *MenuObj_InsertMenu(_self, _args)
-       MenuObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       short beforeID;
-       if (!PyArg_ParseTuple(_args, "h",
-                             &beforeID))
-               return NULL;
-       InsertMenu(_self->ob_itself,
-                  beforeID);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *MenuObj_InsertMenuItem(_self, _args)
-       MenuObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Str255 itemString;
-       short afterItem;
-       if (!PyArg_ParseTuple(_args, "O&h",
-                             PyMac_GetStr255, itemString,
-                             &afterItem))
-               return NULL;
-       InsertMenuItem(_self->ob_itself,
-                      itemString,
-                      afterItem);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *MenuObj_EnableMenuItem(_self, _args)
-       MenuObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       UInt16 item;
-       if (!PyArg_ParseTuple(_args, "H",
-                             &item))
-               return NULL;
-       EnableMenuItem(_self->ob_itself,
-                      item);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *MenuObj_CheckMenuItem(_self, _args)
-       MenuObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       short item;
-       Boolean checked;
-       if (!PyArg_ParseTuple(_args, "hb",
-                             &item,
-                             &checked))
-               return NULL;
-       CheckMenuItem(_self->ob_itself,
-                     item,
-                     checked);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyMethodDef MenuObj_methods[] = {
-       {"DisposeMenu", (PyCFunction)MenuObj_DisposeMenu, 1,
-        "() -> None"},
-       {"CalcMenuSize", (PyCFunction)MenuObj_CalcMenuSize, 1,
-        "() -> None"},
-       {"CountMenuItems", (PyCFunction)MenuObj_CountMenuItems, 1,
-        "() -> (short _rv)"},
-
-#if !TARGET_API_MAC_CARBON
-       {"CountMItems", (PyCFunction)MenuObj_CountMItems, 1,
-        "() -> (short _rv)"},
-#endif
-       {"GetMenuFont", (PyCFunction)MenuObj_GetMenuFont, 1,
-        "() -> (SInt16 outFontID, UInt16 outFontSize)"},
-       {"SetMenuFont", (PyCFunction)MenuObj_SetMenuFont, 1,
-        "(SInt16 inFontID, UInt16 inFontSize) -> None"},
-       {"GetMenuExcludesMarkColumn", (PyCFunction)MenuObj_GetMenuExcludesMarkColumn, 1,
-        "() -> (Boolean _rv)"},
-       {"SetMenuExcludesMarkColumn", (PyCFunction)MenuObj_SetMenuExcludesMarkColumn, 1,
-        "(Boolean excludesMark) -> None"},
-       {"MacAppendMenu", (PyCFunction)MenuObj_MacAppendMenu, 1,
-        "(Str255 data) -> None"},
-       {"InsertResMenu", (PyCFunction)MenuObj_InsertResMenu, 1,
-        "(ResType theType, short afterItem) -> None"},
-       {"AppendResMenu", (PyCFunction)MenuObj_AppendResMenu, 1,
-        "(ResType theType) -> None"},
-       {"MacInsertMenuItem", (PyCFunction)MenuObj_MacInsertMenuItem, 1,
-        "(Str255 itemString, short afterItem) -> None"},
-       {"DeleteMenuItem", (PyCFunction)MenuObj_DeleteMenuItem, 1,
-        "(short item) -> None"},
-       {"InsertFontResMenu", (PyCFunction)MenuObj_InsertFontResMenu, 1,
-        "(short afterItem, short scriptFilter) -> None"},
-       {"InsertIntlResMenu", (PyCFunction)MenuObj_InsertIntlResMenu, 1,
-        "(ResType theType, short afterItem, short scriptFilter) -> None"},
-       {"AppendMenuItemText", (PyCFunction)MenuObj_AppendMenuItemText, 1,
-        "(Str255 inString) -> None"},
-       {"InsertMenuItemText", (PyCFunction)MenuObj_InsertMenuItemText, 1,
-        "(Str255 inString, MenuItemIndex afterItem) -> None"},
-       {"PopUpMenuSelect", (PyCFunction)MenuObj_PopUpMenuSelect, 1,
-        "(short top, short left, short popUpItem) -> (long _rv)"},
-       {"MacInsertMenu", (PyCFunction)MenuObj_MacInsertMenu, 1,
-        "(MenuID beforeID) -> None"},
-       {"MacCheckMenuItem", (PyCFunction)MenuObj_MacCheckMenuItem, 1,
-        "(short item, Boolean checked) -> None"},
-
-#if !TARGET_API_MAC_CARBON
-       {"CheckItem", (PyCFunction)MenuObj_CheckItem, 1,
-        "(short item, Boolean checked) -> None"},
-#endif
-       {"SetMenuItemText", (PyCFunction)MenuObj_SetMenuItemText, 1,
-        "(short item, Str255 itemString) -> None"},
-       {"GetMenuItemText", (PyCFunction)MenuObj_GetMenuItemText, 1,
-        "(short item) -> (Str255 itemString)"},
-       {"SetItemMark", (PyCFunction)MenuObj_SetItemMark, 1,
-        "(short item, CharParameter markChar) -> None"},
-       {"GetItemMark", (PyCFunction)MenuObj_GetItemMark, 1,
-        "(short item) -> (CharParameter markChar)"},
-       {"SetItemCmd", (PyCFunction)MenuObj_SetItemCmd, 1,
-        "(short item, CharParameter cmdChar) -> None"},
-       {"GetItemCmd", (PyCFunction)MenuObj_GetItemCmd, 1,
-        "(short item) -> (CharParameter cmdChar)"},
-       {"SetItemIcon", (PyCFunction)MenuObj_SetItemIcon, 1,
-        "(short item, short iconIndex) -> None"},
-       {"GetItemIcon", (PyCFunction)MenuObj_GetItemIcon, 1,
-        "(short item) -> (short iconIndex)"},
-       {"SetItemStyle", (PyCFunction)MenuObj_SetItemStyle, 1,
-        "(short item, StyleParameter chStyle) -> None"},
-       {"GetItemStyle", (PyCFunction)MenuObj_GetItemStyle, 1,
-        "(short item) -> (Style chStyle)"},
-
-#if !TARGET_API_MAC_CARBON
-       {"DisableItem", (PyCFunction)MenuObj_DisableItem, 1,
-        "(short item) -> None"},
-#endif
-
-#if !TARGET_API_MAC_CARBON
-       {"EnableItem", (PyCFunction)MenuObj_EnableItem, 1,
-        "(short item) -> None"},
-#endif
-       {"SetMenuItemCommandID", (PyCFunction)MenuObj_SetMenuItemCommandID, 1,
-        "(SInt16 inItem, MenuCommand inCommandID) -> None"},
-       {"GetMenuItemCommandID", (PyCFunction)MenuObj_GetMenuItemCommandID, 1,
-        "(SInt16 inItem) -> (MenuCommand outCommandID)"},
-       {"SetMenuItemModifiers", (PyCFunction)MenuObj_SetMenuItemModifiers, 1,
-        "(SInt16 inItem, UInt8 inModifiers) -> None"},
-       {"GetMenuItemModifiers", (PyCFunction)MenuObj_GetMenuItemModifiers, 1,
-        "(SInt16 inItem) -> (UInt8 outModifiers)"},
-       {"SetMenuItemIconHandle", (PyCFunction)MenuObj_SetMenuItemIconHandle, 1,
-        "(SInt16 inItem, UInt8 inIconType, Handle inIconHandle) -> None"},
-       {"GetMenuItemIconHandle", (PyCFunction)MenuObj_GetMenuItemIconHandle, 1,
-        "(SInt16 inItem) -> (UInt8 outIconType, Handle outIconHandle)"},
-       {"SetMenuItemTextEncoding", (PyCFunction)MenuObj_SetMenuItemTextEncoding, 1,
-        "(SInt16 inItem, TextEncoding inScriptID) -> None"},
-       {"GetMenuItemTextEncoding", (PyCFunction)MenuObj_GetMenuItemTextEncoding, 1,
-        "(SInt16 inItem) -> (TextEncoding outScriptID)"},
-       {"SetMenuItemHierarchicalID", (PyCFunction)MenuObj_SetMenuItemHierarchicalID, 1,
-        "(SInt16 inItem, MenuID inHierID) -> None"},
-       {"GetMenuItemHierarchicalID", (PyCFunction)MenuObj_GetMenuItemHierarchicalID, 1,
-        "(SInt16 inItem) -> (MenuID outHierID)"},
-       {"SetMenuItemFontID", (PyCFunction)MenuObj_SetMenuItemFontID, 1,
-        "(SInt16 inItem, SInt16 inFontID) -> None"},
-       {"GetMenuItemFontID", (PyCFunction)MenuObj_GetMenuItemFontID, 1,
-        "(SInt16 inItem) -> (SInt16 outFontID)"},
-       {"SetMenuItemRefCon", (PyCFunction)MenuObj_SetMenuItemRefCon, 1,
-        "(SInt16 inItem, UInt32 inRefCon) -> None"},
-       {"GetMenuItemRefCon", (PyCFunction)MenuObj_GetMenuItemRefCon, 1,
-        "(SInt16 inItem) -> (UInt32 outRefCon)"},
-
-#if !TARGET_API_MAC_CARBON
-       {"SetMenuItemRefCon2", (PyCFunction)MenuObj_SetMenuItemRefCon2, 1,
-        "(SInt16 inItem, UInt32 inRefCon2) -> None"},
-#endif
-
-#if !TARGET_API_MAC_CARBON
-       {"GetMenuItemRefCon2", (PyCFunction)MenuObj_GetMenuItemRefCon2, 1,
-        "(SInt16 inItem) -> (UInt32 outRefCon2)"},
-#endif
-       {"SetMenuItemKeyGlyph", (PyCFunction)MenuObj_SetMenuItemKeyGlyph, 1,
-        "(SInt16 inItem, SInt16 inGlyph) -> None"},
-       {"GetMenuItemKeyGlyph", (PyCFunction)MenuObj_GetMenuItemKeyGlyph, 1,
-        "(SInt16 inItem) -> (SInt16 outGlyph)"},
-       {"MacEnableMenuItem", (PyCFunction)MenuObj_MacEnableMenuItem, 1,
-        "(MenuItemIndex item) -> None"},
-       {"DisableMenuItem", (PyCFunction)MenuObj_DisableMenuItem, 1,
-        "(MenuItemIndex item) -> None"},
-       {"IsMenuItemEnabled", (PyCFunction)MenuObj_IsMenuItemEnabled, 1,
-        "(MenuItemIndex item) -> (Boolean _rv)"},
-       {"EnableMenuItemIcon", (PyCFunction)MenuObj_EnableMenuItemIcon, 1,
-        "(MenuItemIndex item) -> None"},
-       {"DisableMenuItemIcon", (PyCFunction)MenuObj_DisableMenuItemIcon, 1,
-        "(MenuItemIndex item) -> None"},
-       {"IsMenuItemIconEnabled", (PyCFunction)MenuObj_IsMenuItemIconEnabled, 1,
-        "(MenuItemIndex item) -> (Boolean _rv)"},
-
-#if TARGET_API_MAC_CARBON
-       {"GetMenuItemPropertyAttributes", (PyCFunction)MenuObj_GetMenuItemPropertyAttributes, 1,
-        "(MenuItemIndex item, OSType propertyCreator, OSType propertyTag) -> (UInt32 attributes)"},
-#endif
-
-#if TARGET_API_MAC_CARBON
-       {"ChangeMenuItemPropertyAttributes", (PyCFunction)MenuObj_ChangeMenuItemPropertyAttributes, 1,
-        "(MenuItemIndex item, OSType propertyCreator, OSType propertyTag, UInt32 attributesToSet, UInt32 attributesToClear) -> None"},
-#endif
-
-#if TARGET_API_MAC_CARBON
-       {"GetMenuAttributes", (PyCFunction)MenuObj_GetMenuAttributes, 1,
-        "() -> (MenuAttributes outAttributes)"},
-#endif
-
-#if TARGET_API_MAC_CARBON
-       {"ChangeMenuAttributes", (PyCFunction)MenuObj_ChangeMenuAttributes, 1,
-        "(MenuAttributes setTheseAttributes, MenuAttributes clearTheseAttributes) -> None"},
-#endif
-
-#if TARGET_API_MAC_CARBON
-       {"GetMenuItemAttributes", (PyCFunction)MenuObj_GetMenuItemAttributes, 1,
-        "(MenuItemIndex item) -> (MenuItemAttributes outAttributes)"},
-#endif
-
-#if TARGET_API_MAC_CARBON
-       {"ChangeMenuItemAttributes", (PyCFunction)MenuObj_ChangeMenuItemAttributes, 1,
-        "(MenuItemIndex item, MenuItemAttributes setTheseAttributes, MenuItemAttributes clearTheseAttributes) -> None"},
-#endif
-
-#if TARGET_API_MAC_CARBON
-       {"DisableAllMenuItems", (PyCFunction)MenuObj_DisableAllMenuItems, 1,
-        "() -> None"},
-#endif
-
-#if TARGET_API_MAC_CARBON
-       {"EnableAllMenuItems", (PyCFunction)MenuObj_EnableAllMenuItems, 1,
-        "() -> None"},
-#endif
-
-#if TARGET_API_MAC_CARBON
-       {"MenuHasEnabledItems", (PyCFunction)MenuObj_MenuHasEnabledItems, 1,
-        "() -> (Boolean _rv)"},
-#endif
-
-#if TARGET_API_MAC_CARBON
-       {"CountMenuItemsWithCommandID", (PyCFunction)MenuObj_CountMenuItemsWithCommandID, 1,
-        "(MenuCommand commandID) -> (ItemCount _rv)"},
-#endif
-
-#if TARGET_API_MAC_CARBON
-       {"GetIndMenuItemWithCommandID", (PyCFunction)MenuObj_GetIndMenuItemWithCommandID, 1,
-        "(MenuCommand commandID, UInt32 itemIndex) -> (MenuHandle outMenu, MenuItemIndex outIndex)"},
-#endif
-
-#if TARGET_API_MAC_CARBON
-       {"EnableMenuCommand", (PyCFunction)MenuObj_EnableMenuCommand, 1,
-        "(MenuCommand commandID) -> None"},
-#endif
-
-#if TARGET_API_MAC_CARBON
-       {"DisableMenuCommand", (PyCFunction)MenuObj_DisableMenuCommand, 1,
-        "(MenuCommand commandID) -> None"},
-#endif
-
-#if TARGET_API_MAC_CARBON
-       {"IsMenuCommandEnabled", (PyCFunction)MenuObj_IsMenuCommandEnabled, 1,
-        "(MenuCommand commandID) -> (Boolean _rv)"},
-#endif
-
-#if TARGET_API_MAC_CARBON
-       {"GetMenuCommandPropertySize", (PyCFunction)MenuObj_GetMenuCommandPropertySize, 1,
-        "(MenuCommand commandID, OSType propertyCreator, OSType propertyTag) -> (ByteCount size)"},
-#endif
-
-#if TARGET_API_MAC_CARBON
-       {"RemoveMenuCommandProperty", (PyCFunction)MenuObj_RemoveMenuCommandProperty, 1,
-        "(MenuCommand commandID, OSType propertyCreator, OSType propertyTag) -> None"},
-#endif
-
-#if TARGET_API_MAC_CARBON
-       {"CreateStandardFontMenu", (PyCFunction)MenuObj_CreateStandardFontMenu, 1,
-        "(MenuItemIndex afterItem, MenuID firstHierMenuID, OptionBits options) -> (ItemCount outHierMenuCount)"},
-#endif
-
-#if TARGET_API_MAC_CARBON
-       {"UpdateStandardFontMenu", (PyCFunction)MenuObj_UpdateStandardFontMenu, 1,
-        "() -> (ItemCount outHierMenuCount)"},
-#endif
-
-#if TARGET_API_MAC_CARBON
-       {"GetFontFamilyFromMenuSelection", (PyCFunction)MenuObj_GetFontFamilyFromMenuSelection, 1,
-        "(MenuItemIndex item) -> (FMFontFamily outFontFamily, FMFontStyle outStyle)"},
-#endif
-       {"GetMenuID", (PyCFunction)MenuObj_GetMenuID, 1,
-        "() -> (MenuID _rv)"},
-       {"GetMenuWidth", (PyCFunction)MenuObj_GetMenuWidth, 1,
-        "() -> (SInt16 _rv)"},
-       {"GetMenuHeight", (PyCFunction)MenuObj_GetMenuHeight, 1,
-        "() -> (SInt16 _rv)"},
-       {"SetMenuID", (PyCFunction)MenuObj_SetMenuID, 1,
-        "(MenuID menuID) -> None"},
-       {"SetMenuWidth", (PyCFunction)MenuObj_SetMenuWidth, 1,
-        "(SInt16 width) -> None"},
-       {"SetMenuHeight", (PyCFunction)MenuObj_SetMenuHeight, 1,
-        "(SInt16 height) -> None"},
-       {"as_Resource", (PyCFunction)MenuObj_as_Resource, 1,
-        "() -> (Handle _rv)"},
-       {"AppendMenu", (PyCFunction)MenuObj_AppendMenu, 1,
-        "(Str255 data) -> None"},
-       {"InsertMenu", (PyCFunction)MenuObj_InsertMenu, 1,
-        "(short beforeID) -> None"},
-       {"InsertMenuItem", (PyCFunction)MenuObj_InsertMenuItem, 1,
-        "(Str255 itemString, short afterItem) -> None"},
-       {"EnableMenuItem", (PyCFunction)MenuObj_EnableMenuItem, 1,
-        "(UInt16 item) -> None"},
-       {"CheckMenuItem", (PyCFunction)MenuObj_CheckMenuItem, 1,
-        "(short item, Boolean checked) -> None"},
-       {NULL, NULL, 0}
-};
-
-PyMethodChain MenuObj_chain = { MenuObj_methods, NULL };
-
-static PyObject *MenuObj_getattr(self, name)
-       MenuObject *self;
-       char *name;
-{
-       return Py_FindMethodInChain(&MenuObj_chain, (PyObject *)self, name);
-}
-
-#define MenuObj_setattr NULL
-
-#define MenuObj_compare NULL
-
-#define MenuObj_repr NULL
-
-#define MenuObj_hash NULL
-
-PyTypeObject Menu_Type = {
-       PyObject_HEAD_INIT(&PyType_Type)
-       0, /*ob_size*/
-       "Menu", /*tp_name*/
-       sizeof(MenuObject), /*tp_basicsize*/
-       0, /*tp_itemsize*/
-       /* methods */
-       (destructor) MenuObj_dealloc, /*tp_dealloc*/
-       0, /*tp_print*/
-       (getattrfunc) MenuObj_getattr, /*tp_getattr*/
-       (setattrfunc) MenuObj_setattr, /*tp_setattr*/
-       (cmpfunc) MenuObj_compare, /*tp_compare*/
-       (reprfunc) MenuObj_repr, /*tp_repr*/
-       (PyNumberMethods *)0, /* tp_as_number */
-       (PySequenceMethods *)0, /* tp_as_sequence */
-       (PyMappingMethods *)0, /* tp_as_mapping */
-       (hashfunc) MenuObj_hash, /*tp_hash*/
-};
-
-/* ---------------------- End object type Menu ---------------------- */
-
-
-#if !TARGET_API_MAC_CARBON
-
-static PyObject *Menu_InitProcMenu(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       short resID;
-       if (!PyArg_ParseTuple(_args, "h",
-                             &resID))
-               return NULL;
-       InitProcMenu(resID);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-#endif
-
-#if !TARGET_API_MAC_CARBON
-
-static PyObject *Menu_InitMenus(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       InitMenus();
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-#endif
-
-static PyObject *Menu_NewMenu(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       MenuHandle _rv;
-       MenuID menuID;
-       Str255 menuTitle;
-       if (!PyArg_ParseTuple(_args, "hO&",
-                             &menuID,
-                             PyMac_GetStr255, menuTitle))
-               return NULL;
-       _rv = NewMenu(menuID,
-                     menuTitle);
-       _res = Py_BuildValue("O&",
-                            MenuObj_New, _rv);
-       return _res;
-}
-
-static PyObject *Menu_MacGetMenu(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       MenuHandle _rv;
-       short resourceID;
-       if (!PyArg_ParseTuple(_args, "h",
-                             &resourceID))
-               return NULL;
-       _rv = MacGetMenu(resourceID);
-       _res = Py_BuildValue("O&",
-                            MenuObj_New, _rv);
-       return _res;
-}
-
-#if TARGET_API_MAC_CARBON
-
-static PyObject *Menu_CreateNewMenu(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSStatus _err;
-       MenuID menuID;
-       MenuAttributes menuAttributes;
-       MenuHandle outMenuRef;
-       if (!PyArg_ParseTuple(_args, "hl",
-                             &menuID,
-                             &menuAttributes))
-               return NULL;
-       _err = CreateNewMenu(menuID,
-                            menuAttributes,
-                            &outMenuRef);
-       if (_err != noErr) return PyMac_Error(_err);
-       _res = Py_BuildValue("O&",
-                            MenuObj_New, outMenuRef);
-       return _res;
-}
-#endif
-
-static PyObject *Menu_MenuKey(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       long _rv;
-       CharParameter ch;
-       if (!PyArg_ParseTuple(_args, "h",
-                             &ch))
-               return NULL;
-       _rv = MenuKey(ch);
-       _res = Py_BuildValue("l",
-                            _rv);
-       return _res;
-}
-
-static PyObject *Menu_MenuSelect(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       long _rv;
-       Point startPt;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             PyMac_GetPoint, &startPt))
-               return NULL;
-       _rv = MenuSelect(startPt);
-       _res = Py_BuildValue("l",
-                            _rv);
-       return _res;
-}
-
-static PyObject *Menu_MenuChoice(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       long _rv;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _rv = MenuChoice();
-       _res = Py_BuildValue("l",
-                            _rv);
-       return _res;
-}
-
-static PyObject *Menu_MenuEvent(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       UInt32 _rv;
-       EventRecord inEvent;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             PyMac_GetEventRecord, &inEvent))
-               return NULL;
-       _rv = MenuEvent(&inEvent);
-       _res = Py_BuildValue("l",
-                            _rv);
-       return _res;
-}
-
-static PyObject *Menu_GetMBarHeight(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       short _rv;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _rv = GetMBarHeight();
-       _res = Py_BuildValue("h",
-                            _rv);
-       return _res;
-}
-
-static PyObject *Menu_MacDrawMenuBar(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       MacDrawMenuBar();
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *Menu_InvalMenuBar(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       InvalMenuBar();
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *Menu_HiliteMenu(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       MenuID menuID;
-       if (!PyArg_ParseTuple(_args, "h",
-                             &menuID))
-               return NULL;
-       HiliteMenu(menuID);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *Menu_GetNewMBar(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       MenuBarHandle _rv;
-       short menuBarID;
-       if (!PyArg_ParseTuple(_args, "h",
-                             &menuBarID))
-               return NULL;
-       _rv = GetNewMBar(menuBarID);
-       _res = Py_BuildValue("O&",
-                            ResObj_New, _rv);
-       return _res;
-}
-
-static PyObject *Menu_GetMenuBar(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       MenuBarHandle _rv;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _rv = GetMenuBar();
-       _res = Py_BuildValue("O&",
-                            ResObj_New, _rv);
-       return _res;
-}
-
-static PyObject *Menu_SetMenuBar(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       MenuBarHandle mbar;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             ResObj_Convert, &mbar))
-               return NULL;
-       SetMenuBar(mbar);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-#if TARGET_API_MAC_CARBON
-
-static PyObject *Menu_DuplicateMenuBar(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSStatus _err;
-       MenuBarHandle mbar;
-       MenuBarHandle outBar;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             ResObj_Convert, &mbar))
-               return NULL;
-       _err = DuplicateMenuBar(mbar,
-                               &outBar);
-       if (_err != noErr) return PyMac_Error(_err);
-       _res = Py_BuildValue("O&",
-                            ResObj_New, outBar);
-       return _res;
-}
-#endif
-
-#if TARGET_API_MAC_CARBON
-
-static PyObject *Menu_DisposeMenuBar(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSStatus _err;
-       MenuBarHandle mbar;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             ResObj_Convert, &mbar))
-               return NULL;
-       _err = DisposeMenuBar(mbar);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-#endif
-
-static PyObject *Menu_GetMenuHandle(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       MenuHandle _rv;
-       MenuID menuID;
-       if (!PyArg_ParseTuple(_args, "h",
-                             &menuID))
-               return NULL;
-       _rv = GetMenuHandle(menuID);
-       _res = Py_BuildValue("O&",
-                            MenuObj_New, _rv);
-       return _res;
-}
-
-static PyObject *Menu_MacDeleteMenu(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       MenuID menuID;
-       if (!PyArg_ParseTuple(_args, "h",
-                             &menuID))
-               return NULL;
-       MacDeleteMenu(menuID);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *Menu_ClearMenuBar(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       ClearMenuBar();
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *Menu_SetMenuFlashCount(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       short count;
-       if (!PyArg_ParseTuple(_args, "h",
-                             &count))
-               return NULL;
-       SetMenuFlashCount(count);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-#if !TARGET_API_MAC_CARBON
-
-static PyObject *Menu_SetMenuFlash(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       short count;
-       if (!PyArg_ParseTuple(_args, "h",
-                             &count))
-               return NULL;
-       SetMenuFlash(count);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-#endif
-
-static PyObject *Menu_FlashMenuBar(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       MenuID menuID;
-       if (!PyArg_ParseTuple(_args, "h",
-                             &menuID))
-               return NULL;
-       FlashMenuBar(menuID);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-#if !TARGET_API_MAC_CARBON
-
-static PyObject *Menu_SystemEdit(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Boolean _rv;
-       short editCmd;
-       if (!PyArg_ParseTuple(_args, "h",
-                             &editCmd))
-               return NULL;
-       _rv = SystemEdit(editCmd);
-       _res = Py_BuildValue("b",
-                            _rv);
-       return _res;
-}
-#endif
-
-#if !TARGET_API_MAC_CARBON
-
-static PyObject *Menu_SystemMenu(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       long menuResult;
-       if (!PyArg_ParseTuple(_args, "l",
-                             &menuResult))
-               return NULL;
-       SystemMenu(menuResult);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-#endif
-
-static PyObject *Menu_IsMenuBarVisible(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Boolean _rv;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _rv = IsMenuBarVisible();
-       _res = Py_BuildValue("b",
-                            _rv);
-       return _res;
-}
-
-static PyObject *Menu_ShowMenuBar(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       ShowMenuBar();
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *Menu_HideMenuBar(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       HideMenuBar();
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *Menu_DeleteMCEntries(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       MenuID menuID;
-       short menuItem;
-       if (!PyArg_ParseTuple(_args, "hh",
-                             &menuID,
-                             &menuItem))
-               return NULL;
-       DeleteMCEntries(menuID,
-                       menuItem);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *Menu_InitContextualMenus(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSStatus _err;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _err = InitContextualMenus();
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *Menu_IsShowContextualMenuClick(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Boolean _rv;
-       EventRecord inEvent;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             PyMac_GetEventRecord, &inEvent))
-               return NULL;
-       _rv = IsShowContextualMenuClick(&inEvent);
-       _res = Py_BuildValue("b",
-                            _rv);
-       return _res;
-}
-
-#if !TARGET_API_MAC_CARBON
-
-static PyObject *Menu_OpenDeskAcc(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Str255 name;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             PyMac_GetStr255, name))
-               return NULL;
-       OpenDeskAcc(name);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-#endif
-
-static PyObject *Menu_as_Menu(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       MenuHandle _rv;
-       Handle h;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             ResObj_Convert, &h))
-               return NULL;
-       _rv = as_Menu(h);
-       _res = Py_BuildValue("O&",
-                            MenuObj_New, _rv);
-       return _res;
-}
-
-static PyObject *Menu_GetMenu(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       MenuHandle _rv;
-       short resourceID;
-       if (!PyArg_ParseTuple(_args, "h",
-                             &resourceID))
-               return NULL;
-       _rv = GetMenu(resourceID);
-       _res = Py_BuildValue("O&",
-                            MenuObj_New, _rv);
-       return _res;
-}
-
-static PyObject *Menu_DeleteMenu(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       short menuID;
-       if (!PyArg_ParseTuple(_args, "h",
-                             &menuID))
-               return NULL;
-       DeleteMenu(menuID);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *Menu_DrawMenuBar(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       DrawMenuBar();
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyMethodDef Menu_methods[] = {
-
-#if !TARGET_API_MAC_CARBON
-       {"InitProcMenu", (PyCFunction)Menu_InitProcMenu, 1,
-        "(short resID) -> None"},
-#endif
-
-#if !TARGET_API_MAC_CARBON
-       {"InitMenus", (PyCFunction)Menu_InitMenus, 1,
-        "() -> None"},
-#endif
-       {"NewMenu", (PyCFunction)Menu_NewMenu, 1,
-        "(MenuID menuID, Str255 menuTitle) -> (MenuHandle _rv)"},
-       {"MacGetMenu", (PyCFunction)Menu_MacGetMenu, 1,
-        "(short resourceID) -> (MenuHandle _rv)"},
-
-#if TARGET_API_MAC_CARBON
-       {"CreateNewMenu", (PyCFunction)Menu_CreateNewMenu, 1,
-        "(MenuID menuID, MenuAttributes menuAttributes) -> (MenuHandle outMenuRef)"},
-#endif
-       {"MenuKey", (PyCFunction)Menu_MenuKey, 1,
-        "(CharParameter ch) -> (long _rv)"},
-       {"MenuSelect", (PyCFunction)Menu_MenuSelect, 1,
-        "(Point startPt) -> (long _rv)"},
-       {"MenuChoice", (PyCFunction)Menu_MenuChoice, 1,
-        "() -> (long _rv)"},
-       {"MenuEvent", (PyCFunction)Menu_MenuEvent, 1,
-        "(EventRecord inEvent) -> (UInt32 _rv)"},
-       {"GetMBarHeight", (PyCFunction)Menu_GetMBarHeight, 1,
-        "() -> (short _rv)"},
-       {"MacDrawMenuBar", (PyCFunction)Menu_MacDrawMenuBar, 1,
-        "() -> None"},
-       {"InvalMenuBar", (PyCFunction)Menu_InvalMenuBar, 1,
-        "() -> None"},
-       {"HiliteMenu", (PyCFunction)Menu_HiliteMenu, 1,
-        "(MenuID menuID) -> None"},
-       {"GetNewMBar", (PyCFunction)Menu_GetNewMBar, 1,
-        "(short menuBarID) -> (MenuBarHandle _rv)"},
-       {"GetMenuBar", (PyCFunction)Menu_GetMenuBar, 1,
-        "() -> (MenuBarHandle _rv)"},
-       {"SetMenuBar", (PyCFunction)Menu_SetMenuBar, 1,
-        "(MenuBarHandle mbar) -> None"},
-
-#if TARGET_API_MAC_CARBON
-       {"DuplicateMenuBar", (PyCFunction)Menu_DuplicateMenuBar, 1,
-        "(MenuBarHandle mbar) -> (MenuBarHandle outBar)"},
-#endif
-
-#if TARGET_API_MAC_CARBON
-       {"DisposeMenuBar", (PyCFunction)Menu_DisposeMenuBar, 1,
-        "(MenuBarHandle mbar) -> None"},
-#endif
-       {"GetMenuHandle", (PyCFunction)Menu_GetMenuHandle, 1,
-        "(MenuID menuID) -> (MenuHandle _rv)"},
-       {"MacDeleteMenu", (PyCFunction)Menu_MacDeleteMenu, 1,
-        "(MenuID menuID) -> None"},
-       {"ClearMenuBar", (PyCFunction)Menu_ClearMenuBar, 1,
-        "() -> None"},
-       {"SetMenuFlashCount", (PyCFunction)Menu_SetMenuFlashCount, 1,
-        "(short count) -> None"},
-
-#if !TARGET_API_MAC_CARBON
-       {"SetMenuFlash", (PyCFunction)Menu_SetMenuFlash, 1,
-        "(short count) -> None"},
-#endif
-       {"FlashMenuBar", (PyCFunction)Menu_FlashMenuBar, 1,
-        "(MenuID menuID) -> None"},
-
-#if !TARGET_API_MAC_CARBON
-       {"SystemEdit", (PyCFunction)Menu_SystemEdit, 1,
-        "(short editCmd) -> (Boolean _rv)"},
-#endif
-
-#if !TARGET_API_MAC_CARBON
-       {"SystemMenu", (PyCFunction)Menu_SystemMenu, 1,
-        "(long menuResult) -> None"},
-#endif
-       {"IsMenuBarVisible", (PyCFunction)Menu_IsMenuBarVisible, 1,
-        "() -> (Boolean _rv)"},
-       {"ShowMenuBar", (PyCFunction)Menu_ShowMenuBar, 1,
-        "() -> None"},
-       {"HideMenuBar", (PyCFunction)Menu_HideMenuBar, 1,
-        "() -> None"},
-       {"DeleteMCEntries", (PyCFunction)Menu_DeleteMCEntries, 1,
-        "(MenuID menuID, short menuItem) -> None"},
-       {"InitContextualMenus", (PyCFunction)Menu_InitContextualMenus, 1,
-        "() -> None"},
-       {"IsShowContextualMenuClick", (PyCFunction)Menu_IsShowContextualMenuClick, 1,
-        "(EventRecord inEvent) -> (Boolean _rv)"},
-
-#if !TARGET_API_MAC_CARBON
-       {"OpenDeskAcc", (PyCFunction)Menu_OpenDeskAcc, 1,
-        "(Str255 name) -> None"},
-#endif
-       {"as_Menu", (PyCFunction)Menu_as_Menu, 1,
-        "(Handle h) -> (MenuHandle _rv)"},
-       {"GetMenu", (PyCFunction)Menu_GetMenu, 1,
-        "(short resourceID) -> (MenuHandle _rv)"},
-       {"DeleteMenu", (PyCFunction)Menu_DeleteMenu, 1,
-        "(short menuID) -> None"},
-       {"DrawMenuBar", (PyCFunction)Menu_DrawMenuBar, 1,
-        "() -> None"},
-       {NULL, NULL, 0}
-};
-
-
-
-
-void initMenu()
-{
-       PyObject *m;
-       PyObject *d;
-
-
-
-
-       m = Py_InitModule("Menu", Menu_methods);
-       d = PyModule_GetDict(m);
-       Menu_Error = PyMac_GetOSErrException();
-       if (Menu_Error == NULL ||
-           PyDict_SetItemString(d, "Error", Menu_Error) != 0)
-               return;
-       Menu_Type.ob_type = &PyType_Type;
-       Py_INCREF(&Menu_Type);
-       if (PyDict_SetItemString(d, "MenuType", (PyObject *)&Menu_Type) != 0)
-               Py_FatalError("can't initialize MenuType");
-}
-
-/* ======================== End module Menu ========================= */
-
diff --git a/Mac/Modules/menu/menusupport.py b/Mac/Modules/menu/menusupport.py
deleted file mode 100644 (file)
index 20b4f36..0000000
+++ /dev/null
@@ -1,80 +0,0 @@
-# This script generates a Python interface for an Apple Macintosh Manager.
-# It uses the "bgen" package to generate C code.
-# The function specifications are generated by scanning the mamager's header file,
-# using the "scantools" package (customized for this particular manager).
-
-import string
-
-# Declarations that change for each manager
-MACHEADERFILE = 'Menus.h'              # The Apple header file
-MODNAME = 'Menu'                       # The name of the module
-OBJECTNAME = 'Menu'                    # The basic name of the objects used here
-
-# The following is *usually* unchanged but may still require tuning
-MODPREFIX = MODNAME                    # The prefix for module-wide routines
-OBJECTTYPE = OBJECTNAME + 'Handle'     # The C type used to represent them
-OBJECTPREFIX = MODPREFIX + 'Obj'       # The prefix for object methods
-INPUTFILE = string.lower(MODPREFIX) + 'gen.py' # The file generated by the scanner
-EXTRAFILE = string.lower(MODPREFIX) + 'edit.py' # A similar file but hand-made
-OUTPUTFILE = MODNAME + "module.c"      # The file generated by this program
-
-from macsupport import *
-
-# Create the type objects
-
-MenuHandle = OpaqueByValueType(OBJECTTYPE, OBJECTPREFIX)
-MenuRef = MenuHandle
-Handle = OpaqueByValueType("Handle", "ResObj")
-MenuBarHandle = OpaqueByValueType("MenuBarHandle", "ResObj")
-MenuID = Type("MenuID", "h")
-MenuItemIndex = Type("MenuItemIndex", "h")
-MenuCommand = Type("MenuCommand", "l")
-MenuAttributes = Type("MenuAttributes", "l")
-MenuItemAttributes = Type("MenuItemAttributes", "l")
-unsigned_char = Type('unsigned char', 'b')
-FMFontFamily = Type("FMFontFamily", "h")
-FMFontStyle = Type("FMFontStyle", "h")
-
-includestuff = includestuff + """
-#include <Devices.h> /* Defines OpenDeskAcc in universal headers */
-#include <%s>""" % MACHEADERFILE + """
-
-#if !ACCESSOR_CALLS_ARE_FUNCTIONS
-#define GetMenuID(menu) ((*(menu))->menuID)
-#define GetMenuWidth(menu) ((*(menu))->menuWidth)
-#define GetMenuHeight(menu) ((*(menu))->menuHeight)
-
-#define SetMenuID(menu, id) ((*(menu))->menuID = (id))
-#define SetMenuWidth(menu, width) ((*(menu))->menuWidth = (width))
-#define SetMenuHeight(menu, height) ((*(menu))->menuHeight = (height))
-#endif
-
-#define as_Menu(h) ((MenuHandle)h)
-#define as_Resource(h) ((Handle)h)
-"""
-
-class MyObjectDefinition(GlobalObjectDefinition):
-       pass
-
-# Create the generator groups and link them
-module = MacModule(MODNAME, MODPREFIX, includestuff, finalstuff, initstuff)
-object = MyObjectDefinition(OBJECTNAME, OBJECTPREFIX, OBJECTTYPE)
-module.addobject(object)
-
-# Create the generator classes used to populate the lists
-Function = OSErrFunctionGenerator
-Method = OSErrMethodGenerator
-
-# Create and populate the lists
-functions = []
-methods = []
-execfile(INPUTFILE)
-execfile(EXTRAFILE)
-
-# add the populated lists to the generator groups
-for f in functions: module.add(f)
-for f in methods: object.add(f)
-
-# generate output (open the output file as late as possible)
-SetOutputFileName(OUTPUTFILE)
-module.generate()
diff --git a/Mac/Modules/qd/Qdmodule.c b/Mac/Modules/qd/Qdmodule.c
deleted file mode 100644 (file)
index 12f44f4..0000000
+++ /dev/null
@@ -1,6229 +0,0 @@
-
-/* =========================== Module Qd ============================ */
-
-#include "Python.h"
-
-
-
-#include "macglue.h"
-#include "pymactoolbox.h"
-
-#include <QuickDraw.h>
-
-#if !ACCESSOR_CALLS_ARE_FUNCTIONS
-#define GetPortBitMapForCopyBits(port) ((const struct BitMap *)&((GrafPort *)(port))->portBits)
-#define GetPortPixMap(port) (((CGrafPtr)(port))->portPixMap)
-#define GetPortBounds(port, bounds) (*(bounds) = (port)->portRect, (bounds))
-#define GetPortForeColor(port, color) (*(color) = (port)->rgbFgColor, (color))
-#define GetPortBackColor(port, color) (*(color) = (port)->rgbBkColor, (color))
-#define GetPortOpColor(port, color) (*(color) = (*(GVarHandle)((port)->grafVars))->rgbOpColor, (color))
-#define GetPortHiliteColor(port, color) (*(color) = (*(GVarHandle)((port)->grafVars))->rgbHiliteColor, (color))
-#define GetPortTextFont(port) ((port)->txFont)
-#define GetPortTextFace(port) ((port)->txFace)
-#define GetPortTextMode(port) ((port)->txMode)
-#define GetPortTextSize(port) ((port)->txSize)
-#define GetPortChExtra(port) ((port)->chExtra)
-#define GetPortFracHPenLocation(port) ((port)->pnLocHFrac)
-#define GetPortSpExtra(port) ((port)->spExtra)
-#define GetPortPenVisibility(port) ((port)->pnVis)
-#define GetPortVisibleRegion(port, rgn) ((rgn) = (port)->visRgn, (rgn))
-#define GetPortClipRegion(port, rgn) ((rgn) = (port)->clipRgn, (rgn))
-#define GetPortBackPixPat(port, pat) ((pat) = (port)->bkPixPat, (pat))
-#define GetPortPenPixPat(port, pat) ((pat) = (port)->pnPixPat, (pat))
-#define GetPortFillPixPat(port, pat) ((pat) = (port)->fillPixPat, (pat))
-#define GetPortPenSize(port, pensize) (*(pensize) = (port)->pnSize, (pensize))
-#define GetPortPenMode(port) ((port)->pnMode)
-#define GetPortPenLocation(port, location) ((*location) = (port)->pnLoc, (location))
-#define IsPortRegionBeingDefined(port) (!!((port)->rgnSave))
-#define IsPortPictureBeingDefined(port) (!!((port)->picSave))
-/* #define IsPortOffscreen(port) */
-/* #define IsPortColor(port) */
-
-#define SetPortBounds(port, bounds) ((port)->portRect = *(bounds))
-#define SetPortOpColor(port, color) ((*(GVarHandle)((port)->grafVars))->rgbOpColor = *(color))
-#define SetPortVisibleRegion(port, rgn) ((port)->visRgn = (rgn))
-#define SetPortClipRegion(port, rgn) ((port)->clipRgn = (rgn))
-#define SetPortBackPixPat(port, pat) ((port)->bkPixPat = (pat))
-#define SetPortPenPixPat(port, pat) ((port)->pnPixPat = (pat))
-#define SetPortFillPixPat(port, pat) ((port)->fillPixPat = (pat))
-#define SetPortPenSize(port, pensize) ((port)->pnSize = (pensize))
-#define SetPortPenMode(port, mode) ((port)->pnMode = (mode))
-#define SetPortFracHPenLocation(port, frac) ((port)->pnLocHFrac = (frac))
-
-/* On pixmaps */
-#define GetPixBounds(pixmap, rect) (*(rect) = (*(pixmap))->bounds, (rect))
-#define GetPixDepth(pixmap) ((*(pixmap))->pixelSize)
-
-/* On regions */
-#define GetRegionBounds(rgn, rect) (*(rect) = (*(rgn))->rgnBBox, (rect))
-
-/* On QD Globals */
-#define GetQDGlobalsRandomSeed() (qd.randSeed)
-#define GetQDGlobalsScreenBits(bits) (*(bits) = qd.screenBits, (bits))
-#define GetQDGlobalsArrow(crsr) (*(crsr) = qd.arrow, (crsr))
-#define GetQDGlobalsDarkGray(pat) (*(pat) = qd.dkGray, (pat))
-#define GetQDGlobalsLightGray(pat) (*(pat) = qd.ltGray, (pat))
-#define GetQDGlobalsGray(pat) (*(pat) = qd.gray, (pat))
-#define GetQDGlobalsBlack(pat) (*(pat) = qd.black, (pat))
-#define GetQDGlobalsWhite(pat) (*(pat) = qd.white, (pat))
-#define GetQDGlobalsThePort() ((CGrafPtr)qd.thePort)
-
-#define SetQDGlobalsRandomSeed(seed) (qd.randSeed = (seed))
-#define SetQDGlobalsArrow(crsr) (qd.arrow = *(crsr))
-
-#endif /* ACCESSOR_CALLS_ARE_FUNCTIONS */
-
-#if !TARGET_API_MAC_CARBON
-#define QDFlushPortBuffer(port, rgn) /* pass */
-#define QDIsPortBufferDirty(port) 0
-#define QDIsPortBuffered(port) 0
-#endif /* !TARGET_API_MAC_CARBON  */
-
-staticforward PyObject *BMObj_NewCopied(BitMapPtr);
-
-/*
-** Parse/generate RGB records
-*/
-PyObject *QdRGB_New(itself)
-       RGBColorPtr itself;
-{
-
-       return Py_BuildValue("lll", (long)itself->red, (long)itself->green, (long)itself->blue);
-}
-
-QdRGB_Convert(v, p_itself)
-       PyObject *v;
-       RGBColorPtr p_itself;
-{
-       long red, green, blue;
-       
-       if( !PyArg_ParseTuple(v, "lll", &red, &green, &blue) )
-               return 0;
-       p_itself->red = (unsigned short)red;
-       p_itself->green = (unsigned short)green;
-       p_itself->blue = (unsigned short)blue;
-       return 1;
-}
-
-/*
-** Generate FontInfo records
-*/
-static
-PyObject *QdFI_New(itself)
-       FontInfo *itself;
-{
-
-       return Py_BuildValue("hhhh", itself->ascent, itself->descent,
-                       itself->widMax, itself->leading);
-}
-
-static PyObject *Qd_Error;
-
-/* ---------------------- Object type GrafPort ---------------------- */
-
-PyTypeObject GrafPort_Type;
-
-#define GrafObj_Check(x) ((x)->ob_type == &GrafPort_Type)
-
-typedef struct GrafPortObject {
-       PyObject_HEAD
-       GrafPtr ob_itself;
-} GrafPortObject;
-
-PyObject *GrafObj_New(itself)
-       GrafPtr itself;
-{
-       GrafPortObject *it;
-       if (itself == NULL) return PyMac_Error(resNotFound);
-       it = PyObject_NEW(GrafPortObject, &GrafPort_Type);
-       if (it == NULL) return NULL;
-       it->ob_itself = itself;
-       return (PyObject *)it;
-}
-GrafObj_Convert(v, p_itself)
-       PyObject *v;
-       GrafPtr *p_itself;
-{
-       if (DlgObj_Check(v)) {
-               DialogRef dlg = (DialogRef)((GrafPortObject *)v)->ob_itself;
-               *p_itself = (GrafPtr)GetWindowPort(GetDialogWindow(dlg));
-               return 1;
-       }
-       if (WinObj_Check(v)) {
-               WindowRef win = (WindowRef)((GrafPortObject *)v)->ob_itself;
-               *p_itself = (GrafPtr)GetWindowPort(win);
-               return 1;
-       }
-       if (!GrafObj_Check(v))
-       {
-               PyErr_SetString(PyExc_TypeError, "GrafPort required");
-               return 0;
-       }
-       *p_itself = ((GrafPortObject *)v)->ob_itself;
-       return 1;
-}
-
-static void GrafObj_dealloc(self)
-       GrafPortObject *self;
-{
-       /* Cleanup of self->ob_itself goes here */
-       PyMem_DEL(self);
-}
-
-static PyMethodDef GrafObj_methods[] = {
-       {NULL, NULL, 0}
-};
-
-PyMethodChain GrafObj_chain = { GrafObj_methods, NULL };
-
-static PyObject *GrafObj_getattr(self, name)
-       GrafPortObject *self;
-       char *name;
-{
-#if !ACCESSOR_CALLS_ARE_FUNCTIONS
-
-                       {       CGrafPtr itself_color = (CGrafPtr)self->ob_itself;
-                       
-                               if ( strcmp(name, "data") == 0 )
-                                       return PyString_FromStringAndSize((char *)self->ob_itself, sizeof(GrafPort));
-                                       
-                               if ( (itself_color->portVersion&0xc000) == 0xc000 ) {
-                                       /* Color-only attributes */
-                               
-                                       if ( strcmp(name, "portBits") == 0 )
-                                               /* XXXX Do we need HLock() stuff here?? */
-                                               return BMObj_New((BitMapPtr)*itself_color->portPixMap);
-                                       if ( strcmp(name, "grafVars") == 0 )
-                                               return Py_BuildValue("O&", ResObj_New, (Handle)itself_color->visRgn);
-                                       if ( strcmp(name, "chExtra") == 0 )
-                                               return Py_BuildValue("h", itself_color->chExtra);
-                                       if ( strcmp(name, "pnLocHFrac") == 0 )
-                                               return Py_BuildValue("h", itself_color->pnLocHFrac);
-                                       if ( strcmp(name, "bkPixPat") == 0 )
-                                               return Py_BuildValue("O&", ResObj_New, (Handle)itself_color->bkPixPat);
-                                       if ( strcmp(name, "rgbFgColor") == 0 )
-                                               return Py_BuildValue("O&", QdRGB_New, &itself_color->rgbFgColor);
-                                       if ( strcmp(name, "rgbBkColor") == 0 )
-                                               return Py_BuildValue("O&", QdRGB_New, &itself_color->rgbBkColor);
-                                       if ( strcmp(name, "pnPixPat") == 0 )
-                                               return Py_BuildValue("O&", ResObj_New, (Handle)itself_color->pnPixPat);
-                                       if ( strcmp(name, "fillPixPat") == 0 )
-                                               return Py_BuildValue("O&", ResObj_New, (Handle)itself_color->fillPixPat);
-                               } else {
-                                       /* Mono-only attributes */
-                                       if ( strcmp(name, "portBits") == 0 )
-                                               return BMObj_New(&self->ob_itself->portBits);
-                                       if ( strcmp(name, "bkPat") == 0 )
-                                               return Py_BuildValue("s#", (char *)&self->ob_itself->bkPat, sizeof(Pattern));
-                                       if ( strcmp(name, "fillPat") == 0 )
-                                               return Py_BuildValue("s#", (char *)&self->ob_itself->fillPat, sizeof(Pattern));
-                                       if ( strcmp(name, "pnPat") == 0 )
-                                               return Py_BuildValue("s#", (char *)&self->ob_itself->pnPat, sizeof(Pattern));
-                               }
-                               /*
-                               ** Accessible for both color/mono windows.
-                               ** portVersion is really color-only, but we put it here
-                               ** for convenience
-                               */
-                               if ( strcmp(name, "portVersion") == 0 )
-                                       return Py_BuildValue("h", itself_color->portVersion);
-                               if ( strcmp(name, "device") == 0 )
-                                       return PyInt_FromLong((long)self->ob_itself->device);
-                               if ( strcmp(name, "portRect") == 0 )
-                                       return Py_BuildValue("O&", PyMac_BuildRect, &self->ob_itself->portRect);
-                               if ( strcmp(name, "visRgn") == 0 )
-                                       return Py_BuildValue("O&", ResObj_New, (Handle)self->ob_itself->visRgn);
-                               if ( strcmp(name, "clipRgn") == 0 )
-                                       return Py_BuildValue("O&", ResObj_New, (Handle)self->ob_itself->clipRgn);
-                               if ( strcmp(name, "pnLoc") == 0 )
-                                       return Py_BuildValue("O&", PyMac_BuildPoint, self->ob_itself->pnLoc);
-                               if ( strcmp(name, "pnSize") == 0 )
-                                       return Py_BuildValue("O&", PyMac_BuildPoint, self->ob_itself->pnSize);
-                               if ( strcmp(name, "pnMode") == 0 )
-                                       return Py_BuildValue("h", self->ob_itself->pnMode);
-                               if ( strcmp(name, "pnVis") == 0 )
-                                       return Py_BuildValue("h", self->ob_itself->pnVis);
-                               if ( strcmp(name, "txFont") == 0 )
-                                       return Py_BuildValue("h", self->ob_itself->txFont);
-                               if ( strcmp(name, "txFace") == 0 )
-                                       return Py_BuildValue("h", (short)self->ob_itself->txFace);
-                               if ( strcmp(name, "txMode") == 0 )
-                                       return Py_BuildValue("h", self->ob_itself->txMode);
-                               if ( strcmp(name, "txSize") == 0 )
-                                       return Py_BuildValue("h", self->ob_itself->txSize);
-                               if ( strcmp(name, "spExtra") == 0 )
-                                       return Py_BuildValue("O&", PyMac_BuildFixed, self->ob_itself->spExtra);
-                               /* XXXX Add more, as needed */
-                               /* This one is so we can compare grafports: */
-                               if ( strcmp(name, "_id") == 0 )
-                                       return Py_BuildValue("l", (long)self->ob_itself);
-                       }
-#else
-
-                       {       CGrafPtr itself_color = (CGrafPtr)self->ob_itself;
-                               if ( strcmp(name, "portBits") == 0 )
-                                       return BMObj_New((BitMapPtr)GetPortBitMapForCopyBits(itself_color));
-                               if ( strcmp(name, "chExtra") == 0 )
-                                       return Py_BuildValue("h", GetPortChExtra(itself_color));
-                               if ( strcmp(name, "pnLocHFrac") == 0 )
-                                       return Py_BuildValue("h", GetPortFracHPenLocation(itself_color));
-                               if ( strcmp(name, "bkPixPat") == 0 ) {
-                                       PixPatHandle h=0;
-                                       return Py_BuildValue("O&", ResObj_New, (Handle)GetPortBackPixPat(itself_color, h));
-                               }
-                               if ( strcmp(name, "rgbFgColor") == 0 ) {
-                                       RGBColor c;
-                                       return Py_BuildValue("O&", QdRGB_New, GetPortForeColor(itself_color, &c));
-                               }
-                               if ( strcmp(name, "rgbBkColor") == 0 ) {
-                                       RGBColor c;
-                                       return Py_BuildValue("O&", QdRGB_New, GetPortBackColor(itself_color, &c));
-                               }
-                               if ( strcmp(name, "pnPixPat") == 0 ) {
-                                       PixPatHandle h=NewPixPat(); /* XXXX wrong dispose routine */
-                                       
-                                       return Py_BuildValue("O&", ResObj_New, (Handle)GetPortPenPixPat(itself_color, h));
-                               }
-                               if ( strcmp(name, "fillPixPat") == 0 ) {
-                                       PixPatHandle h=NewPixPat(); /* XXXX wrong dispose routine */
-                                       return Py_BuildValue("O&", ResObj_New, (Handle)GetPortFillPixPat(itself_color, h));
-                               }
-                               if ( strcmp(name, "portRect") == 0 ) {
-                                       Rect r;
-                                       return Py_BuildValue("O&", PyMac_BuildRect, GetPortBounds(itself_color, &r));
-                               }
-                               if ( strcmp(name, "visRgn") == 0 ) {
-                                       RgnHandle h=NewRgn(); /* XXXX wrong dispose routine */
-                                       return Py_BuildValue("O&", ResObj_New, (Handle)GetPortVisibleRegion(itself_color, h));
-                               }
-                               if ( strcmp(name, "clipRgn") == 0 ) {
-                                       RgnHandle h=NewRgn(); /* XXXX wrong dispose routine */
-                                       return Py_BuildValue("O&", ResObj_New, (Handle)GetPortClipRegion(itself_color, h));
-                               }
-                               if ( strcmp(name, "pnLoc") == 0 ) {
-                                       Point p;
-                                       return Py_BuildValue("O&", PyMac_BuildPoint, *GetPortPenLocation(itself_color, &p));
-                               }
-                               if ( strcmp(name, "pnSize") == 0 ) {
-                                       Point p;
-                                       return Py_BuildValue("O&", PyMac_BuildPoint, *GetPortPenSize(itself_color, &p));
-                               }
-                               if ( strcmp(name, "pnMode") == 0 )
-                                       return Py_BuildValue("h", GetPortPenMode(itself_color));
-                               if ( strcmp(name, "pnVis") == 0 )
-                                       return Py_BuildValue("h", GetPortPenVisibility(itself_color));
-                               if ( strcmp(name, "txFont") == 0 )
-                                       return Py_BuildValue("h", GetPortTextFont(itself_color));
-                               if ( strcmp(name, "txFace") == 0 )
-                                       return Py_BuildValue("h", (short)GetPortTextFace(itself_color));
-                               if ( strcmp(name, "txMode") == 0 )
-                                       return Py_BuildValue("h", GetPortTextMode(itself_color));
-                               if ( strcmp(name, "txSize") == 0 )
-                                       return Py_BuildValue("h", GetPortTextSize(itself_color));
-                               if ( strcmp(name, "spExtra") == 0 )
-                                       return Py_BuildValue("O&", PyMac_BuildFixed, GetPortSpExtra(itself_color));
-                               /* XXXX Add more, as needed */
-                               /* This one is so we can compare grafports: */
-                               if ( strcmp(name, "_id") == 0 )
-                                       return Py_BuildValue("l", (long)self->ob_itself);
-                       }
-#endif
-       return Py_FindMethodInChain(&GrafObj_chain, (PyObject *)self, name);
-}
-
-#define GrafObj_setattr NULL
-
-#define GrafObj_compare NULL
-
-#define GrafObj_repr NULL
-
-#define GrafObj_hash NULL
-
-PyTypeObject GrafPort_Type = {
-       PyObject_HEAD_INIT(&PyType_Type)
-       0, /*ob_size*/
-       "GrafPort", /*tp_name*/
-       sizeof(GrafPortObject), /*tp_basicsize*/
-       0, /*tp_itemsize*/
-       /* methods */
-       (destructor) GrafObj_dealloc, /*tp_dealloc*/
-       0, /*tp_print*/
-       (getattrfunc) GrafObj_getattr, /*tp_getattr*/
-       (setattrfunc) GrafObj_setattr, /*tp_setattr*/
-       (cmpfunc) GrafObj_compare, /*tp_compare*/
-       (reprfunc) GrafObj_repr, /*tp_repr*/
-       (PyNumberMethods *)0, /* tp_as_number */
-       (PySequenceMethods *)0, /* tp_as_sequence */
-       (PyMappingMethods *)0, /* tp_as_mapping */
-       (hashfunc) GrafObj_hash, /*tp_hash*/
-};
-
-/* -------------------- End object type GrafPort -------------------- */
-
-
-/* ----------------------- Object type BitMap ----------------------- */
-
-PyTypeObject BitMap_Type;
-
-#define BMObj_Check(x) ((x)->ob_type == &BitMap_Type)
-
-typedef struct BitMapObject {
-       PyObject_HEAD
-       BitMapPtr ob_itself;
-       PyObject *referred_object;
-       BitMap *referred_bitmap;
-} BitMapObject;
-
-PyObject *BMObj_New(itself)
-       BitMapPtr itself;
-{
-       BitMapObject *it;
-       if (itself == NULL) return PyMac_Error(resNotFound);
-       it = PyObject_NEW(BitMapObject, &BitMap_Type);
-       if (it == NULL) return NULL;
-       it->ob_itself = itself;
-       it->referred_object = NULL;
-       it->referred_bitmap = NULL;
-       return (PyObject *)it;
-}
-BMObj_Convert(v, p_itself)
-       PyObject *v;
-       BitMapPtr *p_itself;
-{
-       if (!BMObj_Check(v))
-       {
-               PyErr_SetString(PyExc_TypeError, "BitMap required");
-               return 0;
-       }
-       *p_itself = ((BitMapObject *)v)->ob_itself;
-       return 1;
-}
-
-static void BMObj_dealloc(self)
-       BitMapObject *self;
-{
-       Py_XDECREF(self->referred_object);
-       if (self->referred_bitmap) free(self->referred_bitmap);
-       PyMem_DEL(self);
-}
-
-static PyObject *BMObj_getdata(_self, _args)
-       BitMapObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-
-       int from, length;
-       char *cp;
-
-       if ( !PyArg_ParseTuple(_args, "ii", &from, &length) )
-               return NULL;
-       cp = _self->ob_itself->baseAddr+from;
-       return PyString_FromStringAndSize(cp, length);
-
-}
-
-static PyObject *BMObj_putdata(_self, _args)
-       BitMapObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-
-       int from, length;
-       char *cp, *icp;
-
-       if ( !PyArg_ParseTuple(_args, "is#", &from, &icp, &length) )
-               return NULL;
-       cp = _self->ob_itself->baseAddr+from;
-       memcpy(cp, icp, length);
-       Py_INCREF(Py_None);
-       return Py_None;
-
-}
-
-static PyMethodDef BMObj_methods[] = {
-       {"getdata", (PyCFunction)BMObj_getdata, 1,
-        "(int start, int size) -> string. Return bytes from the bitmap"},
-       {"putdata", (PyCFunction)BMObj_putdata, 1,
-        "(int start, string data). Store bytes into the bitmap"},
-       {NULL, NULL, 0}
-};
-
-PyMethodChain BMObj_chain = { BMObj_methods, NULL };
-
-static PyObject *BMObj_getattr(self, name)
-       BitMapObject *self;
-       char *name;
-{
-       if ( strcmp(name, "baseAddr") == 0 )
-                               return PyInt_FromLong((long)self->ob_itself->baseAddr);
-                       if ( strcmp(name, "rowBytes") == 0 )
-                               return PyInt_FromLong((long)self->ob_itself->rowBytes);
-                       if ( strcmp(name, "bounds") == 0 )
-                               return Py_BuildValue("O&", PyMac_BuildRect, &self->ob_itself->bounds);
-                       /* XXXX Add more, as needed */
-                       if ( strcmp(name, "bitmap_data") == 0 )
-                               return PyString_FromStringAndSize((char *)self->ob_itself, sizeof(BitMap));
-                       if ( strcmp(name, "pixmap_data") == 0 )
-                               return PyString_FromStringAndSize((char *)self->ob_itself, sizeof(PixMap));
-                       
-       return Py_FindMethodInChain(&BMObj_chain, (PyObject *)self, name);
-}
-
-#define BMObj_setattr NULL
-
-#define BMObj_compare NULL
-
-#define BMObj_repr NULL
-
-#define BMObj_hash NULL
-
-PyTypeObject BitMap_Type = {
-       PyObject_HEAD_INIT(&PyType_Type)
-       0, /*ob_size*/
-       "BitMap", /*tp_name*/
-       sizeof(BitMapObject), /*tp_basicsize*/
-       0, /*tp_itemsize*/
-       /* methods */
-       (destructor) BMObj_dealloc, /*tp_dealloc*/
-       0, /*tp_print*/
-       (getattrfunc) BMObj_getattr, /*tp_getattr*/
-       (setattrfunc) BMObj_setattr, /*tp_setattr*/
-       (cmpfunc) BMObj_compare, /*tp_compare*/
-       (reprfunc) BMObj_repr, /*tp_repr*/
-       (PyNumberMethods *)0, /* tp_as_number */
-       (PySequenceMethods *)0, /* tp_as_sequence */
-       (PyMappingMethods *)0, /* tp_as_mapping */
-       (hashfunc) BMObj_hash, /*tp_hash*/
-};
-
-/* --------------------- End object type BitMap --------------------- */
-
-
-/* ------------------ Object type QDGlobalsAccess ------------------- */
-
-staticforward PyTypeObject QDGlobalsAccess_Type;
-
-#define QDGA_Check(x) ((x)->ob_type == &QDGlobalsAccess_Type)
-
-typedef struct QDGlobalsAccessObject {
-       PyObject_HEAD
-} QDGlobalsAccessObject;
-
-static PyObject *QDGA_New()
-{
-       QDGlobalsAccessObject *it;
-       it = PyObject_NEW(QDGlobalsAccessObject, &QDGlobalsAccess_Type);
-       if (it == NULL) return NULL;
-       return (PyObject *)it;
-}
-
-static void QDGA_dealloc(self)
-       QDGlobalsAccessObject *self;
-{
-       PyMem_DEL(self);
-}
-
-static PyMethodDef QDGA_methods[] = {
-       {NULL, NULL, 0}
-};
-
-static PyMethodChain QDGA_chain = { QDGA_methods, NULL };
-
-static PyObject *QDGA_getattr(self, name)
-       QDGlobalsAccessObject *self;
-       char *name;
-{
-#if !ACCESSOR_CALLS_ARE_FUNCTIONS
-
-               if ( strcmp(name, "arrow") == 0 )
-                       return PyString_FromStringAndSize((char *)&qd.arrow, sizeof(qd.arrow));
-               if ( strcmp(name, "black") == 0 ) 
-                       return PyString_FromStringAndSize((char *)&qd.black, sizeof(qd.black));
-               if ( strcmp(name, "white") == 0 ) 
-                       return PyString_FromStringAndSize((char *)&qd.white, sizeof(qd.white));
-               if ( strcmp(name, "gray") == 0 ) 
-                       return PyString_FromStringAndSize((char *)&qd.gray, sizeof(qd.gray));
-               if ( strcmp(name, "ltGray") == 0 ) 
-                       return PyString_FromStringAndSize((char *)&qd.ltGray, sizeof(qd.ltGray));
-               if ( strcmp(name, "dkGray") == 0 ) 
-                       return PyString_FromStringAndSize((char *)&qd.dkGray, sizeof(qd.dkGray));
-               if ( strcmp(name, "screenBits") == 0 ) 
-                       return BMObj_New(&qd.screenBits);
-               if ( strcmp(name, "thePort") == 0 ) 
-                       return GrafObj_New(qd.thePort);
-               if ( strcmp(name, "randSeed") == 0 ) 
-                       return Py_BuildValue("l", &qd.randSeed);
-                       
-#else
-
-               if ( strcmp(name, "arrow") == 0 ) {
-                       Cursor rv;
-                       GetQDGlobalsArrow(&rv);
-                       return PyString_FromStringAndSize((char *)&rv, sizeof(rv));
-               }
-               if ( strcmp(name, "black") == 0 ) {
-                       Pattern rv;
-                       GetQDGlobalsBlack(&rv);
-                       return PyString_FromStringAndSize((char *)&rv, sizeof(rv));
-               }
-               if ( strcmp(name, "white") == 0 )  {
-                       Pattern rv;
-                       GetQDGlobalsWhite(&rv);
-                       return PyString_FromStringAndSize((char *)&rv, sizeof(rv));
-               }
-               if ( strcmp(name, "gray") == 0 )  {
-                       Pattern rv;
-                       GetQDGlobalsGray(&rv);
-                       return PyString_FromStringAndSize((char *)&rv, sizeof(rv));
-               }
-               if ( strcmp(name, "ltGray") == 0 )  {
-                       Pattern rv;
-                       GetQDGlobalsLightGray(&rv);
-                       return PyString_FromStringAndSize((char *)&rv, sizeof(rv));
-               }
-               if ( strcmp(name, "dkGray") == 0 )  {
-                       Pattern rv;
-                       GetQDGlobalsDarkGray(&rv);
-                       return PyString_FromStringAndSize((char *)&rv, sizeof(rv));
-               }
-               if ( strcmp(name, "screenBits") == 0 ) {
-                       BitMap rv;
-                       GetQDGlobalsScreenBits(&rv);
-                       return BMObj_NewCopied(&rv);
-               }
-               if ( strcmp(name, "thePort") == 0 ) 
-                       return GrafObj_New(GetQDGlobalsThePort());
-               if ( strcmp(name, "randSeed") == 0 ) 
-                       return Py_BuildValue("l", GetQDGlobalsRandomSeed());
-                       
-#endif
-       return Py_FindMethodInChain(&QDGA_chain, (PyObject *)self, name);
-}
-
-#define QDGA_setattr NULL
-
-#define QDGA_compare NULL
-
-#define QDGA_repr NULL
-
-#define QDGA_hash NULL
-
-staticforward PyTypeObject QDGlobalsAccess_Type = {
-       PyObject_HEAD_INIT(&PyType_Type)
-       0, /*ob_size*/
-       "QDGlobalsAccess", /*tp_name*/
-       sizeof(QDGlobalsAccessObject), /*tp_basicsize*/
-       0, /*tp_itemsize*/
-       /* methods */
-       (destructor) QDGA_dealloc, /*tp_dealloc*/
-       0, /*tp_print*/
-       (getattrfunc) QDGA_getattr, /*tp_getattr*/
-       (setattrfunc) QDGA_setattr, /*tp_setattr*/
-       (cmpfunc) QDGA_compare, /*tp_compare*/
-       (reprfunc) QDGA_repr, /*tp_repr*/
-       (PyNumberMethods *)0, /* tp_as_number */
-       (PySequenceMethods *)0, /* tp_as_sequence */
-       (PyMappingMethods *)0, /* tp_as_mapping */
-       (hashfunc) QDGA_hash, /*tp_hash*/
-};
-
-/* ---------------- End object type QDGlobalsAccess ----------------- */
-
-
-static PyObject *Qd_MacSetPort(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       GrafPtr port;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             GrafObj_Convert, &port))
-               return NULL;
-       MacSetPort(port);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *Qd_GetPort(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       GrafPtr port;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       GetPort(&port);
-       _res = Py_BuildValue("O&",
-                            GrafObj_New, port);
-       return _res;
-}
-
-static PyObject *Qd_GrafDevice(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       short device;
-       if (!PyArg_ParseTuple(_args, "h",
-                             &device))
-               return NULL;
-       GrafDevice(device);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *Qd_SetPortBits(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       BitMapPtr bm;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             BMObj_Convert, &bm))
-               return NULL;
-       SetPortBits(bm);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *Qd_PortSize(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       short width;
-       short height;
-       if (!PyArg_ParseTuple(_args, "hh",
-                             &width,
-                             &height))
-               return NULL;
-       PortSize(width,
-                height);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *Qd_MovePortTo(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       short leftGlobal;
-       short topGlobal;
-       if (!PyArg_ParseTuple(_args, "hh",
-                             &leftGlobal,
-                             &topGlobal))
-               return NULL;
-       MovePortTo(leftGlobal,
-                  topGlobal);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *Qd_SetOrigin(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       short h;
-       short v;
-       if (!PyArg_ParseTuple(_args, "hh",
-                             &h,
-                             &v))
-               return NULL;
-       SetOrigin(h,
-                 v);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *Qd_SetClip(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       RgnHandle rgn;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             ResObj_Convert, &rgn))
-               return NULL;
-       SetClip(rgn);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *Qd_GetClip(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       RgnHandle rgn;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             ResObj_Convert, &rgn))
-               return NULL;
-       GetClip(rgn);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *Qd_ClipRect(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Rect r;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             PyMac_GetRect, &r))
-               return NULL;
-       ClipRect(&r);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *Qd_BackPat(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Pattern *pat__in__;
-       int pat__in_len__;
-       if (!PyArg_ParseTuple(_args, "s#",
-                             (char **)&pat__in__, &pat__in_len__))
-               return NULL;
-       if (pat__in_len__ != sizeof(Pattern))
-       {
-               PyErr_SetString(PyExc_TypeError, "buffer length should be sizeof(Pattern)");
-               goto pat__error__;
-       }
-       BackPat(pat__in__);
-       Py_INCREF(Py_None);
-       _res = Py_None;
- pat__error__: ;
-       return _res;
-}
-
-static PyObject *Qd_InitCursor(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       InitCursor();
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *Qd_MacSetCursor(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Cursor *crsr__in__;
-       int crsr__in_len__;
-       if (!PyArg_ParseTuple(_args, "s#",
-                             (char **)&crsr__in__, &crsr__in_len__))
-               return NULL;
-       if (crsr__in_len__ != sizeof(Cursor))
-       {
-               PyErr_SetString(PyExc_TypeError, "buffer length should be sizeof(Cursor)");
-               goto crsr__error__;
-       }
-       MacSetCursor(crsr__in__);
-       Py_INCREF(Py_None);
-       _res = Py_None;
- crsr__error__: ;
-       return _res;
-}
-
-static PyObject *Qd_HideCursor(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       HideCursor();
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *Qd_MacShowCursor(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       MacShowCursor();
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *Qd_ObscureCursor(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       ObscureCursor();
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *Qd_HidePen(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       HidePen();
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *Qd_ShowPen(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       ShowPen();
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *Qd_GetPen(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Point pt;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       GetPen(&pt);
-       _res = Py_BuildValue("O&",
-                            PyMac_BuildPoint, pt);
-       return _res;
-}
-
-static PyObject *Qd_GetPenState(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       PenState pnState__out__;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       GetPenState(&pnState__out__);
-       _res = Py_BuildValue("s#",
-                            (char *)&pnState__out__, (int)sizeof(PenState));
- pnState__error__: ;
-       return _res;
-}
-
-static PyObject *Qd_SetPenState(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       PenState *pnState__in__;
-       int pnState__in_len__;
-       if (!PyArg_ParseTuple(_args, "s#",
-                             (char **)&pnState__in__, &pnState__in_len__))
-               return NULL;
-       if (pnState__in_len__ != sizeof(PenState))
-       {
-               PyErr_SetString(PyExc_TypeError, "buffer length should be sizeof(PenState)");
-               goto pnState__error__;
-       }
-       SetPenState(pnState__in__);
-       Py_INCREF(Py_None);
-       _res = Py_None;
- pnState__error__: ;
-       return _res;
-}
-
-static PyObject *Qd_PenSize(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       short width;
-       short height;
-       if (!PyArg_ParseTuple(_args, "hh",
-                             &width,
-                             &height))
-               return NULL;
-       PenSize(width,
-               height);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *Qd_PenMode(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       short mode;
-       if (!PyArg_ParseTuple(_args, "h",
-                             &mode))
-               return NULL;
-       PenMode(mode);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *Qd_PenPat(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Pattern *pat__in__;
-       int pat__in_len__;
-       if (!PyArg_ParseTuple(_args, "s#",
-                             (char **)&pat__in__, &pat__in_len__))
-               return NULL;
-       if (pat__in_len__ != sizeof(Pattern))
-       {
-               PyErr_SetString(PyExc_TypeError, "buffer length should be sizeof(Pattern)");
-               goto pat__error__;
-       }
-       PenPat(pat__in__);
-       Py_INCREF(Py_None);
-       _res = Py_None;
- pat__error__: ;
-       return _res;
-}
-
-static PyObject *Qd_PenNormal(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       PenNormal();
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *Qd_MoveTo(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       short h;
-       short v;
-       if (!PyArg_ParseTuple(_args, "hh",
-                             &h,
-                             &v))
-               return NULL;
-       MoveTo(h,
-              v);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *Qd_Move(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       short dh;
-       short dv;
-       if (!PyArg_ParseTuple(_args, "hh",
-                             &dh,
-                             &dv))
-               return NULL;
-       Move(dh,
-            dv);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *Qd_MacLineTo(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       short h;
-       short v;
-       if (!PyArg_ParseTuple(_args, "hh",
-                             &h,
-                             &v))
-               return NULL;
-       MacLineTo(h,
-                 v);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *Qd_Line(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       short dh;
-       short dv;
-       if (!PyArg_ParseTuple(_args, "hh",
-                             &dh,
-                             &dv))
-               return NULL;
-       Line(dh,
-            dv);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *Qd_ForeColor(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       long color;
-       if (!PyArg_ParseTuple(_args, "l",
-                             &color))
-               return NULL;
-       ForeColor(color);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *Qd_BackColor(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       long color;
-       if (!PyArg_ParseTuple(_args, "l",
-                             &color))
-               return NULL;
-       BackColor(color);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *Qd_ColorBit(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       short whichBit;
-       if (!PyArg_ParseTuple(_args, "h",
-                             &whichBit))
-               return NULL;
-       ColorBit(whichBit);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *Qd_MacSetRect(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Rect r;
-       short left;
-       short top;
-       short right;
-       short bottom;
-       if (!PyArg_ParseTuple(_args, "hhhh",
-                             &left,
-                             &top,
-                             &right,
-                             &bottom))
-               return NULL;
-       MacSetRect(&r,
-                  left,
-                  top,
-                  right,
-                  bottom);
-       _res = Py_BuildValue("O&",
-                            PyMac_BuildRect, &r);
-       return _res;
-}
-
-static PyObject *Qd_MacOffsetRect(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Rect r;
-       short dh;
-       short dv;
-       if (!PyArg_ParseTuple(_args, "O&hh",
-                             PyMac_GetRect, &r,
-                             &dh,
-                             &dv))
-               return NULL;
-       MacOffsetRect(&r,
-                     dh,
-                     dv);
-       _res = Py_BuildValue("O&",
-                            PyMac_BuildRect, &r);
-       return _res;
-}
-
-static PyObject *Qd_MacInsetRect(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Rect r;
-       short dh;
-       short dv;
-       if (!PyArg_ParseTuple(_args, "O&hh",
-                             PyMac_GetRect, &r,
-                             &dh,
-                             &dv))
-               return NULL;
-       MacInsetRect(&r,
-                    dh,
-                    dv);
-       _res = Py_BuildValue("O&",
-                            PyMac_BuildRect, &r);
-       return _res;
-}
-
-static PyObject *Qd_SectRect(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Boolean _rv;
-       Rect src1;
-       Rect src2;
-       Rect dstRect;
-       if (!PyArg_ParseTuple(_args, "O&O&",
-                             PyMac_GetRect, &src1,
-                             PyMac_GetRect, &src2))
-               return NULL;
-       _rv = SectRect(&src1,
-                      &src2,
-                      &dstRect);
-       _res = Py_BuildValue("bO&",
-                            _rv,
-                            PyMac_BuildRect, &dstRect);
-       return _res;
-}
-
-static PyObject *Qd_MacUnionRect(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Rect src1;
-       Rect src2;
-       Rect dstRect;
-       if (!PyArg_ParseTuple(_args, "O&O&",
-                             PyMac_GetRect, &src1,
-                             PyMac_GetRect, &src2))
-               return NULL;
-       MacUnionRect(&src1,
-                    &src2,
-                    &dstRect);
-       _res = Py_BuildValue("O&",
-                            PyMac_BuildRect, &dstRect);
-       return _res;
-}
-
-static PyObject *Qd_MacEqualRect(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Boolean _rv;
-       Rect rect1;
-       Rect rect2;
-       if (!PyArg_ParseTuple(_args, "O&O&",
-                             PyMac_GetRect, &rect1,
-                             PyMac_GetRect, &rect2))
-               return NULL;
-       _rv = MacEqualRect(&rect1,
-                          &rect2);
-       _res = Py_BuildValue("b",
-                            _rv);
-       return _res;
-}
-
-static PyObject *Qd_EmptyRect(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Boolean _rv;
-       Rect r;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             PyMac_GetRect, &r))
-               return NULL;
-       _rv = EmptyRect(&r);
-       _res = Py_BuildValue("b",
-                            _rv);
-       return _res;
-}
-
-static PyObject *Qd_MacFrameRect(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Rect r;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             PyMac_GetRect, &r))
-               return NULL;
-       MacFrameRect(&r);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *Qd_PaintRect(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Rect r;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             PyMac_GetRect, &r))
-               return NULL;
-       PaintRect(&r);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *Qd_EraseRect(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Rect r;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             PyMac_GetRect, &r))
-               return NULL;
-       EraseRect(&r);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *Qd_MacInvertRect(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Rect r;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             PyMac_GetRect, &r))
-               return NULL;
-       MacInvertRect(&r);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *Qd_MacFillRect(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Rect r;
-       Pattern *pat__in__;
-       int pat__in_len__;
-       if (!PyArg_ParseTuple(_args, "O&s#",
-                             PyMac_GetRect, &r,
-                             (char **)&pat__in__, &pat__in_len__))
-               return NULL;
-       if (pat__in_len__ != sizeof(Pattern))
-       {
-               PyErr_SetString(PyExc_TypeError, "buffer length should be sizeof(Pattern)");
-               goto pat__error__;
-       }
-       MacFillRect(&r,
-                   pat__in__);
-       Py_INCREF(Py_None);
-       _res = Py_None;
- pat__error__: ;
-       return _res;
-}
-
-static PyObject *Qd_FrameOval(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Rect r;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             PyMac_GetRect, &r))
-               return NULL;
-       FrameOval(&r);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *Qd_PaintOval(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Rect r;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             PyMac_GetRect, &r))
-               return NULL;
-       PaintOval(&r);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *Qd_EraseOval(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Rect r;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             PyMac_GetRect, &r))
-               return NULL;
-       EraseOval(&r);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *Qd_InvertOval(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Rect r;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             PyMac_GetRect, &r))
-               return NULL;
-       InvertOval(&r);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *Qd_FillOval(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Rect r;
-       Pattern *pat__in__;
-       int pat__in_len__;
-       if (!PyArg_ParseTuple(_args, "O&s#",
-                             PyMac_GetRect, &r,
-                             (char **)&pat__in__, &pat__in_len__))
-               return NULL;
-       if (pat__in_len__ != sizeof(Pattern))
-       {
-               PyErr_SetString(PyExc_TypeError, "buffer length should be sizeof(Pattern)");
-               goto pat__error__;
-       }
-       FillOval(&r,
-                pat__in__);
-       Py_INCREF(Py_None);
-       _res = Py_None;
- pat__error__: ;
-       return _res;
-}
-
-static PyObject *Qd_FrameRoundRect(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Rect r;
-       short ovalWidth;
-       short ovalHeight;
-       if (!PyArg_ParseTuple(_args, "O&hh",
-                             PyMac_GetRect, &r,
-                             &ovalWidth,
-                             &ovalHeight))
-               return NULL;
-       FrameRoundRect(&r,
-                      ovalWidth,
-                      ovalHeight);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *Qd_PaintRoundRect(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Rect r;
-       short ovalWidth;
-       short ovalHeight;
-       if (!PyArg_ParseTuple(_args, "O&hh",
-                             PyMac_GetRect, &r,
-                             &ovalWidth,
-                             &ovalHeight))
-               return NULL;
-       PaintRoundRect(&r,
-                      ovalWidth,
-                      ovalHeight);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *Qd_EraseRoundRect(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Rect r;
-       short ovalWidth;
-       short ovalHeight;
-       if (!PyArg_ParseTuple(_args, "O&hh",
-                             PyMac_GetRect, &r,
-                             &ovalWidth,
-                             &ovalHeight))
-               return NULL;
-       EraseRoundRect(&r,
-                      ovalWidth,
-                      ovalHeight);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *Qd_InvertRoundRect(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Rect r;
-       short ovalWidth;
-       short ovalHeight;
-       if (!PyArg_ParseTuple(_args, "O&hh",
-                             PyMac_GetRect, &r,
-                             &ovalWidth,
-                             &ovalHeight))
-               return NULL;
-       InvertRoundRect(&r,
-                       ovalWidth,
-                       ovalHeight);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *Qd_FillRoundRect(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Rect r;
-       short ovalWidth;
-       short ovalHeight;
-       Pattern *pat__in__;
-       int pat__in_len__;
-       if (!PyArg_ParseTuple(_args, "O&hhs#",
-                             PyMac_GetRect, &r,
-                             &ovalWidth,
-                             &ovalHeight,
-                             (char **)&pat__in__, &pat__in_len__))
-               return NULL;
-       if (pat__in_len__ != sizeof(Pattern))
-       {
-               PyErr_SetString(PyExc_TypeError, "buffer length should be sizeof(Pattern)");
-               goto pat__error__;
-       }
-       FillRoundRect(&r,
-                     ovalWidth,
-                     ovalHeight,
-                     pat__in__);
-       Py_INCREF(Py_None);
-       _res = Py_None;
- pat__error__: ;
-       return _res;
-}
-
-static PyObject *Qd_FrameArc(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Rect r;
-       short startAngle;
-       short arcAngle;
-       if (!PyArg_ParseTuple(_args, "O&hh",
-                             PyMac_GetRect, &r,
-                             &startAngle,
-                             &arcAngle))
-               return NULL;
-       FrameArc(&r,
-                startAngle,
-                arcAngle);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *Qd_PaintArc(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Rect r;
-       short startAngle;
-       short arcAngle;
-       if (!PyArg_ParseTuple(_args, "O&hh",
-                             PyMac_GetRect, &r,
-                             &startAngle,
-                             &arcAngle))
-               return NULL;
-       PaintArc(&r,
-                startAngle,
-                arcAngle);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *Qd_EraseArc(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Rect r;
-       short startAngle;
-       short arcAngle;
-       if (!PyArg_ParseTuple(_args, "O&hh",
-                             PyMac_GetRect, &r,
-                             &startAngle,
-                             &arcAngle))
-               return NULL;
-       EraseArc(&r,
-                startAngle,
-                arcAngle);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *Qd_InvertArc(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Rect r;
-       short startAngle;
-       short arcAngle;
-       if (!PyArg_ParseTuple(_args, "O&hh",
-                             PyMac_GetRect, &r,
-                             &startAngle,
-                             &arcAngle))
-               return NULL;
-       InvertArc(&r,
-                 startAngle,
-                 arcAngle);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *Qd_FillArc(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Rect r;
-       short startAngle;
-       short arcAngle;
-       Pattern *pat__in__;
-       int pat__in_len__;
-       if (!PyArg_ParseTuple(_args, "O&hhs#",
-                             PyMac_GetRect, &r,
-                             &startAngle,
-                             &arcAngle,
-                             (char **)&pat__in__, &pat__in_len__))
-               return NULL;
-       if (pat__in_len__ != sizeof(Pattern))
-       {
-               PyErr_SetString(PyExc_TypeError, "buffer length should be sizeof(Pattern)");
-               goto pat__error__;
-       }
-       FillArc(&r,
-               startAngle,
-               arcAngle,
-               pat__in__);
-       Py_INCREF(Py_None);
-       _res = Py_None;
- pat__error__: ;
-       return _res;
-}
-
-static PyObject *Qd_NewRgn(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       RgnHandle _rv;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _rv = NewRgn();
-       _res = Py_BuildValue("O&",
-                            ResObj_New, _rv);
-       return _res;
-}
-
-static PyObject *Qd_OpenRgn(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       OpenRgn();
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *Qd_CloseRgn(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       RgnHandle dstRgn;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             ResObj_Convert, &dstRgn))
-               return NULL;
-       CloseRgn(dstRgn);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *Qd_BitMapToRegion(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       RgnHandle region;
-       BitMapPtr bMap;
-       if (!PyArg_ParseTuple(_args, "O&O&",
-                             ResObj_Convert, &region,
-                             BMObj_Convert, &bMap))
-               return NULL;
-       _err = BitMapToRegion(region,
-                             bMap);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *Qd_DisposeRgn(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       RgnHandle rgn;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             ResObj_Convert, &rgn))
-               return NULL;
-       DisposeRgn(rgn);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *Qd_MacCopyRgn(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       RgnHandle srcRgn;
-       RgnHandle dstRgn;
-       if (!PyArg_ParseTuple(_args, "O&O&",
-                             ResObj_Convert, &srcRgn,
-                             ResObj_Convert, &dstRgn))
-               return NULL;
-       MacCopyRgn(srcRgn,
-                  dstRgn);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *Qd_SetEmptyRgn(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       RgnHandle rgn;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             ResObj_Convert, &rgn))
-               return NULL;
-       SetEmptyRgn(rgn);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *Qd_MacSetRectRgn(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       RgnHandle rgn;
-       short left;
-       short top;
-       short right;
-       short bottom;
-       if (!PyArg_ParseTuple(_args, "O&hhhh",
-                             ResObj_Convert, &rgn,
-                             &left,
-                             &top,
-                             &right,
-                             &bottom))
-               return NULL;
-       MacSetRectRgn(rgn,
-                     left,
-                     top,
-                     right,
-                     bottom);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *Qd_RectRgn(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       RgnHandle rgn;
-       Rect r;
-       if (!PyArg_ParseTuple(_args, "O&O&",
-                             ResObj_Convert, &rgn,
-                             PyMac_GetRect, &r))
-               return NULL;
-       RectRgn(rgn,
-               &r);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *Qd_MacOffsetRgn(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       RgnHandle rgn;
-       short dh;
-       short dv;
-       if (!PyArg_ParseTuple(_args, "O&hh",
-                             ResObj_Convert, &rgn,
-                             &dh,
-                             &dv))
-               return NULL;
-       MacOffsetRgn(rgn,
-                    dh,
-                    dv);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *Qd_InsetRgn(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       RgnHandle rgn;
-       short dh;
-       short dv;
-       if (!PyArg_ParseTuple(_args, "O&hh",
-                             ResObj_Convert, &rgn,
-                             &dh,
-                             &dv))
-               return NULL;
-       InsetRgn(rgn,
-                dh,
-                dv);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *Qd_SectRgn(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       RgnHandle srcRgnA;
-       RgnHandle srcRgnB;
-       RgnHandle dstRgn;
-       if (!PyArg_ParseTuple(_args, "O&O&O&",
-                             ResObj_Convert, &srcRgnA,
-                             ResObj_Convert, &srcRgnB,
-                             ResObj_Convert, &dstRgn))
-               return NULL;
-       SectRgn(srcRgnA,
-               srcRgnB,
-               dstRgn);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *Qd_MacUnionRgn(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       RgnHandle srcRgnA;
-       RgnHandle srcRgnB;
-       RgnHandle dstRgn;
-       if (!PyArg_ParseTuple(_args, "O&O&O&",
-                             ResObj_Convert, &srcRgnA,
-                             ResObj_Convert, &srcRgnB,
-                             ResObj_Convert, &dstRgn))
-               return NULL;
-       MacUnionRgn(srcRgnA,
-                   srcRgnB,
-                   dstRgn);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *Qd_DiffRgn(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       RgnHandle srcRgnA;
-       RgnHandle srcRgnB;
-       RgnHandle dstRgn;
-       if (!PyArg_ParseTuple(_args, "O&O&O&",
-                             ResObj_Convert, &srcRgnA,
-                             ResObj_Convert, &srcRgnB,
-                             ResObj_Convert, &dstRgn))
-               return NULL;
-       DiffRgn(srcRgnA,
-               srcRgnB,
-               dstRgn);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *Qd_MacXorRgn(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       RgnHandle srcRgnA;
-       RgnHandle srcRgnB;
-       RgnHandle dstRgn;
-       if (!PyArg_ParseTuple(_args, "O&O&O&",
-                             ResObj_Convert, &srcRgnA,
-                             ResObj_Convert, &srcRgnB,
-                             ResObj_Convert, &dstRgn))
-               return NULL;
-       MacXorRgn(srcRgnA,
-                 srcRgnB,
-                 dstRgn);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *Qd_RectInRgn(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Boolean _rv;
-       Rect r;
-       RgnHandle rgn;
-       if (!PyArg_ParseTuple(_args, "O&O&",
-                             PyMac_GetRect, &r,
-                             ResObj_Convert, &rgn))
-               return NULL;
-       _rv = RectInRgn(&r,
-                       rgn);
-       _res = Py_BuildValue("b",
-                            _rv);
-       return _res;
-}
-
-static PyObject *Qd_MacEqualRgn(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Boolean _rv;
-       RgnHandle rgnA;
-       RgnHandle rgnB;
-       if (!PyArg_ParseTuple(_args, "O&O&",
-                             ResObj_Convert, &rgnA,
-                             ResObj_Convert, &rgnB))
-               return NULL;
-       _rv = MacEqualRgn(rgnA,
-                         rgnB);
-       _res = Py_BuildValue("b",
-                            _rv);
-       return _res;
-}
-
-static PyObject *Qd_EmptyRgn(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Boolean _rv;
-       RgnHandle rgn;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             ResObj_Convert, &rgn))
-               return NULL;
-       _rv = EmptyRgn(rgn);
-       _res = Py_BuildValue("b",
-                            _rv);
-       return _res;
-}
-
-static PyObject *Qd_MacFrameRgn(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       RgnHandle rgn;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             ResObj_Convert, &rgn))
-               return NULL;
-       MacFrameRgn(rgn);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *Qd_MacPaintRgn(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       RgnHandle rgn;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             ResObj_Convert, &rgn))
-               return NULL;
-       MacPaintRgn(rgn);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *Qd_EraseRgn(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       RgnHandle rgn;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             ResObj_Convert, &rgn))
-               return NULL;
-       EraseRgn(rgn);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *Qd_MacInvertRgn(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       RgnHandle rgn;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             ResObj_Convert, &rgn))
-               return NULL;
-       MacInvertRgn(rgn);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *Qd_MacFillRgn(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       RgnHandle rgn;
-       Pattern *pat__in__;
-       int pat__in_len__;
-       if (!PyArg_ParseTuple(_args, "O&s#",
-                             ResObj_Convert, &rgn,
-                             (char **)&pat__in__, &pat__in_len__))
-               return NULL;
-       if (pat__in_len__ != sizeof(Pattern))
-       {
-               PyErr_SetString(PyExc_TypeError, "buffer length should be sizeof(Pattern)");
-               goto pat__error__;
-       }
-       MacFillRgn(rgn,
-                  pat__in__);
-       Py_INCREF(Py_None);
-       _res = Py_None;
- pat__error__: ;
-       return _res;
-}
-
-static PyObject *Qd_ScrollRect(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Rect r;
-       short dh;
-       short dv;
-       RgnHandle updateRgn;
-       if (!PyArg_ParseTuple(_args, "O&hhO&",
-                             PyMac_GetRect, &r,
-                             &dh,
-                             &dv,
-                             ResObj_Convert, &updateRgn))
-               return NULL;
-       ScrollRect(&r,
-                  dh,
-                  dv,
-                  updateRgn);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *Qd_CopyBits(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       BitMapPtr srcBits;
-       BitMapPtr dstBits;
-       Rect srcRect;
-       Rect dstRect;
-       short mode;
-       RgnHandle maskRgn;
-       if (!PyArg_ParseTuple(_args, "O&O&O&O&hO&",
-                             BMObj_Convert, &srcBits,
-                             BMObj_Convert, &dstBits,
-                             PyMac_GetRect, &srcRect,
-                             PyMac_GetRect, &dstRect,
-                             &mode,
-                             OptResObj_Convert, &maskRgn))
-               return NULL;
-       CopyBits(srcBits,
-                dstBits,
-                &srcRect,
-                &dstRect,
-                mode,
-                maskRgn);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *Qd_CopyMask(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       BitMapPtr srcBits;
-       BitMapPtr maskBits;
-       BitMapPtr dstBits;
-       Rect srcRect;
-       Rect maskRect;
-       Rect dstRect;
-       if (!PyArg_ParseTuple(_args, "O&O&O&O&O&O&",
-                             BMObj_Convert, &srcBits,
-                             BMObj_Convert, &maskBits,
-                             BMObj_Convert, &dstBits,
-                             PyMac_GetRect, &srcRect,
-                             PyMac_GetRect, &maskRect,
-                             PyMac_GetRect, &dstRect))
-               return NULL;
-       CopyMask(srcBits,
-                maskBits,
-                dstBits,
-                &srcRect,
-                &maskRect,
-                &dstRect);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *Qd_OpenPicture(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       PicHandle _rv;
-       Rect picFrame;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             PyMac_GetRect, &picFrame))
-               return NULL;
-       _rv = OpenPicture(&picFrame);
-       _res = Py_BuildValue("O&",
-                            ResObj_New, _rv);
-       return _res;
-}
-
-static PyObject *Qd_PicComment(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       short kind;
-       short dataSize;
-       Handle dataHandle;
-       if (!PyArg_ParseTuple(_args, "hhO&",
-                             &kind,
-                             &dataSize,
-                             ResObj_Convert, &dataHandle))
-               return NULL;
-       PicComment(kind,
-                  dataSize,
-                  dataHandle);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *Qd_ClosePicture(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       ClosePicture();
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *Qd_DrawPicture(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       PicHandle myPicture;
-       Rect dstRect;
-       if (!PyArg_ParseTuple(_args, "O&O&",
-                             ResObj_Convert, &myPicture,
-                             PyMac_GetRect, &dstRect))
-               return NULL;
-       DrawPicture(myPicture,
-                   &dstRect);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *Qd_KillPicture(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       PicHandle myPicture;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             ResObj_Convert, &myPicture))
-               return NULL;
-       KillPicture(myPicture);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *Qd_OpenPoly(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       PolyHandle _rv;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _rv = OpenPoly();
-       _res = Py_BuildValue("O&",
-                            ResObj_New, _rv);
-       return _res;
-}
-
-static PyObject *Qd_ClosePoly(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       ClosePoly();
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *Qd_KillPoly(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       PolyHandle poly;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             ResObj_Convert, &poly))
-               return NULL;
-       KillPoly(poly);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *Qd_OffsetPoly(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       PolyHandle poly;
-       short dh;
-       short dv;
-       if (!PyArg_ParseTuple(_args, "O&hh",
-                             ResObj_Convert, &poly,
-                             &dh,
-                             &dv))
-               return NULL;
-       OffsetPoly(poly,
-                  dh,
-                  dv);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *Qd_FramePoly(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       PolyHandle poly;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             ResObj_Convert, &poly))
-               return NULL;
-       FramePoly(poly);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *Qd_PaintPoly(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       PolyHandle poly;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             ResObj_Convert, &poly))
-               return NULL;
-       PaintPoly(poly);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *Qd_ErasePoly(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       PolyHandle poly;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             ResObj_Convert, &poly))
-               return NULL;
-       ErasePoly(poly);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *Qd_InvertPoly(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       PolyHandle poly;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             ResObj_Convert, &poly))
-               return NULL;
-       InvertPoly(poly);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *Qd_FillPoly(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       PolyHandle poly;
-       Pattern *pat__in__;
-       int pat__in_len__;
-       if (!PyArg_ParseTuple(_args, "O&s#",
-                             ResObj_Convert, &poly,
-                             (char **)&pat__in__, &pat__in_len__))
-               return NULL;
-       if (pat__in_len__ != sizeof(Pattern))
-       {
-               PyErr_SetString(PyExc_TypeError, "buffer length should be sizeof(Pattern)");
-               goto pat__error__;
-       }
-       FillPoly(poly,
-                pat__in__);
-       Py_INCREF(Py_None);
-       _res = Py_None;
- pat__error__: ;
-       return _res;
-}
-
-static PyObject *Qd_SetPt(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Point pt;
-       short h;
-       short v;
-       if (!PyArg_ParseTuple(_args, "hh",
-                             &h,
-                             &v))
-               return NULL;
-       SetPt(&pt,
-             h,
-             v);
-       _res = Py_BuildValue("O&",
-                            PyMac_BuildPoint, pt);
-       return _res;
-}
-
-static PyObject *Qd_LocalToGlobal(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Point pt;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             PyMac_GetPoint, &pt))
-               return NULL;
-       LocalToGlobal(&pt);
-       _res = Py_BuildValue("O&",
-                            PyMac_BuildPoint, pt);
-       return _res;
-}
-
-static PyObject *Qd_GlobalToLocal(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Point pt;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             PyMac_GetPoint, &pt))
-               return NULL;
-       GlobalToLocal(&pt);
-       _res = Py_BuildValue("O&",
-                            PyMac_BuildPoint, pt);
-       return _res;
-}
-
-static PyObject *Qd_Random(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       short _rv;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _rv = Random();
-       _res = Py_BuildValue("h",
-                            _rv);
-       return _res;
-}
-
-static PyObject *Qd_MacGetPixel(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Boolean _rv;
-       short h;
-       short v;
-       if (!PyArg_ParseTuple(_args, "hh",
-                             &h,
-                             &v))
-               return NULL;
-       _rv = MacGetPixel(h,
-                         v);
-       _res = Py_BuildValue("b",
-                            _rv);
-       return _res;
-}
-
-static PyObject *Qd_ScalePt(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Point pt;
-       Rect srcRect;
-       Rect dstRect;
-       if (!PyArg_ParseTuple(_args, "O&O&O&",
-                             PyMac_GetPoint, &pt,
-                             PyMac_GetRect, &srcRect,
-                             PyMac_GetRect, &dstRect))
-               return NULL;
-       ScalePt(&pt,
-               &srcRect,
-               &dstRect);
-       _res = Py_BuildValue("O&",
-                            PyMac_BuildPoint, pt);
-       return _res;
-}
-
-static PyObject *Qd_MapPt(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Point pt;
-       Rect srcRect;
-       Rect dstRect;
-       if (!PyArg_ParseTuple(_args, "O&O&O&",
-                             PyMac_GetPoint, &pt,
-                             PyMac_GetRect, &srcRect,
-                             PyMac_GetRect, &dstRect))
-               return NULL;
-       MapPt(&pt,
-             &srcRect,
-             &dstRect);
-       _res = Py_BuildValue("O&",
-                            PyMac_BuildPoint, pt);
-       return _res;
-}
-
-static PyObject *Qd_MapRect(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Rect r;
-       Rect srcRect;
-       Rect dstRect;
-       if (!PyArg_ParseTuple(_args, "O&O&O&",
-                             PyMac_GetRect, &r,
-                             PyMac_GetRect, &srcRect,
-                             PyMac_GetRect, &dstRect))
-               return NULL;
-       MapRect(&r,
-               &srcRect,
-               &dstRect);
-       _res = Py_BuildValue("O&",
-                            PyMac_BuildRect, &r);
-       return _res;
-}
-
-static PyObject *Qd_MapRgn(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       RgnHandle rgn;
-       Rect srcRect;
-       Rect dstRect;
-       if (!PyArg_ParseTuple(_args, "O&O&O&",
-                             ResObj_Convert, &rgn,
-                             PyMac_GetRect, &srcRect,
-                             PyMac_GetRect, &dstRect))
-               return NULL;
-       MapRgn(rgn,
-              &srcRect,
-              &dstRect);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *Qd_MapPoly(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       PolyHandle poly;
-       Rect srcRect;
-       Rect dstRect;
-       if (!PyArg_ParseTuple(_args, "O&O&O&",
-                             ResObj_Convert, &poly,
-                             PyMac_GetRect, &srcRect,
-                             PyMac_GetRect, &dstRect))
-               return NULL;
-       MapPoly(poly,
-               &srcRect,
-               &dstRect);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *Qd_StdBits(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       BitMapPtr srcBits;
-       Rect srcRect;
-       Rect dstRect;
-       short mode;
-       RgnHandle maskRgn;
-       if (!PyArg_ParseTuple(_args, "O&O&O&hO&",
-                             BMObj_Convert, &srcBits,
-                             PyMac_GetRect, &srcRect,
-                             PyMac_GetRect, &dstRect,
-                             &mode,
-                             OptResObj_Convert, &maskRgn))
-               return NULL;
-       StdBits(srcBits,
-               &srcRect,
-               &dstRect,
-               mode,
-               maskRgn);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *Qd_AddPt(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Point src;
-       Point dst;
-       if (!PyArg_ParseTuple(_args, "O&O&",
-                             PyMac_GetPoint, &src,
-                             PyMac_GetPoint, &dst))
-               return NULL;
-       AddPt(src,
-             &dst);
-       _res = Py_BuildValue("O&",
-                            PyMac_BuildPoint, dst);
-       return _res;
-}
-
-static PyObject *Qd_EqualPt(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Boolean _rv;
-       Point pt1;
-       Point pt2;
-       if (!PyArg_ParseTuple(_args, "O&O&",
-                             PyMac_GetPoint, &pt1,
-                             PyMac_GetPoint, &pt2))
-               return NULL;
-       _rv = EqualPt(pt1,
-                     pt2);
-       _res = Py_BuildValue("b",
-                            _rv);
-       return _res;
-}
-
-static PyObject *Qd_MacPtInRect(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Boolean _rv;
-       Point pt;
-       Rect r;
-       if (!PyArg_ParseTuple(_args, "O&O&",
-                             PyMac_GetPoint, &pt,
-                             PyMac_GetRect, &r))
-               return NULL;
-       _rv = MacPtInRect(pt,
-                         &r);
-       _res = Py_BuildValue("b",
-                            _rv);
-       return _res;
-}
-
-static PyObject *Qd_Pt2Rect(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Point pt1;
-       Point pt2;
-       Rect dstRect;
-       if (!PyArg_ParseTuple(_args, "O&O&",
-                             PyMac_GetPoint, &pt1,
-                             PyMac_GetPoint, &pt2))
-               return NULL;
-       Pt2Rect(pt1,
-               pt2,
-               &dstRect);
-       _res = Py_BuildValue("O&",
-                            PyMac_BuildRect, &dstRect);
-       return _res;
-}
-
-static PyObject *Qd_PtToAngle(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Rect r;
-       Point pt;
-       short angle;
-       if (!PyArg_ParseTuple(_args, "O&O&",
-                             PyMac_GetRect, &r,
-                             PyMac_GetPoint, &pt))
-               return NULL;
-       PtToAngle(&r,
-                 pt,
-                 &angle);
-       _res = Py_BuildValue("h",
-                            angle);
-       return _res;
-}
-
-static PyObject *Qd_SubPt(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Point src;
-       Point dst;
-       if (!PyArg_ParseTuple(_args, "O&O&",
-                             PyMac_GetPoint, &src,
-                             PyMac_GetPoint, &dst))
-               return NULL;
-       SubPt(src,
-             &dst);
-       _res = Py_BuildValue("O&",
-                            PyMac_BuildPoint, dst);
-       return _res;
-}
-
-static PyObject *Qd_PtInRgn(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Boolean _rv;
-       Point pt;
-       RgnHandle rgn;
-       if (!PyArg_ParseTuple(_args, "O&O&",
-                             PyMac_GetPoint, &pt,
-                             ResObj_Convert, &rgn))
-               return NULL;
-       _rv = PtInRgn(pt,
-                     rgn);
-       _res = Py_BuildValue("b",
-                            _rv);
-       return _res;
-}
-
-static PyObject *Qd_NewPixMap(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       PixMapHandle _rv;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _rv = NewPixMap();
-       _res = Py_BuildValue("O&",
-                            ResObj_New, _rv);
-       return _res;
-}
-
-static PyObject *Qd_DisposePixMap(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       PixMapHandle pm;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             ResObj_Convert, &pm))
-               return NULL;
-       DisposePixMap(pm);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *Qd_CopyPixMap(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       PixMapHandle srcPM;
-       PixMapHandle dstPM;
-       if (!PyArg_ParseTuple(_args, "O&O&",
-                             ResObj_Convert, &srcPM,
-                             ResObj_Convert, &dstPM))
-               return NULL;
-       CopyPixMap(srcPM,
-                  dstPM);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *Qd_NewPixPat(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       PixPatHandle _rv;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _rv = NewPixPat();
-       _res = Py_BuildValue("O&",
-                            ResObj_New, _rv);
-       return _res;
-}
-
-static PyObject *Qd_DisposePixPat(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       PixPatHandle pp;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             ResObj_Convert, &pp))
-               return NULL;
-       DisposePixPat(pp);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *Qd_CopyPixPat(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       PixPatHandle srcPP;
-       PixPatHandle dstPP;
-       if (!PyArg_ParseTuple(_args, "O&O&",
-                             ResObj_Convert, &srcPP,
-                             ResObj_Convert, &dstPP))
-               return NULL;
-       CopyPixPat(srcPP,
-                  dstPP);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *Qd_PenPixPat(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       PixPatHandle pp;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             ResObj_Convert, &pp))
-               return NULL;
-       PenPixPat(pp);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *Qd_BackPixPat(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       PixPatHandle pp;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             ResObj_Convert, &pp))
-               return NULL;
-       BackPixPat(pp);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *Qd_GetPixPat(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       PixPatHandle _rv;
-       short patID;
-       if (!PyArg_ParseTuple(_args, "h",
-                             &patID))
-               return NULL;
-       _rv = GetPixPat(patID);
-       _res = Py_BuildValue("O&",
-                            ResObj_New, _rv);
-       return _res;
-}
-
-static PyObject *Qd_MakeRGBPat(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       PixPatHandle pp;
-       RGBColor myColor;
-       if (!PyArg_ParseTuple(_args, "O&O&",
-                             ResObj_Convert, &pp,
-                             QdRGB_Convert, &myColor))
-               return NULL;
-       MakeRGBPat(pp,
-                  &myColor);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *Qd_FillCRect(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Rect r;
-       PixPatHandle pp;
-       if (!PyArg_ParseTuple(_args, "O&O&",
-                             PyMac_GetRect, &r,
-                             ResObj_Convert, &pp))
-               return NULL;
-       FillCRect(&r,
-                 pp);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *Qd_FillCOval(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Rect r;
-       PixPatHandle pp;
-       if (!PyArg_ParseTuple(_args, "O&O&",
-                             PyMac_GetRect, &r,
-                             ResObj_Convert, &pp))
-               return NULL;
-       FillCOval(&r,
-                 pp);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *Qd_FillCRoundRect(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Rect r;
-       short ovalWidth;
-       short ovalHeight;
-       PixPatHandle pp;
-       if (!PyArg_ParseTuple(_args, "O&hhO&",
-                             PyMac_GetRect, &r,
-                             &ovalWidth,
-                             &ovalHeight,
-                             ResObj_Convert, &pp))
-               return NULL;
-       FillCRoundRect(&r,
-                      ovalWidth,
-                      ovalHeight,
-                      pp);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *Qd_FillCArc(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Rect r;
-       short startAngle;
-       short arcAngle;
-       PixPatHandle pp;
-       if (!PyArg_ParseTuple(_args, "O&hhO&",
-                             PyMac_GetRect, &r,
-                             &startAngle,
-                             &arcAngle,
-                             ResObj_Convert, &pp))
-               return NULL;
-       FillCArc(&r,
-                startAngle,
-                arcAngle,
-                pp);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *Qd_FillCRgn(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       RgnHandle rgn;
-       PixPatHandle pp;
-       if (!PyArg_ParseTuple(_args, "O&O&",
-                             ResObj_Convert, &rgn,
-                             ResObj_Convert, &pp))
-               return NULL;
-       FillCRgn(rgn,
-                pp);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *Qd_FillCPoly(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       PolyHandle poly;
-       PixPatHandle pp;
-       if (!PyArg_ParseTuple(_args, "O&O&",
-                             ResObj_Convert, &poly,
-                             ResObj_Convert, &pp))
-               return NULL;
-       FillCPoly(poly,
-                 pp);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *Qd_RGBForeColor(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       RGBColor color;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             QdRGB_Convert, &color))
-               return NULL;
-       RGBForeColor(&color);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *Qd_RGBBackColor(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       RGBColor color;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             QdRGB_Convert, &color))
-               return NULL;
-       RGBBackColor(&color);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *Qd_SetCPixel(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       short h;
-       short v;
-       RGBColor cPix;
-       if (!PyArg_ParseTuple(_args, "hhO&",
-                             &h,
-                             &v,
-                             QdRGB_Convert, &cPix))
-               return NULL;
-       SetCPixel(h,
-                 v,
-                 &cPix);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *Qd_SetPortPix(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       PixMapHandle pm;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             ResObj_Convert, &pm))
-               return NULL;
-       SetPortPix(pm);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *Qd_GetCPixel(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       short h;
-       short v;
-       RGBColor cPix;
-       if (!PyArg_ParseTuple(_args, "hh",
-                             &h,
-                             &v))
-               return NULL;
-       GetCPixel(h,
-                 v,
-                 &cPix);
-       _res = Py_BuildValue("O&",
-                            QdRGB_New, &cPix);
-       return _res;
-}
-
-static PyObject *Qd_GetForeColor(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       RGBColor color;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       GetForeColor(&color);
-       _res = Py_BuildValue("O&",
-                            QdRGB_New, &color);
-       return _res;
-}
-
-static PyObject *Qd_GetBackColor(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       RGBColor color;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       GetBackColor(&color);
-       _res = Py_BuildValue("O&",
-                            QdRGB_New, &color);
-       return _res;
-}
-
-static PyObject *Qd_OpColor(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       RGBColor color;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             QdRGB_Convert, &color))
-               return NULL;
-       OpColor(&color);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *Qd_HiliteColor(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       RGBColor color;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             QdRGB_Convert, &color))
-               return NULL;
-       HiliteColor(&color);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *Qd_DisposeCTable(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       CTabHandle cTable;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             ResObj_Convert, &cTable))
-               return NULL;
-       DisposeCTable(cTable);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *Qd_GetCTable(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       CTabHandle _rv;
-       short ctID;
-       if (!PyArg_ParseTuple(_args, "h",
-                             &ctID))
-               return NULL;
-       _rv = GetCTable(ctID);
-       _res = Py_BuildValue("O&",
-                            ResObj_New, _rv);
-       return _res;
-}
-
-static PyObject *Qd_GetCCursor(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       CCrsrHandle _rv;
-       short crsrID;
-       if (!PyArg_ParseTuple(_args, "h",
-                             &crsrID))
-               return NULL;
-       _rv = GetCCursor(crsrID);
-       _res = Py_BuildValue("O&",
-                            ResObj_New, _rv);
-       return _res;
-}
-
-static PyObject *Qd_SetCCursor(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       CCrsrHandle cCrsr;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             ResObj_Convert, &cCrsr))
-               return NULL;
-       SetCCursor(cCrsr);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *Qd_AllocCursor(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       AllocCursor();
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *Qd_DisposeCCursor(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       CCrsrHandle cCrsr;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             ResObj_Convert, &cCrsr))
-               return NULL;
-       DisposeCCursor(cCrsr);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *Qd_GetMaxDevice(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       GDHandle _rv;
-       Rect globalRect;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             PyMac_GetRect, &globalRect))
-               return NULL;
-       _rv = GetMaxDevice(&globalRect);
-       _res = Py_BuildValue("O&",
-                            ResObj_New, _rv);
-       return _res;
-}
-
-static PyObject *Qd_GetCTSeed(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       long _rv;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _rv = GetCTSeed();
-       _res = Py_BuildValue("l",
-                            _rv);
-       return _res;
-}
-
-static PyObject *Qd_GetDeviceList(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       GDHandle _rv;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _rv = GetDeviceList();
-       _res = Py_BuildValue("O&",
-                            ResObj_New, _rv);
-       return _res;
-}
-
-static PyObject *Qd_GetMainDevice(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       GDHandle _rv;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _rv = GetMainDevice();
-       _res = Py_BuildValue("O&",
-                            ResObj_New, _rv);
-       return _res;
-}
-
-static PyObject *Qd_GetNextDevice(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       GDHandle _rv;
-       GDHandle curDevice;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             ResObj_Convert, &curDevice))
-               return NULL;
-       _rv = GetNextDevice(curDevice);
-       _res = Py_BuildValue("O&",
-                            ResObj_New, _rv);
-       return _res;
-}
-
-static PyObject *Qd_TestDeviceAttribute(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Boolean _rv;
-       GDHandle gdh;
-       short attribute;
-       if (!PyArg_ParseTuple(_args, "O&h",
-                             ResObj_Convert, &gdh,
-                             &attribute))
-               return NULL;
-       _rv = TestDeviceAttribute(gdh,
-                                 attribute);
-       _res = Py_BuildValue("b",
-                            _rv);
-       return _res;
-}
-
-static PyObject *Qd_SetDeviceAttribute(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       GDHandle gdh;
-       short attribute;
-       Boolean value;
-       if (!PyArg_ParseTuple(_args, "O&hb",
-                             ResObj_Convert, &gdh,
-                             &attribute,
-                             &value))
-               return NULL;
-       SetDeviceAttribute(gdh,
-                          attribute,
-                          value);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *Qd_InitGDevice(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       short qdRefNum;
-       long mode;
-       GDHandle gdh;
-       if (!PyArg_ParseTuple(_args, "hlO&",
-                             &qdRefNum,
-                             &mode,
-                             ResObj_Convert, &gdh))
-               return NULL;
-       InitGDevice(qdRefNum,
-                   mode,
-                   gdh);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *Qd_NewGDevice(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       GDHandle _rv;
-       short refNum;
-       long mode;
-       if (!PyArg_ParseTuple(_args, "hl",
-                             &refNum,
-                             &mode))
-               return NULL;
-       _rv = NewGDevice(refNum,
-                        mode);
-       _res = Py_BuildValue("O&",
-                            ResObj_New, _rv);
-       return _res;
-}
-
-static PyObject *Qd_DisposeGDevice(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       GDHandle gdh;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             ResObj_Convert, &gdh))
-               return NULL;
-       DisposeGDevice(gdh);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *Qd_SetGDevice(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       GDHandle gd;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             ResObj_Convert, &gd))
-               return NULL;
-       SetGDevice(gd);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *Qd_GetGDevice(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       GDHandle _rv;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _rv = GetGDevice();
-       _res = Py_BuildValue("O&",
-                            ResObj_New, _rv);
-       return _res;
-}
-
-static PyObject *Qd_Color2Index(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       long _rv;
-       RGBColor myColor;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             QdRGB_Convert, &myColor))
-               return NULL;
-       _rv = Color2Index(&myColor);
-       _res = Py_BuildValue("l",
-                            _rv);
-       return _res;
-}
-
-static PyObject *Qd_Index2Color(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       long index;
-       RGBColor aColor;
-       if (!PyArg_ParseTuple(_args, "l",
-                             &index))
-               return NULL;
-       Index2Color(index,
-                   &aColor);
-       _res = Py_BuildValue("O&",
-                            QdRGB_New, &aColor);
-       return _res;
-}
-
-static PyObject *Qd_InvertColor(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       RGBColor myColor;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       InvertColor(&myColor);
-       _res = Py_BuildValue("O&",
-                            QdRGB_New, &myColor);
-       return _res;
-}
-
-static PyObject *Qd_RealColor(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Boolean _rv;
-       RGBColor color;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             QdRGB_Convert, &color))
-               return NULL;
-       _rv = RealColor(&color);
-       _res = Py_BuildValue("b",
-                            _rv);
-       return _res;
-}
-
-static PyObject *Qd_GetSubTable(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       CTabHandle myColors;
-       short iTabRes;
-       CTabHandle targetTbl;
-       if (!PyArg_ParseTuple(_args, "O&hO&",
-                             ResObj_Convert, &myColors,
-                             &iTabRes,
-                             ResObj_Convert, &targetTbl))
-               return NULL;
-       GetSubTable(myColors,
-                   iTabRes,
-                   targetTbl);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *Qd_MakeITable(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       CTabHandle cTabH;
-       ITabHandle iTabH;
-       short res;
-       if (!PyArg_ParseTuple(_args, "O&O&h",
-                             ResObj_Convert, &cTabH,
-                             ResObj_Convert, &iTabH,
-                             &res))
-               return NULL;
-       MakeITable(cTabH,
-                  iTabH,
-                  res);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *Qd_SetClientID(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       short id;
-       if (!PyArg_ParseTuple(_args, "h",
-                             &id))
-               return NULL;
-       SetClientID(id);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *Qd_ProtectEntry(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       short index;
-       Boolean protect;
-       if (!PyArg_ParseTuple(_args, "hb",
-                             &index,
-                             &protect))
-               return NULL;
-       ProtectEntry(index,
-                    protect);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *Qd_ReserveEntry(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       short index;
-       Boolean reserve;
-       if (!PyArg_ParseTuple(_args, "hb",
-                             &index,
-                             &reserve))
-               return NULL;
-       ReserveEntry(index,
-                    reserve);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *Qd_QDError(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       short _rv;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _rv = QDError();
-       _res = Py_BuildValue("h",
-                            _rv);
-       return _res;
-}
-
-static PyObject *Qd_CopyDeepMask(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       BitMapPtr srcBits;
-       BitMapPtr maskBits;
-       BitMapPtr dstBits;
-       Rect srcRect;
-       Rect maskRect;
-       Rect dstRect;
-       short mode;
-       RgnHandle maskRgn;
-       if (!PyArg_ParseTuple(_args, "O&O&O&O&O&O&hO&",
-                             BMObj_Convert, &srcBits,
-                             BMObj_Convert, &maskBits,
-                             BMObj_Convert, &dstBits,
-                             PyMac_GetRect, &srcRect,
-                             PyMac_GetRect, &maskRect,
-                             PyMac_GetRect, &dstRect,
-                             &mode,
-                             OptResObj_Convert, &maskRgn))
-               return NULL;
-       CopyDeepMask(srcBits,
-                    maskBits,
-                    dstBits,
-                    &srcRect,
-                    &maskRect,
-                    &dstRect,
-                    mode,
-                    maskRgn);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *Qd_GetPattern(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       PatHandle _rv;
-       short patternID;
-       if (!PyArg_ParseTuple(_args, "h",
-                             &patternID))
-               return NULL;
-       _rv = GetPattern(patternID);
-       _res = Py_BuildValue("O&",
-                            ResObj_New, _rv);
-       return _res;
-}
-
-static PyObject *Qd_MacGetCursor(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       CursHandle _rv;
-       short cursorID;
-       if (!PyArg_ParseTuple(_args, "h",
-                             &cursorID))
-               return NULL;
-       _rv = MacGetCursor(cursorID);
-       _res = Py_BuildValue("O&",
-                            ResObj_New, _rv);
-       return _res;
-}
-
-static PyObject *Qd_GetPicture(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       PicHandle _rv;
-       short pictureID;
-       if (!PyArg_ParseTuple(_args, "h",
-                             &pictureID))
-               return NULL;
-       _rv = GetPicture(pictureID);
-       _res = Py_BuildValue("O&",
-                            ResObj_New, _rv);
-       return _res;
-}
-
-static PyObject *Qd_DeltaPoint(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       long _rv;
-       Point ptA;
-       Point ptB;
-       if (!PyArg_ParseTuple(_args, "O&O&",
-                             PyMac_GetPoint, &ptA,
-                             PyMac_GetPoint, &ptB))
-               return NULL;
-       _rv = DeltaPoint(ptA,
-                        ptB);
-       _res = Py_BuildValue("l",
-                            _rv);
-       return _res;
-}
-
-static PyObject *Qd_ShieldCursor(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Rect shieldRect;
-       Point offsetPt;
-       if (!PyArg_ParseTuple(_args, "O&O&",
-                             PyMac_GetRect, &shieldRect,
-                             PyMac_GetPoint, &offsetPt))
-               return NULL;
-       ShieldCursor(&shieldRect,
-                    offsetPt);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *Qd_ScreenRes(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       short scrnHRes;
-       short scrnVRes;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       ScreenRes(&scrnHRes,
-                 &scrnVRes);
-       _res = Py_BuildValue("hh",
-                            scrnHRes,
-                            scrnVRes);
-       return _res;
-}
-
-static PyObject *Qd_GetIndPattern(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Pattern thePat__out__;
-       short patternListID;
-       short index;
-       if (!PyArg_ParseTuple(_args, "hh",
-                             &patternListID,
-                             &index))
-               return NULL;
-       GetIndPattern(&thePat__out__,
-                     patternListID,
-                     index);
-       _res = Py_BuildValue("s#",
-                            (char *)&thePat__out__, (int)sizeof(Pattern));
- thePat__error__: ;
-       return _res;
-}
-
-static PyObject *Qd_SlopeFromAngle(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Fixed _rv;
-       short angle;
-       if (!PyArg_ParseTuple(_args, "h",
-                             &angle))
-               return NULL;
-       _rv = SlopeFromAngle(angle);
-       _res = Py_BuildValue("O&",
-                            PyMac_BuildFixed, _rv);
-       return _res;
-}
-
-static PyObject *Qd_AngleFromSlope(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       short _rv;
-       Fixed slope;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             PyMac_GetFixed, &slope))
-               return NULL;
-       _rv = AngleFromSlope(slope);
-       _res = Py_BuildValue("h",
-                            _rv);
-       return _res;
-}
-
-static PyObject *Qd_GetPortPixMap(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       PixMapHandle _rv;
-       CGrafPtr port;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             GrafObj_Convert, &port))
-               return NULL;
-       _rv = GetPortPixMap(port);
-       _res = Py_BuildValue("O&",
-                            ResObj_New, _rv);
-       return _res;
-}
-
-static PyObject *Qd_GetPortBitMapForCopyBits(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       const BitMap * _rv;
-       CGrafPtr port;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             GrafObj_Convert, &port))
-               return NULL;
-       _rv = GetPortBitMapForCopyBits(port);
-       _res = Py_BuildValue("O&",
-                            BMObj_New, _rv);
-       return _res;
-}
-
-static PyObject *Qd_GetPortBounds(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       CGrafPtr port;
-       Rect rect;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             GrafObj_Convert, &port))
-               return NULL;
-       GetPortBounds(port,
-                     &rect);
-       _res = Py_BuildValue("O&",
-                            PyMac_BuildRect, &rect);
-       return _res;
-}
-
-static PyObject *Qd_GetPortForeColor(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       CGrafPtr port;
-       RGBColor foreColor;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             GrafObj_Convert, &port))
-               return NULL;
-       GetPortForeColor(port,
-                        &foreColor);
-       _res = Py_BuildValue("O&",
-                            QdRGB_New, &foreColor);
-       return _res;
-}
-
-static PyObject *Qd_GetPortBackColor(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       CGrafPtr port;
-       RGBColor backColor;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             GrafObj_Convert, &port))
-               return NULL;
-       GetPortBackColor(port,
-                        &backColor);
-       _res = Py_BuildValue("O&",
-                            QdRGB_New, &backColor);
-       return _res;
-}
-
-static PyObject *Qd_GetPortOpColor(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       CGrafPtr port;
-       RGBColor opColor;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             GrafObj_Convert, &port))
-               return NULL;
-       GetPortOpColor(port,
-                      &opColor);
-       _res = Py_BuildValue("O&",
-                            QdRGB_New, &opColor);
-       return _res;
-}
-
-static PyObject *Qd_GetPortHiliteColor(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       CGrafPtr port;
-       RGBColor hiliteColor;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             GrafObj_Convert, &port))
-               return NULL;
-       GetPortHiliteColor(port,
-                          &hiliteColor);
-       _res = Py_BuildValue("O&",
-                            QdRGB_New, &hiliteColor);
-       return _res;
-}
-
-static PyObject *Qd_GetPortTextFont(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       short _rv;
-       CGrafPtr port;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             GrafObj_Convert, &port))
-               return NULL;
-       _rv = GetPortTextFont(port);
-       _res = Py_BuildValue("h",
-                            _rv);
-       return _res;
-}
-
-static PyObject *Qd_GetPortTextFace(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Style _rv;
-       CGrafPtr port;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             GrafObj_Convert, &port))
-               return NULL;
-       _rv = GetPortTextFace(port);
-       _res = Py_BuildValue("b",
-                            _rv);
-       return _res;
-}
-
-static PyObject *Qd_GetPortTextMode(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       short _rv;
-       CGrafPtr port;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             GrafObj_Convert, &port))
-               return NULL;
-       _rv = GetPortTextMode(port);
-       _res = Py_BuildValue("h",
-                            _rv);
-       return _res;
-}
-
-static PyObject *Qd_GetPortTextSize(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       short _rv;
-       CGrafPtr port;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             GrafObj_Convert, &port))
-               return NULL;
-       _rv = GetPortTextSize(port);
-       _res = Py_BuildValue("h",
-                            _rv);
-       return _res;
-}
-
-static PyObject *Qd_GetPortChExtra(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       short _rv;
-       CGrafPtr port;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             GrafObj_Convert, &port))
-               return NULL;
-       _rv = GetPortChExtra(port);
-       _res = Py_BuildValue("h",
-                            _rv);
-       return _res;
-}
-
-static PyObject *Qd_GetPortFracHPenLocation(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       short _rv;
-       CGrafPtr port;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             GrafObj_Convert, &port))
-               return NULL;
-       _rv = GetPortFracHPenLocation(port);
-       _res = Py_BuildValue("h",
-                            _rv);
-       return _res;
-}
-
-static PyObject *Qd_GetPortSpExtra(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Fixed _rv;
-       CGrafPtr port;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             GrafObj_Convert, &port))
-               return NULL;
-       _rv = GetPortSpExtra(port);
-       _res = Py_BuildValue("O&",
-                            PyMac_BuildFixed, _rv);
-       return _res;
-}
-
-static PyObject *Qd_GetPortPenVisibility(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       short _rv;
-       CGrafPtr port;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             GrafObj_Convert, &port))
-               return NULL;
-       _rv = GetPortPenVisibility(port);
-       _res = Py_BuildValue("h",
-                            _rv);
-       return _res;
-}
-
-static PyObject *Qd_GetPortVisibleRegion(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       RgnHandle _rv;
-       CGrafPtr port;
-       RgnHandle visRgn;
-       if (!PyArg_ParseTuple(_args, "O&O&",
-                             GrafObj_Convert, &port,
-                             ResObj_Convert, &visRgn))
-               return NULL;
-       _rv = GetPortVisibleRegion(port,
-                                  visRgn);
-       _res = Py_BuildValue("O&",
-                            ResObj_New, _rv);
-       return _res;
-}
-
-static PyObject *Qd_GetPortClipRegion(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       RgnHandle _rv;
-       CGrafPtr port;
-       RgnHandle clipRgn;
-       if (!PyArg_ParseTuple(_args, "O&O&",
-                             GrafObj_Convert, &port,
-                             ResObj_Convert, &clipRgn))
-               return NULL;
-       _rv = GetPortClipRegion(port,
-                               clipRgn);
-       _res = Py_BuildValue("O&",
-                            ResObj_New, _rv);
-       return _res;
-}
-
-static PyObject *Qd_GetPortBackPixPat(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       PixPatHandle _rv;
-       CGrafPtr port;
-       PixPatHandle backPattern;
-       if (!PyArg_ParseTuple(_args, "O&O&",
-                             GrafObj_Convert, &port,
-                             ResObj_Convert, &backPattern))
-               return NULL;
-       _rv = GetPortBackPixPat(port,
-                               backPattern);
-       _res = Py_BuildValue("O&",
-                            ResObj_New, _rv);
-       return _res;
-}
-
-static PyObject *Qd_GetPortPenPixPat(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       PixPatHandle _rv;
-       CGrafPtr port;
-       PixPatHandle penPattern;
-       if (!PyArg_ParseTuple(_args, "O&O&",
-                             GrafObj_Convert, &port,
-                             ResObj_Convert, &penPattern))
-               return NULL;
-       _rv = GetPortPenPixPat(port,
-                              penPattern);
-       _res = Py_BuildValue("O&",
-                            ResObj_New, _rv);
-       return _res;
-}
-
-static PyObject *Qd_GetPortFillPixPat(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       PixPatHandle _rv;
-       CGrafPtr port;
-       PixPatHandle fillPattern;
-       if (!PyArg_ParseTuple(_args, "O&O&",
-                             GrafObj_Convert, &port,
-                             ResObj_Convert, &fillPattern))
-               return NULL;
-       _rv = GetPortFillPixPat(port,
-                               fillPattern);
-       _res = Py_BuildValue("O&",
-                            ResObj_New, _rv);
-       return _res;
-}
-
-static PyObject *Qd_GetPortPenSize(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       CGrafPtr port;
-       Point penSize;
-       if (!PyArg_ParseTuple(_args, "O&O&",
-                             GrafObj_Convert, &port,
-                             PyMac_GetPoint, &penSize))
-               return NULL;
-       GetPortPenSize(port,
-                      &penSize);
-       _res = Py_BuildValue("O&",
-                            PyMac_BuildPoint, penSize);
-       return _res;
-}
-
-static PyObject *Qd_GetPortPenMode(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       SInt32 _rv;
-       CGrafPtr port;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             GrafObj_Convert, &port))
-               return NULL;
-       _rv = GetPortPenMode(port);
-       _res = Py_BuildValue("l",
-                            _rv);
-       return _res;
-}
-
-static PyObject *Qd_GetPortPenLocation(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       CGrafPtr port;
-       Point penLocation;
-       if (!PyArg_ParseTuple(_args, "O&O&",
-                             GrafObj_Convert, &port,
-                             PyMac_GetPoint, &penLocation))
-               return NULL;
-       GetPortPenLocation(port,
-                          &penLocation);
-       _res = Py_BuildValue("O&",
-                            PyMac_BuildPoint, penLocation);
-       return _res;
-}
-
-static PyObject *Qd_IsPortRegionBeingDefined(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Boolean _rv;
-       CGrafPtr port;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             GrafObj_Convert, &port))
-               return NULL;
-       _rv = IsPortRegionBeingDefined(port);
-       _res = Py_BuildValue("b",
-                            _rv);
-       return _res;
-}
-
-static PyObject *Qd_IsPortPictureBeingDefined(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Boolean _rv;
-       CGrafPtr port;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             GrafObj_Convert, &port))
-               return NULL;
-       _rv = IsPortPictureBeingDefined(port);
-       _res = Py_BuildValue("b",
-                            _rv);
-       return _res;
-}
-
-#if TARGET_API_MAC_CARBON
-
-static PyObject *Qd_IsPortOffscreen(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Boolean _rv;
-       CGrafPtr port;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             GrafObj_Convert, &port))
-               return NULL;
-       _rv = IsPortOffscreen(port);
-       _res = Py_BuildValue("b",
-                            _rv);
-       return _res;
-}
-#endif
-
-#if TARGET_API_MAC_CARBON
-
-static PyObject *Qd_IsPortColor(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Boolean _rv;
-       CGrafPtr port;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             GrafObj_Convert, &port))
-               return NULL;
-       _rv = IsPortColor(port);
-       _res = Py_BuildValue("b",
-                            _rv);
-       return _res;
-}
-#endif
-
-static PyObject *Qd_SetPortBounds(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       CGrafPtr port;
-       Rect rect;
-       if (!PyArg_ParseTuple(_args, "O&O&",
-                             GrafObj_Convert, &port,
-                             PyMac_GetRect, &rect))
-               return NULL;
-       SetPortBounds(port,
-                     &rect);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *Qd_SetPortOpColor(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       CGrafPtr port;
-       RGBColor opColor;
-       if (!PyArg_ParseTuple(_args, "O&O&",
-                             GrafObj_Convert, &port,
-                             QdRGB_Convert, &opColor))
-               return NULL;
-       SetPortOpColor(port,
-                      &opColor);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *Qd_SetPortVisibleRegion(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       CGrafPtr port;
-       RgnHandle visRgn;
-       if (!PyArg_ParseTuple(_args, "O&O&",
-                             GrafObj_Convert, &port,
-                             ResObj_Convert, &visRgn))
-               return NULL;
-       SetPortVisibleRegion(port,
-                            visRgn);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *Qd_SetPortClipRegion(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       CGrafPtr port;
-       RgnHandle clipRgn;
-       if (!PyArg_ParseTuple(_args, "O&O&",
-                             GrafObj_Convert, &port,
-                             ResObj_Convert, &clipRgn))
-               return NULL;
-       SetPortClipRegion(port,
-                         clipRgn);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *Qd_SetPortPenPixPat(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       CGrafPtr port;
-       PixPatHandle penPattern;
-       if (!PyArg_ParseTuple(_args, "O&O&",
-                             GrafObj_Convert, &port,
-                             ResObj_Convert, &penPattern))
-               return NULL;
-       SetPortPenPixPat(port,
-                        penPattern);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *Qd_SetPortBackPixPat(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       CGrafPtr port;
-       PixPatHandle backPattern;
-       if (!PyArg_ParseTuple(_args, "O&O&",
-                             GrafObj_Convert, &port,
-                             ResObj_Convert, &backPattern))
-               return NULL;
-       SetPortBackPixPat(port,
-                         backPattern);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *Qd_SetPortPenSize(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       CGrafPtr port;
-       Point penSize;
-       if (!PyArg_ParseTuple(_args, "O&O&",
-                             GrafObj_Convert, &port,
-                             PyMac_GetPoint, &penSize))
-               return NULL;
-       SetPortPenSize(port,
-                      penSize);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *Qd_SetPortPenMode(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       CGrafPtr port;
-       SInt32 penMode;
-       if (!PyArg_ParseTuple(_args, "O&l",
-                             GrafObj_Convert, &port,
-                             &penMode))
-               return NULL;
-       SetPortPenMode(port,
-                      penMode);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *Qd_SetPortFracHPenLocation(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       CGrafPtr port;
-       short pnLocHFrac;
-       if (!PyArg_ParseTuple(_args, "O&h",
-                             GrafObj_Convert, &port,
-                             &pnLocHFrac))
-               return NULL;
-       SetPortFracHPenLocation(port,
-                               pnLocHFrac);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *Qd_GetPixBounds(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       PixMapHandle pixMap;
-       Rect bounds;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             ResObj_Convert, &pixMap))
-               return NULL;
-       GetPixBounds(pixMap,
-                    &bounds);
-       _res = Py_BuildValue("O&",
-                            PyMac_BuildRect, &bounds);
-       return _res;
-}
-
-static PyObject *Qd_GetPixDepth(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       short _rv;
-       PixMapHandle pixMap;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             ResObj_Convert, &pixMap))
-               return NULL;
-       _rv = GetPixDepth(pixMap);
-       _res = Py_BuildValue("h",
-                            _rv);
-       return _res;
-}
-
-static PyObject *Qd_GetQDGlobalsRandomSeed(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       long _rv;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _rv = GetQDGlobalsRandomSeed();
-       _res = Py_BuildValue("l",
-                            _rv);
-       return _res;
-}
-
-static PyObject *Qd_GetQDGlobalsScreenBits(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       BitMap screenBits;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       GetQDGlobalsScreenBits(&screenBits);
-       _res = Py_BuildValue("O&",
-                            BMObj_NewCopied, &screenBits);
-       return _res;
-}
-
-static PyObject *Qd_GetQDGlobalsArrow(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Cursor arrow__out__;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       GetQDGlobalsArrow(&arrow__out__);
-       _res = Py_BuildValue("s#",
-                            (char *)&arrow__out__, (int)sizeof(Cursor));
- arrow__error__: ;
-       return _res;
-}
-
-static PyObject *Qd_GetQDGlobalsDarkGray(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Pattern dkGray__out__;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       GetQDGlobalsDarkGray(&dkGray__out__);
-       _res = Py_BuildValue("s#",
-                            (char *)&dkGray__out__, (int)sizeof(Pattern));
- dkGray__error__: ;
-       return _res;
-}
-
-static PyObject *Qd_GetQDGlobalsLightGray(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Pattern ltGray__out__;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       GetQDGlobalsLightGray(&ltGray__out__);
-       _res = Py_BuildValue("s#",
-                            (char *)&ltGray__out__, (int)sizeof(Pattern));
- ltGray__error__: ;
-       return _res;
-}
-
-static PyObject *Qd_GetQDGlobalsGray(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Pattern gray__out__;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       GetQDGlobalsGray(&gray__out__);
-       _res = Py_BuildValue("s#",
-                            (char *)&gray__out__, (int)sizeof(Pattern));
- gray__error__: ;
-       return _res;
-}
-
-static PyObject *Qd_GetQDGlobalsBlack(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Pattern black__out__;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       GetQDGlobalsBlack(&black__out__);
-       _res = Py_BuildValue("s#",
-                            (char *)&black__out__, (int)sizeof(Pattern));
- black__error__: ;
-       return _res;
-}
-
-static PyObject *Qd_GetQDGlobalsWhite(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Pattern white__out__;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       GetQDGlobalsWhite(&white__out__);
-       _res = Py_BuildValue("s#",
-                            (char *)&white__out__, (int)sizeof(Pattern));
- white__error__: ;
-       return _res;
-}
-
-static PyObject *Qd_GetQDGlobalsThePort(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       CGrafPtr _rv;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _rv = GetQDGlobalsThePort();
-       _res = Py_BuildValue("O&",
-                            GrafObj_New, _rv);
-       return _res;
-}
-
-static PyObject *Qd_SetQDGlobalsRandomSeed(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       long randomSeed;
-       if (!PyArg_ParseTuple(_args, "l",
-                             &randomSeed))
-               return NULL;
-       SetQDGlobalsRandomSeed(randomSeed);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *Qd_SetQDGlobalsArrow(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Cursor *arrow__in__;
-       int arrow__in_len__;
-       if (!PyArg_ParseTuple(_args, "s#",
-                             (char **)&arrow__in__, &arrow__in_len__))
-               return NULL;
-       if (arrow__in_len__ != sizeof(Cursor))
-       {
-               PyErr_SetString(PyExc_TypeError, "buffer length should be sizeof(Cursor)");
-               goto arrow__error__;
-       }
-       SetQDGlobalsArrow(arrow__in__);
-       Py_INCREF(Py_None);
-       _res = Py_None;
- arrow__error__: ;
-       return _res;
-}
-
-static PyObject *Qd_GetRegionBounds(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       RgnHandle region;
-       Rect bounds;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             ResObj_Convert, &region))
-               return NULL;
-       GetRegionBounds(region,
-                       &bounds);
-       _res = Py_BuildValue("O&",
-                            PyMac_BuildRect, &bounds);
-       return _res;
-}
-
-#if TARGET_API_MAC_CARBON
-
-static PyObject *Qd_IsRegionRectangular(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Boolean _rv;
-       RgnHandle region;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             ResObj_Convert, &region))
-               return NULL;
-       _rv = IsRegionRectangular(region);
-       _res = Py_BuildValue("b",
-                            _rv);
-       return _res;
-}
-#endif
-
-#if TARGET_API_MAC_CARBON
-
-static PyObject *Qd_CreateNewPort(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       CGrafPtr _rv;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _rv = CreateNewPort();
-       _res = Py_BuildValue("O&",
-                            GrafObj_New, _rv);
-       return _res;
-}
-#endif
-
-#if TARGET_API_MAC_CARBON
-
-static PyObject *Qd_DisposePort(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       CGrafPtr port;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             GrafObj_Convert, &port))
-               return NULL;
-       DisposePort(port);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-#endif
-
-#if TARGET_API_MAC_CARBON
-
-static PyObject *Qd_SetQDError(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr err;
-       if (!PyArg_ParseTuple(_args, "h",
-                             &err))
-               return NULL;
-       SetQDError(err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-#endif
-
-static PyObject *Qd_QDIsPortBuffered(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Boolean _rv;
-       CGrafPtr port;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             GrafObj_Convert, &port))
-               return NULL;
-       _rv = QDIsPortBuffered(port);
-       _res = Py_BuildValue("b",
-                            _rv);
-       return _res;
-}
-
-static PyObject *Qd_QDIsPortBufferDirty(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Boolean _rv;
-       CGrafPtr port;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             GrafObj_Convert, &port))
-               return NULL;
-       _rv = QDIsPortBufferDirty(port);
-       _res = Py_BuildValue("b",
-                            _rv);
-       return _res;
-}
-
-static PyObject *Qd_QDFlushPortBuffer(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       CGrafPtr port;
-       RgnHandle region;
-       if (!PyArg_ParseTuple(_args, "O&O&",
-                             GrafObj_Convert, &port,
-                             OptResObj_Convert, &region))
-               return NULL;
-       QDFlushPortBuffer(port,
-                         region);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *Qd_TextFont(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       short font;
-       if (!PyArg_ParseTuple(_args, "h",
-                             &font))
-               return NULL;
-       TextFont(font);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *Qd_TextFace(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       StyleParameter face;
-       if (!PyArg_ParseTuple(_args, "h",
-                             &face))
-               return NULL;
-       TextFace(face);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *Qd_TextMode(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       short mode;
-       if (!PyArg_ParseTuple(_args, "h",
-                             &mode))
-               return NULL;
-       TextMode(mode);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *Qd_TextSize(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       short size;
-       if (!PyArg_ParseTuple(_args, "h",
-                             &size))
-               return NULL;
-       TextSize(size);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *Qd_SpaceExtra(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Fixed extra;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             PyMac_GetFixed, &extra))
-               return NULL;
-       SpaceExtra(extra);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *Qd_DrawChar(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       CharParameter ch;
-       if (!PyArg_ParseTuple(_args, "h",
-                             &ch))
-               return NULL;
-       DrawChar(ch);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *Qd_DrawString(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Str255 s;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             PyMac_GetStr255, s))
-               return NULL;
-       DrawString(s);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *Qd_MacDrawText(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       char *textBuf__in__;
-       int textBuf__len__;
-       int textBuf__in_len__;
-       short firstByte;
-       short byteCount;
-       if (!PyArg_ParseTuple(_args, "s#hh",
-                             &textBuf__in__, &textBuf__in_len__,
-                             &firstByte,
-                             &byteCount))
-               return NULL;
-       MacDrawText(textBuf__in__,
-                   firstByte,
-                   byteCount);
-       Py_INCREF(Py_None);
-       _res = Py_None;
- textBuf__error__: ;
-       return _res;
-}
-
-static PyObject *Qd_CharWidth(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       short _rv;
-       CharParameter ch;
-       if (!PyArg_ParseTuple(_args, "h",
-                             &ch))
-               return NULL;
-       _rv = CharWidth(ch);
-       _res = Py_BuildValue("h",
-                            _rv);
-       return _res;
-}
-
-static PyObject *Qd_StringWidth(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       short _rv;
-       Str255 s;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             PyMac_GetStr255, s))
-               return NULL;
-       _rv = StringWidth(s);
-       _res = Py_BuildValue("h",
-                            _rv);
-       return _res;
-}
-
-static PyObject *Qd_TextWidth(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       short _rv;
-       char *textBuf__in__;
-       int textBuf__len__;
-       int textBuf__in_len__;
-       short firstByte;
-       short byteCount;
-       if (!PyArg_ParseTuple(_args, "s#hh",
-                             &textBuf__in__, &textBuf__in_len__,
-                             &firstByte,
-                             &byteCount))
-               return NULL;
-       _rv = TextWidth(textBuf__in__,
-                       firstByte,
-                       byteCount);
-       _res = Py_BuildValue("h",
-                            _rv);
- textBuf__error__: ;
-       return _res;
-}
-
-static PyObject *Qd_GetFontInfo(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       FontInfo info;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       GetFontInfo(&info);
-       _res = Py_BuildValue("O&",
-                            QdFI_New, &info);
-       return _res;
-}
-
-static PyObject *Qd_CharExtra(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Fixed extra;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             PyMac_GetFixed, &extra))
-               return NULL;
-       CharExtra(extra);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *Qd_SetPort(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       GrafPtr thePort;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             GrafObj_Convert, &thePort))
-               return NULL;
-       SetPort(thePort);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *Qd_GetCursor(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       CursHandle _rv;
-       short cursorID;
-       if (!PyArg_ParseTuple(_args, "h",
-                             &cursorID))
-               return NULL;
-       _rv = GetCursor(cursorID);
-       _res = Py_BuildValue("O&",
-                            ResObj_New, _rv);
-       return _res;
-}
-
-static PyObject *Qd_SetCursor(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Cursor *crsr__in__;
-       int crsr__in_len__;
-       if (!PyArg_ParseTuple(_args, "s#",
-                             (char **)&crsr__in__, &crsr__in_len__))
-               return NULL;
-       if (crsr__in_len__ != sizeof(Cursor))
-       {
-               PyErr_SetString(PyExc_TypeError, "buffer length should be sizeof(Cursor)");
-               goto crsr__error__;
-       }
-       SetCursor(crsr__in__);
-       Py_INCREF(Py_None);
-       _res = Py_None;
- crsr__error__: ;
-       return _res;
-}
-
-static PyObject *Qd_ShowCursor(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       ShowCursor();
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *Qd_LineTo(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       short h;
-       short v;
-       if (!PyArg_ParseTuple(_args, "hh",
-                             &h,
-                             &v))
-               return NULL;
-       LineTo(h,
-              v);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *Qd_SetRect(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Rect r;
-       short left;
-       short top;
-       short right;
-       short bottom;
-       if (!PyArg_ParseTuple(_args, "hhhh",
-                             &left,
-                             &top,
-                             &right,
-                             &bottom))
-               return NULL;
-       SetRect(&r,
-               left,
-               top,
-               right,
-               bottom);
-       _res = Py_BuildValue("O&",
-                            PyMac_BuildRect, &r);
-       return _res;
-}
-
-static PyObject *Qd_OffsetRect(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Rect r;
-       short dh;
-       short dv;
-       if (!PyArg_ParseTuple(_args, "O&hh",
-                             PyMac_GetRect, &r,
-                             &dh,
-                             &dv))
-               return NULL;
-       OffsetRect(&r,
-                  dh,
-                  dv);
-       _res = Py_BuildValue("O&",
-                            PyMac_BuildRect, &r);
-       return _res;
-}
-
-static PyObject *Qd_InsetRect(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Rect r;
-       short dh;
-       short dv;
-       if (!PyArg_ParseTuple(_args, "O&hh",
-                             PyMac_GetRect, &r,
-                             &dh,
-                             &dv))
-               return NULL;
-       InsetRect(&r,
-                 dh,
-                 dv);
-       _res = Py_BuildValue("O&",
-                            PyMac_BuildRect, &r);
-       return _res;
-}
-
-static PyObject *Qd_UnionRect(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Rect src1;
-       Rect src2;
-       Rect dstRect;
-       if (!PyArg_ParseTuple(_args, "O&O&",
-                             PyMac_GetRect, &src1,
-                             PyMac_GetRect, &src2))
-               return NULL;
-       UnionRect(&src1,
-                 &src2,
-                 &dstRect);
-       _res = Py_BuildValue("O&",
-                            PyMac_BuildRect, &dstRect);
-       return _res;
-}
-
-static PyObject *Qd_EqualRect(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Boolean _rv;
-       Rect rect1;
-       Rect rect2;
-       if (!PyArg_ParseTuple(_args, "O&O&",
-                             PyMac_GetRect, &rect1,
-                             PyMac_GetRect, &rect2))
-               return NULL;
-       _rv = EqualRect(&rect1,
-                       &rect2);
-       _res = Py_BuildValue("b",
-                            _rv);
-       return _res;
-}
-
-static PyObject *Qd_FrameRect(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Rect r;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             PyMac_GetRect, &r))
-               return NULL;
-       FrameRect(&r);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *Qd_InvertRect(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Rect r;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             PyMac_GetRect, &r))
-               return NULL;
-       InvertRect(&r);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *Qd_FillRect(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Rect r;
-       Pattern *pat__in__;
-       int pat__in_len__;
-       if (!PyArg_ParseTuple(_args, "O&s#",
-                             PyMac_GetRect, &r,
-                             (char **)&pat__in__, &pat__in_len__))
-               return NULL;
-       if (pat__in_len__ != sizeof(Pattern))
-       {
-               PyErr_SetString(PyExc_TypeError, "buffer length should be sizeof(Pattern)");
-               goto pat__error__;
-       }
-       FillRect(&r,
-                pat__in__);
-       Py_INCREF(Py_None);
-       _res = Py_None;
- pat__error__: ;
-       return _res;
-}
-
-static PyObject *Qd_CopyRgn(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       RgnHandle srcRgn;
-       RgnHandle dstRgn;
-       if (!PyArg_ParseTuple(_args, "O&O&",
-                             ResObj_Convert, &srcRgn,
-                             ResObj_Convert, &dstRgn))
-               return NULL;
-       CopyRgn(srcRgn,
-               dstRgn);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *Qd_SetRectRgn(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       RgnHandle rgn;
-       short left;
-       short top;
-       short right;
-       short bottom;
-       if (!PyArg_ParseTuple(_args, "O&hhhh",
-                             ResObj_Convert, &rgn,
-                             &left,
-                             &top,
-                             &right,
-                             &bottom))
-               return NULL;
-       SetRectRgn(rgn,
-                  left,
-                  top,
-                  right,
-                  bottom);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *Qd_OffsetRgn(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       RgnHandle rgn;
-       short dh;
-       short dv;
-       if (!PyArg_ParseTuple(_args, "O&hh",
-                             ResObj_Convert, &rgn,
-                             &dh,
-                             &dv))
-               return NULL;
-       OffsetRgn(rgn,
-                 dh,
-                 dv);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *Qd_UnionRgn(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       RgnHandle srcRgnA;
-       RgnHandle srcRgnB;
-       RgnHandle dstRgn;
-       if (!PyArg_ParseTuple(_args, "O&O&O&",
-                             ResObj_Convert, &srcRgnA,
-                             ResObj_Convert, &srcRgnB,
-                             ResObj_Convert, &dstRgn))
-               return NULL;
-       UnionRgn(srcRgnA,
-                srcRgnB,
-                dstRgn);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *Qd_XorRgn(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       RgnHandle srcRgnA;
-       RgnHandle srcRgnB;
-       RgnHandle dstRgn;
-       if (!PyArg_ParseTuple(_args, "O&O&O&",
-                             ResObj_Convert, &srcRgnA,
-                             ResObj_Convert, &srcRgnB,
-                             ResObj_Convert, &dstRgn))
-               return NULL;
-       XorRgn(srcRgnA,
-              srcRgnB,
-              dstRgn);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *Qd_EqualRgn(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Boolean _rv;
-       RgnHandle rgnA;
-       RgnHandle rgnB;
-       if (!PyArg_ParseTuple(_args, "O&O&",
-                             ResObj_Convert, &rgnA,
-                             ResObj_Convert, &rgnB))
-               return NULL;
-       _rv = EqualRgn(rgnA,
-                      rgnB);
-       _res = Py_BuildValue("b",
-                            _rv);
-       return _res;
-}
-
-static PyObject *Qd_FrameRgn(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       RgnHandle rgn;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             ResObj_Convert, &rgn))
-               return NULL;
-       FrameRgn(rgn);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *Qd_PaintRgn(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       RgnHandle rgn;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             ResObj_Convert, &rgn))
-               return NULL;
-       PaintRgn(rgn);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *Qd_InvertRgn(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       RgnHandle rgn;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             ResObj_Convert, &rgn))
-               return NULL;
-       InvertRgn(rgn);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *Qd_FillRgn(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       RgnHandle rgn;
-       Pattern *pat__in__;
-       int pat__in_len__;
-       if (!PyArg_ParseTuple(_args, "O&s#",
-                             ResObj_Convert, &rgn,
-                             (char **)&pat__in__, &pat__in_len__))
-               return NULL;
-       if (pat__in_len__ != sizeof(Pattern))
-       {
-               PyErr_SetString(PyExc_TypeError, "buffer length should be sizeof(Pattern)");
-               goto pat__error__;
-       }
-       FillRgn(rgn,
-               pat__in__);
-       Py_INCREF(Py_None);
-       _res = Py_None;
- pat__error__: ;
-       return _res;
-}
-
-static PyObject *Qd_GetPixel(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Boolean _rv;
-       short h;
-       short v;
-       if (!PyArg_ParseTuple(_args, "hh",
-                             &h,
-                             &v))
-               return NULL;
-       _rv = GetPixel(h,
-                      v);
-       _res = Py_BuildValue("b",
-                            _rv);
-       return _res;
-}
-
-static PyObject *Qd_PtInRect(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Boolean _rv;
-       Point pt;
-       Rect r;
-       if (!PyArg_ParseTuple(_args, "O&O&",
-                             PyMac_GetPoint, &pt,
-                             PyMac_GetRect, &r))
-               return NULL;
-       _rv = PtInRect(pt,
-                      &r);
-       _res = Py_BuildValue("b",
-                            _rv);
-       return _res;
-}
-
-static PyObject *Qd_DrawText(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       char *textBuf__in__;
-       int textBuf__len__;
-       int textBuf__in_len__;
-       short firstByte;
-       short byteCount;
-       if (!PyArg_ParseTuple(_args, "s#hh",
-                             &textBuf__in__, &textBuf__in_len__,
-                             &firstByte,
-                             &byteCount))
-               return NULL;
-       DrawText(textBuf__in__,
-                firstByte,
-                byteCount);
-       Py_INCREF(Py_None);
-       _res = Py_None;
- textBuf__error__: ;
-       return _res;
-}
-
-static PyObject *Qd_BitMap(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-
-       BitMap *ptr;
-       PyObject *source;
-       Rect bounds;
-       int rowbytes;
-       char *data;
-
-       if ( !PyArg_ParseTuple(_args, "O!iO&", &PyString_Type, &source, &rowbytes, PyMac_GetRect,
-                       &bounds) )
-               return NULL;
-       data = PyString_AsString(source);
-       if ((ptr=(BitMap *)malloc(sizeof(BitMap))) == NULL )
-               return PyErr_NoMemory();
-       ptr->baseAddr = (Ptr)data;
-       ptr->rowBytes = rowbytes;
-       ptr->bounds = bounds;
-       if ( (_res = BMObj_New(ptr)) == NULL ) {
-               free(ptr);
-               return NULL;
-       }
-       ((BitMapObject *)_res)->referred_object = source;
-       Py_INCREF(source);
-       ((BitMapObject *)_res)->referred_bitmap = ptr;
-       return _res;
-
-}
-
-static PyObject *Qd_RawBitMap(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-
-       BitMap *ptr;
-       PyObject *source;
-
-       if ( !PyArg_ParseTuple(_args, "O!", &PyString_Type, &source) )
-               return NULL;
-       if ( PyString_Size(source) != sizeof(BitMap) && PyString_Size(source) != sizeof(PixMap) ) {
-               PyErr_BadArgument();
-               return NULL;
-       }
-       ptr = (BitMapPtr)PyString_AsString(source);
-       if ( (_res = BMObj_New(ptr)) == NULL ) {
-               return NULL;
-       }
-       ((BitMapObject *)_res)->referred_object = source;
-       Py_INCREF(source);
-       return _res;
-
-}
-
-static PyMethodDef Qd_methods[] = {
-       {"MacSetPort", (PyCFunction)Qd_MacSetPort, 1,
-        "(GrafPtr port) -> None"},
-       {"GetPort", (PyCFunction)Qd_GetPort, 1,
-        "() -> (GrafPtr port)"},
-       {"GrafDevice", (PyCFunction)Qd_GrafDevice, 1,
-        "(short device) -> None"},
-       {"SetPortBits", (PyCFunction)Qd_SetPortBits, 1,
-        "(BitMapPtr bm) -> None"},
-       {"PortSize", (PyCFunction)Qd_PortSize, 1,
-        "(short width, short height) -> None"},
-       {"MovePortTo", (PyCFunction)Qd_MovePortTo, 1,
-        "(short leftGlobal, short topGlobal) -> None"},
-       {"SetOrigin", (PyCFunction)Qd_SetOrigin, 1,
-        "(short h, short v) -> None"},
-       {"SetClip", (PyCFunction)Qd_SetClip, 1,
-        "(RgnHandle rgn) -> None"},
-       {"GetClip", (PyCFunction)Qd_GetClip, 1,
-        "(RgnHandle rgn) -> None"},
-       {"ClipRect", (PyCFunction)Qd_ClipRect, 1,
-        "(Rect r) -> None"},
-       {"BackPat", (PyCFunction)Qd_BackPat, 1,
-        "(Pattern pat) -> None"},
-       {"InitCursor", (PyCFunction)Qd_InitCursor, 1,
-        "() -> None"},
-       {"MacSetCursor", (PyCFunction)Qd_MacSetCursor, 1,
-        "(Cursor crsr) -> None"},
-       {"HideCursor", (PyCFunction)Qd_HideCursor, 1,
-        "() -> None"},
-       {"MacShowCursor", (PyCFunction)Qd_MacShowCursor, 1,
-        "() -> None"},
-       {"ObscureCursor", (PyCFunction)Qd_ObscureCursor, 1,
-        "() -> None"},
-       {"HidePen", (PyCFunction)Qd_HidePen, 1,
-        "() -> None"},
-       {"ShowPen", (PyCFunction)Qd_ShowPen, 1,
-        "() -> None"},
-       {"GetPen", (PyCFunction)Qd_GetPen, 1,
-        "() -> (Point pt)"},
-       {"GetPenState", (PyCFunction)Qd_GetPenState, 1,
-        "() -> (PenState pnState)"},
-       {"SetPenState", (PyCFunction)Qd_SetPenState, 1,
-        "(PenState pnState) -> None"},
-       {"PenSize", (PyCFunction)Qd_PenSize, 1,
-        "(short width, short height) -> None"},
-       {"PenMode", (PyCFunction)Qd_PenMode, 1,
-        "(short mode) -> None"},
-       {"PenPat", (PyCFunction)Qd_PenPat, 1,
-        "(Pattern pat) -> None"},
-       {"PenNormal", (PyCFunction)Qd_PenNormal, 1,
-        "() -> None"},
-       {"MoveTo", (PyCFunction)Qd_MoveTo, 1,
-        "(short h, short v) -> None"},
-       {"Move", (PyCFunction)Qd_Move, 1,
-        "(short dh, short dv) -> None"},
-       {"MacLineTo", (PyCFunction)Qd_MacLineTo, 1,
-        "(short h, short v) -> None"},
-       {"Line", (PyCFunction)Qd_Line, 1,
-        "(short dh, short dv) -> None"},
-       {"ForeColor", (PyCFunction)Qd_ForeColor, 1,
-        "(long color) -> None"},
-       {"BackColor", (PyCFunction)Qd_BackColor, 1,
-        "(long color) -> None"},
-       {"ColorBit", (PyCFunction)Qd_ColorBit, 1,
-        "(short whichBit) -> None"},
-       {"MacSetRect", (PyCFunction)Qd_MacSetRect, 1,
-        "(short left, short top, short right, short bottom) -> (Rect r)"},
-       {"MacOffsetRect", (PyCFunction)Qd_MacOffsetRect, 1,
-        "(Rect r, short dh, short dv) -> (Rect r)"},
-       {"MacInsetRect", (PyCFunction)Qd_MacInsetRect, 1,
-        "(Rect r, short dh, short dv) -> (Rect r)"},
-       {"SectRect", (PyCFunction)Qd_SectRect, 1,
-        "(Rect src1, Rect src2) -> (Boolean _rv, Rect dstRect)"},
-       {"MacUnionRect", (PyCFunction)Qd_MacUnionRect, 1,
-        "(Rect src1, Rect src2) -> (Rect dstRect)"},
-       {"MacEqualRect", (PyCFunction)Qd_MacEqualRect, 1,
-        "(Rect rect1, Rect rect2) -> (Boolean _rv)"},
-       {"EmptyRect", (PyCFunction)Qd_EmptyRect, 1,
-        "(Rect r) -> (Boolean _rv)"},
-       {"MacFrameRect", (PyCFunction)Qd_MacFrameRect, 1,
-        "(Rect r) -> None"},
-       {"PaintRect", (PyCFunction)Qd_PaintRect, 1,
-        "(Rect r) -> None"},
-       {"EraseRect", (PyCFunction)Qd_EraseRect, 1,
-        "(Rect r) -> None"},
-       {"MacInvertRect", (PyCFunction)Qd_MacInvertRect, 1,
-        "(Rect r) -> None"},
-       {"MacFillRect", (PyCFunction)Qd_MacFillRect, 1,
-        "(Rect r, Pattern pat) -> None"},
-       {"FrameOval", (PyCFunction)Qd_FrameOval, 1,
-        "(Rect r) -> None"},
-       {"PaintOval", (PyCFunction)Qd_PaintOval, 1,
-        "(Rect r) -> None"},
-       {"EraseOval", (PyCFunction)Qd_EraseOval, 1,
-        "(Rect r) -> None"},
-       {"InvertOval", (PyCFunction)Qd_InvertOval, 1,
-        "(Rect r) -> None"},
-       {"FillOval", (PyCFunction)Qd_FillOval, 1,
-        "(Rect r, Pattern pat) -> None"},
-       {"FrameRoundRect", (PyCFunction)Qd_FrameRoundRect, 1,
-        "(Rect r, short ovalWidth, short ovalHeight) -> None"},
-       {"PaintRoundRect", (PyCFunction)Qd_PaintRoundRect, 1,
-        "(Rect r, short ovalWidth, short ovalHeight) -> None"},
-       {"EraseRoundRect", (PyCFunction)Qd_EraseRoundRect, 1,
-        "(Rect r, short ovalWidth, short ovalHeight) -> None"},
-       {"InvertRoundRect", (PyCFunction)Qd_InvertRoundRect, 1,
-        "(Rect r, short ovalWidth, short ovalHeight) -> None"},
-       {"FillRoundRect", (PyCFunction)Qd_FillRoundRect, 1,
-        "(Rect r, short ovalWidth, short ovalHeight, Pattern pat) -> None"},
-       {"FrameArc", (PyCFunction)Qd_FrameArc, 1,
-        "(Rect r, short startAngle, short arcAngle) -> None"},
-       {"PaintArc", (PyCFunction)Qd_PaintArc, 1,
-        "(Rect r, short startAngle, short arcAngle) -> None"},
-       {"EraseArc", (PyCFunction)Qd_EraseArc, 1,
-        "(Rect r, short startAngle, short arcAngle) -> None"},
-       {"InvertArc", (PyCFunction)Qd_InvertArc, 1,
-        "(Rect r, short startAngle, short arcAngle) -> None"},
-       {"FillArc", (PyCFunction)Qd_FillArc, 1,
-        "(Rect r, short startAngle, short arcAngle, Pattern pat) -> None"},
-       {"NewRgn", (PyCFunction)Qd_NewRgn, 1,
-        "() -> (RgnHandle _rv)"},
-       {"OpenRgn", (PyCFunction)Qd_OpenRgn, 1,
-        "() -> None"},
-       {"CloseRgn", (PyCFunction)Qd_CloseRgn, 1,
-        "(RgnHandle dstRgn) -> None"},
-       {"BitMapToRegion", (PyCFunction)Qd_BitMapToRegion, 1,
-        "(RgnHandle region, BitMapPtr bMap) -> None"},
-       {"DisposeRgn", (PyCFunction)Qd_DisposeRgn, 1,
-        "(RgnHandle rgn) -> None"},
-       {"MacCopyRgn", (PyCFunction)Qd_MacCopyRgn, 1,
-        "(RgnHandle srcRgn, RgnHandle dstRgn) -> None"},
-       {"SetEmptyRgn", (PyCFunction)Qd_SetEmptyRgn, 1,
-        "(RgnHandle rgn) -> None"},
-       {"MacSetRectRgn", (PyCFunction)Qd_MacSetRectRgn, 1,
-        "(RgnHandle rgn, short left, short top, short right, short bottom) -> None"},
-       {"RectRgn", (PyCFunction)Qd_RectRgn, 1,
-        "(RgnHandle rgn, Rect r) -> None"},
-       {"MacOffsetRgn", (PyCFunction)Qd_MacOffsetRgn, 1,
-        "(RgnHandle rgn, short dh, short dv) -> None"},
-       {"InsetRgn", (PyCFunction)Qd_InsetRgn, 1,
-        "(RgnHandle rgn, short dh, short dv) -> None"},
-       {"SectRgn", (PyCFunction)Qd_SectRgn, 1,
-        "(RgnHandle srcRgnA, RgnHandle srcRgnB, RgnHandle dstRgn) -> None"},
-       {"MacUnionRgn", (PyCFunction)Qd_MacUnionRgn, 1,
-        "(RgnHandle srcRgnA, RgnHandle srcRgnB, RgnHandle dstRgn) -> None"},
-       {"DiffRgn", (PyCFunction)Qd_DiffRgn, 1,
-        "(RgnHandle srcRgnA, RgnHandle srcRgnB, RgnHandle dstRgn) -> None"},
-       {"MacXorRgn", (PyCFunction)Qd_MacXorRgn, 1,
-        "(RgnHandle srcRgnA, RgnHandle srcRgnB, RgnHandle dstRgn) -> None"},
-       {"RectInRgn", (PyCFunction)Qd_RectInRgn, 1,
-        "(Rect r, RgnHandle rgn) -> (Boolean _rv)"},
-       {"MacEqualRgn", (PyCFunction)Qd_MacEqualRgn, 1,
-        "(RgnHandle rgnA, RgnHandle rgnB) -> (Boolean _rv)"},
-       {"EmptyRgn", (PyCFunction)Qd_EmptyRgn, 1,
-        "(RgnHandle rgn) -> (Boolean _rv)"},
-       {"MacFrameRgn", (PyCFunction)Qd_MacFrameRgn, 1,
-        "(RgnHandle rgn) -> None"},
-       {"MacPaintRgn", (PyCFunction)Qd_MacPaintRgn, 1,
-        "(RgnHandle rgn) -> None"},
-       {"EraseRgn", (PyCFunction)Qd_EraseRgn, 1,
-        "(RgnHandle rgn) -> None"},
-       {"MacInvertRgn", (PyCFunction)Qd_MacInvertRgn, 1,
-        "(RgnHandle rgn) -> None"},
-       {"MacFillRgn", (PyCFunction)Qd_MacFillRgn, 1,
-        "(RgnHandle rgn, Pattern pat) -> None"},
-       {"ScrollRect", (PyCFunction)Qd_ScrollRect, 1,
-        "(Rect r, short dh, short dv, RgnHandle updateRgn) -> None"},
-       {"CopyBits", (PyCFunction)Qd_CopyBits, 1,
-        "(BitMapPtr srcBits, BitMapPtr dstBits, Rect srcRect, Rect dstRect, short mode, RgnHandle maskRgn) -> None"},
-       {"CopyMask", (PyCFunction)Qd_CopyMask, 1,
-        "(BitMapPtr srcBits, BitMapPtr maskBits, BitMapPtr dstBits, Rect srcRect, Rect maskRect, Rect dstRect) -> None"},
-       {"OpenPicture", (PyCFunction)Qd_OpenPicture, 1,
-        "(Rect picFrame) -> (PicHandle _rv)"},
-       {"PicComment", (PyCFunction)Qd_PicComment, 1,
-        "(short kind, short dataSize, Handle dataHandle) -> None"},
-       {"ClosePicture", (PyCFunction)Qd_ClosePicture, 1,
-        "() -> None"},
-       {"DrawPicture", (PyCFunction)Qd_DrawPicture, 1,
-        "(PicHandle myPicture, Rect dstRect) -> None"},
-       {"KillPicture", (PyCFunction)Qd_KillPicture, 1,
-        "(PicHandle myPicture) -> None"},
-       {"OpenPoly", (PyCFunction)Qd_OpenPoly, 1,
-        "() -> (PolyHandle _rv)"},
-       {"ClosePoly", (PyCFunction)Qd_ClosePoly, 1,
-        "() -> None"},
-       {"KillPoly", (PyCFunction)Qd_KillPoly, 1,
-        "(PolyHandle poly) -> None"},
-       {"OffsetPoly", (PyCFunction)Qd_OffsetPoly, 1,
-        "(PolyHandle poly, short dh, short dv) -> None"},
-       {"FramePoly", (PyCFunction)Qd_FramePoly, 1,
-        "(PolyHandle poly) -> None"},
-       {"PaintPoly", (PyCFunction)Qd_PaintPoly, 1,
-        "(PolyHandle poly) -> None"},
-       {"ErasePoly", (PyCFunction)Qd_ErasePoly, 1,
-        "(PolyHandle poly) -> None"},
-       {"InvertPoly", (PyCFunction)Qd_InvertPoly, 1,
-        "(PolyHandle poly) -> None"},
-       {"FillPoly", (PyCFunction)Qd_FillPoly, 1,
-        "(PolyHandle poly, Pattern pat) -> None"},
-       {"SetPt", (PyCFunction)Qd_SetPt, 1,
-        "(short h, short v) -> (Point pt)"},
-       {"LocalToGlobal", (PyCFunction)Qd_LocalToGlobal, 1,
-        "(Point pt) -> (Point pt)"},
-       {"GlobalToLocal", (PyCFunction)Qd_GlobalToLocal, 1,
-        "(Point pt) -> (Point pt)"},
-       {"Random", (PyCFunction)Qd_Random, 1,
-        "() -> (short _rv)"},
-       {"MacGetPixel", (PyCFunction)Qd_MacGetPixel, 1,
-        "(short h, short v) -> (Boolean _rv)"},
-       {"ScalePt", (PyCFunction)Qd_ScalePt, 1,
-        "(Point pt, Rect srcRect, Rect dstRect) -> (Point pt)"},
-       {"MapPt", (PyCFunction)Qd_MapPt, 1,
-        "(Point pt, Rect srcRect, Rect dstRect) -> (Point pt)"},
-       {"MapRect", (PyCFunction)Qd_MapRect, 1,
-        "(Rect r, Rect srcRect, Rect dstRect) -> (Rect r)"},
-       {"MapRgn", (PyCFunction)Qd_MapRgn, 1,
-        "(RgnHandle rgn, Rect srcRect, Rect dstRect) -> None"},
-       {"MapPoly", (PyCFunction)Qd_MapPoly, 1,
-        "(PolyHandle poly, Rect srcRect, Rect dstRect) -> None"},
-       {"StdBits", (PyCFunction)Qd_StdBits, 1,
-        "(BitMapPtr srcBits, Rect srcRect, Rect dstRect, short mode, RgnHandle maskRgn) -> None"},
-       {"AddPt", (PyCFunction)Qd_AddPt, 1,
-        "(Point src, Point dst) -> (Point dst)"},
-       {"EqualPt", (PyCFunction)Qd_EqualPt, 1,
-        "(Point pt1, Point pt2) -> (Boolean _rv)"},
-       {"MacPtInRect", (PyCFunction)Qd_MacPtInRect, 1,
-        "(Point pt, Rect r) -> (Boolean _rv)"},
-       {"Pt2Rect", (PyCFunction)Qd_Pt2Rect, 1,
-        "(Point pt1, Point pt2) -> (Rect dstRect)"},
-       {"PtToAngle", (PyCFunction)Qd_PtToAngle, 1,
-        "(Rect r, Point pt) -> (short angle)"},
-       {"SubPt", (PyCFunction)Qd_SubPt, 1,
-        "(Point src, Point dst) -> (Point dst)"},
-       {"PtInRgn", (PyCFunction)Qd_PtInRgn, 1,
-        "(Point pt, RgnHandle rgn) -> (Boolean _rv)"},
-       {"NewPixMap", (PyCFunction)Qd_NewPixMap, 1,
-        "() -> (PixMapHandle _rv)"},
-       {"DisposePixMap", (PyCFunction)Qd_DisposePixMap, 1,
-        "(PixMapHandle pm) -> None"},
-       {"CopyPixMap", (PyCFunction)Qd_CopyPixMap, 1,
-        "(PixMapHandle srcPM, PixMapHandle dstPM) -> None"},
-       {"NewPixPat", (PyCFunction)Qd_NewPixPat, 1,
-        "() -> (PixPatHandle _rv)"},
-       {"DisposePixPat", (PyCFunction)Qd_DisposePixPat, 1,
-        "(PixPatHandle pp) -> None"},
-       {"CopyPixPat", (PyCFunction)Qd_CopyPixPat, 1,
-        "(PixPatHandle srcPP, PixPatHandle dstPP) -> None"},
-       {"PenPixPat", (PyCFunction)Qd_PenPixPat, 1,
-        "(PixPatHandle pp) -> None"},
-       {"BackPixPat", (PyCFunction)Qd_BackPixPat, 1,
-        "(PixPatHandle pp) -> None"},
-       {"GetPixPat", (PyCFunction)Qd_GetPixPat, 1,
-        "(short patID) -> (PixPatHandle _rv)"},
-       {"MakeRGBPat", (PyCFunction)Qd_MakeRGBPat, 1,
-        "(PixPatHandle pp, RGBColor myColor) -> None"},
-       {"FillCRect", (PyCFunction)Qd_FillCRect, 1,
-        "(Rect r, PixPatHandle pp) -> None"},
-       {"FillCOval", (PyCFunction)Qd_FillCOval, 1,
-        "(Rect r, PixPatHandle pp) -> None"},
-       {"FillCRoundRect", (PyCFunction)Qd_FillCRoundRect, 1,
-        "(Rect r, short ovalWidth, short ovalHeight, PixPatHandle pp) -> None"},
-       {"FillCArc", (PyCFunction)Qd_FillCArc, 1,
-        "(Rect r, short startAngle, short arcAngle, PixPatHandle pp) -> None"},
-       {"FillCRgn", (PyCFunction)Qd_FillCRgn, 1,
-        "(RgnHandle rgn, PixPatHandle pp) -> None"},
-       {"FillCPoly", (PyCFunction)Qd_FillCPoly, 1,
-        "(PolyHandle poly, PixPatHandle pp) -> None"},
-       {"RGBForeColor", (PyCFunction)Qd_RGBForeColor, 1,
-        "(RGBColor color) -> None"},
-       {"RGBBackColor", (PyCFunction)Qd_RGBBackColor, 1,
-        "(RGBColor color) -> None"},
-       {"SetCPixel", (PyCFunction)Qd_SetCPixel, 1,
-        "(short h, short v, RGBColor cPix) -> None"},
-       {"SetPortPix", (PyCFunction)Qd_SetPortPix, 1,
-        "(PixMapHandle pm) -> None"},
-       {"GetCPixel", (PyCFunction)Qd_GetCPixel, 1,
-        "(short h, short v) -> (RGBColor cPix)"},
-       {"GetForeColor", (PyCFunction)Qd_GetForeColor, 1,
-        "() -> (RGBColor color)"},
-       {"GetBackColor", (PyCFunction)Qd_GetBackColor, 1,
-        "() -> (RGBColor color)"},
-       {"OpColor", (PyCFunction)Qd_OpColor, 1,
-        "(RGBColor color) -> None"},
-       {"HiliteColor", (PyCFunction)Qd_HiliteColor, 1,
-        "(RGBColor color) -> None"},
-       {"DisposeCTable", (PyCFunction)Qd_DisposeCTable, 1,
-        "(CTabHandle cTable) -> None"},
-       {"GetCTable", (PyCFunction)Qd_GetCTable, 1,
-        "(short ctID) -> (CTabHandle _rv)"},
-       {"GetCCursor", (PyCFunction)Qd_GetCCursor, 1,
-        "(short crsrID) -> (CCrsrHandle _rv)"},
-       {"SetCCursor", (PyCFunction)Qd_SetCCursor, 1,
-        "(CCrsrHandle cCrsr) -> None"},
-       {"AllocCursor", (PyCFunction)Qd_AllocCursor, 1,
-        "() -> None"},
-       {"DisposeCCursor", (PyCFunction)Qd_DisposeCCursor, 1,
-        "(CCrsrHandle cCrsr) -> None"},
-       {"GetMaxDevice", (PyCFunction)Qd_GetMaxDevice, 1,
-        "(Rect globalRect) -> (GDHandle _rv)"},
-       {"GetCTSeed", (PyCFunction)Qd_GetCTSeed, 1,
-        "() -> (long _rv)"},
-       {"GetDeviceList", (PyCFunction)Qd_GetDeviceList, 1,
-        "() -> (GDHandle _rv)"},
-       {"GetMainDevice", (PyCFunction)Qd_GetMainDevice, 1,
-        "() -> (GDHandle _rv)"},
-       {"GetNextDevice", (PyCFunction)Qd_GetNextDevice, 1,
-        "(GDHandle curDevice) -> (GDHandle _rv)"},
-       {"TestDeviceAttribute", (PyCFunction)Qd_TestDeviceAttribute, 1,
-        "(GDHandle gdh, short attribute) -> (Boolean _rv)"},
-       {"SetDeviceAttribute", (PyCFunction)Qd_SetDeviceAttribute, 1,
-        "(GDHandle gdh, short attribute, Boolean value) -> None"},
-       {"InitGDevice", (PyCFunction)Qd_InitGDevice, 1,
-        "(short qdRefNum, long mode, GDHandle gdh) -> None"},
-       {"NewGDevice", (PyCFunction)Qd_NewGDevice, 1,
-        "(short refNum, long mode) -> (GDHandle _rv)"},
-       {"DisposeGDevice", (PyCFunction)Qd_DisposeGDevice, 1,
-        "(GDHandle gdh) -> None"},
-       {"SetGDevice", (PyCFunction)Qd_SetGDevice, 1,
-        "(GDHandle gd) -> None"},
-       {"GetGDevice", (PyCFunction)Qd_GetGDevice, 1,
-        "() -> (GDHandle _rv)"},
-       {"Color2Index", (PyCFunction)Qd_Color2Index, 1,
-        "(RGBColor myColor) -> (long _rv)"},
-       {"Index2Color", (PyCFunction)Qd_Index2Color, 1,
-        "(long index) -> (RGBColor aColor)"},
-       {"InvertColor", (PyCFunction)Qd_InvertColor, 1,
-        "() -> (RGBColor myColor)"},
-       {"RealColor", (PyCFunction)Qd_RealColor, 1,
-        "(RGBColor color) -> (Boolean _rv)"},
-       {"GetSubTable", (PyCFunction)Qd_GetSubTable, 1,
-        "(CTabHandle myColors, short iTabRes, CTabHandle targetTbl) -> None"},
-       {"MakeITable", (PyCFunction)Qd_MakeITable, 1,
-        "(CTabHandle cTabH, ITabHandle iTabH, short res) -> None"},
-       {"SetClientID", (PyCFunction)Qd_SetClientID, 1,
-        "(short id) -> None"},
-       {"ProtectEntry", (PyCFunction)Qd_ProtectEntry, 1,
-        "(short index, Boolean protect) -> None"},
-       {"ReserveEntry", (PyCFunction)Qd_ReserveEntry, 1,
-        "(short index, Boolean reserve) -> None"},
-       {"QDError", (PyCFunction)Qd_QDError, 1,
-        "() -> (short _rv)"},
-       {"CopyDeepMask", (PyCFunction)Qd_CopyDeepMask, 1,
-        "(BitMapPtr srcBits, BitMapPtr maskBits, BitMapPtr dstBits, Rect srcRect, Rect maskRect, Rect dstRect, short mode, RgnHandle maskRgn) -> None"},
-       {"GetPattern", (PyCFunction)Qd_GetPattern, 1,
-        "(short patternID) -> (PatHandle _rv)"},
-       {"MacGetCursor", (PyCFunction)Qd_MacGetCursor, 1,
-        "(short cursorID) -> (CursHandle _rv)"},
-       {"GetPicture", (PyCFunction)Qd_GetPicture, 1,
-        "(short pictureID) -> (PicHandle _rv)"},
-       {"DeltaPoint", (PyCFunction)Qd_DeltaPoint, 1,
-        "(Point ptA, Point ptB) -> (long _rv)"},
-       {"ShieldCursor", (PyCFunction)Qd_ShieldCursor, 1,
-        "(Rect shieldRect, Point offsetPt) -> None"},
-       {"ScreenRes", (PyCFunction)Qd_ScreenRes, 1,
-        "() -> (short scrnHRes, short scrnVRes)"},
-       {"GetIndPattern", (PyCFunction)Qd_GetIndPattern, 1,
-        "(short patternListID, short index) -> (Pattern thePat)"},
-       {"SlopeFromAngle", (PyCFunction)Qd_SlopeFromAngle, 1,
-        "(short angle) -> (Fixed _rv)"},
-       {"AngleFromSlope", (PyCFunction)Qd_AngleFromSlope, 1,
-        "(Fixed slope) -> (short _rv)"},
-       {"GetPortPixMap", (PyCFunction)Qd_GetPortPixMap, 1,
-        "(CGrafPtr port) -> (PixMapHandle _rv)"},
-       {"GetPortBitMapForCopyBits", (PyCFunction)Qd_GetPortBitMapForCopyBits, 1,
-        "(CGrafPtr port) -> (const BitMap * _rv)"},
-       {"GetPortBounds", (PyCFunction)Qd_GetPortBounds, 1,
-        "(CGrafPtr port) -> (Rect rect)"},
-       {"GetPortForeColor", (PyCFunction)Qd_GetPortForeColor, 1,
-        "(CGrafPtr port) -> (RGBColor foreColor)"},
-       {"GetPortBackColor", (PyCFunction)Qd_GetPortBackColor, 1,
-        "(CGrafPtr port) -> (RGBColor backColor)"},
-       {"GetPortOpColor", (PyCFunction)Qd_GetPortOpColor, 1,
-        "(CGrafPtr port) -> (RGBColor opColor)"},
-       {"GetPortHiliteColor", (PyCFunction)Qd_GetPortHiliteColor, 1,
-        "(CGrafPtr port) -> (RGBColor hiliteColor)"},
-       {"GetPortTextFont", (PyCFunction)Qd_GetPortTextFont, 1,
-        "(CGrafPtr port) -> (short _rv)"},
-       {"GetPortTextFace", (PyCFunction)Qd_GetPortTextFace, 1,
-        "(CGrafPtr port) -> (Style _rv)"},
-       {"GetPortTextMode", (PyCFunction)Qd_GetPortTextMode, 1,
-        "(CGrafPtr port) -> (short _rv)"},
-       {"GetPortTextSize", (PyCFunction)Qd_GetPortTextSize, 1,
-        "(CGrafPtr port) -> (short _rv)"},
-       {"GetPortChExtra", (PyCFunction)Qd_GetPortChExtra, 1,
-        "(CGrafPtr port) -> (short _rv)"},
-       {"GetPortFracHPenLocation", (PyCFunction)Qd_GetPortFracHPenLocation, 1,
-        "(CGrafPtr port) -> (short _rv)"},
-       {"GetPortSpExtra", (PyCFunction)Qd_GetPortSpExtra, 1,
-        "(CGrafPtr port) -> (Fixed _rv)"},
-       {"GetPortPenVisibility", (PyCFunction)Qd_GetPortPenVisibility, 1,
-        "(CGrafPtr port) -> (short _rv)"},
-       {"GetPortVisibleRegion", (PyCFunction)Qd_GetPortVisibleRegion, 1,
-        "(CGrafPtr port, RgnHandle visRgn) -> (RgnHandle _rv)"},
-       {"GetPortClipRegion", (PyCFunction)Qd_GetPortClipRegion, 1,
-        "(CGrafPtr port, RgnHandle clipRgn) -> (RgnHandle _rv)"},
-       {"GetPortBackPixPat", (PyCFunction)Qd_GetPortBackPixPat, 1,
-        "(CGrafPtr port, PixPatHandle backPattern) -> (PixPatHandle _rv)"},
-       {"GetPortPenPixPat", (PyCFunction)Qd_GetPortPenPixPat, 1,
-        "(CGrafPtr port, PixPatHandle penPattern) -> (PixPatHandle _rv)"},
-       {"GetPortFillPixPat", (PyCFunction)Qd_GetPortFillPixPat, 1,
-        "(CGrafPtr port, PixPatHandle fillPattern) -> (PixPatHandle _rv)"},
-       {"GetPortPenSize", (PyCFunction)Qd_GetPortPenSize, 1,
-        "(CGrafPtr port, Point penSize) -> (Point penSize)"},
-       {"GetPortPenMode", (PyCFunction)Qd_GetPortPenMode, 1,
-        "(CGrafPtr port) -> (SInt32 _rv)"},
-       {"GetPortPenLocation", (PyCFunction)Qd_GetPortPenLocation, 1,
-        "(CGrafPtr port, Point penLocation) -> (Point penLocation)"},
-       {"IsPortRegionBeingDefined", (PyCFunction)Qd_IsPortRegionBeingDefined, 1,
-        "(CGrafPtr port) -> (Boolean _rv)"},
-       {"IsPortPictureBeingDefined", (PyCFunction)Qd_IsPortPictureBeingDefined, 1,
-        "(CGrafPtr port) -> (Boolean _rv)"},
-
-#if TARGET_API_MAC_CARBON
-       {"IsPortOffscreen", (PyCFunction)Qd_IsPortOffscreen, 1,
-        "(CGrafPtr port) -> (Boolean _rv)"},
-#endif
-
-#if TARGET_API_MAC_CARBON
-       {"IsPortColor", (PyCFunction)Qd_IsPortColor, 1,
-        "(CGrafPtr port) -> (Boolean _rv)"},
-#endif
-       {"SetPortBounds", (PyCFunction)Qd_SetPortBounds, 1,
-        "(CGrafPtr port, Rect rect) -> None"},
-       {"SetPortOpColor", (PyCFunction)Qd_SetPortOpColor, 1,
-        "(CGrafPtr port, RGBColor opColor) -> None"},
-       {"SetPortVisibleRegion", (PyCFunction)Qd_SetPortVisibleRegion, 1,
-        "(CGrafPtr port, RgnHandle visRgn) -> None"},
-       {"SetPortClipRegion", (PyCFunction)Qd_SetPortClipRegion, 1,
-        "(CGrafPtr port, RgnHandle clipRgn) -> None"},
-       {"SetPortPenPixPat", (PyCFunction)Qd_SetPortPenPixPat, 1,
-        "(CGrafPtr port, PixPatHandle penPattern) -> None"},
-       {"SetPortBackPixPat", (PyCFunction)Qd_SetPortBackPixPat, 1,
-        "(CGrafPtr port, PixPatHandle backPattern) -> None"},
-       {"SetPortPenSize", (PyCFunction)Qd_SetPortPenSize, 1,
-        "(CGrafPtr port, Point penSize) -> None"},
-       {"SetPortPenMode", (PyCFunction)Qd_SetPortPenMode, 1,
-        "(CGrafPtr port, SInt32 penMode) -> None"},
-       {"SetPortFracHPenLocation", (PyCFunction)Qd_SetPortFracHPenLocation, 1,
-        "(CGrafPtr port, short pnLocHFrac) -> None"},
-       {"GetPixBounds", (PyCFunction)Qd_GetPixBounds, 1,
-        "(PixMapHandle pixMap) -> (Rect bounds)"},
-       {"GetPixDepth", (PyCFunction)Qd_GetPixDepth, 1,
-        "(PixMapHandle pixMap) -> (short _rv)"},
-       {"GetQDGlobalsRandomSeed", (PyCFunction)Qd_GetQDGlobalsRandomSeed, 1,
-        "() -> (long _rv)"},
-       {"GetQDGlobalsScreenBits", (PyCFunction)Qd_GetQDGlobalsScreenBits, 1,
-        "() -> (BitMap screenBits)"},
-       {"GetQDGlobalsArrow", (PyCFunction)Qd_GetQDGlobalsArrow, 1,
-        "() -> (Cursor arrow)"},
-       {"GetQDGlobalsDarkGray", (PyCFunction)Qd_GetQDGlobalsDarkGray, 1,
-        "() -> (Pattern dkGray)"},
-       {"GetQDGlobalsLightGray", (PyCFunction)Qd_GetQDGlobalsLightGray, 1,
-        "() -> (Pattern ltGray)"},
-       {"GetQDGlobalsGray", (PyCFunction)Qd_GetQDGlobalsGray, 1,
-        "() -> (Pattern gray)"},
-       {"GetQDGlobalsBlack", (PyCFunction)Qd_GetQDGlobalsBlack, 1,
-        "() -> (Pattern black)"},
-       {"GetQDGlobalsWhite", (PyCFunction)Qd_GetQDGlobalsWhite, 1,
-        "() -> (Pattern white)"},
-       {"GetQDGlobalsThePort", (PyCFunction)Qd_GetQDGlobalsThePort, 1,
-        "() -> (CGrafPtr _rv)"},
-       {"SetQDGlobalsRandomSeed", (PyCFunction)Qd_SetQDGlobalsRandomSeed, 1,
-        "(long randomSeed) -> None"},
-       {"SetQDGlobalsArrow", (PyCFunction)Qd_SetQDGlobalsArrow, 1,
-        "(Cursor arrow) -> None"},
-       {"GetRegionBounds", (PyCFunction)Qd_GetRegionBounds, 1,
-        "(RgnHandle region) -> (Rect bounds)"},
-
-#if TARGET_API_MAC_CARBON
-       {"IsRegionRectangular", (PyCFunction)Qd_IsRegionRectangular, 1,
-        "(RgnHandle region) -> (Boolean _rv)"},
-#endif
-
-#if TARGET_API_MAC_CARBON
-       {"CreateNewPort", (PyCFunction)Qd_CreateNewPort, 1,
-        "() -> (CGrafPtr _rv)"},
-#endif
-
-#if TARGET_API_MAC_CARBON
-       {"DisposePort", (PyCFunction)Qd_DisposePort, 1,
-        "(CGrafPtr port) -> None"},
-#endif
-
-#if TARGET_API_MAC_CARBON
-       {"SetQDError", (PyCFunction)Qd_SetQDError, 1,
-        "(OSErr err) -> None"},
-#endif
-       {"QDIsPortBuffered", (PyCFunction)Qd_QDIsPortBuffered, 1,
-        "(CGrafPtr port) -> (Boolean _rv)"},
-       {"QDIsPortBufferDirty", (PyCFunction)Qd_QDIsPortBufferDirty, 1,
-        "(CGrafPtr port) -> (Boolean _rv)"},
-       {"QDFlushPortBuffer", (PyCFunction)Qd_QDFlushPortBuffer, 1,
-        "(CGrafPtr port, RgnHandle region) -> None"},
-       {"TextFont", (PyCFunction)Qd_TextFont, 1,
-        "(short font) -> None"},
-       {"TextFace", (PyCFunction)Qd_TextFace, 1,
-        "(StyleParameter face) -> None"},
-       {"TextMode", (PyCFunction)Qd_TextMode, 1,
-        "(short mode) -> None"},
-       {"TextSize", (PyCFunction)Qd_TextSize, 1,
-        "(short size) -> None"},
-       {"SpaceExtra", (PyCFunction)Qd_SpaceExtra, 1,
-        "(Fixed extra) -> None"},
-       {"DrawChar", (PyCFunction)Qd_DrawChar, 1,
-        "(CharParameter ch) -> None"},
-       {"DrawString", (PyCFunction)Qd_DrawString, 1,
-        "(Str255 s) -> None"},
-       {"MacDrawText", (PyCFunction)Qd_MacDrawText, 1,
-        "(Buffer textBuf, short firstByte, short byteCount) -> None"},
-       {"CharWidth", (PyCFunction)Qd_CharWidth, 1,
-        "(CharParameter ch) -> (short _rv)"},
-       {"StringWidth", (PyCFunction)Qd_StringWidth, 1,
-        "(Str255 s) -> (short _rv)"},
-       {"TextWidth", (PyCFunction)Qd_TextWidth, 1,
-        "(Buffer textBuf, short firstByte, short byteCount) -> (short _rv)"},
-       {"GetFontInfo", (PyCFunction)Qd_GetFontInfo, 1,
-        "() -> (FontInfo info)"},
-       {"CharExtra", (PyCFunction)Qd_CharExtra, 1,
-        "(Fixed extra) -> None"},
-       {"SetPort", (PyCFunction)Qd_SetPort, 1,
-        "(GrafPtr thePort) -> None"},
-       {"GetCursor", (PyCFunction)Qd_GetCursor, 1,
-        "(short cursorID) -> (CursHandle _rv)"},
-       {"SetCursor", (PyCFunction)Qd_SetCursor, 1,
-        "(Cursor crsr) -> None"},
-       {"ShowCursor", (PyCFunction)Qd_ShowCursor, 1,
-        "() -> None"},
-       {"LineTo", (PyCFunction)Qd_LineTo, 1,
-        "(short h, short v) -> None"},
-       {"SetRect", (PyCFunction)Qd_SetRect, 1,
-        "(short left, short top, short right, short bottom) -> (Rect r)"},
-       {"OffsetRect", (PyCFunction)Qd_OffsetRect, 1,
-        "(Rect r, short dh, short dv) -> (Rect r)"},
-       {"InsetRect", (PyCFunction)Qd_InsetRect, 1,
-        "(Rect r, short dh, short dv) -> (Rect r)"},
-       {"UnionRect", (PyCFunction)Qd_UnionRect, 1,
-        "(Rect src1, Rect src2) -> (Rect dstRect)"},
-       {"EqualRect", (PyCFunction)Qd_EqualRect, 1,
-        "(Rect rect1, Rect rect2) -> (Boolean _rv)"},
-       {"FrameRect", (PyCFunction)Qd_FrameRect, 1,
-        "(Rect r) -> None"},
-       {"InvertRect", (PyCFunction)Qd_InvertRect, 1,
-        "(Rect r) -> None"},
-       {"FillRect", (PyCFunction)Qd_FillRect, 1,
-        "(Rect r, Pattern pat) -> None"},
-       {"CopyRgn", (PyCFunction)Qd_CopyRgn, 1,
-        "(RgnHandle srcRgn, RgnHandle dstRgn) -> None"},
-       {"SetRectRgn", (PyCFunction)Qd_SetRectRgn, 1,
-        "(RgnHandle rgn, short left, short top, short right, short bottom) -> None"},
-       {"OffsetRgn", (PyCFunction)Qd_OffsetRgn, 1,
-        "(RgnHandle rgn, short dh, short dv) -> None"},
-       {"UnionRgn", (PyCFunction)Qd_UnionRgn, 1,
-        "(RgnHandle srcRgnA, RgnHandle srcRgnB, RgnHandle dstRgn) -> None"},
-       {"XorRgn", (PyCFunction)Qd_XorRgn, 1,
-        "(RgnHandle srcRgnA, RgnHandle srcRgnB, RgnHandle dstRgn) -> None"},
-       {"EqualRgn", (PyCFunction)Qd_EqualRgn, 1,
-        "(RgnHandle rgnA, RgnHandle rgnB) -> (Boolean _rv)"},
-       {"FrameRgn", (PyCFunction)Qd_FrameRgn, 1,
-        "(RgnHandle rgn) -> None"},
-       {"PaintRgn", (PyCFunction)Qd_PaintRgn, 1,
-        "(RgnHandle rgn) -> None"},
-       {"InvertRgn", (PyCFunction)Qd_InvertRgn, 1,
-        "(RgnHandle rgn) -> None"},
-       {"FillRgn", (PyCFunction)Qd_FillRgn, 1,
-        "(RgnHandle rgn, Pattern pat) -> None"},
-       {"GetPixel", (PyCFunction)Qd_GetPixel, 1,
-        "(short h, short v) -> (Boolean _rv)"},
-       {"PtInRect", (PyCFunction)Qd_PtInRect, 1,
-        "(Point pt, Rect r) -> (Boolean _rv)"},
-       {"DrawText", (PyCFunction)Qd_DrawText, 1,
-        "(Buffer textBuf, short firstByte, short byteCount) -> None"},
-       {"BitMap", (PyCFunction)Qd_BitMap, 1,
-        "Take (string, int, Rect) argument and create BitMap"},
-       {"RawBitMap", (PyCFunction)Qd_RawBitMap, 1,
-        "Take string BitMap and turn into BitMap object"},
-       {NULL, NULL, 0}
-};
-
-
-
-/* Like BMObj_New, but the original bitmap data structure is copied (and
-** released when the object is released)
-*/
-PyObject *BMObj_NewCopied(itself)
-       BitMapPtr itself;
-{
-       BitMapObject *it;
-       BitMapPtr itself_copy;
-       
-       if ((itself_copy=(BitMapPtr)malloc(sizeof(BitMap))) == NULL)
-               return PyErr_NoMemory();
-       *itself_copy = *itself;
-       it = (BitMapObject *)BMObj_New(itself_copy);
-       it->referred_bitmap = itself_copy;
-       return (PyObject *)it;
-}
-
-
-
-void initQd()
-{
-       PyObject *m;
-       PyObject *d;
-
-
-
-
-       m = Py_InitModule("Qd", Qd_methods);
-       d = PyModule_GetDict(m);
-       Qd_Error = PyMac_GetOSErrException();
-       if (Qd_Error == NULL ||
-           PyDict_SetItemString(d, "Error", Qd_Error) != 0)
-               return;
-       GrafPort_Type.ob_type = &PyType_Type;
-       Py_INCREF(&GrafPort_Type);
-       if (PyDict_SetItemString(d, "GrafPortType", (PyObject *)&GrafPort_Type) != 0)
-               Py_FatalError("can't initialize GrafPortType");
-       BitMap_Type.ob_type = &PyType_Type;
-       Py_INCREF(&BitMap_Type);
-       if (PyDict_SetItemString(d, "BitMapType", (PyObject *)&BitMap_Type) != 0)
-               Py_FatalError("can't initialize BitMapType");
-       QDGlobalsAccess_Type.ob_type = &PyType_Type;
-       Py_INCREF(&QDGlobalsAccess_Type);
-       if (PyDict_SetItemString(d, "QDGlobalsAccessType", (PyObject *)&QDGlobalsAccess_Type) != 0)
-               Py_FatalError("can't initialize QDGlobalsAccessType");
-
-       {
-               PyObject *o;
-               
-               o = QDGA_New();
-               if (o == NULL || PyDict_SetItemString(d, "qd", o) != 0)
-                       return;
-       }
-
-
-}
-
-/* ========================= End module Qd ========================== */
-
diff --git a/Mac/Modules/qd/qdsupport.py b/Mac/Modules/qd/qdsupport.py
deleted file mode 100644 (file)
index fe606f5..0000000
+++ /dev/null
@@ -1,618 +0,0 @@
-# This script generates a Python interface for an Apple Macintosh Manager.
-# It uses the "bgen" package to generate C code.
-# The function specifications are generated by scanning the mamager's header file,
-# using the "scantools" package (customized for this particular manager).
-
-import string
-
-# Declarations that change for each manager
-MACHEADERFILE = 'QuickDraw.h'          # The Apple header file
-MODNAME = 'Qd'                         # The name of the module
-OBJECTNAME = 'Graf'                    # The basic name of the objects used here
-
-# The following is *usually* unchanged but may still require tuning
-MODPREFIX = MODNAME                    # The prefix for module-wide routines
-OBJECTTYPE = OBJECTNAME + 'Ptr'                # The C type used to represent them
-OBJECTPREFIX = MODPREFIX + 'Obj'       # The prefix for object methods
-INPUTFILE = string.lower(MODPREFIX) + 'gen.py' # The file generated by the scanner
-EXTRAFILE = string.lower(MODPREFIX) + 'edit.py' # A similar file but hand-made
-OUTPUTFILE = MODNAME + "module.c"      # The file generated by this program
-
-from macsupport import *
-
-# Create the type objects
-
-class TextThingieClass(FixedInputBufferType):
-       def getargsCheck(self, name):
-               pass
-
-TextThingie = TextThingieClass(None)
-
-# These are temporary!
-RgnHandle = OpaqueByValueType("RgnHandle", "ResObj")
-OptRgnHandle = OpaqueByValueType("RgnHandle", "OptResObj")
-PicHandle = OpaqueByValueType("PicHandle", "ResObj")
-PolyHandle = OpaqueByValueType("PolyHandle", "ResObj")
-PixMapHandle = OpaqueByValueType("PixMapHandle", "ResObj")
-PixPatHandle = OpaqueByValueType("PixPatHandle", "ResObj")
-PatHandle = OpaqueByValueType("PatHandle", "ResObj")
-CursHandle = OpaqueByValueType("CursHandle", "ResObj")
-CCrsrHandle = OpaqueByValueType("CCrsrHandle", "ResObj")
-CIconHandle = OpaqueByValueType("CIconHandle", "ResObj")
-CTabHandle = OpaqueByValueType("CTabHandle", "ResObj")
-ITabHandle = OpaqueByValueType("ITabHandle", "ResObj")
-GDHandle = OpaqueByValueType("GDHandle", "ResObj")
-CGrafPtr = OpaqueByValueType("CGrafPtr", "GrafObj")
-GrafPtr = OpaqueByValueType("GrafPtr", "GrafObj")
-BitMap_ptr = OpaqueByValueType("BitMapPtr", "BMObj")
-const_BitMap_ptr = OpaqueByValueType("const BitMap *", "BMObj")
-BitMap = OpaqueType("BitMap", "BMObj_NewCopied", "BUG")
-RGBColor = OpaqueType('RGBColor', 'QdRGB')
-RGBColor_ptr = RGBColor
-FontInfo = OpaqueType('FontInfo', 'QdFI')
-Component = OpaqueByValueType('Component', 'CmpObj')
-ComponentInstance = OpaqueByValueType('ComponentInstance', 'CmpInstObj')
-
-Cursor = StructOutputBufferType('Cursor')
-Cursor_ptr = StructInputBufferType('Cursor')
-Pattern = StructOutputBufferType('Pattern')
-Pattern_ptr = StructInputBufferType('Pattern')
-PenState = StructOutputBufferType('PenState')
-PenState_ptr = StructInputBufferType('PenState')
-
-includestuff = includestuff + """
-#include <%s>""" % MACHEADERFILE + """
-
-#if !ACCESSOR_CALLS_ARE_FUNCTIONS
-#define GetPortBitMapForCopyBits(port) ((const struct BitMap *)&((GrafPort *)(port))->portBits)
-#define GetPortPixMap(port) (((CGrafPtr)(port))->portPixMap)
-#define GetPortBounds(port, bounds) (*(bounds) = (port)->portRect, (bounds))
-#define GetPortForeColor(port, color) (*(color) = (port)->rgbFgColor, (color))
-#define GetPortBackColor(port, color) (*(color) = (port)->rgbBkColor, (color))
-#define GetPortOpColor(port, color) (*(color) = (*(GVarHandle)((port)->grafVars))->rgbOpColor, (color))
-#define GetPortHiliteColor(port, color) (*(color) = (*(GVarHandle)((port)->grafVars))->rgbHiliteColor, (color))
-#define GetPortTextFont(port) ((port)->txFont)
-#define GetPortTextFace(port) ((port)->txFace)
-#define GetPortTextMode(port) ((port)->txMode)
-#define GetPortTextSize(port) ((port)->txSize)
-#define GetPortChExtra(port) ((port)->chExtra)
-#define GetPortFracHPenLocation(port) ((port)->pnLocHFrac)
-#define GetPortSpExtra(port) ((port)->spExtra)
-#define GetPortPenVisibility(port) ((port)->pnVis)
-#define GetPortVisibleRegion(port, rgn) ((rgn) = (port)->visRgn, (rgn))
-#define GetPortClipRegion(port, rgn) ((rgn) = (port)->clipRgn, (rgn))
-#define GetPortBackPixPat(port, pat) ((pat) = (port)->bkPixPat, (pat))
-#define GetPortPenPixPat(port, pat) ((pat) = (port)->pnPixPat, (pat))
-#define GetPortFillPixPat(port, pat) ((pat) = (port)->fillPixPat, (pat))
-#define GetPortPenSize(port, pensize) (*(pensize) = (port)->pnSize, (pensize))
-#define GetPortPenMode(port) ((port)->pnMode)
-#define GetPortPenLocation(port, location) ((*location) = (port)->pnLoc, (location))
-#define IsPortRegionBeingDefined(port) (!!((port)->rgnSave))
-#define IsPortPictureBeingDefined(port) (!!((port)->picSave))
-/* #define IsPortOffscreen(port) */
-/* #define IsPortColor(port) */
-
-#define SetPortBounds(port, bounds) ((port)->portRect = *(bounds))
-#define SetPortOpColor(port, color) ((*(GVarHandle)((port)->grafVars))->rgbOpColor = *(color))
-#define SetPortVisibleRegion(port, rgn) ((port)->visRgn = (rgn))
-#define SetPortClipRegion(port, rgn) ((port)->clipRgn = (rgn))
-#define SetPortBackPixPat(port, pat) ((port)->bkPixPat = (pat))
-#define SetPortPenPixPat(port, pat) ((port)->pnPixPat = (pat))
-#define SetPortFillPixPat(port, pat) ((port)->fillPixPat = (pat))
-#define SetPortPenSize(port, pensize) ((port)->pnSize = (pensize))
-#define SetPortPenMode(port, mode) ((port)->pnMode = (mode))
-#define SetPortFracHPenLocation(port, frac) ((port)->pnLocHFrac = (frac))
-
-/* On pixmaps */
-#define GetPixBounds(pixmap, rect) (*(rect) = (*(pixmap))->bounds, (rect))
-#define GetPixDepth(pixmap) ((*(pixmap))->pixelSize)
-
-/* On regions */
-#define GetRegionBounds(rgn, rect) (*(rect) = (*(rgn))->rgnBBox, (rect))
-
-/* On QD Globals */
-#define GetQDGlobalsRandomSeed() (qd.randSeed)
-#define GetQDGlobalsScreenBits(bits) (*(bits) = qd.screenBits, (bits))
-#define GetQDGlobalsArrow(crsr) (*(crsr) = qd.arrow, (crsr))
-#define GetQDGlobalsDarkGray(pat) (*(pat) = qd.dkGray, (pat))
-#define GetQDGlobalsLightGray(pat) (*(pat) = qd.ltGray, (pat))
-#define GetQDGlobalsGray(pat) (*(pat) = qd.gray, (pat))
-#define GetQDGlobalsBlack(pat) (*(pat) = qd.black, (pat))
-#define GetQDGlobalsWhite(pat) (*(pat) = qd.white, (pat))
-#define GetQDGlobalsThePort() ((CGrafPtr)qd.thePort)
-
-#define SetQDGlobalsRandomSeed(seed) (qd.randSeed = (seed))
-#define SetQDGlobalsArrow(crsr) (qd.arrow = *(crsr))
-
-#endif /* ACCESSOR_CALLS_ARE_FUNCTIONS */
-
-#if !TARGET_API_MAC_CARBON
-#define QDFlushPortBuffer(port, rgn) /* pass */
-#define QDIsPortBufferDirty(port) 0
-#define QDIsPortBuffered(port) 0
-#endif /* !TARGET_API_MAC_CARBON  */
-
-staticforward PyObject *BMObj_NewCopied(BitMapPtr);
-
-/*
-** Parse/generate RGB records
-*/
-PyObject *QdRGB_New(itself)
-       RGBColorPtr itself;
-{
-
-       return Py_BuildValue("lll", (long)itself->red, (long)itself->green, (long)itself->blue);
-}
-
-QdRGB_Convert(v, p_itself)
-       PyObject *v;
-       RGBColorPtr p_itself;
-{
-       long red, green, blue;
-       
-       if( !PyArg_ParseTuple(v, "lll", &red, &green, &blue) )
-               return 0;
-       p_itself->red = (unsigned short)red;
-       p_itself->green = (unsigned short)green;
-       p_itself->blue = (unsigned short)blue;
-       return 1;
-}
-
-/*
-** Generate FontInfo records
-*/
-static
-PyObject *QdFI_New(itself)
-       FontInfo *itself;
-{
-
-       return Py_BuildValue("hhhh", itself->ascent, itself->descent,
-                       itself->widMax, itself->leading);
-}
-"""
-
-finalstuff = finalstuff + """
-/* Like BMObj_New, but the original bitmap data structure is copied (and
-** released when the object is released)
-*/
-PyObject *BMObj_NewCopied(itself)
-       BitMapPtr itself;
-{
-       BitMapObject *it;
-       BitMapPtr itself_copy;
-       
-       if ((itself_copy=(BitMapPtr)malloc(sizeof(BitMap))) == NULL)
-               return PyErr_NoMemory();
-       *itself_copy = *itself;
-       it = (BitMapObject *)BMObj_New(itself_copy);
-       it->referred_bitmap = itself_copy;
-       return (PyObject *)it;
-}
-
-"""
-
-variablestuff = """
-{
-       PyObject *o;
-       
-       o = QDGA_New();
-       if (o == NULL || PyDict_SetItemString(d, "qd", o) != 0)
-               return;
-}
-"""
-
-## not yet...
-##
-##class Region_ObjectDefinition(GlobalObjectDefinition):
-##     def outputCheckNewArg(self):
-##             Output("if (itself == NULL) return PyMac_Error(resNotFound);")
-##     def outputFreeIt(self, itselfname):
-##             Output("DisposeRegion(%s);", itselfname)
-##
-##class Polygon_ObjectDefinition(GlobalObjectDefinition):
-##     def outputCheckNewArg(self):
-##             Output("if (itself == NULL) return PyMac_Error(resNotFound);")
-##     def outputFreeIt(self, itselfname):
-##             Output("KillPoly(%s);", itselfname)
-
-class MyGRObjectDefinition(GlobalObjectDefinition):
-       def outputCheckNewArg(self):
-               Output("if (itself == NULL) return PyMac_Error(resNotFound);")
-       def outputCheckConvertArg(self):
-               OutLbrace("if (DlgObj_Check(v))")
-               Output("DialogRef dlg = (DialogRef)((GrafPortObject *)v)->ob_itself;")
-               Output("*p_itself = (GrafPtr)GetWindowPort(GetDialogWindow(dlg));")
-               Output("return 1;")
-               OutRbrace()
-               OutLbrace("if (WinObj_Check(v))")
-               Output("WindowRef win = (WindowRef)((GrafPortObject *)v)->ob_itself;")
-               Output("*p_itself = (GrafPtr)GetWindowPort(win);")
-               Output("return 1;")
-               OutRbrace()
-       def outputGetattrHook(self):
-               Output("#if !ACCESSOR_CALLS_ARE_FUNCTIONS")
-               Output("""
-               {       CGrafPtr itself_color = (CGrafPtr)self->ob_itself;
-               
-                       if ( strcmp(name, "data") == 0 )
-                               return PyString_FromStringAndSize((char *)self->ob_itself, sizeof(GrafPort));
-                               
-                       if ( (itself_color->portVersion&0xc000) == 0xc000 ) {
-                               /* Color-only attributes */
-                       
-                               if ( strcmp(name, "portBits") == 0 )
-                                       /* XXXX Do we need HLock() stuff here?? */
-                                       return BMObj_New((BitMapPtr)*itself_color->portPixMap);
-                               if ( strcmp(name, "grafVars") == 0 )
-                                       return Py_BuildValue("O&", ResObj_New, (Handle)itself_color->visRgn);
-                               if ( strcmp(name, "chExtra") == 0 )
-                                       return Py_BuildValue("h", itself_color->chExtra);
-                               if ( strcmp(name, "pnLocHFrac") == 0 )
-                                       return Py_BuildValue("h", itself_color->pnLocHFrac);
-                               if ( strcmp(name, "bkPixPat") == 0 )
-                                       return Py_BuildValue("O&", ResObj_New, (Handle)itself_color->bkPixPat);
-                               if ( strcmp(name, "rgbFgColor") == 0 )
-                                       return Py_BuildValue("O&", QdRGB_New, &itself_color->rgbFgColor);
-                               if ( strcmp(name, "rgbBkColor") == 0 )
-                                       return Py_BuildValue("O&", QdRGB_New, &itself_color->rgbBkColor);
-                               if ( strcmp(name, "pnPixPat") == 0 )
-                                       return Py_BuildValue("O&", ResObj_New, (Handle)itself_color->pnPixPat);
-                               if ( strcmp(name, "fillPixPat") == 0 )
-                                       return Py_BuildValue("O&", ResObj_New, (Handle)itself_color->fillPixPat);
-                       } else {
-                               /* Mono-only attributes */
-                               if ( strcmp(name, "portBits") == 0 )
-                                       return BMObj_New(&self->ob_itself->portBits);
-                               if ( strcmp(name, "bkPat") == 0 )
-                                       return Py_BuildValue("s#", (char *)&self->ob_itself->bkPat, sizeof(Pattern));
-                               if ( strcmp(name, "fillPat") == 0 )
-                                       return Py_BuildValue("s#", (char *)&self->ob_itself->fillPat, sizeof(Pattern));
-                               if ( strcmp(name, "pnPat") == 0 )
-                                       return Py_BuildValue("s#", (char *)&self->ob_itself->pnPat, sizeof(Pattern));
-                       }
-                       /*
-                       ** Accessible for both color/mono windows.
-                       ** portVersion is really color-only, but we put it here
-                       ** for convenience
-                       */
-                       if ( strcmp(name, "portVersion") == 0 )
-                               return Py_BuildValue("h", itself_color->portVersion);
-                       if ( strcmp(name, "device") == 0 )
-                               return PyInt_FromLong((long)self->ob_itself->device);
-                       if ( strcmp(name, "portRect") == 0 )
-                               return Py_BuildValue("O&", PyMac_BuildRect, &self->ob_itself->portRect);
-                       if ( strcmp(name, "visRgn") == 0 )
-                               return Py_BuildValue("O&", ResObj_New, (Handle)self->ob_itself->visRgn);
-                       if ( strcmp(name, "clipRgn") == 0 )
-                               return Py_BuildValue("O&", ResObj_New, (Handle)self->ob_itself->clipRgn);
-                       if ( strcmp(name, "pnLoc") == 0 )
-                               return Py_BuildValue("O&", PyMac_BuildPoint, self->ob_itself->pnLoc);
-                       if ( strcmp(name, "pnSize") == 0 )
-                               return Py_BuildValue("O&", PyMac_BuildPoint, self->ob_itself->pnSize);
-                       if ( strcmp(name, "pnMode") == 0 )
-                               return Py_BuildValue("h", self->ob_itself->pnMode);
-                       if ( strcmp(name, "pnVis") == 0 )
-                               return Py_BuildValue("h", self->ob_itself->pnVis);
-                       if ( strcmp(name, "txFont") == 0 )
-                               return Py_BuildValue("h", self->ob_itself->txFont);
-                       if ( strcmp(name, "txFace") == 0 )
-                               return Py_BuildValue("h", (short)self->ob_itself->txFace);
-                       if ( strcmp(name, "txMode") == 0 )
-                               return Py_BuildValue("h", self->ob_itself->txMode);
-                       if ( strcmp(name, "txSize") == 0 )
-                               return Py_BuildValue("h", self->ob_itself->txSize);
-                       if ( strcmp(name, "spExtra") == 0 )
-                               return Py_BuildValue("O&", PyMac_BuildFixed, self->ob_itself->spExtra);
-                       /* XXXX Add more, as needed */
-                       /* This one is so we can compare grafports: */
-                       if ( strcmp(name, "_id") == 0 )
-                               return Py_BuildValue("l", (long)self->ob_itself);
-               }""")
-               Output("#else")
-               Output("""
-               {       CGrafPtr itself_color = (CGrafPtr)self->ob_itself;
-                       if ( strcmp(name, "portBits") == 0 )
-                               return BMObj_New((BitMapPtr)GetPortBitMapForCopyBits(itself_color));
-                       if ( strcmp(name, "chExtra") == 0 )
-                               return Py_BuildValue("h", GetPortChExtra(itself_color));
-                       if ( strcmp(name, "pnLocHFrac") == 0 )
-                               return Py_BuildValue("h", GetPortFracHPenLocation(itself_color));
-                       if ( strcmp(name, "bkPixPat") == 0 ) {
-                               PixPatHandle h=0;
-                               return Py_BuildValue("O&", ResObj_New, (Handle)GetPortBackPixPat(itself_color, h));
-                       }
-                       if ( strcmp(name, "rgbFgColor") == 0 ) {
-                               RGBColor c;
-                               return Py_BuildValue("O&", QdRGB_New, GetPortForeColor(itself_color, &c));
-                       }
-                       if ( strcmp(name, "rgbBkColor") == 0 ) {
-                               RGBColor c;
-                               return Py_BuildValue("O&", QdRGB_New, GetPortBackColor(itself_color, &c));
-                       }
-                       if ( strcmp(name, "pnPixPat") == 0 ) {
-                               PixPatHandle h=NewPixPat(); /* XXXX wrong dispose routine */
-                               
-                               return Py_BuildValue("O&", ResObj_New, (Handle)GetPortPenPixPat(itself_color, h));
-                       }
-                       if ( strcmp(name, "fillPixPat") == 0 ) {
-                               PixPatHandle h=NewPixPat(); /* XXXX wrong dispose routine */
-                               return Py_BuildValue("O&", ResObj_New, (Handle)GetPortFillPixPat(itself_color, h));
-                       }
-                       if ( strcmp(name, "portRect") == 0 ) {
-                               Rect r;
-                               return Py_BuildValue("O&", PyMac_BuildRect, GetPortBounds(itself_color, &r));
-                       }
-                       if ( strcmp(name, "visRgn") == 0 ) {
-                               RgnHandle h=NewRgn(); /* XXXX wrong dispose routine */
-                               return Py_BuildValue("O&", ResObj_New, (Handle)GetPortVisibleRegion(itself_color, h));
-                       }
-                       if ( strcmp(name, "clipRgn") == 0 ) {
-                               RgnHandle h=NewRgn(); /* XXXX wrong dispose routine */
-                               return Py_BuildValue("O&", ResObj_New, (Handle)GetPortClipRegion(itself_color, h));
-                       }
-                       if ( strcmp(name, "pnLoc") == 0 ) {
-                               Point p;
-                               return Py_BuildValue("O&", PyMac_BuildPoint, *GetPortPenLocation(itself_color, &p));
-                       }
-                       if ( strcmp(name, "pnSize") == 0 ) {
-                               Point p;
-                               return Py_BuildValue("O&", PyMac_BuildPoint, *GetPortPenSize(itself_color, &p));
-                       }
-                       if ( strcmp(name, "pnMode") == 0 )
-                               return Py_BuildValue("h", GetPortPenMode(itself_color));
-                       if ( strcmp(name, "pnVis") == 0 )
-                               return Py_BuildValue("h", GetPortPenVisibility(itself_color));
-                       if ( strcmp(name, "txFont") == 0 )
-                               return Py_BuildValue("h", GetPortTextFont(itself_color));
-                       if ( strcmp(name, "txFace") == 0 )
-                               return Py_BuildValue("h", (short)GetPortTextFace(itself_color));
-                       if ( strcmp(name, "txMode") == 0 )
-                               return Py_BuildValue("h", GetPortTextMode(itself_color));
-                       if ( strcmp(name, "txSize") == 0 )
-                               return Py_BuildValue("h", GetPortTextSize(itself_color));
-                       if ( strcmp(name, "spExtra") == 0 )
-                               return Py_BuildValue("O&", PyMac_BuildFixed, GetPortSpExtra(itself_color));
-                       /* XXXX Add more, as needed */
-                       /* This one is so we can compare grafports: */
-                       if ( strcmp(name, "_id") == 0 )
-                               return Py_BuildValue("l", (long)self->ob_itself);
-               }""")
-               Output("#endif")
-
-class MyBMObjectDefinition(GlobalObjectDefinition):
-       def outputCheckNewArg(self):
-               Output("if (itself == NULL) return PyMac_Error(resNotFound);")
-       def outputStructMembers(self):
-               # We need to more items: a pointer to privately allocated data
-               # and a python object we're referring to.
-               Output("%s ob_itself;", self.itselftype)
-               Output("PyObject *referred_object;")
-               Output("BitMap *referred_bitmap;")
-       def outputInitStructMembers(self):
-               Output("it->ob_itself = %sitself;", self.argref)
-               Output("it->referred_object = NULL;")
-               Output("it->referred_bitmap = NULL;")
-       def outputCleanupStructMembers(self):
-               Output("Py_XDECREF(self->referred_object);")
-               Output("if (self->referred_bitmap) free(self->referred_bitmap);")
-       def outputGetattrHook(self):
-               Output("""if ( strcmp(name, "baseAddr") == 0 )
-                       return PyInt_FromLong((long)self->ob_itself->baseAddr);
-               if ( strcmp(name, "rowBytes") == 0 )
-                       return PyInt_FromLong((long)self->ob_itself->rowBytes);
-               if ( strcmp(name, "bounds") == 0 )
-                       return Py_BuildValue("O&", PyMac_BuildRect, &self->ob_itself->bounds);
-               /* XXXX Add more, as needed */
-               if ( strcmp(name, "bitmap_data") == 0 )
-                       return PyString_FromStringAndSize((char *)self->ob_itself, sizeof(BitMap));
-               if ( strcmp(name, "pixmap_data") == 0 )
-                       return PyString_FromStringAndSize((char *)self->ob_itself, sizeof(PixMap));
-               """)
-               
-# This object is instanciated once, and will access qd globals.
-class QDGlobalsAccessObjectDefinition(ObjectDefinition):
-       def outputStructMembers(self):
-               pass
-       def outputNew(self):
-               Output()
-               Output("%sPyObject *%s_New()", self.static, self.prefix)
-               OutLbrace()
-               Output("%s *it;", self.objecttype)
-               Output("it = PyObject_NEW(%s, &%s);", self.objecttype, self.typename)
-               Output("if (it == NULL) return NULL;")
-               Output("return (PyObject *)it;")
-               OutRbrace()
-       def outputConvert(self):
-               pass
-       def outputCleanupStructMembers(self):
-               pass
-
-       def outputGetattrHook(self):
-               Output("#if !ACCESSOR_CALLS_ARE_FUNCTIONS")
-               Output("""
-       if ( strcmp(name, "arrow") == 0 )
-               return PyString_FromStringAndSize((char *)&qd.arrow, sizeof(qd.arrow));
-       if ( strcmp(name, "black") == 0 ) 
-               return PyString_FromStringAndSize((char *)&qd.black, sizeof(qd.black));
-       if ( strcmp(name, "white") == 0 ) 
-               return PyString_FromStringAndSize((char *)&qd.white, sizeof(qd.white));
-       if ( strcmp(name, "gray") == 0 ) 
-               return PyString_FromStringAndSize((char *)&qd.gray, sizeof(qd.gray));
-       if ( strcmp(name, "ltGray") == 0 ) 
-               return PyString_FromStringAndSize((char *)&qd.ltGray, sizeof(qd.ltGray));
-       if ( strcmp(name, "dkGray") == 0 ) 
-               return PyString_FromStringAndSize((char *)&qd.dkGray, sizeof(qd.dkGray));
-       if ( strcmp(name, "screenBits") == 0 ) 
-               return BMObj_New(&qd.screenBits);
-       if ( strcmp(name, "thePort") == 0 ) 
-               return GrafObj_New(qd.thePort);
-       if ( strcmp(name, "randSeed") == 0 ) 
-               return Py_BuildValue("l", &qd.randSeed);
-               """)
-               Output("#else")
-               Output("""
-       if ( strcmp(name, "arrow") == 0 ) {
-               Cursor rv;
-               GetQDGlobalsArrow(&rv);
-               return PyString_FromStringAndSize((char *)&rv, sizeof(rv));
-       }
-       if ( strcmp(name, "black") == 0 ) {
-               Pattern rv;
-               GetQDGlobalsBlack(&rv);
-               return PyString_FromStringAndSize((char *)&rv, sizeof(rv));
-       }
-       if ( strcmp(name, "white") == 0 )  {
-               Pattern rv;
-               GetQDGlobalsWhite(&rv);
-               return PyString_FromStringAndSize((char *)&rv, sizeof(rv));
-       }
-       if ( strcmp(name, "gray") == 0 )  {
-               Pattern rv;
-               GetQDGlobalsGray(&rv);
-               return PyString_FromStringAndSize((char *)&rv, sizeof(rv));
-       }
-       if ( strcmp(name, "ltGray") == 0 )  {
-               Pattern rv;
-               GetQDGlobalsLightGray(&rv);
-               return PyString_FromStringAndSize((char *)&rv, sizeof(rv));
-       }
-       if ( strcmp(name, "dkGray") == 0 )  {
-               Pattern rv;
-               GetQDGlobalsDarkGray(&rv);
-               return PyString_FromStringAndSize((char *)&rv, sizeof(rv));
-       }
-       if ( strcmp(name, "screenBits") == 0 ) {
-               BitMap rv;
-               GetQDGlobalsScreenBits(&rv);
-               return BMObj_NewCopied(&rv);
-       }
-       if ( strcmp(name, "thePort") == 0 ) 
-               return GrafObj_New(GetQDGlobalsThePort());
-       if ( strcmp(name, "randSeed") == 0 ) 
-               return Py_BuildValue("l", GetQDGlobalsRandomSeed());
-               """)
-               Output("#endif")
-
-# Create the generator groups and link them
-module = MacModule(MODNAME, MODPREFIX, includestuff, finalstuff, initstuff, variablestuff)
-##r_object = Region_ObjectDefinition('Region', 'QdRgn', 'RgnHandle')
-##po_object = Polygon_ObjectDefinition('Polygon', 'QdPgn', 'PolyHandle')
-##module.addobject(r_object)
-##module.addobject(po_object)
-gr_object = MyGRObjectDefinition("GrafPort", "GrafObj", "GrafPtr")
-module.addobject(gr_object)
-bm_object = MyBMObjectDefinition("BitMap", "BMObj", "BitMapPtr")
-module.addobject(bm_object)
-qd_object = QDGlobalsAccessObjectDefinition("QDGlobalsAccess", "QDGA", "XXXX")
-module.addobject(qd_object)
-
-
-# Create the generator classes used to populate the lists
-Function = OSErrFunctionGenerator
-Method = OSErrMethodGenerator
-
-# Create and populate the lists
-functions = []
-methods = []
-execfile(INPUTFILE)
-execfile(EXTRAFILE)
-
-# add the populated lists to the generator groups
-# (in a different wordl the scan program would generate this)
-for f in functions: module.add(f)
-##for f in r_methods: r_object.add(f)
-##for f in po_methods: po_object.add(f)
-
-# Manual generator: get data out of a bitmap
-getdata_body = """
-int from, length;
-char *cp;
-
-if ( !PyArg_ParseTuple(_args, "ii", &from, &length) )
-       return NULL;
-cp = _self->ob_itself->baseAddr+from;
-return PyString_FromStringAndSize(cp, length);
-"""
-f = ManualGenerator("getdata", getdata_body)
-f.docstring = lambda: """(int start, int size) -> string. Return bytes from the bitmap"""
-bm_object.add(f)
-
-# Manual generator: store data in a bitmap
-putdata_body = """
-int from, length;
-char *cp, *icp;
-
-if ( !PyArg_ParseTuple(_args, "is#", &from, &icp, &length) )
-       return NULL;
-cp = _self->ob_itself->baseAddr+from;
-memcpy(cp, icp, length);
-Py_INCREF(Py_None);
-return Py_None;
-"""
-f = ManualGenerator("putdata", putdata_body)
-f.docstring = lambda: """(int start, string data). Store bytes into the bitmap"""
-bm_object.add(f)
-
-#
-# We manually generate a routine to create a BitMap from python data.
-#
-BitMap_body = """
-BitMap *ptr;
-PyObject *source;
-Rect bounds;
-int rowbytes;
-char *data;
-
-if ( !PyArg_ParseTuple(_args, "O!iO&", &PyString_Type, &source, &rowbytes, PyMac_GetRect,
-               &bounds) )
-       return NULL;
-data = PyString_AsString(source);
-if ((ptr=(BitMap *)malloc(sizeof(BitMap))) == NULL )
-       return PyErr_NoMemory();
-ptr->baseAddr = (Ptr)data;
-ptr->rowBytes = rowbytes;
-ptr->bounds = bounds;
-if ( (_res = BMObj_New(ptr)) == NULL ) {
-       free(ptr);
-       return NULL;
-}
-((BitMapObject *)_res)->referred_object = source;
-Py_INCREF(source);
-((BitMapObject *)_res)->referred_bitmap = ptr;
-return _res;
-"""
-       
-f = ManualGenerator("BitMap", BitMap_body)
-f.docstring = lambda: """Take (string, int, Rect) argument and create BitMap"""
-module.add(f)
-
-#
-# And again, for turning a correctly-formatted structure into the object
-#
-RawBitMap_body = """
-BitMap *ptr;
-PyObject *source;
-
-if ( !PyArg_ParseTuple(_args, "O!", &PyString_Type, &source) )
-       return NULL;
-if ( PyString_Size(source) != sizeof(BitMap) && PyString_Size(source) != sizeof(PixMap) ) {
-       PyErr_BadArgument();
-       return NULL;
-}
-ptr = (BitMapPtr)PyString_AsString(source);
-if ( (_res = BMObj_New(ptr)) == NULL ) {
-       return NULL;
-}
-((BitMapObject *)_res)->referred_object = source;
-Py_INCREF(source);
-return _res;
-"""
-       
-f = ManualGenerator("RawBitMap", RawBitMap_body)
-f.docstring = lambda: """Take string BitMap and turn into BitMap object"""
-module.add(f)
-
-# generate output (open the output file as late as possible)
-SetOutputFileName(OUTPUTFILE)
-module.generate()
-SetOutputFile() # Close it
diff --git a/Mac/Modules/qdoffs/Qdoffsmodule.c b/Mac/Modules/qdoffs/Qdoffsmodule.c
deleted file mode 100644 (file)
index 2caf6f3..0000000
+++ /dev/null
@@ -1,639 +0,0 @@
-
-/* ========================= Module Qdoffs ========================== */
-
-#include "Python.h"
-
-
-
-#include "macglue.h"
-#include "pymactoolbox.h"
-
-#include <QDOffscreen.h>
-
-#define as_GrafPtr(gworld) ((GrafPtr)(gworld))
-
-
-static PyObject *Qdoffs_Error;
-
-/* ----------------------- Object type GWorld ----------------------- */
-
-PyTypeObject GWorld_Type;
-
-#define GWorldObj_Check(x) ((x)->ob_type == &GWorld_Type)
-
-typedef struct GWorldObject {
-       PyObject_HEAD
-       GWorldPtr ob_itself;
-} GWorldObject;
-
-PyObject *GWorldObj_New(itself)
-       GWorldPtr itself;
-{
-       GWorldObject *it;
-       if (itself == NULL) return PyMac_Error(resNotFound);
-       it = PyObject_NEW(GWorldObject, &GWorld_Type);
-       if (it == NULL) return NULL;
-       it->ob_itself = itself;
-       return (PyObject *)it;
-}
-GWorldObj_Convert(v, p_itself)
-       PyObject *v;
-       GWorldPtr *p_itself;
-{
-       if (!GWorldObj_Check(v))
-       {
-               PyErr_SetString(PyExc_TypeError, "GWorld required");
-               return 0;
-       }
-       *p_itself = ((GWorldObject *)v)->ob_itself;
-       return 1;
-}
-
-static void GWorldObj_dealloc(self)
-       GWorldObject *self;
-{
-       DisposeGWorld(self->ob_itself);
-       PyMem_DEL(self);
-}
-
-static PyObject *GWorldObj_GetGWorldDevice(_self, _args)
-       GWorldObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       GDHandle _rv;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _rv = GetGWorldDevice(_self->ob_itself);
-       _res = Py_BuildValue("O&",
-                            ResObj_New, _rv);
-       return _res;
-}
-
-static PyObject *GWorldObj_GetGWorldPixMap(_self, _args)
-       GWorldObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       PixMapHandle _rv;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _rv = GetGWorldPixMap(_self->ob_itself);
-       _res = Py_BuildValue("O&",
-                            ResObj_New, _rv);
-       return _res;
-}
-
-static PyObject *GWorldObj_as_GrafPtr(_self, _args)
-       GWorldObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       GrafPtr _rv;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _rv = as_GrafPtr(_self->ob_itself);
-       _res = Py_BuildValue("O&",
-                            GrafObj_New, _rv);
-       return _res;
-}
-
-static PyMethodDef GWorldObj_methods[] = {
-       {"GetGWorldDevice", (PyCFunction)GWorldObj_GetGWorldDevice, 1,
-        "() -> (GDHandle _rv)"},
-       {"GetGWorldPixMap", (PyCFunction)GWorldObj_GetGWorldPixMap, 1,
-        "() -> (PixMapHandle _rv)"},
-       {"as_GrafPtr", (PyCFunction)GWorldObj_as_GrafPtr, 1,
-        "() -> (GrafPtr _rv)"},
-       {NULL, NULL, 0}
-};
-
-PyMethodChain GWorldObj_chain = { GWorldObj_methods, NULL };
-
-static PyObject *GWorldObj_getattr(self, name)
-       GWorldObject *self;
-       char *name;
-{
-       return Py_FindMethodInChain(&GWorldObj_chain, (PyObject *)self, name);
-}
-
-#define GWorldObj_setattr NULL
-
-#define GWorldObj_compare NULL
-
-#define GWorldObj_repr NULL
-
-#define GWorldObj_hash NULL
-
-PyTypeObject GWorld_Type = {
-       PyObject_HEAD_INIT(&PyType_Type)
-       0, /*ob_size*/
-       "GWorld", /*tp_name*/
-       sizeof(GWorldObject), /*tp_basicsize*/
-       0, /*tp_itemsize*/
-       /* methods */
-       (destructor) GWorldObj_dealloc, /*tp_dealloc*/
-       0, /*tp_print*/
-       (getattrfunc) GWorldObj_getattr, /*tp_getattr*/
-       (setattrfunc) GWorldObj_setattr, /*tp_setattr*/
-       (cmpfunc) GWorldObj_compare, /*tp_compare*/
-       (reprfunc) GWorldObj_repr, /*tp_repr*/
-       (PyNumberMethods *)0, /* tp_as_number */
-       (PySequenceMethods *)0, /* tp_as_sequence */
-       (PyMappingMethods *)0, /* tp_as_mapping */
-       (hashfunc) GWorldObj_hash, /*tp_hash*/
-};
-
-/* --------------------- End object type GWorld --------------------- */
-
-
-static PyObject *Qdoffs_NewGWorld(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       QDErr _err;
-       GWorldPtr offscreenGWorld;
-       short PixelDepth;
-       Rect boundsRect;
-       CTabHandle cTable;
-       GDHandle aGDevice;
-       GWorldFlags flags;
-       if (!PyArg_ParseTuple(_args, "hO&O&O&l",
-                             &PixelDepth,
-                             PyMac_GetRect, &boundsRect,
-                             OptResObj_Convert, &cTable,
-                             OptResObj_Convert, &aGDevice,
-                             &flags))
-               return NULL;
-       _err = NewGWorld(&offscreenGWorld,
-                        PixelDepth,
-                        &boundsRect,
-                        cTable,
-                        aGDevice,
-                        flags);
-       if (_err != noErr) return PyMac_Error(_err);
-       _res = Py_BuildValue("O&",
-                            GWorldObj_New, offscreenGWorld);
-       return _res;
-}
-
-static PyObject *Qdoffs_LockPixels(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Boolean _rv;
-       PixMapHandle pm;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             ResObj_Convert, &pm))
-               return NULL;
-       _rv = LockPixels(pm);
-       _res = Py_BuildValue("b",
-                            _rv);
-       return _res;
-}
-
-static PyObject *Qdoffs_UnlockPixels(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       PixMapHandle pm;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             ResObj_Convert, &pm))
-               return NULL;
-       UnlockPixels(pm);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *Qdoffs_UpdateGWorld(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       GWorldFlags _rv;
-       GWorldPtr offscreenGWorld;
-       short pixelDepth;
-       Rect boundsRect;
-       CTabHandle cTable;
-       GDHandle aGDevice;
-       GWorldFlags flags;
-       if (!PyArg_ParseTuple(_args, "hO&O&O&l",
-                             &pixelDepth,
-                             PyMac_GetRect, &boundsRect,
-                             OptResObj_Convert, &cTable,
-                             OptResObj_Convert, &aGDevice,
-                             &flags))
-               return NULL;
-       _rv = UpdateGWorld(&offscreenGWorld,
-                          pixelDepth,
-                          &boundsRect,
-                          cTable,
-                          aGDevice,
-                          flags);
-       _res = Py_BuildValue("lO&",
-                            _rv,
-                            GWorldObj_New, offscreenGWorld);
-       return _res;
-}
-
-static PyObject *Qdoffs_GetGWorld(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       CGrafPtr port;
-       GDHandle gdh;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       GetGWorld(&port,
-                 &gdh);
-       _res = Py_BuildValue("O&O&",
-                            GrafObj_New, port,
-                            ResObj_New, gdh);
-       return _res;
-}
-
-static PyObject *Qdoffs_SetGWorld(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       CGrafPtr port;
-       GDHandle gdh;
-       if (!PyArg_ParseTuple(_args, "O&O&",
-                             GrafObj_Convert, &port,
-                             OptResObj_Convert, &gdh))
-               return NULL;
-       SetGWorld(port,
-                 gdh);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *Qdoffs_CTabChanged(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       CTabHandle ctab;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             OptResObj_Convert, &ctab))
-               return NULL;
-       CTabChanged(ctab);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *Qdoffs_PixPatChanged(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       PixPatHandle ppat;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             ResObj_Convert, &ppat))
-               return NULL;
-       PixPatChanged(ppat);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *Qdoffs_PortChanged(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       GrafPtr port;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             GrafObj_Convert, &port))
-               return NULL;
-       PortChanged(port);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *Qdoffs_GDeviceChanged(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       GDHandle gdh;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             OptResObj_Convert, &gdh))
-               return NULL;
-       GDeviceChanged(gdh);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *Qdoffs_AllowPurgePixels(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       PixMapHandle pm;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             ResObj_Convert, &pm))
-               return NULL;
-       AllowPurgePixels(pm);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *Qdoffs_NoPurgePixels(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       PixMapHandle pm;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             ResObj_Convert, &pm))
-               return NULL;
-       NoPurgePixels(pm);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *Qdoffs_GetPixelsState(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       GWorldFlags _rv;
-       PixMapHandle pm;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             ResObj_Convert, &pm))
-               return NULL;
-       _rv = GetPixelsState(pm);
-       _res = Py_BuildValue("l",
-                            _rv);
-       return _res;
-}
-
-static PyObject *Qdoffs_SetPixelsState(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       PixMapHandle pm;
-       GWorldFlags state;
-       if (!PyArg_ParseTuple(_args, "O&l",
-                             ResObj_Convert, &pm,
-                             &state))
-               return NULL;
-       SetPixelsState(pm,
-                      state);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *Qdoffs_GetPixRowBytes(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       long _rv;
-       PixMapHandle pm;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             ResObj_Convert, &pm))
-               return NULL;
-       _rv = GetPixRowBytes(pm);
-       _res = Py_BuildValue("l",
-                            _rv);
-       return _res;
-}
-
-static PyObject *Qdoffs_NewScreenBuffer(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       QDErr _err;
-       Rect globalRect;
-       Boolean purgeable;
-       GDHandle gdh;
-       PixMapHandle offscreenPixMap;
-       if (!PyArg_ParseTuple(_args, "O&b",
-                             PyMac_GetRect, &globalRect,
-                             &purgeable))
-               return NULL;
-       _err = NewScreenBuffer(&globalRect,
-                              purgeable,
-                              &gdh,
-                              &offscreenPixMap);
-       if (_err != noErr) return PyMac_Error(_err);
-       _res = Py_BuildValue("O&O&",
-                            ResObj_New, gdh,
-                            ResObj_New, offscreenPixMap);
-       return _res;
-}
-
-static PyObject *Qdoffs_DisposeScreenBuffer(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       PixMapHandle offscreenPixMap;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             ResObj_Convert, &offscreenPixMap))
-               return NULL;
-       DisposeScreenBuffer(offscreenPixMap);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *Qdoffs_QDDone(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Boolean _rv;
-       GrafPtr port;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             GrafObj_Convert, &port))
-               return NULL;
-       _rv = QDDone(port);
-       _res = Py_BuildValue("b",
-                            _rv);
-       return _res;
-}
-
-static PyObject *Qdoffs_OffscreenVersion(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       long _rv;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _rv = OffscreenVersion();
-       _res = Py_BuildValue("l",
-                            _rv);
-       return _res;
-}
-
-static PyObject *Qdoffs_NewTempScreenBuffer(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       QDErr _err;
-       Rect globalRect;
-       Boolean purgeable;
-       GDHandle gdh;
-       PixMapHandle offscreenPixMap;
-       if (!PyArg_ParseTuple(_args, "O&b",
-                             PyMac_GetRect, &globalRect,
-                             &purgeable))
-               return NULL;
-       _err = NewTempScreenBuffer(&globalRect,
-                                  purgeable,
-                                  &gdh,
-                                  &offscreenPixMap);
-       if (_err != noErr) return PyMac_Error(_err);
-       _res = Py_BuildValue("O&O&",
-                            ResObj_New, gdh,
-                            ResObj_New, offscreenPixMap);
-       return _res;
-}
-
-static PyObject *Qdoffs_PixMap32Bit(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Boolean _rv;
-       PixMapHandle pmHandle;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             ResObj_Convert, &pmHandle))
-               return NULL;
-       _rv = PixMap32Bit(pmHandle);
-       _res = Py_BuildValue("b",
-                            _rv);
-       return _res;
-}
-
-static PyObject *Qdoffs_GetPixMapBytes(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-
-       PixMapHandle pm;
-       int from, length;
-       char *cp;
-
-       if ( !PyArg_ParseTuple(_args, "O&ii", ResObj_Convert, &pm, &from, &length) )
-               return NULL;
-       cp = GetPixBaseAddr(pm)+from;
-       return PyString_FromStringAndSize(cp, length);
-
-}
-
-static PyObject *Qdoffs_PutPixMapBytes(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-
-       PixMapHandle pm;
-       int from, length;
-       char *cp, *icp;
-
-       if ( !PyArg_ParseTuple(_args, "O&is#", ResObj_Convert, &pm, &from, &icp, &length) )
-               return NULL;
-       cp = GetPixBaseAddr(pm)+from;
-       memcpy(cp, icp, length);
-       Py_INCREF(Py_None);
-       return Py_None;
-
-}
-
-static PyMethodDef Qdoffs_methods[] = {
-       {"NewGWorld", (PyCFunction)Qdoffs_NewGWorld, 1,
-        "(short PixelDepth, Rect boundsRect, CTabHandle cTable, GDHandle aGDevice, GWorldFlags flags) -> (GWorldPtr offscreenGWorld)"},
-       {"LockPixels", (PyCFunction)Qdoffs_LockPixels, 1,
-        "(PixMapHandle pm) -> (Boolean _rv)"},
-       {"UnlockPixels", (PyCFunction)Qdoffs_UnlockPixels, 1,
-        "(PixMapHandle pm) -> None"},
-       {"UpdateGWorld", (PyCFunction)Qdoffs_UpdateGWorld, 1,
-        "(short pixelDepth, Rect boundsRect, CTabHandle cTable, GDHandle aGDevice, GWorldFlags flags) -> (GWorldFlags _rv, GWorldPtr offscreenGWorld)"},
-       {"GetGWorld", (PyCFunction)Qdoffs_GetGWorld, 1,
-        "() -> (CGrafPtr port, GDHandle gdh)"},
-       {"SetGWorld", (PyCFunction)Qdoffs_SetGWorld, 1,
-        "(CGrafPtr port, GDHandle gdh) -> None"},
-       {"CTabChanged", (PyCFunction)Qdoffs_CTabChanged, 1,
-        "(CTabHandle ctab) -> None"},
-       {"PixPatChanged", (PyCFunction)Qdoffs_PixPatChanged, 1,
-        "(PixPatHandle ppat) -> None"},
-       {"PortChanged", (PyCFunction)Qdoffs_PortChanged, 1,
-        "(GrafPtr port) -> None"},
-       {"GDeviceChanged", (PyCFunction)Qdoffs_GDeviceChanged, 1,
-        "(GDHandle gdh) -> None"},
-       {"AllowPurgePixels", (PyCFunction)Qdoffs_AllowPurgePixels, 1,
-        "(PixMapHandle pm) -> None"},
-       {"NoPurgePixels", (PyCFunction)Qdoffs_NoPurgePixels, 1,
-        "(PixMapHandle pm) -> None"},
-       {"GetPixelsState", (PyCFunction)Qdoffs_GetPixelsState, 1,
-        "(PixMapHandle pm) -> (GWorldFlags _rv)"},
-       {"SetPixelsState", (PyCFunction)Qdoffs_SetPixelsState, 1,
-        "(PixMapHandle pm, GWorldFlags state) -> None"},
-       {"GetPixRowBytes", (PyCFunction)Qdoffs_GetPixRowBytes, 1,
-        "(PixMapHandle pm) -> (long _rv)"},
-       {"NewScreenBuffer", (PyCFunction)Qdoffs_NewScreenBuffer, 1,
-        "(Rect globalRect, Boolean purgeable) -> (GDHandle gdh, PixMapHandle offscreenPixMap)"},
-       {"DisposeScreenBuffer", (PyCFunction)Qdoffs_DisposeScreenBuffer, 1,
-        "(PixMapHandle offscreenPixMap) -> None"},
-       {"QDDone", (PyCFunction)Qdoffs_QDDone, 1,
-        "(GrafPtr port) -> (Boolean _rv)"},
-       {"OffscreenVersion", (PyCFunction)Qdoffs_OffscreenVersion, 1,
-        "() -> (long _rv)"},
-       {"NewTempScreenBuffer", (PyCFunction)Qdoffs_NewTempScreenBuffer, 1,
-        "(Rect globalRect, Boolean purgeable) -> (GDHandle gdh, PixMapHandle offscreenPixMap)"},
-       {"PixMap32Bit", (PyCFunction)Qdoffs_PixMap32Bit, 1,
-        "(PixMapHandle pmHandle) -> (Boolean _rv)"},
-       {"GetPixMapBytes", (PyCFunction)Qdoffs_GetPixMapBytes, 1,
-        "(pixmap, int start, int size) -> string. Return bytes from the pixmap"},
-       {"PutPixMapBytes", (PyCFunction)Qdoffs_PutPixMapBytes, 1,
-        "(pixmap, int start, string data). Store bytes into the pixmap"},
-       {NULL, NULL, 0}
-};
-
-
-
-
-void initQdoffs()
-{
-       PyObject *m;
-       PyObject *d;
-
-
-
-
-       m = Py_InitModule("Qdoffs", Qdoffs_methods);
-       d = PyModule_GetDict(m);
-       Qdoffs_Error = PyMac_GetOSErrException();
-       if (Qdoffs_Error == NULL ||
-           PyDict_SetItemString(d, "Error", Qdoffs_Error) != 0)
-               return;
-       GWorld_Type.ob_type = &PyType_Type;
-       Py_INCREF(&GWorld_Type);
-       if (PyDict_SetItemString(d, "GWorldType", (PyObject *)&GWorld_Type) != 0)
-               Py_FatalError("can't initialize GWorldType");
-}
-
-/* ======================= End module Qdoffs ======================== */
-
diff --git a/Mac/Modules/qdoffs/qdoffssupport.py b/Mac/Modules/qdoffs/qdoffssupport.py
deleted file mode 100644 (file)
index 7f4a043..0000000
+++ /dev/null
@@ -1,124 +0,0 @@
-# This script generates a Python interface for an Apple Macintosh Manager.
-# It uses the "bgen" package to generate C code.
-# The function specifications are generated by scanning the mamager's header file,
-# using the "scantools" package (customized for this particular manager).
-
-import string
-
-# Declarations that change for each manager
-MACHEADERFILE = 'QDOffscreen.h'                # The Apple header file
-MODNAME = 'Qdoffs'                             # The name of the module
-OBJECTNAME = 'GWorld'                  # The basic name of the objects used here
-
-# The following is *usually* unchanged but may still require tuning
-MODPREFIX = MODNAME                    # The prefix for module-wide routines
-OBJECTTYPE = OBJECTNAME + 'Ptr'                # The C type used to represent them
-OBJECTPREFIX = OBJECTNAME + 'Obj'      # The prefix for object methods
-INPUTFILE = string.lower(MODPREFIX) + 'gen.py' # The file generated by the scanner
-#EDITFILE = string.lower(MODPREFIX) + 'edit.py' # The manual definitions
-OUTPUTFILE = MODNAME + "module.c"      # The file generated by this program
-
-from macsupport import *
-
-# Create the type objects
-
-GWorldPtr = OpaqueByValueType(OBJECTTYPE, OBJECTPREFIX)
-GWorldFlags = Type("GWorldFlags", "l")
-GDHandle = OpaqueByValueType("GDHandle", "ResObj")
-OptGDHandle = OpaqueByValueType("GDHandle", "OptResObj")
-CTabHandle = OpaqueByValueType("CTabHandle", "OptResObj")
-PixPatHandle = OpaqueByValueType("PixPatHandle", "ResObj")
-PixMapHandle = OpaqueByValueType("PixMapHandle", "ResObj")
-CGrafPtr = OpaqueByValueType("CGrafPtr", "GrafObj")
-GrafPtr = OpaqueByValueType("GrafPtr", "GrafObj")
-QDErr = OSErrType("QDErr", 'h')
-
-includestuff = includestuff + """
-#include <%s>""" % MACHEADERFILE + """
-
-#define as_GrafPtr(gworld) ((GrafPtr)(gworld))
-
-"""
-
-
-class MyObjectDefinition(GlobalObjectDefinition):
-       def outputCheckNewArg(self):
-               Output("if (itself == NULL) return PyMac_Error(resNotFound);")
-##     def outputInitStructMembers(self):
-##             GlobalObjectDefinition.outputInitStructMembers(self)
-##             Output("SetWRefCon(itself, (long)it);")
-##     def outputCheckConvertArg(self):
-##             OutLbrace("if (DlgObj_Check(v))")
-##             Output("*p_itself = ((WindowObject *)v)->ob_itself;")
-##             Output("return 1;")
-##             OutRbrace()
-##             Out("""
-##             if (v == Py_None) { *p_itself = NULL; return 1; }
-##             if (PyInt_Check(v)) { *p_itself = (WindowPtr)PyInt_AsLong(v); return 1; }
-##             """)
-       def outputFreeIt(self, itselfname):
-               Output("DisposeGWorld(%s);", itselfname)
-# From here on it's basically all boiler plate...
-
-# Create the generator groups and link them
-module = MacModule(MODNAME, MODPREFIX, includestuff, finalstuff, initstuff)
-object = MyObjectDefinition(OBJECTNAME, OBJECTPREFIX, OBJECTTYPE)
-module.addobject(object)
-
-
-# Create the generator classes used to populate the lists
-Function = OSErrFunctionGenerator
-Method = OSErrMethodGenerator
-
-# Create and populate the lists
-functions = []
-methods = []
-execfile(INPUTFILE)
-
-# A method to convert a GWorldPtr to a GrafPtr
-f = Method(GrafPtr, 'as_GrafPtr', (GWorldPtr, 'p', InMode))
-methods.append(f)
-
-#
-# Manual generator: get data out of a pixmap
-pixmapgetbytes_body = """
-PixMapHandle pm;
-int from, length;
-char *cp;
-
-if ( !PyArg_ParseTuple(_args, "O&ii", ResObj_Convert, &pm, &from, &length) )
-       return NULL;
-cp = GetPixBaseAddr(pm)+from;
-return PyString_FromStringAndSize(cp, length);
-"""
-f = ManualGenerator("GetPixMapBytes", pixmapgetbytes_body)
-f.docstring = lambda: """(pixmap, int start, int size) -> string. Return bytes from the pixmap"""
-functions.append(f)
-
-# Manual generator: store data in a pixmap
-pixmapputbytes_body = """
-PixMapHandle pm;
-int from, length;
-char *cp, *icp;
-
-if ( !PyArg_ParseTuple(_args, "O&is#", ResObj_Convert, &pm, &from, &icp, &length) )
-       return NULL;
-cp = GetPixBaseAddr(pm)+from;
-memcpy(cp, icp, length);
-Py_INCREF(Py_None);
-return Py_None;
-"""
-f = ManualGenerator("PutPixMapBytes", pixmapputbytes_body)
-f.docstring = lambda: """(pixmap, int start, string data). Store bytes into the pixmap"""
-functions.append(f)
-
-# add the populated lists to the generator groups
-# (in a different wordl the scan program would generate this)
-for f in functions: module.add(f)
-for f in methods: object.add(f)
-
-
-
-# generate output (open the output file as late as possible)
-SetOutputFileName(OUTPUTFILE)
-module.generate()
diff --git a/Mac/Modules/qt/Qtmodule.c b/Mac/Modules/qt/Qtmodule.c
deleted file mode 100644 (file)
index 20f10cc..0000000
+++ /dev/null
@@ -1,9197 +0,0 @@
-
-/* =========================== Module Qt ============================ */
-
-#include "Python.h"
-
-
-
-#include "macglue.h"
-#include "pymactoolbox.h"
-
-#include <Movies.h>
-
-
-/* Macro to allow us to GetNextInterestingTime without duration */
-#define GetMediaNextInterestingTimeOnly(media, flags, time, rate, rv)                  GetMediaNextInterestingTime(media, flags, time, rate, rv, NULL)
-                       
-/*
-** Parse/generate time records
-*/
-static PyObject *
-QtTimeRecord_New(itself)
-       TimeRecord *itself;
-{
-       if (itself->base)
-               return Py_BuildValue("O&lO&", PyMac_Buildwide, &itself->value, itself->scale, 
-                       TimeBaseObj_New, itself->base);
-       else
-               return  Py_BuildValue("O&lO", PyMac_Buildwide, &itself->value, itself->scale, 
-                       Py_None);
-}
-
-static int
-QtTimeRecord_Convert(v, p_itself)
-       PyObject *v;
-       TimeRecord *p_itself;
-{
-       PyObject *base = NULL;
-       if( !PyArg_ParseTuple(v, "O&l|O", PyMac_Getwide, &p_itself->value, &p_itself->scale,
-                       &base) )
-               return 0;
-       if ( base == NULL || base == Py_None )
-               p_itself->base = NULL;
-       else
-               if ( !TimeBaseObj_Convert(base, &p_itself->base) )
-                       return 0;
-       return 1;
-}
-
-
-
-
-static PyObject *Qt_Error;
-
-/* ------------------ Object type MovieController ------------------- */
-
-PyTypeObject MovieController_Type;
-
-#define MovieCtlObj_Check(x) ((x)->ob_type == &MovieController_Type)
-
-typedef struct MovieControllerObject {
-       PyObject_HEAD
-       MovieController ob_itself;
-} MovieControllerObject;
-
-PyObject *MovieCtlObj_New(itself)
-       MovieController itself;
-{
-       MovieControllerObject *it;
-       if (itself == NULL) {
-                                               PyErr_SetString(Qt_Error,"Cannot create null MovieController");
-                                               return NULL;
-                                       }
-       it = PyObject_NEW(MovieControllerObject, &MovieController_Type);
-       if (it == NULL) return NULL;
-       it->ob_itself = itself;
-       return (PyObject *)it;
-}
-MovieCtlObj_Convert(v, p_itself)
-       PyObject *v;
-       MovieController *p_itself;
-{
-       if (!MovieCtlObj_Check(v))
-       {
-               PyErr_SetString(PyExc_TypeError, "MovieController required");
-               return 0;
-       }
-       *p_itself = ((MovieControllerObject *)v)->ob_itself;
-       return 1;
-}
-
-static void MovieCtlObj_dealloc(self)
-       MovieControllerObject *self;
-{
-       DisposeMovieController(self->ob_itself);
-       PyMem_DEL(self);
-}
-
-static PyObject *MovieCtlObj_MCSetMovie(_self, _args)
-       MovieControllerObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       ComponentResult _rv;
-       Movie theMovie;
-       WindowPtr movieWindow;
-       Point where;
-       if (!PyArg_ParseTuple(_args, "O&O&O&",
-                             MovieObj_Convert, &theMovie,
-                             WinObj_Convert, &movieWindow,
-                             PyMac_GetPoint, &where))
-               return NULL;
-       _rv = MCSetMovie(_self->ob_itself,
-                        theMovie,
-                        movieWindow,
-                        where);
-       _res = Py_BuildValue("l",
-                            _rv);
-       return _res;
-}
-
-static PyObject *MovieCtlObj_MCGetIndMovie(_self, _args)
-       MovieControllerObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Movie _rv;
-       short index;
-       if (!PyArg_ParseTuple(_args, "h",
-                             &index))
-               return NULL;
-       _rv = MCGetIndMovie(_self->ob_itself,
-                           index);
-       _res = Py_BuildValue("O&",
-                            MovieObj_New, _rv);
-       return _res;
-}
-
-static PyObject *MovieCtlObj_MCRemoveAllMovies(_self, _args)
-       MovieControllerObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       ComponentResult _rv;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _rv = MCRemoveAllMovies(_self->ob_itself);
-       _res = Py_BuildValue("l",
-                            _rv);
-       return _res;
-}
-
-static PyObject *MovieCtlObj_MCRemoveAMovie(_self, _args)
-       MovieControllerObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       ComponentResult _rv;
-       Movie m;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             MovieObj_Convert, &m))
-               return NULL;
-       _rv = MCRemoveAMovie(_self->ob_itself,
-                            m);
-       _res = Py_BuildValue("l",
-                            _rv);
-       return _res;
-}
-
-static PyObject *MovieCtlObj_MCRemoveMovie(_self, _args)
-       MovieControllerObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       ComponentResult _rv;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _rv = MCRemoveMovie(_self->ob_itself);
-       _res = Py_BuildValue("l",
-                            _rv);
-       return _res;
-}
-
-static PyObject *MovieCtlObj_MCIsPlayerEvent(_self, _args)
-       MovieControllerObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       ComponentResult _rv;
-       EventRecord e;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             PyMac_GetEventRecord, &e))
-               return NULL;
-       _rv = MCIsPlayerEvent(_self->ob_itself,
-                             &e);
-       _res = Py_BuildValue("l",
-                            _rv);
-       return _res;
-}
-
-static PyObject *MovieCtlObj_MCDoAction(_self, _args)
-       MovieControllerObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       ComponentResult _rv;
-       short action;
-       void * params;
-       if (!PyArg_ParseTuple(_args, "hs",
-                             &action,
-                             &params))
-               return NULL;
-       _rv = MCDoAction(_self->ob_itself,
-                        action,
-                        params);
-       _res = Py_BuildValue("l",
-                            _rv);
-       return _res;
-}
-
-static PyObject *MovieCtlObj_MCSetControllerAttached(_self, _args)
-       MovieControllerObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       ComponentResult _rv;
-       Boolean attach;
-       if (!PyArg_ParseTuple(_args, "b",
-                             &attach))
-               return NULL;
-       _rv = MCSetControllerAttached(_self->ob_itself,
-                                     attach);
-       _res = Py_BuildValue("l",
-                            _rv);
-       return _res;
-}
-
-static PyObject *MovieCtlObj_MCIsControllerAttached(_self, _args)
-       MovieControllerObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       ComponentResult _rv;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _rv = MCIsControllerAttached(_self->ob_itself);
-       _res = Py_BuildValue("l",
-                            _rv);
-       return _res;
-}
-
-static PyObject *MovieCtlObj_MCSetControllerPort(_self, _args)
-       MovieControllerObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       ComponentResult _rv;
-       CGrafPtr gp;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             GrafObj_Convert, &gp))
-               return NULL;
-       _rv = MCSetControllerPort(_self->ob_itself,
-                                 gp);
-       _res = Py_BuildValue("l",
-                            _rv);
-       return _res;
-}
-
-static PyObject *MovieCtlObj_MCGetControllerPort(_self, _args)
-       MovieControllerObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       CGrafPtr _rv;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _rv = MCGetControllerPort(_self->ob_itself);
-       _res = Py_BuildValue("O&",
-                            GrafObj_New, _rv);
-       return _res;
-}
-
-static PyObject *MovieCtlObj_MCSetVisible(_self, _args)
-       MovieControllerObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       ComponentResult _rv;
-       Boolean visible;
-       if (!PyArg_ParseTuple(_args, "b",
-                             &visible))
-               return NULL;
-       _rv = MCSetVisible(_self->ob_itself,
-                          visible);
-       _res = Py_BuildValue("l",
-                            _rv);
-       return _res;
-}
-
-static PyObject *MovieCtlObj_MCGetVisible(_self, _args)
-       MovieControllerObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       ComponentResult _rv;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _rv = MCGetVisible(_self->ob_itself);
-       _res = Py_BuildValue("l",
-                            _rv);
-       return _res;
-}
-
-static PyObject *MovieCtlObj_MCGetControllerBoundsRect(_self, _args)
-       MovieControllerObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       ComponentResult _rv;
-       Rect bounds;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _rv = MCGetControllerBoundsRect(_self->ob_itself,
-                                       &bounds);
-       _res = Py_BuildValue("lO&",
-                            _rv,
-                            PyMac_BuildRect, &bounds);
-       return _res;
-}
-
-static PyObject *MovieCtlObj_MCSetControllerBoundsRect(_self, _args)
-       MovieControllerObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       ComponentResult _rv;
-       Rect bounds;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             PyMac_GetRect, &bounds))
-               return NULL;
-       _rv = MCSetControllerBoundsRect(_self->ob_itself,
-                                       &bounds);
-       _res = Py_BuildValue("l",
-                            _rv);
-       return _res;
-}
-
-static PyObject *MovieCtlObj_MCGetControllerBoundsRgn(_self, _args)
-       MovieControllerObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       RgnHandle _rv;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _rv = MCGetControllerBoundsRgn(_self->ob_itself);
-       _res = Py_BuildValue("O&",
-                            ResObj_New, _rv);
-       return _res;
-}
-
-static PyObject *MovieCtlObj_MCGetWindowRgn(_self, _args)
-       MovieControllerObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       RgnHandle _rv;
-       WindowPtr w;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             WinObj_Convert, &w))
-               return NULL;
-       _rv = MCGetWindowRgn(_self->ob_itself,
-                            w);
-       _res = Py_BuildValue("O&",
-                            ResObj_New, _rv);
-       return _res;
-}
-
-static PyObject *MovieCtlObj_MCMovieChanged(_self, _args)
-       MovieControllerObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       ComponentResult _rv;
-       Movie m;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             MovieObj_Convert, &m))
-               return NULL;
-       _rv = MCMovieChanged(_self->ob_itself,
-                            m);
-       _res = Py_BuildValue("l",
-                            _rv);
-       return _res;
-}
-
-static PyObject *MovieCtlObj_MCSetDuration(_self, _args)
-       MovieControllerObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       ComponentResult _rv;
-       TimeValue duration;
-       if (!PyArg_ParseTuple(_args, "l",
-                             &duration))
-               return NULL;
-       _rv = MCSetDuration(_self->ob_itself,
-                           duration);
-       _res = Py_BuildValue("l",
-                            _rv);
-       return _res;
-}
-
-static PyObject *MovieCtlObj_MCGetCurrentTime(_self, _args)
-       MovieControllerObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       TimeValue _rv;
-       TimeScale scale;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _rv = MCGetCurrentTime(_self->ob_itself,
-                              &scale);
-       _res = Py_BuildValue("ll",
-                            _rv,
-                            scale);
-       return _res;
-}
-
-static PyObject *MovieCtlObj_MCNewAttachedController(_self, _args)
-       MovieControllerObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       ComponentResult _rv;
-       Movie theMovie;
-       WindowPtr w;
-       Point where;
-       if (!PyArg_ParseTuple(_args, "O&O&O&",
-                             MovieObj_Convert, &theMovie,
-                             WinObj_Convert, &w,
-                             PyMac_GetPoint, &where))
-               return NULL;
-       _rv = MCNewAttachedController(_self->ob_itself,
-                                     theMovie,
-                                     w,
-                                     where);
-       _res = Py_BuildValue("l",
-                            _rv);
-       return _res;
-}
-
-static PyObject *MovieCtlObj_MCDraw(_self, _args)
-       MovieControllerObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       ComponentResult _rv;
-       WindowPtr w;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             WinObj_Convert, &w))
-               return NULL;
-       _rv = MCDraw(_self->ob_itself,
-                    w);
-       _res = Py_BuildValue("l",
-                            _rv);
-       return _res;
-}
-
-static PyObject *MovieCtlObj_MCActivate(_self, _args)
-       MovieControllerObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       ComponentResult _rv;
-       WindowPtr w;
-       Boolean activate;
-       if (!PyArg_ParseTuple(_args, "O&b",
-                             WinObj_Convert, &w,
-                             &activate))
-               return NULL;
-       _rv = MCActivate(_self->ob_itself,
-                        w,
-                        activate);
-       _res = Py_BuildValue("l",
-                            _rv);
-       return _res;
-}
-
-static PyObject *MovieCtlObj_MCIdle(_self, _args)
-       MovieControllerObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       ComponentResult _rv;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _rv = MCIdle(_self->ob_itself);
-       _res = Py_BuildValue("l",
-                            _rv);
-       return _res;
-}
-
-static PyObject *MovieCtlObj_MCKey(_self, _args)
-       MovieControllerObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       ComponentResult _rv;
-       SInt8 key;
-       long modifiers;
-       if (!PyArg_ParseTuple(_args, "bl",
-                             &key,
-                             &modifiers))
-               return NULL;
-       _rv = MCKey(_self->ob_itself,
-                   key,
-                   modifiers);
-       _res = Py_BuildValue("l",
-                            _rv);
-       return _res;
-}
-
-static PyObject *MovieCtlObj_MCClick(_self, _args)
-       MovieControllerObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       ComponentResult _rv;
-       WindowPtr w;
-       Point where;
-       long when;
-       long modifiers;
-       if (!PyArg_ParseTuple(_args, "O&O&ll",
-                             WinObj_Convert, &w,
-                             PyMac_GetPoint, &where,
-                             &when,
-                             &modifiers))
-               return NULL;
-       _rv = MCClick(_self->ob_itself,
-                     w,
-                     where,
-                     when,
-                     modifiers);
-       _res = Py_BuildValue("l",
-                            _rv);
-       return _res;
-}
-
-static PyObject *MovieCtlObj_MCEnableEditing(_self, _args)
-       MovieControllerObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       ComponentResult _rv;
-       Boolean enabled;
-       if (!PyArg_ParseTuple(_args, "b",
-                             &enabled))
-               return NULL;
-       _rv = MCEnableEditing(_self->ob_itself,
-                             enabled);
-       _res = Py_BuildValue("l",
-                            _rv);
-       return _res;
-}
-
-static PyObject *MovieCtlObj_MCIsEditingEnabled(_self, _args)
-       MovieControllerObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       long _rv;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _rv = MCIsEditingEnabled(_self->ob_itself);
-       _res = Py_BuildValue("l",
-                            _rv);
-       return _res;
-}
-
-static PyObject *MovieCtlObj_MCCopy(_self, _args)
-       MovieControllerObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Movie _rv;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _rv = MCCopy(_self->ob_itself);
-       _res = Py_BuildValue("O&",
-                            MovieObj_New, _rv);
-       return _res;
-}
-
-static PyObject *MovieCtlObj_MCCut(_self, _args)
-       MovieControllerObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Movie _rv;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _rv = MCCut(_self->ob_itself);
-       _res = Py_BuildValue("O&",
-                            MovieObj_New, _rv);
-       return _res;
-}
-
-static PyObject *MovieCtlObj_MCPaste(_self, _args)
-       MovieControllerObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       ComponentResult _rv;
-       Movie srcMovie;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             MovieObj_Convert, &srcMovie))
-               return NULL;
-       _rv = MCPaste(_self->ob_itself,
-                     srcMovie);
-       _res = Py_BuildValue("l",
-                            _rv);
-       return _res;
-}
-
-static PyObject *MovieCtlObj_MCClear(_self, _args)
-       MovieControllerObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       ComponentResult _rv;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _rv = MCClear(_self->ob_itself);
-       _res = Py_BuildValue("l",
-                            _rv);
-       return _res;
-}
-
-static PyObject *MovieCtlObj_MCUndo(_self, _args)
-       MovieControllerObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       ComponentResult _rv;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _rv = MCUndo(_self->ob_itself);
-       _res = Py_BuildValue("l",
-                            _rv);
-       return _res;
-}
-
-static PyObject *MovieCtlObj_MCPositionController(_self, _args)
-       MovieControllerObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       ComponentResult _rv;
-       Rect movieRect;
-       Rect controllerRect;
-       long someFlags;
-       if (!PyArg_ParseTuple(_args, "O&O&l",
-                             PyMac_GetRect, &movieRect,
-                             PyMac_GetRect, &controllerRect,
-                             &someFlags))
-               return NULL;
-       _rv = MCPositionController(_self->ob_itself,
-                                  &movieRect,
-                                  &controllerRect,
-                                  someFlags);
-       _res = Py_BuildValue("l",
-                            _rv);
-       return _res;
-}
-
-static PyObject *MovieCtlObj_MCGetControllerInfo(_self, _args)
-       MovieControllerObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       ComponentResult _rv;
-       long someFlags;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _rv = MCGetControllerInfo(_self->ob_itself,
-                                 &someFlags);
-       _res = Py_BuildValue("ll",
-                            _rv,
-                            someFlags);
-       return _res;
-}
-
-static PyObject *MovieCtlObj_MCSetClip(_self, _args)
-       MovieControllerObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       ComponentResult _rv;
-       RgnHandle theClip;
-       RgnHandle movieClip;
-       if (!PyArg_ParseTuple(_args, "O&O&",
-                             ResObj_Convert, &theClip,
-                             ResObj_Convert, &movieClip))
-               return NULL;
-       _rv = MCSetClip(_self->ob_itself,
-                       theClip,
-                       movieClip);
-       _res = Py_BuildValue("l",
-                            _rv);
-       return _res;
-}
-
-static PyObject *MovieCtlObj_MCGetClip(_self, _args)
-       MovieControllerObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       ComponentResult _rv;
-       RgnHandle theClip;
-       RgnHandle movieClip;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _rv = MCGetClip(_self->ob_itself,
-                       &theClip,
-                       &movieClip);
-       _res = Py_BuildValue("lO&O&",
-                            _rv,
-                            ResObj_New, theClip,
-                            ResObj_New, movieClip);
-       return _res;
-}
-
-static PyObject *MovieCtlObj_MCDrawBadge(_self, _args)
-       MovieControllerObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       ComponentResult _rv;
-       RgnHandle movieRgn;
-       RgnHandle badgeRgn;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             ResObj_Convert, &movieRgn))
-               return NULL;
-       _rv = MCDrawBadge(_self->ob_itself,
-                         movieRgn,
-                         &badgeRgn);
-       _res = Py_BuildValue("lO&",
-                            _rv,
-                            ResObj_New, badgeRgn);
-       return _res;
-}
-
-static PyObject *MovieCtlObj_MCSetUpEditMenu(_self, _args)
-       MovieControllerObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       ComponentResult _rv;
-       long modifiers;
-       MenuHandle mh;
-       if (!PyArg_ParseTuple(_args, "lO&",
-                             &modifiers,
-                             MenuObj_Convert, &mh))
-               return NULL;
-       _rv = MCSetUpEditMenu(_self->ob_itself,
-                             modifiers,
-                             mh);
-       _res = Py_BuildValue("l",
-                            _rv);
-       return _res;
-}
-
-static PyObject *MovieCtlObj_MCGetMenuString(_self, _args)
-       MovieControllerObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       ComponentResult _rv;
-       long modifiers;
-       short item;
-       Str255 aString;
-       if (!PyArg_ParseTuple(_args, "lhO&",
-                             &modifiers,
-                             &item,
-                             PyMac_GetStr255, aString))
-               return NULL;
-       _rv = MCGetMenuString(_self->ob_itself,
-                             modifiers,
-                             item,
-                             aString);
-       _res = Py_BuildValue("l",
-                            _rv);
-       return _res;
-}
-
-static PyObject *MovieCtlObj_MCPtInController(_self, _args)
-       MovieControllerObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       ComponentResult _rv;
-       Point thePt;
-       Boolean inController;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             PyMac_GetPoint, &thePt))
-               return NULL;
-       _rv = MCPtInController(_self->ob_itself,
-                              thePt,
-                              &inController);
-       _res = Py_BuildValue("lb",
-                            _rv,
-                            inController);
-       return _res;
-}
-
-static PyObject *MovieCtlObj_MCInvalidate(_self, _args)
-       MovieControllerObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       ComponentResult _rv;
-       WindowPtr w;
-       RgnHandle invalidRgn;
-       if (!PyArg_ParseTuple(_args, "O&O&",
-                             WinObj_Convert, &w,
-                             ResObj_Convert, &invalidRgn))
-               return NULL;
-       _rv = MCInvalidate(_self->ob_itself,
-                          w,
-                          invalidRgn);
-       _res = Py_BuildValue("l",
-                            _rv);
-       return _res;
-}
-
-static PyObject *MovieCtlObj_MCAdjustCursor(_self, _args)
-       MovieControllerObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       ComponentResult _rv;
-       WindowPtr w;
-       Point where;
-       long modifiers;
-       if (!PyArg_ParseTuple(_args, "O&O&l",
-                             WinObj_Convert, &w,
-                             PyMac_GetPoint, &where,
-                             &modifiers))
-               return NULL;
-       _rv = MCAdjustCursor(_self->ob_itself,
-                            w,
-                            where,
-                            modifiers);
-       _res = Py_BuildValue("l",
-                            _rv);
-       return _res;
-}
-
-static PyObject *MovieCtlObj_MCGetInterfaceElement(_self, _args)
-       MovieControllerObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       ComponentResult _rv;
-       MCInterfaceElement whichElement;
-       void * element;
-       if (!PyArg_ParseTuple(_args, "ls",
-                             &whichElement,
-                             &element))
-               return NULL;
-       _rv = MCGetInterfaceElement(_self->ob_itself,
-                                   whichElement,
-                                   element);
-       _res = Py_BuildValue("l",
-                            _rv);
-       return _res;
-}
-
-static PyMethodDef MovieCtlObj_methods[] = {
-       {"MCSetMovie", (PyCFunction)MovieCtlObj_MCSetMovie, 1,
-        "(Movie theMovie, WindowPtr movieWindow, Point where) -> (ComponentResult _rv)"},
-       {"MCGetIndMovie", (PyCFunction)MovieCtlObj_MCGetIndMovie, 1,
-        "(short index) -> (Movie _rv)"},
-       {"MCRemoveAllMovies", (PyCFunction)MovieCtlObj_MCRemoveAllMovies, 1,
-        "() -> (ComponentResult _rv)"},
-       {"MCRemoveAMovie", (PyCFunction)MovieCtlObj_MCRemoveAMovie, 1,
-        "(Movie m) -> (ComponentResult _rv)"},
-       {"MCRemoveMovie", (PyCFunction)MovieCtlObj_MCRemoveMovie, 1,
-        "() -> (ComponentResult _rv)"},
-       {"MCIsPlayerEvent", (PyCFunction)MovieCtlObj_MCIsPlayerEvent, 1,
-        "(EventRecord e) -> (ComponentResult _rv)"},
-       {"MCDoAction", (PyCFunction)MovieCtlObj_MCDoAction, 1,
-        "(short action, void * params) -> (ComponentResult _rv)"},
-       {"MCSetControllerAttached", (PyCFunction)MovieCtlObj_MCSetControllerAttached, 1,
-        "(Boolean attach) -> (ComponentResult _rv)"},
-       {"MCIsControllerAttached", (PyCFunction)MovieCtlObj_MCIsControllerAttached, 1,
-        "() -> (ComponentResult _rv)"},
-       {"MCSetControllerPort", (PyCFunction)MovieCtlObj_MCSetControllerPort, 1,
-        "(CGrafPtr gp) -> (ComponentResult _rv)"},
-       {"MCGetControllerPort", (PyCFunction)MovieCtlObj_MCGetControllerPort, 1,
-        "() -> (CGrafPtr _rv)"},
-       {"MCSetVisible", (PyCFunction)MovieCtlObj_MCSetVisible, 1,
-        "(Boolean visible) -> (ComponentResult _rv)"},
-       {"MCGetVisible", (PyCFunction)MovieCtlObj_MCGetVisible, 1,
-        "() -> (ComponentResult _rv)"},
-       {"MCGetControllerBoundsRect", (PyCFunction)MovieCtlObj_MCGetControllerBoundsRect, 1,
-        "() -> (ComponentResult _rv, Rect bounds)"},
-       {"MCSetControllerBoundsRect", (PyCFunction)MovieCtlObj_MCSetControllerBoundsRect, 1,
-        "(Rect bounds) -> (ComponentResult _rv)"},
-       {"MCGetControllerBoundsRgn", (PyCFunction)MovieCtlObj_MCGetControllerBoundsRgn, 1,
-        "() -> (RgnHandle _rv)"},
-       {"MCGetWindowRgn", (PyCFunction)MovieCtlObj_MCGetWindowRgn, 1,
-        "(WindowPtr w) -> (RgnHandle _rv)"},
-       {"MCMovieChanged", (PyCFunction)MovieCtlObj_MCMovieChanged, 1,
-        "(Movie m) -> (ComponentResult _rv)"},
-       {"MCSetDuration", (PyCFunction)MovieCtlObj_MCSetDuration, 1,
-        "(TimeValue duration) -> (ComponentResult _rv)"},
-       {"MCGetCurrentTime", (PyCFunction)MovieCtlObj_MCGetCurrentTime, 1,
-        "() -> (TimeValue _rv, TimeScale scale)"},
-       {"MCNewAttachedController", (PyCFunction)MovieCtlObj_MCNewAttachedController, 1,
-        "(Movie theMovie, WindowPtr w, Point where) -> (ComponentResult _rv)"},
-       {"MCDraw", (PyCFunction)MovieCtlObj_MCDraw, 1,
-        "(WindowPtr w) -> (ComponentResult _rv)"},
-       {"MCActivate", (PyCFunction)MovieCtlObj_MCActivate, 1,
-        "(WindowPtr w, Boolean activate) -> (ComponentResult _rv)"},
-       {"MCIdle", (PyCFunction)MovieCtlObj_MCIdle, 1,
-        "() -> (ComponentResult _rv)"},
-       {"MCKey", (PyCFunction)MovieCtlObj_MCKey, 1,
-        "(SInt8 key, long modifiers) -> (ComponentResult _rv)"},
-       {"MCClick", (PyCFunction)MovieCtlObj_MCClick, 1,
-        "(WindowPtr w, Point where, long when, long modifiers) -> (ComponentResult _rv)"},
-       {"MCEnableEditing", (PyCFunction)MovieCtlObj_MCEnableEditing, 1,
-        "(Boolean enabled) -> (ComponentResult _rv)"},
-       {"MCIsEditingEnabled", (PyCFunction)MovieCtlObj_MCIsEditingEnabled, 1,
-        "() -> (long _rv)"},
-       {"MCCopy", (PyCFunction)MovieCtlObj_MCCopy, 1,
-        "() -> (Movie _rv)"},
-       {"MCCut", (PyCFunction)MovieCtlObj_MCCut, 1,
-        "() -> (Movie _rv)"},
-       {"MCPaste", (PyCFunction)MovieCtlObj_MCPaste, 1,
-        "(Movie srcMovie) -> (ComponentResult _rv)"},
-       {"MCClear", (PyCFunction)MovieCtlObj_MCClear, 1,
-        "() -> (ComponentResult _rv)"},
-       {"MCUndo", (PyCFunction)MovieCtlObj_MCUndo, 1,
-        "() -> (ComponentResult _rv)"},
-       {"MCPositionController", (PyCFunction)MovieCtlObj_MCPositionController, 1,
-        "(Rect movieRect, Rect controllerRect, long someFlags) -> (ComponentResult _rv)"},
-       {"MCGetControllerInfo", (PyCFunction)MovieCtlObj_MCGetControllerInfo, 1,
-        "() -> (ComponentResult _rv, long someFlags)"},
-       {"MCSetClip", (PyCFunction)MovieCtlObj_MCSetClip, 1,
-        "(RgnHandle theClip, RgnHandle movieClip) -> (ComponentResult _rv)"},
-       {"MCGetClip", (PyCFunction)MovieCtlObj_MCGetClip, 1,
-        "() -> (ComponentResult _rv, RgnHandle theClip, RgnHandle movieClip)"},
-       {"MCDrawBadge", (PyCFunction)MovieCtlObj_MCDrawBadge, 1,
-        "(RgnHandle movieRgn) -> (ComponentResult _rv, RgnHandle badgeRgn)"},
-       {"MCSetUpEditMenu", (PyCFunction)MovieCtlObj_MCSetUpEditMenu, 1,
-        "(long modifiers, MenuHandle mh) -> (ComponentResult _rv)"},
-       {"MCGetMenuString", (PyCFunction)MovieCtlObj_MCGetMenuString, 1,
-        "(long modifiers, short item, Str255 aString) -> (ComponentResult _rv)"},
-       {"MCPtInController", (PyCFunction)MovieCtlObj_MCPtInController, 1,
-        "(Point thePt) -> (ComponentResult _rv, Boolean inController)"},
-       {"MCInvalidate", (PyCFunction)MovieCtlObj_MCInvalidate, 1,
-        "(WindowPtr w, RgnHandle invalidRgn) -> (ComponentResult _rv)"},
-       {"MCAdjustCursor", (PyCFunction)MovieCtlObj_MCAdjustCursor, 1,
-        "(WindowPtr w, Point where, long modifiers) -> (ComponentResult _rv)"},
-       {"MCGetInterfaceElement", (PyCFunction)MovieCtlObj_MCGetInterfaceElement, 1,
-        "(MCInterfaceElement whichElement, void * element) -> (ComponentResult _rv)"},
-       {NULL, NULL, 0}
-};
-
-PyMethodChain MovieCtlObj_chain = { MovieCtlObj_methods, NULL };
-
-static PyObject *MovieCtlObj_getattr(self, name)
-       MovieControllerObject *self;
-       char *name;
-{
-       return Py_FindMethodInChain(&MovieCtlObj_chain, (PyObject *)self, name);
-}
-
-#define MovieCtlObj_setattr NULL
-
-#define MovieCtlObj_compare NULL
-
-#define MovieCtlObj_repr NULL
-
-#define MovieCtlObj_hash NULL
-
-PyTypeObject MovieController_Type = {
-       PyObject_HEAD_INIT(&PyType_Type)
-       0, /*ob_size*/
-       "MovieController", /*tp_name*/
-       sizeof(MovieControllerObject), /*tp_basicsize*/
-       0, /*tp_itemsize*/
-       /* methods */
-       (destructor) MovieCtlObj_dealloc, /*tp_dealloc*/
-       0, /*tp_print*/
-       (getattrfunc) MovieCtlObj_getattr, /*tp_getattr*/
-       (setattrfunc) MovieCtlObj_setattr, /*tp_setattr*/
-       (cmpfunc) MovieCtlObj_compare, /*tp_compare*/
-       (reprfunc) MovieCtlObj_repr, /*tp_repr*/
-       (PyNumberMethods *)0, /* tp_as_number */
-       (PySequenceMethods *)0, /* tp_as_sequence */
-       (PyMappingMethods *)0, /* tp_as_mapping */
-       (hashfunc) MovieCtlObj_hash, /*tp_hash*/
-};
-
-/* ---------------- End object type MovieController ----------------- */
-
-
-/* ---------------------- Object type TimeBase ---------------------- */
-
-PyTypeObject TimeBase_Type;
-
-#define TimeBaseObj_Check(x) ((x)->ob_type == &TimeBase_Type)
-
-typedef struct TimeBaseObject {
-       PyObject_HEAD
-       TimeBase ob_itself;
-} TimeBaseObject;
-
-PyObject *TimeBaseObj_New(itself)
-       TimeBase itself;
-{
-       TimeBaseObject *it;
-       if (itself == NULL) {
-                                               PyErr_SetString(Qt_Error,"Cannot create null TimeBase");
-                                               return NULL;
-                                       }
-       it = PyObject_NEW(TimeBaseObject, &TimeBase_Type);
-       if (it == NULL) return NULL;
-       it->ob_itself = itself;
-       return (PyObject *)it;
-}
-TimeBaseObj_Convert(v, p_itself)
-       PyObject *v;
-       TimeBase *p_itself;
-{
-       if (!TimeBaseObj_Check(v))
-       {
-               PyErr_SetString(PyExc_TypeError, "TimeBase required");
-               return 0;
-       }
-       *p_itself = ((TimeBaseObject *)v)->ob_itself;
-       return 1;
-}
-
-static void TimeBaseObj_dealloc(self)
-       TimeBaseObject *self;
-{
-       /* Cleanup of self->ob_itself goes here */
-       PyMem_DEL(self);
-}
-
-static PyObject *TimeBaseObj_DisposeTimeBase(_self, _args)
-       TimeBaseObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       DisposeTimeBase(_self->ob_itself);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *TimeBaseObj_GetTimeBaseTime(_self, _args)
-       TimeBaseObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       TimeValue _rv;
-       TimeScale s;
-       TimeRecord tr;
-       if (!PyArg_ParseTuple(_args, "l",
-                             &s))
-               return NULL;
-       _rv = GetTimeBaseTime(_self->ob_itself,
-                             s,
-                             &tr);
-       _res = Py_BuildValue("lO&",
-                            _rv,
-                            QtTimeRecord_New, &tr);
-       return _res;
-}
-
-static PyObject *TimeBaseObj_SetTimeBaseTime(_self, _args)
-       TimeBaseObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       TimeRecord tr;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             QtTimeRecord_Convert, &tr))
-               return NULL;
-       SetTimeBaseTime(_self->ob_itself,
-                       &tr);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *TimeBaseObj_SetTimeBaseValue(_self, _args)
-       TimeBaseObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       TimeValue t;
-       TimeScale s;
-       if (!PyArg_ParseTuple(_args, "ll",
-                             &t,
-                             &s))
-               return NULL;
-       SetTimeBaseValue(_self->ob_itself,
-                        t,
-                        s);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *TimeBaseObj_GetTimeBaseRate(_self, _args)
-       TimeBaseObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Fixed _rv;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _rv = GetTimeBaseRate(_self->ob_itself);
-       _res = Py_BuildValue("O&",
-                            PyMac_BuildFixed, _rv);
-       return _res;
-}
-
-static PyObject *TimeBaseObj_SetTimeBaseRate(_self, _args)
-       TimeBaseObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Fixed r;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             PyMac_GetFixed, &r))
-               return NULL;
-       SetTimeBaseRate(_self->ob_itself,
-                       r);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *TimeBaseObj_GetTimeBaseStartTime(_self, _args)
-       TimeBaseObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       TimeValue _rv;
-       TimeScale s;
-       TimeRecord tr;
-       if (!PyArg_ParseTuple(_args, "l",
-                             &s))
-               return NULL;
-       _rv = GetTimeBaseStartTime(_self->ob_itself,
-                                  s,
-                                  &tr);
-       _res = Py_BuildValue("lO&",
-                            _rv,
-                            QtTimeRecord_New, &tr);
-       return _res;
-}
-
-static PyObject *TimeBaseObj_SetTimeBaseStartTime(_self, _args)
-       TimeBaseObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       TimeRecord tr;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             QtTimeRecord_Convert, &tr))
-               return NULL;
-       SetTimeBaseStartTime(_self->ob_itself,
-                            &tr);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *TimeBaseObj_GetTimeBaseStopTime(_self, _args)
-       TimeBaseObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       TimeValue _rv;
-       TimeScale s;
-       TimeRecord tr;
-       if (!PyArg_ParseTuple(_args, "l",
-                             &s))
-               return NULL;
-       _rv = GetTimeBaseStopTime(_self->ob_itself,
-                                 s,
-                                 &tr);
-       _res = Py_BuildValue("lO&",
-                            _rv,
-                            QtTimeRecord_New, &tr);
-       return _res;
-}
-
-static PyObject *TimeBaseObj_SetTimeBaseStopTime(_self, _args)
-       TimeBaseObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       TimeRecord tr;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             QtTimeRecord_Convert, &tr))
-               return NULL;
-       SetTimeBaseStopTime(_self->ob_itself,
-                           &tr);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *TimeBaseObj_GetTimeBaseFlags(_self, _args)
-       TimeBaseObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       long _rv;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _rv = GetTimeBaseFlags(_self->ob_itself);
-       _res = Py_BuildValue("l",
-                            _rv);
-       return _res;
-}
-
-static PyObject *TimeBaseObj_SetTimeBaseFlags(_self, _args)
-       TimeBaseObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       long timeBaseFlags;
-       if (!PyArg_ParseTuple(_args, "l",
-                             &timeBaseFlags))
-               return NULL;
-       SetTimeBaseFlags(_self->ob_itself,
-                        timeBaseFlags);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *TimeBaseObj_SetTimeBaseMasterTimeBase(_self, _args)
-       TimeBaseObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       TimeBase master;
-       TimeRecord slaveZero;
-       if (!PyArg_ParseTuple(_args, "O&O&",
-                             TimeBaseObj_Convert, &master,
-                             QtTimeRecord_Convert, &slaveZero))
-               return NULL;
-       SetTimeBaseMasterTimeBase(_self->ob_itself,
-                                 master,
-                                 &slaveZero);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *TimeBaseObj_GetTimeBaseMasterTimeBase(_self, _args)
-       TimeBaseObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       TimeBase _rv;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _rv = GetTimeBaseMasterTimeBase(_self->ob_itself);
-       _res = Py_BuildValue("O&",
-                            TimeBaseObj_New, _rv);
-       return _res;
-}
-
-static PyObject *TimeBaseObj_SetTimeBaseMasterClock(_self, _args)
-       TimeBaseObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Component clockMeister;
-       TimeRecord slaveZero;
-       if (!PyArg_ParseTuple(_args, "O&O&",
-                             CmpObj_Convert, &clockMeister,
-                             QtTimeRecord_Convert, &slaveZero))
-               return NULL;
-       SetTimeBaseMasterClock(_self->ob_itself,
-                              clockMeister,
-                              &slaveZero);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *TimeBaseObj_GetTimeBaseMasterClock(_self, _args)
-       TimeBaseObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       ComponentInstance _rv;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _rv = GetTimeBaseMasterClock(_self->ob_itself);
-       _res = Py_BuildValue("O&",
-                            CmpInstObj_New, _rv);
-       return _res;
-}
-
-static PyObject *TimeBaseObj_GetTimeBaseStatus(_self, _args)
-       TimeBaseObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       long _rv;
-       TimeRecord unpinnedTime;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _rv = GetTimeBaseStatus(_self->ob_itself,
-                               &unpinnedTime);
-       _res = Py_BuildValue("lO&",
-                            _rv,
-                            QtTimeRecord_New, &unpinnedTime);
-       return _res;
-}
-
-static PyObject *TimeBaseObj_SetTimeBaseZero(_self, _args)
-       TimeBaseObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       TimeRecord zero;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             QtTimeRecord_Convert, &zero))
-               return NULL;
-       SetTimeBaseZero(_self->ob_itself,
-                       &zero);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *TimeBaseObj_GetTimeBaseEffectiveRate(_self, _args)
-       TimeBaseObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Fixed _rv;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _rv = GetTimeBaseEffectiveRate(_self->ob_itself);
-       _res = Py_BuildValue("O&",
-                            PyMac_BuildFixed, _rv);
-       return _res;
-}
-
-static PyMethodDef TimeBaseObj_methods[] = {
-       {"DisposeTimeBase", (PyCFunction)TimeBaseObj_DisposeTimeBase, 1,
-        "() -> None"},
-       {"GetTimeBaseTime", (PyCFunction)TimeBaseObj_GetTimeBaseTime, 1,
-        "(TimeScale s) -> (TimeValue _rv, TimeRecord tr)"},
-       {"SetTimeBaseTime", (PyCFunction)TimeBaseObj_SetTimeBaseTime, 1,
-        "(TimeRecord tr) -> None"},
-       {"SetTimeBaseValue", (PyCFunction)TimeBaseObj_SetTimeBaseValue, 1,
-        "(TimeValue t, TimeScale s) -> None"},
-       {"GetTimeBaseRate", (PyCFunction)TimeBaseObj_GetTimeBaseRate, 1,
-        "() -> (Fixed _rv)"},
-       {"SetTimeBaseRate", (PyCFunction)TimeBaseObj_SetTimeBaseRate, 1,
-        "(Fixed r) -> None"},
-       {"GetTimeBaseStartTime", (PyCFunction)TimeBaseObj_GetTimeBaseStartTime, 1,
-        "(TimeScale s) -> (TimeValue _rv, TimeRecord tr)"},
-       {"SetTimeBaseStartTime", (PyCFunction)TimeBaseObj_SetTimeBaseStartTime, 1,
-        "(TimeRecord tr) -> None"},
-       {"GetTimeBaseStopTime", (PyCFunction)TimeBaseObj_GetTimeBaseStopTime, 1,
-        "(TimeScale s) -> (TimeValue _rv, TimeRecord tr)"},
-       {"SetTimeBaseStopTime", (PyCFunction)TimeBaseObj_SetTimeBaseStopTime, 1,
-        "(TimeRecord tr) -> None"},
-       {"GetTimeBaseFlags", (PyCFunction)TimeBaseObj_GetTimeBaseFlags, 1,
-        "() -> (long _rv)"},
-       {"SetTimeBaseFlags", (PyCFunction)TimeBaseObj_SetTimeBaseFlags, 1,
-        "(long timeBaseFlags) -> None"},
-       {"SetTimeBaseMasterTimeBase", (PyCFunction)TimeBaseObj_SetTimeBaseMasterTimeBase, 1,
-        "(TimeBase master, TimeRecord slaveZero) -> None"},
-       {"GetTimeBaseMasterTimeBase", (PyCFunction)TimeBaseObj_GetTimeBaseMasterTimeBase, 1,
-        "() -> (TimeBase _rv)"},
-       {"SetTimeBaseMasterClock", (PyCFunction)TimeBaseObj_SetTimeBaseMasterClock, 1,
-        "(Component clockMeister, TimeRecord slaveZero) -> None"},
-       {"GetTimeBaseMasterClock", (PyCFunction)TimeBaseObj_GetTimeBaseMasterClock, 1,
-        "() -> (ComponentInstance _rv)"},
-       {"GetTimeBaseStatus", (PyCFunction)TimeBaseObj_GetTimeBaseStatus, 1,
-        "() -> (long _rv, TimeRecord unpinnedTime)"},
-       {"SetTimeBaseZero", (PyCFunction)TimeBaseObj_SetTimeBaseZero, 1,
-        "(TimeRecord zero) -> None"},
-       {"GetTimeBaseEffectiveRate", (PyCFunction)TimeBaseObj_GetTimeBaseEffectiveRate, 1,
-        "() -> (Fixed _rv)"},
-       {NULL, NULL, 0}
-};
-
-PyMethodChain TimeBaseObj_chain = { TimeBaseObj_methods, NULL };
-
-static PyObject *TimeBaseObj_getattr(self, name)
-       TimeBaseObject *self;
-       char *name;
-{
-       return Py_FindMethodInChain(&TimeBaseObj_chain, (PyObject *)self, name);
-}
-
-#define TimeBaseObj_setattr NULL
-
-#define TimeBaseObj_compare NULL
-
-#define TimeBaseObj_repr NULL
-
-#define TimeBaseObj_hash NULL
-
-PyTypeObject TimeBase_Type = {
-       PyObject_HEAD_INIT(&PyType_Type)
-       0, /*ob_size*/
-       "TimeBase", /*tp_name*/
-       sizeof(TimeBaseObject), /*tp_basicsize*/
-       0, /*tp_itemsize*/
-       /* methods */
-       (destructor) TimeBaseObj_dealloc, /*tp_dealloc*/
-       0, /*tp_print*/
-       (getattrfunc) TimeBaseObj_getattr, /*tp_getattr*/
-       (setattrfunc) TimeBaseObj_setattr, /*tp_setattr*/
-       (cmpfunc) TimeBaseObj_compare, /*tp_compare*/
-       (reprfunc) TimeBaseObj_repr, /*tp_repr*/
-       (PyNumberMethods *)0, /* tp_as_number */
-       (PySequenceMethods *)0, /* tp_as_sequence */
-       (PyMappingMethods *)0, /* tp_as_mapping */
-       (hashfunc) TimeBaseObj_hash, /*tp_hash*/
-};
-
-/* -------------------- End object type TimeBase -------------------- */
-
-
-/* ---------------------- Object type UserData ---------------------- */
-
-PyTypeObject UserData_Type;
-
-#define UserDataObj_Check(x) ((x)->ob_type == &UserData_Type)
-
-typedef struct UserDataObject {
-       PyObject_HEAD
-       UserData ob_itself;
-} UserDataObject;
-
-PyObject *UserDataObj_New(itself)
-       UserData itself;
-{
-       UserDataObject *it;
-       if (itself == NULL) {
-                                               PyErr_SetString(Qt_Error,"Cannot create null UserData");
-                                               return NULL;
-                                       }
-       it = PyObject_NEW(UserDataObject, &UserData_Type);
-       if (it == NULL) return NULL;
-       it->ob_itself = itself;
-       return (PyObject *)it;
-}
-UserDataObj_Convert(v, p_itself)
-       PyObject *v;
-       UserData *p_itself;
-{
-       if (!UserDataObj_Check(v))
-       {
-               PyErr_SetString(PyExc_TypeError, "UserData required");
-               return 0;
-       }
-       *p_itself = ((UserDataObject *)v)->ob_itself;
-       return 1;
-}
-
-static void UserDataObj_dealloc(self)
-       UserDataObject *self;
-{
-       DisposeUserData(self->ob_itself);
-       PyMem_DEL(self);
-}
-
-static PyObject *UserDataObj_GetUserData(_self, _args)
-       UserDataObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       Handle data;
-       OSType udType;
-       long index;
-       if (!PyArg_ParseTuple(_args, "O&O&l",
-                             ResObj_Convert, &data,
-                             PyMac_GetOSType, &udType,
-                             &index))
-               return NULL;
-       _err = GetUserData(_self->ob_itself,
-                          data,
-                          udType,
-                          index);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *UserDataObj_AddUserData(_self, _args)
-       UserDataObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       Handle data;
-       OSType udType;
-       if (!PyArg_ParseTuple(_args, "O&O&",
-                             ResObj_Convert, &data,
-                             PyMac_GetOSType, &udType))
-               return NULL;
-       _err = AddUserData(_self->ob_itself,
-                          data,
-                          udType);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *UserDataObj_RemoveUserData(_self, _args)
-       UserDataObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       OSType udType;
-       long index;
-       if (!PyArg_ParseTuple(_args, "O&l",
-                             PyMac_GetOSType, &udType,
-                             &index))
-               return NULL;
-       _err = RemoveUserData(_self->ob_itself,
-                             udType,
-                             index);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *UserDataObj_CountUserDataType(_self, _args)
-       UserDataObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       short _rv;
-       OSType udType;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             PyMac_GetOSType, &udType))
-               return NULL;
-       _rv = CountUserDataType(_self->ob_itself,
-                               udType);
-       _res = Py_BuildValue("h",
-                            _rv);
-       return _res;
-}
-
-static PyObject *UserDataObj_GetNextUserDataType(_self, _args)
-       UserDataObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       long _rv;
-       OSType udType;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             PyMac_GetOSType, &udType))
-               return NULL;
-       _rv = GetNextUserDataType(_self->ob_itself,
-                                 udType);
-       _res = Py_BuildValue("l",
-                            _rv);
-       return _res;
-}
-
-static PyObject *UserDataObj_AddUserDataText(_self, _args)
-       UserDataObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       Handle data;
-       OSType udType;
-       long index;
-       short itlRegionTag;
-       if (!PyArg_ParseTuple(_args, "O&O&lh",
-                             ResObj_Convert, &data,
-                             PyMac_GetOSType, &udType,
-                             &index,
-                             &itlRegionTag))
-               return NULL;
-       _err = AddUserDataText(_self->ob_itself,
-                              data,
-                              udType,
-                              index,
-                              itlRegionTag);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *UserDataObj_GetUserDataText(_self, _args)
-       UserDataObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       Handle data;
-       OSType udType;
-       long index;
-       short itlRegionTag;
-       if (!PyArg_ParseTuple(_args, "O&O&lh",
-                             ResObj_Convert, &data,
-                             PyMac_GetOSType, &udType,
-                             &index,
-                             &itlRegionTag))
-               return NULL;
-       _err = GetUserDataText(_self->ob_itself,
-                              data,
-                              udType,
-                              index,
-                              itlRegionTag);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *UserDataObj_RemoveUserDataText(_self, _args)
-       UserDataObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       OSType udType;
-       long index;
-       short itlRegionTag;
-       if (!PyArg_ParseTuple(_args, "O&lh",
-                             PyMac_GetOSType, &udType,
-                             &index,
-                             &itlRegionTag))
-               return NULL;
-       _err = RemoveUserDataText(_self->ob_itself,
-                                 udType,
-                                 index,
-                                 itlRegionTag);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *UserDataObj_PutUserDataIntoHandle(_self, _args)
-       UserDataObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       Handle h;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             ResObj_Convert, &h))
-               return NULL;
-       _err = PutUserDataIntoHandle(_self->ob_itself,
-                                    h);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyMethodDef UserDataObj_methods[] = {
-       {"GetUserData", (PyCFunction)UserDataObj_GetUserData, 1,
-        "(Handle data, OSType udType, long index) -> None"},
-       {"AddUserData", (PyCFunction)UserDataObj_AddUserData, 1,
-        "(Handle data, OSType udType) -> None"},
-       {"RemoveUserData", (PyCFunction)UserDataObj_RemoveUserData, 1,
-        "(OSType udType, long index) -> None"},
-       {"CountUserDataType", (PyCFunction)UserDataObj_CountUserDataType, 1,
-        "(OSType udType) -> (short _rv)"},
-       {"GetNextUserDataType", (PyCFunction)UserDataObj_GetNextUserDataType, 1,
-        "(OSType udType) -> (long _rv)"},
-       {"AddUserDataText", (PyCFunction)UserDataObj_AddUserDataText, 1,
-        "(Handle data, OSType udType, long index, short itlRegionTag) -> None"},
-       {"GetUserDataText", (PyCFunction)UserDataObj_GetUserDataText, 1,
-        "(Handle data, OSType udType, long index, short itlRegionTag) -> None"},
-       {"RemoveUserDataText", (PyCFunction)UserDataObj_RemoveUserDataText, 1,
-        "(OSType udType, long index, short itlRegionTag) -> None"},
-       {"PutUserDataIntoHandle", (PyCFunction)UserDataObj_PutUserDataIntoHandle, 1,
-        "(Handle h) -> None"},
-       {NULL, NULL, 0}
-};
-
-PyMethodChain UserDataObj_chain = { UserDataObj_methods, NULL };
-
-static PyObject *UserDataObj_getattr(self, name)
-       UserDataObject *self;
-       char *name;
-{
-       return Py_FindMethodInChain(&UserDataObj_chain, (PyObject *)self, name);
-}
-
-#define UserDataObj_setattr NULL
-
-#define UserDataObj_compare NULL
-
-#define UserDataObj_repr NULL
-
-#define UserDataObj_hash NULL
-
-PyTypeObject UserData_Type = {
-       PyObject_HEAD_INIT(&PyType_Type)
-       0, /*ob_size*/
-       "UserData", /*tp_name*/
-       sizeof(UserDataObject), /*tp_basicsize*/
-       0, /*tp_itemsize*/
-       /* methods */
-       (destructor) UserDataObj_dealloc, /*tp_dealloc*/
-       0, /*tp_print*/
-       (getattrfunc) UserDataObj_getattr, /*tp_getattr*/
-       (setattrfunc) UserDataObj_setattr, /*tp_setattr*/
-       (cmpfunc) UserDataObj_compare, /*tp_compare*/
-       (reprfunc) UserDataObj_repr, /*tp_repr*/
-       (PyNumberMethods *)0, /* tp_as_number */
-       (PySequenceMethods *)0, /* tp_as_sequence */
-       (PyMappingMethods *)0, /* tp_as_mapping */
-       (hashfunc) UserDataObj_hash, /*tp_hash*/
-};
-
-/* -------------------- End object type UserData -------------------- */
-
-
-/* ----------------------- Object type Media ------------------------ */
-
-PyTypeObject Media_Type;
-
-#define MediaObj_Check(x) ((x)->ob_type == &Media_Type)
-
-typedef struct MediaObject {
-       PyObject_HEAD
-       Media ob_itself;
-} MediaObject;
-
-PyObject *MediaObj_New(itself)
-       Media itself;
-{
-       MediaObject *it;
-       if (itself == NULL) {
-                                               PyErr_SetString(Qt_Error,"Cannot create null Media");
-                                               return NULL;
-                                       }
-       it = PyObject_NEW(MediaObject, &Media_Type);
-       if (it == NULL) return NULL;
-       it->ob_itself = itself;
-       return (PyObject *)it;
-}
-MediaObj_Convert(v, p_itself)
-       PyObject *v;
-       Media *p_itself;
-{
-       if (!MediaObj_Check(v))
-       {
-               PyErr_SetString(PyExc_TypeError, "Media required");
-               return 0;
-       }
-       *p_itself = ((MediaObject *)v)->ob_itself;
-       return 1;
-}
-
-static void MediaObj_dealloc(self)
-       MediaObject *self;
-{
-       DisposeTrackMedia(self->ob_itself);
-       PyMem_DEL(self);
-}
-
-static PyObject *MediaObj_LoadMediaIntoRam(_self, _args)
-       MediaObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       TimeValue time;
-       TimeValue duration;
-       long flags;
-       if (!PyArg_ParseTuple(_args, "lll",
-                             &time,
-                             &duration,
-                             &flags))
-               return NULL;
-       _err = LoadMediaIntoRam(_self->ob_itself,
-                               time,
-                               duration,
-                               flags);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *MediaObj_GetMediaTrack(_self, _args)
-       MediaObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Track _rv;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _rv = GetMediaTrack(_self->ob_itself);
-       _res = Py_BuildValue("O&",
-                            TrackObj_New, _rv);
-       return _res;
-}
-
-static PyObject *MediaObj_GetMediaCreationTime(_self, _args)
-       MediaObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       unsigned long _rv;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _rv = GetMediaCreationTime(_self->ob_itself);
-       _res = Py_BuildValue("l",
-                            _rv);
-       return _res;
-}
-
-static PyObject *MediaObj_GetMediaModificationTime(_self, _args)
-       MediaObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       unsigned long _rv;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _rv = GetMediaModificationTime(_self->ob_itself);
-       _res = Py_BuildValue("l",
-                            _rv);
-       return _res;
-}
-
-static PyObject *MediaObj_GetMediaTimeScale(_self, _args)
-       MediaObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       TimeScale _rv;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _rv = GetMediaTimeScale(_self->ob_itself);
-       _res = Py_BuildValue("l",
-                            _rv);
-       return _res;
-}
-
-static PyObject *MediaObj_SetMediaTimeScale(_self, _args)
-       MediaObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       TimeScale timeScale;
-       if (!PyArg_ParseTuple(_args, "l",
-                             &timeScale))
-               return NULL;
-       SetMediaTimeScale(_self->ob_itself,
-                         timeScale);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *MediaObj_GetMediaDuration(_self, _args)
-       MediaObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       TimeValue _rv;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _rv = GetMediaDuration(_self->ob_itself);
-       _res = Py_BuildValue("l",
-                            _rv);
-       return _res;
-}
-
-static PyObject *MediaObj_GetMediaLanguage(_self, _args)
-       MediaObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       short _rv;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _rv = GetMediaLanguage(_self->ob_itself);
-       _res = Py_BuildValue("h",
-                            _rv);
-       return _res;
-}
-
-static PyObject *MediaObj_SetMediaLanguage(_self, _args)
-       MediaObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       short language;
-       if (!PyArg_ParseTuple(_args, "h",
-                             &language))
-               return NULL;
-       SetMediaLanguage(_self->ob_itself,
-                        language);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *MediaObj_GetMediaQuality(_self, _args)
-       MediaObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       short _rv;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _rv = GetMediaQuality(_self->ob_itself);
-       _res = Py_BuildValue("h",
-                            _rv);
-       return _res;
-}
-
-static PyObject *MediaObj_SetMediaQuality(_self, _args)
-       MediaObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       short quality;
-       if (!PyArg_ParseTuple(_args, "h",
-                             &quality))
-               return NULL;
-       SetMediaQuality(_self->ob_itself,
-                       quality);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *MediaObj_GetMediaHandlerDescription(_self, _args)
-       MediaObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSType mediaType;
-       Str255 creatorName;
-       OSType creatorManufacturer;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             PyMac_GetStr255, creatorName))
-               return NULL;
-       GetMediaHandlerDescription(_self->ob_itself,
-                                  &mediaType,
-                                  creatorName,
-                                  &creatorManufacturer);
-       _res = Py_BuildValue("O&O&",
-                            PyMac_BuildOSType, mediaType,
-                            PyMac_BuildOSType, creatorManufacturer);
-       return _res;
-}
-
-static PyObject *MediaObj_GetMediaUserData(_self, _args)
-       MediaObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       UserData _rv;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _rv = GetMediaUserData(_self->ob_itself);
-       _res = Py_BuildValue("O&",
-                            UserDataObj_New, _rv);
-       return _res;
-}
-
-static PyObject *MediaObj_GetMediaHandler(_self, _args)
-       MediaObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       MediaHandler _rv;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _rv = GetMediaHandler(_self->ob_itself);
-       _res = Py_BuildValue("O&",
-                            CmpInstObj_New, _rv);
-       return _res;
-}
-
-static PyObject *MediaObj_SetMediaHandler(_self, _args)
-       MediaObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       MediaHandlerComponent mH;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             CmpObj_Convert, &mH))
-               return NULL;
-       _err = SetMediaHandler(_self->ob_itself,
-                              mH);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *MediaObj_BeginMediaEdits(_self, _args)
-       MediaObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _err = BeginMediaEdits(_self->ob_itself);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *MediaObj_EndMediaEdits(_self, _args)
-       MediaObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _err = EndMediaEdits(_self->ob_itself);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *MediaObj_SetMediaDefaultDataRefIndex(_self, _args)
-       MediaObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       short index;
-       if (!PyArg_ParseTuple(_args, "h",
-                             &index))
-               return NULL;
-       _err = SetMediaDefaultDataRefIndex(_self->ob_itself,
-                                          index);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *MediaObj_GetMediaDataHandlerDescription(_self, _args)
-       MediaObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       short index;
-       OSType dhType;
-       Str255 creatorName;
-       OSType creatorManufacturer;
-       if (!PyArg_ParseTuple(_args, "hO&",
-                             &index,
-                             PyMac_GetStr255, creatorName))
-               return NULL;
-       GetMediaDataHandlerDescription(_self->ob_itself,
-                                      index,
-                                      &dhType,
-                                      creatorName,
-                                      &creatorManufacturer);
-       _res = Py_BuildValue("O&O&",
-                            PyMac_BuildOSType, dhType,
-                            PyMac_BuildOSType, creatorManufacturer);
-       return _res;
-}
-
-static PyObject *MediaObj_GetMediaDataHandler(_self, _args)
-       MediaObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       DataHandler _rv;
-       short index;
-       if (!PyArg_ParseTuple(_args, "h",
-                             &index))
-               return NULL;
-       _rv = GetMediaDataHandler(_self->ob_itself,
-                                 index);
-       _res = Py_BuildValue("O&",
-                            CmpInstObj_New, _rv);
-       return _res;
-}
-
-static PyObject *MediaObj_SetMediaDataHandler(_self, _args)
-       MediaObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       short index;
-       DataHandlerComponent dataHandler;
-       if (!PyArg_ParseTuple(_args, "hO&",
-                             &index,
-                             CmpObj_Convert, &dataHandler))
-               return NULL;
-       _err = SetMediaDataHandler(_self->ob_itself,
-                                  index,
-                                  dataHandler);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *MediaObj_GetMediaSampleDescriptionCount(_self, _args)
-       MediaObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       long _rv;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _rv = GetMediaSampleDescriptionCount(_self->ob_itself);
-       _res = Py_BuildValue("l",
-                            _rv);
-       return _res;
-}
-
-static PyObject *MediaObj_GetMediaSampleDescription(_self, _args)
-       MediaObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       long index;
-       SampleDescriptionHandle descH;
-       if (!PyArg_ParseTuple(_args, "lO&",
-                             &index,
-                             ResObj_Convert, &descH))
-               return NULL;
-       GetMediaSampleDescription(_self->ob_itself,
-                                 index,
-                                 descH);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *MediaObj_SetMediaSampleDescription(_self, _args)
-       MediaObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       long index;
-       SampleDescriptionHandle descH;
-       if (!PyArg_ParseTuple(_args, "lO&",
-                             &index,
-                             ResObj_Convert, &descH))
-               return NULL;
-       _err = SetMediaSampleDescription(_self->ob_itself,
-                                        index,
-                                        descH);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *MediaObj_GetMediaSampleCount(_self, _args)
-       MediaObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       long _rv;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _rv = GetMediaSampleCount(_self->ob_itself);
-       _res = Py_BuildValue("l",
-                            _rv);
-       return _res;
-}
-
-static PyObject *MediaObj_GetMediaSyncSampleCount(_self, _args)
-       MediaObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       long _rv;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _rv = GetMediaSyncSampleCount(_self->ob_itself);
-       _res = Py_BuildValue("l",
-                            _rv);
-       return _res;
-}
-
-static PyObject *MediaObj_SampleNumToMediaTime(_self, _args)
-       MediaObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       long logicalSampleNum;
-       TimeValue sampleTime;
-       TimeValue sampleDuration;
-       if (!PyArg_ParseTuple(_args, "l",
-                             &logicalSampleNum))
-               return NULL;
-       SampleNumToMediaTime(_self->ob_itself,
-                            logicalSampleNum,
-                            &sampleTime,
-                            &sampleDuration);
-       _res = Py_BuildValue("ll",
-                            sampleTime,
-                            sampleDuration);
-       return _res;
-}
-
-static PyObject *MediaObj_MediaTimeToSampleNum(_self, _args)
-       MediaObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       TimeValue time;
-       long sampleNum;
-       TimeValue sampleTime;
-       TimeValue sampleDuration;
-       if (!PyArg_ParseTuple(_args, "l",
-                             &time))
-               return NULL;
-       MediaTimeToSampleNum(_self->ob_itself,
-                            time,
-                            &sampleNum,
-                            &sampleTime,
-                            &sampleDuration);
-       _res = Py_BuildValue("lll",
-                            sampleNum,
-                            sampleTime,
-                            sampleDuration);
-       return _res;
-}
-
-static PyObject *MediaObj_AddMediaSample(_self, _args)
-       MediaObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       Handle dataIn;
-       long inOffset;
-       unsigned long size;
-       TimeValue durationPerSample;
-       SampleDescriptionHandle sampleDescriptionH;
-       long numberOfSamples;
-       short sampleFlags;
-       TimeValue sampleTime;
-       if (!PyArg_ParseTuple(_args, "O&lllO&lh",
-                             ResObj_Convert, &dataIn,
-                             &inOffset,
-                             &size,
-                             &durationPerSample,
-                             ResObj_Convert, &sampleDescriptionH,
-                             &numberOfSamples,
-                             &sampleFlags))
-               return NULL;
-       _err = AddMediaSample(_self->ob_itself,
-                             dataIn,
-                             inOffset,
-                             size,
-                             durationPerSample,
-                             sampleDescriptionH,
-                             numberOfSamples,
-                             sampleFlags,
-                             &sampleTime);
-       if (_err != noErr) return PyMac_Error(_err);
-       _res = Py_BuildValue("l",
-                            sampleTime);
-       return _res;
-}
-
-static PyObject *MediaObj_AddMediaSampleReference(_self, _args)
-       MediaObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       long dataOffset;
-       unsigned long size;
-       TimeValue durationPerSample;
-       SampleDescriptionHandle sampleDescriptionH;
-       long numberOfSamples;
-       short sampleFlags;
-       TimeValue sampleTime;
-       if (!PyArg_ParseTuple(_args, "lllO&lh",
-                             &dataOffset,
-                             &size,
-                             &durationPerSample,
-                             ResObj_Convert, &sampleDescriptionH,
-                             &numberOfSamples,
-                             &sampleFlags))
-               return NULL;
-       _err = AddMediaSampleReference(_self->ob_itself,
-                                      dataOffset,
-                                      size,
-                                      durationPerSample,
-                                      sampleDescriptionH,
-                                      numberOfSamples,
-                                      sampleFlags,
-                                      &sampleTime);
-       if (_err != noErr) return PyMac_Error(_err);
-       _res = Py_BuildValue("l",
-                            sampleTime);
-       return _res;
-}
-
-static PyObject *MediaObj_GetMediaSample(_self, _args)
-       MediaObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       Handle dataOut;
-       long maxSizeToGrow;
-       long size;
-       TimeValue time;
-       TimeValue sampleTime;
-       TimeValue durationPerSample;
-       SampleDescriptionHandle sampleDescriptionH;
-       long sampleDescriptionIndex;
-       long maxNumberOfSamples;
-       long numberOfSamples;
-       short sampleFlags;
-       if (!PyArg_ParseTuple(_args, "O&llO&l",
-                             ResObj_Convert, &dataOut,
-                             &maxSizeToGrow,
-                             &time,
-                             ResObj_Convert, &sampleDescriptionH,
-                             &maxNumberOfSamples))
-               return NULL;
-       _err = GetMediaSample(_self->ob_itself,
-                             dataOut,
-                             maxSizeToGrow,
-                             &size,
-                             time,
-                             &sampleTime,
-                             &durationPerSample,
-                             sampleDescriptionH,
-                             &sampleDescriptionIndex,
-                             maxNumberOfSamples,
-                             &numberOfSamples,
-                             &sampleFlags);
-       if (_err != noErr) return PyMac_Error(_err);
-       _res = Py_BuildValue("lllllh",
-                            size,
-                            sampleTime,
-                            durationPerSample,
-                            sampleDescriptionIndex,
-                            numberOfSamples,
-                            sampleFlags);
-       return _res;
-}
-
-static PyObject *MediaObj_GetMediaSampleReference(_self, _args)
-       MediaObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       long dataOffset;
-       long size;
-       TimeValue time;
-       TimeValue sampleTime;
-       TimeValue durationPerSample;
-       SampleDescriptionHandle sampleDescriptionH;
-       long sampleDescriptionIndex;
-       long maxNumberOfSamples;
-       long numberOfSamples;
-       short sampleFlags;
-       if (!PyArg_ParseTuple(_args, "lO&l",
-                             &time,
-                             ResObj_Convert, &sampleDescriptionH,
-                             &maxNumberOfSamples))
-               return NULL;
-       _err = GetMediaSampleReference(_self->ob_itself,
-                                      &dataOffset,
-                                      &size,
-                                      time,
-                                      &sampleTime,
-                                      &durationPerSample,
-                                      sampleDescriptionH,
-                                      &sampleDescriptionIndex,
-                                      maxNumberOfSamples,
-                                      &numberOfSamples,
-                                      &sampleFlags);
-       if (_err != noErr) return PyMac_Error(_err);
-       _res = Py_BuildValue("llllllh",
-                            dataOffset,
-                            size,
-                            sampleTime,
-                            durationPerSample,
-                            sampleDescriptionIndex,
-                            numberOfSamples,
-                            sampleFlags);
-       return _res;
-}
-
-static PyObject *MediaObj_SetMediaPreferredChunkSize(_self, _args)
-       MediaObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       long maxChunkSize;
-       if (!PyArg_ParseTuple(_args, "l",
-                             &maxChunkSize))
-               return NULL;
-       _err = SetMediaPreferredChunkSize(_self->ob_itself,
-                                         maxChunkSize);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *MediaObj_GetMediaPreferredChunkSize(_self, _args)
-       MediaObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       long maxChunkSize;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _err = GetMediaPreferredChunkSize(_self->ob_itself,
-                                         &maxChunkSize);
-       if (_err != noErr) return PyMac_Error(_err);
-       _res = Py_BuildValue("l",
-                            maxChunkSize);
-       return _res;
-}
-
-static PyObject *MediaObj_SetMediaShadowSync(_self, _args)
-       MediaObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       long frameDiffSampleNum;
-       long syncSampleNum;
-       if (!PyArg_ParseTuple(_args, "ll",
-                             &frameDiffSampleNum,
-                             &syncSampleNum))
-               return NULL;
-       _err = SetMediaShadowSync(_self->ob_itself,
-                                 frameDiffSampleNum,
-                                 syncSampleNum);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *MediaObj_GetMediaShadowSync(_self, _args)
-       MediaObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       long frameDiffSampleNum;
-       long syncSampleNum;
-       if (!PyArg_ParseTuple(_args, "l",
-                             &frameDiffSampleNum))
-               return NULL;
-       _err = GetMediaShadowSync(_self->ob_itself,
-                                 frameDiffSampleNum,
-                                 &syncSampleNum);
-       if (_err != noErr) return PyMac_Error(_err);
-       _res = Py_BuildValue("l",
-                            syncSampleNum);
-       return _res;
-}
-
-static PyObject *MediaObj_GetMediaDataSize(_self, _args)
-       MediaObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       long _rv;
-       TimeValue startTime;
-       TimeValue duration;
-       if (!PyArg_ParseTuple(_args, "ll",
-                             &startTime,
-                             &duration))
-               return NULL;
-       _rv = GetMediaDataSize(_self->ob_itself,
-                              startTime,
-                              duration);
-       _res = Py_BuildValue("l",
-                            _rv);
-       return _res;
-}
-
-static PyObject *MediaObj_GetMediaDataSize64(_self, _args)
-       MediaObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       TimeValue startTime;
-       TimeValue duration;
-       wide dataSize;
-       if (!PyArg_ParseTuple(_args, "ll",
-                             &startTime,
-                             &duration))
-               return NULL;
-       _err = GetMediaDataSize64(_self->ob_itself,
-                                 startTime,
-                                 duration,
-                                 &dataSize);
-       if (_err != noErr) return PyMac_Error(_err);
-       _res = Py_BuildValue("O&",
-                            PyMac_Buildwide, dataSize);
-       return _res;
-}
-
-static PyObject *MediaObj_GetMediaNextInterestingTime(_self, _args)
-       MediaObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       short interestingTimeFlags;
-       TimeValue time;
-       Fixed rate;
-       TimeValue interestingTime;
-       TimeValue interestingDuration;
-       if (!PyArg_ParseTuple(_args, "hlO&",
-                             &interestingTimeFlags,
-                             &time,
-                             PyMac_GetFixed, &rate))
-               return NULL;
-       GetMediaNextInterestingTime(_self->ob_itself,
-                                   interestingTimeFlags,
-                                   time,
-                                   rate,
-                                   &interestingTime,
-                                   &interestingDuration);
-       _res = Py_BuildValue("ll",
-                            interestingTime,
-                            interestingDuration);
-       return _res;
-}
-
-static PyObject *MediaObj_GetMediaDataRef(_self, _args)
-       MediaObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       short index;
-       Handle dataRef;
-       OSType dataRefType;
-       long dataRefAttributes;
-       if (!PyArg_ParseTuple(_args, "h",
-                             &index))
-               return NULL;
-       _err = GetMediaDataRef(_self->ob_itself,
-                              index,
-                              &dataRef,
-                              &dataRefType,
-                              &dataRefAttributes);
-       if (_err != noErr) return PyMac_Error(_err);
-       _res = Py_BuildValue("O&O&l",
-                            ResObj_New, dataRef,
-                            PyMac_BuildOSType, dataRefType,
-                            dataRefAttributes);
-       return _res;
-}
-
-static PyObject *MediaObj_SetMediaDataRef(_self, _args)
-       MediaObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       short index;
-       Handle dataRef;
-       OSType dataRefType;
-       if (!PyArg_ParseTuple(_args, "hO&O&",
-                             &index,
-                             ResObj_Convert, &dataRef,
-                             PyMac_GetOSType, &dataRefType))
-               return NULL;
-       _err = SetMediaDataRef(_self->ob_itself,
-                              index,
-                              dataRef,
-                              dataRefType);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *MediaObj_SetMediaDataRefAttributes(_self, _args)
-       MediaObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       short index;
-       long dataRefAttributes;
-       if (!PyArg_ParseTuple(_args, "hl",
-                             &index,
-                             &dataRefAttributes))
-               return NULL;
-       _err = SetMediaDataRefAttributes(_self->ob_itself,
-                                        index,
-                                        dataRefAttributes);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *MediaObj_AddMediaDataRef(_self, _args)
-       MediaObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       short index;
-       Handle dataRef;
-       OSType dataRefType;
-       if (!PyArg_ParseTuple(_args, "O&O&",
-                             ResObj_Convert, &dataRef,
-                             PyMac_GetOSType, &dataRefType))
-               return NULL;
-       _err = AddMediaDataRef(_self->ob_itself,
-                              &index,
-                              dataRef,
-                              dataRefType);
-       if (_err != noErr) return PyMac_Error(_err);
-       _res = Py_BuildValue("h",
-                            index);
-       return _res;
-}
-
-static PyObject *MediaObj_GetMediaDataRefCount(_self, _args)
-       MediaObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       short count;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _err = GetMediaDataRefCount(_self->ob_itself,
-                                   &count);
-       if (_err != noErr) return PyMac_Error(_err);
-       _res = Py_BuildValue("h",
-                            count);
-       return _res;
-}
-
-static PyObject *MediaObj_SetMediaPlayHints(_self, _args)
-       MediaObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       long flags;
-       long flagsMask;
-       if (!PyArg_ParseTuple(_args, "ll",
-                             &flags,
-                             &flagsMask))
-               return NULL;
-       SetMediaPlayHints(_self->ob_itself,
-                         flags,
-                         flagsMask);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *MediaObj_GetMediaPlayHints(_self, _args)
-       MediaObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       long flags;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       GetMediaPlayHints(_self->ob_itself,
-                         &flags);
-       _res = Py_BuildValue("l",
-                            flags);
-       return _res;
-}
-
-static PyObject *MediaObj_GetMediaNextInterestingTimeOnly(_self, _args)
-       MediaObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       short interestingTimeFlags;
-       TimeValue time;
-       Fixed rate;
-       TimeValue interestingTime;
-       if (!PyArg_ParseTuple(_args, "hlO&",
-                             &interestingTimeFlags,
-                             &time,
-                             PyMac_GetFixed, &rate))
-               return NULL;
-       GetMediaNextInterestingTimeOnly(_self->ob_itself,
-                                       interestingTimeFlags,
-                                       time,
-                                       rate,
-                                       &interestingTime);
-       _res = Py_BuildValue("l",
-                            interestingTime);
-       return _res;
-}
-
-static PyMethodDef MediaObj_methods[] = {
-       {"LoadMediaIntoRam", (PyCFunction)MediaObj_LoadMediaIntoRam, 1,
-        "(TimeValue time, TimeValue duration, long flags) -> None"},
-       {"GetMediaTrack", (PyCFunction)MediaObj_GetMediaTrack, 1,
-        "() -> (Track _rv)"},
-       {"GetMediaCreationTime", (PyCFunction)MediaObj_GetMediaCreationTime, 1,
-        "() -> (unsigned long _rv)"},
-       {"GetMediaModificationTime", (PyCFunction)MediaObj_GetMediaModificationTime, 1,
-        "() -> (unsigned long _rv)"},
-       {"GetMediaTimeScale", (PyCFunction)MediaObj_GetMediaTimeScale, 1,
-        "() -> (TimeScale _rv)"},
-       {"SetMediaTimeScale", (PyCFunction)MediaObj_SetMediaTimeScale, 1,
-        "(TimeScale timeScale) -> None"},
-       {"GetMediaDuration", (PyCFunction)MediaObj_GetMediaDuration, 1,
-        "() -> (TimeValue _rv)"},
-       {"GetMediaLanguage", (PyCFunction)MediaObj_GetMediaLanguage, 1,
-        "() -> (short _rv)"},
-       {"SetMediaLanguage", (PyCFunction)MediaObj_SetMediaLanguage, 1,
-        "(short language) -> None"},
-       {"GetMediaQuality", (PyCFunction)MediaObj_GetMediaQuality, 1,
-        "() -> (short _rv)"},
-       {"SetMediaQuality", (PyCFunction)MediaObj_SetMediaQuality, 1,
-        "(short quality) -> None"},
-       {"GetMediaHandlerDescription", (PyCFunction)MediaObj_GetMediaHandlerDescription, 1,
-        "(Str255 creatorName) -> (OSType mediaType, OSType creatorManufacturer)"},
-       {"GetMediaUserData", (PyCFunction)MediaObj_GetMediaUserData, 1,
-        "() -> (UserData _rv)"},
-       {"GetMediaHandler", (PyCFunction)MediaObj_GetMediaHandler, 1,
-        "() -> (MediaHandler _rv)"},
-       {"SetMediaHandler", (PyCFunction)MediaObj_SetMediaHandler, 1,
-        "(MediaHandlerComponent mH) -> None"},
-       {"BeginMediaEdits", (PyCFunction)MediaObj_BeginMediaEdits, 1,
-        "() -> None"},
-       {"EndMediaEdits", (PyCFunction)MediaObj_EndMediaEdits, 1,
-        "() -> None"},
-       {"SetMediaDefaultDataRefIndex", (PyCFunction)MediaObj_SetMediaDefaultDataRefIndex, 1,
-        "(short index) -> None"},
-       {"GetMediaDataHandlerDescription", (PyCFunction)MediaObj_GetMediaDataHandlerDescription, 1,
-        "(short index, Str255 creatorName) -> (OSType dhType, OSType creatorManufacturer)"},
-       {"GetMediaDataHandler", (PyCFunction)MediaObj_GetMediaDataHandler, 1,
-        "(short index) -> (DataHandler _rv)"},
-       {"SetMediaDataHandler", (PyCFunction)MediaObj_SetMediaDataHandler, 1,
-        "(short index, DataHandlerComponent dataHandler) -> None"},
-       {"GetMediaSampleDescriptionCount", (PyCFunction)MediaObj_GetMediaSampleDescriptionCount, 1,
-        "() -> (long _rv)"},
-       {"GetMediaSampleDescription", (PyCFunction)MediaObj_GetMediaSampleDescription, 1,
-        "(long index, SampleDescriptionHandle descH) -> None"},
-       {"SetMediaSampleDescription", (PyCFunction)MediaObj_SetMediaSampleDescription, 1,
-        "(long index, SampleDescriptionHandle descH) -> None"},
-       {"GetMediaSampleCount", (PyCFunction)MediaObj_GetMediaSampleCount, 1,
-        "() -> (long _rv)"},
-       {"GetMediaSyncSampleCount", (PyCFunction)MediaObj_GetMediaSyncSampleCount, 1,
-        "() -> (long _rv)"},
-       {"SampleNumToMediaTime", (PyCFunction)MediaObj_SampleNumToMediaTime, 1,
-        "(long logicalSampleNum) -> (TimeValue sampleTime, TimeValue sampleDuration)"},
-       {"MediaTimeToSampleNum", (PyCFunction)MediaObj_MediaTimeToSampleNum, 1,
-        "(TimeValue time) -> (long sampleNum, TimeValue sampleTime, TimeValue sampleDuration)"},
-       {"AddMediaSample", (PyCFunction)MediaObj_AddMediaSample, 1,
-        "(Handle dataIn, long inOffset, unsigned long size, TimeValue durationPerSample, SampleDescriptionHandle sampleDescriptionH, long numberOfSamples, short sampleFlags) -> (TimeValue sampleTime)"},
-       {"AddMediaSampleReference", (PyCFunction)MediaObj_AddMediaSampleReference, 1,
-        "(long dataOffset, unsigned long size, TimeValue durationPerSample, SampleDescriptionHandle sampleDescriptionH, long numberOfSamples, short sampleFlags) -> (TimeValue sampleTime)"},
-       {"GetMediaSample", (PyCFunction)MediaObj_GetMediaSample, 1,
-        "(Handle dataOut, long maxSizeToGrow, TimeValue time, SampleDescriptionHandle sampleDescriptionH, long maxNumberOfSamples) -> (long size, TimeValue sampleTime, TimeValue durationPerSample, long sampleDescriptionIndex, long numberOfSamples, short sampleFlags)"},
-       {"GetMediaSampleReference", (PyCFunction)MediaObj_GetMediaSampleReference, 1,
-        "(TimeValue time, SampleDescriptionHandle sampleDescriptionH, long maxNumberOfSamples) -> (long dataOffset, long size, TimeValue sampleTime, TimeValue durationPerSample, long sampleDescriptionIndex, long numberOfSamples, short sampleFlags)"},
-       {"SetMediaPreferredChunkSize", (PyCFunction)MediaObj_SetMediaPreferredChunkSize, 1,
-        "(long maxChunkSize) -> None"},
-       {"GetMediaPreferredChunkSize", (PyCFunction)MediaObj_GetMediaPreferredChunkSize, 1,
-        "() -> (long maxChunkSize)"},
-       {"SetMediaShadowSync", (PyCFunction)MediaObj_SetMediaShadowSync, 1,
-        "(long frameDiffSampleNum, long syncSampleNum) -> None"},
-       {"GetMediaShadowSync", (PyCFunction)MediaObj_GetMediaShadowSync, 1,
-        "(long frameDiffSampleNum) -> (long syncSampleNum)"},
-       {"GetMediaDataSize", (PyCFunction)MediaObj_GetMediaDataSize, 1,
-        "(TimeValue startTime, TimeValue duration) -> (long _rv)"},
-       {"GetMediaDataSize64", (PyCFunction)MediaObj_GetMediaDataSize64, 1,
-        "(TimeValue startTime, TimeValue duration) -> (wide dataSize)"},
-       {"GetMediaNextInterestingTime", (PyCFunction)MediaObj_GetMediaNextInterestingTime, 1,
-        "(short interestingTimeFlags, TimeValue time, Fixed rate) -> (TimeValue interestingTime, TimeValue interestingDuration)"},
-       {"GetMediaDataRef", (PyCFunction)MediaObj_GetMediaDataRef, 1,
-        "(short index) -> (Handle dataRef, OSType dataRefType, long dataRefAttributes)"},
-       {"SetMediaDataRef", (PyCFunction)MediaObj_SetMediaDataRef, 1,
-        "(short index, Handle dataRef, OSType dataRefType) -> None"},
-       {"SetMediaDataRefAttributes", (PyCFunction)MediaObj_SetMediaDataRefAttributes, 1,
-        "(short index, long dataRefAttributes) -> None"},
-       {"AddMediaDataRef", (PyCFunction)MediaObj_AddMediaDataRef, 1,
-        "(Handle dataRef, OSType dataRefType) -> (short index)"},
-       {"GetMediaDataRefCount", (PyCFunction)MediaObj_GetMediaDataRefCount, 1,
-        "() -> (short count)"},
-       {"SetMediaPlayHints", (PyCFunction)MediaObj_SetMediaPlayHints, 1,
-        "(long flags, long flagsMask) -> None"},
-       {"GetMediaPlayHints", (PyCFunction)MediaObj_GetMediaPlayHints, 1,
-        "() -> (long flags)"},
-       {"GetMediaNextInterestingTimeOnly", (PyCFunction)MediaObj_GetMediaNextInterestingTimeOnly, 1,
-        "(short interestingTimeFlags, TimeValue time, Fixed rate) -> (TimeValue interestingTime)"},
-       {NULL, NULL, 0}
-};
-
-PyMethodChain MediaObj_chain = { MediaObj_methods, NULL };
-
-static PyObject *MediaObj_getattr(self, name)
-       MediaObject *self;
-       char *name;
-{
-       return Py_FindMethodInChain(&MediaObj_chain, (PyObject *)self, name);
-}
-
-#define MediaObj_setattr NULL
-
-#define MediaObj_compare NULL
-
-#define MediaObj_repr NULL
-
-#define MediaObj_hash NULL
-
-PyTypeObject Media_Type = {
-       PyObject_HEAD_INIT(&PyType_Type)
-       0, /*ob_size*/
-       "Media", /*tp_name*/
-       sizeof(MediaObject), /*tp_basicsize*/
-       0, /*tp_itemsize*/
-       /* methods */
-       (destructor) MediaObj_dealloc, /*tp_dealloc*/
-       0, /*tp_print*/
-       (getattrfunc) MediaObj_getattr, /*tp_getattr*/
-       (setattrfunc) MediaObj_setattr, /*tp_setattr*/
-       (cmpfunc) MediaObj_compare, /*tp_compare*/
-       (reprfunc) MediaObj_repr, /*tp_repr*/
-       (PyNumberMethods *)0, /* tp_as_number */
-       (PySequenceMethods *)0, /* tp_as_sequence */
-       (PyMappingMethods *)0, /* tp_as_mapping */
-       (hashfunc) MediaObj_hash, /*tp_hash*/
-};
-
-/* --------------------- End object type Media ---------------------- */
-
-
-/* ----------------------- Object type Track ------------------------ */
-
-PyTypeObject Track_Type;
-
-#define TrackObj_Check(x) ((x)->ob_type == &Track_Type)
-
-typedef struct TrackObject {
-       PyObject_HEAD
-       Track ob_itself;
-} TrackObject;
-
-PyObject *TrackObj_New(itself)
-       Track itself;
-{
-       TrackObject *it;
-       if (itself == NULL) {
-                                               PyErr_SetString(Qt_Error,"Cannot create null Track");
-                                               return NULL;
-                                       }
-       it = PyObject_NEW(TrackObject, &Track_Type);
-       if (it == NULL) return NULL;
-       it->ob_itself = itself;
-       return (PyObject *)it;
-}
-TrackObj_Convert(v, p_itself)
-       PyObject *v;
-       Track *p_itself;
-{
-       if (!TrackObj_Check(v))
-       {
-               PyErr_SetString(PyExc_TypeError, "Track required");
-               return 0;
-       }
-       *p_itself = ((TrackObject *)v)->ob_itself;
-       return 1;
-}
-
-static void TrackObj_dealloc(self)
-       TrackObject *self;
-{
-       DisposeMovieTrack(self->ob_itself);
-       PyMem_DEL(self);
-}
-
-static PyObject *TrackObj_LoadTrackIntoRam(_self, _args)
-       TrackObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       TimeValue time;
-       TimeValue duration;
-       long flags;
-       if (!PyArg_ParseTuple(_args, "lll",
-                             &time,
-                             &duration,
-                             &flags))
-               return NULL;
-       _err = LoadTrackIntoRam(_self->ob_itself,
-                               time,
-                               duration,
-                               flags);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *TrackObj_GetTrackPict(_self, _args)
-       TrackObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       PicHandle _rv;
-       TimeValue time;
-       if (!PyArg_ParseTuple(_args, "l",
-                             &time))
-               return NULL;
-       _rv = GetTrackPict(_self->ob_itself,
-                          time);
-       _res = Py_BuildValue("O&",
-                            ResObj_New, _rv);
-       return _res;
-}
-
-static PyObject *TrackObj_GetTrackClipRgn(_self, _args)
-       TrackObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       RgnHandle _rv;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _rv = GetTrackClipRgn(_self->ob_itself);
-       _res = Py_BuildValue("O&",
-                            ResObj_New, _rv);
-       return _res;
-}
-
-static PyObject *TrackObj_SetTrackClipRgn(_self, _args)
-       TrackObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       RgnHandle theClip;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             ResObj_Convert, &theClip))
-               return NULL;
-       SetTrackClipRgn(_self->ob_itself,
-                       theClip);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *TrackObj_GetTrackDisplayBoundsRgn(_self, _args)
-       TrackObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       RgnHandle _rv;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _rv = GetTrackDisplayBoundsRgn(_self->ob_itself);
-       _res = Py_BuildValue("O&",
-                            ResObj_New, _rv);
-       return _res;
-}
-
-static PyObject *TrackObj_GetTrackMovieBoundsRgn(_self, _args)
-       TrackObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       RgnHandle _rv;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _rv = GetTrackMovieBoundsRgn(_self->ob_itself);
-       _res = Py_BuildValue("O&",
-                            ResObj_New, _rv);
-       return _res;
-}
-
-static PyObject *TrackObj_GetTrackBoundsRgn(_self, _args)
-       TrackObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       RgnHandle _rv;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _rv = GetTrackBoundsRgn(_self->ob_itself);
-       _res = Py_BuildValue("O&",
-                            ResObj_New, _rv);
-       return _res;
-}
-
-static PyObject *TrackObj_GetTrackMatte(_self, _args)
-       TrackObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       PixMapHandle _rv;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _rv = GetTrackMatte(_self->ob_itself);
-       _res = Py_BuildValue("O&",
-                            ResObj_New, _rv);
-       return _res;
-}
-
-static PyObject *TrackObj_SetTrackMatte(_self, _args)
-       TrackObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       PixMapHandle theMatte;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             ResObj_Convert, &theMatte))
-               return NULL;
-       SetTrackMatte(_self->ob_itself,
-                     theMatte);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *TrackObj_GetTrackID(_self, _args)
-       TrackObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       long _rv;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _rv = GetTrackID(_self->ob_itself);
-       _res = Py_BuildValue("l",
-                            _rv);
-       return _res;
-}
-
-static PyObject *TrackObj_GetTrackMovie(_self, _args)
-       TrackObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Movie _rv;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _rv = GetTrackMovie(_self->ob_itself);
-       _res = Py_BuildValue("O&",
-                            MovieObj_New, _rv);
-       return _res;
-}
-
-static PyObject *TrackObj_GetTrackCreationTime(_self, _args)
-       TrackObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       unsigned long _rv;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _rv = GetTrackCreationTime(_self->ob_itself);
-       _res = Py_BuildValue("l",
-                            _rv);
-       return _res;
-}
-
-static PyObject *TrackObj_GetTrackModificationTime(_self, _args)
-       TrackObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       unsigned long _rv;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _rv = GetTrackModificationTime(_self->ob_itself);
-       _res = Py_BuildValue("l",
-                            _rv);
-       return _res;
-}
-
-static PyObject *TrackObj_GetTrackEnabled(_self, _args)
-       TrackObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Boolean _rv;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _rv = GetTrackEnabled(_self->ob_itself);
-       _res = Py_BuildValue("b",
-                            _rv);
-       return _res;
-}
-
-static PyObject *TrackObj_SetTrackEnabled(_self, _args)
-       TrackObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Boolean isEnabled;
-       if (!PyArg_ParseTuple(_args, "b",
-                             &isEnabled))
-               return NULL;
-       SetTrackEnabled(_self->ob_itself,
-                       isEnabled);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *TrackObj_GetTrackUsage(_self, _args)
-       TrackObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       long _rv;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _rv = GetTrackUsage(_self->ob_itself);
-       _res = Py_BuildValue("l",
-                            _rv);
-       return _res;
-}
-
-static PyObject *TrackObj_SetTrackUsage(_self, _args)
-       TrackObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       long usage;
-       if (!PyArg_ParseTuple(_args, "l",
-                             &usage))
-               return NULL;
-       SetTrackUsage(_self->ob_itself,
-                     usage);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *TrackObj_GetTrackDuration(_self, _args)
-       TrackObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       TimeValue _rv;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _rv = GetTrackDuration(_self->ob_itself);
-       _res = Py_BuildValue("l",
-                            _rv);
-       return _res;
-}
-
-static PyObject *TrackObj_GetTrackOffset(_self, _args)
-       TrackObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       TimeValue _rv;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _rv = GetTrackOffset(_self->ob_itself);
-       _res = Py_BuildValue("l",
-                            _rv);
-       return _res;
-}
-
-static PyObject *TrackObj_SetTrackOffset(_self, _args)
-       TrackObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       TimeValue movieOffsetTime;
-       if (!PyArg_ParseTuple(_args, "l",
-                             &movieOffsetTime))
-               return NULL;
-       SetTrackOffset(_self->ob_itself,
-                      movieOffsetTime);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *TrackObj_GetTrackLayer(_self, _args)
-       TrackObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       short _rv;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _rv = GetTrackLayer(_self->ob_itself);
-       _res = Py_BuildValue("h",
-                            _rv);
-       return _res;
-}
-
-static PyObject *TrackObj_SetTrackLayer(_self, _args)
-       TrackObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       short layer;
-       if (!PyArg_ParseTuple(_args, "h",
-                             &layer))
-               return NULL;
-       SetTrackLayer(_self->ob_itself,
-                     layer);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *TrackObj_GetTrackAlternate(_self, _args)
-       TrackObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Track _rv;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _rv = GetTrackAlternate(_self->ob_itself);
-       _res = Py_BuildValue("O&",
-                            TrackObj_New, _rv);
-       return _res;
-}
-
-static PyObject *TrackObj_SetTrackAlternate(_self, _args)
-       TrackObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Track alternateT;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             TrackObj_Convert, &alternateT))
-               return NULL;
-       SetTrackAlternate(_self->ob_itself,
-                         alternateT);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *TrackObj_GetTrackVolume(_self, _args)
-       TrackObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       short _rv;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _rv = GetTrackVolume(_self->ob_itself);
-       _res = Py_BuildValue("h",
-                            _rv);
-       return _res;
-}
-
-static PyObject *TrackObj_SetTrackVolume(_self, _args)
-       TrackObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       short volume;
-       if (!PyArg_ParseTuple(_args, "h",
-                             &volume))
-               return NULL;
-       SetTrackVolume(_self->ob_itself,
-                      volume);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *TrackObj_GetTrackDimensions(_self, _args)
-       TrackObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Fixed width;
-       Fixed height;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       GetTrackDimensions(_self->ob_itself,
-                          &width,
-                          &height);
-       _res = Py_BuildValue("O&O&",
-                            PyMac_BuildFixed, width,
-                            PyMac_BuildFixed, height);
-       return _res;
-}
-
-static PyObject *TrackObj_SetTrackDimensions(_self, _args)
-       TrackObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Fixed width;
-       Fixed height;
-       if (!PyArg_ParseTuple(_args, "O&O&",
-                             PyMac_GetFixed, &width,
-                             PyMac_GetFixed, &height))
-               return NULL;
-       SetTrackDimensions(_self->ob_itself,
-                          width,
-                          height);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *TrackObj_GetTrackUserData(_self, _args)
-       TrackObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       UserData _rv;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _rv = GetTrackUserData(_self->ob_itself);
-       _res = Py_BuildValue("O&",
-                            UserDataObj_New, _rv);
-       return _res;
-}
-
-static PyObject *TrackObj_GetTrackSoundLocalizationSettings(_self, _args)
-       TrackObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       Handle settings;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _err = GetTrackSoundLocalizationSettings(_self->ob_itself,
-                                                &settings);
-       if (_err != noErr) return PyMac_Error(_err);
-       _res = Py_BuildValue("O&",
-                            ResObj_New, settings);
-       return _res;
-}
-
-static PyObject *TrackObj_SetTrackSoundLocalizationSettings(_self, _args)
-       TrackObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       Handle settings;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             ResObj_Convert, &settings))
-               return NULL;
-       _err = SetTrackSoundLocalizationSettings(_self->ob_itself,
-                                                settings);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *TrackObj_NewTrackMedia(_self, _args)
-       TrackObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Media _rv;
-       OSType mediaType;
-       TimeScale timeScale;
-       Handle dataRef;
-       OSType dataRefType;
-       if (!PyArg_ParseTuple(_args, "O&lO&O&",
-                             PyMac_GetOSType, &mediaType,
-                             &timeScale,
-                             ResObj_Convert, &dataRef,
-                             PyMac_GetOSType, &dataRefType))
-               return NULL;
-       _rv = NewTrackMedia(_self->ob_itself,
-                           mediaType,
-                           timeScale,
-                           dataRef,
-                           dataRefType);
-       _res = Py_BuildValue("O&",
-                            MediaObj_New, _rv);
-       return _res;
-}
-
-static PyObject *TrackObj_GetTrackMedia(_self, _args)
-       TrackObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Media _rv;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _rv = GetTrackMedia(_self->ob_itself);
-       _res = Py_BuildValue("O&",
-                            MediaObj_New, _rv);
-       return _res;
-}
-
-static PyObject *TrackObj_InsertMediaIntoTrack(_self, _args)
-       TrackObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       TimeValue trackStart;
-       TimeValue mediaTime;
-       TimeValue mediaDuration;
-       Fixed mediaRate;
-       if (!PyArg_ParseTuple(_args, "lllO&",
-                             &trackStart,
-                             &mediaTime,
-                             &mediaDuration,
-                             PyMac_GetFixed, &mediaRate))
-               return NULL;
-       _err = InsertMediaIntoTrack(_self->ob_itself,
-                                   trackStart,
-                                   mediaTime,
-                                   mediaDuration,
-                                   mediaRate);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *TrackObj_InsertTrackSegment(_self, _args)
-       TrackObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       Track dstTrack;
-       TimeValue srcIn;
-       TimeValue srcDuration;
-       TimeValue dstIn;
-       if (!PyArg_ParseTuple(_args, "O&lll",
-                             TrackObj_Convert, &dstTrack,
-                             &srcIn,
-                             &srcDuration,
-                             &dstIn))
-               return NULL;
-       _err = InsertTrackSegment(_self->ob_itself,
-                                 dstTrack,
-                                 srcIn,
-                                 srcDuration,
-                                 dstIn);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *TrackObj_InsertEmptyTrackSegment(_self, _args)
-       TrackObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       TimeValue dstIn;
-       TimeValue dstDuration;
-       if (!PyArg_ParseTuple(_args, "ll",
-                             &dstIn,
-                             &dstDuration))
-               return NULL;
-       _err = InsertEmptyTrackSegment(_self->ob_itself,
-                                      dstIn,
-                                      dstDuration);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *TrackObj_DeleteTrackSegment(_self, _args)
-       TrackObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       TimeValue startTime;
-       TimeValue duration;
-       if (!PyArg_ParseTuple(_args, "ll",
-                             &startTime,
-                             &duration))
-               return NULL;
-       _err = DeleteTrackSegment(_self->ob_itself,
-                                 startTime,
-                                 duration);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *TrackObj_ScaleTrackSegment(_self, _args)
-       TrackObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       TimeValue startTime;
-       TimeValue oldDuration;
-       TimeValue newDuration;
-       if (!PyArg_ParseTuple(_args, "lll",
-                             &startTime,
-                             &oldDuration,
-                             &newDuration))
-               return NULL;
-       _err = ScaleTrackSegment(_self->ob_itself,
-                                startTime,
-                                oldDuration,
-                                newDuration);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *TrackObj_IsScrapMovie(_self, _args)
-       TrackObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Component _rv;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _rv = IsScrapMovie(_self->ob_itself);
-       _res = Py_BuildValue("O&",
-                            CmpObj_New, _rv);
-       return _res;
-}
-
-static PyObject *TrackObj_CopyTrackSettings(_self, _args)
-       TrackObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       Track dstTrack;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             TrackObj_Convert, &dstTrack))
-               return NULL;
-       _err = CopyTrackSettings(_self->ob_itself,
-                                dstTrack);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *TrackObj_AddEmptyTrackToMovie(_self, _args)
-       TrackObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       Movie dstMovie;
-       Handle dataRef;
-       OSType dataRefType;
-       Track dstTrack;
-       if (!PyArg_ParseTuple(_args, "O&O&O&",
-                             MovieObj_Convert, &dstMovie,
-                             ResObj_Convert, &dataRef,
-                             PyMac_GetOSType, &dataRefType))
-               return NULL;
-       _err = AddEmptyTrackToMovie(_self->ob_itself,
-                                   dstMovie,
-                                   dataRef,
-                                   dataRefType,
-                                   &dstTrack);
-       if (_err != noErr) return PyMac_Error(_err);
-       _res = Py_BuildValue("O&",
-                            TrackObj_New, dstTrack);
-       return _res;
-}
-
-static PyObject *TrackObj_AddTrackReference(_self, _args)
-       TrackObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       Track refTrack;
-       OSType refType;
-       long addedIndex;
-       if (!PyArg_ParseTuple(_args, "O&O&",
-                             TrackObj_Convert, &refTrack,
-                             PyMac_GetOSType, &refType))
-               return NULL;
-       _err = AddTrackReference(_self->ob_itself,
-                                refTrack,
-                                refType,
-                                &addedIndex);
-       if (_err != noErr) return PyMac_Error(_err);
-       _res = Py_BuildValue("l",
-                            addedIndex);
-       return _res;
-}
-
-static PyObject *TrackObj_DeleteTrackReference(_self, _args)
-       TrackObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       OSType refType;
-       long index;
-       if (!PyArg_ParseTuple(_args, "O&l",
-                             PyMac_GetOSType, &refType,
-                             &index))
-               return NULL;
-       _err = DeleteTrackReference(_self->ob_itself,
-                                   refType,
-                                   index);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *TrackObj_SetTrackReference(_self, _args)
-       TrackObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       Track refTrack;
-       OSType refType;
-       long index;
-       if (!PyArg_ParseTuple(_args, "O&O&l",
-                             TrackObj_Convert, &refTrack,
-                             PyMac_GetOSType, &refType,
-                             &index))
-               return NULL;
-       _err = SetTrackReference(_self->ob_itself,
-                                refTrack,
-                                refType,
-                                index);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *TrackObj_GetTrackReference(_self, _args)
-       TrackObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Track _rv;
-       OSType refType;
-       long index;
-       if (!PyArg_ParseTuple(_args, "O&l",
-                             PyMac_GetOSType, &refType,
-                             &index))
-               return NULL;
-       _rv = GetTrackReference(_self->ob_itself,
-                               refType,
-                               index);
-       _res = Py_BuildValue("O&",
-                            TrackObj_New, _rv);
-       return _res;
-}
-
-static PyObject *TrackObj_GetNextTrackReferenceType(_self, _args)
-       TrackObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSType _rv;
-       OSType refType;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             PyMac_GetOSType, &refType))
-               return NULL;
-       _rv = GetNextTrackReferenceType(_self->ob_itself,
-                                       refType);
-       _res = Py_BuildValue("O&",
-                            PyMac_BuildOSType, _rv);
-       return _res;
-}
-
-static PyObject *TrackObj_GetTrackReferenceCount(_self, _args)
-       TrackObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       long _rv;
-       OSType refType;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             PyMac_GetOSType, &refType))
-               return NULL;
-       _rv = GetTrackReferenceCount(_self->ob_itself,
-                                    refType);
-       _res = Py_BuildValue("l",
-                            _rv);
-       return _res;
-}
-
-static PyObject *TrackObj_GetTrackEditRate(_self, _args)
-       TrackObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Fixed _rv;
-       TimeValue atTime;
-       if (!PyArg_ParseTuple(_args, "l",
-                             &atTime))
-               return NULL;
-       _rv = GetTrackEditRate(_self->ob_itself,
-                              atTime);
-       _res = Py_BuildValue("O&",
-                            PyMac_BuildFixed, _rv);
-       return _res;
-}
-
-static PyObject *TrackObj_GetTrackDataSize(_self, _args)
-       TrackObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       long _rv;
-       TimeValue startTime;
-       TimeValue duration;
-       if (!PyArg_ParseTuple(_args, "ll",
-                             &startTime,
-                             &duration))
-               return NULL;
-       _rv = GetTrackDataSize(_self->ob_itself,
-                              startTime,
-                              duration);
-       _res = Py_BuildValue("l",
-                            _rv);
-       return _res;
-}
-
-static PyObject *TrackObj_GetTrackDataSize64(_self, _args)
-       TrackObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       TimeValue startTime;
-       TimeValue duration;
-       wide dataSize;
-       if (!PyArg_ParseTuple(_args, "ll",
-                             &startTime,
-                             &duration))
-               return NULL;
-       _err = GetTrackDataSize64(_self->ob_itself,
-                                 startTime,
-                                 duration,
-                                 &dataSize);
-       if (_err != noErr) return PyMac_Error(_err);
-       _res = Py_BuildValue("O&",
-                            PyMac_Buildwide, dataSize);
-       return _res;
-}
-
-static PyObject *TrackObj_PtInTrack(_self, _args)
-       TrackObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Boolean _rv;
-       Point pt;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             PyMac_GetPoint, &pt))
-               return NULL;
-       _rv = PtInTrack(_self->ob_itself,
-                       pt);
-       _res = Py_BuildValue("b",
-                            _rv);
-       return _res;
-}
-
-static PyObject *TrackObj_GetTrackNextInterestingTime(_self, _args)
-       TrackObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       short interestingTimeFlags;
-       TimeValue time;
-       Fixed rate;
-       TimeValue interestingTime;
-       TimeValue interestingDuration;
-       if (!PyArg_ParseTuple(_args, "hlO&",
-                             &interestingTimeFlags,
-                             &time,
-                             PyMac_GetFixed, &rate))
-               return NULL;
-       GetTrackNextInterestingTime(_self->ob_itself,
-                                   interestingTimeFlags,
-                                   time,
-                                   rate,
-                                   &interestingTime,
-                                   &interestingDuration);
-       _res = Py_BuildValue("ll",
-                            interestingTime,
-                            interestingDuration);
-       return _res;
-}
-
-static PyObject *TrackObj_GetTrackSegmentDisplayBoundsRgn(_self, _args)
-       TrackObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       RgnHandle _rv;
-       TimeValue time;
-       TimeValue duration;
-       if (!PyArg_ParseTuple(_args, "ll",
-                             &time,
-                             &duration))
-               return NULL;
-       _rv = GetTrackSegmentDisplayBoundsRgn(_self->ob_itself,
-                                             time,
-                                             duration);
-       _res = Py_BuildValue("O&",
-                            ResObj_New, _rv);
-       return _res;
-}
-
-static PyObject *TrackObj_GetTrackStatus(_self, _args)
-       TrackObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       ComponentResult _rv;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _rv = GetTrackStatus(_self->ob_itself);
-       _res = Py_BuildValue("l",
-                            _rv);
-       return _res;
-}
-
-static PyObject *TrackObj_SetTrackLoadSettings(_self, _args)
-       TrackObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       TimeValue preloadTime;
-       TimeValue preloadDuration;
-       long preloadFlags;
-       long defaultHints;
-       if (!PyArg_ParseTuple(_args, "llll",
-                             &preloadTime,
-                             &preloadDuration,
-                             &preloadFlags,
-                             &defaultHints))
-               return NULL;
-       SetTrackLoadSettings(_self->ob_itself,
-                            preloadTime,
-                            preloadDuration,
-                            preloadFlags,
-                            defaultHints);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *TrackObj_GetTrackLoadSettings(_self, _args)
-       TrackObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       TimeValue preloadTime;
-       TimeValue preloadDuration;
-       long preloadFlags;
-       long defaultHints;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       GetTrackLoadSettings(_self->ob_itself,
-                            &preloadTime,
-                            &preloadDuration,
-                            &preloadFlags,
-                            &defaultHints);
-       _res = Py_BuildValue("llll",
-                            preloadTime,
-                            preloadDuration,
-                            preloadFlags,
-                            defaultHints);
-       return _res;
-}
-
-static PyMethodDef TrackObj_methods[] = {
-       {"LoadTrackIntoRam", (PyCFunction)TrackObj_LoadTrackIntoRam, 1,
-        "(TimeValue time, TimeValue duration, long flags) -> None"},
-       {"GetTrackPict", (PyCFunction)TrackObj_GetTrackPict, 1,
-        "(TimeValue time) -> (PicHandle _rv)"},
-       {"GetTrackClipRgn", (PyCFunction)TrackObj_GetTrackClipRgn, 1,
-        "() -> (RgnHandle _rv)"},
-       {"SetTrackClipRgn", (PyCFunction)TrackObj_SetTrackClipRgn, 1,
-        "(RgnHandle theClip) -> None"},
-       {"GetTrackDisplayBoundsRgn", (PyCFunction)TrackObj_GetTrackDisplayBoundsRgn, 1,
-        "() -> (RgnHandle _rv)"},
-       {"GetTrackMovieBoundsRgn", (PyCFunction)TrackObj_GetTrackMovieBoundsRgn, 1,
-        "() -> (RgnHandle _rv)"},
-       {"GetTrackBoundsRgn", (PyCFunction)TrackObj_GetTrackBoundsRgn, 1,
-        "() -> (RgnHandle _rv)"},
-       {"GetTrackMatte", (PyCFunction)TrackObj_GetTrackMatte, 1,
-        "() -> (PixMapHandle _rv)"},
-       {"SetTrackMatte", (PyCFunction)TrackObj_SetTrackMatte, 1,
-        "(PixMapHandle theMatte) -> None"},
-       {"GetTrackID", (PyCFunction)TrackObj_GetTrackID, 1,
-        "() -> (long _rv)"},
-       {"GetTrackMovie", (PyCFunction)TrackObj_GetTrackMovie, 1,
-        "() -> (Movie _rv)"},
-       {"GetTrackCreationTime", (PyCFunction)TrackObj_GetTrackCreationTime, 1,
-        "() -> (unsigned long _rv)"},
-       {"GetTrackModificationTime", (PyCFunction)TrackObj_GetTrackModificationTime, 1,
-        "() -> (unsigned long _rv)"},
-       {"GetTrackEnabled", (PyCFunction)TrackObj_GetTrackEnabled, 1,
-        "() -> (Boolean _rv)"},
-       {"SetTrackEnabled", (PyCFunction)TrackObj_SetTrackEnabled, 1,
-        "(Boolean isEnabled) -> None"},
-       {"GetTrackUsage", (PyCFunction)TrackObj_GetTrackUsage, 1,
-        "() -> (long _rv)"},
-       {"SetTrackUsage", (PyCFunction)TrackObj_SetTrackUsage, 1,
-        "(long usage) -> None"},
-       {"GetTrackDuration", (PyCFunction)TrackObj_GetTrackDuration, 1,
-        "() -> (TimeValue _rv)"},
-       {"GetTrackOffset", (PyCFunction)TrackObj_GetTrackOffset, 1,
-        "() -> (TimeValue _rv)"},
-       {"SetTrackOffset", (PyCFunction)TrackObj_SetTrackOffset, 1,
-        "(TimeValue movieOffsetTime) -> None"},
-       {"GetTrackLayer", (PyCFunction)TrackObj_GetTrackLayer, 1,
-        "() -> (short _rv)"},
-       {"SetTrackLayer", (PyCFunction)TrackObj_SetTrackLayer, 1,
-        "(short layer) -> None"},
-       {"GetTrackAlternate", (PyCFunction)TrackObj_GetTrackAlternate, 1,
-        "() -> (Track _rv)"},
-       {"SetTrackAlternate", (PyCFunction)TrackObj_SetTrackAlternate, 1,
-        "(Track alternateT) -> None"},
-       {"GetTrackVolume", (PyCFunction)TrackObj_GetTrackVolume, 1,
-        "() -> (short _rv)"},
-       {"SetTrackVolume", (PyCFunction)TrackObj_SetTrackVolume, 1,
-        "(short volume) -> None"},
-       {"GetTrackDimensions", (PyCFunction)TrackObj_GetTrackDimensions, 1,
-        "() -> (Fixed width, Fixed height)"},
-       {"SetTrackDimensions", (PyCFunction)TrackObj_SetTrackDimensions, 1,
-        "(Fixed width, Fixed height) -> None"},
-       {"GetTrackUserData", (PyCFunction)TrackObj_GetTrackUserData, 1,
-        "() -> (UserData _rv)"},
-       {"GetTrackSoundLocalizationSettings", (PyCFunction)TrackObj_GetTrackSoundLocalizationSettings, 1,
-        "() -> (Handle settings)"},
-       {"SetTrackSoundLocalizationSettings", (PyCFunction)TrackObj_SetTrackSoundLocalizationSettings, 1,
-        "(Handle settings) -> None"},
-       {"NewTrackMedia", (PyCFunction)TrackObj_NewTrackMedia, 1,
-        "(OSType mediaType, TimeScale timeScale, Handle dataRef, OSType dataRefType) -> (Media _rv)"},
-       {"GetTrackMedia", (PyCFunction)TrackObj_GetTrackMedia, 1,
-        "() -> (Media _rv)"},
-       {"InsertMediaIntoTrack", (PyCFunction)TrackObj_InsertMediaIntoTrack, 1,
-        "(TimeValue trackStart, TimeValue mediaTime, TimeValue mediaDuration, Fixed mediaRate) -> None"},
-       {"InsertTrackSegment", (PyCFunction)TrackObj_InsertTrackSegment, 1,
-        "(Track dstTrack, TimeValue srcIn, TimeValue srcDuration, TimeValue dstIn) -> None"},
-       {"InsertEmptyTrackSegment", (PyCFunction)TrackObj_InsertEmptyTrackSegment, 1,
-        "(TimeValue dstIn, TimeValue dstDuration) -> None"},
-       {"DeleteTrackSegment", (PyCFunction)TrackObj_DeleteTrackSegment, 1,
-        "(TimeValue startTime, TimeValue duration) -> None"},
-       {"ScaleTrackSegment", (PyCFunction)TrackObj_ScaleTrackSegment, 1,
-        "(TimeValue startTime, TimeValue oldDuration, TimeValue newDuration) -> None"},
-       {"IsScrapMovie", (PyCFunction)TrackObj_IsScrapMovie, 1,
-        "() -> (Component _rv)"},
-       {"CopyTrackSettings", (PyCFunction)TrackObj_CopyTrackSettings, 1,
-        "(Track dstTrack) -> None"},
-       {"AddEmptyTrackToMovie", (PyCFunction)TrackObj_AddEmptyTrackToMovie, 1,
-        "(Movie dstMovie, Handle dataRef, OSType dataRefType) -> (Track dstTrack)"},
-       {"AddTrackReference", (PyCFunction)TrackObj_AddTrackReference, 1,
-        "(Track refTrack, OSType refType) -> (long addedIndex)"},
-       {"DeleteTrackReference", (PyCFunction)TrackObj_DeleteTrackReference, 1,
-        "(OSType refType, long index) -> None"},
-       {"SetTrackReference", (PyCFunction)TrackObj_SetTrackReference, 1,
-        "(Track refTrack, OSType refType, long index) -> None"},
-       {"GetTrackReference", (PyCFunction)TrackObj_GetTrackReference, 1,
-        "(OSType refType, long index) -> (Track _rv)"},
-       {"GetNextTrackReferenceType", (PyCFunction)TrackObj_GetNextTrackReferenceType, 1,
-        "(OSType refType) -> (OSType _rv)"},
-       {"GetTrackReferenceCount", (PyCFunction)TrackObj_GetTrackReferenceCount, 1,
-        "(OSType refType) -> (long _rv)"},
-       {"GetTrackEditRate", (PyCFunction)TrackObj_GetTrackEditRate, 1,
-        "(TimeValue atTime) -> (Fixed _rv)"},
-       {"GetTrackDataSize", (PyCFunction)TrackObj_GetTrackDataSize, 1,
-        "(TimeValue startTime, TimeValue duration) -> (long _rv)"},
-       {"GetTrackDataSize64", (PyCFunction)TrackObj_GetTrackDataSize64, 1,
-        "(TimeValue startTime, TimeValue duration) -> (wide dataSize)"},
-       {"PtInTrack", (PyCFunction)TrackObj_PtInTrack, 1,
-        "(Point pt) -> (Boolean _rv)"},
-       {"GetTrackNextInterestingTime", (PyCFunction)TrackObj_GetTrackNextInterestingTime, 1,
-        "(short interestingTimeFlags, TimeValue time, Fixed rate) -> (TimeValue interestingTime, TimeValue interestingDuration)"},
-       {"GetTrackSegmentDisplayBoundsRgn", (PyCFunction)TrackObj_GetTrackSegmentDisplayBoundsRgn, 1,
-        "(TimeValue time, TimeValue duration) -> (RgnHandle _rv)"},
-       {"GetTrackStatus", (PyCFunction)TrackObj_GetTrackStatus, 1,
-        "() -> (ComponentResult _rv)"},
-       {"SetTrackLoadSettings", (PyCFunction)TrackObj_SetTrackLoadSettings, 1,
-        "(TimeValue preloadTime, TimeValue preloadDuration, long preloadFlags, long defaultHints) -> None"},
-       {"GetTrackLoadSettings", (PyCFunction)TrackObj_GetTrackLoadSettings, 1,
-        "() -> (TimeValue preloadTime, TimeValue preloadDuration, long preloadFlags, long defaultHints)"},
-       {NULL, NULL, 0}
-};
-
-PyMethodChain TrackObj_chain = { TrackObj_methods, NULL };
-
-static PyObject *TrackObj_getattr(self, name)
-       TrackObject *self;
-       char *name;
-{
-       return Py_FindMethodInChain(&TrackObj_chain, (PyObject *)self, name);
-}
-
-#define TrackObj_setattr NULL
-
-#define TrackObj_compare NULL
-
-#define TrackObj_repr NULL
-
-#define TrackObj_hash NULL
-
-PyTypeObject Track_Type = {
-       PyObject_HEAD_INIT(&PyType_Type)
-       0, /*ob_size*/
-       "Track", /*tp_name*/
-       sizeof(TrackObject), /*tp_basicsize*/
-       0, /*tp_itemsize*/
-       /* methods */
-       (destructor) TrackObj_dealloc, /*tp_dealloc*/
-       0, /*tp_print*/
-       (getattrfunc) TrackObj_getattr, /*tp_getattr*/
-       (setattrfunc) TrackObj_setattr, /*tp_setattr*/
-       (cmpfunc) TrackObj_compare, /*tp_compare*/
-       (reprfunc) TrackObj_repr, /*tp_repr*/
-       (PyNumberMethods *)0, /* tp_as_number */
-       (PySequenceMethods *)0, /* tp_as_sequence */
-       (PyMappingMethods *)0, /* tp_as_mapping */
-       (hashfunc) TrackObj_hash, /*tp_hash*/
-};
-
-/* --------------------- End object type Track ---------------------- */
-
-
-/* ----------------------- Object type Movie ------------------------ */
-
-PyTypeObject Movie_Type;
-
-#define MovieObj_Check(x) ((x)->ob_type == &Movie_Type)
-
-typedef struct MovieObject {
-       PyObject_HEAD
-       Movie ob_itself;
-} MovieObject;
-
-PyObject *MovieObj_New(itself)
-       Movie itself;
-{
-       MovieObject *it;
-       if (itself == NULL) {
-                                               PyErr_SetString(Qt_Error,"Cannot create null Movie");
-                                               return NULL;
-                                       }
-       it = PyObject_NEW(MovieObject, &Movie_Type);
-       if (it == NULL) return NULL;
-       it->ob_itself = itself;
-       return (PyObject *)it;
-}
-MovieObj_Convert(v, p_itself)
-       PyObject *v;
-       Movie *p_itself;
-{
-       if (!MovieObj_Check(v))
-       {
-               PyErr_SetString(PyExc_TypeError, "Movie required");
-               return 0;
-       }
-       *p_itself = ((MovieObject *)v)->ob_itself;
-       return 1;
-}
-
-static void MovieObj_dealloc(self)
-       MovieObject *self;
-{
-       DisposeMovie(self->ob_itself);
-       PyMem_DEL(self);
-}
-
-static PyObject *MovieObj_MoviesTask(_self, _args)
-       MovieObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       long maxMilliSecToUse;
-       if (!PyArg_ParseTuple(_args, "l",
-                             &maxMilliSecToUse))
-               return NULL;
-       MoviesTask(_self->ob_itself,
-                  maxMilliSecToUse);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *MovieObj_PrerollMovie(_self, _args)
-       MovieObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       TimeValue time;
-       Fixed Rate;
-       if (!PyArg_ParseTuple(_args, "lO&",
-                             &time,
-                             PyMac_GetFixed, &Rate))
-               return NULL;
-       _err = PrerollMovie(_self->ob_itself,
-                           time,
-                           Rate);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *MovieObj_AbortPrePrerollMovie(_self, _args)
-       MovieObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr err;
-       if (!PyArg_ParseTuple(_args, "h",
-                             &err))
-               return NULL;
-       AbortPrePrerollMovie(_self->ob_itself,
-                            err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *MovieObj_LoadMovieIntoRam(_self, _args)
-       MovieObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       TimeValue time;
-       TimeValue duration;
-       long flags;
-       if (!PyArg_ParseTuple(_args, "lll",
-                             &time,
-                             &duration,
-                             &flags))
-               return NULL;
-       _err = LoadMovieIntoRam(_self->ob_itself,
-                               time,
-                               duration,
-                               flags);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *MovieObj_SetMovieActive(_self, _args)
-       MovieObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Boolean active;
-       if (!PyArg_ParseTuple(_args, "b",
-                             &active))
-               return NULL;
-       SetMovieActive(_self->ob_itself,
-                      active);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *MovieObj_GetMovieActive(_self, _args)
-       MovieObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Boolean _rv;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _rv = GetMovieActive(_self->ob_itself);
-       _res = Py_BuildValue("b",
-                            _rv);
-       return _res;
-}
-
-static PyObject *MovieObj_StartMovie(_self, _args)
-       MovieObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       StartMovie(_self->ob_itself);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *MovieObj_StopMovie(_self, _args)
-       MovieObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       StopMovie(_self->ob_itself);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *MovieObj_GoToBeginningOfMovie(_self, _args)
-       MovieObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       GoToBeginningOfMovie(_self->ob_itself);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *MovieObj_GoToEndOfMovie(_self, _args)
-       MovieObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       GoToEndOfMovie(_self->ob_itself);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *MovieObj_IsMovieDone(_self, _args)
-       MovieObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Boolean _rv;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _rv = IsMovieDone(_self->ob_itself);
-       _res = Py_BuildValue("b",
-                            _rv);
-       return _res;
-}
-
-static PyObject *MovieObj_GetMoviePreviewMode(_self, _args)
-       MovieObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Boolean _rv;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _rv = GetMoviePreviewMode(_self->ob_itself);
-       _res = Py_BuildValue("b",
-                            _rv);
-       return _res;
-}
-
-static PyObject *MovieObj_SetMoviePreviewMode(_self, _args)
-       MovieObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Boolean usePreview;
-       if (!PyArg_ParseTuple(_args, "b",
-                             &usePreview))
-               return NULL;
-       SetMoviePreviewMode(_self->ob_itself,
-                           usePreview);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *MovieObj_ShowMoviePoster(_self, _args)
-       MovieObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       ShowMoviePoster(_self->ob_itself);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *MovieObj_GetMovieTimeBase(_self, _args)
-       MovieObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       TimeBase _rv;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _rv = GetMovieTimeBase(_self->ob_itself);
-       _res = Py_BuildValue("O&",
-                            TimeBaseObj_New, _rv);
-       return _res;
-}
-
-static PyObject *MovieObj_SetMovieMasterTimeBase(_self, _args)
-       MovieObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       TimeBase tb;
-       TimeRecord slaveZero;
-       if (!PyArg_ParseTuple(_args, "O&O&",
-                             TimeBaseObj_Convert, &tb,
-                             QtTimeRecord_Convert, &slaveZero))
-               return NULL;
-       SetMovieMasterTimeBase(_self->ob_itself,
-                              tb,
-                              &slaveZero);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *MovieObj_SetMovieMasterClock(_self, _args)
-       MovieObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Component clockMeister;
-       TimeRecord slaveZero;
-       if (!PyArg_ParseTuple(_args, "O&O&",
-                             CmpObj_Convert, &clockMeister,
-                             QtTimeRecord_Convert, &slaveZero))
-               return NULL;
-       SetMovieMasterClock(_self->ob_itself,
-                           clockMeister,
-                           &slaveZero);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *MovieObj_GetMovieGWorld(_self, _args)
-       MovieObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       CGrafPtr port;
-       GDHandle gdh;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       GetMovieGWorld(_self->ob_itself,
-                      &port,
-                      &gdh);
-       _res = Py_BuildValue("O&O&",
-                            GrafObj_New, port,
-                            OptResObj_New, gdh);
-       return _res;
-}
-
-static PyObject *MovieObj_SetMovieGWorld(_self, _args)
-       MovieObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       CGrafPtr port;
-       GDHandle gdh;
-       if (!PyArg_ParseTuple(_args, "O&O&",
-                             GrafObj_Convert, &port,
-                             OptResObj_Convert, &gdh))
-               return NULL;
-       SetMovieGWorld(_self->ob_itself,
-                      port,
-                      gdh);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *MovieObj_GetMovieNaturalBoundsRect(_self, _args)
-       MovieObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Rect naturalBounds;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       GetMovieNaturalBoundsRect(_self->ob_itself,
-                                 &naturalBounds);
-       _res = Py_BuildValue("O&",
-                            PyMac_BuildRect, &naturalBounds);
-       return _res;
-}
-
-static PyObject *MovieObj_GetNextTrackForCompositing(_self, _args)
-       MovieObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Track _rv;
-       Track theTrack;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             TrackObj_Convert, &theTrack))
-               return NULL;
-       _rv = GetNextTrackForCompositing(_self->ob_itself,
-                                        theTrack);
-       _res = Py_BuildValue("O&",
-                            TrackObj_New, _rv);
-       return _res;
-}
-
-static PyObject *MovieObj_GetPrevTrackForCompositing(_self, _args)
-       MovieObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Track _rv;
-       Track theTrack;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             TrackObj_Convert, &theTrack))
-               return NULL;
-       _rv = GetPrevTrackForCompositing(_self->ob_itself,
-                                        theTrack);
-       _res = Py_BuildValue("O&",
-                            TrackObj_New, _rv);
-       return _res;
-}
-
-static PyObject *MovieObj_GetMoviePict(_self, _args)
-       MovieObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       PicHandle _rv;
-       TimeValue time;
-       if (!PyArg_ParseTuple(_args, "l",
-                             &time))
-               return NULL;
-       _rv = GetMoviePict(_self->ob_itself,
-                          time);
-       _res = Py_BuildValue("O&",
-                            ResObj_New, _rv);
-       return _res;
-}
-
-static PyObject *MovieObj_GetMoviePosterPict(_self, _args)
-       MovieObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       PicHandle _rv;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _rv = GetMoviePosterPict(_self->ob_itself);
-       _res = Py_BuildValue("O&",
-                            ResObj_New, _rv);
-       return _res;
-}
-
-static PyObject *MovieObj_UpdateMovie(_self, _args)
-       MovieObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _err = UpdateMovie(_self->ob_itself);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *MovieObj_InvalidateMovieRegion(_self, _args)
-       MovieObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       RgnHandle invalidRgn;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             ResObj_Convert, &invalidRgn))
-               return NULL;
-       _err = InvalidateMovieRegion(_self->ob_itself,
-                                    invalidRgn);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *MovieObj_GetMovieBox(_self, _args)
-       MovieObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Rect boxRect;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       GetMovieBox(_self->ob_itself,
-                   &boxRect);
-       _res = Py_BuildValue("O&",
-                            PyMac_BuildRect, &boxRect);
-       return _res;
-}
-
-static PyObject *MovieObj_SetMovieBox(_self, _args)
-       MovieObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Rect boxRect;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             PyMac_GetRect, &boxRect))
-               return NULL;
-       SetMovieBox(_self->ob_itself,
-                   &boxRect);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *MovieObj_GetMovieDisplayClipRgn(_self, _args)
-       MovieObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       RgnHandle _rv;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _rv = GetMovieDisplayClipRgn(_self->ob_itself);
-       _res = Py_BuildValue("O&",
-                            ResObj_New, _rv);
-       return _res;
-}
-
-static PyObject *MovieObj_SetMovieDisplayClipRgn(_self, _args)
-       MovieObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       RgnHandle theClip;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             ResObj_Convert, &theClip))
-               return NULL;
-       SetMovieDisplayClipRgn(_self->ob_itself,
-                              theClip);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *MovieObj_GetMovieClipRgn(_self, _args)
-       MovieObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       RgnHandle _rv;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _rv = GetMovieClipRgn(_self->ob_itself);
-       _res = Py_BuildValue("O&",
-                            ResObj_New, _rv);
-       return _res;
-}
-
-static PyObject *MovieObj_SetMovieClipRgn(_self, _args)
-       MovieObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       RgnHandle theClip;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             ResObj_Convert, &theClip))
-               return NULL;
-       SetMovieClipRgn(_self->ob_itself,
-                       theClip);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *MovieObj_GetMovieDisplayBoundsRgn(_self, _args)
-       MovieObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       RgnHandle _rv;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _rv = GetMovieDisplayBoundsRgn(_self->ob_itself);
-       _res = Py_BuildValue("O&",
-                            ResObj_New, _rv);
-       return _res;
-}
-
-static PyObject *MovieObj_GetMovieBoundsRgn(_self, _args)
-       MovieObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       RgnHandle _rv;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _rv = GetMovieBoundsRgn(_self->ob_itself);
-       _res = Py_BuildValue("O&",
-                            ResObj_New, _rv);
-       return _res;
-}
-
-static PyObject *MovieObj_PutMovieIntoHandle(_self, _args)
-       MovieObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       Handle publicMovie;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             ResObj_Convert, &publicMovie))
-               return NULL;
-       _err = PutMovieIntoHandle(_self->ob_itself,
-                                 publicMovie);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *MovieObj_PutMovieIntoDataFork(_self, _args)
-       MovieObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       short fRefNum;
-       long offset;
-       long maxSize;
-       if (!PyArg_ParseTuple(_args, "hll",
-                             &fRefNum,
-                             &offset,
-                             &maxSize))
-               return NULL;
-       _err = PutMovieIntoDataFork(_self->ob_itself,
-                                   fRefNum,
-                                   offset,
-                                   maxSize);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *MovieObj_PutMovieIntoDataFork64(_self, _args)
-       MovieObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       long fRefNum;
-       wide offset;
-       unsigned long maxSize;
-       if (!PyArg_ParseTuple(_args, "lO&l",
-                             &fRefNum,
-                             PyMac_Getwide, &offset,
-                             &maxSize))
-               return NULL;
-       _err = PutMovieIntoDataFork64(_self->ob_itself,
-                                     fRefNum,
-                                     &offset,
-                                     maxSize);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *MovieObj_GetMovieCreationTime(_self, _args)
-       MovieObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       unsigned long _rv;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _rv = GetMovieCreationTime(_self->ob_itself);
-       _res = Py_BuildValue("l",
-                            _rv);
-       return _res;
-}
-
-static PyObject *MovieObj_GetMovieModificationTime(_self, _args)
-       MovieObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       unsigned long _rv;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _rv = GetMovieModificationTime(_self->ob_itself);
-       _res = Py_BuildValue("l",
-                            _rv);
-       return _res;
-}
-
-static PyObject *MovieObj_GetMovieTimeScale(_self, _args)
-       MovieObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       TimeScale _rv;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _rv = GetMovieTimeScale(_self->ob_itself);
-       _res = Py_BuildValue("l",
-                            _rv);
-       return _res;
-}
-
-static PyObject *MovieObj_SetMovieTimeScale(_self, _args)
-       MovieObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       TimeScale timeScale;
-       if (!PyArg_ParseTuple(_args, "l",
-                             &timeScale))
-               return NULL;
-       SetMovieTimeScale(_self->ob_itself,
-                         timeScale);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *MovieObj_GetMovieDuration(_self, _args)
-       MovieObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       TimeValue _rv;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _rv = GetMovieDuration(_self->ob_itself);
-       _res = Py_BuildValue("l",
-                            _rv);
-       return _res;
-}
-
-static PyObject *MovieObj_GetMovieRate(_self, _args)
-       MovieObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Fixed _rv;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _rv = GetMovieRate(_self->ob_itself);
-       _res = Py_BuildValue("O&",
-                            PyMac_BuildFixed, _rv);
-       return _res;
-}
-
-static PyObject *MovieObj_SetMovieRate(_self, _args)
-       MovieObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Fixed rate;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             PyMac_GetFixed, &rate))
-               return NULL;
-       SetMovieRate(_self->ob_itself,
-                    rate);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *MovieObj_GetMoviePreferredRate(_self, _args)
-       MovieObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Fixed _rv;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _rv = GetMoviePreferredRate(_self->ob_itself);
-       _res = Py_BuildValue("O&",
-                            PyMac_BuildFixed, _rv);
-       return _res;
-}
-
-static PyObject *MovieObj_SetMoviePreferredRate(_self, _args)
-       MovieObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Fixed rate;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             PyMac_GetFixed, &rate))
-               return NULL;
-       SetMoviePreferredRate(_self->ob_itself,
-                             rate);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *MovieObj_GetMoviePreferredVolume(_self, _args)
-       MovieObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       short _rv;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _rv = GetMoviePreferredVolume(_self->ob_itself);
-       _res = Py_BuildValue("h",
-                            _rv);
-       return _res;
-}
-
-static PyObject *MovieObj_SetMoviePreferredVolume(_self, _args)
-       MovieObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       short volume;
-       if (!PyArg_ParseTuple(_args, "h",
-                             &volume))
-               return NULL;
-       SetMoviePreferredVolume(_self->ob_itself,
-                               volume);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *MovieObj_GetMovieVolume(_self, _args)
-       MovieObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       short _rv;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _rv = GetMovieVolume(_self->ob_itself);
-       _res = Py_BuildValue("h",
-                            _rv);
-       return _res;
-}
-
-static PyObject *MovieObj_SetMovieVolume(_self, _args)
-       MovieObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       short volume;
-       if (!PyArg_ParseTuple(_args, "h",
-                             &volume))
-               return NULL;
-       SetMovieVolume(_self->ob_itself,
-                      volume);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *MovieObj_GetMoviePreviewTime(_self, _args)
-       MovieObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       TimeValue previewTime;
-       TimeValue previewDuration;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       GetMoviePreviewTime(_self->ob_itself,
-                           &previewTime,
-                           &previewDuration);
-       _res = Py_BuildValue("ll",
-                            previewTime,
-                            previewDuration);
-       return _res;
-}
-
-static PyObject *MovieObj_SetMoviePreviewTime(_self, _args)
-       MovieObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       TimeValue previewTime;
-       TimeValue previewDuration;
-       if (!PyArg_ParseTuple(_args, "ll",
-                             &previewTime,
-                             &previewDuration))
-               return NULL;
-       SetMoviePreviewTime(_self->ob_itself,
-                           previewTime,
-                           previewDuration);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *MovieObj_GetMoviePosterTime(_self, _args)
-       MovieObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       TimeValue _rv;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _rv = GetMoviePosterTime(_self->ob_itself);
-       _res = Py_BuildValue("l",
-                            _rv);
-       return _res;
-}
-
-static PyObject *MovieObj_SetMoviePosterTime(_self, _args)
-       MovieObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       TimeValue posterTime;
-       if (!PyArg_ParseTuple(_args, "l",
-                             &posterTime))
-               return NULL;
-       SetMoviePosterTime(_self->ob_itself,
-                          posterTime);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *MovieObj_GetMovieSelection(_self, _args)
-       MovieObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       TimeValue selectionTime;
-       TimeValue selectionDuration;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       GetMovieSelection(_self->ob_itself,
-                         &selectionTime,
-                         &selectionDuration);
-       _res = Py_BuildValue("ll",
-                            selectionTime,
-                            selectionDuration);
-       return _res;
-}
-
-static PyObject *MovieObj_SetMovieSelection(_self, _args)
-       MovieObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       TimeValue selectionTime;
-       TimeValue selectionDuration;
-       if (!PyArg_ParseTuple(_args, "ll",
-                             &selectionTime,
-                             &selectionDuration))
-               return NULL;
-       SetMovieSelection(_self->ob_itself,
-                         selectionTime,
-                         selectionDuration);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *MovieObj_SetMovieActiveSegment(_self, _args)
-       MovieObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       TimeValue startTime;
-       TimeValue duration;
-       if (!PyArg_ParseTuple(_args, "ll",
-                             &startTime,
-                             &duration))
-               return NULL;
-       SetMovieActiveSegment(_self->ob_itself,
-                             startTime,
-                             duration);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *MovieObj_GetMovieActiveSegment(_self, _args)
-       MovieObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       TimeValue startTime;
-       TimeValue duration;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       GetMovieActiveSegment(_self->ob_itself,
-                             &startTime,
-                             &duration);
-       _res = Py_BuildValue("ll",
-                            startTime,
-                            duration);
-       return _res;
-}
-
-static PyObject *MovieObj_GetMovieTime(_self, _args)
-       MovieObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       TimeValue _rv;
-       TimeRecord currentTime;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _rv = GetMovieTime(_self->ob_itself,
-                          &currentTime);
-       _res = Py_BuildValue("lO&",
-                            _rv,
-                            QtTimeRecord_New, &currentTime);
-       return _res;
-}
-
-static PyObject *MovieObj_SetMovieTime(_self, _args)
-       MovieObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       TimeRecord newtime;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             QtTimeRecord_Convert, &newtime))
-               return NULL;
-       SetMovieTime(_self->ob_itself,
-                    &newtime);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *MovieObj_SetMovieTimeValue(_self, _args)
-       MovieObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       TimeValue newtime;
-       if (!PyArg_ParseTuple(_args, "l",
-                             &newtime))
-               return NULL;
-       SetMovieTimeValue(_self->ob_itself,
-                         newtime);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *MovieObj_GetMovieUserData(_self, _args)
-       MovieObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       UserData _rv;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _rv = GetMovieUserData(_self->ob_itself);
-       _res = Py_BuildValue("O&",
-                            UserDataObj_New, _rv);
-       return _res;
-}
-
-static PyObject *MovieObj_GetMovieTrackCount(_self, _args)
-       MovieObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       long _rv;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _rv = GetMovieTrackCount(_self->ob_itself);
-       _res = Py_BuildValue("l",
-                            _rv);
-       return _res;
-}
-
-static PyObject *MovieObj_GetMovieTrack(_self, _args)
-       MovieObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Track _rv;
-       long trackID;
-       if (!PyArg_ParseTuple(_args, "l",
-                             &trackID))
-               return NULL;
-       _rv = GetMovieTrack(_self->ob_itself,
-                           trackID);
-       _res = Py_BuildValue("O&",
-                            TrackObj_New, _rv);
-       return _res;
-}
-
-static PyObject *MovieObj_GetMovieIndTrack(_self, _args)
-       MovieObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Track _rv;
-       long index;
-       if (!PyArg_ParseTuple(_args, "l",
-                             &index))
-               return NULL;
-       _rv = GetMovieIndTrack(_self->ob_itself,
-                              index);
-       _res = Py_BuildValue("O&",
-                            TrackObj_New, _rv);
-       return _res;
-}
-
-static PyObject *MovieObj_GetMovieIndTrackType(_self, _args)
-       MovieObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Track _rv;
-       long index;
-       OSType trackType;
-       long flags;
-       if (!PyArg_ParseTuple(_args, "lO&l",
-                             &index,
-                             PyMac_GetOSType, &trackType,
-                             &flags))
-               return NULL;
-       _rv = GetMovieIndTrackType(_self->ob_itself,
-                                  index,
-                                  trackType,
-                                  flags);
-       _res = Py_BuildValue("O&",
-                            TrackObj_New, _rv);
-       return _res;
-}
-
-static PyObject *MovieObj_NewMovieTrack(_self, _args)
-       MovieObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Track _rv;
-       Fixed width;
-       Fixed height;
-       short trackVolume;
-       if (!PyArg_ParseTuple(_args, "O&O&h",
-                             PyMac_GetFixed, &width,
-                             PyMac_GetFixed, &height,
-                             &trackVolume))
-               return NULL;
-       _rv = NewMovieTrack(_self->ob_itself,
-                           width,
-                           height,
-                           trackVolume);
-       _res = Py_BuildValue("O&",
-                            TrackObj_New, _rv);
-       return _res;
-}
-
-static PyObject *MovieObj_SetAutoTrackAlternatesEnabled(_self, _args)
-       MovieObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Boolean enable;
-       if (!PyArg_ParseTuple(_args, "b",
-                             &enable))
-               return NULL;
-       SetAutoTrackAlternatesEnabled(_self->ob_itself,
-                                     enable);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *MovieObj_SelectMovieAlternates(_self, _args)
-       MovieObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       SelectMovieAlternates(_self->ob_itself);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *MovieObj_InsertMovieSegment(_self, _args)
-       MovieObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       Movie dstMovie;
-       TimeValue srcIn;
-       TimeValue srcDuration;
-       TimeValue dstIn;
-       if (!PyArg_ParseTuple(_args, "O&lll",
-                             MovieObj_Convert, &dstMovie,
-                             &srcIn,
-                             &srcDuration,
-                             &dstIn))
-               return NULL;
-       _err = InsertMovieSegment(_self->ob_itself,
-                                 dstMovie,
-                                 srcIn,
-                                 srcDuration,
-                                 dstIn);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *MovieObj_InsertEmptyMovieSegment(_self, _args)
-       MovieObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       TimeValue dstIn;
-       TimeValue dstDuration;
-       if (!PyArg_ParseTuple(_args, "ll",
-                             &dstIn,
-                             &dstDuration))
-               return NULL;
-       _err = InsertEmptyMovieSegment(_self->ob_itself,
-                                      dstIn,
-                                      dstDuration);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *MovieObj_DeleteMovieSegment(_self, _args)
-       MovieObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       TimeValue startTime;
-       TimeValue duration;
-       if (!PyArg_ParseTuple(_args, "ll",
-                             &startTime,
-                             &duration))
-               return NULL;
-       _err = DeleteMovieSegment(_self->ob_itself,
-                                 startTime,
-                                 duration);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *MovieObj_ScaleMovieSegment(_self, _args)
-       MovieObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       TimeValue startTime;
-       TimeValue oldDuration;
-       TimeValue newDuration;
-       if (!PyArg_ParseTuple(_args, "lll",
-                             &startTime,
-                             &oldDuration,
-                             &newDuration))
-               return NULL;
-       _err = ScaleMovieSegment(_self->ob_itself,
-                                startTime,
-                                oldDuration,
-                                newDuration);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *MovieObj_CutMovieSelection(_self, _args)
-       MovieObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Movie _rv;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _rv = CutMovieSelection(_self->ob_itself);
-       _res = Py_BuildValue("O&",
-                            MovieObj_New, _rv);
-       return _res;
-}
-
-static PyObject *MovieObj_CopyMovieSelection(_self, _args)
-       MovieObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Movie _rv;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _rv = CopyMovieSelection(_self->ob_itself);
-       _res = Py_BuildValue("O&",
-                            MovieObj_New, _rv);
-       return _res;
-}
-
-static PyObject *MovieObj_PasteMovieSelection(_self, _args)
-       MovieObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Movie src;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             MovieObj_Convert, &src))
-               return NULL;
-       PasteMovieSelection(_self->ob_itself,
-                           src);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *MovieObj_AddMovieSelection(_self, _args)
-       MovieObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Movie src;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             MovieObj_Convert, &src))
-               return NULL;
-       AddMovieSelection(_self->ob_itself,
-                         src);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *MovieObj_ClearMovieSelection(_self, _args)
-       MovieObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       ClearMovieSelection(_self->ob_itself);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *MovieObj_PutMovieIntoTypedHandle(_self, _args)
-       MovieObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       Track targetTrack;
-       OSType handleType;
-       Handle publicMovie;
-       TimeValue start;
-       TimeValue dur;
-       long flags;
-       ComponentInstance userComp;
-       if (!PyArg_ParseTuple(_args, "O&O&O&lllO&",
-                             TrackObj_Convert, &targetTrack,
-                             PyMac_GetOSType, &handleType,
-                             ResObj_Convert, &publicMovie,
-                             &start,
-                             &dur,
-                             &flags,
-                             CmpInstObj_Convert, &userComp))
-               return NULL;
-       _err = PutMovieIntoTypedHandle(_self->ob_itself,
-                                      targetTrack,
-                                      handleType,
-                                      publicMovie,
-                                      start,
-                                      dur,
-                                      flags,
-                                      userComp);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *MovieObj_CopyMovieSettings(_self, _args)
-       MovieObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       Movie dstMovie;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             MovieObj_Convert, &dstMovie))
-               return NULL;
-       _err = CopyMovieSettings(_self->ob_itself,
-                                dstMovie);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *MovieObj_ConvertMovieToFile(_self, _args)
-       MovieObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       Track onlyTrack;
-       FSSpec outputFile;
-       OSType fileType;
-       OSType creator;
-       ScriptCode scriptTag;
-       short resID;
-       long flags;
-       ComponentInstance userComp;
-       if (!PyArg_ParseTuple(_args, "O&O&O&O&hlO&",
-                             TrackObj_Convert, &onlyTrack,
-                             PyMac_GetFSSpec, &outputFile,
-                             PyMac_GetOSType, &fileType,
-                             PyMac_GetOSType, &creator,
-                             &scriptTag,
-                             &flags,
-                             CmpInstObj_Convert, &userComp))
-               return NULL;
-       _err = ConvertMovieToFile(_self->ob_itself,
-                                 onlyTrack,
-                                 &outputFile,
-                                 fileType,
-                                 creator,
-                                 scriptTag,
-                                 &resID,
-                                 flags,
-                                 userComp);
-       if (_err != noErr) return PyMac_Error(_err);
-       _res = Py_BuildValue("h",
-                            resID);
-       return _res;
-}
-
-static PyObject *MovieObj_GetMovieDataSize(_self, _args)
-       MovieObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       long _rv;
-       TimeValue startTime;
-       TimeValue duration;
-       if (!PyArg_ParseTuple(_args, "ll",
-                             &startTime,
-                             &duration))
-               return NULL;
-       _rv = GetMovieDataSize(_self->ob_itself,
-                              startTime,
-                              duration);
-       _res = Py_BuildValue("l",
-                            _rv);
-       return _res;
-}
-
-static PyObject *MovieObj_GetMovieDataSize64(_self, _args)
-       MovieObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       TimeValue startTime;
-       TimeValue duration;
-       wide dataSize;
-       if (!PyArg_ParseTuple(_args, "ll",
-                             &startTime,
-                             &duration))
-               return NULL;
-       _err = GetMovieDataSize64(_self->ob_itself,
-                                 startTime,
-                                 duration,
-                                 &dataSize);
-       if (_err != noErr) return PyMac_Error(_err);
-       _res = Py_BuildValue("O&",
-                            PyMac_Buildwide, dataSize);
-       return _res;
-}
-
-static PyObject *MovieObj_PtInMovie(_self, _args)
-       MovieObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Boolean _rv;
-       Point pt;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             PyMac_GetPoint, &pt))
-               return NULL;
-       _rv = PtInMovie(_self->ob_itself,
-                       pt);
-       _res = Py_BuildValue("b",
-                            _rv);
-       return _res;
-}
-
-static PyObject *MovieObj_SetMovieLanguage(_self, _args)
-       MovieObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       long language;
-       if (!PyArg_ParseTuple(_args, "l",
-                             &language))
-               return NULL;
-       SetMovieLanguage(_self->ob_itself,
-                        language);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *MovieObj_GetMovieNextInterestingTime(_self, _args)
-       MovieObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       short interestingTimeFlags;
-       short numMediaTypes;
-       OSType whichMediaTypes;
-       TimeValue time;
-       Fixed rate;
-       TimeValue interestingTime;
-       TimeValue interestingDuration;
-       if (!PyArg_ParseTuple(_args, "hhO&lO&",
-                             &interestingTimeFlags,
-                             &numMediaTypes,
-                             PyMac_GetOSType, &whichMediaTypes,
-                             &time,
-                             PyMac_GetFixed, &rate))
-               return NULL;
-       GetMovieNextInterestingTime(_self->ob_itself,
-                                   interestingTimeFlags,
-                                   numMediaTypes,
-                                   &whichMediaTypes,
-                                   time,
-                                   rate,
-                                   &interestingTime,
-                                   &interestingDuration);
-       _res = Py_BuildValue("ll",
-                            interestingTime,
-                            interestingDuration);
-       return _res;
-}
-
-static PyObject *MovieObj_AddMovieResource(_self, _args)
-       MovieObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       short resRefNum;
-       short resId;
-       Str255 resName;
-       if (!PyArg_ParseTuple(_args, "hO&",
-                             &resRefNum,
-                             PyMac_GetStr255, resName))
-               return NULL;
-       _err = AddMovieResource(_self->ob_itself,
-                               resRefNum,
-                               &resId,
-                               resName);
-       if (_err != noErr) return PyMac_Error(_err);
-       _res = Py_BuildValue("h",
-                            resId);
-       return _res;
-}
-
-static PyObject *MovieObj_UpdateMovieResource(_self, _args)
-       MovieObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       short resRefNum;
-       short resId;
-       Str255 resName;
-       if (!PyArg_ParseTuple(_args, "hhO&",
-                             &resRefNum,
-                             &resId,
-                             PyMac_GetStr255, resName))
-               return NULL;
-       _err = UpdateMovieResource(_self->ob_itself,
-                                  resRefNum,
-                                  resId,
-                                  resName);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *MovieObj_HasMovieChanged(_self, _args)
-       MovieObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Boolean _rv;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _rv = HasMovieChanged(_self->ob_itself);
-       _res = Py_BuildValue("b",
-                            _rv);
-       return _res;
-}
-
-static PyObject *MovieObj_ClearMovieChanged(_self, _args)
-       MovieObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       ClearMovieChanged(_self->ob_itself);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *MovieObj_SetMovieDefaultDataRef(_self, _args)
-       MovieObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       Handle dataRef;
-       OSType dataRefType;
-       if (!PyArg_ParseTuple(_args, "O&O&",
-                             ResObj_Convert, &dataRef,
-                             PyMac_GetOSType, &dataRefType))
-               return NULL;
-       _err = SetMovieDefaultDataRef(_self->ob_itself,
-                                     dataRef,
-                                     dataRefType);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *MovieObj_GetMovieDefaultDataRef(_self, _args)
-       MovieObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       Handle dataRef;
-       OSType dataRefType;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _err = GetMovieDefaultDataRef(_self->ob_itself,
-                                     &dataRef,
-                                     &dataRefType);
-       if (_err != noErr) return PyMac_Error(_err);
-       _res = Py_BuildValue("O&O&",
-                            ResObj_New, dataRef,
-                            PyMac_BuildOSType, dataRefType);
-       return _res;
-}
-
-#if !TARGET_API_MAC_CARBON
-
-static PyObject *MovieObj_SetMovieAnchorDataRef(_self, _args)
-       MovieObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       Handle dataRef;
-       OSType dataRefType;
-       if (!PyArg_ParseTuple(_args, "O&O&",
-                             ResObj_Convert, &dataRef,
-                             PyMac_GetOSType, &dataRefType))
-               return NULL;
-       _err = SetMovieAnchorDataRef(_self->ob_itself,
-                                    dataRef,
-                                    dataRefType);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-#endif
-
-#if !TARGET_API_MAC_CARBON
-
-static PyObject *MovieObj_GetMovieAnchorDataRef(_self, _args)
-       MovieObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       Handle dataRef;
-       OSType dataRefType;
-       long outFlags;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _err = GetMovieAnchorDataRef(_self->ob_itself,
-                                    &dataRef,
-                                    &dataRefType,
-                                    &outFlags);
-       if (_err != noErr) return PyMac_Error(_err);
-       _res = Py_BuildValue("O&O&l",
-                            ResObj_New, dataRef,
-                            PyMac_BuildOSType, dataRefType,
-                            outFlags);
-       return _res;
-}
-#endif
-
-static PyObject *MovieObj_SetMovieColorTable(_self, _args)
-       MovieObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       CTabHandle ctab;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             ResObj_Convert, &ctab))
-               return NULL;
-       _err = SetMovieColorTable(_self->ob_itself,
-                                 ctab);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *MovieObj_GetMovieColorTable(_self, _args)
-       MovieObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       CTabHandle ctab;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _err = GetMovieColorTable(_self->ob_itself,
-                                 &ctab);
-       if (_err != noErr) return PyMac_Error(_err);
-       _res = Py_BuildValue("O&",
-                            ResObj_New, ctab);
-       return _res;
-}
-
-static PyObject *MovieObj_FlattenMovie(_self, _args)
-       MovieObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       long movieFlattenFlags;
-       FSSpec theFile;
-       OSType creator;
-       ScriptCode scriptTag;
-       long createMovieFileFlags;
-       short resId;
-       Str255 resName;
-       if (!PyArg_ParseTuple(_args, "lO&O&hlO&",
-                             &movieFlattenFlags,
-                             PyMac_GetFSSpec, &theFile,
-                             PyMac_GetOSType, &creator,
-                             &scriptTag,
-                             &createMovieFileFlags,
-                             PyMac_GetStr255, resName))
-               return NULL;
-       FlattenMovie(_self->ob_itself,
-                    movieFlattenFlags,
-                    &theFile,
-                    creator,
-                    scriptTag,
-                    createMovieFileFlags,
-                    &resId,
-                    resName);
-       _res = Py_BuildValue("h",
-                            resId);
-       return _res;
-}
-
-static PyObject *MovieObj_FlattenMovieData(_self, _args)
-       MovieObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Movie _rv;
-       long movieFlattenFlags;
-       FSSpec theFile;
-       OSType creator;
-       ScriptCode scriptTag;
-       long createMovieFileFlags;
-       if (!PyArg_ParseTuple(_args, "lO&O&hl",
-                             &movieFlattenFlags,
-                             PyMac_GetFSSpec, &theFile,
-                             PyMac_GetOSType, &creator,
-                             &scriptTag,
-                             &createMovieFileFlags))
-               return NULL;
-       _rv = FlattenMovieData(_self->ob_itself,
-                              movieFlattenFlags,
-                              &theFile,
-                              creator,
-                              scriptTag,
-                              createMovieFileFlags);
-       _res = Py_BuildValue("O&",
-                            MovieObj_New, _rv);
-       return _res;
-}
-
-static PyObject *MovieObj_MovieSearchText(_self, _args)
-       MovieObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       Ptr text;
-       long size;
-       long searchFlags;
-       Track searchTrack;
-       TimeValue searchTime;
-       long searchOffset;
-       if (!PyArg_ParseTuple(_args, "sll",
-                             &text,
-                             &size,
-                             &searchFlags))
-               return NULL;
-       _err = MovieSearchText(_self->ob_itself,
-                              text,
-                              size,
-                              searchFlags,
-                              &searchTrack,
-                              &searchTime,
-                              &searchOffset);
-       if (_err != noErr) return PyMac_Error(_err);
-       _res = Py_BuildValue("O&ll",
-                            TrackObj_New, searchTrack,
-                            searchTime,
-                            searchOffset);
-       return _res;
-}
-
-static PyObject *MovieObj_GetPosterBox(_self, _args)
-       MovieObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Rect boxRect;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       GetPosterBox(_self->ob_itself,
-                    &boxRect);
-       _res = Py_BuildValue("O&",
-                            PyMac_BuildRect, &boxRect);
-       return _res;
-}
-
-static PyObject *MovieObj_SetPosterBox(_self, _args)
-       MovieObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Rect boxRect;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             PyMac_GetRect, &boxRect))
-               return NULL;
-       SetPosterBox(_self->ob_itself,
-                    &boxRect);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *MovieObj_GetMovieSegmentDisplayBoundsRgn(_self, _args)
-       MovieObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       RgnHandle _rv;
-       TimeValue time;
-       TimeValue duration;
-       if (!PyArg_ParseTuple(_args, "ll",
-                             &time,
-                             &duration))
-               return NULL;
-       _rv = GetMovieSegmentDisplayBoundsRgn(_self->ob_itself,
-                                             time,
-                                             duration);
-       _res = Py_BuildValue("O&",
-                            ResObj_New, _rv);
-       return _res;
-}
-
-static PyObject *MovieObj_GetMovieStatus(_self, _args)
-       MovieObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       ComponentResult _rv;
-       Track firstProblemTrack;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _rv = GetMovieStatus(_self->ob_itself,
-                            &firstProblemTrack);
-       _res = Py_BuildValue("lO&",
-                            _rv,
-                            TrackObj_New, firstProblemTrack);
-       return _res;
-}
-
-#if !TARGET_API_MAC_CARBON
-
-static PyObject *MovieObj_GetMovieLoadState(_self, _args)
-       MovieObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       long _rv;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _rv = GetMovieLoadState(_self->ob_itself);
-       _res = Py_BuildValue("l",
-                            _rv);
-       return _res;
-}
-#endif
-
-static PyObject *MovieObj_NewMovieController(_self, _args)
-       MovieObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       MovieController _rv;
-       Rect movieRect;
-       long someFlags;
-       if (!PyArg_ParseTuple(_args, "O&l",
-                             PyMac_GetRect, &movieRect,
-                             &someFlags))
-               return NULL;
-       _rv = NewMovieController(_self->ob_itself,
-                                &movieRect,
-                                someFlags);
-       _res = Py_BuildValue("O&",
-                            MovieCtlObj_New, _rv);
-       return _res;
-}
-
-static PyObject *MovieObj_PutMovieOnScrap(_self, _args)
-       MovieObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       long movieScrapFlags;
-       if (!PyArg_ParseTuple(_args, "l",
-                             &movieScrapFlags))
-               return NULL;
-       _err = PutMovieOnScrap(_self->ob_itself,
-                              movieScrapFlags);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *MovieObj_SetMoviePlayHints(_self, _args)
-       MovieObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       long flags;
-       long flagsMask;
-       if (!PyArg_ParseTuple(_args, "ll",
-                             &flags,
-                             &flagsMask))
-               return NULL;
-       SetMoviePlayHints(_self->ob_itself,
-                         flags,
-                         flagsMask);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *MovieObj_GetMaxLoadedTimeInMovie(_self, _args)
-       MovieObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       TimeValue time;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _err = GetMaxLoadedTimeInMovie(_self->ob_itself,
-                                      &time);
-       if (_err != noErr) return PyMac_Error(_err);
-       _res = Py_BuildValue("l",
-                            time);
-       return _res;
-}
-
-static PyObject *MovieObj_QTMovieNeedsTimeTable(_self, _args)
-       MovieObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       Boolean needsTimeTable;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _err = QTMovieNeedsTimeTable(_self->ob_itself,
-                                    &needsTimeTable);
-       if (_err != noErr) return PyMac_Error(_err);
-       _res = Py_BuildValue("b",
-                            needsTimeTable);
-       return _res;
-}
-
-static PyObject *MovieObj_QTGetDataRefMaxFileOffset(_self, _args)
-       MovieObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       OSType dataRefType;
-       Handle dataRef;
-       long offset;
-       if (!PyArg_ParseTuple(_args, "O&O&",
-                             PyMac_GetOSType, &dataRefType,
-                             ResObj_Convert, &dataRef))
-               return NULL;
-       _err = QTGetDataRefMaxFileOffset(_self->ob_itself,
-                                        dataRefType,
-                                        dataRef,
-                                        &offset);
-       if (_err != noErr) return PyMac_Error(_err);
-       _res = Py_BuildValue("l",
-                            offset);
-       return _res;
-}
-
-static PyMethodDef MovieObj_methods[] = {
-       {"MoviesTask", (PyCFunction)MovieObj_MoviesTask, 1,
-        "(long maxMilliSecToUse) -> None"},
-       {"PrerollMovie", (PyCFunction)MovieObj_PrerollMovie, 1,
-        "(TimeValue time, Fixed Rate) -> None"},
-       {"AbortPrePrerollMovie", (PyCFunction)MovieObj_AbortPrePrerollMovie, 1,
-        "(OSErr err) -> None"},
-       {"LoadMovieIntoRam", (PyCFunction)MovieObj_LoadMovieIntoRam, 1,
-        "(TimeValue time, TimeValue duration, long flags) -> None"},
-       {"SetMovieActive", (PyCFunction)MovieObj_SetMovieActive, 1,
-        "(Boolean active) -> None"},
-       {"GetMovieActive", (PyCFunction)MovieObj_GetMovieActive, 1,
-        "() -> (Boolean _rv)"},
-       {"StartMovie", (PyCFunction)MovieObj_StartMovie, 1,
-        "() -> None"},
-       {"StopMovie", (PyCFunction)MovieObj_StopMovie, 1,
-        "() -> None"},
-       {"GoToBeginningOfMovie", (PyCFunction)MovieObj_GoToBeginningOfMovie, 1,
-        "() -> None"},
-       {"GoToEndOfMovie", (PyCFunction)MovieObj_GoToEndOfMovie, 1,
-        "() -> None"},
-       {"IsMovieDone", (PyCFunction)MovieObj_IsMovieDone, 1,
-        "() -> (Boolean _rv)"},
-       {"GetMoviePreviewMode", (PyCFunction)MovieObj_GetMoviePreviewMode, 1,
-        "() -> (Boolean _rv)"},
-       {"SetMoviePreviewMode", (PyCFunction)MovieObj_SetMoviePreviewMode, 1,
-        "(Boolean usePreview) -> None"},
-       {"ShowMoviePoster", (PyCFunction)MovieObj_ShowMoviePoster, 1,
-        "() -> None"},
-       {"GetMovieTimeBase", (PyCFunction)MovieObj_GetMovieTimeBase, 1,
-        "() -> (TimeBase _rv)"},
-       {"SetMovieMasterTimeBase", (PyCFunction)MovieObj_SetMovieMasterTimeBase, 1,
-        "(TimeBase tb, TimeRecord slaveZero) -> None"},
-       {"SetMovieMasterClock", (PyCFunction)MovieObj_SetMovieMasterClock, 1,
-        "(Component clockMeister, TimeRecord slaveZero) -> None"},
-       {"GetMovieGWorld", (PyCFunction)MovieObj_GetMovieGWorld, 1,
-        "() -> (CGrafPtr port, GDHandle gdh)"},
-       {"SetMovieGWorld", (PyCFunction)MovieObj_SetMovieGWorld, 1,
-        "(CGrafPtr port, GDHandle gdh) -> None"},
-       {"GetMovieNaturalBoundsRect", (PyCFunction)MovieObj_GetMovieNaturalBoundsRect, 1,
-        "() -> (Rect naturalBounds)"},
-       {"GetNextTrackForCompositing", (PyCFunction)MovieObj_GetNextTrackForCompositing, 1,
-        "(Track theTrack) -> (Track _rv)"},
-       {"GetPrevTrackForCompositing", (PyCFunction)MovieObj_GetPrevTrackForCompositing, 1,
-        "(Track theTrack) -> (Track _rv)"},
-       {"GetMoviePict", (PyCFunction)MovieObj_GetMoviePict, 1,
-        "(TimeValue time) -> (PicHandle _rv)"},
-       {"GetMoviePosterPict", (PyCFunction)MovieObj_GetMoviePosterPict, 1,
-        "() -> (PicHandle _rv)"},
-       {"UpdateMovie", (PyCFunction)MovieObj_UpdateMovie, 1,
-        "() -> None"},
-       {"InvalidateMovieRegion", (PyCFunction)MovieObj_InvalidateMovieRegion, 1,
-        "(RgnHandle invalidRgn) -> None"},
-       {"GetMovieBox", (PyCFunction)MovieObj_GetMovieBox, 1,
-        "() -> (Rect boxRect)"},
-       {"SetMovieBox", (PyCFunction)MovieObj_SetMovieBox, 1,
-        "(Rect boxRect) -> None"},
-       {"GetMovieDisplayClipRgn", (PyCFunction)MovieObj_GetMovieDisplayClipRgn, 1,
-        "() -> (RgnHandle _rv)"},
-       {"SetMovieDisplayClipRgn", (PyCFunction)MovieObj_SetMovieDisplayClipRgn, 1,
-        "(RgnHandle theClip) -> None"},
-       {"GetMovieClipRgn", (PyCFunction)MovieObj_GetMovieClipRgn, 1,
-        "() -> (RgnHandle _rv)"},
-       {"SetMovieClipRgn", (PyCFunction)MovieObj_SetMovieClipRgn, 1,
-        "(RgnHandle theClip) -> None"},
-       {"GetMovieDisplayBoundsRgn", (PyCFunction)MovieObj_GetMovieDisplayBoundsRgn, 1,
-        "() -> (RgnHandle _rv)"},
-       {"GetMovieBoundsRgn", (PyCFunction)MovieObj_GetMovieBoundsRgn, 1,
-        "() -> (RgnHandle _rv)"},
-       {"PutMovieIntoHandle", (PyCFunction)MovieObj_PutMovieIntoHandle, 1,
-        "(Handle publicMovie) -> None"},
-       {"PutMovieIntoDataFork", (PyCFunction)MovieObj_PutMovieIntoDataFork, 1,
-        "(short fRefNum, long offset, long maxSize) -> None"},
-       {"PutMovieIntoDataFork64", (PyCFunction)MovieObj_PutMovieIntoDataFork64, 1,
-        "(long fRefNum, wide offset, unsigned long maxSize) -> None"},
-       {"GetMovieCreationTime", (PyCFunction)MovieObj_GetMovieCreationTime, 1,
-        "() -> (unsigned long _rv)"},
-       {"GetMovieModificationTime", (PyCFunction)MovieObj_GetMovieModificationTime, 1,
-        "() -> (unsigned long _rv)"},
-       {"GetMovieTimeScale", (PyCFunction)MovieObj_GetMovieTimeScale, 1,
-        "() -> (TimeScale _rv)"},
-       {"SetMovieTimeScale", (PyCFunction)MovieObj_SetMovieTimeScale, 1,
-        "(TimeScale timeScale) -> None"},
-       {"GetMovieDuration", (PyCFunction)MovieObj_GetMovieDuration, 1,
-        "() -> (TimeValue _rv)"},
-       {"GetMovieRate", (PyCFunction)MovieObj_GetMovieRate, 1,
-        "() -> (Fixed _rv)"},
-       {"SetMovieRate", (PyCFunction)MovieObj_SetMovieRate, 1,
-        "(Fixed rate) -> None"},
-       {"GetMoviePreferredRate", (PyCFunction)MovieObj_GetMoviePreferredRate, 1,
-        "() -> (Fixed _rv)"},
-       {"SetMoviePreferredRate", (PyCFunction)MovieObj_SetMoviePreferredRate, 1,
-        "(Fixed rate) -> None"},
-       {"GetMoviePreferredVolume", (PyCFunction)MovieObj_GetMoviePreferredVolume, 1,
-        "() -> (short _rv)"},
-       {"SetMoviePreferredVolume", (PyCFunction)MovieObj_SetMoviePreferredVolume, 1,
-        "(short volume) -> None"},
-       {"GetMovieVolume", (PyCFunction)MovieObj_GetMovieVolume, 1,
-        "() -> (short _rv)"},
-       {"SetMovieVolume", (PyCFunction)MovieObj_SetMovieVolume, 1,
-        "(short volume) -> None"},
-       {"GetMoviePreviewTime", (PyCFunction)MovieObj_GetMoviePreviewTime, 1,
-        "() -> (TimeValue previewTime, TimeValue previewDuration)"},
-       {"SetMoviePreviewTime", (PyCFunction)MovieObj_SetMoviePreviewTime, 1,
-        "(TimeValue previewTime, TimeValue previewDuration) -> None"},
-       {"GetMoviePosterTime", (PyCFunction)MovieObj_GetMoviePosterTime, 1,
-        "() -> (TimeValue _rv)"},
-       {"SetMoviePosterTime", (PyCFunction)MovieObj_SetMoviePosterTime, 1,
-        "(TimeValue posterTime) -> None"},
-       {"GetMovieSelection", (PyCFunction)MovieObj_GetMovieSelection, 1,
-        "() -> (TimeValue selectionTime, TimeValue selectionDuration)"},
-       {"SetMovieSelection", (PyCFunction)MovieObj_SetMovieSelection, 1,
-        "(TimeValue selectionTime, TimeValue selectionDuration) -> None"},
-       {"SetMovieActiveSegment", (PyCFunction)MovieObj_SetMovieActiveSegment, 1,
-        "(TimeValue startTime, TimeValue duration) -> None"},
-       {"GetMovieActiveSegment", (PyCFunction)MovieObj_GetMovieActiveSegment, 1,
-        "() -> (TimeValue startTime, TimeValue duration)"},
-       {"GetMovieTime", (PyCFunction)MovieObj_GetMovieTime, 1,
-        "() -> (TimeValue _rv, TimeRecord currentTime)"},
-       {"SetMovieTime", (PyCFunction)MovieObj_SetMovieTime, 1,
-        "(TimeRecord newtime) -> None"},
-       {"SetMovieTimeValue", (PyCFunction)MovieObj_SetMovieTimeValue, 1,
-        "(TimeValue newtime) -> None"},
-       {"GetMovieUserData", (PyCFunction)MovieObj_GetMovieUserData, 1,
-        "() -> (UserData _rv)"},
-       {"GetMovieTrackCount", (PyCFunction)MovieObj_GetMovieTrackCount, 1,
-        "() -> (long _rv)"},
-       {"GetMovieTrack", (PyCFunction)MovieObj_GetMovieTrack, 1,
-        "(long trackID) -> (Track _rv)"},
-       {"GetMovieIndTrack", (PyCFunction)MovieObj_GetMovieIndTrack, 1,
-        "(long index) -> (Track _rv)"},
-       {"GetMovieIndTrackType", (PyCFunction)MovieObj_GetMovieIndTrackType, 1,
-        "(long index, OSType trackType, long flags) -> (Track _rv)"},
-       {"NewMovieTrack", (PyCFunction)MovieObj_NewMovieTrack, 1,
-        "(Fixed width, Fixed height, short trackVolume) -> (Track _rv)"},
-       {"SetAutoTrackAlternatesEnabled", (PyCFunction)MovieObj_SetAutoTrackAlternatesEnabled, 1,
-        "(Boolean enable) -> None"},
-       {"SelectMovieAlternates", (PyCFunction)MovieObj_SelectMovieAlternates, 1,
-        "() -> None"},
-       {"InsertMovieSegment", (PyCFunction)MovieObj_InsertMovieSegment, 1,
-        "(Movie dstMovie, TimeValue srcIn, TimeValue srcDuration, TimeValue dstIn) -> None"},
-       {"InsertEmptyMovieSegment", (PyCFunction)MovieObj_InsertEmptyMovieSegment, 1,
-        "(TimeValue dstIn, TimeValue dstDuration) -> None"},
-       {"DeleteMovieSegment", (PyCFunction)MovieObj_DeleteMovieSegment, 1,
-        "(TimeValue startTime, TimeValue duration) -> None"},
-       {"ScaleMovieSegment", (PyCFunction)MovieObj_ScaleMovieSegment, 1,
-        "(TimeValue startTime, TimeValue oldDuration, TimeValue newDuration) -> None"},
-       {"CutMovieSelection", (PyCFunction)MovieObj_CutMovieSelection, 1,
-        "() -> (Movie _rv)"},
-       {"CopyMovieSelection", (PyCFunction)MovieObj_CopyMovieSelection, 1,
-        "() -> (Movie _rv)"},
-       {"PasteMovieSelection", (PyCFunction)MovieObj_PasteMovieSelection, 1,
-        "(Movie src) -> None"},
-       {"AddMovieSelection", (PyCFunction)MovieObj_AddMovieSelection, 1,
-        "(Movie src) -> None"},
-       {"ClearMovieSelection", (PyCFunction)MovieObj_ClearMovieSelection, 1,
-        "() -> None"},
-       {"PutMovieIntoTypedHandle", (PyCFunction)MovieObj_PutMovieIntoTypedHandle, 1,
-        "(Track targetTrack, OSType handleType, Handle publicMovie, TimeValue start, TimeValue dur, long flags, ComponentInstance userComp) -> None"},
-       {"CopyMovieSettings", (PyCFunction)MovieObj_CopyMovieSettings, 1,
-        "(Movie dstMovie) -> None"},
-       {"ConvertMovieToFile", (PyCFunction)MovieObj_ConvertMovieToFile, 1,
-        "(Track onlyTrack, FSSpec outputFile, OSType fileType, OSType creator, ScriptCode scriptTag, long flags, ComponentInstance userComp) -> (short resID)"},
-       {"GetMovieDataSize", (PyCFunction)MovieObj_GetMovieDataSize, 1,
-        "(TimeValue startTime, TimeValue duration) -> (long _rv)"},
-       {"GetMovieDataSize64", (PyCFunction)MovieObj_GetMovieDataSize64, 1,
-        "(TimeValue startTime, TimeValue duration) -> (wide dataSize)"},
-       {"PtInMovie", (PyCFunction)MovieObj_PtInMovie, 1,
-        "(Point pt) -> (Boolean _rv)"},
-       {"SetMovieLanguage", (PyCFunction)MovieObj_SetMovieLanguage, 1,
-        "(long language) -> None"},
-       {"GetMovieNextInterestingTime", (PyCFunction)MovieObj_GetMovieNextInterestingTime, 1,
-        "(short interestingTimeFlags, short numMediaTypes, OSType whichMediaTypes, TimeValue time, Fixed rate) -> (TimeValue interestingTime, TimeValue interestingDuration)"},
-       {"AddMovieResource", (PyCFunction)MovieObj_AddMovieResource, 1,
-        "(short resRefNum, Str255 resName) -> (short resId)"},
-       {"UpdateMovieResource", (PyCFunction)MovieObj_UpdateMovieResource, 1,
-        "(short resRefNum, short resId, Str255 resName) -> None"},
-       {"HasMovieChanged", (PyCFunction)MovieObj_HasMovieChanged, 1,
-        "() -> (Boolean _rv)"},
-       {"ClearMovieChanged", (PyCFunction)MovieObj_ClearMovieChanged, 1,
-        "() -> None"},
-       {"SetMovieDefaultDataRef", (PyCFunction)MovieObj_SetMovieDefaultDataRef, 1,
-        "(Handle dataRef, OSType dataRefType) -> None"},
-       {"GetMovieDefaultDataRef", (PyCFunction)MovieObj_GetMovieDefaultDataRef, 1,
-        "() -> (Handle dataRef, OSType dataRefType)"},
-
-#if !TARGET_API_MAC_CARBON
-       {"SetMovieAnchorDataRef", (PyCFunction)MovieObj_SetMovieAnchorDataRef, 1,
-        "(Handle dataRef, OSType dataRefType) -> None"},
-#endif
-
-#if !TARGET_API_MAC_CARBON
-       {"GetMovieAnchorDataRef", (PyCFunction)MovieObj_GetMovieAnchorDataRef, 1,
-        "() -> (Handle dataRef, OSType dataRefType, long outFlags)"},
-#endif
-       {"SetMovieColorTable", (PyCFunction)MovieObj_SetMovieColorTable, 1,
-        "(CTabHandle ctab) -> None"},
-       {"GetMovieColorTable", (PyCFunction)MovieObj_GetMovieColorTable, 1,
-        "() -> (CTabHandle ctab)"},
-       {"FlattenMovie", (PyCFunction)MovieObj_FlattenMovie, 1,
-        "(long movieFlattenFlags, FSSpec theFile, OSType creator, ScriptCode scriptTag, long createMovieFileFlags, Str255 resName) -> (short resId)"},
-       {"FlattenMovieData", (PyCFunction)MovieObj_FlattenMovieData, 1,
-        "(long movieFlattenFlags, FSSpec theFile, OSType creator, ScriptCode scriptTag, long createMovieFileFlags) -> (Movie _rv)"},
-       {"MovieSearchText", (PyCFunction)MovieObj_MovieSearchText, 1,
-        "(Ptr text, long size, long searchFlags) -> (Track searchTrack, TimeValue searchTime, long searchOffset)"},
-       {"GetPosterBox", (PyCFunction)MovieObj_GetPosterBox, 1,
-        "() -> (Rect boxRect)"},
-       {"SetPosterBox", (PyCFunction)MovieObj_SetPosterBox, 1,
-        "(Rect boxRect) -> None"},
-       {"GetMovieSegmentDisplayBoundsRgn", (PyCFunction)MovieObj_GetMovieSegmentDisplayBoundsRgn, 1,
-        "(TimeValue time, TimeValue duration) -> (RgnHandle _rv)"},
-       {"GetMovieStatus", (PyCFunction)MovieObj_GetMovieStatus, 1,
-        "() -> (ComponentResult _rv, Track firstProblemTrack)"},
-
-#if !TARGET_API_MAC_CARBON
-       {"GetMovieLoadState", (PyCFunction)MovieObj_GetMovieLoadState, 1,
-        "() -> (long _rv)"},
-#endif
-       {"NewMovieController", (PyCFunction)MovieObj_NewMovieController, 1,
-        "(Rect movieRect, long someFlags) -> (MovieController _rv)"},
-       {"PutMovieOnScrap", (PyCFunction)MovieObj_PutMovieOnScrap, 1,
-        "(long movieScrapFlags) -> None"},
-       {"SetMoviePlayHints", (PyCFunction)MovieObj_SetMoviePlayHints, 1,
-        "(long flags, long flagsMask) -> None"},
-       {"GetMaxLoadedTimeInMovie", (PyCFunction)MovieObj_GetMaxLoadedTimeInMovie, 1,
-        "() -> (TimeValue time)"},
-       {"QTMovieNeedsTimeTable", (PyCFunction)MovieObj_QTMovieNeedsTimeTable, 1,
-        "() -> (Boolean needsTimeTable)"},
-       {"QTGetDataRefMaxFileOffset", (PyCFunction)MovieObj_QTGetDataRefMaxFileOffset, 1,
-        "(OSType dataRefType, Handle dataRef) -> (long offset)"},
-       {NULL, NULL, 0}
-};
-
-PyMethodChain MovieObj_chain = { MovieObj_methods, NULL };
-
-static PyObject *MovieObj_getattr(self, name)
-       MovieObject *self;
-       char *name;
-{
-       return Py_FindMethodInChain(&MovieObj_chain, (PyObject *)self, name);
-}
-
-#define MovieObj_setattr NULL
-
-#define MovieObj_compare NULL
-
-#define MovieObj_repr NULL
-
-#define MovieObj_hash NULL
-
-PyTypeObject Movie_Type = {
-       PyObject_HEAD_INIT(&PyType_Type)
-       0, /*ob_size*/
-       "Movie", /*tp_name*/
-       sizeof(MovieObject), /*tp_basicsize*/
-       0, /*tp_itemsize*/
-       /* methods */
-       (destructor) MovieObj_dealloc, /*tp_dealloc*/
-       0, /*tp_print*/
-       (getattrfunc) MovieObj_getattr, /*tp_getattr*/
-       (setattrfunc) MovieObj_setattr, /*tp_setattr*/
-       (cmpfunc) MovieObj_compare, /*tp_compare*/
-       (reprfunc) MovieObj_repr, /*tp_repr*/
-       (PyNumberMethods *)0, /* tp_as_number */
-       (PySequenceMethods *)0, /* tp_as_sequence */
-       (PyMappingMethods *)0, /* tp_as_mapping */
-       (hashfunc) MovieObj_hash, /*tp_hash*/
-};
-
-/* --------------------- End object type Movie ---------------------- */
-
-
-#if !TARGET_API_MAC_CARBON
-
-static PyObject *Qt_CheckQuickTimeRegistration(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       void * registrationKey;
-       long flags;
-       if (!PyArg_ParseTuple(_args, "sl",
-                             &registrationKey,
-                             &flags))
-               return NULL;
-       CheckQuickTimeRegistration(registrationKey,
-                                  flags);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-#endif
-
-static PyObject *Qt_EnterMovies(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _err = EnterMovies();
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *Qt_ExitMovies(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       ExitMovies();
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *Qt_GetMoviesError(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _err = GetMoviesError();
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *Qt_ClearMoviesStickyError(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       ClearMoviesStickyError();
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *Qt_GetMoviesStickyError(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _err = GetMoviesStickyError();
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *Qt_DisposeMatte(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       PixMapHandle theMatte;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             ResObj_Convert, &theMatte))
-               return NULL;
-       DisposeMatte(theMatte);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *Qt_NewMovie(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Movie _rv;
-       long flags;
-       if (!PyArg_ParseTuple(_args, "l",
-                             &flags))
-               return NULL;
-       _rv = NewMovie(flags);
-       _res = Py_BuildValue("O&",
-                            MovieObj_New, _rv);
-       return _res;
-}
-
-static PyObject *Qt_GetDataHandler(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Component _rv;
-       Handle dataRef;
-       OSType dataHandlerSubType;
-       long flags;
-       if (!PyArg_ParseTuple(_args, "O&O&l",
-                             ResObj_Convert, &dataRef,
-                             PyMac_GetOSType, &dataHandlerSubType,
-                             &flags))
-               return NULL;
-       _rv = GetDataHandler(dataRef,
-                            dataHandlerSubType,
-                            flags);
-       _res = Py_BuildValue("O&",
-                            CmpObj_New, _rv);
-       return _res;
-}
-
-#if !TARGET_API_MAC_CARBON
-
-static PyObject *Qt_OpenADataHandler(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       Handle dataRef;
-       OSType dataHandlerSubType;
-       Handle anchorDataRef;
-       OSType anchorDataRefType;
-       TimeBase tb;
-       long flags;
-       ComponentInstance dh;
-       if (!PyArg_ParseTuple(_args, "O&O&O&O&O&l",
-                             ResObj_Convert, &dataRef,
-                             PyMac_GetOSType, &dataHandlerSubType,
-                             ResObj_Convert, &anchorDataRef,
-                             PyMac_GetOSType, &anchorDataRefType,
-                             TimeBaseObj_Convert, &tb,
-                             &flags))
-               return NULL;
-       _err = OpenADataHandler(dataRef,
-                               dataHandlerSubType,
-                               anchorDataRef,
-                               anchorDataRefType,
-                               tb,
-                               flags,
-                               &dh);
-       if (_err != noErr) return PyMac_Error(_err);
-       _res = Py_BuildValue("O&",
-                            CmpInstObj_New, dh);
-       return _res;
-}
-#endif
-
-static PyObject *Qt_PasteHandleIntoMovie(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       Handle h;
-       OSType handleType;
-       Movie theMovie;
-       long flags;
-       ComponentInstance userComp;
-       if (!PyArg_ParseTuple(_args, "O&O&O&lO&",
-                             ResObj_Convert, &h,
-                             PyMac_GetOSType, &handleType,
-                             MovieObj_Convert, &theMovie,
-                             &flags,
-                             CmpInstObj_Convert, &userComp))
-               return NULL;
-       _err = PasteHandleIntoMovie(h,
-                                   handleType,
-                                   theMovie,
-                                   flags,
-                                   userComp);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *Qt_GetMovieImporterForDataRef(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       OSType dataRefType;
-       Handle dataRef;
-       long flags;
-       Component importer;
-       if (!PyArg_ParseTuple(_args, "O&O&l",
-                             PyMac_GetOSType, &dataRefType,
-                             ResObj_Convert, &dataRef,
-                             &flags))
-               return NULL;
-       _err = GetMovieImporterForDataRef(dataRefType,
-                                         dataRef,
-                                         flags,
-                                         &importer);
-       if (_err != noErr) return PyMac_Error(_err);
-       _res = Py_BuildValue("O&",
-                            CmpObj_New, importer);
-       return _res;
-}
-
-static PyObject *Qt_TrackTimeToMediaTime(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       TimeValue _rv;
-       TimeValue value;
-       Track theTrack;
-       if (!PyArg_ParseTuple(_args, "lO&",
-                             &value,
-                             TrackObj_Convert, &theTrack))
-               return NULL;
-       _rv = TrackTimeToMediaTime(value,
-                                  theTrack);
-       _res = Py_BuildValue("l",
-                            _rv);
-       return _res;
-}
-
-static PyObject *Qt_NewUserData(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       UserData theUserData;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _err = NewUserData(&theUserData);
-       if (_err != noErr) return PyMac_Error(_err);
-       _res = Py_BuildValue("O&",
-                            UserDataObj_New, theUserData);
-       return _res;
-}
-
-static PyObject *Qt_NewUserDataFromHandle(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       Handle h;
-       UserData theUserData;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             ResObj_Convert, &h))
-               return NULL;
-       _err = NewUserDataFromHandle(h,
-                                    &theUserData);
-       if (_err != noErr) return PyMac_Error(_err);
-       _res = Py_BuildValue("O&",
-                            UserDataObj_New, theUserData);
-       return _res;
-}
-
-static PyObject *Qt_CreateMovieFile(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       FSSpec fileSpec;
-       OSType creator;
-       ScriptCode scriptTag;
-       long createMovieFileFlags;
-       short resRefNum;
-       Movie newmovie;
-       if (!PyArg_ParseTuple(_args, "O&O&hl",
-                             PyMac_GetFSSpec, &fileSpec,
-                             PyMac_GetOSType, &creator,
-                             &scriptTag,
-                             &createMovieFileFlags))
-               return NULL;
-       _err = CreateMovieFile(&fileSpec,
-                              creator,
-                              scriptTag,
-                              createMovieFileFlags,
-                              &resRefNum,
-                              &newmovie);
-       if (_err != noErr) return PyMac_Error(_err);
-       _res = Py_BuildValue("hO&",
-                            resRefNum,
-                            MovieObj_New, newmovie);
-       return _res;
-}
-
-static PyObject *Qt_OpenMovieFile(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       FSSpec fileSpec;
-       short resRefNum;
-       SInt8 permission;
-       if (!PyArg_ParseTuple(_args, "O&b",
-                             PyMac_GetFSSpec, &fileSpec,
-                             &permission))
-               return NULL;
-       _err = OpenMovieFile(&fileSpec,
-                            &resRefNum,
-                            permission);
-       if (_err != noErr) return PyMac_Error(_err);
-       _res = Py_BuildValue("h",
-                            resRefNum);
-       return _res;
-}
-
-static PyObject *Qt_CloseMovieFile(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       short resRefNum;
-       if (!PyArg_ParseTuple(_args, "h",
-                             &resRefNum))
-               return NULL;
-       _err = CloseMovieFile(resRefNum);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *Qt_DeleteMovieFile(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       FSSpec fileSpec;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             PyMac_GetFSSpec, &fileSpec))
-               return NULL;
-       _err = DeleteMovieFile(&fileSpec);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *Qt_NewMovieFromFile(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       Movie theMovie;
-       short resRefNum;
-       short resId;
-       short newMovieFlags;
-       Boolean dataRefWasChanged;
-       if (!PyArg_ParseTuple(_args, "hhh",
-                             &resRefNum,
-                             &resId,
-                             &newMovieFlags))
-               return NULL;
-       _err = NewMovieFromFile(&theMovie,
-                               resRefNum,
-                               &resId,
-                               (StringPtr)0,
-                               newMovieFlags,
-                               &dataRefWasChanged);
-       if (_err != noErr) return PyMac_Error(_err);
-       _res = Py_BuildValue("O&hb",
-                            MovieObj_New, theMovie,
-                            resId,
-                            dataRefWasChanged);
-       return _res;
-}
-
-static PyObject *Qt_NewMovieFromHandle(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       Movie theMovie;
-       Handle h;
-       short newMovieFlags;
-       Boolean dataRefWasChanged;
-       if (!PyArg_ParseTuple(_args, "O&h",
-                             ResObj_Convert, &h,
-                             &newMovieFlags))
-               return NULL;
-       _err = NewMovieFromHandle(&theMovie,
-                                 h,
-                                 newMovieFlags,
-                                 &dataRefWasChanged);
-       if (_err != noErr) return PyMac_Error(_err);
-       _res = Py_BuildValue("O&b",
-                            MovieObj_New, theMovie,
-                            dataRefWasChanged);
-       return _res;
-}
-
-static PyObject *Qt_NewMovieFromDataFork(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       Movie theMovie;
-       short fRefNum;
-       long fileOffset;
-       short newMovieFlags;
-       Boolean dataRefWasChanged;
-       if (!PyArg_ParseTuple(_args, "hlh",
-                             &fRefNum,
-                             &fileOffset,
-                             &newMovieFlags))
-               return NULL;
-       _err = NewMovieFromDataFork(&theMovie,
-                                   fRefNum,
-                                   fileOffset,
-                                   newMovieFlags,
-                                   &dataRefWasChanged);
-       if (_err != noErr) return PyMac_Error(_err);
-       _res = Py_BuildValue("O&b",
-                            MovieObj_New, theMovie,
-                            dataRefWasChanged);
-       return _res;
-}
-
-static PyObject *Qt_NewMovieFromDataFork64(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       Movie theMovie;
-       long fRefNum;
-       wide fileOffset;
-       short newMovieFlags;
-       Boolean dataRefWasChanged;
-       if (!PyArg_ParseTuple(_args, "lO&h",
-                             &fRefNum,
-                             PyMac_Getwide, &fileOffset,
-                             &newMovieFlags))
-               return NULL;
-       _err = NewMovieFromDataFork64(&theMovie,
-                                     fRefNum,
-                                     &fileOffset,
-                                     newMovieFlags,
-                                     &dataRefWasChanged);
-       if (_err != noErr) return PyMac_Error(_err);
-       _res = Py_BuildValue("O&b",
-                            MovieObj_New, theMovie,
-                            dataRefWasChanged);
-       return _res;
-}
-
-static PyObject *Qt_NewMovieFromDataRef(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       Movie m;
-       short flags;
-       short id;
-       Handle dataRef;
-       OSType dataRefType;
-       if (!PyArg_ParseTuple(_args, "hO&O&",
-                             &flags,
-                             ResObj_Convert, &dataRef,
-                             PyMac_GetOSType, &dataRefType))
-               return NULL;
-       _err = NewMovieFromDataRef(&m,
-                                  flags,
-                                  &id,
-                                  dataRef,
-                                  dataRefType);
-       if (_err != noErr) return PyMac_Error(_err);
-       _res = Py_BuildValue("O&h",
-                            MovieObj_New, m,
-                            id);
-       return _res;
-}
-
-static PyObject *Qt_RemoveMovieResource(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       short resRefNum;
-       short resId;
-       if (!PyArg_ParseTuple(_args, "hh",
-                             &resRefNum,
-                             &resId))
-               return NULL;
-       _err = RemoveMovieResource(resRefNum,
-                                  resId);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *Qt_CreateShortcutMovieFile(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       FSSpec fileSpec;
-       OSType creator;
-       ScriptCode scriptTag;
-       long createMovieFileFlags;
-       Handle targetDataRef;
-       OSType targetDataRefType;
-       if (!PyArg_ParseTuple(_args, "O&O&hlO&O&",
-                             PyMac_GetFSSpec, &fileSpec,
-                             PyMac_GetOSType, &creator,
-                             &scriptTag,
-                             &createMovieFileFlags,
-                             ResObj_Convert, &targetDataRef,
-                             PyMac_GetOSType, &targetDataRefType))
-               return NULL;
-       _err = CreateShortcutMovieFile(&fileSpec,
-                                      creator,
-                                      scriptTag,
-                                      createMovieFileFlags,
-                                      targetDataRef,
-                                      targetDataRefType);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *Qt_NewMovieFromScrap(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Movie _rv;
-       long newMovieFlags;
-       if (!PyArg_ParseTuple(_args, "l",
-                             &newMovieFlags))
-               return NULL;
-       _rv = NewMovieFromScrap(newMovieFlags);
-       _res = Py_BuildValue("O&",
-                            MovieObj_New, _rv);
-       return _res;
-}
-
-static PyObject *Qt_QTNewAlias(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       FSSpec fss;
-       AliasHandle alias;
-       Boolean minimal;
-       if (!PyArg_ParseTuple(_args, "O&b",
-                             PyMac_GetFSSpec, &fss,
-                             &minimal))
-               return NULL;
-       _err = QTNewAlias(&fss,
-                         &alias,
-                         minimal);
-       if (_err != noErr) return PyMac_Error(_err);
-       _res = Py_BuildValue("O&",
-                            ResObj_New, alias);
-       return _res;
-}
-
-static PyObject *Qt_EndFullScreen(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       Ptr fullState;
-       long flags;
-       if (!PyArg_ParseTuple(_args, "sl",
-                             &fullState,
-                             &flags))
-               return NULL;
-       _err = EndFullScreen(fullState,
-                            flags);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *Qt_AddSoundDescriptionExtension(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       SoundDescriptionHandle desc;
-       Handle extension;
-       OSType idType;
-       if (!PyArg_ParseTuple(_args, "O&O&O&",
-                             ResObj_Convert, &desc,
-                             ResObj_Convert, &extension,
-                             PyMac_GetOSType, &idType))
-               return NULL;
-       _err = AddSoundDescriptionExtension(desc,
-                                           extension,
-                                           idType);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *Qt_GetSoundDescriptionExtension(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       SoundDescriptionHandle desc;
-       Handle extension;
-       OSType idType;
-       if (!PyArg_ParseTuple(_args, "O&O&",
-                             ResObj_Convert, &desc,
-                             PyMac_GetOSType, &idType))
-               return NULL;
-       _err = GetSoundDescriptionExtension(desc,
-                                           &extension,
-                                           idType);
-       if (_err != noErr) return PyMac_Error(_err);
-       _res = Py_BuildValue("O&",
-                            ResObj_New, extension);
-       return _res;
-}
-
-static PyObject *Qt_RemoveSoundDescriptionExtension(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       SoundDescriptionHandle desc;
-       OSType idType;
-       if (!PyArg_ParseTuple(_args, "O&O&",
-                             ResObj_Convert, &desc,
-                             PyMac_GetOSType, &idType))
-               return NULL;
-       _err = RemoveSoundDescriptionExtension(desc,
-                                              idType);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *Qt_QTIsStandardParameterDialogEvent(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       EventRecord pEvent;
-       QTParameterDialog createdDialog;
-       if (!PyArg_ParseTuple(_args, "l",
-                             &createdDialog))
-               return NULL;
-       _err = QTIsStandardParameterDialogEvent(&pEvent,
-                                               createdDialog);
-       if (_err != noErr) return PyMac_Error(_err);
-       _res = Py_BuildValue("O&",
-                            PyMac_BuildEventRecord, &pEvent);
-       return _res;
-}
-
-static PyObject *Qt_QTDismissStandardParameterDialog(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       QTParameterDialog createdDialog;
-       if (!PyArg_ParseTuple(_args, "l",
-                             &createdDialog))
-               return NULL;
-       _err = QTDismissStandardParameterDialog(createdDialog);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *Qt_QTStandardParameterDialogDoAction(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       QTParameterDialog createdDialog;
-       long action;
-       void * params;
-       if (!PyArg_ParseTuple(_args, "lls",
-                             &createdDialog,
-                             &action,
-                             &params))
-               return NULL;
-       _err = QTStandardParameterDialogDoAction(createdDialog,
-                                                action,
-                                                params);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *Qt_QTRegisterAccessKey(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       Str255 accessKeyType;
-       long flags;
-       Handle accessKey;
-       if (!PyArg_ParseTuple(_args, "O&lO&",
-                             PyMac_GetStr255, accessKeyType,
-                             &flags,
-                             ResObj_Convert, &accessKey))
-               return NULL;
-       _err = QTRegisterAccessKey(accessKeyType,
-                                  flags,
-                                  accessKey);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *Qt_QTUnregisterAccessKey(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       Str255 accessKeyType;
-       long flags;
-       Handle accessKey;
-       if (!PyArg_ParseTuple(_args, "O&lO&",
-                             PyMac_GetStr255, accessKeyType,
-                             &flags,
-                             ResObj_Convert, &accessKey))
-               return NULL;
-       _err = QTUnregisterAccessKey(accessKeyType,
-                                    flags,
-                                    accessKey);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *Qt_QTTextToNativeText(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       Handle theText;
-       long encoding;
-       long flags;
-       if (!PyArg_ParseTuple(_args, "O&ll",
-                             ResObj_Convert, &theText,
-                             &encoding,
-                             &flags))
-               return NULL;
-       _err = QTTextToNativeText(theText,
-                                 encoding,
-                                 flags);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *Qt_VideoMediaResetStatistics(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       ComponentResult _rv;
-       MediaHandler mh;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             CmpInstObj_Convert, &mh))
-               return NULL;
-       _rv = VideoMediaResetStatistics(mh);
-       _res = Py_BuildValue("l",
-                            _rv);
-       return _res;
-}
-
-static PyObject *Qt_VideoMediaGetStatistics(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       ComponentResult _rv;
-       MediaHandler mh;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             CmpInstObj_Convert, &mh))
-               return NULL;
-       _rv = VideoMediaGetStatistics(mh);
-       _res = Py_BuildValue("l",
-                            _rv);
-       return _res;
-}
-
-static PyObject *Qt_VideoMediaGetStallCount(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       ComponentResult _rv;
-       MediaHandler mh;
-       unsigned long stalls;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             CmpInstObj_Convert, &mh))
-               return NULL;
-       _rv = VideoMediaGetStallCount(mh,
-                                     &stalls);
-       _res = Py_BuildValue("ll",
-                            _rv,
-                            stalls);
-       return _res;
-}
-
-static PyObject *Qt_VideoMediaSetCodecParameter(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       ComponentResult _rv;
-       MediaHandler mh;
-       CodecType cType;
-       OSType parameterID;
-       long parameterChangeSeed;
-       void * dataPtr;
-       long dataSize;
-       if (!PyArg_ParseTuple(_args, "O&O&O&lsl",
-                             CmpInstObj_Convert, &mh,
-                             PyMac_GetOSType, &cType,
-                             PyMac_GetOSType, &parameterID,
-                             &parameterChangeSeed,
-                             &dataPtr,
-                             &dataSize))
-               return NULL;
-       _rv = VideoMediaSetCodecParameter(mh,
-                                         cType,
-                                         parameterID,
-                                         parameterChangeSeed,
-                                         dataPtr,
-                                         dataSize);
-       _res = Py_BuildValue("l",
-                            _rv);
-       return _res;
-}
-
-static PyObject *Qt_VideoMediaGetCodecParameter(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       ComponentResult _rv;
-       MediaHandler mh;
-       CodecType cType;
-       OSType parameterID;
-       Handle outParameterData;
-       if (!PyArg_ParseTuple(_args, "O&O&O&O&",
-                             CmpInstObj_Convert, &mh,
-                             PyMac_GetOSType, &cType,
-                             PyMac_GetOSType, &parameterID,
-                             ResObj_Convert, &outParameterData))
-               return NULL;
-       _rv = VideoMediaGetCodecParameter(mh,
-                                         cType,
-                                         parameterID,
-                                         outParameterData);
-       _res = Py_BuildValue("l",
-                            _rv);
-       return _res;
-}
-
-static PyObject *Qt_TextMediaAddTextSample(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       ComponentResult _rv;
-       MediaHandler mh;
-       Ptr text;
-       unsigned long size;
-       short fontNumber;
-       short fontSize;
-       Style textFace;
-       RGBColor textColor;
-       RGBColor backColor;
-       short textJustification;
-       Rect textBox;
-       long displayFlags;
-       TimeValue scrollDelay;
-       short hiliteStart;
-       short hiliteEnd;
-       RGBColor rgbHiliteColor;
-       TimeValue duration;
-       TimeValue sampleTime;
-       if (!PyArg_ParseTuple(_args, "O&slhhbhllhhl",
-                             CmpInstObj_Convert, &mh,
-                             &text,
-                             &size,
-                             &fontNumber,
-                             &fontSize,
-                             &textFace,
-                             &textJustification,
-                             &displayFlags,
-                             &scrollDelay,
-                             &hiliteStart,
-                             &hiliteEnd,
-                             &duration))
-               return NULL;
-       _rv = TextMediaAddTextSample(mh,
-                                    text,
-                                    size,
-                                    fontNumber,
-                                    fontSize,
-                                    textFace,
-                                    &textColor,
-                                    &backColor,
-                                    textJustification,
-                                    &textBox,
-                                    displayFlags,
-                                    scrollDelay,
-                                    hiliteStart,
-                                    hiliteEnd,
-                                    &rgbHiliteColor,
-                                    duration,
-                                    &sampleTime);
-       _res = Py_BuildValue("lO&O&O&O&l",
-                            _rv,
-                            QdRGB_New, &textColor,
-                            QdRGB_New, &backColor,
-                            PyMac_BuildRect, &textBox,
-                            QdRGB_New, &rgbHiliteColor,
-                            sampleTime);
-       return _res;
-}
-
-static PyObject *Qt_TextMediaAddTESample(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       ComponentResult _rv;
-       MediaHandler mh;
-       TEHandle hTE;
-       RGBColor backColor;
-       short textJustification;
-       Rect textBox;
-       long displayFlags;
-       TimeValue scrollDelay;
-       short hiliteStart;
-       short hiliteEnd;
-       RGBColor rgbHiliteColor;
-       TimeValue duration;
-       TimeValue sampleTime;
-       if (!PyArg_ParseTuple(_args, "O&O&hllhhl",
-                             CmpInstObj_Convert, &mh,
-                             ResObj_Convert, &hTE,
-                             &textJustification,
-                             &displayFlags,
-                             &scrollDelay,
-                             &hiliteStart,
-                             &hiliteEnd,
-                             &duration))
-               return NULL;
-       _rv = TextMediaAddTESample(mh,
-                                  hTE,
-                                  &backColor,
-                                  textJustification,
-                                  &textBox,
-                                  displayFlags,
-                                  scrollDelay,
-                                  hiliteStart,
-                                  hiliteEnd,
-                                  &rgbHiliteColor,
-                                  duration,
-                                  &sampleTime);
-       _res = Py_BuildValue("lO&O&O&l",
-                            _rv,
-                            QdRGB_New, &backColor,
-                            PyMac_BuildRect, &textBox,
-                            QdRGB_New, &rgbHiliteColor,
-                            sampleTime);
-       return _res;
-}
-
-static PyObject *Qt_TextMediaAddHiliteSample(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       ComponentResult _rv;
-       MediaHandler mh;
-       short hiliteStart;
-       short hiliteEnd;
-       RGBColor rgbHiliteColor;
-       TimeValue duration;
-       TimeValue sampleTime;
-       if (!PyArg_ParseTuple(_args, "O&hhl",
-                             CmpInstObj_Convert, &mh,
-                             &hiliteStart,
-                             &hiliteEnd,
-                             &duration))
-               return NULL;
-       _rv = TextMediaAddHiliteSample(mh,
-                                      hiliteStart,
-                                      hiliteEnd,
-                                      &rgbHiliteColor,
-                                      duration,
-                                      &sampleTime);
-       _res = Py_BuildValue("lO&l",
-                            _rv,
-                            QdRGB_New, &rgbHiliteColor,
-                            sampleTime);
-       return _res;
-}
-
-static PyObject *Qt_TextMediaDrawRaw(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       ComponentResult _rv;
-       MediaHandler mh;
-       GWorldPtr gw;
-       GDHandle gd;
-       void * data;
-       long dataSize;
-       TextDescriptionHandle tdh;
-       if (!PyArg_ParseTuple(_args, "O&O&O&slO&",
-                             CmpInstObj_Convert, &mh,
-                             GWorldObj_Convert, &gw,
-                             OptResObj_Convert, &gd,
-                             &data,
-                             &dataSize,
-                             ResObj_Convert, &tdh))
-               return NULL;
-       _rv = TextMediaDrawRaw(mh,
-                              gw,
-                              gd,
-                              data,
-                              dataSize,
-                              tdh);
-       _res = Py_BuildValue("l",
-                            _rv);
-       return _res;
-}
-
-static PyObject *Qt_TextMediaSetTextProperty(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       ComponentResult _rv;
-       MediaHandler mh;
-       TimeValue atMediaTime;
-       long propertyType;
-       void * data;
-       long dataSize;
-       if (!PyArg_ParseTuple(_args, "O&llsl",
-                             CmpInstObj_Convert, &mh,
-                             &atMediaTime,
-                             &propertyType,
-                             &data,
-                             &dataSize))
-               return NULL;
-       _rv = TextMediaSetTextProperty(mh,
-                                      atMediaTime,
-                                      propertyType,
-                                      data,
-                                      dataSize);
-       _res = Py_BuildValue("l",
-                            _rv);
-       return _res;
-}
-
-static PyObject *Qt_TextMediaRawSetup(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       ComponentResult _rv;
-       MediaHandler mh;
-       GWorldPtr gw;
-       GDHandle gd;
-       void * data;
-       long dataSize;
-       TextDescriptionHandle tdh;
-       TimeValue sampleDuration;
-       if (!PyArg_ParseTuple(_args, "O&O&O&slO&l",
-                             CmpInstObj_Convert, &mh,
-                             GWorldObj_Convert, &gw,
-                             OptResObj_Convert, &gd,
-                             &data,
-                             &dataSize,
-                             ResObj_Convert, &tdh,
-                             &sampleDuration))
-               return NULL;
-       _rv = TextMediaRawSetup(mh,
-                               gw,
-                               gd,
-                               data,
-                               dataSize,
-                               tdh,
-                               sampleDuration);
-       _res = Py_BuildValue("l",
-                            _rv);
-       return _res;
-}
-
-static PyObject *Qt_TextMediaRawIdle(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       ComponentResult _rv;
-       MediaHandler mh;
-       GWorldPtr gw;
-       GDHandle gd;
-       TimeValue sampleTime;
-       long flagsIn;
-       long flagsOut;
-       if (!PyArg_ParseTuple(_args, "O&O&O&ll",
-                             CmpInstObj_Convert, &mh,
-                             GWorldObj_Convert, &gw,
-                             OptResObj_Convert, &gd,
-                             &sampleTime,
-                             &flagsIn))
-               return NULL;
-       _rv = TextMediaRawIdle(mh,
-                              gw,
-                              gd,
-                              sampleTime,
-                              flagsIn,
-                              &flagsOut);
-       _res = Py_BuildValue("ll",
-                            _rv,
-                            flagsOut);
-       return _res;
-}
-
-static PyObject *Qt_TextMediaFindNextText(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       ComponentResult _rv;
-       MediaHandler mh;
-       Ptr text;
-       long size;
-       short findFlags;
-       TimeValue startTime;
-       TimeValue foundTime;
-       TimeValue foundDuration;
-       long offset;
-       if (!PyArg_ParseTuple(_args, "O&slhl",
-                             CmpInstObj_Convert, &mh,
-                             &text,
-                             &size,
-                             &findFlags,
-                             &startTime))
-               return NULL;
-       _rv = TextMediaFindNextText(mh,
-                                   text,
-                                   size,
-                                   findFlags,
-                                   startTime,
-                                   &foundTime,
-                                   &foundDuration,
-                                   &offset);
-       _res = Py_BuildValue("llll",
-                            _rv,
-                            foundTime,
-                            foundDuration,
-                            offset);
-       return _res;
-}
-
-static PyObject *Qt_TextMediaHiliteTextSample(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       ComponentResult _rv;
-       MediaHandler mh;
-       TimeValue sampleTime;
-       short hiliteStart;
-       short hiliteEnd;
-       RGBColor rgbHiliteColor;
-       if (!PyArg_ParseTuple(_args, "O&lhh",
-                             CmpInstObj_Convert, &mh,
-                             &sampleTime,
-                             &hiliteStart,
-                             &hiliteEnd))
-               return NULL;
-       _rv = TextMediaHiliteTextSample(mh,
-                                       sampleTime,
-                                       hiliteStart,
-                                       hiliteEnd,
-                                       &rgbHiliteColor);
-       _res = Py_BuildValue("lO&",
-                            _rv,
-                            QdRGB_New, &rgbHiliteColor);
-       return _res;
-}
-
-static PyObject *Qt_TextMediaSetTextSampleData(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       ComponentResult _rv;
-       MediaHandler mh;
-       void * data;
-       OSType dataType;
-       if (!PyArg_ParseTuple(_args, "O&sO&",
-                             CmpInstObj_Convert, &mh,
-                             &data,
-                             PyMac_GetOSType, &dataType))
-               return NULL;
-       _rv = TextMediaSetTextSampleData(mh,
-                                        data,
-                                        dataType);
-       _res = Py_BuildValue("l",
-                            _rv);
-       return _res;
-}
-
-static PyObject *Qt_SpriteMediaSetProperty(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       ComponentResult _rv;
-       MediaHandler mh;
-       short spriteIndex;
-       long propertyType;
-       void * propertyValue;
-       if (!PyArg_ParseTuple(_args, "O&hls",
-                             CmpInstObj_Convert, &mh,
-                             &spriteIndex,
-                             &propertyType,
-                             &propertyValue))
-               return NULL;
-       _rv = SpriteMediaSetProperty(mh,
-                                    spriteIndex,
-                                    propertyType,
-                                    propertyValue);
-       _res = Py_BuildValue("l",
-                            _rv);
-       return _res;
-}
-
-static PyObject *Qt_SpriteMediaGetProperty(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       ComponentResult _rv;
-       MediaHandler mh;
-       short spriteIndex;
-       long propertyType;
-       void * propertyValue;
-       if (!PyArg_ParseTuple(_args, "O&hls",
-                             CmpInstObj_Convert, &mh,
-                             &spriteIndex,
-                             &propertyType,
-                             &propertyValue))
-               return NULL;
-       _rv = SpriteMediaGetProperty(mh,
-                                    spriteIndex,
-                                    propertyType,
-                                    propertyValue);
-       _res = Py_BuildValue("l",
-                            _rv);
-       return _res;
-}
-
-static PyObject *Qt_SpriteMediaHitTestSprites(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       ComponentResult _rv;
-       MediaHandler mh;
-       long flags;
-       Point loc;
-       short spriteHitIndex;
-       if (!PyArg_ParseTuple(_args, "O&lO&",
-                             CmpInstObj_Convert, &mh,
-                             &flags,
-                             PyMac_GetPoint, &loc))
-               return NULL;
-       _rv = SpriteMediaHitTestSprites(mh,
-                                       flags,
-                                       loc,
-                                       &spriteHitIndex);
-       _res = Py_BuildValue("lh",
-                            _rv,
-                            spriteHitIndex);
-       return _res;
-}
-
-static PyObject *Qt_SpriteMediaCountSprites(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       ComponentResult _rv;
-       MediaHandler mh;
-       short numSprites;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             CmpInstObj_Convert, &mh))
-               return NULL;
-       _rv = SpriteMediaCountSprites(mh,
-                                     &numSprites);
-       _res = Py_BuildValue("lh",
-                            _rv,
-                            numSprites);
-       return _res;
-}
-
-static PyObject *Qt_SpriteMediaCountImages(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       ComponentResult _rv;
-       MediaHandler mh;
-       short numImages;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             CmpInstObj_Convert, &mh))
-               return NULL;
-       _rv = SpriteMediaCountImages(mh,
-                                    &numImages);
-       _res = Py_BuildValue("lh",
-                            _rv,
-                            numImages);
-       return _res;
-}
-
-static PyObject *Qt_SpriteMediaGetIndImageDescription(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       ComponentResult _rv;
-       MediaHandler mh;
-       short imageIndex;
-       ImageDescriptionHandle imageDescription;
-       if (!PyArg_ParseTuple(_args, "O&hO&",
-                             CmpInstObj_Convert, &mh,
-                             &imageIndex,
-                             ResObj_Convert, &imageDescription))
-               return NULL;
-       _rv = SpriteMediaGetIndImageDescription(mh,
-                                               imageIndex,
-                                               imageDescription);
-       _res = Py_BuildValue("l",
-                            _rv);
-       return _res;
-}
-
-static PyObject *Qt_SpriteMediaGetDisplayedSampleNumber(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       ComponentResult _rv;
-       MediaHandler mh;
-       long sampleNum;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             CmpInstObj_Convert, &mh))
-               return NULL;
-       _rv = SpriteMediaGetDisplayedSampleNumber(mh,
-                                                 &sampleNum);
-       _res = Py_BuildValue("ll",
-                            _rv,
-                            sampleNum);
-       return _res;
-}
-
-static PyObject *Qt_SpriteMediaGetSpriteName(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       ComponentResult _rv;
-       MediaHandler mh;
-       QTAtomID spriteID;
-       Str255 spriteName;
-       if (!PyArg_ParseTuple(_args, "O&lO&",
-                             CmpInstObj_Convert, &mh,
-                             &spriteID,
-                             PyMac_GetStr255, spriteName))
-               return NULL;
-       _rv = SpriteMediaGetSpriteName(mh,
-                                      spriteID,
-                                      spriteName);
-       _res = Py_BuildValue("l",
-                            _rv);
-       return _res;
-}
-
-static PyObject *Qt_SpriteMediaGetImageName(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       ComponentResult _rv;
-       MediaHandler mh;
-       short imageIndex;
-       Str255 imageName;
-       if (!PyArg_ParseTuple(_args, "O&hO&",
-                             CmpInstObj_Convert, &mh,
-                             &imageIndex,
-                             PyMac_GetStr255, imageName))
-               return NULL;
-       _rv = SpriteMediaGetImageName(mh,
-                                     imageIndex,
-                                     imageName);
-       _res = Py_BuildValue("l",
-                            _rv);
-       return _res;
-}
-
-static PyObject *Qt_SpriteMediaSetSpriteProperty(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       ComponentResult _rv;
-       MediaHandler mh;
-       QTAtomID spriteID;
-       long propertyType;
-       void * propertyValue;
-       if (!PyArg_ParseTuple(_args, "O&lls",
-                             CmpInstObj_Convert, &mh,
-                             &spriteID,
-                             &propertyType,
-                             &propertyValue))
-               return NULL;
-       _rv = SpriteMediaSetSpriteProperty(mh,
-                                          spriteID,
-                                          propertyType,
-                                          propertyValue);
-       _res = Py_BuildValue("l",
-                            _rv);
-       return _res;
-}
-
-static PyObject *Qt_SpriteMediaGetSpriteProperty(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       ComponentResult _rv;
-       MediaHandler mh;
-       QTAtomID spriteID;
-       long propertyType;
-       void * propertyValue;
-       if (!PyArg_ParseTuple(_args, "O&lls",
-                             CmpInstObj_Convert, &mh,
-                             &spriteID,
-                             &propertyType,
-                             &propertyValue))
-               return NULL;
-       _rv = SpriteMediaGetSpriteProperty(mh,
-                                          spriteID,
-                                          propertyType,
-                                          propertyValue);
-       _res = Py_BuildValue("l",
-                            _rv);
-       return _res;
-}
-
-static PyObject *Qt_SpriteMediaHitTestAllSprites(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       ComponentResult _rv;
-       MediaHandler mh;
-       long flags;
-       Point loc;
-       QTAtomID spriteHitID;
-       if (!PyArg_ParseTuple(_args, "O&lO&",
-                             CmpInstObj_Convert, &mh,
-                             &flags,
-                             PyMac_GetPoint, &loc))
-               return NULL;
-       _rv = SpriteMediaHitTestAllSprites(mh,
-                                          flags,
-                                          loc,
-                                          &spriteHitID);
-       _res = Py_BuildValue("ll",
-                            _rv,
-                            spriteHitID);
-       return _res;
-}
-
-static PyObject *Qt_SpriteMediaHitTestOneSprite(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       ComponentResult _rv;
-       MediaHandler mh;
-       QTAtomID spriteID;
-       long flags;
-       Point loc;
-       Boolean wasHit;
-       if (!PyArg_ParseTuple(_args, "O&llO&",
-                             CmpInstObj_Convert, &mh,
-                             &spriteID,
-                             &flags,
-                             PyMac_GetPoint, &loc))
-               return NULL;
-       _rv = SpriteMediaHitTestOneSprite(mh,
-                                         spriteID,
-                                         flags,
-                                         loc,
-                                         &wasHit);
-       _res = Py_BuildValue("lb",
-                            _rv,
-                            wasHit);
-       return _res;
-}
-
-static PyObject *Qt_SpriteMediaSpriteIndexToID(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       ComponentResult _rv;
-       MediaHandler mh;
-       short spriteIndex;
-       QTAtomID spriteID;
-       if (!PyArg_ParseTuple(_args, "O&h",
-                             CmpInstObj_Convert, &mh,
-                             &spriteIndex))
-               return NULL;
-       _rv = SpriteMediaSpriteIndexToID(mh,
-                                        spriteIndex,
-                                        &spriteID);
-       _res = Py_BuildValue("ll",
-                            _rv,
-                            spriteID);
-       return _res;
-}
-
-static PyObject *Qt_SpriteMediaSpriteIDToIndex(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       ComponentResult _rv;
-       MediaHandler mh;
-       QTAtomID spriteID;
-       short spriteIndex;
-       if (!PyArg_ParseTuple(_args, "O&l",
-                             CmpInstObj_Convert, &mh,
-                             &spriteID))
-               return NULL;
-       _rv = SpriteMediaSpriteIDToIndex(mh,
-                                        spriteID,
-                                        &spriteIndex);
-       _res = Py_BuildValue("lh",
-                            _rv,
-                            spriteIndex);
-       return _res;
-}
-
-static PyObject *Qt_SpriteMediaSetActionVariable(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       ComponentResult _rv;
-       MediaHandler mh;
-       QTAtomID variableID;
-       float value;
-       if (!PyArg_ParseTuple(_args, "O&lf",
-                             CmpInstObj_Convert, &mh,
-                             &variableID,
-                             &value))
-               return NULL;
-       _rv = SpriteMediaSetActionVariable(mh,
-                                          variableID,
-                                          &value);
-       _res = Py_BuildValue("l",
-                            _rv);
-       return _res;
-}
-
-static PyObject *Qt_SpriteMediaGetActionVariable(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       ComponentResult _rv;
-       MediaHandler mh;
-       QTAtomID variableID;
-       float value;
-       if (!PyArg_ParseTuple(_args, "O&l",
-                             CmpInstObj_Convert, &mh,
-                             &variableID))
-               return NULL;
-       _rv = SpriteMediaGetActionVariable(mh,
-                                          variableID,
-                                          &value);
-       _res = Py_BuildValue("lf",
-                            _rv,
-                            value);
-       return _res;
-}
-
-#if !TARGET_API_MAC_CARBON
-
-static PyObject *Qt_SpriteMediaGetIndImageProperty(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       ComponentResult _rv;
-       MediaHandler mh;
-       short imageIndex;
-       long imagePropertyType;
-       void * imagePropertyValue;
-       if (!PyArg_ParseTuple(_args, "O&hls",
-                             CmpInstObj_Convert, &mh,
-                             &imageIndex,
-                             &imagePropertyType,
-                             &imagePropertyValue))
-               return NULL;
-       _rv = SpriteMediaGetIndImageProperty(mh,
-                                            imageIndex,
-                                            imagePropertyType,
-                                            imagePropertyValue);
-       _res = Py_BuildValue("l",
-                            _rv);
-       return _res;
-}
-#endif
-
-static PyObject *Qt_SpriteMediaDisposeSprite(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       ComponentResult _rv;
-       MediaHandler mh;
-       QTAtomID spriteID;
-       if (!PyArg_ParseTuple(_args, "O&l",
-                             CmpInstObj_Convert, &mh,
-                             &spriteID))
-               return NULL;
-       _rv = SpriteMediaDisposeSprite(mh,
-                                      spriteID);
-       _res = Py_BuildValue("l",
-                            _rv);
-       return _res;
-}
-
-static PyObject *Qt_SpriteMediaSetActionVariableToString(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       ComponentResult _rv;
-       MediaHandler mh;
-       QTAtomID variableID;
-       Ptr theCString;
-       if (!PyArg_ParseTuple(_args, "O&ls",
-                             CmpInstObj_Convert, &mh,
-                             &variableID,
-                             &theCString))
-               return NULL;
-       _rv = SpriteMediaSetActionVariableToString(mh,
-                                                  variableID,
-                                                  theCString);
-       _res = Py_BuildValue("l",
-                            _rv);
-       return _res;
-}
-
-static PyObject *Qt_SpriteMediaGetActionVariableAsString(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       ComponentResult _rv;
-       MediaHandler mh;
-       QTAtomID variableID;
-       Handle theCString;
-       if (!PyArg_ParseTuple(_args, "O&l",
-                             CmpInstObj_Convert, &mh,
-                             &variableID))
-               return NULL;
-       _rv = SpriteMediaGetActionVariableAsString(mh,
-                                                  variableID,
-                                                  &theCString);
-       _res = Py_BuildValue("lO&",
-                            _rv,
-                            ResObj_New, theCString);
-       return _res;
-}
-
-static PyObject *Qt_FlashMediaSetPan(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       ComponentResult _rv;
-       MediaHandler mh;
-       short xPercent;
-       short yPercent;
-       if (!PyArg_ParseTuple(_args, "O&hh",
-                             CmpInstObj_Convert, &mh,
-                             &xPercent,
-                             &yPercent))
-               return NULL;
-       _rv = FlashMediaSetPan(mh,
-                              xPercent,
-                              yPercent);
-       _res = Py_BuildValue("l",
-                            _rv);
-       return _res;
-}
-
-static PyObject *Qt_FlashMediaSetZoom(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       ComponentResult _rv;
-       MediaHandler mh;
-       short factor;
-       if (!PyArg_ParseTuple(_args, "O&h",
-                             CmpInstObj_Convert, &mh,
-                             &factor))
-               return NULL;
-       _rv = FlashMediaSetZoom(mh,
-                               factor);
-       _res = Py_BuildValue("l",
-                            _rv);
-       return _res;
-}
-
-static PyObject *Qt_FlashMediaSetZoomRect(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       ComponentResult _rv;
-       MediaHandler mh;
-       long left;
-       long top;
-       long right;
-       long bottom;
-       if (!PyArg_ParseTuple(_args, "O&llll",
-                             CmpInstObj_Convert, &mh,
-                             &left,
-                             &top,
-                             &right,
-                             &bottom))
-               return NULL;
-       _rv = FlashMediaSetZoomRect(mh,
-                                   left,
-                                   top,
-                                   right,
-                                   bottom);
-       _res = Py_BuildValue("l",
-                            _rv);
-       return _res;
-}
-
-static PyObject *Qt_FlashMediaGetRefConBounds(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       ComponentResult _rv;
-       MediaHandler mh;
-       long refCon;
-       long left;
-       long top;
-       long right;
-       long bottom;
-       if (!PyArg_ParseTuple(_args, "O&l",
-                             CmpInstObj_Convert, &mh,
-                             &refCon))
-               return NULL;
-       _rv = FlashMediaGetRefConBounds(mh,
-                                       refCon,
-                                       &left,
-                                       &top,
-                                       &right,
-                                       &bottom);
-       _res = Py_BuildValue("lllll",
-                            _rv,
-                            left,
-                            top,
-                            right,
-                            bottom);
-       return _res;
-}
-
-static PyObject *Qt_FlashMediaGetRefConID(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       ComponentResult _rv;
-       MediaHandler mh;
-       long refCon;
-       long refConID;
-       if (!PyArg_ParseTuple(_args, "O&l",
-                             CmpInstObj_Convert, &mh,
-                             &refCon))
-               return NULL;
-       _rv = FlashMediaGetRefConID(mh,
-                                   refCon,
-                                   &refConID);
-       _res = Py_BuildValue("ll",
-                            _rv,
-                            refConID);
-       return _res;
-}
-
-static PyObject *Qt_FlashMediaIDToRefCon(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       ComponentResult _rv;
-       MediaHandler mh;
-       long refConID;
-       long refCon;
-       if (!PyArg_ParseTuple(_args, "O&l",
-                             CmpInstObj_Convert, &mh,
-                             &refConID))
-               return NULL;
-       _rv = FlashMediaIDToRefCon(mh,
-                                  refConID,
-                                  &refCon);
-       _res = Py_BuildValue("ll",
-                            _rv,
-                            refCon);
-       return _res;
-}
-
-static PyObject *Qt_FlashMediaGetDisplayedFrameNumber(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       ComponentResult _rv;
-       MediaHandler mh;
-       long flashFrameNumber;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             CmpInstObj_Convert, &mh))
-               return NULL;
-       _rv = FlashMediaGetDisplayedFrameNumber(mh,
-                                               &flashFrameNumber);
-       _res = Py_BuildValue("ll",
-                            _rv,
-                            flashFrameNumber);
-       return _res;
-}
-
-static PyObject *Qt_FlashMediaFrameNumberToMovieTime(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       ComponentResult _rv;
-       MediaHandler mh;
-       long flashFrameNumber;
-       TimeValue movieTime;
-       if (!PyArg_ParseTuple(_args, "O&l",
-                             CmpInstObj_Convert, &mh,
-                             &flashFrameNumber))
-               return NULL;
-       _rv = FlashMediaFrameNumberToMovieTime(mh,
-                                              flashFrameNumber,
-                                              &movieTime);
-       _res = Py_BuildValue("ll",
-                            _rv,
-                            movieTime);
-       return _res;
-}
-
-static PyObject *Qt_FlashMediaFrameLabelToMovieTime(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       ComponentResult _rv;
-       MediaHandler mh;
-       Ptr theLabel;
-       TimeValue movieTime;
-       if (!PyArg_ParseTuple(_args, "O&s",
-                             CmpInstObj_Convert, &mh,
-                             &theLabel))
-               return NULL;
-       _rv = FlashMediaFrameLabelToMovieTime(mh,
-                                             theLabel,
-                                             &movieTime);
-       _res = Py_BuildValue("ll",
-                            _rv,
-                            movieTime);
-       return _res;
-}
-
-#if !TARGET_API_MAC_CARBON
-
-static PyObject *Qt_MovieMediaGetCurrentMovieProperty(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       ComponentResult _rv;
-       MediaHandler mh;
-       OSType whichProperty;
-       void * value;
-       if (!PyArg_ParseTuple(_args, "O&O&s",
-                             CmpInstObj_Convert, &mh,
-                             PyMac_GetOSType, &whichProperty,
-                             &value))
-               return NULL;
-       _rv = MovieMediaGetCurrentMovieProperty(mh,
-                                               whichProperty,
-                                               value);
-       _res = Py_BuildValue("l",
-                            _rv);
-       return _res;
-}
-#endif
-
-#if !TARGET_API_MAC_CARBON
-
-static PyObject *Qt_MovieMediaGetCurrentTrackProperty(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       ComponentResult _rv;
-       MediaHandler mh;
-       long trackID;
-       OSType whichProperty;
-       void * value;
-       if (!PyArg_ParseTuple(_args, "O&lO&s",
-                             CmpInstObj_Convert, &mh,
-                             &trackID,
-                             PyMac_GetOSType, &whichProperty,
-                             &value))
-               return NULL;
-       _rv = MovieMediaGetCurrentTrackProperty(mh,
-                                               trackID,
-                                               whichProperty,
-                                               value);
-       _res = Py_BuildValue("l",
-                            _rv);
-       return _res;
-}
-#endif
-
-#if !TARGET_API_MAC_CARBON
-
-static PyObject *Qt_MovieMediaGetChildMovieDataReference(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       ComponentResult _rv;
-       MediaHandler mh;
-       QTAtomID dataRefID;
-       short dataRefIndex;
-       OSType dataRefType;
-       Handle dataRef;
-       QTAtomID dataRefIDOut;
-       short dataRefIndexOut;
-       if (!PyArg_ParseTuple(_args, "O&lh",
-                             CmpInstObj_Convert, &mh,
-                             &dataRefID,
-                             &dataRefIndex))
-               return NULL;
-       _rv = MovieMediaGetChildMovieDataReference(mh,
-                                                  dataRefID,
-                                                  dataRefIndex,
-                                                  &dataRefType,
-                                                  &dataRef,
-                                                  &dataRefIDOut,
-                                                  &dataRefIndexOut);
-       _res = Py_BuildValue("lO&O&lh",
-                            _rv,
-                            PyMac_BuildOSType, dataRefType,
-                            ResObj_New, dataRef,
-                            dataRefIDOut,
-                            dataRefIndexOut);
-       return _res;
-}
-#endif
-
-#if !TARGET_API_MAC_CARBON
-
-static PyObject *Qt_MovieMediaSetChildMovieDataReference(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       ComponentResult _rv;
-       MediaHandler mh;
-       QTAtomID dataRefID;
-       OSType dataRefType;
-       Handle dataRef;
-       if (!PyArg_ParseTuple(_args, "O&lO&O&",
-                             CmpInstObj_Convert, &mh,
-                             &dataRefID,
-                             PyMac_GetOSType, &dataRefType,
-                             ResObj_Convert, &dataRef))
-               return NULL;
-       _rv = MovieMediaSetChildMovieDataReference(mh,
-                                                  dataRefID,
-                                                  dataRefType,
-                                                  dataRef);
-       _res = Py_BuildValue("l",
-                            _rv);
-       return _res;
-}
-#endif
-
-#if !TARGET_API_MAC_CARBON
-
-static PyObject *Qt_MovieMediaLoadChildMovieFromDataReference(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       ComponentResult _rv;
-       MediaHandler mh;
-       QTAtomID dataRefID;
-       if (!PyArg_ParseTuple(_args, "O&l",
-                             CmpInstObj_Convert, &mh,
-                             &dataRefID))
-               return NULL;
-       _rv = MovieMediaLoadChildMovieFromDataReference(mh,
-                                                       dataRefID);
-       _res = Py_BuildValue("l",
-                            _rv);
-       return _res;
-}
-#endif
-
-static PyObject *Qt_Media3DGetCurrentGroup(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       ComponentResult _rv;
-       MediaHandler mh;
-       void * group;
-       if (!PyArg_ParseTuple(_args, "O&s",
-                             CmpInstObj_Convert, &mh,
-                             &group))
-               return NULL;
-       _rv = Media3DGetCurrentGroup(mh,
-                                    group);
-       _res = Py_BuildValue("l",
-                            _rv);
-       return _res;
-}
-
-static PyObject *Qt_Media3DTranslateNamedObjectTo(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       ComponentResult _rv;
-       MediaHandler mh;
-       char objectName;
-       Fixed x;
-       Fixed y;
-       Fixed z;
-       if (!PyArg_ParseTuple(_args, "O&O&O&O&",
-                             CmpInstObj_Convert, &mh,
-                             PyMac_GetFixed, &x,
-                             PyMac_GetFixed, &y,
-                             PyMac_GetFixed, &z))
-               return NULL;
-       _rv = Media3DTranslateNamedObjectTo(mh,
-                                           &objectName,
-                                           x,
-                                           y,
-                                           z);
-       _res = Py_BuildValue("lc",
-                            _rv,
-                            objectName);
-       return _res;
-}
-
-static PyObject *Qt_Media3DScaleNamedObjectTo(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       ComponentResult _rv;
-       MediaHandler mh;
-       char objectName;
-       Fixed xScale;
-       Fixed yScale;
-       Fixed zScale;
-       if (!PyArg_ParseTuple(_args, "O&O&O&O&",
-                             CmpInstObj_Convert, &mh,
-                             PyMac_GetFixed, &xScale,
-                             PyMac_GetFixed, &yScale,
-                             PyMac_GetFixed, &zScale))
-               return NULL;
-       _rv = Media3DScaleNamedObjectTo(mh,
-                                       &objectName,
-                                       xScale,
-                                       yScale,
-                                       zScale);
-       _res = Py_BuildValue("lc",
-                            _rv,
-                            objectName);
-       return _res;
-}
-
-static PyObject *Qt_Media3DRotateNamedObjectTo(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       ComponentResult _rv;
-       MediaHandler mh;
-       char objectName;
-       Fixed xDegrees;
-       Fixed yDegrees;
-       Fixed zDegrees;
-       if (!PyArg_ParseTuple(_args, "O&O&O&O&",
-                             CmpInstObj_Convert, &mh,
-                             PyMac_GetFixed, &xDegrees,
-                             PyMac_GetFixed, &yDegrees,
-                             PyMac_GetFixed, &zDegrees))
-               return NULL;
-       _rv = Media3DRotateNamedObjectTo(mh,
-                                        &objectName,
-                                        xDegrees,
-                                        yDegrees,
-                                        zDegrees);
-       _res = Py_BuildValue("lc",
-                            _rv,
-                            objectName);
-       return _res;
-}
-
-static PyObject *Qt_Media3DSetCameraData(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       ComponentResult _rv;
-       MediaHandler mh;
-       void * cameraData;
-       if (!PyArg_ParseTuple(_args, "O&s",
-                             CmpInstObj_Convert, &mh,
-                             &cameraData))
-               return NULL;
-       _rv = Media3DSetCameraData(mh,
-                                  cameraData);
-       _res = Py_BuildValue("l",
-                            _rv);
-       return _res;
-}
-
-static PyObject *Qt_Media3DGetCameraData(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       ComponentResult _rv;
-       MediaHandler mh;
-       void * cameraData;
-       if (!PyArg_ParseTuple(_args, "O&s",
-                             CmpInstObj_Convert, &mh,
-                             &cameraData))
-               return NULL;
-       _rv = Media3DGetCameraData(mh,
-                                  cameraData);
-       _res = Py_BuildValue("l",
-                            _rv);
-       return _res;
-}
-
-static PyObject *Qt_Media3DSetCameraAngleAspect(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       ComponentResult _rv;
-       MediaHandler mh;
-       QTFloatSingle fov;
-       QTFloatSingle aspectRatioXToY;
-       if (!PyArg_ParseTuple(_args, "O&ff",
-                             CmpInstObj_Convert, &mh,
-                             &fov,
-                             &aspectRatioXToY))
-               return NULL;
-       _rv = Media3DSetCameraAngleAspect(mh,
-                                         fov,
-                                         aspectRatioXToY);
-       _res = Py_BuildValue("l",
-                            _rv);
-       return _res;
-}
-
-static PyObject *Qt_Media3DGetCameraAngleAspect(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       ComponentResult _rv;
-       MediaHandler mh;
-       QTFloatSingle fov;
-       QTFloatSingle aspectRatioXToY;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             CmpInstObj_Convert, &mh))
-               return NULL;
-       _rv = Media3DGetCameraAngleAspect(mh,
-                                         &fov,
-                                         &aspectRatioXToY);
-       _res = Py_BuildValue("lff",
-                            _rv,
-                            fov,
-                            aspectRatioXToY);
-       return _res;
-}
-
-static PyObject *Qt_Media3DSetCameraRange(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       ComponentResult _rv;
-       MediaHandler mh;
-       void * tQ3CameraRange;
-       if (!PyArg_ParseTuple(_args, "O&s",
-                             CmpInstObj_Convert, &mh,
-                             &tQ3CameraRange))
-               return NULL;
-       _rv = Media3DSetCameraRange(mh,
-                                   tQ3CameraRange);
-       _res = Py_BuildValue("l",
-                            _rv);
-       return _res;
-}
-
-static PyObject *Qt_Media3DGetCameraRange(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       ComponentResult _rv;
-       MediaHandler mh;
-       void * tQ3CameraRange;
-       if (!PyArg_ParseTuple(_args, "O&s",
-                             CmpInstObj_Convert, &mh,
-                             &tQ3CameraRange))
-               return NULL;
-       _rv = Media3DGetCameraRange(mh,
-                                   tQ3CameraRange);
-       _res = Py_BuildValue("l",
-                            _rv);
-       return _res;
-}
-
-#if !TARGET_API_MAC_CARBON
-
-static PyObject *Qt_Media3DGetViewObject(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       ComponentResult _rv;
-       MediaHandler mh;
-       void * tq3viewObject;
-       if (!PyArg_ParseTuple(_args, "O&s",
-                             CmpInstObj_Convert, &mh,
-                             &tq3viewObject))
-               return NULL;
-       _rv = Media3DGetViewObject(mh,
-                                  tq3viewObject);
-       _res = Py_BuildValue("l",
-                            _rv);
-       return _res;
-}
-#endif
-
-static PyObject *Qt_NewTimeBase(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       TimeBase _rv;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _rv = NewTimeBase();
-       _res = Py_BuildValue("O&",
-                            TimeBaseObj_New, _rv);
-       return _res;
-}
-
-static PyObject *Qt_ConvertTime(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       TimeRecord inout;
-       TimeBase newBase;
-       if (!PyArg_ParseTuple(_args, "O&O&",
-                             QtTimeRecord_Convert, &inout,
-                             TimeBaseObj_Convert, &newBase))
-               return NULL;
-       ConvertTime(&inout,
-                   newBase);
-       _res = Py_BuildValue("O&",
-                            QtTimeRecord_New, &inout);
-       return _res;
-}
-
-static PyObject *Qt_ConvertTimeScale(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       TimeRecord inout;
-       TimeScale newScale;
-       if (!PyArg_ParseTuple(_args, "O&l",
-                             QtTimeRecord_Convert, &inout,
-                             &newScale))
-               return NULL;
-       ConvertTimeScale(&inout,
-                        newScale);
-       _res = Py_BuildValue("O&",
-                            QtTimeRecord_New, &inout);
-       return _res;
-}
-
-static PyObject *Qt_AddTime(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       TimeRecord dst;
-       TimeRecord src;
-       if (!PyArg_ParseTuple(_args, "O&O&",
-                             QtTimeRecord_Convert, &dst,
-                             QtTimeRecord_Convert, &src))
-               return NULL;
-       AddTime(&dst,
-               &src);
-       _res = Py_BuildValue("O&",
-                            QtTimeRecord_New, &dst);
-       return _res;
-}
-
-static PyObject *Qt_SubtractTime(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       TimeRecord dst;
-       TimeRecord src;
-       if (!PyArg_ParseTuple(_args, "O&O&",
-                             QtTimeRecord_Convert, &dst,
-                             QtTimeRecord_Convert, &src))
-               return NULL;
-       SubtractTime(&dst,
-                    &src);
-       _res = Py_BuildValue("O&",
-                            QtTimeRecord_New, &dst);
-       return _res;
-}
-
-static PyObject *Qt_MusicMediaGetIndexedTunePlayer(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       ComponentResult _rv;
-       ComponentInstance ti;
-       long sampleDescIndex;
-       ComponentInstance tp;
-       if (!PyArg_ParseTuple(_args, "O&l",
-                             CmpInstObj_Convert, &ti,
-                             &sampleDescIndex))
-               return NULL;
-       _rv = MusicMediaGetIndexedTunePlayer(ti,
-                                            sampleDescIndex,
-                                            &tp);
-       _res = Py_BuildValue("lO&",
-                            _rv,
-                            CmpInstObj_New, tp);
-       return _res;
-}
-
-static PyObject *Qt_AlignWindow(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       WindowPtr wp;
-       Boolean front;
-       if (!PyArg_ParseTuple(_args, "O&b",
-                             WinObj_Convert, &wp,
-                             &front))
-               return NULL;
-       AlignWindow(wp,
-                   front,
-                   (Rect *)0,
-                   (ICMAlignmentProcRecordPtr)0);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *Qt_DragAlignedWindow(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       WindowPtr wp;
-       Point startPt;
-       Rect boundsRect;
-       if (!PyArg_ParseTuple(_args, "O&O&O&",
-                             WinObj_Convert, &wp,
-                             PyMac_GetPoint, &startPt,
-                             PyMac_GetRect, &boundsRect))
-               return NULL;
-       DragAlignedWindow(wp,
-                         startPt,
-                         &boundsRect,
-                         (Rect *)0,
-                         (ICMAlignmentProcRecordPtr)0);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *Qt_MoviesTask(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       long maxMilliSecToUse;
-       if (!PyArg_ParseTuple(_args, "l",
-                             &maxMilliSecToUse))
-               return NULL;
-       MoviesTask((Movie)0,
-                  maxMilliSecToUse);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyMethodDef Qt_methods[] = {
-
-#if !TARGET_API_MAC_CARBON
-       {"CheckQuickTimeRegistration", (PyCFunction)Qt_CheckQuickTimeRegistration, 1,
-        "(void * registrationKey, long flags) -> None"},
-#endif
-       {"EnterMovies", (PyCFunction)Qt_EnterMovies, 1,
-        "() -> None"},
-       {"ExitMovies", (PyCFunction)Qt_ExitMovies, 1,
-        "() -> None"},
-       {"GetMoviesError", (PyCFunction)Qt_GetMoviesError, 1,
-        "() -> None"},
-       {"ClearMoviesStickyError", (PyCFunction)Qt_ClearMoviesStickyError, 1,
-        "() -> None"},
-       {"GetMoviesStickyError", (PyCFunction)Qt_GetMoviesStickyError, 1,
-        "() -> None"},
-       {"DisposeMatte", (PyCFunction)Qt_DisposeMatte, 1,
-        "(PixMapHandle theMatte) -> None"},
-       {"NewMovie", (PyCFunction)Qt_NewMovie, 1,
-        "(long flags) -> (Movie _rv)"},
-       {"GetDataHandler", (PyCFunction)Qt_GetDataHandler, 1,
-        "(Handle dataRef, OSType dataHandlerSubType, long flags) -> (Component _rv)"},
-
-#if !TARGET_API_MAC_CARBON
-       {"OpenADataHandler", (PyCFunction)Qt_OpenADataHandler, 1,
-        "(Handle dataRef, OSType dataHandlerSubType, Handle anchorDataRef, OSType anchorDataRefType, TimeBase tb, long flags) -> (ComponentInstance dh)"},
-#endif
-       {"PasteHandleIntoMovie", (PyCFunction)Qt_PasteHandleIntoMovie, 1,
-        "(Handle h, OSType handleType, Movie theMovie, long flags, ComponentInstance userComp) -> None"},
-       {"GetMovieImporterForDataRef", (PyCFunction)Qt_GetMovieImporterForDataRef, 1,
-        "(OSType dataRefType, Handle dataRef, long flags) -> (Component importer)"},
-       {"TrackTimeToMediaTime", (PyCFunction)Qt_TrackTimeToMediaTime, 1,
-        "(TimeValue value, Track theTrack) -> (TimeValue _rv)"},
-       {"NewUserData", (PyCFunction)Qt_NewUserData, 1,
-        "() -> (UserData theUserData)"},
-       {"NewUserDataFromHandle", (PyCFunction)Qt_NewUserDataFromHandle, 1,
-        "(Handle h) -> (UserData theUserData)"},
-       {"CreateMovieFile", (PyCFunction)Qt_CreateMovieFile, 1,
-        "(FSSpec fileSpec, OSType creator, ScriptCode scriptTag, long createMovieFileFlags) -> (short resRefNum, Movie newmovie)"},
-       {"OpenMovieFile", (PyCFunction)Qt_OpenMovieFile, 1,
-        "(FSSpec fileSpec, SInt8 permission) -> (short resRefNum)"},
-       {"CloseMovieFile", (PyCFunction)Qt_CloseMovieFile, 1,
-        "(short resRefNum) -> None"},
-       {"DeleteMovieFile", (PyCFunction)Qt_DeleteMovieFile, 1,
-        "(FSSpec fileSpec) -> None"},
-       {"NewMovieFromFile", (PyCFunction)Qt_NewMovieFromFile, 1,
-        "(short resRefNum, short resId, short newMovieFlags) -> (Movie theMovie, short resId, Boolean dataRefWasChanged)"},
-       {"NewMovieFromHandle", (PyCFunction)Qt_NewMovieFromHandle, 1,
-        "(Handle h, short newMovieFlags) -> (Movie theMovie, Boolean dataRefWasChanged)"},
-       {"NewMovieFromDataFork", (PyCFunction)Qt_NewMovieFromDataFork, 1,
-        "(short fRefNum, long fileOffset, short newMovieFlags) -> (Movie theMovie, Boolean dataRefWasChanged)"},
-       {"NewMovieFromDataFork64", (PyCFunction)Qt_NewMovieFromDataFork64, 1,
-        "(long fRefNum, wide fileOffset, short newMovieFlags) -> (Movie theMovie, Boolean dataRefWasChanged)"},
-       {"NewMovieFromDataRef", (PyCFunction)Qt_NewMovieFromDataRef, 1,
-        "(short flags, Handle dataRef, OSType dataRefType) -> (Movie m, short id)"},
-       {"RemoveMovieResource", (PyCFunction)Qt_RemoveMovieResource, 1,
-        "(short resRefNum, short resId) -> None"},
-       {"CreateShortcutMovieFile", (PyCFunction)Qt_CreateShortcutMovieFile, 1,
-        "(FSSpec fileSpec, OSType creator, ScriptCode scriptTag, long createMovieFileFlags, Handle targetDataRef, OSType targetDataRefType) -> None"},
-       {"NewMovieFromScrap", (PyCFunction)Qt_NewMovieFromScrap, 1,
-        "(long newMovieFlags) -> (Movie _rv)"},
-       {"QTNewAlias", (PyCFunction)Qt_QTNewAlias, 1,
-        "(FSSpec fss, Boolean minimal) -> (AliasHandle alias)"},
-       {"EndFullScreen", (PyCFunction)Qt_EndFullScreen, 1,
-        "(Ptr fullState, long flags) -> None"},
-       {"AddSoundDescriptionExtension", (PyCFunction)Qt_AddSoundDescriptionExtension, 1,
-        "(SoundDescriptionHandle desc, Handle extension, OSType idType) -> None"},
-       {"GetSoundDescriptionExtension", (PyCFunction)Qt_GetSoundDescriptionExtension, 1,
-        "(SoundDescriptionHandle desc, OSType idType) -> (Handle extension)"},
-       {"RemoveSoundDescriptionExtension", (PyCFunction)Qt_RemoveSoundDescriptionExtension, 1,
-        "(SoundDescriptionHandle desc, OSType idType) -> None"},
-       {"QTIsStandardParameterDialogEvent", (PyCFunction)Qt_QTIsStandardParameterDialogEvent, 1,
-        "(QTParameterDialog createdDialog) -> (EventRecord pEvent)"},
-       {"QTDismissStandardParameterDialog", (PyCFunction)Qt_QTDismissStandardParameterDialog, 1,
-        "(QTParameterDialog createdDialog) -> None"},
-       {"QTStandardParameterDialogDoAction", (PyCFunction)Qt_QTStandardParameterDialogDoAction, 1,
-        "(QTParameterDialog createdDialog, long action, void * params) -> None"},
-       {"QTRegisterAccessKey", (PyCFunction)Qt_QTRegisterAccessKey, 1,
-        "(Str255 accessKeyType, long flags, Handle accessKey) -> None"},
-       {"QTUnregisterAccessKey", (PyCFunction)Qt_QTUnregisterAccessKey, 1,
-        "(Str255 accessKeyType, long flags, Handle accessKey) -> None"},
-       {"QTTextToNativeText", (PyCFunction)Qt_QTTextToNativeText, 1,
-        "(Handle theText, long encoding, long flags) -> None"},
-       {"VideoMediaResetStatistics", (PyCFunction)Qt_VideoMediaResetStatistics, 1,
-        "(MediaHandler mh) -> (ComponentResult _rv)"},
-       {"VideoMediaGetStatistics", (PyCFunction)Qt_VideoMediaGetStatistics, 1,
-        "(MediaHandler mh) -> (ComponentResult _rv)"},
-       {"VideoMediaGetStallCount", (PyCFunction)Qt_VideoMediaGetStallCount, 1,
-        "(MediaHandler mh) -> (ComponentResult _rv, unsigned long stalls)"},
-       {"VideoMediaSetCodecParameter", (PyCFunction)Qt_VideoMediaSetCodecParameter, 1,
-        "(MediaHandler mh, CodecType cType, OSType parameterID, long parameterChangeSeed, void * dataPtr, long dataSize) -> (ComponentResult _rv)"},
-       {"VideoMediaGetCodecParameter", (PyCFunction)Qt_VideoMediaGetCodecParameter, 1,
-        "(MediaHandler mh, CodecType cType, OSType parameterID, Handle outParameterData) -> (ComponentResult _rv)"},
-       {"TextMediaAddTextSample", (PyCFunction)Qt_TextMediaAddTextSample, 1,
-        "(MediaHandler mh, Ptr text, unsigned long size, short fontNumber, short fontSize, Style textFace, short textJustification, long displayFlags, TimeValue scrollDelay, short hiliteStart, short hiliteEnd, TimeValue duration) -> (ComponentResult _rv, RGBColor textColor, RGBColor backColor, Rect textBox, RGBColor rgbHiliteColor, TimeValue sampleTime)"},
-       {"TextMediaAddTESample", (PyCFunction)Qt_TextMediaAddTESample, 1,
-        "(MediaHandler mh, TEHandle hTE, short textJustification, long displayFlags, TimeValue scrollDelay, short hiliteStart, short hiliteEnd, TimeValue duration) -> (ComponentResult _rv, RGBColor backColor, Rect textBox, RGBColor rgbHiliteColor, TimeValue sampleTime)"},
-       {"TextMediaAddHiliteSample", (PyCFunction)Qt_TextMediaAddHiliteSample, 1,
-        "(MediaHandler mh, short hiliteStart, short hiliteEnd, TimeValue duration) -> (ComponentResult _rv, RGBColor rgbHiliteColor, TimeValue sampleTime)"},
-       {"TextMediaDrawRaw", (PyCFunction)Qt_TextMediaDrawRaw, 1,
-        "(MediaHandler mh, GWorldPtr gw, GDHandle gd, void * data, long dataSize, TextDescriptionHandle tdh) -> (ComponentResult _rv)"},
-       {"TextMediaSetTextProperty", (PyCFunction)Qt_TextMediaSetTextProperty, 1,
-        "(MediaHandler mh, TimeValue atMediaTime, long propertyType, void * data, long dataSize) -> (ComponentResult _rv)"},
-       {"TextMediaRawSetup", (PyCFunction)Qt_TextMediaRawSetup, 1,
-        "(MediaHandler mh, GWorldPtr gw, GDHandle gd, void * data, long dataSize, TextDescriptionHandle tdh, TimeValue sampleDuration) -> (ComponentResult _rv)"},
-       {"TextMediaRawIdle", (PyCFunction)Qt_TextMediaRawIdle, 1,
-        "(MediaHandler mh, GWorldPtr gw, GDHandle gd, TimeValue sampleTime, long flagsIn) -> (ComponentResult _rv, long flagsOut)"},
-       {"TextMediaFindNextText", (PyCFunction)Qt_TextMediaFindNextText, 1,
-        "(MediaHandler mh, Ptr text, long size, short findFlags, TimeValue startTime) -> (ComponentResult _rv, TimeValue foundTime, TimeValue foundDuration, long offset)"},
-       {"TextMediaHiliteTextSample", (PyCFunction)Qt_TextMediaHiliteTextSample, 1,
-        "(MediaHandler mh, TimeValue sampleTime, short hiliteStart, short hiliteEnd) -> (ComponentResult _rv, RGBColor rgbHiliteColor)"},
-       {"TextMediaSetTextSampleData", (PyCFunction)Qt_TextMediaSetTextSampleData, 1,
-        "(MediaHandler mh, void * data, OSType dataType) -> (ComponentResult _rv)"},
-       {"SpriteMediaSetProperty", (PyCFunction)Qt_SpriteMediaSetProperty, 1,
-        "(MediaHandler mh, short spriteIndex, long propertyType, void * propertyValue) -> (ComponentResult _rv)"},
-       {"SpriteMediaGetProperty", (PyCFunction)Qt_SpriteMediaGetProperty, 1,
-        "(MediaHandler mh, short spriteIndex, long propertyType, void * propertyValue) -> (ComponentResult _rv)"},
-       {"SpriteMediaHitTestSprites", (PyCFunction)Qt_SpriteMediaHitTestSprites, 1,
-        "(MediaHandler mh, long flags, Point loc) -> (ComponentResult _rv, short spriteHitIndex)"},
-       {"SpriteMediaCountSprites", (PyCFunction)Qt_SpriteMediaCountSprites, 1,
-        "(MediaHandler mh) -> (ComponentResult _rv, short numSprites)"},
-       {"SpriteMediaCountImages", (PyCFunction)Qt_SpriteMediaCountImages, 1,
-        "(MediaHandler mh) -> (ComponentResult _rv, short numImages)"},
-       {"SpriteMediaGetIndImageDescription", (PyCFunction)Qt_SpriteMediaGetIndImageDescription, 1,
-        "(MediaHandler mh, short imageIndex, ImageDescriptionHandle imageDescription) -> (ComponentResult _rv)"},
-       {"SpriteMediaGetDisplayedSampleNumber", (PyCFunction)Qt_SpriteMediaGetDisplayedSampleNumber, 1,
-        "(MediaHandler mh) -> (ComponentResult _rv, long sampleNum)"},
-       {"SpriteMediaGetSpriteName", (PyCFunction)Qt_SpriteMediaGetSpriteName, 1,
-        "(MediaHandler mh, QTAtomID spriteID, Str255 spriteName) -> (ComponentResult _rv)"},
-       {"SpriteMediaGetImageName", (PyCFunction)Qt_SpriteMediaGetImageName, 1,
-        "(MediaHandler mh, short imageIndex, Str255 imageName) -> (ComponentResult _rv)"},
-       {"SpriteMediaSetSpriteProperty", (PyCFunction)Qt_SpriteMediaSetSpriteProperty, 1,
-        "(MediaHandler mh, QTAtomID spriteID, long propertyType, void * propertyValue) -> (ComponentResult _rv)"},
-       {"SpriteMediaGetSpriteProperty", (PyCFunction)Qt_SpriteMediaGetSpriteProperty, 1,
-        "(MediaHandler mh, QTAtomID spriteID, long propertyType, void * propertyValue) -> (ComponentResult _rv)"},
-       {"SpriteMediaHitTestAllSprites", (PyCFunction)Qt_SpriteMediaHitTestAllSprites, 1,
-        "(MediaHandler mh, long flags, Point loc) -> (ComponentResult _rv, QTAtomID spriteHitID)"},
-       {"SpriteMediaHitTestOneSprite", (PyCFunction)Qt_SpriteMediaHitTestOneSprite, 1,
-        "(MediaHandler mh, QTAtomID spriteID, long flags, Point loc) -> (ComponentResult _rv, Boolean wasHit)"},
-       {"SpriteMediaSpriteIndexToID", (PyCFunction)Qt_SpriteMediaSpriteIndexToID, 1,
-        "(MediaHandler mh, short spriteIndex) -> (ComponentResult _rv, QTAtomID spriteID)"},
-       {"SpriteMediaSpriteIDToIndex", (PyCFunction)Qt_SpriteMediaSpriteIDToIndex, 1,
-        "(MediaHandler mh, QTAtomID spriteID) -> (ComponentResult _rv, short spriteIndex)"},
-       {"SpriteMediaSetActionVariable", (PyCFunction)Qt_SpriteMediaSetActionVariable, 1,
-        "(MediaHandler mh, QTAtomID variableID, float value) -> (ComponentResult _rv)"},
-       {"SpriteMediaGetActionVariable", (PyCFunction)Qt_SpriteMediaGetActionVariable, 1,
-        "(MediaHandler mh, QTAtomID variableID) -> (ComponentResult _rv, float value)"},
-
-#if !TARGET_API_MAC_CARBON
-       {"SpriteMediaGetIndImageProperty", (PyCFunction)Qt_SpriteMediaGetIndImageProperty, 1,
-        "(MediaHandler mh, short imageIndex, long imagePropertyType, void * imagePropertyValue) -> (ComponentResult _rv)"},
-#endif
-       {"SpriteMediaDisposeSprite", (PyCFunction)Qt_SpriteMediaDisposeSprite, 1,
-        "(MediaHandler mh, QTAtomID spriteID) -> (ComponentResult _rv)"},
-       {"SpriteMediaSetActionVariableToString", (PyCFunction)Qt_SpriteMediaSetActionVariableToString, 1,
-        "(MediaHandler mh, QTAtomID variableID, Ptr theCString) -> (ComponentResult _rv)"},
-       {"SpriteMediaGetActionVariableAsString", (PyCFunction)Qt_SpriteMediaGetActionVariableAsString, 1,
-        "(MediaHandler mh, QTAtomID variableID) -> (ComponentResult _rv, Handle theCString)"},
-       {"FlashMediaSetPan", (PyCFunction)Qt_FlashMediaSetPan, 1,
-        "(MediaHandler mh, short xPercent, short yPercent) -> (ComponentResult _rv)"},
-       {"FlashMediaSetZoom", (PyCFunction)Qt_FlashMediaSetZoom, 1,
-        "(MediaHandler mh, short factor) -> (ComponentResult _rv)"},
-       {"FlashMediaSetZoomRect", (PyCFunction)Qt_FlashMediaSetZoomRect, 1,
-        "(MediaHandler mh, long left, long top, long right, long bottom) -> (ComponentResult _rv)"},
-       {"FlashMediaGetRefConBounds", (PyCFunction)Qt_FlashMediaGetRefConBounds, 1,
-        "(MediaHandler mh, long refCon) -> (ComponentResult _rv, long left, long top, long right, long bottom)"},
-       {"FlashMediaGetRefConID", (PyCFunction)Qt_FlashMediaGetRefConID, 1,
-        "(MediaHandler mh, long refCon) -> (ComponentResult _rv, long refConID)"},
-       {"FlashMediaIDToRefCon", (PyCFunction)Qt_FlashMediaIDToRefCon, 1,
-        "(MediaHandler mh, long refConID) -> (ComponentResult _rv, long refCon)"},
-       {"FlashMediaGetDisplayedFrameNumber", (PyCFunction)Qt_FlashMediaGetDisplayedFrameNumber, 1,
-        "(MediaHandler mh) -> (ComponentResult _rv, long flashFrameNumber)"},
-       {"FlashMediaFrameNumberToMovieTime", (PyCFunction)Qt_FlashMediaFrameNumberToMovieTime, 1,
-        "(MediaHandler mh, long flashFrameNumber) -> (ComponentResult _rv, TimeValue movieTime)"},
-       {"FlashMediaFrameLabelToMovieTime", (PyCFunction)Qt_FlashMediaFrameLabelToMovieTime, 1,
-        "(MediaHandler mh, Ptr theLabel) -> (ComponentResult _rv, TimeValue movieTime)"},
-
-#if !TARGET_API_MAC_CARBON
-       {"MovieMediaGetCurrentMovieProperty", (PyCFunction)Qt_MovieMediaGetCurrentMovieProperty, 1,
-        "(MediaHandler mh, OSType whichProperty, void * value) -> (ComponentResult _rv)"},
-#endif
-
-#if !TARGET_API_MAC_CARBON
-       {"MovieMediaGetCurrentTrackProperty", (PyCFunction)Qt_MovieMediaGetCurrentTrackProperty, 1,
-        "(MediaHandler mh, long trackID, OSType whichProperty, void * value) -> (ComponentResult _rv)"},
-#endif
-
-#if !TARGET_API_MAC_CARBON
-       {"MovieMediaGetChildMovieDataReference", (PyCFunction)Qt_MovieMediaGetChildMovieDataReference, 1,
-        "(MediaHandler mh, QTAtomID dataRefID, short dataRefIndex) -> (ComponentResult _rv, OSType dataRefType, Handle dataRef, QTAtomID dataRefIDOut, short dataRefIndexOut)"},
-#endif
-
-#if !TARGET_API_MAC_CARBON
-       {"MovieMediaSetChildMovieDataReference", (PyCFunction)Qt_MovieMediaSetChildMovieDataReference, 1,
-        "(MediaHandler mh, QTAtomID dataRefID, OSType dataRefType, Handle dataRef) -> (ComponentResult _rv)"},
-#endif
-
-#if !TARGET_API_MAC_CARBON
-       {"MovieMediaLoadChildMovieFromDataReference", (PyCFunction)Qt_MovieMediaLoadChildMovieFromDataReference, 1,
-        "(MediaHandler mh, QTAtomID dataRefID) -> (ComponentResult _rv)"},
-#endif
-       {"Media3DGetCurrentGroup", (PyCFunction)Qt_Media3DGetCurrentGroup, 1,
-        "(MediaHandler mh, void * group) -> (ComponentResult _rv)"},
-       {"Media3DTranslateNamedObjectTo", (PyCFunction)Qt_Media3DTranslateNamedObjectTo, 1,
-        "(MediaHandler mh, Fixed x, Fixed y, Fixed z) -> (ComponentResult _rv, char objectName)"},
-       {"Media3DScaleNamedObjectTo", (PyCFunction)Qt_Media3DScaleNamedObjectTo, 1,
-        "(MediaHandler mh, Fixed xScale, Fixed yScale, Fixed zScale) -> (ComponentResult _rv, char objectName)"},
-       {"Media3DRotateNamedObjectTo", (PyCFunction)Qt_Media3DRotateNamedObjectTo, 1,
-        "(MediaHandler mh, Fixed xDegrees, Fixed yDegrees, Fixed zDegrees) -> (ComponentResult _rv, char objectName)"},
-       {"Media3DSetCameraData", (PyCFunction)Qt_Media3DSetCameraData, 1,
-        "(MediaHandler mh, void * cameraData) -> (ComponentResult _rv)"},
-       {"Media3DGetCameraData", (PyCFunction)Qt_Media3DGetCameraData, 1,
-        "(MediaHandler mh, void * cameraData) -> (ComponentResult _rv)"},
-       {"Media3DSetCameraAngleAspect", (PyCFunction)Qt_Media3DSetCameraAngleAspect, 1,
-        "(MediaHandler mh, QTFloatSingle fov, QTFloatSingle aspectRatioXToY) -> (ComponentResult _rv)"},
-       {"Media3DGetCameraAngleAspect", (PyCFunction)Qt_Media3DGetCameraAngleAspect, 1,
-        "(MediaHandler mh) -> (ComponentResult _rv, QTFloatSingle fov, QTFloatSingle aspectRatioXToY)"},
-       {"Media3DSetCameraRange", (PyCFunction)Qt_Media3DSetCameraRange, 1,
-        "(MediaHandler mh, void * tQ3CameraRange) -> (ComponentResult _rv)"},
-       {"Media3DGetCameraRange", (PyCFunction)Qt_Media3DGetCameraRange, 1,
-        "(MediaHandler mh, void * tQ3CameraRange) -> (ComponentResult _rv)"},
-
-#if !TARGET_API_MAC_CARBON
-       {"Media3DGetViewObject", (PyCFunction)Qt_Media3DGetViewObject, 1,
-        "(MediaHandler mh, void * tq3viewObject) -> (ComponentResult _rv)"},
-#endif
-       {"NewTimeBase", (PyCFunction)Qt_NewTimeBase, 1,
-        "() -> (TimeBase _rv)"},
-       {"ConvertTime", (PyCFunction)Qt_ConvertTime, 1,
-        "(TimeRecord inout, TimeBase newBase) -> (TimeRecord inout)"},
-       {"ConvertTimeScale", (PyCFunction)Qt_ConvertTimeScale, 1,
-        "(TimeRecord inout, TimeScale newScale) -> (TimeRecord inout)"},
-       {"AddTime", (PyCFunction)Qt_AddTime, 1,
-        "(TimeRecord dst, TimeRecord src) -> (TimeRecord dst)"},
-       {"SubtractTime", (PyCFunction)Qt_SubtractTime, 1,
-        "(TimeRecord dst, TimeRecord src) -> (TimeRecord dst)"},
-       {"MusicMediaGetIndexedTunePlayer", (PyCFunction)Qt_MusicMediaGetIndexedTunePlayer, 1,
-        "(ComponentInstance ti, long sampleDescIndex) -> (ComponentResult _rv, ComponentInstance tp)"},
-       {"AlignWindow", (PyCFunction)Qt_AlignWindow, 1,
-        "(WindowPtr wp, Boolean front) -> None"},
-       {"DragAlignedWindow", (PyCFunction)Qt_DragAlignedWindow, 1,
-        "(WindowPtr wp, Point startPt, Rect boundsRect) -> None"},
-       {"MoviesTask", (PyCFunction)Qt_MoviesTask, 1,
-        "(long maxMilliSecToUse) -> None"},
-       {NULL, NULL, 0}
-};
-
-
-
-
-void initQt()
-{
-       PyObject *m;
-       PyObject *d;
-
-
-
-
-       m = Py_InitModule("Qt", Qt_methods);
-       d = PyModule_GetDict(m);
-       Qt_Error = PyMac_GetOSErrException();
-       if (Qt_Error == NULL ||
-           PyDict_SetItemString(d, "Error", Qt_Error) != 0)
-               return;
-       MovieController_Type.ob_type = &PyType_Type;
-       Py_INCREF(&MovieController_Type);
-       if (PyDict_SetItemString(d, "MovieControllerType", (PyObject *)&MovieController_Type) != 0)
-               Py_FatalError("can't initialize MovieControllerType");
-       TimeBase_Type.ob_type = &PyType_Type;
-       Py_INCREF(&TimeBase_Type);
-       if (PyDict_SetItemString(d, "TimeBaseType", (PyObject *)&TimeBase_Type) != 0)
-               Py_FatalError("can't initialize TimeBaseType");
-       UserData_Type.ob_type = &PyType_Type;
-       Py_INCREF(&UserData_Type);
-       if (PyDict_SetItemString(d, "UserDataType", (PyObject *)&UserData_Type) != 0)
-               Py_FatalError("can't initialize UserDataType");
-       Media_Type.ob_type = &PyType_Type;
-       Py_INCREF(&Media_Type);
-       if (PyDict_SetItemString(d, "MediaType", (PyObject *)&Media_Type) != 0)
-               Py_FatalError("can't initialize MediaType");
-       Track_Type.ob_type = &PyType_Type;
-       Py_INCREF(&Track_Type);
-       if (PyDict_SetItemString(d, "TrackType", (PyObject *)&Track_Type) != 0)
-               Py_FatalError("can't initialize TrackType");
-       Movie_Type.ob_type = &PyType_Type;
-       Py_INCREF(&Movie_Type);
-       if (PyDict_SetItemString(d, "MovieType", (PyObject *)&Movie_Type) != 0)
-               Py_FatalError("can't initialize MovieType");
-}
-
-/* ========================= End module Qt ========================== */
-
diff --git a/Mac/Modules/qt/qtsupport.py b/Mac/Modules/qt/qtsupport.py
deleted file mode 100644 (file)
index 3d26673..0000000
+++ /dev/null
@@ -1,277 +0,0 @@
-# This script generates a Python interface for an Apple Macintosh Manager.
-# It uses the "bgen" package to generate C code.
-# The function specifications are generated by scanning the mamager's header file,
-# using the "scantools" package (customized for this particular manager).
-
-#error missing SetActionFilter
-
-import string
-
-# Declarations that change for each manager
-MACHEADERFILE = 'Movies.h'             # The Apple header file
-MODNAME = 'Qt'                         # The name of the module
-OBJECTNAME = 'Movie'                   # The basic name of the objects used here
-
-# The following is *usually* unchanged but may still require tuning
-MODPREFIX = MODNAME                    # The prefix for module-wide routines
-OBJECTTYPE = "Movie"           # The C type used to represent them
-OBJECTPREFIX = MODPREFIX + 'Obj'       # The prefix for object methods
-INPUTFILE = string.lower(MODPREFIX) + 'gen.py' # The file generated by the scanner
-OUTPUTFILE = MODNAME + "module.c"      # The file generated by this program
-
-from macsupport import *
-
-# Create the type objects
-
-includestuff = includestuff + """
-#include <%s>""" % MACHEADERFILE + """
-
-
-/* Macro to allow us to GetNextInterestingTime without duration */
-#define GetMediaNextInterestingTimeOnly(media, flags, time, rate, rv) \
-                       GetMediaNextInterestingTime(media, flags, time, rate, rv, NULL)
-                       
-/*
-** Parse/generate time records
-*/
-static PyObject *
-QtTimeRecord_New(itself)
-       TimeRecord *itself;
-{
-       if (itself->base)
-               return Py_BuildValue("O&lO&", PyMac_Buildwide, &itself->value, itself->scale, 
-                       TimeBaseObj_New, itself->base);
-       else
-               return  Py_BuildValue("O&lO", PyMac_Buildwide, &itself->value, itself->scale, 
-                       Py_None);
-}
-
-static int
-QtTimeRecord_Convert(v, p_itself)
-       PyObject *v;
-       TimeRecord *p_itself;
-{
-       PyObject *base = NULL;
-       if( !PyArg_ParseTuple(v, "O&l|O", PyMac_Getwide, &p_itself->value, &p_itself->scale,
-                       &base) )
-               return 0;
-       if ( base == NULL || base == Py_None )
-               p_itself->base = NULL;
-       else
-               if ( !TimeBaseObj_Convert(base, &p_itself->base) )
-                       return 0;
-       return 1;
-}
-
-
-
-"""
-
-# Our (opaque) objects
-Movie = OpaqueByValueType('Movie', 'MovieObj')
-NullMovie = FakeType("(Movie)0")
-Track = OpaqueByValueType('Track', 'TrackObj')
-Media = OpaqueByValueType('Media', 'MediaObj')
-UserData = OpaqueByValueType('UserData', 'UserDataObj')
-TimeBase = OpaqueByValueType('TimeBase', 'TimeBaseObj')
-MovieController = OpaqueByValueType('MovieController', 'MovieCtlObj')
-
-# Other opaque objects
-Component = OpaqueByValueType('Component', 'CmpObj')
-MediaHandlerComponent = OpaqueByValueType('MediaHandlerComponent', 'CmpObj')
-DataHandlerComponent = OpaqueByValueType('DataHandlerComponent', 'CmpObj')
-
-ComponentInstance = OpaqueByValueType('ComponentInstance', 'CmpInstObj')
-MediaHandler = OpaqueByValueType('MediaHandler', 'CmpInstObj')
-DataHandler = OpaqueByValueType('DataHandler', 'CmpInstObj')
-
-RgnHandle = OpaqueByValueType("RgnHandle", "ResObj")
-PicHandle = OpaqueByValueType("PicHandle", "ResObj")
-CTabHandle = OpaqueByValueType("CTabHandle", "ResObj")
-PixMapHandle = OpaqueByValueType("PixMapHandle", "ResObj")
-SampleDescriptionHandle = OpaqueByValueType("SampleDescriptionHandle", "ResObj")
-ImageDescriptionHandle = OpaqueByValueType("ImageDescriptionHandle", "ResObj")
-TextDescriptionHandle = OpaqueByValueType("TextDescriptionHandle", "ResObj")
-TEHandle = OpaqueByValueType("TEHandle", "ResObj")
-CGrafPtr = OpaqueByValueType("CGrafPtr", "GrafObj")
-GDHandle = OpaqueByValueType("GDHandle", "OptResObj")
-AliasHandle = OpaqueByValueType("AliasHandle", "ResObj")
-SoundDescriptionHandle = OpaqueByValueType("SoundDescriptionHandle", "ResObj")
-# Silly Apple, passing an OStype by reference...
-OSType_ptr = OpaqueType("OSType", "PyMac_BuildOSType", "PyMac_GetOSType")
-# And even sillier: passing floats by address
-float_ptr = ByAddressType("float", "f")
-
-RGBColor = OpaqueType("RGBColor", "QdRGB")
-RGBColor_ptr = RGBColor
-TimeRecord = OpaqueType("TimeRecord", "QtTimeRecord")
-TimeRecord_ptr = TimeRecord
-
-# Non-opaque types, mostly integer-ish
-TimeValue = Type("TimeValue", "l")
-TimeScale = Type("TimeScale", "l")
-TimeBaseFlags = Type("TimeBaseFlags", "l")
-QTCallBackFlags = Type("QTCallBackFlags", "H")
-TimeBaseStatus = Type("TimeBaseStatus", "l")
-QTCallBackType = Type("QTCallBackType", "H")
-nextTimeFlagsEnum = Type("nextTimeFlagsEnum", "H")
-createMovieFileFlagsEnum = Type("createMovieFileFlagsEnum", "l")
-movieFlattenFlagsEnum = Type("movieFlattenFlagsEnum", "l")
-dataRefAttributesFlags = Type("dataRefAttributesFlags", "l")
-playHintsEnum = Type("playHintsEnum", "l")
-mediaHandlerFlagsEnum = Type("mediaHandlerFlagsEnum", "l")
-ComponentResult = Type("ComponentResult", "l")
-HandlerError = Type("HandlerError", "l")
-Ptr = InputOnlyType("Ptr", "s")
-StringPtr = Type("StringPtr", "s")
-mcactionparams = InputOnlyType("void *", "s")
-QTParameterDialog = Type("QTParameterDialog", "l")
-QTAtomID = Type("QTAtomID", "l")
-MCInterfaceElement = Type("MCInterfaceElement", "l")
-CodecType = OSTypeType("CodecType")
-GWorldPtr = OpaqueByValueType("GWorldPtr", "GWorldObj")
-QTFloatSingle = Type("QTFloatSingle", "f")
-
-# Could-not-be-bothered-types (NewMovieFromFile)
-dummyshortptr = FakeType('(short *)0')
-dummyStringPtr = FakeType('(StringPtr)0')
-
-class MovieObjectDefinition(GlobalObjectDefinition):
-       def outputCheckNewArg(self):
-               Output("""if (itself == NULL) {
-                                       PyErr_SetString(Qt_Error,"Cannot create null Movie");
-                                       return NULL;
-                               }""")
-       def outputFreeIt(self, itselfname):
-               Output("DisposeMovie(%s);", itselfname)
-
-class TrackObjectDefinition(GlobalObjectDefinition):
-       def outputCheckNewArg(self):
-               Output("""if (itself == NULL) {
-                                       PyErr_SetString(Qt_Error,"Cannot create null Track");
-                                       return NULL;
-                               }""")
-       def outputFreeIt(self, itselfname):
-               Output("DisposeMovieTrack(%s);", itselfname)
-
-class MediaObjectDefinition(GlobalObjectDefinition):
-       def outputCheckNewArg(self):
-               Output("""if (itself == NULL) {
-                                       PyErr_SetString(Qt_Error,"Cannot create null Media");
-                                       return NULL;
-                               }""")
-       def outputFreeIt(self, itselfname):
-               Output("DisposeTrackMedia(%s);", itselfname)
-
-class UserDataObjectDefinition(GlobalObjectDefinition):
-       def outputCheckNewArg(self):
-               Output("""if (itself == NULL) {
-                                       PyErr_SetString(Qt_Error,"Cannot create null UserData");
-                                       return NULL;
-                               }""")
-       def outputFreeIt(self, itselfname):
-               Output("DisposeUserData(%s);", itselfname)
-
-class TimeBaseObjectDefinition(GlobalObjectDefinition):
-       def outputCheckNewArg(self):
-               Output("""if (itself == NULL) {
-                                       PyErr_SetString(Qt_Error,"Cannot create null TimeBase");
-                                       return NULL;
-                               }""")
-##     def outputFreeIt(self, itselfname):
-##             Output("DisposeTimeBase(%s);", itselfname)
-
-class MovieCtlObjectDefinition(GlobalObjectDefinition):
-       def outputCheckNewArg(self):
-               Output("""if (itself == NULL) {
-                                       PyErr_SetString(Qt_Error,"Cannot create null MovieController");
-                                       return NULL;
-                               }""")
-       def outputFreeIt(self, itselfname):
-               Output("DisposeMovieController(%s);", itselfname)
-
-# From here on it's basically all boiler plate...
-
-# Create the generator groups and link them
-module = MacModule(MODNAME, MODPREFIX, includestuff, finalstuff, initstuff)
-Movie_object = MovieObjectDefinition('Movie', 'MovieObj', 'Movie')
-Track_object = TrackObjectDefinition('Track', 'TrackObj', 'Track')
-Media_object = MediaObjectDefinition('Media', 'MediaObj', 'Media')
-UserData_object = UserDataObjectDefinition('UserData', 'UserDataObj', 'UserData')
-TimeBase_object = TimeBaseObjectDefinition('TimeBase', 'TimeBaseObj', 'TimeBase')
-MovieController_object = MovieCtlObjectDefinition('MovieController', 'MovieCtlObj', 'MovieController')
-
-module.addobject(MovieController_object)
-module.addobject(TimeBase_object)
-module.addobject(UserData_object)
-module.addobject(Media_object)
-module.addobject(Track_object)
-module.addobject(Movie_object)
-
-# Create the generator classes used to populate the lists
-Function = OSErrFunctionGenerator
-Method = OSErrMethodGenerator
-
-# Create and populate the lists
-functions = []
-MovieController_methods = []
-TimeBase_methods = []
-UserData_methods = []
-Media_methods = []
-Track_methods = []
-Movie_methods = []
-execfile(INPUTFILE)
-
-#
-# Some functions from ImageCompression.h that we need:
-ICMAlignmentProcRecordPtr = FakeType('(ICMAlignmentProcRecordPtr)0')
-dummyRect = FakeType('(Rect *)0')
-
-f = Function(void, 'AlignWindow',
-       (WindowPtr, 'wp', InMode),
-       (Boolean, 'front', InMode),
-       (dummyRect, 'alignmentRect', InMode),
-       (ICMAlignmentProcRecordPtr, 'alignmentProc', InMode),
-)
-functions.append(f)
-
-f = Function(void, 'DragAlignedWindow',
-       (WindowPtr, 'wp', InMode),
-       (Point, 'startPt', InMode),
-       (Rect_ptr, 'boundsRect', InMode),
-       (dummyRect, 'alignmentRect', InMode),
-       (ICMAlignmentProcRecordPtr, 'alignmentProc', InMode),
-)
-functions.append(f)
-
-# And we want the version of MoviesTask without a movie argument
-f = Function(void, 'MoviesTask',
-    (NullMovie, 'theMovie', InMode),
-    (long, 'maxMilliSecToUse', InMode),
-)
-functions.append(f)
-
-# And we want a GetMediaNextInterestingTime without duration
-f = Method(void, 'GetMediaNextInterestingTimeOnly',
-    (Media, 'theMedia', InMode),
-    (short, 'interestingTimeFlags', InMode),
-    (TimeValue, 'time', InMode),
-    (Fixed, 'rate', InMode),
-    (TimeValue, 'interestingTime', OutMode),
-)
-Media_methods.append(f)
-
-# add the populated lists to the generator groups
-# (in a different wordl the scan program would generate this)
-for f in functions: module.add(f)
-for f in MovieController_methods: MovieController_object.add(f)
-for f in TimeBase_methods: TimeBase_object.add(f)
-for f in UserData_methods: UserData_object.add(f)
-for f in Media_methods: Media_object.add(f)
-for f in Track_methods: Track_object.add(f)
-for f in Movie_methods: Movie_object.add(f)
-
-# generate output (open the output file as late as possible)
-SetOutputFileName(OUTPUTFILE)
-module.generate()
-
diff --git a/Mac/Modules/res/Resmodule.c b/Mac/Modules/res/Resmodule.c
deleted file mode 100644 (file)
index bd6a42d..0000000
+++ /dev/null
@@ -1,1696 +0,0 @@
-
-/* =========================== Module Res =========================== */
-
-#include "Python.h"
-
-
-
-#include "macglue.h"
-#include "pymactoolbox.h"
-
-#include <Resources.h>
-#include <string.h>
-
-/* Function to dispose a resource, with a "normal" calling sequence */
-static void
-PyMac_AutoDisposeHandle(Handle h)
-{
-       DisposeHandle(h);
-}
-
-static PyObject *Res_Error;
-
-/* ---------------------- Object type Resource ---------------------- */
-
-PyTypeObject Resource_Type;
-
-#define ResObj_Check(x) ((x)->ob_type == &Resource_Type)
-
-typedef struct ResourceObject {
-       PyObject_HEAD
-       Handle ob_itself;
-       void (*ob_freeit)(Handle ptr);
-} ResourceObject;
-
-PyObject *ResObj_New(itself)
-       Handle itself;
-{
-       ResourceObject *it;
-       if (itself == NULL) return PyMac_Error(resNotFound);
-       it = PyObject_NEW(ResourceObject, &Resource_Type);
-       if (it == NULL) return NULL;
-       it->ob_itself = itself;
-       it->ob_freeit = NULL;
-       return (PyObject *)it;
-}
-ResObj_Convert(v, p_itself)
-       PyObject *v;
-       Handle *p_itself;
-{
-       if (!ResObj_Check(v))
-       {
-               PyObject *tmp;
-               if ( (tmp=PyObject_CallMethod(v, "as_Resource", "")) )
-               {
-                       *p_itself = ((ResourceObject *)tmp)->ob_itself;
-                       Py_DECREF(tmp);
-                       return 1;
-               }
-               PyErr_Clear();
-       }
-       if (!ResObj_Check(v))
-       {
-               PyErr_SetString(PyExc_TypeError, "Resource required");
-               return 0;
-       }
-       *p_itself = ((ResourceObject *)v)->ob_itself;
-       return 1;
-}
-
-static void ResObj_dealloc(self)
-       ResourceObject *self;
-{
-       if (self->ob_freeit && self->ob_itself)
-       {
-               self->ob_freeit(self->ob_itself);
-       }
-       self->ob_itself = NULL;
-       PyMem_DEL(self);
-}
-
-static PyObject *ResObj_HomeResFile(_self, _args)
-       ResourceObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       short _rv;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _rv = HomeResFile(_self->ob_itself);
-       {
-               OSErr _err = ResError();
-               if (_err != noErr) return PyMac_Error(_err);
-       }
-       _res = Py_BuildValue("h",
-                            _rv);
-       return _res;
-}
-
-static PyObject *ResObj_MacLoadResource(_self, _args)
-       ResourceObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       MacLoadResource(_self->ob_itself);
-       {
-               OSErr _err = ResError();
-               if (_err != noErr) return PyMac_Error(_err);
-       }
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *ResObj_ReleaseResource(_self, _args)
-       ResourceObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       ReleaseResource(_self->ob_itself);
-       {
-               OSErr _err = ResError();
-               if (_err != noErr) return PyMac_Error(_err);
-       }
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *ResObj_DetachResource(_self, _args)
-       ResourceObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       DetachResource(_self->ob_itself);
-       {
-               OSErr _err = ResError();
-               if (_err != noErr) return PyMac_Error(_err);
-       }
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *ResObj_GetResAttrs(_self, _args)
-       ResourceObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       short _rv;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _rv = GetResAttrs(_self->ob_itself);
-       {
-               OSErr _err = ResError();
-               if (_err != noErr) return PyMac_Error(_err);
-       }
-       _res = Py_BuildValue("h",
-                            _rv);
-       return _res;
-}
-
-static PyObject *ResObj_GetResInfo(_self, _args)
-       ResourceObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       short theID;
-       ResType theType;
-       Str255 name;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       GetResInfo(_self->ob_itself,
-                  &theID,
-                  &theType,
-                  name);
-       {
-               OSErr _err = ResError();
-               if (_err != noErr) return PyMac_Error(_err);
-       }
-       _res = Py_BuildValue("hO&O&",
-                            theID,
-                            PyMac_BuildOSType, theType,
-                            PyMac_BuildStr255, name);
-       return _res;
-}
-
-static PyObject *ResObj_SetResInfo(_self, _args)
-       ResourceObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       short theID;
-       Str255 name;
-       if (!PyArg_ParseTuple(_args, "hO&",
-                             &theID,
-                             PyMac_GetStr255, name))
-               return NULL;
-       SetResInfo(_self->ob_itself,
-                  theID,
-                  name);
-       {
-               OSErr _err = ResError();
-               if (_err != noErr) return PyMac_Error(_err);
-       }
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *ResObj_AddResource(_self, _args)
-       ResourceObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       ResType theType;
-       short theID;
-       Str255 name;
-       if (!PyArg_ParseTuple(_args, "O&hO&",
-                             PyMac_GetOSType, &theType,
-                             &theID,
-                             PyMac_GetStr255, name))
-               return NULL;
-       AddResource(_self->ob_itself,
-                   theType,
-                   theID,
-                   name);
-       {
-               OSErr _err = ResError();
-               if (_err != noErr) return PyMac_Error(_err);
-       }
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *ResObj_GetResourceSizeOnDisk(_self, _args)
-       ResourceObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       long _rv;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _rv = GetResourceSizeOnDisk(_self->ob_itself);
-       {
-               OSErr _err = ResError();
-               if (_err != noErr) return PyMac_Error(_err);
-       }
-       _res = Py_BuildValue("l",
-                            _rv);
-       return _res;
-}
-
-static PyObject *ResObj_GetMaxResourceSize(_self, _args)
-       ResourceObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       long _rv;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _rv = GetMaxResourceSize(_self->ob_itself);
-       {
-               OSErr _err = ResError();
-               if (_err != noErr) return PyMac_Error(_err);
-       }
-       _res = Py_BuildValue("l",
-                            _rv);
-       return _res;
-}
-
-#if !TARGET_API_MAC_CARBON
-
-static PyObject *ResObj_RsrcMapEntry(_self, _args)
-       ResourceObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       long _rv;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _rv = RsrcMapEntry(_self->ob_itself);
-       {
-               OSErr _err = ResError();
-               if (_err != noErr) return PyMac_Error(_err);
-       }
-       _res = Py_BuildValue("l",
-                            _rv);
-       return _res;
-}
-#endif
-
-static PyObject *ResObj_SetResAttrs(_self, _args)
-       ResourceObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       short attrs;
-       if (!PyArg_ParseTuple(_args, "h",
-                             &attrs))
-               return NULL;
-       SetResAttrs(_self->ob_itself,
-                   attrs);
-       {
-               OSErr _err = ResError();
-               if (_err != noErr) return PyMac_Error(_err);
-       }
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *ResObj_ChangedResource(_self, _args)
-       ResourceObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       ChangedResource(_self->ob_itself);
-       {
-               OSErr _err = ResError();
-               if (_err != noErr) return PyMac_Error(_err);
-       }
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *ResObj_RemoveResource(_self, _args)
-       ResourceObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       RemoveResource(_self->ob_itself);
-       {
-               OSErr _err = ResError();
-               if (_err != noErr) return PyMac_Error(_err);
-       }
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *ResObj_WriteResource(_self, _args)
-       ResourceObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       WriteResource(_self->ob_itself);
-       {
-               OSErr _err = ResError();
-               if (_err != noErr) return PyMac_Error(_err);
-       }
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *ResObj_SetResourceSize(_self, _args)
-       ResourceObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       long newSize;
-       if (!PyArg_ParseTuple(_args, "l",
-                             &newSize))
-               return NULL;
-       SetResourceSize(_self->ob_itself,
-                       newSize);
-       {
-               OSErr _err = ResError();
-               if (_err != noErr) return PyMac_Error(_err);
-       }
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *ResObj_GetNextFOND(_self, _args)
-       ResourceObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Handle _rv;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _rv = GetNextFOND(_self->ob_itself);
-       {
-               OSErr _err = ResError();
-               if (_err != noErr) return PyMac_Error(_err);
-       }
-       _res = Py_BuildValue("O&",
-                            ResObj_New, _rv);
-       return _res;
-}
-
-static PyObject *ResObj_as_Control(_self, _args)
-       ResourceObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-
-       return CtlObj_New((ControlHandle)_self->ob_itself);
-
-}
-
-static PyObject *ResObj_as_Menu(_self, _args)
-       ResourceObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-
-       return MenuObj_New((MenuHandle)_self->ob_itself);
-
-}
-
-static PyObject *ResObj_LoadResource(_self, _args)
-       ResourceObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       LoadResource(_self->ob_itself);
-       {
-               OSErr _err = ResError();
-               if (_err != noErr) return PyMac_Error(_err);
-       }
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *ResObj_AutoDispose(_self, _args)
-       ResourceObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-
-       int onoff, old = 0;
-       if (!PyArg_ParseTuple(_args, "i", &onoff))
-               return NULL;
-       if ( _self->ob_freeit )
-               old = 1;
-       if ( onoff )
-               _self->ob_freeit = PyMac_AutoDisposeHandle;
-       else
-               _self->ob_freeit = NULL;
-       return Py_BuildValue("i", old);
-
-}
-
-static PyMethodDef ResObj_methods[] = {
-       {"HomeResFile", (PyCFunction)ResObj_HomeResFile, 1,
-        "() -> (short _rv)"},
-       {"MacLoadResource", (PyCFunction)ResObj_MacLoadResource, 1,
-        "() -> None"},
-       {"ReleaseResource", (PyCFunction)ResObj_ReleaseResource, 1,
-        "() -> None"},
-       {"DetachResource", (PyCFunction)ResObj_DetachResource, 1,
-        "() -> None"},
-       {"GetResAttrs", (PyCFunction)ResObj_GetResAttrs, 1,
-        "() -> (short _rv)"},
-       {"GetResInfo", (PyCFunction)ResObj_GetResInfo, 1,
-        "() -> (short theID, ResType theType, Str255 name)"},
-       {"SetResInfo", (PyCFunction)ResObj_SetResInfo, 1,
-        "(short theID, Str255 name) -> None"},
-       {"AddResource", (PyCFunction)ResObj_AddResource, 1,
-        "(ResType theType, short theID, Str255 name) -> None"},
-       {"GetResourceSizeOnDisk", (PyCFunction)ResObj_GetResourceSizeOnDisk, 1,
-        "() -> (long _rv)"},
-       {"GetMaxResourceSize", (PyCFunction)ResObj_GetMaxResourceSize, 1,
-        "() -> (long _rv)"},
-
-#if !TARGET_API_MAC_CARBON
-       {"RsrcMapEntry", (PyCFunction)ResObj_RsrcMapEntry, 1,
-        "() -> (long _rv)"},
-#endif
-       {"SetResAttrs", (PyCFunction)ResObj_SetResAttrs, 1,
-        "(short attrs) -> None"},
-       {"ChangedResource", (PyCFunction)ResObj_ChangedResource, 1,
-        "() -> None"},
-       {"RemoveResource", (PyCFunction)ResObj_RemoveResource, 1,
-        "() -> None"},
-       {"WriteResource", (PyCFunction)ResObj_WriteResource, 1,
-        "() -> None"},
-       {"SetResourceSize", (PyCFunction)ResObj_SetResourceSize, 1,
-        "(long newSize) -> None"},
-       {"GetNextFOND", (PyCFunction)ResObj_GetNextFOND, 1,
-        "() -> (Handle _rv)"},
-       {"as_Control", (PyCFunction)ResObj_as_Control, 1,
-        "Return this resource/handle as a Control"},
-       {"as_Menu", (PyCFunction)ResObj_as_Menu, 1,
-        "Return this resource/handle as a Menu"},
-       {"LoadResource", (PyCFunction)ResObj_LoadResource, 1,
-        "() -> None"},
-       {"AutoDispose", (PyCFunction)ResObj_AutoDispose, 1,
-        "(int)->int. Automatically DisposeHandle the object on Python object cleanup"},
-       {NULL, NULL, 0}
-};
-
-PyMethodChain ResObj_chain = { ResObj_methods, NULL };
-
-static PyObject *ResObj_getattr(self, name)
-       ResourceObject *self;
-       char *name;
-{
-
-       if (strcmp(name, "size") == 0)
-               return PyInt_FromLong(GetHandleSize(self->ob_itself));
-       if (strcmp(name, "data") == 0) {
-               PyObject *res;
-               char state;
-               state = HGetState(self->ob_itself);
-               HLock(self->ob_itself);
-               res = PyString_FromStringAndSize(
-                       *self->ob_itself,
-                       GetHandleSize(self->ob_itself));
-               HUnlock(self->ob_itself);
-               HSetState(self->ob_itself, state);
-               return res;
-       }
-       if (strcmp(name, "__members__") == 0)
-               return Py_BuildValue("[ss]", "data", "size");
-
-       return Py_FindMethodInChain(&ResObj_chain, (PyObject *)self, name);
-}
-
-static int
-ResObj_setattr(self, name, value)
-       ResourceObject *self;
-       char *name;
-       PyObject *value;
-{
-       char *data;
-       long size;
-       
-       if (strcmp(name, "data") != 0 || value == NULL )
-               return -1;
-       if ( !PyString_Check(value) )
-               return -1;
-       size = PyString_Size(value);
-       data = PyString_AsString(value);
-       /* XXXX Do I need the GetState/SetState calls? */
-       SetHandleSize(self->ob_itself, size);
-       if ( MemError())
-               return -1;
-       HLock(self->ob_itself);
-       memcpy((char *)*self->ob_itself, data, size);
-       HUnlock(self->ob_itself);
-       /* XXXX Should I do the Changed call immedeately? */
-       return 0;
-}
-
-
-#define ResObj_compare NULL
-
-#define ResObj_repr NULL
-
-#define ResObj_hash NULL
-
-PyTypeObject Resource_Type = {
-       PyObject_HEAD_INIT(&PyType_Type)
-       0, /*ob_size*/
-       "Resource", /*tp_name*/
-       sizeof(ResourceObject), /*tp_basicsize*/
-       0, /*tp_itemsize*/
-       /* methods */
-       (destructor) ResObj_dealloc, /*tp_dealloc*/
-       0, /*tp_print*/
-       (getattrfunc) ResObj_getattr, /*tp_getattr*/
-       (setattrfunc) ResObj_setattr, /*tp_setattr*/
-       (cmpfunc) ResObj_compare, /*tp_compare*/
-       (reprfunc) ResObj_repr, /*tp_repr*/
-       (PyNumberMethods *)0, /* tp_as_number */
-       (PySequenceMethods *)0, /* tp_as_sequence */
-       (PyMappingMethods *)0, /* tp_as_mapping */
-       (hashfunc) ResObj_hash, /*tp_hash*/
-};
-
-/* -------------------- End object type Resource -------------------- */
-
-
-#if !TARGET_API_MAC_CARBON
-
-static PyObject *Res_InitResources(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       short _rv;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _rv = InitResources();
-       {
-               OSErr _err = ResError();
-               if (_err != noErr) return PyMac_Error(_err);
-       }
-       _res = Py_BuildValue("h",
-                            _rv);
-       return _res;
-}
-#endif
-
-#if !TARGET_API_MAC_CARBON
-
-static PyObject *Res_RsrcZoneInit(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       RsrcZoneInit();
-       {
-               OSErr _err = ResError();
-               if (_err != noErr) return PyMac_Error(_err);
-       }
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-#endif
-
-static PyObject *Res_CloseResFile(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       short refNum;
-       if (!PyArg_ParseTuple(_args, "h",
-                             &refNum))
-               return NULL;
-       CloseResFile(refNum);
-       {
-               OSErr _err = ResError();
-               if (_err != noErr) return PyMac_Error(_err);
-       }
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *Res_ResError(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _rv;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _rv = ResError();
-       {
-               OSErr _err = ResError();
-               if (_err != noErr) return PyMac_Error(_err);
-       }
-       _res = Py_BuildValue("h",
-                            _rv);
-       return _res;
-}
-
-static PyObject *Res_CurResFile(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       short _rv;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _rv = CurResFile();
-       {
-               OSErr _err = ResError();
-               if (_err != noErr) return PyMac_Error(_err);
-       }
-       _res = Py_BuildValue("h",
-                            _rv);
-       return _res;
-}
-
-#if !TARGET_API_MAC_CARBON
-
-static PyObject *Res_CreateResFile(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Str255 fileName;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             PyMac_GetStr255, fileName))
-               return NULL;
-       CreateResFile(fileName);
-       {
-               OSErr _err = ResError();
-               if (_err != noErr) return PyMac_Error(_err);
-       }
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-#endif
-
-#if !TARGET_API_MAC_CARBON
-
-static PyObject *Res_OpenResFile(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       short _rv;
-       Str255 fileName;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             PyMac_GetStr255, fileName))
-               return NULL;
-       _rv = OpenResFile(fileName);
-       {
-               OSErr _err = ResError();
-               if (_err != noErr) return PyMac_Error(_err);
-       }
-       _res = Py_BuildValue("h",
-                            _rv);
-       return _res;
-}
-#endif
-
-static PyObject *Res_UseResFile(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       short refNum;
-       if (!PyArg_ParseTuple(_args, "h",
-                             &refNum))
-               return NULL;
-       UseResFile(refNum);
-       {
-               OSErr _err = ResError();
-               if (_err != noErr) return PyMac_Error(_err);
-       }
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *Res_CountTypes(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       short _rv;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _rv = CountTypes();
-       {
-               OSErr _err = ResError();
-               if (_err != noErr) return PyMac_Error(_err);
-       }
-       _res = Py_BuildValue("h",
-                            _rv);
-       return _res;
-}
-
-static PyObject *Res_Count1Types(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       short _rv;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _rv = Count1Types();
-       {
-               OSErr _err = ResError();
-               if (_err != noErr) return PyMac_Error(_err);
-       }
-       _res = Py_BuildValue("h",
-                            _rv);
-       return _res;
-}
-
-static PyObject *Res_GetIndType(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       ResType theType;
-       short index;
-       if (!PyArg_ParseTuple(_args, "h",
-                             &index))
-               return NULL;
-       GetIndType(&theType,
-                  index);
-       {
-               OSErr _err = ResError();
-               if (_err != noErr) return PyMac_Error(_err);
-       }
-       _res = Py_BuildValue("O&",
-                            PyMac_BuildOSType, theType);
-       return _res;
-}
-
-static PyObject *Res_Get1IndType(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       ResType theType;
-       short index;
-       if (!PyArg_ParseTuple(_args, "h",
-                             &index))
-               return NULL;
-       Get1IndType(&theType,
-                   index);
-       {
-               OSErr _err = ResError();
-               if (_err != noErr) return PyMac_Error(_err);
-       }
-       _res = Py_BuildValue("O&",
-                            PyMac_BuildOSType, theType);
-       return _res;
-}
-
-static PyObject *Res_SetResLoad(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Boolean load;
-       if (!PyArg_ParseTuple(_args, "b",
-                             &load))
-               return NULL;
-       SetResLoad(load);
-       {
-               OSErr _err = ResError();
-               if (_err != noErr) return PyMac_Error(_err);
-       }
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *Res_CountResources(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       short _rv;
-       ResType theType;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             PyMac_GetOSType, &theType))
-               return NULL;
-       _rv = CountResources(theType);
-       {
-               OSErr _err = ResError();
-               if (_err != noErr) return PyMac_Error(_err);
-       }
-       _res = Py_BuildValue("h",
-                            _rv);
-       return _res;
-}
-
-static PyObject *Res_Count1Resources(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       short _rv;
-       ResType theType;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             PyMac_GetOSType, &theType))
-               return NULL;
-       _rv = Count1Resources(theType);
-       {
-               OSErr _err = ResError();
-               if (_err != noErr) return PyMac_Error(_err);
-       }
-       _res = Py_BuildValue("h",
-                            _rv);
-       return _res;
-}
-
-static PyObject *Res_GetIndResource(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Handle _rv;
-       ResType theType;
-       short index;
-       if (!PyArg_ParseTuple(_args, "O&h",
-                             PyMac_GetOSType, &theType,
-                             &index))
-               return NULL;
-       _rv = GetIndResource(theType,
-                            index);
-       {
-               OSErr _err = ResError();
-               if (_err != noErr) return PyMac_Error(_err);
-       }
-       _res = Py_BuildValue("O&",
-                            ResObj_New, _rv);
-       return _res;
-}
-
-static PyObject *Res_Get1IndResource(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Handle _rv;
-       ResType theType;
-       short index;
-       if (!PyArg_ParseTuple(_args, "O&h",
-                             PyMac_GetOSType, &theType,
-                             &index))
-               return NULL;
-       _rv = Get1IndResource(theType,
-                             index);
-       {
-               OSErr _err = ResError();
-               if (_err != noErr) return PyMac_Error(_err);
-       }
-       _res = Py_BuildValue("O&",
-                            ResObj_New, _rv);
-       return _res;
-}
-
-static PyObject *Res_GetResource(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Handle _rv;
-       ResType theType;
-       short theID;
-       if (!PyArg_ParseTuple(_args, "O&h",
-                             PyMac_GetOSType, &theType,
-                             &theID))
-               return NULL;
-       _rv = GetResource(theType,
-                         theID);
-       {
-               OSErr _err = ResError();
-               if (_err != noErr) return PyMac_Error(_err);
-       }
-       _res = Py_BuildValue("O&",
-                            ResObj_New, _rv);
-       return _res;
-}
-
-static PyObject *Res_Get1Resource(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Handle _rv;
-       ResType theType;
-       short theID;
-       if (!PyArg_ParseTuple(_args, "O&h",
-                             PyMac_GetOSType, &theType,
-                             &theID))
-               return NULL;
-       _rv = Get1Resource(theType,
-                          theID);
-       {
-               OSErr _err = ResError();
-               if (_err != noErr) return PyMac_Error(_err);
-       }
-       _res = Py_BuildValue("O&",
-                            ResObj_New, _rv);
-       return _res;
-}
-
-static PyObject *Res_GetNamedResource(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Handle _rv;
-       ResType theType;
-       Str255 name;
-       if (!PyArg_ParseTuple(_args, "O&O&",
-                             PyMac_GetOSType, &theType,
-                             PyMac_GetStr255, name))
-               return NULL;
-       _rv = GetNamedResource(theType,
-                              name);
-       {
-               OSErr _err = ResError();
-               if (_err != noErr) return PyMac_Error(_err);
-       }
-       _res = Py_BuildValue("O&",
-                            ResObj_New, _rv);
-       return _res;
-}
-
-static PyObject *Res_Get1NamedResource(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Handle _rv;
-       ResType theType;
-       Str255 name;
-       if (!PyArg_ParseTuple(_args, "O&O&",
-                             PyMac_GetOSType, &theType,
-                             PyMac_GetStr255, name))
-               return NULL;
-       _rv = Get1NamedResource(theType,
-                               name);
-       {
-               OSErr _err = ResError();
-               if (_err != noErr) return PyMac_Error(_err);
-       }
-       _res = Py_BuildValue("O&",
-                            ResObj_New, _rv);
-       return _res;
-}
-
-static PyObject *Res_UniqueID(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       short _rv;
-       ResType theType;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             PyMac_GetOSType, &theType))
-               return NULL;
-       _rv = UniqueID(theType);
-       {
-               OSErr _err = ResError();
-               if (_err != noErr) return PyMac_Error(_err);
-       }
-       _res = Py_BuildValue("h",
-                            _rv);
-       return _res;
-}
-
-static PyObject *Res_Unique1ID(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       short _rv;
-       ResType theType;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             PyMac_GetOSType, &theType))
-               return NULL;
-       _rv = Unique1ID(theType);
-       {
-               OSErr _err = ResError();
-               if (_err != noErr) return PyMac_Error(_err);
-       }
-       _res = Py_BuildValue("h",
-                            _rv);
-       return _res;
-}
-
-static PyObject *Res_UpdateResFile(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       short refNum;
-       if (!PyArg_ParseTuple(_args, "h",
-                             &refNum))
-               return NULL;
-       UpdateResFile(refNum);
-       {
-               OSErr _err = ResError();
-               if (_err != noErr) return PyMac_Error(_err);
-       }
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *Res_SetResPurge(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Boolean install;
-       if (!PyArg_ParseTuple(_args, "b",
-                             &install))
-               return NULL;
-       SetResPurge(install);
-       {
-               OSErr _err = ResError();
-               if (_err != noErr) return PyMac_Error(_err);
-       }
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *Res_GetResFileAttrs(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       short _rv;
-       short refNum;
-       if (!PyArg_ParseTuple(_args, "h",
-                             &refNum))
-               return NULL;
-       _rv = GetResFileAttrs(refNum);
-       {
-               OSErr _err = ResError();
-               if (_err != noErr) return PyMac_Error(_err);
-       }
-       _res = Py_BuildValue("h",
-                            _rv);
-       return _res;
-}
-
-static PyObject *Res_SetResFileAttrs(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       short refNum;
-       short attrs;
-       if (!PyArg_ParseTuple(_args, "hh",
-                             &refNum,
-                             &attrs))
-               return NULL;
-       SetResFileAttrs(refNum,
-                       attrs);
-       {
-               OSErr _err = ResError();
-               if (_err != noErr) return PyMac_Error(_err);
-       }
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *Res_OpenRFPerm(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       short _rv;
-       Str255 fileName;
-       short vRefNum;
-       SignedByte permission;
-       if (!PyArg_ParseTuple(_args, "O&hb",
-                             PyMac_GetStr255, fileName,
-                             &vRefNum,
-                             &permission))
-               return NULL;
-       _rv = OpenRFPerm(fileName,
-                        vRefNum,
-                        permission);
-       {
-               OSErr _err = ResError();
-               if (_err != noErr) return PyMac_Error(_err);
-       }
-       _res = Py_BuildValue("h",
-                            _rv);
-       return _res;
-}
-
-#if !TARGET_API_MAC_CARBON
-
-static PyObject *Res_RGetResource(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Handle _rv;
-       ResType theType;
-       short theID;
-       if (!PyArg_ParseTuple(_args, "O&h",
-                             PyMac_GetOSType, &theType,
-                             &theID))
-               return NULL;
-       _rv = RGetResource(theType,
-                          theID);
-       {
-               OSErr _err = ResError();
-               if (_err != noErr) return PyMac_Error(_err);
-       }
-       _res = Py_BuildValue("O&",
-                            ResObj_New, _rv);
-       return _res;
-}
-#endif
-
-static PyObject *Res_HOpenResFile(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       short _rv;
-       short vRefNum;
-       long dirID;
-       Str255 fileName;
-       SignedByte permission;
-       if (!PyArg_ParseTuple(_args, "hlO&b",
-                             &vRefNum,
-                             &dirID,
-                             PyMac_GetStr255, fileName,
-                             &permission))
-               return NULL;
-       _rv = HOpenResFile(vRefNum,
-                          dirID,
-                          fileName,
-                          permission);
-       {
-               OSErr _err = ResError();
-               if (_err != noErr) return PyMac_Error(_err);
-       }
-       _res = Py_BuildValue("h",
-                            _rv);
-       return _res;
-}
-
-static PyObject *Res_HCreateResFile(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       short vRefNum;
-       long dirID;
-       Str255 fileName;
-       if (!PyArg_ParseTuple(_args, "hlO&",
-                             &vRefNum,
-                             &dirID,
-                             PyMac_GetStr255, fileName))
-               return NULL;
-       HCreateResFile(vRefNum,
-                      dirID,
-                      fileName);
-       {
-               OSErr _err = ResError();
-               if (_err != noErr) return PyMac_Error(_err);
-       }
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *Res_FSpOpenResFile(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       short _rv;
-       FSSpec spec;
-       SignedByte permission;
-       if (!PyArg_ParseTuple(_args, "O&b",
-                             PyMac_GetFSSpec, &spec,
-                             &permission))
-               return NULL;
-       _rv = FSpOpenResFile(&spec,
-                            permission);
-       {
-               OSErr _err = ResError();
-               if (_err != noErr) return PyMac_Error(_err);
-       }
-       _res = Py_BuildValue("h",
-                            _rv);
-       return _res;
-}
-
-static PyObject *Res_FSpCreateResFile(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       FSSpec spec;
-       OSType creator;
-       OSType fileType;
-       ScriptCode scriptTag;
-       if (!PyArg_ParseTuple(_args, "O&O&O&h",
-                             PyMac_GetFSSpec, &spec,
-                             PyMac_GetOSType, &creator,
-                             PyMac_GetOSType, &fileType,
-                             &scriptTag))
-               return NULL;
-       FSpCreateResFile(&spec,
-                        creator,
-                        fileType,
-                        scriptTag);
-       {
-               OSErr _err = ResError();
-               if (_err != noErr) return PyMac_Error(_err);
-       }
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-#if TARGET_API_MAC_CARBON
-
-static PyObject *Res_InsertResourceFile(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _rv;
-       SInt16 refNum;
-       RsrcChainLocation where;
-       if (!PyArg_ParseTuple(_args, "hh",
-                             &refNum,
-                             &where))
-               return NULL;
-       _rv = InsertResourceFile(refNum,
-                                where);
-       {
-               OSErr _err = ResError();
-               if (_err != noErr) return PyMac_Error(_err);
-       }
-       _res = Py_BuildValue("h",
-                            _rv);
-       return _res;
-}
-#endif
-
-#if TARGET_API_MAC_CARBON
-
-static PyObject *Res_DetachResourceFile(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _rv;
-       SInt16 refNum;
-       if (!PyArg_ParseTuple(_args, "h",
-                             &refNum))
-               return NULL;
-       _rv = DetachResourceFile(refNum);
-       {
-               OSErr _err = ResError();
-               if (_err != noErr) return PyMac_Error(_err);
-       }
-       _res = Py_BuildValue("h",
-                            _rv);
-       return _res;
-}
-#endif
-
-#if TARGET_API_MAC_CARBON
-
-static PyObject *Res_FSpResourceFileAlreadyOpen(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Boolean _rv;
-       FSSpec resourceFile;
-       Boolean inChain;
-       SInt16 refNum;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             PyMac_GetFSSpec, &resourceFile))
-               return NULL;
-       _rv = FSpResourceFileAlreadyOpen(&resourceFile,
-                                        &inChain,
-                                        &refNum);
-       {
-               OSErr _err = ResError();
-               if (_err != noErr) return PyMac_Error(_err);
-       }
-       _res = Py_BuildValue("bbh",
-                            _rv,
-                            inChain,
-                            refNum);
-       return _res;
-}
-#endif
-
-#if TARGET_API_MAC_CARBON
-
-static PyObject *Res_FSpOpenOrphanResFile(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _rv;
-       FSSpec spec;
-       SignedByte permission;
-       SInt16 refNum;
-       if (!PyArg_ParseTuple(_args, "O&b",
-                             PyMac_GetFSSpec, &spec,
-                             &permission))
-               return NULL;
-       _rv = FSpOpenOrphanResFile(&spec,
-                                  permission,
-                                  &refNum);
-       {
-               OSErr _err = ResError();
-               if (_err != noErr) return PyMac_Error(_err);
-       }
-       _res = Py_BuildValue("hh",
-                            _rv,
-                            refNum);
-       return _res;
-}
-#endif
-
-#if TARGET_API_MAC_CARBON
-
-static PyObject *Res_GetTopResourceFile(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _rv;
-       SInt16 refNum;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _rv = GetTopResourceFile(&refNum);
-       {
-               OSErr _err = ResError();
-               if (_err != noErr) return PyMac_Error(_err);
-       }
-       _res = Py_BuildValue("hh",
-                            _rv,
-                            refNum);
-       return _res;
-}
-#endif
-
-#if TARGET_API_MAC_CARBON
-
-static PyObject *Res_GetNextResourceFile(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _rv;
-       SInt16 curRefNum;
-       SInt16 nextRefNum;
-       if (!PyArg_ParseTuple(_args, "h",
-                             &curRefNum))
-               return NULL;
-       _rv = GetNextResourceFile(curRefNum,
-                                 &nextRefNum);
-       {
-               OSErr _err = ResError();
-               if (_err != noErr) return PyMac_Error(_err);
-       }
-       _res = Py_BuildValue("hh",
-                            _rv,
-                            nextRefNum);
-       return _res;
-}
-#endif
-
-static PyObject *Res_Resource(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-
-       char *buf;
-       int len;
-       Handle h;
-
-       if (!PyArg_ParseTuple(_args, "s#", &buf, &len))
-               return NULL;
-       h = NewHandle(len);
-       if ( h == NULL ) {
-               PyErr_NoMemory();
-               return NULL;
-       }
-       HLock(h);
-       memcpy(*h, buf, len);
-       HUnlock(h);
-       return ResObj_New(h);
-
-}
-
-static PyObject *Res_Handle(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-
-       char *buf;
-       int len;
-       Handle h;
-       ResourceObject *rv;
-
-       if (!PyArg_ParseTuple(_args, "s#", &buf, &len))
-               return NULL;
-       h = NewHandle(len);
-       if ( h == NULL ) {
-               PyErr_NoMemory();
-               return NULL;
-       }
-       HLock(h);
-       memcpy(*h, buf, len);
-       HUnlock(h);
-       rv = (ResourceObject *)ResObj_New(h);
-       rv->ob_freeit = PyMac_AutoDisposeHandle;
-       return (PyObject *)rv;
-
-}
-
-static PyMethodDef Res_methods[] = {
-
-#if !TARGET_API_MAC_CARBON
-       {"InitResources", (PyCFunction)Res_InitResources, 1,
-        "() -> (short _rv)"},
-#endif
-
-#if !TARGET_API_MAC_CARBON
-       {"RsrcZoneInit", (PyCFunction)Res_RsrcZoneInit, 1,
-        "() -> None"},
-#endif
-       {"CloseResFile", (PyCFunction)Res_CloseResFile, 1,
-        "(short refNum) -> None"},
-       {"ResError", (PyCFunction)Res_ResError, 1,
-        "() -> (OSErr _rv)"},
-       {"CurResFile", (PyCFunction)Res_CurResFile, 1,
-        "() -> (short _rv)"},
-
-#if !TARGET_API_MAC_CARBON
-       {"CreateResFile", (PyCFunction)Res_CreateResFile, 1,
-        "(Str255 fileName) -> None"},
-#endif
-
-#if !TARGET_API_MAC_CARBON
-       {"OpenResFile", (PyCFunction)Res_OpenResFile, 1,
-        "(Str255 fileName) -> (short _rv)"},
-#endif
-       {"UseResFile", (PyCFunction)Res_UseResFile, 1,
-        "(short refNum) -> None"},
-       {"CountTypes", (PyCFunction)Res_CountTypes, 1,
-        "() -> (short _rv)"},
-       {"Count1Types", (PyCFunction)Res_Count1Types, 1,
-        "() -> (short _rv)"},
-       {"GetIndType", (PyCFunction)Res_GetIndType, 1,
-        "(short index) -> (ResType theType)"},
-       {"Get1IndType", (PyCFunction)Res_Get1IndType, 1,
-        "(short index) -> (ResType theType)"},
-       {"SetResLoad", (PyCFunction)Res_SetResLoad, 1,
-        "(Boolean load) -> None"},
-       {"CountResources", (PyCFunction)Res_CountResources, 1,
-        "(ResType theType) -> (short _rv)"},
-       {"Count1Resources", (PyCFunction)Res_Count1Resources, 1,
-        "(ResType theType) -> (short _rv)"},
-       {"GetIndResource", (PyCFunction)Res_GetIndResource, 1,
-        "(ResType theType, short index) -> (Handle _rv)"},
-       {"Get1IndResource", (PyCFunction)Res_Get1IndResource, 1,
-        "(ResType theType, short index) -> (Handle _rv)"},
-       {"GetResource", (PyCFunction)Res_GetResource, 1,
-        "(ResType theType, short theID) -> (Handle _rv)"},
-       {"Get1Resource", (PyCFunction)Res_Get1Resource, 1,
-        "(ResType theType, short theID) -> (Handle _rv)"},
-       {"GetNamedResource", (PyCFunction)Res_GetNamedResource, 1,
-        "(ResType theType, Str255 name) -> (Handle _rv)"},
-       {"Get1NamedResource", (PyCFunction)Res_Get1NamedResource, 1,
-        "(ResType theType, Str255 name) -> (Handle _rv)"},
-       {"UniqueID", (PyCFunction)Res_UniqueID, 1,
-        "(ResType theType) -> (short _rv)"},
-       {"Unique1ID", (PyCFunction)Res_Unique1ID, 1,
-        "(ResType theType) -> (short _rv)"},
-       {"UpdateResFile", (PyCFunction)Res_UpdateResFile, 1,
-        "(short refNum) -> None"},
-       {"SetResPurge", (PyCFunction)Res_SetResPurge, 1,
-        "(Boolean install) -> None"},
-       {"GetResFileAttrs", (PyCFunction)Res_GetResFileAttrs, 1,
-        "(short refNum) -> (short _rv)"},
-       {"SetResFileAttrs", (PyCFunction)Res_SetResFileAttrs, 1,
-        "(short refNum, short attrs) -> None"},
-       {"OpenRFPerm", (PyCFunction)Res_OpenRFPerm, 1,
-        "(Str255 fileName, short vRefNum, SignedByte permission) -> (short _rv)"},
-
-#if !TARGET_API_MAC_CARBON
-       {"RGetResource", (PyCFunction)Res_RGetResource, 1,
-        "(ResType theType, short theID) -> (Handle _rv)"},
-#endif
-       {"HOpenResFile", (PyCFunction)Res_HOpenResFile, 1,
-        "(short vRefNum, long dirID, Str255 fileName, SignedByte permission) -> (short _rv)"},
-       {"HCreateResFile", (PyCFunction)Res_HCreateResFile, 1,
-        "(short vRefNum, long dirID, Str255 fileName) -> None"},
-       {"FSpOpenResFile", (PyCFunction)Res_FSpOpenResFile, 1,
-        "(FSSpec spec, SignedByte permission) -> (short _rv)"},
-       {"FSpCreateResFile", (PyCFunction)Res_FSpCreateResFile, 1,
-        "(FSSpec spec, OSType creator, OSType fileType, ScriptCode scriptTag) -> None"},
-
-#if TARGET_API_MAC_CARBON
-       {"InsertResourceFile", (PyCFunction)Res_InsertResourceFile, 1,
-        "(SInt16 refNum, RsrcChainLocation where) -> (OSErr _rv)"},
-#endif
-
-#if TARGET_API_MAC_CARBON
-       {"DetachResourceFile", (PyCFunction)Res_DetachResourceFile, 1,
-        "(SInt16 refNum) -> (OSErr _rv)"},
-#endif
-
-#if TARGET_API_MAC_CARBON
-       {"FSpResourceFileAlreadyOpen", (PyCFunction)Res_FSpResourceFileAlreadyOpen, 1,
-        "(FSSpec resourceFile) -> (Boolean _rv, Boolean inChain, SInt16 refNum)"},
-#endif
-
-#if TARGET_API_MAC_CARBON
-       {"FSpOpenOrphanResFile", (PyCFunction)Res_FSpOpenOrphanResFile, 1,
-        "(FSSpec spec, SignedByte permission) -> (OSErr _rv, SInt16 refNum)"},
-#endif
-
-#if TARGET_API_MAC_CARBON
-       {"GetTopResourceFile", (PyCFunction)Res_GetTopResourceFile, 1,
-        "() -> (OSErr _rv, SInt16 refNum)"},
-#endif
-
-#if TARGET_API_MAC_CARBON
-       {"GetNextResourceFile", (PyCFunction)Res_GetNextResourceFile, 1,
-        "(SInt16 curRefNum) -> (OSErr _rv, SInt16 nextRefNum)"},
-#endif
-       {"Resource", (PyCFunction)Res_Resource, 1,
-        "Convert a string to a resource object.\n\nThe created resource object is actually just a handle,\napply AddResource() to write it to a resource file.\nSee also the Handle() docstring.\n"},
-       {"Handle", (PyCFunction)Res_Handle, 1,
-        "Convert a string to a Handle object.\n\nResource() and Handle() are very similar, but objects created with Handle() are\nby default automatically DisposeHandle()d upon object cleanup. Use AutoDispose()\nto change this.\n"},
-       {NULL, NULL, 0}
-};
-
-
-
-
-/* Alternative version of ResObj_New, which returns None for null argument */
-PyObject *OptResObj_New(itself)
-       Handle itself;
-{
-       if (itself == NULL) {
-               Py_INCREF(Py_None);
-               return Py_None;
-       }
-       return ResObj_New(itself);
-}
-
-OptResObj_Convert(v, p_itself)
-       PyObject *v;
-       Handle *p_itself;
-{
-       PyObject *tmp;
-       
-       if ( v == Py_None ) {
-               *p_itself = NULL;
-               return 1;
-       }
-       if (ResObj_Check(v))
-       {
-               *p_itself = ((ResourceObject *)v)->ob_itself;
-               return 1;
-       }
-       /* If it isn't a resource yet see whether it is convertible */
-       if ( (tmp=PyObject_CallMethod(v, "as_Resource", "")) ) {
-               *p_itself = ((ResourceObject *)tmp)->ob_itself;
-               Py_DECREF(tmp);
-               return 1;
-       }
-       PyErr_Clear();
-       PyErr_SetString(PyExc_TypeError, "Resource required");
-       return 0;
-}
-
-
-void initRes()
-{
-       PyObject *m;
-       PyObject *d;
-
-
-
-
-
-       m = Py_InitModule("Res", Res_methods);
-       d = PyModule_GetDict(m);
-       Res_Error = PyMac_GetOSErrException();
-       if (Res_Error == NULL ||
-           PyDict_SetItemString(d, "Error", Res_Error) != 0)
-               return;
-       Resource_Type.ob_type = &PyType_Type;
-       Py_INCREF(&Resource_Type);
-       if (PyDict_SetItemString(d, "ResourceType", (PyObject *)&Resource_Type) != 0)
-               Py_FatalError("can't initialize ResourceType");
-}
-
-/* ========================= End module Res ========================= */
-
diff --git a/Mac/Modules/res/resscan.py b/Mac/Modules/res/resscan.py
deleted file mode 100644 (file)
index 544e303..0000000
+++ /dev/null
@@ -1,89 +0,0 @@
-# Scan Resources.h header file, generate resgen.py and Resources.py files.
-# Then run ressupport to generate Resmodule.c.
-# (Should learn how to tell the compiler to compile it as well.)
-
-import sys
-import os
-import string
-import regsub
-import MacOS
-
-BGENDIR=os.path.join(sys.prefix, ':Tools:bgen:bgen')
-sys.path.append(BGENDIR)
-from bgenlocations import TOOLBOXDIR
-
-from scantools import Scanner
-
-def main():
-       input = "Resources.h"
-       output = "resgen.py"
-       defsoutput = TOOLBOXDIR + "Resources.py"
-       scanner = ResourcesScanner(input, output, defsoutput)
-       scanner.scan()
-       scanner.close()
-       print "=== Done scanning and generating, now doing 'import ressupport' ==="
-       import ressupport
-       print "=== Done 'import ressupport'.  It's up to you to compile Resmodule.c ==="
-
-class ResourcesScanner(Scanner):
-
-       def destination(self, type, name, arglist):
-               classname = "ResFunction"
-               listname = "functions"
-               if arglist:
-                       t, n, m = arglist[0]
-                       if t == "Handle" and m == "InMode":
-                               classname = "ResMethod"
-                               listname = "resmethods"
-               return classname, listname
-
-       def makeblacklistnames(self):
-               return [
-                       "ReadPartialResource",
-                       "WritePartialResource",
-                       "TempInsertROMMap",
-##                     "RmveResource",         # RemoveResource
-##                     "SizeResource",         # GetResourceSizeOnDisk
-##                     "MaxSizeRsrc",          # GetMaxResourceSize
-                       ]
-                       
-       def makegreylist(self):
-               return [
-                       ('#if !TARGET_API_MAC_CARBON', [
-                               'RGetResource',
-                               'OpenResFile',
-                               'CreateResFile',
-                               'RsrcZoneInit',
-                               'InitResources',
-                               'RsrcMapEntry',
-                       ]),
-                       ('#if TARGET_API_MAC_CARBON', [
-                               'GetNextResourceFile',
-                               'GetTopResourceFile',
-                               'FSpOpenOrphanResFile',
-                               'DetachResourceFile',
-                               'InsertResourceFile',
-                               'FSpResourceFileAlreadyOpen',
-                       ])]
-
-       def makerepairinstructions(self):
-               return [
-                       ([("Str255", "*", "InMode")],
-                        [("*", "*", "OutMode")]),
-                       
-                       ([("void_ptr", "*", "InMode"), ("long", "*", "InMode")],
-                        [("InBuffer", "*", "*")]),
-                       
-                       ([("void", "*", "OutMode"), ("long", "*", "InMode")],
-                        [("InOutBuffer", "*", "*")]),
-                       
-                       ([("void", "*", "OutMode"), ("long", "*", "InMode"),
-                                                   ("long", "*", "OutMode")],
-                        [("OutBuffer", "*", "InOutMode")]),
-                        
-                       ([("SInt8", "*", "*")],
-                        [("SignedByte", "*", "*")])
-                       ]
-
-if __name__ == "__main__":
-       main()
diff --git a/Mac/Modules/res/ressupport.py b/Mac/Modules/res/ressupport.py
deleted file mode 100644 (file)
index fcee62e..0000000
+++ /dev/null
@@ -1,183 +0,0 @@
-# This script will generate the Resources interface for Python.
-# It uses the "bgen" package to generate C code.
-# It execs the file resgen.py which contain the function definitions
-# (resgen.py was generated by resscan.py, scanning the <Resources.h> header file).
-
-from macsupport import *
-
-
-class ResMixIn:
-
-       def checkit(self):
-               OutLbrace()
-               Output("OSErr _err = ResError();")
-               Output("if (_err != noErr) return PyMac_Error(_err);")
-               OutRbrace()
-               FunctionGenerator.checkit(self) # XXX
-
-class ResFunction(ResMixIn, FunctionGenerator): pass
-class ResMethod(ResMixIn, MethodGenerator): pass
-
-RsrcChainLocation = Type("RsrcChainLocation", "h")
-
-# includestuff etc. are imported from macsupport
-
-includestuff = includestuff + """
-#include <Resources.h>
-#include <string.h>
-
-/* Function to dispose a resource, with a "normal" calling sequence */
-static void
-PyMac_AutoDisposeHandle(Handle h)
-{
-       DisposeHandle(h);
-}
-"""
-
-finalstuff = finalstuff + """
-
-/* Alternative version of ResObj_New, which returns None for null argument */
-PyObject *OptResObj_New(itself)
-       Handle itself;
-{
-       if (itself == NULL) {
-               Py_INCREF(Py_None);
-               return Py_None;
-       }
-       return ResObj_New(itself);
-}
-
-OptResObj_Convert(v, p_itself)
-       PyObject *v;
-       Handle *p_itself;
-{
-       PyObject *tmp;
-       
-       if ( v == Py_None ) {
-               *p_itself = NULL;
-               return 1;
-       }
-       if (ResObj_Check(v))
-       {
-               *p_itself = ((ResourceObject *)v)->ob_itself;
-               return 1;
-       }
-       /* If it isn't a resource yet see whether it is convertible */
-       if ( (tmp=PyObject_CallMethod(v, "as_Resource", "")) ) {
-               *p_itself = ((ResourceObject *)tmp)->ob_itself;
-               Py_DECREF(tmp);
-               return 1;
-       }
-       PyErr_Clear();
-       PyErr_SetString(PyExc_TypeError, "Resource required");
-       return 0;
-}
-"""
-
-initstuff = initstuff + """
-"""
-
-module = MacModule('Res', 'Res', includestuff, finalstuff, initstuff)
-
-getattrHookCode = """
-if (strcmp(name, "size") == 0)
-       return PyInt_FromLong(GetHandleSize(self->ob_itself));
-if (strcmp(name, "data") == 0) {
-       PyObject *res;
-       char state;
-       state = HGetState(self->ob_itself);
-       HLock(self->ob_itself);
-       res = PyString_FromStringAndSize(
-               *self->ob_itself,
-               GetHandleSize(self->ob_itself));
-       HUnlock(self->ob_itself);
-       HSetState(self->ob_itself, state);
-       return res;
-}
-if (strcmp(name, "__members__") == 0)
-       return Py_BuildValue("[ss]", "data", "size");
-"""
-
-setattrCode = """
-static int
-ResObj_setattr(self, name, value)
-       ResourceObject *self;
-       char *name;
-       PyObject *value;
-{
-       char *data;
-       long size;
-       
-       if (strcmp(name, "data") != 0 || value == NULL )
-               return -1;
-       if ( !PyString_Check(value) )
-               return -1;
-       size = PyString_Size(value);
-       data = PyString_AsString(value);
-       /* XXXX Do I need the GetState/SetState calls? */
-       SetHandleSize(self->ob_itself, size);
-       if ( MemError())
-               return -1;
-       HLock(self->ob_itself);
-       memcpy((char *)*self->ob_itself, data, size);
-       HUnlock(self->ob_itself);
-       /* XXXX Should I do the Changed call immedeately? */
-       return 0;
-}
-"""
-
-class ResDefinition(GlobalObjectDefinition):
-
-       def outputCheckNewArg(self):
-               Output("if (itself == NULL) return PyMac_Error(resNotFound);")
-               
-       def outputCheckConvertArg(self):
-               # if it isn't a resource we may be able to coerce it
-               Output("if (!%s_Check(v))", self.prefix)
-               OutLbrace()
-               Output("PyObject *tmp;")
-               Output('if ( (tmp=PyObject_CallMethod(v, "as_Resource", "")) )')
-               OutLbrace()
-               Output("*p_itself = ((ResourceObject *)tmp)->ob_itself;")
-               Output("Py_DECREF(tmp);")
-               Output("return 1;")
-               OutRbrace()
-               Output("PyErr_Clear();")
-               OutRbrace()
-
-       def outputGetattrHook(self):
-               Output(getattrHookCode)
-               
-       def outputSetattr(self):
-               Output(setattrCode)
-
-       def outputStructMembers(self):
-               GlobalObjectDefinition.outputStructMembers(self)
-               Output("void (*ob_freeit)(%s ptr);", self.itselftype)
-               
-       def outputInitStructMembers(self):
-               GlobalObjectDefinition.outputInitStructMembers(self)
-               Output("it->ob_freeit = NULL;")
-               
-       def outputCleanupStructMembers(self):
-               Output("if (self->ob_freeit && self->ob_itself)")
-               OutLbrace()
-               Output("self->ob_freeit(self->ob_itself);")
-               OutRbrace()
-               Output("self->ob_itself = NULL;")
-
-
-resobject = ResDefinition('Resource', 'ResObj', 'Handle')
-module.addobject(resobject)
-
-functions = []
-resmethods = []
-
-execfile('resgen.py')
-execfile('resedit.py')
-
-for f in functions: module.add(f)
-for f in resmethods: resobject.add(f)
-
-SetOutputFileName('Resmodule.c')
-module.generate()
diff --git a/Mac/Modules/scrap/Scrapmodule.c b/Mac/Modules/scrap/Scrapmodule.c
deleted file mode 100644 (file)
index 436cbed..0000000
+++ /dev/null
@@ -1,253 +0,0 @@
-
-/* ========================== Module Scrap ========================== */
-
-#include "Python.h"
-
-
-
-#include "macglue.h"
-#include "pymactoolbox.h"
-
-#include <Scrap.h>
-
-/*
-** Generate ScrapInfo records
-*/
-static PyObject *
-SCRRec_New(itself)
-       ScrapStuff *itself;
-{
-
-       return Py_BuildValue("lO&hhO&", itself->scrapSize,
-               ResObj_New, itself->scrapHandle, itself->scrapCount, itself->scrapState,
-               PyMac_BuildStr255, itself->scrapName);
-}
-
-static PyObject *Scrap_Error;
-
-static PyObject *Scrap_LoadScrap(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSStatus _err;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _err = LoadScrap();
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *Scrap_UnloadScrap(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSStatus _err;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _err = UnloadScrap();
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-#if !TARGET_API_MAC_CARBON
-
-static PyObject *Scrap_InfoScrap(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       ScrapStuffPtr _rv;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _rv = InfoScrap();
-       _res = Py_BuildValue("O&",
-                            SCRRec_New, _rv);
-       return _res;
-}
-#endif
-
-#if !TARGET_API_MAC_CARBON
-
-static PyObject *Scrap_GetScrap(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       long _rv;
-       Handle destination;
-       ScrapFlavorType flavorType;
-       SInt32 offset;
-       if (!PyArg_ParseTuple(_args, "O&O&",
-                             ResObj_Convert, &destination,
-                             PyMac_GetOSType, &flavorType))
-               return NULL;
-       _rv = GetScrap(destination,
-                      flavorType,
-                      &offset);
-       _res = Py_BuildValue("ll",
-                            _rv,
-                            offset);
-       return _res;
-}
-#endif
-
-
-static PyObject *Scrap_ZeroScrap(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSStatus _err;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-#if TARGET_API_MAC_CARBON
-       {
-               ScrapRef scrap;
-               
-               _err = ClearCurrentScrap();
-               if (_err != noErr) return PyMac_Error(_err);
-               _err = GetCurrentScrap(&scrap);
-       }
-#else
-       _err = ZeroScrap();
-#endif
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *Scrap_PutScrap(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSStatus _err;
-       SInt32 sourceBufferByteCount;
-       ScrapFlavorType flavorType;
-       char *sourceBuffer__in__;
-       int sourceBuffer__len__;
-       int sourceBuffer__in_len__;
-#if TARGET_API_MAC_CARBON
-       ScrapRef scrap;
-#endif
-
-       if (!PyArg_ParseTuple(_args, "O&s#",
-                             PyMac_GetOSType, &flavorType,
-                             &sourceBuffer__in__, &sourceBuffer__in_len__))
-               return NULL;
-       sourceBufferByteCount = sourceBuffer__in_len__;
-       sourceBuffer__len__ = sourceBuffer__in_len__;
-#if TARGET_API_MAC_CARBON
-       _err = GetCurrentScrap(&scrap);
-       if (_err != noErr) return PyMac_Error(_err);
-       _err = PutScrapFlavor(scrap, flavorType, 0, sourceBufferByteCount, sourceBuffer__in__);
-#else
-       _err = PutScrap(sourceBufferByteCount,
-                       flavorType,
-                       sourceBuffer__in__);
-#endif
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
- sourceBuffer__error__: ;
-       return _res;
-}
-
-#if TARGET_API_MAC_CARBON
-
-static PyObject *Scrap_ClearCurrentScrap(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSStatus _err;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _err = ClearCurrentScrap();
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-#endif
-
-#if TARGET_API_MAC_CARBON
-
-static PyObject *Scrap_CallInScrapPromises(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSStatus _err;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _err = CallInScrapPromises();
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-#endif
-
-static PyMethodDef Scrap_methods[] = {
-       {"LoadScrap", (PyCFunction)Scrap_LoadScrap, 1,
-        "() -> None"},
-       {"UnloadScrap", (PyCFunction)Scrap_UnloadScrap, 1,
-        "() -> None"},
-
-#if !TARGET_API_MAC_CARBON
-       {"InfoScrap", (PyCFunction)Scrap_InfoScrap, 1,
-        "() -> (ScrapStuffPtr _rv)"},
-#endif
-
-#if !TARGET_API_MAC_CARBON
-       {"GetScrap", (PyCFunction)Scrap_GetScrap, 1,
-        "(Handle destination, ScrapFlavorType flavorType) -> (long _rv, SInt32 offset)"},
-#endif
-
-       {"ZeroScrap", (PyCFunction)Scrap_ZeroScrap, 1,
-        "() -> None"},
-
-       {"PutScrap", (PyCFunction)Scrap_PutScrap, 1,
-        "(ScrapFlavorType flavorType, Buffer sourceBuffer) -> None"},
-
-#if TARGET_API_MAC_CARBON
-       {"ClearCurrentScrap", (PyCFunction)Scrap_ClearCurrentScrap, 1,
-        "() -> None"},
-#endif
-
-#if TARGET_API_MAC_CARBON
-       {"CallInScrapPromises", (PyCFunction)Scrap_CallInScrapPromises, 1,
-        "() -> None"},
-#endif
-       {NULL, NULL, 0}
-};
-
-
-
-
-void initScrap()
-{
-       PyObject *m;
-       PyObject *d;
-
-
-
-
-       m = Py_InitModule("Scrap", Scrap_methods);
-       d = PyModule_GetDict(m);
-       Scrap_Error = PyMac_GetOSErrException();
-       if (Scrap_Error == NULL ||
-           PyDict_SetItemString(d, "Error", Scrap_Error) != 0)
-               return;
-}
-
-/* ======================== End module Scrap ======================== */
-
diff --git a/Mac/Modules/scrap/scrapsupport.py b/Mac/Modules/scrap/scrapsupport.py
deleted file mode 100644 (file)
index 1fe9ac2..0000000
+++ /dev/null
@@ -1,62 +0,0 @@
-# This script generates a Python interface for an Apple Macintosh Manager.
-# It uses the "bgen" package to generate C code.
-# The function specifications are generated by scanning the mamager's header file,
-# using the "scantools" package (customized for this particular manager).
-
-# NOTE: the scrap include file is so bad that the bgen output has to be
-# massaged by hand.
-
-import string
-
-# Declarations that change for each manager
-MACHEADERFILE = 'Scrap.h'              # The Apple header file
-MODNAME = 'Scrap'                              # The name of the module
-
-# The following is *usually* unchanged but may still require tuning
-MODPREFIX = MODNAME                    # The prefix for module-wide routines
-INPUTFILE = string.lower(MODPREFIX) + 'gen.py' # The file generated by the scanner
-OUTPUTFILE = '@' + MODNAME + "module.c"        # The file generated by this program
-
-from macsupport import *
-
-# Create the type objects
-
-includestuff = includestuff + """
-#include <%s>""" % MACHEADERFILE + """
-
-/*
-** Generate ScrapInfo records
-*/
-static PyObject *
-SCRRec_New(itself)
-       ScrapStuff *itself;
-{
-
-       return Py_BuildValue("lO&hhO&", itself->scrapSize,
-               ResObj_New, itself->scrapHandle, itself->scrapCount, itself->scrapState,
-               PyMac_BuildStr255, itself->scrapName);
-}
-"""
-
-ScrapStuffPtr = OpaqueByValueType('ScrapStuffPtr', 'SCRRec')
-ScrapFlavorType = OSTypeType('ScrapFlavorType')
-putscrapbuffer = FixedInputBufferType('void *')
-
-# Create the generator groups and link them
-module = MacModule(MODNAME, MODPREFIX, includestuff, finalstuff, initstuff)
-
-# Create the generator classes used to populate the lists
-Function = OSErrFunctionGenerator
-
-# Create and populate the lists
-functions = []
-execfile(INPUTFILE)
-
-# add the populated lists to the generator groups
-# (in a different wordl the scan program would generate this)
-for f in functions: module.add(f)
-
-# generate output (open the output file as late as possible)
-SetOutputFileName(OUTPUTFILE)
-module.generate()
-
diff --git a/Mac/Modules/snd/Sndmodule.c b/Mac/Modules/snd/Sndmodule.c
deleted file mode 100644 (file)
index bb1f7df..0000000
+++ /dev/null
@@ -1,1560 +0,0 @@
-
-/* =========================== Module Snd =========================== */
-
-#include "Python.h"
-
-
-
-#include "macglue.h"
-#include "pymactoolbox.h"
-
-#include <Sound.h>
-
-#include <OSUtils.h> /* for Set(Current)A5 */
-
-/* Create a SndCommand object (an (int, int, int) tuple) */
-static PyObject *
-SndCmd_New(SndCommand *pc)
-{
-       return Py_BuildValue("hhl", pc->cmd, pc->param1, pc->param2);
-}
-
-/* Convert a SndCommand argument */
-static int
-SndCmd_Convert(PyObject *v, SndCommand *pc)
-{
-       int len;
-       pc->param1 = 0;
-       pc->param2 = 0;
-       if (PyTuple_Check(v)) {
-               if (PyArg_ParseTuple(v, "h|hl", &pc->cmd, &pc->param1, &pc->param2))
-                       return 1;
-               PyErr_Clear();
-               return PyArg_ParseTuple(v, "Hhs#", &pc->cmd, &pc->param1, &pc->param2, &len);
-       }
-       return PyArg_Parse(v, "H", &pc->cmd);
-}
-
-static pascal void SndCh_UserRoutine(SndChannelPtr chan, SndCommand *cmd); /* Forward */
-static pascal void SPB_completion(SPBPtr my_spb); /* Forward */
-#if !TARGET_API_MAC_CARBON
-static pascal void SPB_interrupt(SPBPtr my_spb); /* Forward */
-#endif
-
-static PyObject *Snd_Error;
-
-/* --------------------- Object type SndChannel --------------------- */
-
-staticforward PyTypeObject SndChannel_Type;
-
-#define SndCh_Check(x) ((x)->ob_type == &SndChannel_Type)
-
-typedef struct SndChannelObject {
-       PyObject_HEAD
-       SndChannelPtr ob_itself;
-       /* Members used to implement callbacks: */
-       PyObject *ob_callback;
-       long ob_A5;
-       SndCommand ob_cmd;
-} SndChannelObject;
-
-static PyObject *SndCh_New(itself)
-       SndChannelPtr itself;
-{
-       SndChannelObject *it;
-       it = PyObject_NEW(SndChannelObject, &SndChannel_Type);
-       if (it == NULL) return NULL;
-       it->ob_itself = itself;
-       it->ob_callback = NULL;
-       it->ob_A5 = SetCurrentA5();
-       return (PyObject *)it;
-}
-static SndCh_Convert(v, p_itself)
-       PyObject *v;
-       SndChannelPtr *p_itself;
-{
-       if (!SndCh_Check(v))
-       {
-               PyErr_SetString(PyExc_TypeError, "SndChannel required");
-               return 0;
-       }
-       *p_itself = ((SndChannelObject *)v)->ob_itself;
-       return 1;
-}
-
-static void SndCh_dealloc(self)
-       SndChannelObject *self;
-{
-       SndDisposeChannel(self->ob_itself, 1);
-       Py_XDECREF(self->ob_callback);
-       PyMem_DEL(self);
-}
-
-static PyObject *SndCh_SndDoCommand(_self, _args)
-       SndChannelObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       SndCommand cmd;
-       Boolean noWait;
-       if (!PyArg_ParseTuple(_args, "O&b",
-                             SndCmd_Convert, &cmd,
-                             &noWait))
-               return NULL;
-       _err = SndDoCommand(_self->ob_itself,
-                           &cmd,
-                           noWait);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *SndCh_SndDoImmediate(_self, _args)
-       SndChannelObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       SndCommand cmd;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             SndCmd_Convert, &cmd))
-               return NULL;
-       _err = SndDoImmediate(_self->ob_itself,
-                             &cmd);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *SndCh_SndPlay(_self, _args)
-       SndChannelObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       SndListHandle sndHandle;
-       Boolean async;
-       if (!PyArg_ParseTuple(_args, "O&b",
-                             ResObj_Convert, &sndHandle,
-                             &async))
-               return NULL;
-       _err = SndPlay(_self->ob_itself,
-                      sndHandle,
-                      async);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-#if !TARGET_API_MAC_CARBON
-
-static PyObject *SndCh_SndStartFilePlay(_self, _args)
-       SndChannelObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       short fRefNum;
-       short resNum;
-       long bufferSize;
-       Boolean async;
-       if (!PyArg_ParseTuple(_args, "hhlb",
-                             &fRefNum,
-                             &resNum,
-                             &bufferSize,
-                             &async))
-               return NULL;
-       _err = SndStartFilePlay(_self->ob_itself,
-                               fRefNum,
-                               resNum,
-                               bufferSize,
-                               0,
-                               0,
-                               0,
-                               async);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-#endif
-
-#if !TARGET_API_MAC_CARBON
-
-static PyObject *SndCh_SndPauseFilePlay(_self, _args)
-       SndChannelObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _err = SndPauseFilePlay(_self->ob_itself);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-#endif
-
-#if !TARGET_API_MAC_CARBON
-
-static PyObject *SndCh_SndStopFilePlay(_self, _args)
-       SndChannelObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       Boolean quietNow;
-       if (!PyArg_ParseTuple(_args, "b",
-                             &quietNow))
-               return NULL;
-       _err = SndStopFilePlay(_self->ob_itself,
-                              quietNow);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-#endif
-
-static PyObject *SndCh_SndChannelStatus(_self, _args)
-       SndChannelObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       short theLength;
-       SCStatus theStatus__out__;
-       if (!PyArg_ParseTuple(_args, "h",
-                             &theLength))
-               return NULL;
-       _err = SndChannelStatus(_self->ob_itself,
-                               theLength,
-                               &theStatus__out__);
-       if (_err != noErr) return PyMac_Error(_err);
-       _res = Py_BuildValue("s#",
-                            (char *)&theStatus__out__, (int)sizeof(SCStatus));
- theStatus__error__: ;
-       return _res;
-}
-
-static PyObject *SndCh_SndGetInfo(_self, _args)
-       SndChannelObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       OSType selector;
-       void * infoPtr;
-       if (!PyArg_ParseTuple(_args, "O&w",
-                             PyMac_GetOSType, &selector,
-                             &infoPtr))
-               return NULL;
-       _err = SndGetInfo(_self->ob_itself,
-                         selector,
-                         infoPtr);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *SndCh_SndSetInfo(_self, _args)
-       SndChannelObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       OSType selector;
-       void * infoPtr;
-       if (!PyArg_ParseTuple(_args, "O&w",
-                             PyMac_GetOSType, &selector,
-                             &infoPtr))
-               return NULL;
-       _err = SndSetInfo(_self->ob_itself,
-                         selector,
-                         infoPtr);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyMethodDef SndCh_methods[] = {
-       {"SndDoCommand", (PyCFunction)SndCh_SndDoCommand, 1,
-        "(SndCommand cmd, Boolean noWait) -> None"},
-       {"SndDoImmediate", (PyCFunction)SndCh_SndDoImmediate, 1,
-        "(SndCommand cmd) -> None"},
-       {"SndPlay", (PyCFunction)SndCh_SndPlay, 1,
-        "(SndListHandle sndHandle, Boolean async) -> None"},
-
-#if !TARGET_API_MAC_CARBON
-       {"SndStartFilePlay", (PyCFunction)SndCh_SndStartFilePlay, 1,
-        "(short fRefNum, short resNum, long bufferSize, Boolean async) -> None"},
-#endif
-
-#if !TARGET_API_MAC_CARBON
-       {"SndPauseFilePlay", (PyCFunction)SndCh_SndPauseFilePlay, 1,
-        "() -> None"},
-#endif
-
-#if !TARGET_API_MAC_CARBON
-       {"SndStopFilePlay", (PyCFunction)SndCh_SndStopFilePlay, 1,
-        "(Boolean quietNow) -> None"},
-#endif
-       {"SndChannelStatus", (PyCFunction)SndCh_SndChannelStatus, 1,
-        "(short theLength) -> (SCStatus theStatus)"},
-       {"SndGetInfo", (PyCFunction)SndCh_SndGetInfo, 1,
-        "(OSType selector, void * infoPtr) -> None"},
-       {"SndSetInfo", (PyCFunction)SndCh_SndSetInfo, 1,
-        "(OSType selector, void * infoPtr) -> None"},
-       {NULL, NULL, 0}
-};
-
-static PyMethodChain SndCh_chain = { SndCh_methods, NULL };
-
-static PyObject *SndCh_getattr(self, name)
-       SndChannelObject *self;
-       char *name;
-{
-       return Py_FindMethodInChain(&SndCh_chain, (PyObject *)self, name);
-}
-
-#define SndCh_setattr NULL
-
-#define SndCh_compare NULL
-
-#define SndCh_repr NULL
-
-#define SndCh_hash NULL
-
-staticforward PyTypeObject SndChannel_Type = {
-       PyObject_HEAD_INIT(&PyType_Type)
-       0, /*ob_size*/
-       "SndChannel", /*tp_name*/
-       sizeof(SndChannelObject), /*tp_basicsize*/
-       0, /*tp_itemsize*/
-       /* methods */
-       (destructor) SndCh_dealloc, /*tp_dealloc*/
-       0, /*tp_print*/
-       (getattrfunc) SndCh_getattr, /*tp_getattr*/
-       (setattrfunc) SndCh_setattr, /*tp_setattr*/
-       (cmpfunc) SndCh_compare, /*tp_compare*/
-       (reprfunc) SndCh_repr, /*tp_repr*/
-       (PyNumberMethods *)0, /* tp_as_number */
-       (PySequenceMethods *)0, /* tp_as_sequence */
-       (PyMappingMethods *)0, /* tp_as_mapping */
-       (hashfunc) SndCh_hash, /*tp_hash*/
-};
-
-/* ------------------- End object type SndChannel ------------------- */
-
-
-/* ------------------------ Object type SPB ------------------------- */
-
-staticforward PyTypeObject SPB_Type;
-
-#define SPBObj_Check(x) ((x)->ob_type == &SPB_Type)
-
-typedef struct SPBObject {
-       PyObject_HEAD
-       /* Members used to implement callbacks: */
-       PyObject *ob_completion;
-       PyObject *ob_interrupt;
-       PyObject *ob_thiscallback;
-       long ob_A5;
-       SPB ob_spb;
-} SPBObject;
-
-static PyObject *SPBObj_New()
-{
-       SPBObject *it;
-       it = PyObject_NEW(SPBObject, &SPB_Type);
-       if (it == NULL) return NULL;
-       it->ob_completion = NULL;
-       it->ob_interrupt = NULL;
-       it->ob_thiscallback = NULL;
-       it->ob_A5 = SetCurrentA5();
-       memset((char *)&it->ob_spb, 0, sizeof(it->ob_spb));
-       it->ob_spb.userLong = (long)it;
-       return (PyObject *)it;
-}
-static SPBObj_Convert(v, p_itself)
-       PyObject *v;
-       SPBPtr *p_itself;
-{
-       if (!SPBObj_Check(v))
-       {
-               PyErr_SetString(PyExc_TypeError, "SPB required");
-               return 0;
-       }
-       *p_itself = &((SPBObject *)v)->ob_spb;
-       return 1;
-}
-
-static void SPBObj_dealloc(self)
-       SPBObject *self;
-{
-       /* Cleanup of self->ob_itself goes here */
-       self->ob_spb.userLong = 0;
-       self->ob_thiscallback = 0;
-       Py_XDECREF(self->ob_completion);
-       Py_XDECREF(self->ob_interrupt);
-       PyMem_DEL(self);
-}
-
-static PyMethodDef SPBObj_methods[] = {
-       {NULL, NULL, 0}
-};
-
-static PyMethodChain SPBObj_chain = { SPBObj_methods, NULL };
-
-static PyObject *SPBObj_getattr(self, name)
-       SPBObject *self;
-       char *name;
-{
-
-                               if (strcmp(name, "inRefNum") == 0)
-                                       return Py_BuildValue("l", self->ob_spb.inRefNum);
-                               else if (strcmp(name, "count") == 0)
-                                       return Py_BuildValue("l", self->ob_spb.count);
-                               else if (strcmp(name, "milliseconds") == 0)
-                                       return Py_BuildValue("l", self->ob_spb.milliseconds);
-                               else if (strcmp(name, "error") == 0)
-                                       return Py_BuildValue("h", self->ob_spb.error);
-       return Py_FindMethodInChain(&SPBObj_chain, (PyObject *)self, name);
-}
-
-static int SPBObj_setattr(self, name, value)
-       SPBObject *self;
-       char *name;
-       PyObject *value;
-{
-
-               int rv = 0;
-               
-               if (strcmp(name, "inRefNum") == 0)
-                       rv = PyArg_Parse(value, "l", &self->ob_spb.inRefNum);
-               else if (strcmp(name, "count") == 0)
-                       rv = PyArg_Parse(value, "l", &self->ob_spb.count);
-               else if (strcmp(name, "milliseconds") == 0)
-                       rv = PyArg_Parse(value, "l", &self->ob_spb.milliseconds);
-               else if (strcmp(name, "buffer") == 0)
-                       rv = PyArg_Parse(value, "w#", &self->ob_spb.bufferPtr, &self->ob_spb.bufferLength);
-               else if (strcmp(name, "completionRoutine") == 0) {
-                       self->ob_spb.completionRoutine = NewSICompletionProc(SPB_completion);
-                       self->ob_completion = value;
-                       Py_INCREF(value);
-                       rv = 1;
-#if !TARGET_API_MAC_CARBON
-               } else if (strcmp(name, "interruptRoutine") == 0) {
-                       self->ob_spb.completionRoutine = NewSIInterruptProc(SPB_interrupt);
-                       self->ob_interrupt = value;
-                       Py_INCREF(value);
-                       rv = 1;
-#endif
-               }
-               if ( rv ) return 0;
-               else return -1;
-}
-
-#define SPBObj_compare NULL
-
-#define SPBObj_repr NULL
-
-#define SPBObj_hash NULL
-
-staticforward PyTypeObject SPB_Type = {
-       PyObject_HEAD_INIT(&PyType_Type)
-       0, /*ob_size*/
-       "SPB", /*tp_name*/
-       sizeof(SPBObject), /*tp_basicsize*/
-       0, /*tp_itemsize*/
-       /* methods */
-       (destructor) SPBObj_dealloc, /*tp_dealloc*/
-       0, /*tp_print*/
-       (getattrfunc) SPBObj_getattr, /*tp_getattr*/
-       (setattrfunc) SPBObj_setattr, /*tp_setattr*/
-       (cmpfunc) SPBObj_compare, /*tp_compare*/
-       (reprfunc) SPBObj_repr, /*tp_repr*/
-       (PyNumberMethods *)0, /* tp_as_number */
-       (PySequenceMethods *)0, /* tp_as_sequence */
-       (PyMappingMethods *)0, /* tp_as_mapping */
-       (hashfunc) SPBObj_hash, /*tp_hash*/
-};
-
-/* ---------------------- End object type SPB ----------------------- */
-
-
-static PyObject *Snd_SPB(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       return SPBObj_New();
-}
-
-static PyObject *Snd_SysBeep(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       short duration;
-       if (!PyArg_ParseTuple(_args, "h",
-                             &duration))
-               return NULL;
-       SysBeep(duration);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *Snd_SndNewChannel(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       SndChannelPtr chan = 0;
-       short synth;
-       long init;
-       PyObject* userRoutine;
-       if (!PyArg_ParseTuple(_args, "hlO",
-                             &synth,
-                             &init,
-                             &userRoutine))
-               return NULL;
-       if (userRoutine != Py_None && !PyCallable_Check(userRoutine))
-       {
-               PyErr_SetString(PyExc_TypeError, "callback must be callable");
-               goto userRoutine__error__;
-       }
-       _err = SndNewChannel(&chan,
-                            synth,
-                            init,
-                            NewSndCallBackProc(SndCh_UserRoutine));
-       if (_err != noErr) return PyMac_Error(_err);
-       _res = Py_BuildValue("O&",
-                            SndCh_New, chan);
-       if (_res != NULL && userRoutine != Py_None)
-       {
-               SndChannelObject *p = (SndChannelObject *)_res;
-               p->ob_itself->userInfo = (long)p;
-               Py_INCREF(userRoutine);
-               p->ob_callback = userRoutine;
-       }
- userRoutine__error__: ;
-       return _res;
-}
-
-#if !TARGET_API_MAC_CARBON
-
-static PyObject *Snd_SndControl(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       short id;
-       SndCommand cmd;
-       if (!PyArg_ParseTuple(_args, "h",
-                             &id))
-               return NULL;
-       _err = SndControl(id,
-                         &cmd);
-       if (_err != noErr) return PyMac_Error(_err);
-       _res = Py_BuildValue("O&",
-                            SndCmd_New, &cmd);
-       return _res;
-}
-#endif
-
-static PyObject *Snd_SndSoundManagerVersion(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       NumVersion _rv;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _rv = SndSoundManagerVersion();
-       _res = Py_BuildValue("O&",
-                            PyMac_BuildNumVersion, _rv);
-       return _res;
-}
-
-static PyObject *Snd_SndManagerStatus(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       short theLength;
-       SMStatus theStatus__out__;
-       if (!PyArg_ParseTuple(_args, "h",
-                             &theLength))
-               return NULL;
-       _err = SndManagerStatus(theLength,
-                               &theStatus__out__);
-       if (_err != noErr) return PyMac_Error(_err);
-       _res = Py_BuildValue("s#",
-                            (char *)&theStatus__out__, (int)sizeof(SMStatus));
- theStatus__error__: ;
-       return _res;
-}
-
-static PyObject *Snd_SndGetSysBeepState(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       short sysBeepState;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       SndGetSysBeepState(&sysBeepState);
-       _res = Py_BuildValue("h",
-                            sysBeepState);
-       return _res;
-}
-
-static PyObject *Snd_SndSetSysBeepState(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       short sysBeepState;
-       if (!PyArg_ParseTuple(_args, "h",
-                             &sysBeepState))
-               return NULL;
-       _err = SndSetSysBeepState(sysBeepState);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-#if !TARGET_API_MAC_CARBON
-
-static PyObject *Snd_MACEVersion(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       NumVersion _rv;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _rv = MACEVersion();
-       _res = Py_BuildValue("O&",
-                            PyMac_BuildNumVersion, _rv);
-       return _res;
-}
-#endif
-
-#if !TARGET_API_MAC_CARBON
-
-static PyObject *Snd_Comp3to1(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       char *buffer__in__;
-       char *buffer__out__;
-       long buffer__len__;
-       int buffer__in_len__;
-       StateBlock *state__in__;
-       StateBlock state__out__;
-       int state__in_len__;
-       unsigned long numChannels;
-       unsigned long whichChannel;
-       if (!PyArg_ParseTuple(_args, "s#s#ll",
-                             &buffer__in__, &buffer__in_len__,
-                             (char **)&state__in__, &state__in_len__,
-                             &numChannels,
-                             &whichChannel))
-               return NULL;
-       if ((buffer__out__ = malloc(buffer__in_len__)) == NULL)
-       {
-               PyErr_NoMemory();
-               goto buffer__error__;
-       }
-       buffer__len__ = buffer__in_len__;
-       if (state__in_len__ != sizeof(StateBlock))
-       {
-               PyErr_SetString(PyExc_TypeError, "buffer length should be sizeof(StateBlock)");
-               goto state__error__;
-       }
-       Comp3to1(buffer__in__, buffer__out__, (long)buffer__len__,
-                state__in__, &state__out__,
-                numChannels,
-                whichChannel);
-       _res = Py_BuildValue("s#s#",
-                            buffer__out__, (int)buffer__len__,
-                            (char *)&state__out__, (int)sizeof(StateBlock));
- state__error__: ;
-       free(buffer__out__);
- buffer__error__: ;
-       return _res;
-}
-#endif
-
-#if !TARGET_API_MAC_CARBON
-
-static PyObject *Snd_Exp1to3(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       char *buffer__in__;
-       char *buffer__out__;
-       long buffer__len__;
-       int buffer__in_len__;
-       StateBlock *state__in__;
-       StateBlock state__out__;
-       int state__in_len__;
-       unsigned long numChannels;
-       unsigned long whichChannel;
-       if (!PyArg_ParseTuple(_args, "s#s#ll",
-                             &buffer__in__, &buffer__in_len__,
-                             (char **)&state__in__, &state__in_len__,
-                             &numChannels,
-                             &whichChannel))
-               return NULL;
-       if ((buffer__out__ = malloc(buffer__in_len__)) == NULL)
-       {
-               PyErr_NoMemory();
-               goto buffer__error__;
-       }
-       buffer__len__ = buffer__in_len__;
-       if (state__in_len__ != sizeof(StateBlock))
-       {
-               PyErr_SetString(PyExc_TypeError, "buffer length should be sizeof(StateBlock)");
-               goto state__error__;
-       }
-       Exp1to3(buffer__in__, buffer__out__, (long)buffer__len__,
-               state__in__, &state__out__,
-               numChannels,
-               whichChannel);
-       _res = Py_BuildValue("s#s#",
-                            buffer__out__, (int)buffer__len__,
-                            (char *)&state__out__, (int)sizeof(StateBlock));
- state__error__: ;
-       free(buffer__out__);
- buffer__error__: ;
-       return _res;
-}
-#endif
-
-#if !TARGET_API_MAC_CARBON
-
-static PyObject *Snd_Comp6to1(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       char *buffer__in__;
-       char *buffer__out__;
-       long buffer__len__;
-       int buffer__in_len__;
-       StateBlock *state__in__;
-       StateBlock state__out__;
-       int state__in_len__;
-       unsigned long numChannels;
-       unsigned long whichChannel;
-       if (!PyArg_ParseTuple(_args, "s#s#ll",
-                             &buffer__in__, &buffer__in_len__,
-                             (char **)&state__in__, &state__in_len__,
-                             &numChannels,
-                             &whichChannel))
-               return NULL;
-       if ((buffer__out__ = malloc(buffer__in_len__)) == NULL)
-       {
-               PyErr_NoMemory();
-               goto buffer__error__;
-       }
-       buffer__len__ = buffer__in_len__;
-       if (state__in_len__ != sizeof(StateBlock))
-       {
-               PyErr_SetString(PyExc_TypeError, "buffer length should be sizeof(StateBlock)");
-               goto state__error__;
-       }
-       Comp6to1(buffer__in__, buffer__out__, (long)buffer__len__,
-                state__in__, &state__out__,
-                numChannels,
-                whichChannel);
-       _res = Py_BuildValue("s#s#",
-                            buffer__out__, (int)buffer__len__,
-                            (char *)&state__out__, (int)sizeof(StateBlock));
- state__error__: ;
-       free(buffer__out__);
- buffer__error__: ;
-       return _res;
-}
-#endif
-
-#if !TARGET_API_MAC_CARBON
-
-static PyObject *Snd_Exp1to6(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       char *buffer__in__;
-       char *buffer__out__;
-       long buffer__len__;
-       int buffer__in_len__;
-       StateBlock *state__in__;
-       StateBlock state__out__;
-       int state__in_len__;
-       unsigned long numChannels;
-       unsigned long whichChannel;
-       if (!PyArg_ParseTuple(_args, "s#s#ll",
-                             &buffer__in__, &buffer__in_len__,
-                             (char **)&state__in__, &state__in_len__,
-                             &numChannels,
-                             &whichChannel))
-               return NULL;
-       if ((buffer__out__ = malloc(buffer__in_len__)) == NULL)
-       {
-               PyErr_NoMemory();
-               goto buffer__error__;
-       }
-       buffer__len__ = buffer__in_len__;
-       if (state__in_len__ != sizeof(StateBlock))
-       {
-               PyErr_SetString(PyExc_TypeError, "buffer length should be sizeof(StateBlock)");
-               goto state__error__;
-       }
-       Exp1to6(buffer__in__, buffer__out__, (long)buffer__len__,
-               state__in__, &state__out__,
-               numChannels,
-               whichChannel);
-       _res = Py_BuildValue("s#s#",
-                            buffer__out__, (int)buffer__len__,
-                            (char *)&state__out__, (int)sizeof(StateBlock));
- state__error__: ;
-       free(buffer__out__);
- buffer__error__: ;
-       return _res;
-}
-#endif
-
-static PyObject *Snd_GetSysBeepVolume(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       long level;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _err = GetSysBeepVolume(&level);
-       if (_err != noErr) return PyMac_Error(_err);
-       _res = Py_BuildValue("l",
-                            level);
-       return _res;
-}
-
-static PyObject *Snd_SetSysBeepVolume(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       long level;
-       if (!PyArg_ParseTuple(_args, "l",
-                             &level))
-               return NULL;
-       _err = SetSysBeepVolume(level);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *Snd_GetDefaultOutputVolume(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       long level;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _err = GetDefaultOutputVolume(&level);
-       if (_err != noErr) return PyMac_Error(_err);
-       _res = Py_BuildValue("l",
-                            level);
-       return _res;
-}
-
-static PyObject *Snd_SetDefaultOutputVolume(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       long level;
-       if (!PyArg_ParseTuple(_args, "l",
-                             &level))
-               return NULL;
-       _err = SetDefaultOutputVolume(level);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *Snd_GetSoundHeaderOffset(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       SndListHandle sndHandle;
-       long offset;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             ResObj_Convert, &sndHandle))
-               return NULL;
-       _err = GetSoundHeaderOffset(sndHandle,
-                                   &offset);
-       if (_err != noErr) return PyMac_Error(_err);
-       _res = Py_BuildValue("l",
-                            offset);
-       return _res;
-}
-
-static PyObject *Snd_GetCompressionInfo(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       short compressionID;
-       OSType format;
-       short numChannels;
-       short sampleSize;
-       CompressionInfo cp__out__;
-       if (!PyArg_ParseTuple(_args, "hO&hh",
-                             &compressionID,
-                             PyMac_GetOSType, &format,
-                             &numChannels,
-                             &sampleSize))
-               return NULL;
-       _err = GetCompressionInfo(compressionID,
-                                 format,
-                                 numChannels,
-                                 sampleSize,
-                                 &cp__out__);
-       if (_err != noErr) return PyMac_Error(_err);
-       _res = Py_BuildValue("s#",
-                            (char *)&cp__out__, (int)sizeof(CompressionInfo));
- cp__error__: ;
-       return _res;
-}
-
-static PyObject *Snd_SetSoundPreference(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       OSType theType;
-       Str255 name;
-       Handle settings;
-       if (!PyArg_ParseTuple(_args, "O&O&",
-                             PyMac_GetOSType, &theType,
-                             ResObj_Convert, &settings))
-               return NULL;
-       _err = SetSoundPreference(theType,
-                                 name,
-                                 settings);
-       if (_err != noErr) return PyMac_Error(_err);
-       _res = Py_BuildValue("O&",
-                            PyMac_BuildStr255, name);
-       return _res;
-}
-
-static PyObject *Snd_GetSoundPreference(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       OSType theType;
-       Str255 name;
-       Handle settings;
-       if (!PyArg_ParseTuple(_args, "O&O&",
-                             PyMac_GetOSType, &theType,
-                             ResObj_Convert, &settings))
-               return NULL;
-       _err = GetSoundPreference(theType,
-                                 name,
-                                 settings);
-       if (_err != noErr) return PyMac_Error(_err);
-       _res = Py_BuildValue("O&",
-                            PyMac_BuildStr255, name);
-       return _res;
-}
-
-static PyObject *Snd_GetCompressionName(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       OSType compressionType;
-       Str255 compressionName;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             PyMac_GetOSType, &compressionType))
-               return NULL;
-       _err = GetCompressionName(compressionType,
-                                 compressionName);
-       if (_err != noErr) return PyMac_Error(_err);
-       _res = Py_BuildValue("O&",
-                            PyMac_BuildStr255, compressionName);
-       return _res;
-}
-
-static PyObject *Snd_SPBVersion(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       NumVersion _rv;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _rv = SPBVersion();
-       _res = Py_BuildValue("O&",
-                            PyMac_BuildNumVersion, _rv);
-       return _res;
-}
-
-static PyObject *Snd_SPBSignInDevice(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       short deviceRefNum;
-       Str255 deviceName;
-       if (!PyArg_ParseTuple(_args, "hO&",
-                             &deviceRefNum,
-                             PyMac_GetStr255, deviceName))
-               return NULL;
-       _err = SPBSignInDevice(deviceRefNum,
-                              deviceName);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *Snd_SPBSignOutDevice(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       short deviceRefNum;
-       if (!PyArg_ParseTuple(_args, "h",
-                             &deviceRefNum))
-               return NULL;
-       _err = SPBSignOutDevice(deviceRefNum);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *Snd_SPBGetIndexedDevice(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       short count;
-       Str255 deviceName;
-       Handle deviceIconHandle;
-       if (!PyArg_ParseTuple(_args, "h",
-                             &count))
-               return NULL;
-       _err = SPBGetIndexedDevice(count,
-                                  deviceName,
-                                  &deviceIconHandle);
-       if (_err != noErr) return PyMac_Error(_err);
-       _res = Py_BuildValue("O&O&",
-                            PyMac_BuildStr255, deviceName,
-                            ResObj_New, deviceIconHandle);
-       return _res;
-}
-
-static PyObject *Snd_SPBOpenDevice(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       Str255 deviceName;
-       short permission;
-       long inRefNum;
-       if (!PyArg_ParseTuple(_args, "O&h",
-                             PyMac_GetStr255, deviceName,
-                             &permission))
-               return NULL;
-       _err = SPBOpenDevice(deviceName,
-                            permission,
-                            &inRefNum);
-       if (_err != noErr) return PyMac_Error(_err);
-       _res = Py_BuildValue("l",
-                            inRefNum);
-       return _res;
-}
-
-static PyObject *Snd_SPBCloseDevice(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       long inRefNum;
-       if (!PyArg_ParseTuple(_args, "l",
-                             &inRefNum))
-               return NULL;
-       _err = SPBCloseDevice(inRefNum);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *Snd_SPBRecord(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       SPBPtr inParamPtr;
-       Boolean asynchFlag;
-       if (!PyArg_ParseTuple(_args, "O&b",
-                             SPBObj_Convert, &inParamPtr,
-                             &asynchFlag))
-               return NULL;
-       _err = SPBRecord(inParamPtr,
-                        asynchFlag);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-#if !TARGET_API_MAC_CARBON
-
-static PyObject *Snd_SPBRecordToFile(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       short fRefNum;
-       SPBPtr inParamPtr;
-       Boolean asynchFlag;
-       if (!PyArg_ParseTuple(_args, "hO&b",
-                             &fRefNum,
-                             SPBObj_Convert, &inParamPtr,
-                             &asynchFlag))
-               return NULL;
-       _err = SPBRecordToFile(fRefNum,
-                              inParamPtr,
-                              asynchFlag);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-#endif
-
-static PyObject *Snd_SPBPauseRecording(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       long inRefNum;
-       if (!PyArg_ParseTuple(_args, "l",
-                             &inRefNum))
-               return NULL;
-       _err = SPBPauseRecording(inRefNum);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *Snd_SPBResumeRecording(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       long inRefNum;
-       if (!PyArg_ParseTuple(_args, "l",
-                             &inRefNum))
-               return NULL;
-       _err = SPBResumeRecording(inRefNum);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *Snd_SPBStopRecording(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       long inRefNum;
-       if (!PyArg_ParseTuple(_args, "l",
-                             &inRefNum))
-               return NULL;
-       _err = SPBStopRecording(inRefNum);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *Snd_SPBGetRecordingStatus(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       long inRefNum;
-       short recordingStatus;
-       short meterLevel;
-       unsigned long totalSamplesToRecord;
-       unsigned long numberOfSamplesRecorded;
-       unsigned long totalMsecsToRecord;
-       unsigned long numberOfMsecsRecorded;
-       if (!PyArg_ParseTuple(_args, "l",
-                             &inRefNum))
-               return NULL;
-       _err = SPBGetRecordingStatus(inRefNum,
-                                    &recordingStatus,
-                                    &meterLevel,
-                                    &totalSamplesToRecord,
-                                    &numberOfSamplesRecorded,
-                                    &totalMsecsToRecord,
-                                    &numberOfMsecsRecorded);
-       if (_err != noErr) return PyMac_Error(_err);
-       _res = Py_BuildValue("hhllll",
-                            recordingStatus,
-                            meterLevel,
-                            totalSamplesToRecord,
-                            numberOfSamplesRecorded,
-                            totalMsecsToRecord,
-                            numberOfMsecsRecorded);
-       return _res;
-}
-
-static PyObject *Snd_SPBGetDeviceInfo(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       long inRefNum;
-       OSType infoType;
-       void * infoData;
-       if (!PyArg_ParseTuple(_args, "lO&w",
-                             &inRefNum,
-                             PyMac_GetOSType, &infoType,
-                             &infoData))
-               return NULL;
-       _err = SPBGetDeviceInfo(inRefNum,
-                               infoType,
-                               infoData);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *Snd_SPBSetDeviceInfo(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       long inRefNum;
-       OSType infoType;
-       void * infoData;
-       if (!PyArg_ParseTuple(_args, "lO&w",
-                             &inRefNum,
-                             PyMac_GetOSType, &infoType,
-                             &infoData))
-               return NULL;
-       _err = SPBSetDeviceInfo(inRefNum,
-                               infoType,
-                               infoData);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *Snd_SPBMillisecondsToBytes(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       long inRefNum;
-       long milliseconds;
-       if (!PyArg_ParseTuple(_args, "l",
-                             &inRefNum))
-               return NULL;
-       _err = SPBMillisecondsToBytes(inRefNum,
-                                     &milliseconds);
-       if (_err != noErr) return PyMac_Error(_err);
-       _res = Py_BuildValue("l",
-                            milliseconds);
-       return _res;
-}
-
-static PyObject *Snd_SPBBytesToMilliseconds(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       long inRefNum;
-       long byteCount;
-       if (!PyArg_ParseTuple(_args, "l",
-                             &inRefNum))
-               return NULL;
-       _err = SPBBytesToMilliseconds(inRefNum,
-                                     &byteCount);
-       if (_err != noErr) return PyMac_Error(_err);
-       _res = Py_BuildValue("l",
-                            byteCount);
-       return _res;
-}
-
-static PyMethodDef Snd_methods[] = {
-       {"SPB", (PyCFunction)Snd_SPB, 1,
-        NULL},
-       {"SysBeep", (PyCFunction)Snd_SysBeep, 1,
-        "(short duration) -> None"},
-       {"SndNewChannel", (PyCFunction)Snd_SndNewChannel, 1,
-        "(short synth, long init, PyObject* userRoutine) -> (SndChannelPtr chan)"},
-
-#if !TARGET_API_MAC_CARBON
-       {"SndControl", (PyCFunction)Snd_SndControl, 1,
-        "(short id) -> (SndCommand cmd)"},
-#endif
-       {"SndSoundManagerVersion", (PyCFunction)Snd_SndSoundManagerVersion, 1,
-        "() -> (NumVersion _rv)"},
-       {"SndManagerStatus", (PyCFunction)Snd_SndManagerStatus, 1,
-        "(short theLength) -> (SMStatus theStatus)"},
-       {"SndGetSysBeepState", (PyCFunction)Snd_SndGetSysBeepState, 1,
-        "() -> (short sysBeepState)"},
-       {"SndSetSysBeepState", (PyCFunction)Snd_SndSetSysBeepState, 1,
-        "(short sysBeepState) -> None"},
-
-#if !TARGET_API_MAC_CARBON
-       {"MACEVersion", (PyCFunction)Snd_MACEVersion, 1,
-        "() -> (NumVersion _rv)"},
-#endif
-
-#if !TARGET_API_MAC_CARBON
-       {"Comp3to1", (PyCFunction)Snd_Comp3to1, 1,
-        "(Buffer buffer, StateBlock state, unsigned long numChannels, unsigned long whichChannel) -> (Buffer buffer, StateBlock state)"},
-#endif
-
-#if !TARGET_API_MAC_CARBON
-       {"Exp1to3", (PyCFunction)Snd_Exp1to3, 1,
-        "(Buffer buffer, StateBlock state, unsigned long numChannels, unsigned long whichChannel) -> (Buffer buffer, StateBlock state)"},
-#endif
-
-#if !TARGET_API_MAC_CARBON
-       {"Comp6to1", (PyCFunction)Snd_Comp6to1, 1,
-        "(Buffer buffer, StateBlock state, unsigned long numChannels, unsigned long whichChannel) -> (Buffer buffer, StateBlock state)"},
-#endif
-
-#if !TARGET_API_MAC_CARBON
-       {"Exp1to6", (PyCFunction)Snd_Exp1to6, 1,
-        "(Buffer buffer, StateBlock state, unsigned long numChannels, unsigned long whichChannel) -> (Buffer buffer, StateBlock state)"},
-#endif
-       {"GetSysBeepVolume", (PyCFunction)Snd_GetSysBeepVolume, 1,
-        "() -> (long level)"},
-       {"SetSysBeepVolume", (PyCFunction)Snd_SetSysBeepVolume, 1,
-        "(long level) -> None"},
-       {"GetDefaultOutputVolume", (PyCFunction)Snd_GetDefaultOutputVolume, 1,
-        "() -> (long level)"},
-       {"SetDefaultOutputVolume", (PyCFunction)Snd_SetDefaultOutputVolume, 1,
-        "(long level) -> None"},
-       {"GetSoundHeaderOffset", (PyCFunction)Snd_GetSoundHeaderOffset, 1,
-        "(SndListHandle sndHandle) -> (long offset)"},
-       {"GetCompressionInfo", (PyCFunction)Snd_GetCompressionInfo, 1,
-        "(short compressionID, OSType format, short numChannels, short sampleSize) -> (CompressionInfo cp)"},
-       {"SetSoundPreference", (PyCFunction)Snd_SetSoundPreference, 1,
-        "(OSType theType, Handle settings) -> (Str255 name)"},
-       {"GetSoundPreference", (PyCFunction)Snd_GetSoundPreference, 1,
-        "(OSType theType, Handle settings) -> (Str255 name)"},
-       {"GetCompressionName", (PyCFunction)Snd_GetCompressionName, 1,
-        "(OSType compressionType) -> (Str255 compressionName)"},
-       {"SPBVersion", (PyCFunction)Snd_SPBVersion, 1,
-        "() -> (NumVersion _rv)"},
-       {"SPBSignInDevice", (PyCFunction)Snd_SPBSignInDevice, 1,
-        "(short deviceRefNum, Str255 deviceName) -> None"},
-       {"SPBSignOutDevice", (PyCFunction)Snd_SPBSignOutDevice, 1,
-        "(short deviceRefNum) -> None"},
-       {"SPBGetIndexedDevice", (PyCFunction)Snd_SPBGetIndexedDevice, 1,
-        "(short count) -> (Str255 deviceName, Handle deviceIconHandle)"},
-       {"SPBOpenDevice", (PyCFunction)Snd_SPBOpenDevice, 1,
-        "(Str255 deviceName, short permission) -> (long inRefNum)"},
-       {"SPBCloseDevice", (PyCFunction)Snd_SPBCloseDevice, 1,
-        "(long inRefNum) -> None"},
-       {"SPBRecord", (PyCFunction)Snd_SPBRecord, 1,
-        "(SPBPtr inParamPtr, Boolean asynchFlag) -> None"},
-
-#if !TARGET_API_MAC_CARBON
-       {"SPBRecordToFile", (PyCFunction)Snd_SPBRecordToFile, 1,
-        "(short fRefNum, SPBPtr inParamPtr, Boolean asynchFlag) -> None"},
-#endif
-       {"SPBPauseRecording", (PyCFunction)Snd_SPBPauseRecording, 1,
-        "(long inRefNum) -> None"},
-       {"SPBResumeRecording", (PyCFunction)Snd_SPBResumeRecording, 1,
-        "(long inRefNum) -> None"},
-       {"SPBStopRecording", (PyCFunction)Snd_SPBStopRecording, 1,
-        "(long inRefNum) -> None"},
-       {"SPBGetRecordingStatus", (PyCFunction)Snd_SPBGetRecordingStatus, 1,
-        "(long inRefNum) -> (short recordingStatus, short meterLevel, unsigned long totalSamplesToRecord, unsigned long numberOfSamplesRecorded, unsigned long totalMsecsToRecord, unsigned long numberOfMsecsRecorded)"},
-       {"SPBGetDeviceInfo", (PyCFunction)Snd_SPBGetDeviceInfo, 1,
-        "(long inRefNum, OSType infoType, void * infoData) -> None"},
-       {"SPBSetDeviceInfo", (PyCFunction)Snd_SPBSetDeviceInfo, 1,
-        "(long inRefNum, OSType infoType, void * infoData) -> None"},
-       {"SPBMillisecondsToBytes", (PyCFunction)Snd_SPBMillisecondsToBytes, 1,
-        "(long inRefNum) -> (long milliseconds)"},
-       {"SPBBytesToMilliseconds", (PyCFunction)Snd_SPBBytesToMilliseconds, 1,
-        "(long inRefNum) -> (long byteCount)"},
-       {NULL, NULL, 0}
-};
-
-
-
-/* Routine passed to Py_AddPendingCall -- call the Python callback */
-static int
-SndCh_CallCallBack(arg)
-       void *arg;
-{
-       SndChannelObject *p = (SndChannelObject *)arg;
-       PyObject *args;
-       PyObject *res;
-       args = Py_BuildValue("(O(hhl))",
-                            p, p->ob_cmd.cmd, p->ob_cmd.param1, p->ob_cmd.param2);
-       res = PyEval_CallObject(p->ob_callback, args);
-       Py_DECREF(args);
-       if (res == NULL)
-               return -1;
-       Py_DECREF(res);
-       return 0;
-}
-
-/* Routine passed to NewSndChannel -- schedule a call to SndCh_CallCallBack */
-static pascal void
-SndCh_UserRoutine(SndChannelPtr chan, SndCommand *cmd)
-{
-       SndChannelObject *p = (SndChannelObject *)(chan->userInfo);
-       if (p->ob_callback != NULL) {
-               long A5 = SetA5(p->ob_A5);
-               p->ob_cmd = *cmd;
-               Py_AddPendingCall(SndCh_CallCallBack, (void *)p);
-               SetA5(A5);
-       }
-}
-
-/* SPB callbacks - Schedule callbacks to Python */
-static int
-SPB_CallCallBack(arg)
-       void *arg;
-{
-       SPBObject *p = (SPBObject *)arg;
-       PyObject *args;
-       PyObject *res;
-       
-       if ( p->ob_thiscallback == 0 ) return 0;
-       args = Py_BuildValue("(O)", p);
-       res = PyEval_CallObject(p->ob_thiscallback, args);
-       p->ob_thiscallback = 0;
-       Py_DECREF(args);
-       if (res == NULL)
-               return -1;
-       Py_DECREF(res);
-       return 0;
-}
-
-static pascal void
-SPB_completion(SPBPtr my_spb)
-{
-       SPBObject *p = (SPBObject *)(my_spb->userLong);
-       
-       if (p && p->ob_completion) {
-               long A5 = SetA5(p->ob_A5);
-               p->ob_thiscallback = p->ob_completion;  /* Hope we cannot get two at the same time */
-               Py_AddPendingCall(SPB_CallCallBack, (void *)p);
-               SetA5(A5);
-       }
-}
-
-#if !TARGET_API_MAC_CARBON
-static pascal void
-SPB_interrupt(SPBPtr my_spb)
-{
-       SPBObject *p = (SPBObject *)(my_spb->userLong);
-       
-       if (p && p->ob_interrupt) {
-               long A5 = SetA5(p->ob_A5);
-               p->ob_thiscallback = p->ob_interrupt;   /* Hope we cannot get two at the same time */
-               Py_AddPendingCall(SPB_CallCallBack, (void *)p);
-               SetA5(A5);
-       }
-}
-#endif
-
-
-void initSnd()
-{
-       PyObject *m;
-       PyObject *d;
-
-
-
-
-
-       m = Py_InitModule("Snd", Snd_methods);
-       d = PyModule_GetDict(m);
-       Snd_Error = PyMac_GetOSErrException();
-       if (Snd_Error == NULL ||
-           PyDict_SetItemString(d, "Error", Snd_Error) != 0)
-               return;
-       SndChannel_Type.ob_type = &PyType_Type;
-       Py_INCREF(&SndChannel_Type);
-       if (PyDict_SetItemString(d, "SndChannelType", (PyObject *)&SndChannel_Type) != 0)
-               Py_FatalError("can't initialize SndChannelType");
-       SPB_Type.ob_type = &PyType_Type;
-       Py_INCREF(&SPB_Type);
-       if (PyDict_SetItemString(d, "SPBType", (PyObject *)&SPB_Type) != 0)
-               Py_FatalError("can't initialize SPBType");
-}
-
-/* ========================= End module Snd ========================= */
-
diff --git a/Mac/Modules/snd/sndsupport.py b/Mac/Modules/snd/sndsupport.py
deleted file mode 100644 (file)
index 89b3657..0000000
+++ /dev/null
@@ -1,369 +0,0 @@
-# This script generates the Sound interface for Python.
-# It uses the "bgen" package to generate C code.
-# It execs the file sndgen.py which contain the function definitions
-# (sndgen.py was generated by sndscan.py, scanning the <Sound.h> header file).
-
-from macsupport import *
-
-
-# define our own function and module generators
-
-class SndMixIn: pass
-
-class SndFunction(SndMixIn, OSErrFunctionGenerator): pass
-class SndMethod(SndMixIn, OSErrMethodGenerator): pass
-
-
-# includestuff etc. are imported from macsupport
-
-includestuff = includestuff + """
-#include <Sound.h>
-"""
-
-initstuff = initstuff + """
-"""
-
-
-# define types used for arguments (in addition to standard and macsupport types)
-
-class SndChannelPtrType(OpaqueByValueType):
-       def declare(self, name):
-               # Initializing all SndChannelPtr objects to 0 saves
-               # special-casing NewSndChannel(), where it is formally an
-               # input-output parameter but we treat it as output-only
-               # (since Python users are not supposed to allocate memory)
-               Output("SndChannelPtr %s = 0;", name)
-
-SndChannelPtr = SndChannelPtrType('SndChannelPtr', 'SndCh')
-
-SndCommand = OpaqueType('SndCommand', 'SndCmd')
-SndCommand_ptr = OpaqueType('SndCommand', 'SndCmd')
-SndListHandle = OpaqueByValueType("SndListHandle", "ResObj")
-SPBPtr = OpaqueByValueType("SPBPtr", "SPBObj")
-
-#
-# NOTE: the following is pretty dangerous. For void pointers we pass buffer addresses
-# but we have no way to check that the buffer is big enough. This is the same problem
-# as in C, though (but Pythoneers may not be suspecting this...)
-void_ptr = Type("void *", "w")
-
-class SndCallBackType(InputOnlyType):
-       def __init__(self):
-               Type.__init__(self, 'PyObject*', 'O')
-       def getargsCheck(self, name):
-               Output("if (%s != Py_None && !PyCallable_Check(%s))", name, name)
-               OutLbrace()
-               Output('PyErr_SetString(PyExc_TypeError, "callback must be callable");')
-               Output("goto %s__error__;", name)
-               OutRbrace()
-       def passInput(self, name):
-               return "NewSndCallBackProc(SndCh_UserRoutine)"
-       def cleanup(self, name):
-               # XXX This knows it is executing inside the SndNewChannel wrapper
-               Output("if (_res != NULL && %s != Py_None)", name)
-               OutLbrace()
-               Output("SndChannelObject *p = (SndChannelObject *)_res;")
-               Output("p->ob_itself->userInfo = (long)p;")
-               Output("Py_INCREF(%s);", name)
-               Output("p->ob_callback = %s;", name)
-               OutRbrace()
-               DedentLevel()
-               Output(" %s__error__: ;", name)
-               IndentLevel()
-
-SndCallBackProcPtr = SndCallBackType()
-SndCallBackUPP = SndCallBackProcPtr
-
-SndCompletionProcPtr = FakeType('(SndCompletionProcPtr)0') # XXX
-SndCompletionUPP = SndCompletionProcPtr
-
-##InOutBuf128 = FixedInputOutputBufferType(128)
-StateBlock = StructInputOutputBufferType('StateBlock')
-
-AudioSelectionPtr = FakeType('0') # XXX
-
-ProcPtr = FakeType('0') # XXX
-FilePlayCompletionUPP = FakeType('0') # XXX
-
-SCStatus = StructOutputBufferType('SCStatus')
-SMStatus = StructOutputBufferType('SMStatus')
-CompressionInfo = StructOutputBufferType('CompressionInfo')
-
-includestuff = includestuff + """
-#include <OSUtils.h> /* for Set(Current)A5 */
-
-/* Create a SndCommand object (an (int, int, int) tuple) */
-static PyObject *
-SndCmd_New(SndCommand *pc)
-{
-       return Py_BuildValue("hhl", pc->cmd, pc->param1, pc->param2);
-}
-
-/* Convert a SndCommand argument */
-static int
-SndCmd_Convert(PyObject *v, SndCommand *pc)
-{
-       int len;
-       pc->param1 = 0;
-       pc->param2 = 0;
-       if (PyTuple_Check(v)) {
-               if (PyArg_ParseTuple(v, "h|hl", &pc->cmd, &pc->param1, &pc->param2))
-                       return 1;
-               PyErr_Clear();
-               return PyArg_ParseTuple(v, "Hhs#", &pc->cmd, &pc->param1, &pc->param2, &len);
-       }
-       return PyArg_Parse(v, "H", &pc->cmd);
-}
-
-static pascal void SndCh_UserRoutine(SndChannelPtr chan, SndCommand *cmd); /* Forward */
-static pascal void SPB_completion(SPBPtr my_spb); /* Forward */
-#if !TARGET_API_MAC_CARBON
-static pascal void SPB_interrupt(SPBPtr my_spb); /* Forward */
-#endif
-"""
-
-
-finalstuff = finalstuff + """
-/* Routine passed to Py_AddPendingCall -- call the Python callback */
-static int
-SndCh_CallCallBack(arg)
-       void *arg;
-{
-       SndChannelObject *p = (SndChannelObject *)arg;
-       PyObject *args;
-       PyObject *res;
-       args = Py_BuildValue("(O(hhl))",
-                            p, p->ob_cmd.cmd, p->ob_cmd.param1, p->ob_cmd.param2);
-       res = PyEval_CallObject(p->ob_callback, args);
-       Py_DECREF(args);
-       if (res == NULL)
-               return -1;
-       Py_DECREF(res);
-       return 0;
-}
-
-/* Routine passed to NewSndChannel -- schedule a call to SndCh_CallCallBack */
-static pascal void
-SndCh_UserRoutine(SndChannelPtr chan, SndCommand *cmd)
-{
-       SndChannelObject *p = (SndChannelObject *)(chan->userInfo);
-       if (p->ob_callback != NULL) {
-               long A5 = SetA5(p->ob_A5);
-               p->ob_cmd = *cmd;
-               Py_AddPendingCall(SndCh_CallCallBack, (void *)p);
-               SetA5(A5);
-       }
-}
-
-/* SPB callbacks - Schedule callbacks to Python */
-static int
-SPB_CallCallBack(arg)
-       void *arg;
-{
-       SPBObject *p = (SPBObject *)arg;
-       PyObject *args;
-       PyObject *res;
-       
-       if ( p->ob_thiscallback == 0 ) return 0;
-       args = Py_BuildValue("(O)", p);
-       res = PyEval_CallObject(p->ob_thiscallback, args);
-       p->ob_thiscallback = 0;
-       Py_DECREF(args);
-       if (res == NULL)
-               return -1;
-       Py_DECREF(res);
-       return 0;
-}
-
-static pascal void
-SPB_completion(SPBPtr my_spb)
-{
-       SPBObject *p = (SPBObject *)(my_spb->userLong);
-       
-       if (p && p->ob_completion) {
-               long A5 = SetA5(p->ob_A5);
-               p->ob_thiscallback = p->ob_completion;  /* Hope we cannot get two at the same time */
-               Py_AddPendingCall(SPB_CallCallBack, (void *)p);
-               SetA5(A5);
-       }
-}
-
-#if !TARGET_API_MAC_CARBON
-static pascal void
-SPB_interrupt(SPBPtr my_spb)
-{
-       SPBObject *p = (SPBObject *)(my_spb->userLong);
-       
-       if (p && p->ob_interrupt) {
-               long A5 = SetA5(p->ob_A5);
-               p->ob_thiscallback = p->ob_interrupt;   /* Hope we cannot get two at the same time */
-               Py_AddPendingCall(SPB_CallCallBack, (void *)p);
-               SetA5(A5);
-       }
-}
-#endif
-"""
-
-
-# create the module and object definition and link them
-
-class SndObjectDefinition(ObjectDefinition):
-
-       def outputStructMembers(self):
-               ObjectDefinition.outputStructMembers(self)
-               Output("/* Members used to implement callbacks: */")
-               Output("PyObject *ob_callback;")
-               Output("long ob_A5;");
-               Output("SndCommand ob_cmd;")
-
-       def outputInitStructMembers(self):
-               ObjectDefinition.outputInitStructMembers(self)
-               Output("it->ob_callback = NULL;")
-               Output("it->ob_A5 = SetCurrentA5();");
-
-       def outputCleanupStructMembers(self):
-               ObjectDefinition.outputCleanupStructMembers(self)
-               Output("Py_XDECREF(self->ob_callback);")
-       
-       def outputFreeIt(self, itselfname):
-               Output("SndDisposeChannel(%s, 1);", itselfname)
-               
-#
-
-class SpbObjectDefinition(ObjectDefinition):
-
-       def outputStructMembers(self):
-               Output("/* Members used to implement callbacks: */")
-               Output("PyObject *ob_completion;")
-               Output("PyObject *ob_interrupt;")
-               Output("PyObject *ob_thiscallback;");
-               Output("long ob_A5;")
-               Output("SPB ob_spb;")
-
-       def outputNew(self):
-               Output()
-               Output("%sPyObject *%s_New()", self.static, self.prefix)
-               OutLbrace()
-               Output("%s *it;", self.objecttype)
-               self.outputCheckNewArg()
-               Output("it = PyObject_NEW(%s, &%s);", self.objecttype, self.typename)
-               Output("if (it == NULL) return NULL;")
-               self.outputInitStructMembers()
-               Output("return (PyObject *)it;")
-               OutRbrace()
-
-       def outputInitStructMembers(self):
-               Output("it->ob_completion = NULL;")
-               Output("it->ob_interrupt = NULL;")
-               Output("it->ob_thiscallback = NULL;")
-               Output("it->ob_A5 = SetCurrentA5();")
-               Output("memset((char *)&it->ob_spb, 0, sizeof(it->ob_spb));")
-               Output("it->ob_spb.userLong = (long)it;")
-
-       def outputCleanupStructMembers(self):
-               ObjectDefinition.outputCleanupStructMembers(self)
-               Output("self->ob_spb.userLong = 0;")
-               Output("self->ob_thiscallback = 0;")
-               Output("Py_XDECREF(self->ob_completion);")
-               Output("Py_XDECREF(self->ob_interrupt);")
-       
-       def outputConvert(self):
-               Output("%s%s_Convert(v, p_itself)", self.static, self.prefix)
-               IndentLevel()
-               Output("PyObject *v;")
-               Output("%s *p_itself;", self.itselftype)
-               DedentLevel()
-               OutLbrace()
-               self.outputCheckConvertArg()
-               Output("if (!%s_Check(v))", self.prefix)
-               OutLbrace()
-               Output('PyErr_SetString(PyExc_TypeError, "%s required");', self.name)
-               Output("return 0;")
-               OutRbrace()
-               Output("*p_itself = &((%s *)v)->ob_spb;", self.objecttype)
-               Output("return 1;")
-               OutRbrace()
-
-       def outputSetattr(self):
-               Output()
-               Output("static int %s_setattr(self, name, value)", self.prefix)
-               IndentLevel()
-               Output("%s *self;", self.objecttype)
-               Output("char *name;")
-               Output("PyObject *value;")
-               DedentLevel()
-               OutLbrace()
-               self.outputSetattrBody()
-               OutRbrace()
-
-       def outputSetattrBody(self):
-               Output("""
-       int rv = 0;
-       
-       if (strcmp(name, "inRefNum") == 0)
-               rv = PyArg_Parse(value, "l", &self->ob_spb.inRefNum);
-       else if (strcmp(name, "count") == 0)
-               rv = PyArg_Parse(value, "l", &self->ob_spb.count);
-       else if (strcmp(name, "milliseconds") == 0)
-               rv = PyArg_Parse(value, "l", &self->ob_spb.milliseconds);
-       else if (strcmp(name, "buffer") == 0)
-               rv = PyArg_Parse(value, "w#", &self->ob_spb.bufferPtr, &self->ob_spb.bufferLength);
-       else if (strcmp(name, "completionRoutine") == 0) {
-               self->ob_spb.completionRoutine = NewSICompletionProc(SPB_completion);
-               self->ob_completion = value;
-               Py_INCREF(value);
-               rv = 1;
-#if !TARGET_API_MAC_CARBON
-       } else if (strcmp(name, "interruptRoutine") == 0) {
-               self->ob_spb.completionRoutine = NewSIInterruptProc(SPB_interrupt);
-               self->ob_interrupt = value;
-               Py_INCREF(value);
-               rv = 1;
-#endif
-       }
-       if ( rv ) return 0;
-       else return -1;""")
-                       
-       def outputGetattrHook(self):
-               Output("""
-                       if (strcmp(name, "inRefNum") == 0)
-                               return Py_BuildValue("l", self->ob_spb.inRefNum);
-                       else if (strcmp(name, "count") == 0)
-                               return Py_BuildValue("l", self->ob_spb.count);
-                       else if (strcmp(name, "milliseconds") == 0)
-                               return Py_BuildValue("l", self->ob_spb.milliseconds);
-                       else if (strcmp(name, "error") == 0)
-                               return Py_BuildValue("h", self->ob_spb.error);""")
-               
-                                       
-
-sndobject = SndObjectDefinition('SndChannel', 'SndCh', 'SndChannelPtr')
-spbobject = SpbObjectDefinition('SPB', 'SPBObj', 'SPBPtr')
-spbgenerator = ManualGenerator("SPB", "return SPBObj_New();")
-module = MacModule('Snd', 'Snd', includestuff, finalstuff, initstuff)
-module.addobject(sndobject)
-module.addobject(spbobject)
-module.add(spbgenerator)
-
-
-# create lists of functions and object methods
-
-functions = []
-sndmethods = []
-
-
-# populate the lists
-
-execfile('sndgen.py')
-
-
-# add the functions and methods to the module and object, respectively
-
-for f in functions: module.add(f)
-for f in sndmethods: sndobject.add(f)
-
-
-# generate output
-
-SetOutputFileName('Sndmodule.c')
-module.generate()
diff --git a/Mac/Modules/te/TEmodule.c b/Mac/Modules/te/TEmodule.c
deleted file mode 100644 (file)
index 2bb447b..0000000
+++ /dev/null
@@ -1,1122 +0,0 @@
-
-/* =========================== Module TE ============================ */
-
-#include "Python.h"
-
-
-
-#include "macglue.h"
-#include "pymactoolbox.h"
-
-#include <TextEdit.h>
-
-#define as_TE(h) ((TEHandle)h)
-#define as_Resource(teh) ((Handle)teh)
-
-/*
-** Parse/generate TextStyle records
-*/
-static PyObject *
-TextStyle_New(itself)
-       TextStylePtr itself;
-{
-
-       return Py_BuildValue("lllO&", (long)itself->tsFont, (long)itself->tsFace, (long)itself->tsSize, QdRGB_New,
-                               &itself->tsColor);
-}
-
-static int
-TextStyle_Convert(v, p_itself)
-       PyObject *v;
-       TextStylePtr p_itself;
-{
-       long font, face, size;
-       
-       if( !PyArg_ParseTuple(v, "lllO&", &font, &face, &size, QdRGB_Convert, &p_itself->tsColor) )
-               return 0;
-       p_itself->tsFont = (short)font;
-       p_itself->tsFace = (Style)face;
-       p_itself->tsSize = (short)size;
-       return 1;
-}
-
-static PyObject *TE_Error;
-
-/* ------------------------- Object type TE ------------------------- */
-
-PyTypeObject TE_Type;
-
-#define TEObj_Check(x) ((x)->ob_type == &TE_Type)
-
-typedef struct TEObject {
-       PyObject_HEAD
-       TEHandle ob_itself;
-} TEObject;
-
-PyObject *TEObj_New(itself)
-       TEHandle itself;
-{
-       TEObject *it;
-       if (itself == NULL) {
-                                               PyErr_SetString(TE_Error,"Cannot create null TE");
-                                               return NULL;
-                                       }
-       it = PyObject_NEW(TEObject, &TE_Type);
-       if (it == NULL) return NULL;
-       it->ob_itself = itself;
-       return (PyObject *)it;
-}
-TEObj_Convert(v, p_itself)
-       PyObject *v;
-       TEHandle *p_itself;
-{
-       if (!TEObj_Check(v))
-       {
-               PyErr_SetString(PyExc_TypeError, "TE required");
-               return 0;
-       }
-       *p_itself = ((TEObject *)v)->ob_itself;
-       return 1;
-}
-
-static void TEObj_dealloc(self)
-       TEObject *self;
-{
-       TEDispose(self->ob_itself);
-       PyMem_DEL(self);
-}
-
-static PyObject *TEObj_TESetText(_self, _args)
-       TEObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       char *text__in__;
-       long text__len__;
-       int text__in_len__;
-       if (!PyArg_ParseTuple(_args, "s#",
-                             &text__in__, &text__in_len__))
-               return NULL;
-       text__len__ = text__in_len__;
-       TESetText(text__in__, text__len__,
-                 _self->ob_itself);
-       Py_INCREF(Py_None);
-       _res = Py_None;
- text__error__: ;
-       return _res;
-}
-
-static PyObject *TEObj_TEGetText(_self, _args)
-       TEObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       CharsHandle _rv;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _rv = TEGetText(_self->ob_itself);
-       _res = Py_BuildValue("O&",
-                            ResObj_New, _rv);
-       return _res;
-}
-
-static PyObject *TEObj_TEIdle(_self, _args)
-       TEObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       TEIdle(_self->ob_itself);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *TEObj_TESetSelect(_self, _args)
-       TEObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       long selStart;
-       long selEnd;
-       if (!PyArg_ParseTuple(_args, "ll",
-                             &selStart,
-                             &selEnd))
-               return NULL;
-       TESetSelect(selStart,
-                   selEnd,
-                   _self->ob_itself);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *TEObj_TEActivate(_self, _args)
-       TEObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       TEActivate(_self->ob_itself);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *TEObj_TEDeactivate(_self, _args)
-       TEObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       TEDeactivate(_self->ob_itself);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *TEObj_TEKey(_self, _args)
-       TEObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       CharParameter key;
-       if (!PyArg_ParseTuple(_args, "h",
-                             &key))
-               return NULL;
-       TEKey(key,
-             _self->ob_itself);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *TEObj_TECut(_self, _args)
-       TEObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       TECut(_self->ob_itself);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *TEObj_TECopy(_self, _args)
-       TEObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       TECopy(_self->ob_itself);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *TEObj_TEPaste(_self, _args)
-       TEObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       TEPaste(_self->ob_itself);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *TEObj_TEDelete(_self, _args)
-       TEObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       TEDelete(_self->ob_itself);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *TEObj_TEInsert(_self, _args)
-       TEObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       char *text__in__;
-       long text__len__;
-       int text__in_len__;
-       if (!PyArg_ParseTuple(_args, "s#",
-                             &text__in__, &text__in_len__))
-               return NULL;
-       text__len__ = text__in_len__;
-       TEInsert(text__in__, text__len__,
-                _self->ob_itself);
-       Py_INCREF(Py_None);
-       _res = Py_None;
- text__error__: ;
-       return _res;
-}
-
-static PyObject *TEObj_TESetAlignment(_self, _args)
-       TEObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       short just;
-       if (!PyArg_ParseTuple(_args, "h",
-                             &just))
-               return NULL;
-       TESetAlignment(just,
-                      _self->ob_itself);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *TEObj_TEUpdate(_self, _args)
-       TEObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Rect rUpdate;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             PyMac_GetRect, &rUpdate))
-               return NULL;
-       TEUpdate(&rUpdate,
-                _self->ob_itself);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *TEObj_TEScroll(_self, _args)
-       TEObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       short dh;
-       short dv;
-       if (!PyArg_ParseTuple(_args, "hh",
-                             &dh,
-                             &dv))
-               return NULL;
-       TEScroll(dh,
-                dv,
-                _self->ob_itself);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *TEObj_TESelView(_self, _args)
-       TEObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       TESelView(_self->ob_itself);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *TEObj_TEPinScroll(_self, _args)
-       TEObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       short dh;
-       short dv;
-       if (!PyArg_ParseTuple(_args, "hh",
-                             &dh,
-                             &dv))
-               return NULL;
-       TEPinScroll(dh,
-                   dv,
-                   _self->ob_itself);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *TEObj_TEAutoView(_self, _args)
-       TEObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Boolean fAuto;
-       if (!PyArg_ParseTuple(_args, "b",
-                             &fAuto))
-               return NULL;
-       TEAutoView(fAuto,
-                  _self->ob_itself);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *TEObj_TECalText(_self, _args)
-       TEObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       TECalText(_self->ob_itself);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *TEObj_TEGetOffset(_self, _args)
-       TEObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       short _rv;
-       Point pt;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             PyMac_GetPoint, &pt))
-               return NULL;
-       _rv = TEGetOffset(pt,
-                         _self->ob_itself);
-       _res = Py_BuildValue("h",
-                            _rv);
-       return _res;
-}
-
-static PyObject *TEObj_TEGetPoint(_self, _args)
-       TEObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Point _rv;
-       short offset;
-       if (!PyArg_ParseTuple(_args, "h",
-                             &offset))
-               return NULL;
-       _rv = TEGetPoint(offset,
-                        _self->ob_itself);
-       _res = Py_BuildValue("O&",
-                            PyMac_BuildPoint, _rv);
-       return _res;
-}
-
-static PyObject *TEObj_TEClick(_self, _args)
-       TEObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Point pt;
-       Boolean fExtend;
-       if (!PyArg_ParseTuple(_args, "O&b",
-                             PyMac_GetPoint, &pt,
-                             &fExtend))
-               return NULL;
-       TEClick(pt,
-               fExtend,
-               _self->ob_itself);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *TEObj_TESetStyleHandle(_self, _args)
-       TEObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       TEStyleHandle theHandle;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             ResObj_Convert, &theHandle))
-               return NULL;
-       TESetStyleHandle(theHandle,
-                        _self->ob_itself);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *TEObj_TEGetStyleHandle(_self, _args)
-       TEObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       TEStyleHandle _rv;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _rv = TEGetStyleHandle(_self->ob_itself);
-       _res = Py_BuildValue("O&",
-                            ResObj_New, _rv);
-       return _res;
-}
-
-static PyObject *TEObj_TEGetStyle(_self, _args)
-       TEObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       short offset;
-       TextStyle theStyle;
-       short lineHeight;
-       short fontAscent;
-       if (!PyArg_ParseTuple(_args, "h",
-                             &offset))
-               return NULL;
-       TEGetStyle(offset,
-                  &theStyle,
-                  &lineHeight,
-                  &fontAscent,
-                  _self->ob_itself);
-       _res = Py_BuildValue("O&hh",
-                            TextStyle_New, &theStyle,
-                            lineHeight,
-                            fontAscent);
-       return _res;
-}
-
-static PyObject *TEObj_TEStylePaste(_self, _args)
-       TEObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       TEStylePaste(_self->ob_itself);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *TEObj_TESetStyle(_self, _args)
-       TEObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       short mode;
-       TextStyle newStyle;
-       Boolean fRedraw;
-       if (!PyArg_ParseTuple(_args, "hO&b",
-                             &mode,
-                             TextStyle_Convert, &newStyle,
-                             &fRedraw))
-               return NULL;
-       TESetStyle(mode,
-                  &newStyle,
-                  fRedraw,
-                  _self->ob_itself);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *TEObj_TEReplaceStyle(_self, _args)
-       TEObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       short mode;
-       TextStyle oldStyle;
-       TextStyle newStyle;
-       Boolean fRedraw;
-       if (!PyArg_ParseTuple(_args, "hO&O&b",
-                             &mode,
-                             TextStyle_Convert, &oldStyle,
-                             TextStyle_Convert, &newStyle,
-                             &fRedraw))
-               return NULL;
-       TEReplaceStyle(mode,
-                      &oldStyle,
-                      &newStyle,
-                      fRedraw,
-                      _self->ob_itself);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *TEObj_TEGetStyleScrapHandle(_self, _args)
-       TEObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       StScrpHandle _rv;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _rv = TEGetStyleScrapHandle(_self->ob_itself);
-       _res = Py_BuildValue("O&",
-                            ResObj_New, _rv);
-       return _res;
-}
-
-static PyObject *TEObj_TEStyleInsert(_self, _args)
-       TEObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       char *text__in__;
-       long text__len__;
-       int text__in_len__;
-       StScrpHandle hST;
-       if (!PyArg_ParseTuple(_args, "s#O&",
-                             &text__in__, &text__in_len__,
-                             ResObj_Convert, &hST))
-               return NULL;
-       text__len__ = text__in_len__;
-       TEStyleInsert(text__in__, text__len__,
-                     hST,
-                     _self->ob_itself);
-       Py_INCREF(Py_None);
-       _res = Py_None;
- text__error__: ;
-       return _res;
-}
-
-static PyObject *TEObj_TEGetHeight(_self, _args)
-       TEObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       long _rv;
-       long endLine;
-       long startLine;
-       if (!PyArg_ParseTuple(_args, "ll",
-                             &endLine,
-                             &startLine))
-               return NULL;
-       _rv = TEGetHeight(endLine,
-                         startLine,
-                         _self->ob_itself);
-       _res = Py_BuildValue("l",
-                            _rv);
-       return _res;
-}
-
-static PyObject *TEObj_TEContinuousStyle(_self, _args)
-       TEObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Boolean _rv;
-       short mode;
-       TextStyle aStyle;
-       if (!PyArg_ParseTuple(_args, "hO&",
-                             &mode,
-                             TextStyle_Convert, &aStyle))
-               return NULL;
-       _rv = TEContinuousStyle(&mode,
-                               &aStyle,
-                               _self->ob_itself);
-       _res = Py_BuildValue("bhO&",
-                            _rv,
-                            mode,
-                            TextStyle_New, &aStyle);
-       return _res;
-}
-
-static PyObject *TEObj_TEUseStyleScrap(_self, _args)
-       TEObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       long rangeStart;
-       long rangeEnd;
-       StScrpHandle newStyles;
-       Boolean fRedraw;
-       if (!PyArg_ParseTuple(_args, "llO&b",
-                             &rangeStart,
-                             &rangeEnd,
-                             ResObj_Convert, &newStyles,
-                             &fRedraw))
-               return NULL;
-       TEUseStyleScrap(rangeStart,
-                       rangeEnd,
-                       newStyles,
-                       fRedraw,
-                       _self->ob_itself);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *TEObj_TENumStyles(_self, _args)
-       TEObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       long _rv;
-       long rangeStart;
-       long rangeEnd;
-       if (!PyArg_ParseTuple(_args, "ll",
-                             &rangeStart,
-                             &rangeEnd))
-               return NULL;
-       _rv = TENumStyles(rangeStart,
-                         rangeEnd,
-                         _self->ob_itself);
-       _res = Py_BuildValue("l",
-                            _rv);
-       return _res;
-}
-
-static PyObject *TEObj_TEFeatureFlag(_self, _args)
-       TEObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       short _rv;
-       short feature;
-       short action;
-       if (!PyArg_ParseTuple(_args, "hh",
-                             &feature,
-                             &action))
-               return NULL;
-       _rv = TEFeatureFlag(feature,
-                           action,
-                           _self->ob_itself);
-       _res = Py_BuildValue("h",
-                            _rv);
-       return _res;
-}
-
-static PyObject *TEObj_TEGetHiliteRgn(_self, _args)
-       TEObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       RgnHandle region;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             ResObj_Convert, &region))
-               return NULL;
-       _err = TEGetHiliteRgn(region,
-                             _self->ob_itself);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *TEObj_as_Resource(_self, _args)
-       TEObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Handle _rv;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _rv = as_Resource(_self->ob_itself);
-       _res = Py_BuildValue("O&",
-                            ResObj_New, _rv);
-       return _res;
-}
-
-static PyMethodDef TEObj_methods[] = {
-       {"TESetText", (PyCFunction)TEObj_TESetText, 1,
-        "(Buffer text) -> None"},
-       {"TEGetText", (PyCFunction)TEObj_TEGetText, 1,
-        "() -> (CharsHandle _rv)"},
-       {"TEIdle", (PyCFunction)TEObj_TEIdle, 1,
-        "() -> None"},
-       {"TESetSelect", (PyCFunction)TEObj_TESetSelect, 1,
-        "(long selStart, long selEnd) -> None"},
-       {"TEActivate", (PyCFunction)TEObj_TEActivate, 1,
-        "() -> None"},
-       {"TEDeactivate", (PyCFunction)TEObj_TEDeactivate, 1,
-        "() -> None"},
-       {"TEKey", (PyCFunction)TEObj_TEKey, 1,
-        "(CharParameter key) -> None"},
-       {"TECut", (PyCFunction)TEObj_TECut, 1,
-        "() -> None"},
-       {"TECopy", (PyCFunction)TEObj_TECopy, 1,
-        "() -> None"},
-       {"TEPaste", (PyCFunction)TEObj_TEPaste, 1,
-        "() -> None"},
-       {"TEDelete", (PyCFunction)TEObj_TEDelete, 1,
-        "() -> None"},
-       {"TEInsert", (PyCFunction)TEObj_TEInsert, 1,
-        "(Buffer text) -> None"},
-       {"TESetAlignment", (PyCFunction)TEObj_TESetAlignment, 1,
-        "(short just) -> None"},
-       {"TEUpdate", (PyCFunction)TEObj_TEUpdate, 1,
-        "(Rect rUpdate) -> None"},
-       {"TEScroll", (PyCFunction)TEObj_TEScroll, 1,
-        "(short dh, short dv) -> None"},
-       {"TESelView", (PyCFunction)TEObj_TESelView, 1,
-        "() -> None"},
-       {"TEPinScroll", (PyCFunction)TEObj_TEPinScroll, 1,
-        "(short dh, short dv) -> None"},
-       {"TEAutoView", (PyCFunction)TEObj_TEAutoView, 1,
-        "(Boolean fAuto) -> None"},
-       {"TECalText", (PyCFunction)TEObj_TECalText, 1,
-        "() -> None"},
-       {"TEGetOffset", (PyCFunction)TEObj_TEGetOffset, 1,
-        "(Point pt) -> (short _rv)"},
-       {"TEGetPoint", (PyCFunction)TEObj_TEGetPoint, 1,
-        "(short offset) -> (Point _rv)"},
-       {"TEClick", (PyCFunction)TEObj_TEClick, 1,
-        "(Point pt, Boolean fExtend) -> None"},
-       {"TESetStyleHandle", (PyCFunction)TEObj_TESetStyleHandle, 1,
-        "(TEStyleHandle theHandle) -> None"},
-       {"TEGetStyleHandle", (PyCFunction)TEObj_TEGetStyleHandle, 1,
-        "() -> (TEStyleHandle _rv)"},
-       {"TEGetStyle", (PyCFunction)TEObj_TEGetStyle, 1,
-        "(short offset) -> (TextStyle theStyle, short lineHeight, short fontAscent)"},
-       {"TEStylePaste", (PyCFunction)TEObj_TEStylePaste, 1,
-        "() -> None"},
-       {"TESetStyle", (PyCFunction)TEObj_TESetStyle, 1,
-        "(short mode, TextStyle newStyle, Boolean fRedraw) -> None"},
-       {"TEReplaceStyle", (PyCFunction)TEObj_TEReplaceStyle, 1,
-        "(short mode, TextStyle oldStyle, TextStyle newStyle, Boolean fRedraw) -> None"},
-       {"TEGetStyleScrapHandle", (PyCFunction)TEObj_TEGetStyleScrapHandle, 1,
-        "() -> (StScrpHandle _rv)"},
-       {"TEStyleInsert", (PyCFunction)TEObj_TEStyleInsert, 1,
-        "(Buffer text, StScrpHandle hST) -> None"},
-       {"TEGetHeight", (PyCFunction)TEObj_TEGetHeight, 1,
-        "(long endLine, long startLine) -> (long _rv)"},
-       {"TEContinuousStyle", (PyCFunction)TEObj_TEContinuousStyle, 1,
-        "(short mode, TextStyle aStyle) -> (Boolean _rv, short mode, TextStyle aStyle)"},
-       {"TEUseStyleScrap", (PyCFunction)TEObj_TEUseStyleScrap, 1,
-        "(long rangeStart, long rangeEnd, StScrpHandle newStyles, Boolean fRedraw) -> None"},
-       {"TENumStyles", (PyCFunction)TEObj_TENumStyles, 1,
-        "(long rangeStart, long rangeEnd) -> (long _rv)"},
-       {"TEFeatureFlag", (PyCFunction)TEObj_TEFeatureFlag, 1,
-        "(short feature, short action) -> (short _rv)"},
-       {"TEGetHiliteRgn", (PyCFunction)TEObj_TEGetHiliteRgn, 1,
-        "(RgnHandle region) -> None"},
-       {"as_Resource", (PyCFunction)TEObj_as_Resource, 1,
-        "() -> (Handle _rv)"},
-       {NULL, NULL, 0}
-};
-
-PyMethodChain TEObj_chain = { TEObj_methods, NULL };
-
-static PyObject *TEObj_getattr(self, name)
-       TEObject *self;
-       char *name;
-{
-
-                               if( strcmp(name, "destRect") == 0 )
-                                       return Py_BuildValue("O&", PyMac_BuildRect,
-                                                       &(*self->ob_itself)->destRect);
-                               if( strcmp(name, "viewRect") == 0 )
-                                       return Py_BuildValue("O&", PyMac_BuildRect,
-                                                       &(*self->ob_itself)->viewRect);
-                               if( strcmp(name, "selRect") == 0 )
-                                       return Py_BuildValue("O&", PyMac_BuildRect,
-                                                       &(*self->ob_itself)->selRect);
-                               if( strcmp(name, "lineHeight") == 0 )
-                                       return Py_BuildValue("h", (*self->ob_itself)->lineHeight);
-                               if( strcmp(name, "fontAscent") == 0 )
-                                       return Py_BuildValue("h", (*self->ob_itself)->fontAscent);
-                               if( strcmp(name, "selPoint") == 0 )
-                                       return Py_BuildValue("O&", PyMac_BuildPoint,
-                                                       (*self->ob_itself)->selPoint);
-                               if( strcmp(name, "selStart") == 0 )
-                                       return Py_BuildValue("h", (*self->ob_itself)->selStart);
-                               if( strcmp(name, "selEnd") == 0 )
-                                       return Py_BuildValue("h", (*self->ob_itself)->selEnd);
-                               if( strcmp(name, "active") == 0 )
-                                       return Py_BuildValue("h", (*self->ob_itself)->active);
-                               if( strcmp(name, "just") == 0 )
-                                       return Py_BuildValue("h", (*self->ob_itself)->just);
-                               if( strcmp(name, "teLength") == 0 )
-                                       return Py_BuildValue("h", (*self->ob_itself)->teLength);
-                               if( strcmp(name, "txFont") == 0 )
-                                       return Py_BuildValue("h", (*self->ob_itself)->txFont);
-                               if( strcmp(name, "txFace") == 0 )
-                                       return Py_BuildValue("h", (*self->ob_itself)->txFace);
-                               if( strcmp(name, "txMode") == 0 )
-                                       return Py_BuildValue("h", (*self->ob_itself)->txMode);
-                               if( strcmp(name, "txSize") == 0 )
-                                       return Py_BuildValue("h", (*self->ob_itself)->txSize);
-                               if( strcmp(name, "nLines") == 0 )
-                                       return Py_BuildValue("h", (*self->ob_itself)->nLines);
-                       
-       return Py_FindMethodInChain(&TEObj_chain, (PyObject *)self, name);
-}
-
-#define TEObj_setattr NULL
-
-#define TEObj_compare NULL
-
-#define TEObj_repr NULL
-
-#define TEObj_hash NULL
-
-PyTypeObject TE_Type = {
-       PyObject_HEAD_INIT(&PyType_Type)
-       0, /*ob_size*/
-       "TE", /*tp_name*/
-       sizeof(TEObject), /*tp_basicsize*/
-       0, /*tp_itemsize*/
-       /* methods */
-       (destructor) TEObj_dealloc, /*tp_dealloc*/
-       0, /*tp_print*/
-       (getattrfunc) TEObj_getattr, /*tp_getattr*/
-       (setattrfunc) TEObj_setattr, /*tp_setattr*/
-       (cmpfunc) TEObj_compare, /*tp_compare*/
-       (reprfunc) TEObj_repr, /*tp_repr*/
-       (PyNumberMethods *)0, /* tp_as_number */
-       (PySequenceMethods *)0, /* tp_as_sequence */
-       (PyMappingMethods *)0, /* tp_as_mapping */
-       (hashfunc) TEObj_hash, /*tp_hash*/
-};
-
-/* ----------------------- End object type TE ----------------------- */
-
-
-static PyObject *TE_TEScrapHandle(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Handle _rv;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _rv = TEScrapHandle();
-       _res = Py_BuildValue("O&",
-                            ResObj_New, _rv);
-       return _res;
-}
-
-static PyObject *TE_TEGetScrapLength(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       long _rv;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _rv = TEGetScrapLength();
-       _res = Py_BuildValue("l",
-                            _rv);
-       return _res;
-}
-
-static PyObject *TE_TENew(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       TEHandle _rv;
-       Rect destRect;
-       Rect viewRect;
-       if (!PyArg_ParseTuple(_args, "O&O&",
-                             PyMac_GetRect, &destRect,
-                             PyMac_GetRect, &viewRect))
-               return NULL;
-       _rv = TENew(&destRect,
-                   &viewRect);
-       _res = Py_BuildValue("O&",
-                            TEObj_New, _rv);
-       return _res;
-}
-
-static PyObject *TE_TETextBox(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       char *text__in__;
-       long text__len__;
-       int text__in_len__;
-       Rect box;
-       short just;
-       if (!PyArg_ParseTuple(_args, "s#O&h",
-                             &text__in__, &text__in_len__,
-                             PyMac_GetRect, &box,
-                             &just))
-               return NULL;
-       text__len__ = text__in_len__;
-       TETextBox(text__in__, text__len__,
-                 &box,
-                 just);
-       Py_INCREF(Py_None);
-       _res = Py_None;
- text__error__: ;
-       return _res;
-}
-
-static PyObject *TE_TEStyleNew(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       TEHandle _rv;
-       Rect destRect;
-       Rect viewRect;
-       if (!PyArg_ParseTuple(_args, "O&O&",
-                             PyMac_GetRect, &destRect,
-                             PyMac_GetRect, &viewRect))
-               return NULL;
-       _rv = TEStyleNew(&destRect,
-                        &viewRect);
-       _res = Py_BuildValue("O&",
-                            TEObj_New, _rv);
-       return _res;
-}
-
-static PyObject *TE_TESetScrapLength(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       long length;
-       if (!PyArg_ParseTuple(_args, "l",
-                             &length))
-               return NULL;
-       TESetScrapLength(length);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *TE_TEFromScrap(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _err = TEFromScrap();
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *TE_TEToScrap(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _err = TEToScrap();
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-#if TARGET_API_MAC_CARBON
-
-static PyObject *TE_TEGetScrapHandle(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Handle _rv;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _rv = TEGetScrapHandle();
-       _res = Py_BuildValue("O&",
-                            ResObj_New, _rv);
-       return _res;
-}
-#endif
-
-#if TARGET_API_MAC_CARBON
-
-static PyObject *TE_TESetScrapHandle(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Handle value;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             ResObj_Convert, &value))
-               return NULL;
-       TESetScrapHandle(value);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-#endif
-
-static PyObject *TE_as_TE(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       TEHandle _rv;
-       Handle h;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             ResObj_Convert, &h))
-               return NULL;
-       _rv = as_TE(h);
-       _res = Py_BuildValue("O&",
-                            TEObj_New, _rv);
-       return _res;
-}
-
-static PyMethodDef TE_methods[] = {
-       {"TEScrapHandle", (PyCFunction)TE_TEScrapHandle, 1,
-        "() -> (Handle _rv)"},
-       {"TEGetScrapLength", (PyCFunction)TE_TEGetScrapLength, 1,
-        "() -> (long _rv)"},
-       {"TENew", (PyCFunction)TE_TENew, 1,
-        "(Rect destRect, Rect viewRect) -> (TEHandle _rv)"},
-       {"TETextBox", (PyCFunction)TE_TETextBox, 1,
-        "(Buffer text, Rect box, short just) -> None"},
-       {"TEStyleNew", (PyCFunction)TE_TEStyleNew, 1,
-        "(Rect destRect, Rect viewRect) -> (TEHandle _rv)"},
-       {"TESetScrapLength", (PyCFunction)TE_TESetScrapLength, 1,
-        "(long length) -> None"},
-       {"TEFromScrap", (PyCFunction)TE_TEFromScrap, 1,
-        "() -> None"},
-       {"TEToScrap", (PyCFunction)TE_TEToScrap, 1,
-        "() -> None"},
-
-#if TARGET_API_MAC_CARBON
-       {"TEGetScrapHandle", (PyCFunction)TE_TEGetScrapHandle, 1,
-        "() -> (Handle _rv)"},
-#endif
-
-#if TARGET_API_MAC_CARBON
-       {"TESetScrapHandle", (PyCFunction)TE_TESetScrapHandle, 1,
-        "(Handle value) -> None"},
-#endif
-       {"as_TE", (PyCFunction)TE_as_TE, 1,
-        "(Handle h) -> (TEHandle _rv)"},
-       {NULL, NULL, 0}
-};
-
-
-
-
-void initTE()
-{
-       PyObject *m;
-       PyObject *d;
-
-
-
-
-       m = Py_InitModule("TE", TE_methods);
-       d = PyModule_GetDict(m);
-       TE_Error = PyMac_GetOSErrException();
-       if (TE_Error == NULL ||
-           PyDict_SetItemString(d, "Error", TE_Error) != 0)
-               return;
-       TE_Type.ob_type = &PyType_Type;
-       Py_INCREF(&TE_Type);
-       if (PyDict_SetItemString(d, "TEType", (PyObject *)&TE_Type) != 0)
-               Py_FatalError("can't initialize TEType");
-}
-
-/* ========================= End module TE ========================== */
-
diff --git a/Mac/Modules/te/tesupport.py b/Mac/Modules/te/tesupport.py
deleted file mode 100644 (file)
index 337ac2b..0000000
+++ /dev/null
@@ -1,161 +0,0 @@
-# This script generates a Python interface for an Apple Macintosh Manager.
-# It uses the "bgen" package to generate C code.
-# The function specifications are generated by scanning the mamager's header file,
-# using the "scantools" package (customized for this particular manager).
-
-import string
-
-# Declarations that change for each manager
-MACHEADERFILE = 'TextEdit.h'           # The Apple header file
-MODNAME = 'TE'                         # The name of the module
-OBJECTNAME = 'TE'                      # The basic name of the objects used here
-KIND = 'Handle'                                # Usually 'Ptr' or 'Handle'
-
-# The following is *usually* unchanged but may still require tuning
-MODPREFIX = MODNAME                    # The prefix for module-wide routines
-OBJECTTYPE = "TEHandle"                # The C type used to represent them
-OBJECTPREFIX = MODPREFIX + 'Obj'       # The prefix for object methods
-INPUTFILE = string.lower(MODPREFIX) + 'gen.py' # The file generated by the scanner
-OUTPUTFILE = MODNAME + "module.c"      # The file generated by this program
-
-from macsupport import *
-
-# Create the type objects
-TEHandle = OpaqueByValueType("TEHandle", "TEObj")
-CharsHandle = OpaqueByValueType("CharsHandle", "ResObj")
-Handle = OpaqueByValueType("Handle", "ResObj")
-StScrpHandle = OpaqueByValueType("StScrpHandle", "ResObj")
-TEStyleHandle = OpaqueByValueType("TEStyleHandle", "ResObj")
-RgnHandle = OpaqueByValueType("RgnHandle", "ResObj")
-
-TextStyle = OpaqueType("TextStyle", "TextStyle")
-TextStyle_ptr = TextStyle
-
-includestuff = includestuff + """
-#include <%s>""" % MACHEADERFILE + """
-
-#define as_TE(h) ((TEHandle)h)
-#define as_Resource(teh) ((Handle)teh)
-
-/*
-** Parse/generate TextStyle records
-*/
-static PyObject *
-TextStyle_New(itself)
-       TextStylePtr itself;
-{
-
-       return Py_BuildValue("lllO&", (long)itself->tsFont, (long)itself->tsFace, (long)itself->tsSize, QdRGB_New,
-                               &itself->tsColor);
-}
-
-static int
-TextStyle_Convert(v, p_itself)
-       PyObject *v;
-       TextStylePtr p_itself;
-{
-       long font, face, size;
-       
-       if( !PyArg_ParseTuple(v, "lllO&", &font, &face, &size, QdRGB_Convert, &p_itself->tsColor) )
-               return 0;
-       p_itself->tsFont = (short)font;
-       p_itself->tsFace = (Style)face;
-       p_itself->tsSize = (short)size;
-       return 1;
-}
-"""
-
-class TEMethodGenerator(OSErrMethodGenerator):
-       """Similar to MethodGenerator, but has self as last argument"""
-
-       def parseArgumentList(self, args):
-               args, a0 = args[:-1], args[-1]
-               t0, n0, m0 = a0
-               if m0 != InMode:
-                       raise ValueError, "method's 'self' must be 'InMode'"
-               self.itself = Variable(t0, "_self->ob_itself", SelfMode)
-               FunctionGenerator.parseArgumentList(self, args)
-               self.argumentList.append(self.itself)
-
-
-
-class MyObjectDefinition(GlobalObjectDefinition):
-       def outputCheckNewArg(self):
-               Output("""if (itself == NULL) {
-                                       PyErr_SetString(TE_Error,"Cannot create null TE");
-                                       return NULL;
-                               }""")
-       def outputFreeIt(self, itselfname):
-               Output("TEDispose(%s);", itselfname)
-               
-       def outputGetattrHook(self):
-               Output("""
-                       if( strcmp(name, "destRect") == 0 )
-                               return Py_BuildValue("O&", PyMac_BuildRect,
-                                               &(*self->ob_itself)->destRect);
-                       if( strcmp(name, "viewRect") == 0 )
-                               return Py_BuildValue("O&", PyMac_BuildRect,
-                                               &(*self->ob_itself)->viewRect);
-                       if( strcmp(name, "selRect") == 0 )
-                               return Py_BuildValue("O&", PyMac_BuildRect,
-                                               &(*self->ob_itself)->selRect);
-                       if( strcmp(name, "lineHeight") == 0 )
-                               return Py_BuildValue("h", (*self->ob_itself)->lineHeight);
-                       if( strcmp(name, "fontAscent") == 0 )
-                               return Py_BuildValue("h", (*self->ob_itself)->fontAscent);
-                       if( strcmp(name, "selPoint") == 0 )
-                               return Py_BuildValue("O&", PyMac_BuildPoint,
-                                               (*self->ob_itself)->selPoint);
-                       if( strcmp(name, "selStart") == 0 )
-                               return Py_BuildValue("h", (*self->ob_itself)->selStart);
-                       if( strcmp(name, "selEnd") == 0 )
-                               return Py_BuildValue("h", (*self->ob_itself)->selEnd);
-                       if( strcmp(name, "active") == 0 )
-                               return Py_BuildValue("h", (*self->ob_itself)->active);
-                       if( strcmp(name, "just") == 0 )
-                               return Py_BuildValue("h", (*self->ob_itself)->just);
-                       if( strcmp(name, "teLength") == 0 )
-                               return Py_BuildValue("h", (*self->ob_itself)->teLength);
-                       if( strcmp(name, "txFont") == 0 )
-                               return Py_BuildValue("h", (*self->ob_itself)->txFont);
-                       if( strcmp(name, "txFace") == 0 )
-                               return Py_BuildValue("h", (*self->ob_itself)->txFace);
-                       if( strcmp(name, "txMode") == 0 )
-                               return Py_BuildValue("h", (*self->ob_itself)->txMode);
-                       if( strcmp(name, "txSize") == 0 )
-                               return Py_BuildValue("h", (*self->ob_itself)->txSize);
-                       if( strcmp(name, "nLines") == 0 )
-                               return Py_BuildValue("h", (*self->ob_itself)->nLines);
-               """)
-
-# From here on it's basically all boiler plate...
-
-# Create the generator groups and link them
-module = MacModule(MODNAME, MODPREFIX, includestuff, finalstuff, initstuff)
-object = MyObjectDefinition(OBJECTNAME, OBJECTPREFIX, OBJECTTYPE)
-module.addobject(object)
-
-# Create the generator classes used to populate the lists
-Function = OSErrFunctionGenerator
-Method = TEMethodGenerator
-
-# Create and populate the lists
-functions = []
-methods = []
-execfile(INPUTFILE)
-
-# Converter from/to handle
-f = Function(TEHandle, 'as_TE', (Handle, 'h', InMode))
-functions.append(f)
-f = Method(Handle, 'as_Resource', (TEHandle, 'teh', InMode))
-methods.append(f)
-
-# add the populated lists to the generator groups
-# (in a different wordl the scan program would generate this)
-for f in functions: module.add(f)
-for f in methods: object.add(f)
-
-# generate output (open the output file as late as possible)
-SetOutputFileName(OUTPUTFILE)
-module.generate()
-
diff --git a/Mac/Modules/waste/wastemodule.c b/Mac/Modules/waste/wastemodule.c
deleted file mode 100644 (file)
index 6f8c53d..0000000
+++ /dev/null
@@ -1,2298 +0,0 @@
-
-/* ========================== Module waste ========================== */
-
-#include "Python.h"
-
-
-
-#include "macglue.h"
-#include "pymactoolbox.h"
-
-#include <WASTE.h>
-#include <WEObjectHandlers.h>
-#include <WETabs.h>
-
-/* Exported by Qdmodule.c: */
-extern PyObject *QdRGB_New(RGBColor *);
-extern int QdRGB_Convert(PyObject *, RGBColor *);
-
-/* Exported by AEModule.c: */
-extern PyObject *AEDesc_New(AppleEvent *);
-extern int AEDesc_Convert(PyObject *, AppleEvent *);
-
-/* Forward declaration */
-staticforward PyObject *WEOObj_New(WEObjectReference);
-staticforward PyObject *ExistingwasteObj_New(WEReference);
-
-/*
-** Parse/generate TextStyle records
-*/
-static
-PyObject *TextStyle_New(itself)
-       TextStylePtr itself;
-{
-
-       return Py_BuildValue("lllO&", (long)itself->tsFont, (long)itself->tsFace, (long)itself->tsSize, QdRGB_New,
-                               &itself->tsColor);
-}
-
-static
-TextStyle_Convert(v, p_itself)
-       PyObject *v;
-       TextStylePtr p_itself;
-{
-       long font, face, size;
-       
-       if( !PyArg_ParseTuple(v, "lllO&", &font, &face, &size, QdRGB_Convert, &p_itself->tsColor) )
-               return 0;
-       p_itself->tsFont = (short)font;
-       p_itself->tsFace = (Style)face;
-       p_itself->tsSize = (short)size;
-       return 1;
-}
-
-/*
-** Parse/generate RunInfo records
-*/
-static
-PyObject *RunInfo_New(itself)
-       WERunInfo *itself;
-{
-
-       return Py_BuildValue("llhhO&O&", itself->runStart, itself->runEnd, itself->runHeight,
-               itself->runAscent, TextStyle_New, &itself->runStyle, WEOObj_New, itself->runObject);
-}
-
-/* Conversion of long points and rects */
-int
-LongRect_Convert(PyObject *v, LongRect *r)
-{
-       return PyArg_Parse(v, "(llll)", &r->left, &r->top, &r->right, &r->bottom);
-}
-
-PyObject *
-LongRect_New(LongRect *r)
-{
-       return Py_BuildValue("(llll)", r->left, r->top, r->right, r->bottom);
-}
-
-
-LongPt_Convert(PyObject *v, LongPt *p)
-{
-       return PyArg_Parse(v, "(ll)", &p->h, &p->v);
-}
-
-PyObject *
-LongPt_New(LongPt *p)
-{
-       return Py_BuildValue("(ll)", p->h, p->v);
-}
-
-/* Stuff for the callbacks: */
-static PyObject *callbackdict;
-WENewObjectUPP upp_new_handler;
-WEDisposeObjectUPP upp_dispose_handler;
-WEDrawObjectUPP upp_draw_handler;
-WEClickObjectUPP upp_click_handler;
-
-static OSErr
-any_handler(WESelector what, WEObjectReference who, PyObject *args, PyObject **rv)
-{
-       FlavorType tp;
-       PyObject *key, *func;
-       
-       if ( args == NULL ) return errAECorruptData;
-       
-       tp = WEGetObjectType(who);
-       
-       if( (key=Py_BuildValue("O&O&", PyMac_BuildOSType, tp, PyMac_BuildOSType, what)) == NULL)
-               return errAECorruptData;
-       if( (func = PyDict_GetItem(callbackdict, key)) == NULL ) {
-               Py_DECREF(key);
-               return errAEHandlerNotFound;
-       }
-       Py_INCREF(func);
-       *rv = PyEval_CallObject(func, args);
-       Py_DECREF(func);
-       Py_DECREF(key);
-       if ( *rv == NULL ) {
-               PySys_WriteStderr("--Exception in callback: ");
-               PyErr_Print();
-               return errAEReplyNotArrived;
-       }
-       return 0;
-}
-
-static pascal OSErr
-my_new_handler(Point *objectSize, WEObjectReference objref)
-{
-       PyObject *args=NULL, *rv=NULL;
-       OSErr err;
-       
-       args=Py_BuildValue("(O&)", WEOObj_New, objref);
-       err = any_handler(weNewHandler, objref, args, &rv);
-       if (!err) {
-               if (!PyMac_GetPoint(rv, objectSize) )
-                       err = errAECoercionFail;
-       }
-       if ( args ) Py_DECREF(args);
-       if ( rv ) Py_DECREF(rv);
-       return err;
-}
-
-static pascal OSErr
-my_dispose_handler(WEObjectReference objref)
-{
-       PyObject *args=NULL, *rv=NULL;
-       OSErr err;
-       
-       args=Py_BuildValue("(O&)", WEOObj_New, objref);
-       err = any_handler(weDisposeHandler, objref, args, &rv);
-       if ( args ) Py_DECREF(args);
-       if ( rv ) Py_DECREF(rv);
-       return err;
-}
-
-static pascal OSErr
-my_draw_handler(const Rect *destRect, WEObjectReference objref)
-{
-       PyObject *args=NULL, *rv=NULL;
-       OSErr err;
-       
-       args=Py_BuildValue("O&O&", PyMac_BuildRect, destRect, WEOObj_New, objref);
-       err = any_handler(weDrawHandler, objref, args, &rv);
-       if ( args ) Py_DECREF(args);
-       if ( rv ) Py_DECREF(rv);
-       return err;
-}
-
-static pascal Boolean
-my_click_handler(Point hitPt, EventModifiers modifiers,
-               unsigned long clickTime, WEObjectReference objref)
-{
-       PyObject *args=NULL, *rv=NULL;
-       int retvalue;
-       OSErr err;
-       
-       args=Py_BuildValue("O&llO&", PyMac_BuildPoint, hitPt,
-                       (long)modifiers, (long)clickTime, WEOObj_New, objref);
-       err = any_handler(weClickHandler, objref, args, &rv);
-       if (!err)
-               retvalue = PyInt_AsLong(rv);
-       else
-               retvalue = 0;
-       if ( args ) Py_DECREF(args);
-       if ( rv ) Py_DECREF(rv);
-       return retvalue;
-}
-               
-
-
-static PyObject *waste_Error;
-
-/* ------------------------ Object type WEO ------------------------- */
-
-PyTypeObject WEO_Type;
-
-#define WEOObj_Check(x) ((x)->ob_type == &WEO_Type)
-
-typedef struct WEOObject {
-       PyObject_HEAD
-       WEObjectReference ob_itself;
-} WEOObject;
-
-PyObject *WEOObj_New(itself)
-       WEObjectReference itself;
-{
-       WEOObject *it;
-       if (itself == NULL) {
-                                               Py_INCREF(Py_None);
-                                               return Py_None;
-                                       }
-       it = PyObject_NEW(WEOObject, &WEO_Type);
-       if (it == NULL) return NULL;
-       it->ob_itself = itself;
-       return (PyObject *)it;
-}
-WEOObj_Convert(v, p_itself)
-       PyObject *v;
-       WEObjectReference *p_itself;
-{
-       if (!WEOObj_Check(v))
-       {
-               PyErr_SetString(PyExc_TypeError, "WEO required");
-               return 0;
-       }
-       *p_itself = ((WEOObject *)v)->ob_itself;
-       return 1;
-}
-
-static void WEOObj_dealloc(self)
-       WEOObject *self;
-{
-       /* Cleanup of self->ob_itself goes here */
-       PyMem_DEL(self);
-}
-
-static PyObject *WEOObj_WEGetObjectType(_self, _args)
-       WEOObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       FlavorType _rv;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _rv = WEGetObjectType(_self->ob_itself);
-       _res = Py_BuildValue("O&",
-                            PyMac_BuildOSType, _rv);
-       return _res;
-}
-
-static PyObject *WEOObj_WEGetObjectDataHandle(_self, _args)
-       WEOObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Handle _rv;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _rv = WEGetObjectDataHandle(_self->ob_itself);
-       _res = Py_BuildValue("O&",
-                            ResObj_New, _rv);
-       return _res;
-}
-
-static PyObject *WEOObj_WEGetObjectSize(_self, _args)
-       WEOObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Point _rv;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _rv = WEGetObjectSize(_self->ob_itself);
-       _res = Py_BuildValue("O&",
-                            PyMac_BuildPoint, _rv);
-       return _res;
-}
-
-static PyObject *WEOObj_WEGetObjectOwner(_self, _args)
-       WEOObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       WEReference _rv;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _rv = WEGetObjectOwner(_self->ob_itself);
-       _res = Py_BuildValue("O&",
-                            ExistingwasteObj_New, _rv);
-       return _res;
-}
-
-static PyObject *WEOObj_WEGetObjectRefCon(_self, _args)
-       WEOObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       SInt32 _rv;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _rv = WEGetObjectRefCon(_self->ob_itself);
-       _res = Py_BuildValue("l",
-                            _rv);
-       return _res;
-}
-
-static PyObject *WEOObj_WESetObjectRefCon(_self, _args)
-       WEOObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       SInt32 refCon;
-       if (!PyArg_ParseTuple(_args, "l",
-                             &refCon))
-               return NULL;
-       WESetObjectRefCon(_self->ob_itself,
-                         refCon);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyMethodDef WEOObj_methods[] = {
-       {"WEGetObjectType", (PyCFunction)WEOObj_WEGetObjectType, 1,
-        "() -> (FlavorType _rv)"},
-       {"WEGetObjectDataHandle", (PyCFunction)WEOObj_WEGetObjectDataHandle, 1,
-        "() -> (Handle _rv)"},
-       {"WEGetObjectSize", (PyCFunction)WEOObj_WEGetObjectSize, 1,
-        "() -> (Point _rv)"},
-       {"WEGetObjectOwner", (PyCFunction)WEOObj_WEGetObjectOwner, 1,
-        "() -> (WEReference _rv)"},
-       {"WEGetObjectRefCon", (PyCFunction)WEOObj_WEGetObjectRefCon, 1,
-        "() -> (SInt32 _rv)"},
-       {"WESetObjectRefCon", (PyCFunction)WEOObj_WESetObjectRefCon, 1,
-        "(SInt32 refCon) -> None"},
-       {NULL, NULL, 0}
-};
-
-PyMethodChain WEOObj_chain = { WEOObj_methods, NULL };
-
-static PyObject *WEOObj_getattr(self, name)
-       WEOObject *self;
-       char *name;
-{
-       return Py_FindMethodInChain(&WEOObj_chain, (PyObject *)self, name);
-}
-
-#define WEOObj_setattr NULL
-
-#define WEOObj_compare NULL
-
-#define WEOObj_repr NULL
-
-#define WEOObj_hash NULL
-
-PyTypeObject WEO_Type = {
-       PyObject_HEAD_INIT(&PyType_Type)
-       0, /*ob_size*/
-       "WEO", /*tp_name*/
-       sizeof(WEOObject), /*tp_basicsize*/
-       0, /*tp_itemsize*/
-       /* methods */
-       (destructor) WEOObj_dealloc, /*tp_dealloc*/
-       0, /*tp_print*/
-       (getattrfunc) WEOObj_getattr, /*tp_getattr*/
-       (setattrfunc) WEOObj_setattr, /*tp_setattr*/
-       (cmpfunc) WEOObj_compare, /*tp_compare*/
-       (reprfunc) WEOObj_repr, /*tp_repr*/
-       (PyNumberMethods *)0, /* tp_as_number */
-       (PySequenceMethods *)0, /* tp_as_sequence */
-       (PyMappingMethods *)0, /* tp_as_mapping */
-       (hashfunc) WEOObj_hash, /*tp_hash*/
-};
-
-/* ---------------------- End object type WEO ----------------------- */
-
-
-/* ----------------------- Object type waste ------------------------ */
-
-PyTypeObject waste_Type;
-
-#define wasteObj_Check(x) ((x)->ob_type == &waste_Type)
-
-typedef struct wasteObject {
-       PyObject_HEAD
-       WEReference ob_itself;
-} wasteObject;
-
-PyObject *wasteObj_New(itself)
-       WEReference itself;
-{
-       wasteObject *it;
-       if (itself == NULL) {
-                                               PyErr_SetString(waste_Error,"Cannot create null WE");
-                                               return NULL;
-                                       }
-       it = PyObject_NEW(wasteObject, &waste_Type);
-       if (it == NULL) return NULL;
-       it->ob_itself = itself;
-       WESetInfo(weRefCon, (void *)&it, itself);
-       return (PyObject *)it;
-}
-wasteObj_Convert(v, p_itself)
-       PyObject *v;
-       WEReference *p_itself;
-{
-       if (!wasteObj_Check(v))
-       {
-               PyErr_SetString(PyExc_TypeError, "waste required");
-               return 0;
-       }
-       *p_itself = ((wasteObject *)v)->ob_itself;
-       return 1;
-}
-
-static void wasteObj_dealloc(self)
-       wasteObject *self;
-{
-       WEDispose(self->ob_itself);
-       PyMem_DEL(self);
-}
-
-static PyObject *wasteObj_WEGetText(_self, _args)
-       wasteObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Handle _rv;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _rv = WEGetText(_self->ob_itself);
-       _res = Py_BuildValue("O&",
-                            ResObj_New, _rv);
-       return _res;
-}
-
-static PyObject *wasteObj_WEGetChar(_self, _args)
-       wasteObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       SInt16 _rv;
-       SInt32 offset;
-       if (!PyArg_ParseTuple(_args, "l",
-                             &offset))
-               return NULL;
-       _rv = WEGetChar(offset,
-                       _self->ob_itself);
-       _res = Py_BuildValue("h",
-                            _rv);
-       return _res;
-}
-
-static PyObject *wasteObj_WEGetTextLength(_self, _args)
-       wasteObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       SInt32 _rv;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _rv = WEGetTextLength(_self->ob_itself);
-       _res = Py_BuildValue("l",
-                            _rv);
-       return _res;
-}
-
-static PyObject *wasteObj_WEGetHeight(_self, _args)
-       wasteObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       SInt32 _rv;
-       SInt32 startLine;
-       SInt32 endLine;
-       if (!PyArg_ParseTuple(_args, "ll",
-                             &startLine,
-                             &endLine))
-               return NULL;
-       _rv = WEGetHeight(startLine,
-                         endLine,
-                         _self->ob_itself);
-       _res = Py_BuildValue("l",
-                            _rv);
-       return _res;
-}
-
-static PyObject *wasteObj_WEGetSelection(_self, _args)
-       wasteObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       SInt32 selStart;
-       SInt32 selEnd;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       WEGetSelection(&selStart,
-                      &selEnd,
-                      _self->ob_itself);
-       _res = Py_BuildValue("ll",
-                            selStart,
-                            selEnd);
-       return _res;
-}
-
-static PyObject *wasteObj_WEGetDestRect(_self, _args)
-       wasteObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       LongRect destRect;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       WEGetDestRect(&destRect,
-                     _self->ob_itself);
-       _res = Py_BuildValue("O&",
-                            LongRect_New, &destRect);
-       return _res;
-}
-
-static PyObject *wasteObj_WEGetViewRect(_self, _args)
-       wasteObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       LongRect viewRect;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       WEGetViewRect(&viewRect,
-                     _self->ob_itself);
-       _res = Py_BuildValue("O&",
-                            LongRect_New, &viewRect);
-       return _res;
-}
-
-static PyObject *wasteObj_WEIsActive(_self, _args)
-       wasteObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Boolean _rv;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _rv = WEIsActive(_self->ob_itself);
-       _res = Py_BuildValue("b",
-                            _rv);
-       return _res;
-}
-
-static PyObject *wasteObj_WEOffsetToLine(_self, _args)
-       wasteObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       SInt32 _rv;
-       SInt32 offset;
-       if (!PyArg_ParseTuple(_args, "l",
-                             &offset))
-               return NULL;
-       _rv = WEOffsetToLine(offset,
-                            _self->ob_itself);
-       _res = Py_BuildValue("l",
-                            _rv);
-       return _res;
-}
-
-static PyObject *wasteObj_WEGetLineRange(_self, _args)
-       wasteObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       SInt32 lineIndex;
-       SInt32 lineStart;
-       SInt32 lineEnd;
-       if (!PyArg_ParseTuple(_args, "l",
-                             &lineIndex))
-               return NULL;
-       WEGetLineRange(lineIndex,
-                      &lineStart,
-                      &lineEnd,
-                      _self->ob_itself);
-       _res = Py_BuildValue("ll",
-                            lineStart,
-                            lineEnd);
-       return _res;
-}
-
-static PyObject *wasteObj_WECountLines(_self, _args)
-       wasteObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       SInt32 _rv;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _rv = WECountLines(_self->ob_itself);
-       _res = Py_BuildValue("l",
-                            _rv);
-       return _res;
-}
-
-static PyObject *wasteObj_WEOffsetToRun(_self, _args)
-       wasteObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       SInt32 _rv;
-       SInt32 offset;
-       if (!PyArg_ParseTuple(_args, "l",
-                             &offset))
-               return NULL;
-       _rv = WEOffsetToRun(offset,
-                           _self->ob_itself);
-       _res = Py_BuildValue("l",
-                            _rv);
-       return _res;
-}
-
-static PyObject *wasteObj_WEGetRunRange(_self, _args)
-       wasteObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       SInt32 runIndex;
-       SInt32 runStart;
-       SInt32 runEnd;
-       if (!PyArg_ParseTuple(_args, "l",
-                             &runIndex))
-               return NULL;
-       WEGetRunRange(runIndex,
-                     &runStart,
-                     &runEnd,
-                     _self->ob_itself);
-       _res = Py_BuildValue("ll",
-                            runStart,
-                            runEnd);
-       return _res;
-}
-
-static PyObject *wasteObj_WECountRuns(_self, _args)
-       wasteObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       SInt32 _rv;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _rv = WECountRuns(_self->ob_itself);
-       _res = Py_BuildValue("l",
-                            _rv);
-       return _res;
-}
-
-static PyObject *wasteObj_WEGetClickCount(_self, _args)
-       wasteObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       UInt16 _rv;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _rv = WEGetClickCount(_self->ob_itself);
-       _res = Py_BuildValue("H",
-                            _rv);
-       return _res;
-}
-
-static PyObject *wasteObj_WESetSelection(_self, _args)
-       wasteObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       SInt32 selStart;
-       SInt32 selEnd;
-       if (!PyArg_ParseTuple(_args, "ll",
-                             &selStart,
-                             &selEnd))
-               return NULL;
-       WESetSelection(selStart,
-                      selEnd,
-                      _self->ob_itself);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *wasteObj_WESetDestRect(_self, _args)
-       wasteObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       LongRect destRect;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             LongRect_Convert, &destRect))
-               return NULL;
-       WESetDestRect(&destRect,
-                     _self->ob_itself);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *wasteObj_WESetViewRect(_self, _args)
-       wasteObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       LongRect viewRect;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             LongRect_Convert, &viewRect))
-               return NULL;
-       WESetViewRect(&viewRect,
-                     _self->ob_itself);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *wasteObj_WEContinuousStyle(_self, _args)
-       wasteObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Boolean _rv;
-       WEStyleMode mode;
-       TextStyle ts;
-       if (!PyArg_ParseTuple(_args, "H",
-                             &mode))
-               return NULL;
-       _rv = WEContinuousStyle(&mode,
-                               &ts,
-                               _self->ob_itself);
-       _res = Py_BuildValue("bHO&",
-                            _rv,
-                            mode,
-                            TextStyle_New, &ts);
-       return _res;
-}
-
-static PyObject *wasteObj_WEGetRunInfo(_self, _args)
-       wasteObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       SInt32 offset;
-       WERunInfo runInfo;
-       if (!PyArg_ParseTuple(_args, "l",
-                             &offset))
-               return NULL;
-       WEGetRunInfo(offset,
-                    &runInfo,
-                    _self->ob_itself);
-       _res = Py_BuildValue("O&",
-                            RunInfo_New, &runInfo);
-       return _res;
-}
-
-static PyObject *wasteObj_WEGetRunDirection(_self, _args)
-       wasteObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Boolean _rv;
-       SInt32 offset;
-       if (!PyArg_ParseTuple(_args, "l",
-                             &offset))
-               return NULL;
-       _rv = WEGetRunDirection(offset,
-                               _self->ob_itself);
-       _res = Py_BuildValue("b",
-                            _rv);
-       return _res;
-}
-
-static PyObject *wasteObj_WEGetOffset(_self, _args)
-       wasteObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       SInt32 _rv;
-       LongPt thePoint;
-       WEEdge edge;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             LongPt_Convert, &thePoint))
-               return NULL;
-       _rv = WEGetOffset(&thePoint,
-                         &edge,
-                         _self->ob_itself);
-       _res = Py_BuildValue("lB",
-                            _rv,
-                            edge);
-       return _res;
-}
-
-static PyObject *wasteObj_WEGetPoint(_self, _args)
-       wasteObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       SInt32 offset;
-       SInt16 direction;
-       LongPt thePoint;
-       SInt16 lineHeight;
-       if (!PyArg_ParseTuple(_args, "lh",
-                             &offset,
-                             &direction))
-               return NULL;
-       WEGetPoint(offset,
-                  direction,
-                  &thePoint,
-                  &lineHeight,
-                  _self->ob_itself);
-       _res = Py_BuildValue("O&h",
-                            LongPt_New, &thePoint,
-                            lineHeight);
-       return _res;
-}
-
-static PyObject *wasteObj_WEFindWord(_self, _args)
-       wasteObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       SInt32 offset;
-       WEEdge edge;
-       SInt32 wordStart;
-       SInt32 wordEnd;
-       if (!PyArg_ParseTuple(_args, "lB",
-                             &offset,
-                             &edge))
-               return NULL;
-       WEFindWord(offset,
-                  edge,
-                  &wordStart,
-                  &wordEnd,
-                  _self->ob_itself);
-       _res = Py_BuildValue("ll",
-                            wordStart,
-                            wordEnd);
-       return _res;
-}
-
-static PyObject *wasteObj_WEFindLine(_self, _args)
-       wasteObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       SInt32 offset;
-       WEEdge edge;
-       SInt32 lineStart;
-       SInt32 lineEnd;
-       if (!PyArg_ParseTuple(_args, "lB",
-                             &offset,
-                             &edge))
-               return NULL;
-       WEFindLine(offset,
-                  edge,
-                  &lineStart,
-                  &lineEnd,
-                  _self->ob_itself);
-       _res = Py_BuildValue("ll",
-                            lineStart,
-                            lineEnd);
-       return _res;
-}
-
-static PyObject *wasteObj_WEFindParagraph(_self, _args)
-       wasteObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       SInt32 offset;
-       WEEdge edge;
-       SInt32 paragraphStart;
-       SInt32 paragraphEnd;
-       if (!PyArg_ParseTuple(_args, "lB",
-                             &offset,
-                             &edge))
-               return NULL;
-       WEFindParagraph(offset,
-                       edge,
-                       &paragraphStart,
-                       &paragraphEnd,
-                       _self->ob_itself);
-       _res = Py_BuildValue("ll",
-                            paragraphStart,
-                            paragraphEnd);
-       return _res;
-}
-
-static PyObject *wasteObj_WECopyRange(_self, _args)
-       wasteObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       SInt32 rangeStart;
-       SInt32 rangeEnd;
-       Handle hText;
-       StScrpHandle hStyles;
-       WESoupHandle hSoup;
-       if (!PyArg_ParseTuple(_args, "llO&O&O&",
-                             &rangeStart,
-                             &rangeEnd,
-                             OptResObj_Convert, &hText,
-                             OptResObj_Convert, &hStyles,
-                             OptResObj_Convert, &hSoup))
-               return NULL;
-       _err = WECopyRange(rangeStart,
-                          rangeEnd,
-                          hText,
-                          hStyles,
-                          hSoup,
-                          _self->ob_itself);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *wasteObj_WEGetAlignment(_self, _args)
-       wasteObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       WEAlignment _rv;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _rv = WEGetAlignment(_self->ob_itself);
-       _res = Py_BuildValue("B",
-                            _rv);
-       return _res;
-}
-
-static PyObject *wasteObj_WESetAlignment(_self, _args)
-       wasteObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       WEAlignment alignment;
-       if (!PyArg_ParseTuple(_args, "B",
-                             &alignment))
-               return NULL;
-       WESetAlignment(alignment,
-                      _self->ob_itself);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *wasteObj_WEGetDirection(_self, _args)
-       wasteObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       WEDirection _rv;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _rv = WEGetDirection(_self->ob_itself);
-       _res = Py_BuildValue("h",
-                            _rv);
-       return _res;
-}
-
-static PyObject *wasteObj_WESetDirection(_self, _args)
-       wasteObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       WEDirection direction;
-       if (!PyArg_ParseTuple(_args, "h",
-                             &direction))
-               return NULL;
-       WESetDirection(direction,
-                      _self->ob_itself);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *wasteObj_WECalText(_self, _args)
-       wasteObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _err = WECalText(_self->ob_itself);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *wasteObj_WEUpdate(_self, _args)
-       wasteObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       RgnHandle updateRgn;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             ResObj_Convert, &updateRgn))
-               return NULL;
-       WEUpdate(updateRgn,
-                _self->ob_itself);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *wasteObj_WEScroll(_self, _args)
-       wasteObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       SInt32 hOffset;
-       SInt32 vOffset;
-       if (!PyArg_ParseTuple(_args, "ll",
-                             &hOffset,
-                             &vOffset))
-               return NULL;
-       WEScroll(hOffset,
-                vOffset,
-                _self->ob_itself);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *wasteObj_WESelView(_self, _args)
-       wasteObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       WESelView(_self->ob_itself);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *wasteObj_WEActivate(_self, _args)
-       wasteObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       WEActivate(_self->ob_itself);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *wasteObj_WEDeactivate(_self, _args)
-       wasteObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       WEDeactivate(_self->ob_itself);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *wasteObj_WEKey(_self, _args)
-       wasteObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       SInt16 key;
-       EventModifiers modifiers;
-       if (!PyArg_ParseTuple(_args, "hH",
-                             &key,
-                             &modifiers))
-               return NULL;
-       WEKey(key,
-             modifiers,
-             _self->ob_itself);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *wasteObj_WEClick(_self, _args)
-       wasteObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Point hitPt;
-       EventModifiers modifiers;
-       UInt32 clickTime;
-       if (!PyArg_ParseTuple(_args, "O&Hl",
-                             PyMac_GetPoint, &hitPt,
-                             &modifiers,
-                             &clickTime))
-               return NULL;
-       WEClick(hitPt,
-               modifiers,
-               clickTime,
-               _self->ob_itself);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *wasteObj_WEAdjustCursor(_self, _args)
-       wasteObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Boolean _rv;
-       Point mouseLoc;
-       RgnHandle mouseRgn;
-       if (!PyArg_ParseTuple(_args, "O&O&",
-                             PyMac_GetPoint, &mouseLoc,
-                             ResObj_Convert, &mouseRgn))
-               return NULL;
-       _rv = WEAdjustCursor(mouseLoc,
-                            mouseRgn,
-                            _self->ob_itself);
-       _res = Py_BuildValue("b",
-                            _rv);
-       return _res;
-}
-
-static PyObject *wasteObj_WEIdle(_self, _args)
-       wasteObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       UInt32 maxSleep;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       WEIdle(&maxSleep,
-              _self->ob_itself);
-       _res = Py_BuildValue("l",
-                            maxSleep);
-       return _res;
-}
-
-static PyObject *wasteObj_WEInsert(_self, _args)
-       wasteObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       char *pText__in__;
-       long pText__len__;
-       int pText__in_len__;
-       StScrpHandle hStyles;
-       WESoupHandle hSoup;
-       if (!PyArg_ParseTuple(_args, "s#O&O&",
-                             &pText__in__, &pText__in_len__,
-                             OptResObj_Convert, &hStyles,
-                             OptResObj_Convert, &hSoup))
-               return NULL;
-       pText__len__ = pText__in_len__;
-       _err = WEInsert(pText__in__, pText__len__,
-                       hStyles,
-                       hSoup,
-                       _self->ob_itself);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
- pText__error__: ;
-       return _res;
-}
-
-static PyObject *wasteObj_WEDelete(_self, _args)
-       wasteObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _err = WEDelete(_self->ob_itself);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *wasteObj_WESetStyle(_self, _args)
-       wasteObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       WEStyleMode mode;
-       TextStyle ts;
-       if (!PyArg_ParseTuple(_args, "HO&",
-                             &mode,
-                             TextStyle_Convert, &ts))
-               return NULL;
-       _err = WESetStyle(mode,
-                         &ts,
-                         _self->ob_itself);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *wasteObj_WEUseStyleScrap(_self, _args)
-       wasteObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       StScrpHandle hStyles;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             ResObj_Convert, &hStyles))
-               return NULL;
-       _err = WEUseStyleScrap(hStyles,
-                              _self->ob_itself);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *wasteObj_WEUseText(_self, _args)
-       wasteObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       Handle hText;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             ResObj_Convert, &hText))
-               return NULL;
-       _err = WEUseText(hText,
-                        _self->ob_itself);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *wasteObj_WEUndo(_self, _args)
-       wasteObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _err = WEUndo(_self->ob_itself);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *wasteObj_WEClearUndo(_self, _args)
-       wasteObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       WEClearUndo(_self->ob_itself);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *wasteObj_WEGetUndoInfo(_self, _args)
-       wasteObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       WEActionKind _rv;
-       Boolean redoFlag;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _rv = WEGetUndoInfo(&redoFlag,
-                           _self->ob_itself);
-       _res = Py_BuildValue("hb",
-                            _rv,
-                            redoFlag);
-       return _res;
-}
-
-static PyObject *wasteObj_WEIsTyping(_self, _args)
-       wasteObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Boolean _rv;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _rv = WEIsTyping(_self->ob_itself);
-       _res = Py_BuildValue("b",
-                            _rv);
-       return _res;
-}
-
-static PyObject *wasteObj_WEBeginAction(_self, _args)
-       wasteObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _err = WEBeginAction(_self->ob_itself);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *wasteObj_WEEndAction(_self, _args)
-       wasteObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       WEActionKind actionKind;
-       if (!PyArg_ParseTuple(_args, "h",
-                             &actionKind))
-               return NULL;
-       _err = WEEndAction(actionKind,
-                          _self->ob_itself);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *wasteObj_WEGetModCount(_self, _args)
-       wasteObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       UInt32 _rv;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _rv = WEGetModCount(_self->ob_itself);
-       _res = Py_BuildValue("l",
-                            _rv);
-       return _res;
-}
-
-static PyObject *wasteObj_WEResetModCount(_self, _args)
-       wasteObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       WEResetModCount(_self->ob_itself);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *wasteObj_WEInsertObject(_self, _args)
-       wasteObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       FlavorType objectType;
-       Handle objectDataHandle;
-       Point objectSize;
-       if (!PyArg_ParseTuple(_args, "O&O&O&",
-                             PyMac_GetOSType, &objectType,
-                             ResObj_Convert, &objectDataHandle,
-                             PyMac_GetPoint, &objectSize))
-               return NULL;
-       _err = WEInsertObject(objectType,
-                             objectDataHandle,
-                             objectSize,
-                             _self->ob_itself);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *wasteObj_WEGetSelectedObject(_self, _args)
-       wasteObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       WEObjectReference obj;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _err = WEGetSelectedObject(&obj,
-                                  _self->ob_itself);
-       if (_err != noErr) return PyMac_Error(_err);
-       _res = Py_BuildValue("O&",
-                            WEOObj_New, obj);
-       return _res;
-}
-
-static PyObject *wasteObj_WEFindNextObject(_self, _args)
-       wasteObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       SInt32 _rv;
-       SInt32 offset;
-       WEObjectReference obj;
-       if (!PyArg_ParseTuple(_args, "l",
-                             &offset))
-               return NULL;
-       _rv = WEFindNextObject(offset,
-                              &obj,
-                              _self->ob_itself);
-       _res = Py_BuildValue("lO&",
-                            _rv,
-                            WEOObj_New, obj);
-       return _res;
-}
-
-static PyObject *wasteObj_WEUseSoup(_self, _args)
-       wasteObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       WESoupHandle hSoup;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             ResObj_Convert, &hSoup))
-               return NULL;
-       _err = WEUseSoup(hSoup,
-                        _self->ob_itself);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *wasteObj_WECut(_self, _args)
-       wasteObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _err = WECut(_self->ob_itself);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *wasteObj_WECopy(_self, _args)
-       wasteObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _err = WECopy(_self->ob_itself);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *wasteObj_WEPaste(_self, _args)
-       wasteObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _err = WEPaste(_self->ob_itself);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *wasteObj_WECanPaste(_self, _args)
-       wasteObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Boolean _rv;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _rv = WECanPaste(_self->ob_itself);
-       _res = Py_BuildValue("b",
-                            _rv);
-       return _res;
-}
-
-static PyObject *wasteObj_WEGetHiliteRgn(_self, _args)
-       wasteObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       RgnHandle _rv;
-       SInt32 rangeStart;
-       SInt32 rangeEnd;
-       if (!PyArg_ParseTuple(_args, "ll",
-                             &rangeStart,
-                             &rangeEnd))
-               return NULL;
-       _rv = WEGetHiliteRgn(rangeStart,
-                            rangeEnd,
-                            _self->ob_itself);
-       _res = Py_BuildValue("O&",
-                            ResObj_New, _rv);
-       return _res;
-}
-
-static PyObject *wasteObj_WECharByte(_self, _args)
-       wasteObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       SInt16 _rv;
-       SInt32 offset;
-       if (!PyArg_ParseTuple(_args, "l",
-                             &offset))
-               return NULL;
-       _rv = WECharByte(offset,
-                        _self->ob_itself);
-       _res = Py_BuildValue("h",
-                            _rv);
-       return _res;
-}
-
-static PyObject *wasteObj_WECharType(_self, _args)
-       wasteObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       SInt16 _rv;
-       SInt32 offset;
-       if (!PyArg_ParseTuple(_args, "l",
-                             &offset))
-               return NULL;
-       _rv = WECharType(offset,
-                        _self->ob_itself);
-       _res = Py_BuildValue("h",
-                            _rv);
-       return _res;
-}
-
-static PyObject *wasteObj_WEStopInlineSession(_self, _args)
-       wasteObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       WEStopInlineSession(_self->ob_itself);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *wasteObj_WEFeatureFlag(_self, _args)
-       wasteObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       SInt16 _rv;
-       SInt16 feature;
-       SInt16 action;
-       if (!PyArg_ParseTuple(_args, "hh",
-                             &feature,
-                             &action))
-               return NULL;
-       _rv = WEFeatureFlag(feature,
-                           action,
-                           _self->ob_itself);
-       _res = Py_BuildValue("h",
-                            _rv);
-       return _res;
-}
-
-static PyObject *wasteObj_WEGetUserInfo(_self, _args)
-       wasteObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       WESelector tag;
-       SInt32 userInfo;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             PyMac_GetOSType, &tag))
-               return NULL;
-       _err = WEGetUserInfo(tag,
-                            &userInfo,
-                            _self->ob_itself);
-       if (_err != noErr) return PyMac_Error(_err);
-       _res = Py_BuildValue("l",
-                            userInfo);
-       return _res;
-}
-
-static PyObject *wasteObj_WESetUserInfo(_self, _args)
-       wasteObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       WESelector tag;
-       SInt32 userInfo;
-       if (!PyArg_ParseTuple(_args, "O&l",
-                             PyMac_GetOSType, &tag,
-                             &userInfo))
-               return NULL;
-       _err = WESetUserInfo(tag,
-                            userInfo,
-                            _self->ob_itself);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *wasteObj_WEInstallTabHooks(_self, _args)
-       wasteObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _err = WEInstallTabHooks(_self->ob_itself);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *wasteObj_WERemoveTabHooks(_self, _args)
-       wasteObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _err = WERemoveTabHooks(_self->ob_itself);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *wasteObj_WEIsTabHooks(_self, _args)
-       wasteObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Boolean _rv;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _rv = WEIsTabHooks(_self->ob_itself);
-       _res = Py_BuildValue("b",
-                            _rv);
-       return _res;
-}
-
-static PyObject *wasteObj_WEGetTabSize(_self, _args)
-       wasteObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       SInt16 _rv;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _rv = WEGetTabSize(_self->ob_itself);
-       _res = Py_BuildValue("h",
-                            _rv);
-       return _res;
-}
-
-static PyObject *wasteObj_WESetTabSize(_self, _args)
-       wasteObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       SInt16 tabWidth;
-       if (!PyArg_ParseTuple(_args, "h",
-                             &tabWidth))
-               return NULL;
-       _err = WESetTabSize(tabWidth,
-                           _self->ob_itself);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyMethodDef wasteObj_methods[] = {
-       {"WEGetText", (PyCFunction)wasteObj_WEGetText, 1,
-        "() -> (Handle _rv)"},
-       {"WEGetChar", (PyCFunction)wasteObj_WEGetChar, 1,
-        "(SInt32 offset) -> (SInt16 _rv)"},
-       {"WEGetTextLength", (PyCFunction)wasteObj_WEGetTextLength, 1,
-        "() -> (SInt32 _rv)"},
-       {"WEGetHeight", (PyCFunction)wasteObj_WEGetHeight, 1,
-        "(SInt32 startLine, SInt32 endLine) -> (SInt32 _rv)"},
-       {"WEGetSelection", (PyCFunction)wasteObj_WEGetSelection, 1,
-        "() -> (SInt32 selStart, SInt32 selEnd)"},
-       {"WEGetDestRect", (PyCFunction)wasteObj_WEGetDestRect, 1,
-        "() -> (LongRect destRect)"},
-       {"WEGetViewRect", (PyCFunction)wasteObj_WEGetViewRect, 1,
-        "() -> (LongRect viewRect)"},
-       {"WEIsActive", (PyCFunction)wasteObj_WEIsActive, 1,
-        "() -> (Boolean _rv)"},
-       {"WEOffsetToLine", (PyCFunction)wasteObj_WEOffsetToLine, 1,
-        "(SInt32 offset) -> (SInt32 _rv)"},
-       {"WEGetLineRange", (PyCFunction)wasteObj_WEGetLineRange, 1,
-        "(SInt32 lineIndex) -> (SInt32 lineStart, SInt32 lineEnd)"},
-       {"WECountLines", (PyCFunction)wasteObj_WECountLines, 1,
-        "() -> (SInt32 _rv)"},
-       {"WEOffsetToRun", (PyCFunction)wasteObj_WEOffsetToRun, 1,
-        "(SInt32 offset) -> (SInt32 _rv)"},
-       {"WEGetRunRange", (PyCFunction)wasteObj_WEGetRunRange, 1,
-        "(SInt32 runIndex) -> (SInt32 runStart, SInt32 runEnd)"},
-       {"WECountRuns", (PyCFunction)wasteObj_WECountRuns, 1,
-        "() -> (SInt32 _rv)"},
-       {"WEGetClickCount", (PyCFunction)wasteObj_WEGetClickCount, 1,
-        "() -> (UInt16 _rv)"},
-       {"WESetSelection", (PyCFunction)wasteObj_WESetSelection, 1,
-        "(SInt32 selStart, SInt32 selEnd) -> None"},
-       {"WESetDestRect", (PyCFunction)wasteObj_WESetDestRect, 1,
-        "(LongRect destRect) -> None"},
-       {"WESetViewRect", (PyCFunction)wasteObj_WESetViewRect, 1,
-        "(LongRect viewRect) -> None"},
-       {"WEContinuousStyle", (PyCFunction)wasteObj_WEContinuousStyle, 1,
-        "(WEStyleMode mode) -> (Boolean _rv, WEStyleMode mode, TextStyle ts)"},
-       {"WEGetRunInfo", (PyCFunction)wasteObj_WEGetRunInfo, 1,
-        "(SInt32 offset) -> (WERunInfo runInfo)"},
-       {"WEGetRunDirection", (PyCFunction)wasteObj_WEGetRunDirection, 1,
-        "(SInt32 offset) -> (Boolean _rv)"},
-       {"WEGetOffset", (PyCFunction)wasteObj_WEGetOffset, 1,
-        "(LongPt thePoint) -> (SInt32 _rv, WEEdge edge)"},
-       {"WEGetPoint", (PyCFunction)wasteObj_WEGetPoint, 1,
-        "(SInt32 offset, SInt16 direction) -> (LongPt thePoint, SInt16 lineHeight)"},
-       {"WEFindWord", (PyCFunction)wasteObj_WEFindWord, 1,
-        "(SInt32 offset, WEEdge edge) -> (SInt32 wordStart, SInt32 wordEnd)"},
-       {"WEFindLine", (PyCFunction)wasteObj_WEFindLine, 1,
-        "(SInt32 offset, WEEdge edge) -> (SInt32 lineStart, SInt32 lineEnd)"},
-       {"WEFindParagraph", (PyCFunction)wasteObj_WEFindParagraph, 1,
-        "(SInt32 offset, WEEdge edge) -> (SInt32 paragraphStart, SInt32 paragraphEnd)"},
-       {"WECopyRange", (PyCFunction)wasteObj_WECopyRange, 1,
-        "(SInt32 rangeStart, SInt32 rangeEnd, Handle hText, StScrpHandle hStyles, WESoupHandle hSoup) -> None"},
-       {"WEGetAlignment", (PyCFunction)wasteObj_WEGetAlignment, 1,
-        "() -> (WEAlignment _rv)"},
-       {"WESetAlignment", (PyCFunction)wasteObj_WESetAlignment, 1,
-        "(WEAlignment alignment) -> None"},
-       {"WEGetDirection", (PyCFunction)wasteObj_WEGetDirection, 1,
-        "() -> (WEDirection _rv)"},
-       {"WESetDirection", (PyCFunction)wasteObj_WESetDirection, 1,
-        "(WEDirection direction) -> None"},
-       {"WECalText", (PyCFunction)wasteObj_WECalText, 1,
-        "() -> None"},
-       {"WEUpdate", (PyCFunction)wasteObj_WEUpdate, 1,
-        "(RgnHandle updateRgn) -> None"},
-       {"WEScroll", (PyCFunction)wasteObj_WEScroll, 1,
-        "(SInt32 hOffset, SInt32 vOffset) -> None"},
-       {"WESelView", (PyCFunction)wasteObj_WESelView, 1,
-        "() -> None"},
-       {"WEActivate", (PyCFunction)wasteObj_WEActivate, 1,
-        "() -> None"},
-       {"WEDeactivate", (PyCFunction)wasteObj_WEDeactivate, 1,
-        "() -> None"},
-       {"WEKey", (PyCFunction)wasteObj_WEKey, 1,
-        "(SInt16 key, EventModifiers modifiers) -> None"},
-       {"WEClick", (PyCFunction)wasteObj_WEClick, 1,
-        "(Point hitPt, EventModifiers modifiers, UInt32 clickTime) -> None"},
-       {"WEAdjustCursor", (PyCFunction)wasteObj_WEAdjustCursor, 1,
-        "(Point mouseLoc, RgnHandle mouseRgn) -> (Boolean _rv)"},
-       {"WEIdle", (PyCFunction)wasteObj_WEIdle, 1,
-        "() -> (UInt32 maxSleep)"},
-       {"WEInsert", (PyCFunction)wasteObj_WEInsert, 1,
-        "(Buffer pText, StScrpHandle hStyles, WESoupHandle hSoup) -> None"},
-       {"WEDelete", (PyCFunction)wasteObj_WEDelete, 1,
-        "() -> None"},
-       {"WESetStyle", (PyCFunction)wasteObj_WESetStyle, 1,
-        "(WEStyleMode mode, TextStyle ts) -> None"},
-       {"WEUseStyleScrap", (PyCFunction)wasteObj_WEUseStyleScrap, 1,
-        "(StScrpHandle hStyles) -> None"},
-       {"WEUseText", (PyCFunction)wasteObj_WEUseText, 1,
-        "(Handle hText) -> None"},
-       {"WEUndo", (PyCFunction)wasteObj_WEUndo, 1,
-        "() -> None"},
-       {"WEClearUndo", (PyCFunction)wasteObj_WEClearUndo, 1,
-        "() -> None"},
-       {"WEGetUndoInfo", (PyCFunction)wasteObj_WEGetUndoInfo, 1,
-        "() -> (WEActionKind _rv, Boolean redoFlag)"},
-       {"WEIsTyping", (PyCFunction)wasteObj_WEIsTyping, 1,
-        "() -> (Boolean _rv)"},
-       {"WEBeginAction", (PyCFunction)wasteObj_WEBeginAction, 1,
-        "() -> None"},
-       {"WEEndAction", (PyCFunction)wasteObj_WEEndAction, 1,
-        "(WEActionKind actionKind) -> None"},
-       {"WEGetModCount", (PyCFunction)wasteObj_WEGetModCount, 1,
-        "() -> (UInt32 _rv)"},
-       {"WEResetModCount", (PyCFunction)wasteObj_WEResetModCount, 1,
-        "() -> None"},
-       {"WEInsertObject", (PyCFunction)wasteObj_WEInsertObject, 1,
-        "(FlavorType objectType, Handle objectDataHandle, Point objectSize) -> None"},
-       {"WEGetSelectedObject", (PyCFunction)wasteObj_WEGetSelectedObject, 1,
-        "() -> (WEObjectReference obj)"},
-       {"WEFindNextObject", (PyCFunction)wasteObj_WEFindNextObject, 1,
-        "(SInt32 offset) -> (SInt32 _rv, WEObjectReference obj)"},
-       {"WEUseSoup", (PyCFunction)wasteObj_WEUseSoup, 1,
-        "(WESoupHandle hSoup) -> None"},
-       {"WECut", (PyCFunction)wasteObj_WECut, 1,
-        "() -> None"},
-       {"WECopy", (PyCFunction)wasteObj_WECopy, 1,
-        "() -> None"},
-       {"WEPaste", (PyCFunction)wasteObj_WEPaste, 1,
-        "() -> None"},
-       {"WECanPaste", (PyCFunction)wasteObj_WECanPaste, 1,
-        "() -> (Boolean _rv)"},
-       {"WEGetHiliteRgn", (PyCFunction)wasteObj_WEGetHiliteRgn, 1,
-        "(SInt32 rangeStart, SInt32 rangeEnd) -> (RgnHandle _rv)"},
-       {"WECharByte", (PyCFunction)wasteObj_WECharByte, 1,
-        "(SInt32 offset) -> (SInt16 _rv)"},
-       {"WECharType", (PyCFunction)wasteObj_WECharType, 1,
-        "(SInt32 offset) -> (SInt16 _rv)"},
-       {"WEStopInlineSession", (PyCFunction)wasteObj_WEStopInlineSession, 1,
-        "() -> None"},
-       {"WEFeatureFlag", (PyCFunction)wasteObj_WEFeatureFlag, 1,
-        "(SInt16 feature, SInt16 action) -> (SInt16 _rv)"},
-       {"WEGetUserInfo", (PyCFunction)wasteObj_WEGetUserInfo, 1,
-        "(WESelector tag) -> (SInt32 userInfo)"},
-       {"WESetUserInfo", (PyCFunction)wasteObj_WESetUserInfo, 1,
-        "(WESelector tag, SInt32 userInfo) -> None"},
-       {"WEInstallTabHooks", (PyCFunction)wasteObj_WEInstallTabHooks, 1,
-        "() -> None"},
-       {"WERemoveTabHooks", (PyCFunction)wasteObj_WERemoveTabHooks, 1,
-        "() -> None"},
-       {"WEIsTabHooks", (PyCFunction)wasteObj_WEIsTabHooks, 1,
-        "() -> (Boolean _rv)"},
-       {"WEGetTabSize", (PyCFunction)wasteObj_WEGetTabSize, 1,
-        "() -> (SInt16 _rv)"},
-       {"WESetTabSize", (PyCFunction)wasteObj_WESetTabSize, 1,
-        "(SInt16 tabWidth) -> None"},
-       {NULL, NULL, 0}
-};
-
-PyMethodChain wasteObj_chain = { wasteObj_methods, NULL };
-
-static PyObject *wasteObj_getattr(self, name)
-       wasteObject *self;
-       char *name;
-{
-       return Py_FindMethodInChain(&wasteObj_chain, (PyObject *)self, name);
-}
-
-#define wasteObj_setattr NULL
-
-#define wasteObj_compare NULL
-
-#define wasteObj_repr NULL
-
-#define wasteObj_hash NULL
-
-PyTypeObject waste_Type = {
-       PyObject_HEAD_INIT(&PyType_Type)
-       0, /*ob_size*/
-       "waste", /*tp_name*/
-       sizeof(wasteObject), /*tp_basicsize*/
-       0, /*tp_itemsize*/
-       /* methods */
-       (destructor) wasteObj_dealloc, /*tp_dealloc*/
-       0, /*tp_print*/
-       (getattrfunc) wasteObj_getattr, /*tp_getattr*/
-       (setattrfunc) wasteObj_setattr, /*tp_setattr*/
-       (cmpfunc) wasteObj_compare, /*tp_compare*/
-       (reprfunc) wasteObj_repr, /*tp_repr*/
-       (PyNumberMethods *)0, /* tp_as_number */
-       (PySequenceMethods *)0, /* tp_as_sequence */
-       (PyMappingMethods *)0, /* tp_as_mapping */
-       (hashfunc) wasteObj_hash, /*tp_hash*/
-};
-
-/* --------------------- End object type waste ---------------------- */
-
-
-static PyObject *waste_WENew(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       LongRect destRect;
-       LongRect viewRect;
-       UInt32 flags;
-       WEReference we;
-       if (!PyArg_ParseTuple(_args, "O&O&l",
-                             LongRect_Convert, &destRect,
-                             LongRect_Convert, &viewRect,
-                             &flags))
-               return NULL;
-       _err = WENew(&destRect,
-                    &viewRect,
-                    flags,
-                    &we);
-       if (_err != noErr) return PyMac_Error(_err);
-       _res = Py_BuildValue("O&",
-                            wasteObj_New, we);
-       return _res;
-}
-
-static PyObject *waste_WEUpdateStyleScrap(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       StScrpHandle hStyles;
-       WEFontTableHandle hFontTable;
-       if (!PyArg_ParseTuple(_args, "O&O&",
-                             ResObj_Convert, &hStyles,
-                             ResObj_Convert, &hFontTable))
-               return NULL;
-       _err = WEUpdateStyleScrap(hStyles,
-                                 hFontTable);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *waste_WEInstallTSMHandlers(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _err = WEInstallTSMHandlers();
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *waste_WERemoveTSMHandlers(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _err = WERemoveTSMHandlers();
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *waste_WEHandleTSMEvent(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSErr _err;
-       AppleEvent ae;
-       AppleEvent reply;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             AEDesc_Convert, &ae))
-               return NULL;
-       _err = WEHandleTSMEvent(&ae,
-                               &reply);
-       if (_err != noErr) return PyMac_Error(_err);
-       _res = Py_BuildValue("O&",
-                            AEDesc_New, &reply);
-       return _res;
-}
-
-static PyObject *waste_WELongPointToPoint(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       LongPt lp;
-       Point p;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             LongPt_Convert, &lp))
-               return NULL;
-       WELongPointToPoint(&lp,
-                          &p);
-       _res = Py_BuildValue("O&",
-                            PyMac_BuildPoint, p);
-       return _res;
-}
-
-static PyObject *waste_WEPointToLongPoint(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Point p;
-       LongPt lp;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             PyMac_GetPoint, &p))
-               return NULL;
-       WEPointToLongPoint(p,
-                          &lp);
-       _res = Py_BuildValue("O&",
-                            LongPt_New, &lp);
-       return _res;
-}
-
-static PyObject *waste_WESetLongRect(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       LongRect lr;
-       SInt32 left;
-       SInt32 top;
-       SInt32 right;
-       SInt32 bottom;
-       if (!PyArg_ParseTuple(_args, "llll",
-                             &left,
-                             &top,
-                             &right,
-                             &bottom))
-               return NULL;
-       WESetLongRect(&lr,
-                     left,
-                     top,
-                     right,
-                     bottom);
-       _res = Py_BuildValue("O&",
-                            LongRect_New, &lr);
-       return _res;
-}
-
-static PyObject *waste_WELongRectToRect(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       LongRect lr;
-       Rect r;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             LongRect_Convert, &lr))
-               return NULL;
-       WELongRectToRect(&lr,
-                        &r);
-       _res = Py_BuildValue("O&",
-                            PyMac_BuildRect, &r);
-       return _res;
-}
-
-static PyObject *waste_WERectToLongRect(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Rect r;
-       LongRect lr;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             PyMac_GetRect, &r))
-               return NULL;
-       WERectToLongRect(&r,
-                        &lr);
-       _res = Py_BuildValue("O&",
-                            LongRect_New, &lr);
-       return _res;
-}
-
-static PyObject *waste_WEOffsetLongRect(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       LongRect lr;
-       SInt32 hOffset;
-       SInt32 vOffset;
-       if (!PyArg_ParseTuple(_args, "ll",
-                             &hOffset,
-                             &vOffset))
-               return NULL;
-       WEOffsetLongRect(&lr,
-                        hOffset,
-                        vOffset);
-       _res = Py_BuildValue("O&",
-                            LongRect_New, &lr);
-       return _res;
-}
-
-static PyObject *waste_WELongPointInLongRect(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Boolean _rv;
-       LongPt lp;
-       LongRect lr;
-       if (!PyArg_ParseTuple(_args, "O&O&",
-                             LongPt_Convert, &lp,
-                             LongRect_Convert, &lr))
-               return NULL;
-       _rv = WELongPointInLongRect(&lp,
-                                   &lr);
-       _res = Py_BuildValue("b",
-                            _rv);
-       return _res;
-}
-
-static PyObject *waste_STDObjectHandlers(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-
-               OSErr err;
-               // install the sample object handlers for pictures and sounds
-#define        kTypePicture                    'PICT'
-#define        kTypeSound                              'snd '
-               
-               if ( !PyArg_ParseTuple(_args, "") ) return NULL;
-               
-               if ((err = WEInstallObjectHandler(kTypePicture, weNewHandler,
-                                       (UniversalProcPtr) NewWENewObjectProc(HandleNewPicture), NULL)) != noErr)
-                       goto cleanup;
-               
-               if ((err = WEInstallObjectHandler(kTypePicture, weDisposeHandler,
-                                       (UniversalProcPtr) NewWEDisposeObjectProc(HandleDisposePicture), NULL)) != noErr)
-                       goto cleanup;
-               
-               if ((err = WEInstallObjectHandler(kTypePicture, weDrawHandler,
-                                       (UniversalProcPtr) NewWEDrawObjectProc(HandleDrawPicture), NULL)) != noErr)
-                       goto cleanup;
-               
-               if ((err = WEInstallObjectHandler(kTypeSound, weNewHandler,
-                                       (UniversalProcPtr) NewWENewObjectProc(HandleNewSound), NULL)) != noErr)
-                       goto cleanup;
-               
-               if ((err = WEInstallObjectHandler(kTypeSound, weDrawHandler,
-                                       (UniversalProcPtr) NewWEDrawObjectProc(HandleDrawSound), NULL)) != noErr)
-                       goto cleanup;
-               
-               if ((err = WEInstallObjectHandler(kTypeSound, weClickHandler,
-                                       (UniversalProcPtr) NewWEClickObjectProc(HandleClickSound), NULL)) != noErr)
-                       goto cleanup;
-               Py_INCREF(Py_None);
-               return Py_None;
-               
-       cleanup:
-               return PyMac_Error(err);
-
-}
-
-static PyObject *waste_WEInstallObjectHandler(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-
-               OSErr err;
-               FlavorType objectType;
-               WESelector selector;
-               PyObject *py_handler;
-               UniversalProcPtr handler;
-               WEReference we = NULL;
-               PyObject *key;
-               
-               
-               if ( !PyArg_ParseTuple(_args, "O&O&O|O&",
-                               PyMac_GetOSType, &objectType,
-                               PyMac_GetOSType, &selector,
-                               &py_handler,
-                               WEOObj_Convert, &we) ) return NULL;
-                               
-               if ( selector == weNewHandler ) handler = (UniversalProcPtr)upp_new_handler;
-               else if ( selector == weDisposeHandler ) handler = (UniversalProcPtr)upp_dispose_handler;
-               else if ( selector == weDrawHandler ) handler = (UniversalProcPtr)upp_draw_handler;
-               else if ( selector == weClickHandler ) handler = (UniversalProcPtr)upp_click_handler;
-               else return PyMac_Error(weUndefinedSelectorErr);
-                               
-               if ((key = Py_BuildValue("O&O&", 
-                               PyMac_BuildOSType, objectType, 
-                               PyMac_BuildOSType, selector)) == NULL )
-                       return NULL;
-                       
-               PyDict_SetItem(callbackdict, key, py_handler);
-               
-               err = WEInstallObjectHandler(objectType, selector, handler, we);
-               if ( err ) return PyMac_Error(err);
-               Py_INCREF(Py_None);
-               return Py_None;
-
-}
-
-static PyMethodDef waste_methods[] = {
-       {"WENew", (PyCFunction)waste_WENew, 1,
-        "(LongRect destRect, LongRect viewRect, UInt32 flags) -> (WEReference we)"},
-       {"WEUpdateStyleScrap", (PyCFunction)waste_WEUpdateStyleScrap, 1,
-        "(StScrpHandle hStyles, WEFontTableHandle hFontTable) -> None"},
-       {"WEInstallTSMHandlers", (PyCFunction)waste_WEInstallTSMHandlers, 1,
-        "() -> None"},
-       {"WERemoveTSMHandlers", (PyCFunction)waste_WERemoveTSMHandlers, 1,
-        "() -> None"},
-       {"WEHandleTSMEvent", (PyCFunction)waste_WEHandleTSMEvent, 1,
-        "(AppleEvent ae) -> (AppleEvent reply)"},
-       {"WELongPointToPoint", (PyCFunction)waste_WELongPointToPoint, 1,
-        "(LongPt lp) -> (Point p)"},
-       {"WEPointToLongPoint", (PyCFunction)waste_WEPointToLongPoint, 1,
-        "(Point p) -> (LongPt lp)"},
-       {"WESetLongRect", (PyCFunction)waste_WESetLongRect, 1,
-        "(SInt32 left, SInt32 top, SInt32 right, SInt32 bottom) -> (LongRect lr)"},
-       {"WELongRectToRect", (PyCFunction)waste_WELongRectToRect, 1,
-        "(LongRect lr) -> (Rect r)"},
-       {"WERectToLongRect", (PyCFunction)waste_WERectToLongRect, 1,
-        "(Rect r) -> (LongRect lr)"},
-       {"WEOffsetLongRect", (PyCFunction)waste_WEOffsetLongRect, 1,
-        "(SInt32 hOffset, SInt32 vOffset) -> (LongRect lr)"},
-       {"WELongPointInLongRect", (PyCFunction)waste_WELongPointInLongRect, 1,
-        "(LongPt lp, LongRect lr) -> (Boolean _rv)"},
-       {"STDObjectHandlers", (PyCFunction)waste_STDObjectHandlers, 1,
-        NULL},
-       {"WEInstallObjectHandler", (PyCFunction)waste_WEInstallObjectHandler, 1,
-        NULL},
-       {NULL, NULL, 0}
-};
-
-
-
-/* Return the object corresponding to the window, or NULL */
-
-PyObject *
-ExistingwasteObj_New(w)
-       WEReference w;
-{
-       PyObject *it = NULL;
-       
-       if (w == NULL)
-               it = NULL;
-       else
-               WEGetInfo(weRefCon, (void *)&it, w);
-       if (it == NULL || ((wasteObject *)it)->ob_itself != w)
-               it = Py_None;
-       Py_INCREF(it);
-       return it;
-}
-
-
-void initwaste()
-{
-       PyObject *m;
-       PyObject *d;
-
-
-
-
-       m = Py_InitModule("waste", waste_methods);
-       d = PyModule_GetDict(m);
-       waste_Error = PyMac_GetOSErrException();
-       if (waste_Error == NULL ||
-           PyDict_SetItemString(d, "Error", waste_Error) != 0)
-               return;
-       WEO_Type.ob_type = &PyType_Type;
-       Py_INCREF(&WEO_Type);
-       if (PyDict_SetItemString(d, "WEOType", (PyObject *)&WEO_Type) != 0)
-               Py_FatalError("can't initialize WEOType");
-       waste_Type.ob_type = &PyType_Type;
-       Py_INCREF(&waste_Type);
-       if (PyDict_SetItemString(d, "wasteType", (PyObject *)&waste_Type) != 0)
-               Py_FatalError("can't initialize wasteType");
-
-               callbackdict = PyDict_New();
-               if (callbackdict == NULL || PyDict_SetItemString(d, "callbacks", callbackdict) != 0)
-                       return;
-               upp_new_handler = NewWENewObjectProc(my_new_handler);
-               upp_dispose_handler = NewWEDisposeObjectProc(my_dispose_handler);
-               upp_draw_handler = NewWEDrawObjectProc(my_draw_handler);
-               upp_click_handler = NewWEClickObjectProc(my_click_handler);
-
-
-}
-
-/* ======================== End module waste ======================== */
-
diff --git a/Mac/Modules/waste/wastesupport.py b/Mac/Modules/waste/wastesupport.py
deleted file mode 100644 (file)
index 7b2ff13..0000000
+++ /dev/null
@@ -1,427 +0,0 @@
-# This script generates a Python interface for an Apple Macintosh Manager.
-# It uses the "bgen" package to generate C code.
-# The function specifications are generated by scanning the mamager's header file,
-# using the "scantools" package (customized for this particular manager).
-
-import string
-
-# Declarations that change for each manager
-MACHEADERFILE = 'WASTE.h'              # The Apple header file
-MODNAME = 'waste'                              # The name of the module
-OBJECTNAME = 'waste'                   # The basic name of the objects used here
-KIND = 'Ptr'                           # Usually 'Ptr' or 'Handle'
-
-# The following is *usually* unchanged but may still require tuning
-MODPREFIX = MODNAME                    # The prefix for module-wide routines
-OBJECTTYPE = "WEReference"             # The C type used to represent them
-OBJECTPREFIX = MODPREFIX + 'Obj'       # The prefix for object methods
-INPUTFILE = 'wastegen.py' # The file generated by the scanner
-TYPETESTFILE = 'wastetypetest.py'      # Another file generated by the scanner
-OUTPUTFILE = "wastemodule.c"   # The file generated by this program
-
-from macsupport import *
-
-# Create the type objects
-WEReference = OpaqueByValueType("WEReference", "wasteObj")
-ExistingWEReference = OpaqueByValueType("WEReference", "ExistingwasteObj")
-WEObjectReference = OpaqueByValueType("WEObjectReference", "WEOObj")
-StScrpHandle = OpaqueByValueType("StScrpHandle", "ResObj")
-RgnHandle = OpaqueByValueType("RgnHandle", "ResObj")
-EventModifiers = Type("EventModifiers", "H")
-FlavorType = OSTypeType("FlavorType")
-WESelector = OSTypeType("WESelector")
-
-OptHandle = OpaqueByValueType("Handle", "OptResObj")
-OptSoupHandle = OpaqueByValueType("WESoupHandle", "OptResObj")
-OptStScrpHandle = OpaqueByValueType("StScrpHandle", "OptResObj")
-
-WEStyleMode = Type("WEStyleMode", "H")
-WEActionKind = Type("WEActionKind", "h")
-WEAlignment = Type("WEAlignment", "B")
-WEEdge = Type("WEEdge", "B")
-WEDirection = Type("WEDirection", "h")
-WESoupHandle = OpaqueByValueType("WESoupHandle", "ResObj")
-WEFontTableHandle = OpaqueByValueType("WEFontTableHandle", "ResObj")
-WEFontTableHandle
-WERunInfo = OpaqueType("WERunInfo", "RunInfo")
-
-AppleEvent = OpaqueType('AppleEvent', 'AEDesc')
-AppleEvent_ptr = OpaqueType('AppleEvent', 'AEDesc')
-
-TextStyle = OpaqueType("TextStyle", "TextStyle")
-TextStyle_ptr = TextStyle
-LongPt = OpaqueType("LongPt", "LongPt")
-LongPt_ptr = LongPt
-LongRect = OpaqueType("LongRect", "LongRect")
-LongRect_ptr = LongRect
-
-includestuff = includestuff + """
-#include <%s>""" % MACHEADERFILE + """
-#include <WEObjectHandlers.h>
-#include <WETabs.h>
-
-/* Exported by Qdmodule.c: */
-extern PyObject *QdRGB_New(RGBColor *);
-extern int QdRGB_Convert(PyObject *, RGBColor *);
-
-/* Exported by AEModule.c: */
-extern PyObject *AEDesc_New(AppleEvent *);
-extern int AEDesc_Convert(PyObject *, AppleEvent *);
-
-/* Forward declaration */
-staticforward PyObject *WEOObj_New(WEObjectReference);
-staticforward PyObject *ExistingwasteObj_New(WEReference);
-
-/*
-** Parse/generate TextStyle records
-*/
-static
-PyObject *TextStyle_New(itself)
-       TextStylePtr itself;
-{
-
-       return Py_BuildValue("lllO&", (long)itself->tsFont, (long)itself->tsFace, (long)itself->tsSize, QdRGB_New,
-                               &itself->tsColor);
-}
-
-static
-TextStyle_Convert(v, p_itself)
-       PyObject *v;
-       TextStylePtr p_itself;
-{
-       long font, face, size;
-       
-       if( !PyArg_ParseTuple(v, "lllO&", &font, &face, &size, QdRGB_Convert, &p_itself->tsColor) )
-               return 0;
-       p_itself->tsFont = (short)font;
-       p_itself->tsFace = (Style)face;
-       p_itself->tsSize = (short)size;
-       return 1;
-}
-
-/*
-** Parse/generate RunInfo records
-*/
-static
-PyObject *RunInfo_New(itself)
-       WERunInfo *itself;
-{
-
-       return Py_BuildValue("llhhO&O&", itself->runStart, itself->runEnd, itself->runHeight,
-               itself->runAscent, TextStyle_New, &itself->runStyle, WEOObj_New, itself->runObject);
-}
-
-/* Conversion of long points and rects */
-int
-LongRect_Convert(PyObject *v, LongRect *r)
-{
-       return PyArg_Parse(v, "(llll)", &r->left, &r->top, &r->right, &r->bottom);
-}
-
-PyObject *
-LongRect_New(LongRect *r)
-{
-       return Py_BuildValue("(llll)", r->left, r->top, r->right, r->bottom);
-}
-
-
-LongPt_Convert(PyObject *v, LongPt *p)
-{
-       return PyArg_Parse(v, "(ll)", &p->h, &p->v);
-}
-
-PyObject *
-LongPt_New(LongPt *p)
-{
-       return Py_BuildValue("(ll)", p->h, p->v);
-}
-
-/* Stuff for the callbacks: */
-static PyObject *callbackdict;
-WENewObjectUPP upp_new_handler;
-WEDisposeObjectUPP upp_dispose_handler;
-WEDrawObjectUPP upp_draw_handler;
-WEClickObjectUPP upp_click_handler;
-
-static OSErr
-any_handler(WESelector what, WEObjectReference who, PyObject *args, PyObject **rv)
-{
-       FlavorType tp;
-       PyObject *key, *func;
-       
-       if ( args == NULL ) return errAECorruptData;
-       
-       tp = WEGetObjectType(who);
-       
-       if( (key=Py_BuildValue("O&O&", PyMac_BuildOSType, tp, PyMac_BuildOSType, what)) == NULL)
-               return errAECorruptData;
-       if( (func = PyDict_GetItem(callbackdict, key)) == NULL ) {
-               Py_DECREF(key);
-               return errAEHandlerNotFound;
-       }
-       Py_INCREF(func);
-       *rv = PyEval_CallObject(func, args);
-       Py_DECREF(func);
-       Py_DECREF(key);
-       if ( *rv == NULL ) {
-               PySys_WriteStderr("--Exception in callback: ");
-               PyErr_Print();
-               return errAEReplyNotArrived;
-       }
-       return 0;
-}
-
-static pascal OSErr
-my_new_handler(Point *objectSize, WEObjectReference objref)
-{
-       PyObject *args=NULL, *rv=NULL;
-       OSErr err;
-       
-       args=Py_BuildValue("(O&)", WEOObj_New, objref);
-       err = any_handler(weNewHandler, objref, args, &rv);
-       if (!err) {
-               if (!PyMac_GetPoint(rv, objectSize) )
-                       err = errAECoercionFail;
-       }
-       if ( args ) Py_DECREF(args);
-       if ( rv ) Py_DECREF(rv);
-       return err;
-}
-
-static pascal OSErr
-my_dispose_handler(WEObjectReference objref)
-{
-       PyObject *args=NULL, *rv=NULL;
-       OSErr err;
-       
-       args=Py_BuildValue("(O&)", WEOObj_New, objref);
-       err = any_handler(weDisposeHandler, objref, args, &rv);
-       if ( args ) Py_DECREF(args);
-       if ( rv ) Py_DECREF(rv);
-       return err;
-}
-
-static pascal OSErr
-my_draw_handler(Rect *destRect, WEObjectReference objref)
-{
-       PyObject *args=NULL, *rv=NULL;
-       OSErr err;
-       
-       args=Py_BuildValue("O&O&", PyMac_BuildRect, destRect, WEOObj_New, objref);
-       err = any_handler(weDrawHandler, objref, args, &rv);
-       if ( args ) Py_DECREF(args);
-       if ( rv ) Py_DECREF(rv);
-       return err;
-}
-
-static pascal Boolean
-my_click_handler(Point hitPt, EventModifiers modifiers,
-               unsigned long clickTime, WEObjectReference objref)
-{
-       PyObject *args=NULL, *rv=NULL;
-       int retvalue;
-       OSErr err;
-       
-       args=Py_BuildValue("O&llO&", PyMac_BuildPoint, hitPt,
-                       (long)modifiers, (long)clickTime, WEOObj_New, objref);
-       err = any_handler(weClickHandler, objref, args, &rv);
-       if (!err)
-               retvalue = PyInt_AsLong(rv);
-       else
-               retvalue = 0;
-       if ( args ) Py_DECREF(args);
-       if ( rv ) Py_DECREF(rv);
-       return retvalue;
-}
-               
-
-"""
-finalstuff = finalstuff + """
-/* Return the object corresponding to the window, or NULL */
-
-PyObject *
-ExistingwasteObj_New(w)
-       WEReference w;
-{
-       PyObject *it = NULL;
-       
-       if (w == NULL)
-               it = NULL;
-       else
-               WEGetInfo(weRefCon, (void *)&it, w);
-       if (it == NULL || ((wasteObject *)it)->ob_itself != w)
-               it = Py_None;
-       Py_INCREF(it);
-       return it;
-}
-"""
-
-class WEMethodGenerator(OSErrMethodGenerator):
-       """Similar to MethodGenerator, but has self as last argument"""
-
-       def parseArgumentList(self, args):
-               args, a0 = args[:-1], args[-1]
-               t0, n0, m0 = a0
-               if m0 != InMode:
-                       raise ValueError, "method's 'self' must be 'InMode'"
-               self.itself = Variable(t0, "_self->ob_itself", SelfMode)
-               FunctionGenerator.parseArgumentList(self, args)
-               self.argumentList.append(self.itself)
-
-
-
-class WEObjectDefinition(GlobalObjectDefinition):
-       def outputCheckNewArg(self):
-               Output("""if (itself == NULL) {
-                                       PyErr_SetString(waste_Error,"Cannot create null WE");
-                                       return NULL;
-                               }""")
-       def outputInitStructMembers(self):
-               GlobalObjectDefinition.outputInitStructMembers(self)
-               Output("WESetInfo(weRefCon, (void *)&it, itself);")
-       def outputFreeIt(self, itselfname):
-               Output("WEDispose(%s);", itselfname)
-               
-class WEOObjectDefinition(GlobalObjectDefinition):
-       def outputCheckNewArg(self):
-               Output("""if (itself == NULL) {
-                                       Py_INCREF(Py_None);
-                                       return Py_None;
-                               }""")
-                               
-variablestuff = """
-       callbackdict = PyDict_New();
-       if (callbackdict == NULL || PyDict_SetItemString(d, "callbacks", callbackdict) != 0)
-               return;
-       upp_new_handler = NewWENewObjectProc(my_new_handler);
-       upp_dispose_handler = NewWEDisposeObjectProc(my_dispose_handler);
-       upp_draw_handler = NewWEDrawObjectProc(my_draw_handler);
-       upp_click_handler = NewWEClickObjectProc(my_click_handler);
-"""
-
-
-# From here on it's basically all boiler plate...
-
-# Test types used for existence
-## execfile(TYPETESTFILE)
-
-# Create the generator groups and link them
-module = MacModule(MODNAME, MODPREFIX, includestuff, finalstuff, initstuff, variablestuff)
-object = WEObjectDefinition(OBJECTNAME, OBJECTPREFIX, OBJECTTYPE)
-object2 = WEOObjectDefinition("WEO", "WEOObj", "WEObjectReference")
-module.addobject(object2)
-module.addobject(object)
-
-# Create the generator classes used to populate the lists
-Function = OSErrFunctionGenerator
-Method = WEMethodGenerator
-Method2 = OSErrMethodGenerator
-
-# Create and populate the lists
-functions = []
-methods = []
-methods2 = []
-execfile(INPUTFILE)
-
-# A function written by hand:
-stdhandlers_body = """
-       OSErr err;
-       // install the sample object handlers for pictures and sounds
-#define        kTypePicture                    'PICT'
-#define        kTypeSound                              'snd '
-       
-       if ( !PyArg_ParseTuple(_args, "") ) return NULL;
-       
-       if ((err = WEInstallObjectHandler(kTypePicture, weNewHandler,
-                               (UniversalProcPtr) NewWENewObjectProc(HandleNewPicture), NULL)) != noErr)
-               goto cleanup;
-       
-       if ((err = WEInstallObjectHandler(kTypePicture, weDisposeHandler,
-                               (UniversalProcPtr) NewWEDisposeObjectProc(HandleDisposePicture), NULL)) != noErr)
-               goto cleanup;
-       
-       if ((err = WEInstallObjectHandler(kTypePicture, weDrawHandler,
-                               (UniversalProcPtr) NewWEDrawObjectProc(HandleDrawPicture), NULL)) != noErr)
-               goto cleanup;
-       
-       if ((err = WEInstallObjectHandler(kTypeSound, weNewHandler,
-                               (UniversalProcPtr) NewWENewObjectProc(HandleNewSound), NULL)) != noErr)
-               goto cleanup;
-       
-       if ((err = WEInstallObjectHandler(kTypeSound, weDrawHandler,
-                               (UniversalProcPtr) NewWEDrawObjectProc(HandleDrawSound), NULL)) != noErr)
-               goto cleanup;
-       
-       if ((err = WEInstallObjectHandler(kTypeSound, weClickHandler,
-                               (UniversalProcPtr) NewWEClickObjectProc(HandleClickSound), NULL)) != noErr)
-               goto cleanup;
-       Py_INCREF(Py_None);
-       return Py_None;
-       
-cleanup:
-       return PyMac_Error(err);
-"""
-
-inshandler_body = """
-       OSErr err;
-       FlavorType objectType;
-       WESelector selector;
-       PyObject *py_handler;
-       UniversalProcPtr handler;
-       WEReference we = NULL;
-       PyObject *key;
-       
-       
-       if ( !PyArg_ParseTuple(_args, "O&O&O|O&",
-                       PyMac_GetOSType, &objectType,
-                       PyMac_GetOSType, &selector,
-                       &py_handler,
-                       WEOObj_Convert, &we) ) return NULL;
-                       
-       if ( selector == weNewHandler ) handler = (UniversalProcPtr)upp_new_handler;
-       else if ( selector == weDisposeHandler ) handler = (UniversalProcPtr)upp_dispose_handler;
-       else if ( selector == weDrawHandler ) handler = (UniversalProcPtr)upp_draw_handler;
-       else if ( selector == weClickHandler ) handler = (UniversalProcPtr)upp_click_handler;
-       else return PyMac_Error(weUndefinedSelectorErr);
-                       
-       if ((key = Py_BuildValue("O&O&", 
-                       PyMac_BuildOSType, objectType, 
-                       PyMac_BuildOSType, selector)) == NULL )
-               return NULL;
-               
-       PyDict_SetItem(callbackdict, key, py_handler);
-       
-       err = WEInstallObjectHandler(objectType, selector, handler, we);
-       if ( err ) return PyMac_Error(err);
-       Py_INCREF(Py_None);
-       return Py_None;
-"""
-
-stdhand = ManualGenerator("STDObjectHandlers", stdhandlers_body)
-inshand = ManualGenerator("WEInstallObjectHandler", inshandler_body)
-
-
-# Tab hook handlers. Could be parsed from WETabs.h, but this is just as simple.
-f = Method(OSErr, 'WEInstallTabHooks', (WEReference, 'we', InMode))
-methods.append(f)
-f = Method(OSErr, 'WERemoveTabHooks', (WEReference, 'we', InMode))
-methods.append(f)
-f = Method(Boolean, 'WEIsTabHooks', (WEReference, 'we', InMode))
-methods.append(f)
-f = Method(SInt16, 'WEGetTabSize', (WEReference, 'we', InMode))
-methods.append(f)
-f = Method(OSErr, 'WESetTabSize', (SInt16, 'tabWidth', InMode), (WEReference, 'we', InMode))
-methods.append(f)
-
-# add the populated lists to the generator groups
-# (in a different wordl the scan program would generate this)
-for f in functions: module.add(f)
-module.add(stdhand)
-module.add(inshand)
-for f in methods: object.add(f)
-for f in methods2: object2.add(f)
-
-# generate output (open the output file as late as possible)
-SetOutputFileName(OUTPUTFILE)
-module.generate()
-
diff --git a/Mac/Modules/win/Winmodule.c b/Mac/Modules/win/Winmodule.c
deleted file mode 100644 (file)
index 00d58a4..0000000
+++ /dev/null
@@ -1,3073 +0,0 @@
-
-/* =========================== Module Win =========================== */
-
-#include "Python.h"
-
-
-
-#include "macglue.h"
-#include "pymactoolbox.h"
-
-#include <Windows.h>
-
-#if !ACCESSOR_CALLS_ARE_FUNCTIONS
-/* Carbon calls that we emulate in classic mode */
-#define GetWindowSpareFlag(win) (((CWindowPeek)(win))->spareFlag)
-#define GetWindowFromPort(port) ((WindowRef)(port))
-#define GetWindowPortBounds(win, rectp) (*(rectp) = ((CWindowPeek)(win))->port.portRect)
-#endif
-#if ACCESSOR_CALLS_ARE_FUNCTIONS
-/* Classic calls that we emulate in carbon mode */
-#define GetWindowUpdateRgn(win, rgn) GetWindowRegion((win), kWindowUpdateRgn, (rgn))
-#define GetWindowStructureRgn(win, rgn) GetWindowRegion((win), kWindowStructureRgn, (rgn))
-#define GetWindowContentRgn(win, rgn) GetWindowRegion((win), kWindowContentRgn, (rgn))
-#endif
-
-/* Function to dispose a window, with a "normal" calling sequence */
-static void
-PyMac_AutoDisposeWindow(WindowPtr w)
-{
-       DisposeWindow(w);
-}
-
-static PyObject *Win_Error;
-
-/* ----------------------- Object type Window ----------------------- */
-
-PyTypeObject Window_Type;
-
-#define WinObj_Check(x) ((x)->ob_type == &Window_Type)
-
-typedef struct WindowObject {
-       PyObject_HEAD
-       WindowPtr ob_itself;
-       void (*ob_freeit)(WindowPtr ptr);
-} WindowObject;
-
-PyObject *WinObj_New(itself)
-       WindowPtr itself;
-{
-       WindowObject *it;
-       if (itself == NULL) return PyMac_Error(resNotFound);
-       it = PyObject_NEW(WindowObject, &Window_Type);
-       if (it == NULL) return NULL;
-       it->ob_itself = itself;
-       it->ob_freeit = NULL;
-       if (GetWRefCon(itself) == 0)
-       {
-               SetWRefCon(itself, (long)it);
-               it->ob_freeit = PyMac_AutoDisposeWindow;
-       }
-       return (PyObject *)it;
-}
-WinObj_Convert(v, p_itself)
-       PyObject *v;
-       WindowPtr *p_itself;
-{
-       if (DlgObj_Check(v)) {
-               *p_itself = DlgObj_ConvertToWindow(v);
-               return 1;
-       }
-
-       if (v == Py_None) { *p_itself = NULL; return 1; }
-       if (PyInt_Check(v)) { *p_itself = (WindowPtr)PyInt_AsLong(v); return 1; }
-
-       if (!WinObj_Check(v))
-       {
-               PyErr_SetString(PyExc_TypeError, "Window required");
-               return 0;
-       }
-       *p_itself = ((WindowObject *)v)->ob_itself;
-       return 1;
-}
-
-static void WinObj_dealloc(self)
-       WindowObject *self;
-{
-       if (self->ob_freeit && self->ob_itself)
-       {
-               SetWRefCon(self->ob_itself, 0);
-               self->ob_freeit(self->ob_itself);
-       }
-       self->ob_itself = NULL;
-       self->ob_freeit = NULL;
-       PyMem_DEL(self);
-}
-
-static PyObject *WinObj_GetWindowOwnerCount(_self, _args)
-       WindowObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSStatus _err;
-       UInt32 outCount;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _err = GetWindowOwnerCount(_self->ob_itself,
-                                  &outCount);
-       if (_err != noErr) return PyMac_Error(_err);
-       _res = Py_BuildValue("l",
-                            outCount);
-       return _res;
-}
-
-static PyObject *WinObj_CloneWindow(_self, _args)
-       WindowObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSStatus _err;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _err = CloneWindow(_self->ob_itself);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-#if TARGET_API_MAC_CARBON
-
-static PyObject *WinObj_ReshapeCustomWindow(_self, _args)
-       WindowObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSStatus _err;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _err = ReshapeCustomWindow(_self->ob_itself);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-#endif
-
-static PyObject *WinObj_GetWindowClass(_self, _args)
-       WindowObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSStatus _err;
-       WindowClass outClass;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _err = GetWindowClass(_self->ob_itself,
-                             &outClass);
-       if (_err != noErr) return PyMac_Error(_err);
-       _res = Py_BuildValue("l",
-                            outClass);
-       return _res;
-}
-
-static PyObject *WinObj_GetWindowAttributes(_self, _args)
-       WindowObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSStatus _err;
-       WindowAttributes outAttributes;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _err = GetWindowAttributes(_self->ob_itself,
-                                  &outAttributes);
-       if (_err != noErr) return PyMac_Error(_err);
-       _res = Py_BuildValue("l",
-                            outAttributes);
-       return _res;
-}
-
-#if TARGET_API_MAC_CARBON
-
-static PyObject *WinObj_ChangeWindowAttributes(_self, _args)
-       WindowObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSStatus _err;
-       WindowAttributes setTheseAttributes;
-       WindowAttributes clearTheseAttributes;
-       if (!PyArg_ParseTuple(_args, "ll",
-                             &setTheseAttributes,
-                             &clearTheseAttributes))
-               return NULL;
-       _err = ChangeWindowAttributes(_self->ob_itself,
-                                     setTheseAttributes,
-                                     clearTheseAttributes);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-#endif
-
-#if !TARGET_API_MAC_CARBON
-
-static PyObject *WinObj_SetWinColor(_self, _args)
-       WindowObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       WCTabHandle newColorTable;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             ResObj_Convert, &newColorTable))
-               return NULL;
-       SetWinColor(_self->ob_itself,
-                   newColorTable);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-#endif
-
-static PyObject *WinObj_SetWindowContentColor(_self, _args)
-       WindowObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSStatus _err;
-       RGBColor color;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             QdRGB_Convert, &color))
-               return NULL;
-       _err = SetWindowContentColor(_self->ob_itself,
-                                    &color);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *WinObj_GetWindowContentColor(_self, _args)
-       WindowObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSStatus _err;
-       RGBColor color;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _err = GetWindowContentColor(_self->ob_itself,
-                                    &color);
-       if (_err != noErr) return PyMac_Error(_err);
-       _res = Py_BuildValue("O&",
-                            QdRGB_New, &color);
-       return _res;
-}
-
-static PyObject *WinObj_GetWindowContentPattern(_self, _args)
-       WindowObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSStatus _err;
-       PixPatHandle outPixPat;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             ResObj_Convert, &outPixPat))
-               return NULL;
-       _err = GetWindowContentPattern(_self->ob_itself,
-                                      outPixPat);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *WinObj_SetWindowContentPattern(_self, _args)
-       WindowObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSStatus _err;
-       PixPatHandle pixPat;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             ResObj_Convert, &pixPat))
-               return NULL;
-       _err = SetWindowContentPattern(_self->ob_itself,
-                                      pixPat);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-#if TARGET_API_MAC_CARBON
-
-static PyObject *WinObj_ScrollWindowRect(_self, _args)
-       WindowObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSStatus _err;
-       Rect inScrollRect;
-       SInt16 inHPixels;
-       SInt16 inVPixels;
-       ScrollWindowOptions inOptions;
-       RgnHandle outExposedRgn;
-       if (!PyArg_ParseTuple(_args, "O&hhlO&",
-                             PyMac_GetRect, &inScrollRect,
-                             &inHPixels,
-                             &inVPixels,
-                             &inOptions,
-                             ResObj_Convert, &outExposedRgn))
-               return NULL;
-       _err = ScrollWindowRect(_self->ob_itself,
-                               &inScrollRect,
-                               inHPixels,
-                               inVPixels,
-                               inOptions,
-                               outExposedRgn);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-#endif
-
-#if TARGET_API_MAC_CARBON
-
-static PyObject *WinObj_ScrollWindowRegion(_self, _args)
-       WindowObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSStatus _err;
-       RgnHandle inScrollRgn;
-       SInt16 inHPixels;
-       SInt16 inVPixels;
-       ScrollWindowOptions inOptions;
-       RgnHandle outExposedRgn;
-       if (!PyArg_ParseTuple(_args, "O&hhlO&",
-                             ResObj_Convert, &inScrollRgn,
-                             &inHPixels,
-                             &inVPixels,
-                             &inOptions,
-                             ResObj_Convert, &outExposedRgn))
-               return NULL;
-       _err = ScrollWindowRegion(_self->ob_itself,
-                                 inScrollRgn,
-                                 inHPixels,
-                                 inVPixels,
-                                 inOptions,
-                                 outExposedRgn);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-#endif
-
-static PyObject *WinObj_ClipAbove(_self, _args)
-       WindowObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       ClipAbove(_self->ob_itself);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-#if !TARGET_API_MAC_CARBON
-
-static PyObject *WinObj_SaveOld(_self, _args)
-       WindowObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       SaveOld(_self->ob_itself);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-#endif
-
-#if !TARGET_API_MAC_CARBON
-
-static PyObject *WinObj_DrawNew(_self, _args)
-       WindowObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Boolean update;
-       if (!PyArg_ParseTuple(_args, "b",
-                             &update))
-               return NULL;
-       DrawNew(_self->ob_itself,
-               update);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-#endif
-
-static PyObject *WinObj_PaintOne(_self, _args)
-       WindowObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       RgnHandle clobberedRgn;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             ResObj_Convert, &clobberedRgn))
-               return NULL;
-       PaintOne(_self->ob_itself,
-                clobberedRgn);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *WinObj_PaintBehind(_self, _args)
-       WindowObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       RgnHandle clobberedRgn;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             ResObj_Convert, &clobberedRgn))
-               return NULL;
-       PaintBehind(_self->ob_itself,
-                   clobberedRgn);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *WinObj_CalcVis(_self, _args)
-       WindowObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       CalcVis(_self->ob_itself);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *WinObj_CalcVisBehind(_self, _args)
-       WindowObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       RgnHandle clobberedRgn;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             ResObj_Convert, &clobberedRgn))
-               return NULL;
-       CalcVisBehind(_self->ob_itself,
-                     clobberedRgn);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *WinObj_BringToFront(_self, _args)
-       WindowObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       BringToFront(_self->ob_itself);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *WinObj_SendBehind(_self, _args)
-       WindowObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       WindowPtr behindWindow;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             WinObj_Convert, &behindWindow))
-               return NULL;
-       SendBehind(_self->ob_itself,
-                  behindWindow);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *WinObj_SelectWindow(_self, _args)
-       WindowObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       SelectWindow(_self->ob_itself);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-#if TARGET_API_MAC_CARBON
-
-static PyObject *WinObj_GetNextWindowOfClass(_self, _args)
-       WindowObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       WindowPtr _rv;
-       WindowClass inWindowClass;
-       Boolean mustBeVisible;
-       if (!PyArg_ParseTuple(_args, "lb",
-                             &inWindowClass,
-                             &mustBeVisible))
-               return NULL;
-       _rv = GetNextWindowOfClass(_self->ob_itself,
-                                  inWindowClass,
-                                  mustBeVisible);
-       _res = Py_BuildValue("O&",
-                            WinObj_New, _rv);
-       return _res;
-}
-#endif
-
-#if !TARGET_API_MAC_CARBON
-
-static PyObject *WinObj_IsValidWindowPtr(_self, _args)
-       WindowObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Boolean _rv;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _rv = IsValidWindowPtr(_self->ob_itself);
-       _res = Py_BuildValue("b",
-                            _rv);
-       return _res;
-}
-#endif
-
-static PyObject *WinObj_HiliteWindow(_self, _args)
-       WindowObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Boolean fHilite;
-       if (!PyArg_ParseTuple(_args, "b",
-                             &fHilite))
-               return NULL;
-       HiliteWindow(_self->ob_itself,
-                    fHilite);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *WinObj_SetWRefCon(_self, _args)
-       WindowObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       long data;
-       if (!PyArg_ParseTuple(_args, "l",
-                             &data))
-               return NULL;
-       SetWRefCon(_self->ob_itself,
-                  data);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *WinObj_GetWRefCon(_self, _args)
-       WindowObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       long _rv;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _rv = GetWRefCon(_self->ob_itself);
-       _res = Py_BuildValue("l",
-                            _rv);
-       return _res;
-}
-
-static PyObject *WinObj_SetWindowPic(_self, _args)
-       WindowObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       PicHandle pic;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             ResObj_Convert, &pic))
-               return NULL;
-       SetWindowPic(_self->ob_itself,
-                    pic);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *WinObj_GetWindowPic(_self, _args)
-       WindowObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       PicHandle _rv;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _rv = GetWindowPic(_self->ob_itself);
-       _res = Py_BuildValue("O&",
-                            ResObj_New, _rv);
-       return _res;
-}
-
-static PyObject *WinObj_GetWVariant(_self, _args)
-       WindowObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       short _rv;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _rv = GetWVariant(_self->ob_itself);
-       _res = Py_BuildValue("h",
-                            _rv);
-       return _res;
-}
-
-static PyObject *WinObj_GetWindowFeatures(_self, _args)
-       WindowObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSStatus _err;
-       UInt32 outFeatures;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _err = GetWindowFeatures(_self->ob_itself,
-                                &outFeatures);
-       if (_err != noErr) return PyMac_Error(_err);
-       _res = Py_BuildValue("l",
-                            outFeatures);
-       return _res;
-}
-
-static PyObject *WinObj_GetWindowRegion(_self, _args)
-       WindowObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSStatus _err;
-       WindowRegionCode inRegionCode;
-       RgnHandle ioWinRgn;
-       if (!PyArg_ParseTuple(_args, "HO&",
-                             &inRegionCode,
-                             ResObj_Convert, &ioWinRgn))
-               return NULL;
-       _err = GetWindowRegion(_self->ob_itself,
-                              inRegionCode,
-                              ioWinRgn);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *WinObj_BeginUpdate(_self, _args)
-       WindowObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       BeginUpdate(_self->ob_itself);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *WinObj_EndUpdate(_self, _args)
-       WindowObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       EndUpdate(_self->ob_itself);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *WinObj_InvalWindowRgn(_self, _args)
-       WindowObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSStatus _err;
-       RgnHandle region;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             ResObj_Convert, &region))
-               return NULL;
-       _err = InvalWindowRgn(_self->ob_itself,
-                             region);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *WinObj_InvalWindowRect(_self, _args)
-       WindowObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSStatus _err;
-       Rect bounds;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             PyMac_GetRect, &bounds))
-               return NULL;
-       _err = InvalWindowRect(_self->ob_itself,
-                              &bounds);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *WinObj_ValidWindowRgn(_self, _args)
-       WindowObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSStatus _err;
-       RgnHandle region;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             ResObj_Convert, &region))
-               return NULL;
-       _err = ValidWindowRgn(_self->ob_itself,
-                             region);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *WinObj_ValidWindowRect(_self, _args)
-       WindowObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSStatus _err;
-       Rect bounds;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             PyMac_GetRect, &bounds))
-               return NULL;
-       _err = ValidWindowRect(_self->ob_itself,
-                              &bounds);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *WinObj_DrawGrowIcon(_self, _args)
-       WindowObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       DrawGrowIcon(_self->ob_itself);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *WinObj_SetWTitle(_self, _args)
-       WindowObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Str255 title;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             PyMac_GetStr255, title))
-               return NULL;
-       SetWTitle(_self->ob_itself,
-                 title);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *WinObj_GetWTitle(_self, _args)
-       WindowObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Str255 title;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       GetWTitle(_self->ob_itself,
-                 title);
-       _res = Py_BuildValue("O&",
-                            PyMac_BuildStr255, title);
-       return _res;
-}
-
-static PyObject *WinObj_SetWindowProxyFSSpec(_self, _args)
-       WindowObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSStatus _err;
-       FSSpec inFile;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             PyMac_GetFSSpec, &inFile))
-               return NULL;
-       _err = SetWindowProxyFSSpec(_self->ob_itself,
-                                   &inFile);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *WinObj_GetWindowProxyFSSpec(_self, _args)
-       WindowObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSStatus _err;
-       FSSpec outFile;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _err = GetWindowProxyFSSpec(_self->ob_itself,
-                                   &outFile);
-       if (_err != noErr) return PyMac_Error(_err);
-       _res = Py_BuildValue("O&",
-                            PyMac_BuildFSSpec, outFile);
-       return _res;
-}
-
-static PyObject *WinObj_SetWindowProxyAlias(_self, _args)
-       WindowObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSStatus _err;
-       AliasHandle alias;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             ResObj_Convert, &alias))
-               return NULL;
-       _err = SetWindowProxyAlias(_self->ob_itself,
-                                  alias);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *WinObj_GetWindowProxyAlias(_self, _args)
-       WindowObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSStatus _err;
-       AliasHandle alias;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _err = GetWindowProxyAlias(_self->ob_itself,
-                                  &alias);
-       if (_err != noErr) return PyMac_Error(_err);
-       _res = Py_BuildValue("O&",
-                            ResObj_New, alias);
-       return _res;
-}
-
-static PyObject *WinObj_SetWindowProxyCreatorAndType(_self, _args)
-       WindowObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSStatus _err;
-       OSType fileCreator;
-       OSType fileType;
-       SInt16 vRefNum;
-       if (!PyArg_ParseTuple(_args, "O&O&h",
-                             PyMac_GetOSType, &fileCreator,
-                             PyMac_GetOSType, &fileType,
-                             &vRefNum))
-               return NULL;
-       _err = SetWindowProxyCreatorAndType(_self->ob_itself,
-                                           fileCreator,
-                                           fileType,
-                                           vRefNum);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *WinObj_GetWindowProxyIcon(_self, _args)
-       WindowObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSStatus _err;
-       IconRef outIcon;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _err = GetWindowProxyIcon(_self->ob_itself,
-                                 &outIcon);
-       if (_err != noErr) return PyMac_Error(_err);
-       _res = Py_BuildValue("O&",
-                            ResObj_New, outIcon);
-       return _res;
-}
-
-static PyObject *WinObj_SetWindowProxyIcon(_self, _args)
-       WindowObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSStatus _err;
-       IconRef icon;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             ResObj_Convert, &icon))
-               return NULL;
-       _err = SetWindowProxyIcon(_self->ob_itself,
-                                 icon);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *WinObj_RemoveWindowProxy(_self, _args)
-       WindowObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSStatus _err;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _err = RemoveWindowProxy(_self->ob_itself);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *WinObj_BeginWindowProxyDrag(_self, _args)
-       WindowObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSStatus _err;
-       DragReference outNewDrag;
-       RgnHandle outDragOutlineRgn;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             ResObj_Convert, &outDragOutlineRgn))
-               return NULL;
-       _err = BeginWindowProxyDrag(_self->ob_itself,
-                                   &outNewDrag,
-                                   outDragOutlineRgn);
-       if (_err != noErr) return PyMac_Error(_err);
-       _res = Py_BuildValue("O&",
-                            DragObj_New, outNewDrag);
-       return _res;
-}
-
-static PyObject *WinObj_EndWindowProxyDrag(_self, _args)
-       WindowObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSStatus _err;
-       DragReference theDrag;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             DragObj_Convert, &theDrag))
-               return NULL;
-       _err = EndWindowProxyDrag(_self->ob_itself,
-                                 theDrag);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *WinObj_TrackWindowProxyFromExistingDrag(_self, _args)
-       WindowObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSStatus _err;
-       Point startPt;
-       DragReference drag;
-       RgnHandle inDragOutlineRgn;
-       if (!PyArg_ParseTuple(_args, "O&O&O&",
-                             PyMac_GetPoint, &startPt,
-                             DragObj_Convert, &drag,
-                             ResObj_Convert, &inDragOutlineRgn))
-               return NULL;
-       _err = TrackWindowProxyFromExistingDrag(_self->ob_itself,
-                                               startPt,
-                                               drag,
-                                               inDragOutlineRgn);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *WinObj_TrackWindowProxyDrag(_self, _args)
-       WindowObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSStatus _err;
-       Point startPt;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             PyMac_GetPoint, &startPt))
-               return NULL;
-       _err = TrackWindowProxyDrag(_self->ob_itself,
-                                   startPt);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *WinObj_IsWindowModified(_self, _args)
-       WindowObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Boolean _rv;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _rv = IsWindowModified(_self->ob_itself);
-       _res = Py_BuildValue("b",
-                            _rv);
-       return _res;
-}
-
-static PyObject *WinObj_SetWindowModified(_self, _args)
-       WindowObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSStatus _err;
-       Boolean modified;
-       if (!PyArg_ParseTuple(_args, "b",
-                             &modified))
-               return NULL;
-       _err = SetWindowModified(_self->ob_itself,
-                                modified);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *WinObj_IsWindowPathSelectClick(_self, _args)
-       WindowObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Boolean _rv;
-       EventRecord event;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             PyMac_GetEventRecord, &event))
-               return NULL;
-       _rv = IsWindowPathSelectClick(_self->ob_itself,
-                                     &event);
-       _res = Py_BuildValue("b",
-                            _rv);
-       return _res;
-}
-
-static PyObject *WinObj_WindowPathSelect(_self, _args)
-       WindowObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSStatus _err;
-       MenuHandle menu;
-       SInt32 outMenuResult;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             MenuObj_Convert, &menu))
-               return NULL;
-       _err = WindowPathSelect(_self->ob_itself,
-                               menu,
-                               &outMenuResult);
-       if (_err != noErr) return PyMac_Error(_err);
-       _res = Py_BuildValue("l",
-                            outMenuResult);
-       return _res;
-}
-
-static PyObject *WinObj_HiliteWindowFrameForDrag(_self, _args)
-       WindowObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSStatus _err;
-       Boolean hilited;
-       if (!PyArg_ParseTuple(_args, "b",
-                             &hilited))
-               return NULL;
-       _err = HiliteWindowFrameForDrag(_self->ob_itself,
-                                       hilited);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *WinObj_TransitionWindow(_self, _args)
-       WindowObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSStatus _err;
-       WindowTransitionEffect effect;
-       WindowTransitionAction action;
-       Rect rect;
-       if (!PyArg_ParseTuple(_args, "llO&",
-                             &effect,
-                             &action,
-                             PyMac_GetRect, &rect))
-               return NULL;
-       _err = TransitionWindow(_self->ob_itself,
-                               effect,
-                               action,
-                               &rect);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *WinObj_MacMoveWindow(_self, _args)
-       WindowObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       short hGlobal;
-       short vGlobal;
-       Boolean front;
-       if (!PyArg_ParseTuple(_args, "hhb",
-                             &hGlobal,
-                             &vGlobal,
-                             &front))
-               return NULL;
-       MacMoveWindow(_self->ob_itself,
-                     hGlobal,
-                     vGlobal,
-                     front);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *WinObj_SizeWindow(_self, _args)
-       WindowObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       short w;
-       short h;
-       Boolean fUpdate;
-       if (!PyArg_ParseTuple(_args, "hhb",
-                             &w,
-                             &h,
-                             &fUpdate))
-               return NULL;
-       SizeWindow(_self->ob_itself,
-                  w,
-                  h,
-                  fUpdate);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *WinObj_GrowWindow(_self, _args)
-       WindowObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       long _rv;
-       Point startPt;
-       Rect bBox;
-       if (!PyArg_ParseTuple(_args, "O&O&",
-                             PyMac_GetPoint, &startPt,
-                             PyMac_GetRect, &bBox))
-               return NULL;
-       _rv = GrowWindow(_self->ob_itself,
-                        startPt,
-                        &bBox);
-       _res = Py_BuildValue("l",
-                            _rv);
-       return _res;
-}
-
-static PyObject *WinObj_DragWindow(_self, _args)
-       WindowObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Point startPt;
-       Rect boundsRect;
-       if (!PyArg_ParseTuple(_args, "O&O&",
-                             PyMac_GetPoint, &startPt,
-                             PyMac_GetRect, &boundsRect))
-               return NULL;
-       DragWindow(_self->ob_itself,
-                  startPt,
-                  &boundsRect);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *WinObj_ZoomWindow(_self, _args)
-       WindowObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       WindowPartCode partCode;
-       Boolean front;
-       if (!PyArg_ParseTuple(_args, "hb",
-                             &partCode,
-                             &front))
-               return NULL;
-       ZoomWindow(_self->ob_itself,
-                  partCode,
-                  front);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *WinObj_IsWindowCollapsable(_self, _args)
-       WindowObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Boolean _rv;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _rv = IsWindowCollapsable(_self->ob_itself);
-       _res = Py_BuildValue("b",
-                            _rv);
-       return _res;
-}
-
-static PyObject *WinObj_IsWindowCollapsed(_self, _args)
-       WindowObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Boolean _rv;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _rv = IsWindowCollapsed(_self->ob_itself);
-       _res = Py_BuildValue("b",
-                            _rv);
-       return _res;
-}
-
-static PyObject *WinObj_CollapseWindow(_self, _args)
-       WindowObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSStatus _err;
-       Boolean collapse;
-       if (!PyArg_ParseTuple(_args, "b",
-                             &collapse))
-               return NULL;
-       _err = CollapseWindow(_self->ob_itself,
-                             collapse);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *WinObj_GetWindowBounds(_self, _args)
-       WindowObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSStatus _err;
-       WindowRegionCode regionCode;
-       Rect globalBounds;
-       if (!PyArg_ParseTuple(_args, "H",
-                             &regionCode))
-               return NULL;
-       _err = GetWindowBounds(_self->ob_itself,
-                              regionCode,
-                              &globalBounds);
-       if (_err != noErr) return PyMac_Error(_err);
-       _res = Py_BuildValue("O&",
-                            PyMac_BuildRect, &globalBounds);
-       return _res;
-}
-
-static PyObject *WinObj_ResizeWindow(_self, _args)
-       WindowObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Boolean _rv;
-       Point startPoint;
-       Rect sizeConstraints;
-       Rect newContentRect;
-       if (!PyArg_ParseTuple(_args, "O&O&",
-                             PyMac_GetPoint, &startPoint,
-                             PyMac_GetRect, &sizeConstraints))
-               return NULL;
-       _rv = ResizeWindow(_self->ob_itself,
-                          startPoint,
-                          &sizeConstraints,
-                          &newContentRect);
-       _res = Py_BuildValue("bO&",
-                            _rv,
-                            PyMac_BuildRect, &newContentRect);
-       return _res;
-}
-
-static PyObject *WinObj_SetWindowBounds(_self, _args)
-       WindowObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSStatus _err;
-       WindowRegionCode regionCode;
-       Rect globalBounds;
-       if (!PyArg_ParseTuple(_args, "HO&",
-                             &regionCode,
-                             PyMac_GetRect, &globalBounds))
-               return NULL;
-       _err = SetWindowBounds(_self->ob_itself,
-                              regionCode,
-                              &globalBounds);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *WinObj_RepositionWindow(_self, _args)
-       WindowObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSStatus _err;
-       WindowPtr parentWindow;
-       WindowPositionMethod method;
-       if (!PyArg_ParseTuple(_args, "O&l",
-                             WinObj_Convert, &parentWindow,
-                             &method))
-               return NULL;
-       _err = RepositionWindow(_self->ob_itself,
-                               parentWindow,
-                               method);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *WinObj_MoveWindowStructure(_self, _args)
-       WindowObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSStatus _err;
-       short hGlobal;
-       short vGlobal;
-       if (!PyArg_ParseTuple(_args, "hh",
-                             &hGlobal,
-                             &vGlobal))
-               return NULL;
-       _err = MoveWindowStructure(_self->ob_itself,
-                                  hGlobal,
-                                  vGlobal);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *WinObj_IsWindowInStandardState(_self, _args)
-       WindowObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Boolean _rv;
-       Point idealSize;
-       Rect idealStandardState;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _rv = IsWindowInStandardState(_self->ob_itself,
-                                     &idealSize,
-                                     &idealStandardState);
-       _res = Py_BuildValue("bO&O&",
-                            _rv,
-                            PyMac_BuildPoint, idealSize,
-                            PyMac_BuildRect, &idealStandardState);
-       return _res;
-}
-
-static PyObject *WinObj_ZoomWindowIdeal(_self, _args)
-       WindowObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSStatus _err;
-       WindowPartCode partCode;
-       Point ioIdealSize;
-       if (!PyArg_ParseTuple(_args, "h",
-                             &partCode))
-               return NULL;
-       _err = ZoomWindowIdeal(_self->ob_itself,
-                              partCode,
-                              &ioIdealSize);
-       if (_err != noErr) return PyMac_Error(_err);
-       _res = Py_BuildValue("O&",
-                            PyMac_BuildPoint, ioIdealSize);
-       return _res;
-}
-
-static PyObject *WinObj_GetWindowIdealUserState(_self, _args)
-       WindowObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSStatus _err;
-       Rect userState;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _err = GetWindowIdealUserState(_self->ob_itself,
-                                      &userState);
-       if (_err != noErr) return PyMac_Error(_err);
-       _res = Py_BuildValue("O&",
-                            PyMac_BuildRect, &userState);
-       return _res;
-}
-
-static PyObject *WinObj_SetWindowIdealUserState(_self, _args)
-       WindowObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSStatus _err;
-       Rect userState;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _err = SetWindowIdealUserState(_self->ob_itself,
-                                      &userState);
-       if (_err != noErr) return PyMac_Error(_err);
-       _res = Py_BuildValue("O&",
-                            PyMac_BuildRect, &userState);
-       return _res;
-}
-
-static PyObject *WinObj_HideWindow(_self, _args)
-       WindowObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       HideWindow(_self->ob_itself);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *WinObj_MacShowWindow(_self, _args)
-       WindowObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       MacShowWindow(_self->ob_itself);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *WinObj_ShowHide(_self, _args)
-       WindowObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Boolean showFlag;
-       if (!PyArg_ParseTuple(_args, "b",
-                             &showFlag))
-               return NULL;
-       ShowHide(_self->ob_itself,
-                showFlag);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-#if TARGET_API_MAC_CARBON
-
-static PyObject *WinObj_GetWindowPropertyAttributes(_self, _args)
-       WindowObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSStatus _err;
-       OSType propertyCreator;
-       OSType propertyTag;
-       UInt32 attributes;
-       if (!PyArg_ParseTuple(_args, "O&O&",
-                             PyMac_GetOSType, &propertyCreator,
-                             PyMac_GetOSType, &propertyTag))
-               return NULL;
-       _err = GetWindowPropertyAttributes(_self->ob_itself,
-                                          propertyCreator,
-                                          propertyTag,
-                                          &attributes);
-       if (_err != noErr) return PyMac_Error(_err);
-       _res = Py_BuildValue("l",
-                            attributes);
-       return _res;
-}
-#endif
-
-#if TARGET_API_MAC_CARBON
-
-static PyObject *WinObj_ChangeWindowPropertyAttributes(_self, _args)
-       WindowObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSStatus _err;
-       OSType propertyCreator;
-       OSType propertyTag;
-       UInt32 attributesToSet;
-       UInt32 attributesToClear;
-       if (!PyArg_ParseTuple(_args, "O&O&ll",
-                             PyMac_GetOSType, &propertyCreator,
-                             PyMac_GetOSType, &propertyTag,
-                             &attributesToSet,
-                             &attributesToClear))
-               return NULL;
-       _err = ChangeWindowPropertyAttributes(_self->ob_itself,
-                                             propertyCreator,
-                                             propertyTag,
-                                             attributesToSet,
-                                             attributesToClear);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-#endif
-
-static PyObject *WinObj_TrackBox(_self, _args)
-       WindowObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Boolean _rv;
-       Point thePt;
-       WindowPartCode partCode;
-       if (!PyArg_ParseTuple(_args, "O&h",
-                             PyMac_GetPoint, &thePt,
-                             &partCode))
-               return NULL;
-       _rv = TrackBox(_self->ob_itself,
-                      thePt,
-                      partCode);
-       _res = Py_BuildValue("b",
-                            _rv);
-       return _res;
-}
-
-static PyObject *WinObj_TrackGoAway(_self, _args)
-       WindowObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Boolean _rv;
-       Point thePt;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             PyMac_GetPoint, &thePt))
-               return NULL;
-       _rv = TrackGoAway(_self->ob_itself,
-                         thePt);
-       _res = Py_BuildValue("b",
-                            _rv);
-       return _res;
-}
-
-#if !TARGET_API_MAC_CARBON
-
-static PyObject *WinObj_GetAuxWin(_self, _args)
-       WindowObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Boolean _rv;
-       AuxWinHandle awHndl;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _rv = GetAuxWin(_self->ob_itself,
-                       &awHndl);
-       _res = Py_BuildValue("bO&",
-                            _rv,
-                            ResObj_New, awHndl);
-       return _res;
-}
-#endif
-
-#if !TARGET_API_MAC_CARBON
-
-static PyObject *WinObj_GetWindowGoAwayFlag(_self, _args)
-       WindowObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Boolean _rv;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _rv = GetWindowGoAwayFlag(_self->ob_itself);
-       _res = Py_BuildValue("b",
-                            _rv);
-       return _res;
-}
-#endif
-
-#if !TARGET_API_MAC_CARBON
-
-static PyObject *WinObj_GetWindowSpareFlag(_self, _args)
-       WindowObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Boolean _rv;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _rv = GetWindowSpareFlag(_self->ob_itself);
-       _res = Py_BuildValue("b",
-                            _rv);
-       return _res;
-}
-#endif
-
-static PyObject *WinObj_GetWindowPort(_self, _args)
-       WindowObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       CGrafPtr _rv;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _rv = GetWindowPort(_self->ob_itself);
-       _res = Py_BuildValue("O&",
-                            GrafObj_New, _rv);
-       return _res;
-}
-
-static PyObject *WinObj_GetWindowKind(_self, _args)
-       WindowObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       short _rv;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _rv = GetWindowKind(_self->ob_itself);
-       _res = Py_BuildValue("h",
-                            _rv);
-       return _res;
-}
-
-static PyObject *WinObj_MacIsWindowVisible(_self, _args)
-       WindowObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Boolean _rv;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _rv = MacIsWindowVisible(_self->ob_itself);
-       _res = Py_BuildValue("b",
-                            _rv);
-       return _res;
-}
-
-static PyObject *WinObj_IsWindowHilited(_self, _args)
-       WindowObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Boolean _rv;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _rv = IsWindowHilited(_self->ob_itself);
-       _res = Py_BuildValue("b",
-                            _rv);
-       return _res;
-}
-
-#if TARGET_API_MAC_CARBON
-
-static PyObject *WinObj_IsWindowUpdatePending(_self, _args)
-       WindowObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Boolean _rv;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _rv = IsWindowUpdatePending(_self->ob_itself);
-       _res = Py_BuildValue("b",
-                            _rv);
-       return _res;
-}
-#endif
-
-static PyObject *WinObj_MacGetNextWindow(_self, _args)
-       WindowObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       WindowPtr _rv;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _rv = MacGetNextWindow(_self->ob_itself);
-       _res = Py_BuildValue("O&",
-                            WinObj_New, _rv);
-       return _res;
-}
-
-static PyObject *WinObj_GetWindowStandardState(_self, _args)
-       WindowObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Rect rect;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       GetWindowStandardState(_self->ob_itself,
-                              &rect);
-       _res = Py_BuildValue("O&",
-                            PyMac_BuildRect, &rect);
-       return _res;
-}
-
-static PyObject *WinObj_GetWindowUserState(_self, _args)
-       WindowObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Rect rect;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       GetWindowUserState(_self->ob_itself,
-                          &rect);
-       _res = Py_BuildValue("O&",
-                            PyMac_BuildRect, &rect);
-       return _res;
-}
-
-static PyObject *WinObj_SetWindowKind(_self, _args)
-       WindowObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       short kind;
-       if (!PyArg_ParseTuple(_args, "h",
-                             &kind))
-               return NULL;
-       SetWindowKind(_self->ob_itself,
-                     kind);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *WinObj_SetWindowStandardState(_self, _args)
-       WindowObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Rect rect;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             PyMac_GetRect, &rect))
-               return NULL;
-       SetWindowStandardState(_self->ob_itself,
-                              &rect);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *WinObj_SetWindowUserState(_self, _args)
-       WindowObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Rect rect;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             PyMac_GetRect, &rect))
-               return NULL;
-       SetWindowUserState(_self->ob_itself,
-                          &rect);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *WinObj_SetPortWindowPort(_self, _args)
-       WindowObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       SetPortWindowPort(_self->ob_itself);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *WinObj_GetWindowPortBounds(_self, _args)
-       WindowObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Rect bounds;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       GetWindowPortBounds(_self->ob_itself,
-                           &bounds);
-       _res = Py_BuildValue("O&",
-                            PyMac_BuildRect, &bounds);
-       return _res;
-}
-
-static PyObject *WinObj_IsWindowVisible(_self, _args)
-       WindowObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Boolean _rv;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _rv = IsWindowVisible(_self->ob_itself);
-       _res = Py_BuildValue("b",
-                            _rv);
-       return _res;
-}
-
-#if !TARGET_API_MAC_CARBON
-
-static PyObject *WinObj_GetWindowZoomFlag(_self, _args)
-       WindowObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Boolean _rv;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _rv = GetWindowZoomFlag(_self->ob_itself);
-       _res = Py_BuildValue("b",
-                            _rv);
-       return _res;
-}
-#endif
-
-static PyObject *WinObj_GetWindowStructureRgn(_self, _args)
-       WindowObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       RgnHandle r;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             ResObj_Convert, &r))
-               return NULL;
-       GetWindowStructureRgn(_self->ob_itself,
-                             r);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *WinObj_GetWindowContentRgn(_self, _args)
-       WindowObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       RgnHandle r;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             ResObj_Convert, &r))
-               return NULL;
-       GetWindowContentRgn(_self->ob_itself,
-                           r);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *WinObj_GetWindowUpdateRgn(_self, _args)
-       WindowObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       RgnHandle r;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             ResObj_Convert, &r))
-               return NULL;
-       GetWindowUpdateRgn(_self->ob_itself,
-                          r);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-#if !TARGET_API_MAC_CARBON
-
-static PyObject *WinObj_GetWindowTitleWidth(_self, _args)
-       WindowObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       short _rv;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _rv = GetWindowTitleWidth(_self->ob_itself);
-       _res = Py_BuildValue("h",
-                            _rv);
-       return _res;
-}
-#endif
-
-static PyObject *WinObj_GetNextWindow(_self, _args)
-       WindowObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       WindowPtr _rv;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _rv = GetNextWindow(_self->ob_itself);
-       _res = Py_BuildValue("O&",
-                            WinObj_WhichWindow, _rv);
-       return _res;
-}
-
-#if !TARGET_API_MAC_CARBON
-
-static PyObject *WinObj_CloseWindow(_self, _args)
-       WindowObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       CloseWindow(_self->ob_itself);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-#endif
-
-static PyObject *WinObj_MoveWindow(_self, _args)
-       WindowObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       short hGlobal;
-       short vGlobal;
-       Boolean front;
-       if (!PyArg_ParseTuple(_args, "hhb",
-                             &hGlobal,
-                             &vGlobal,
-                             &front))
-               return NULL;
-       MoveWindow(_self->ob_itself,
-                  hGlobal,
-                  vGlobal,
-                  front);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *WinObj_ShowWindow(_self, _args)
-       WindowObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       ShowWindow(_self->ob_itself);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyMethodDef WinObj_methods[] = {
-       {"GetWindowOwnerCount", (PyCFunction)WinObj_GetWindowOwnerCount, 1,
-        "() -> (UInt32 outCount)"},
-       {"CloneWindow", (PyCFunction)WinObj_CloneWindow, 1,
-        "() -> None"},
-
-#if TARGET_API_MAC_CARBON
-       {"ReshapeCustomWindow", (PyCFunction)WinObj_ReshapeCustomWindow, 1,
-        "() -> None"},
-#endif
-       {"GetWindowClass", (PyCFunction)WinObj_GetWindowClass, 1,
-        "() -> (WindowClass outClass)"},
-       {"GetWindowAttributes", (PyCFunction)WinObj_GetWindowAttributes, 1,
-        "() -> (WindowAttributes outAttributes)"},
-
-#if TARGET_API_MAC_CARBON
-       {"ChangeWindowAttributes", (PyCFunction)WinObj_ChangeWindowAttributes, 1,
-        "(WindowAttributes setTheseAttributes, WindowAttributes clearTheseAttributes) -> None"},
-#endif
-
-#if !TARGET_API_MAC_CARBON
-       {"SetWinColor", (PyCFunction)WinObj_SetWinColor, 1,
-        "(WCTabHandle newColorTable) -> None"},
-#endif
-       {"SetWindowContentColor", (PyCFunction)WinObj_SetWindowContentColor, 1,
-        "(RGBColor color) -> None"},
-       {"GetWindowContentColor", (PyCFunction)WinObj_GetWindowContentColor, 1,
-        "() -> (RGBColor color)"},
-       {"GetWindowContentPattern", (PyCFunction)WinObj_GetWindowContentPattern, 1,
-        "(PixPatHandle outPixPat) -> None"},
-       {"SetWindowContentPattern", (PyCFunction)WinObj_SetWindowContentPattern, 1,
-        "(PixPatHandle pixPat) -> None"},
-
-#if TARGET_API_MAC_CARBON
-       {"ScrollWindowRect", (PyCFunction)WinObj_ScrollWindowRect, 1,
-        "(Rect inScrollRect, SInt16 inHPixels, SInt16 inVPixels, ScrollWindowOptions inOptions, RgnHandle outExposedRgn) -> None"},
-#endif
-
-#if TARGET_API_MAC_CARBON
-       {"ScrollWindowRegion", (PyCFunction)WinObj_ScrollWindowRegion, 1,
-        "(RgnHandle inScrollRgn, SInt16 inHPixels, SInt16 inVPixels, ScrollWindowOptions inOptions, RgnHandle outExposedRgn) -> None"},
-#endif
-       {"ClipAbove", (PyCFunction)WinObj_ClipAbove, 1,
-        "() -> None"},
-
-#if !TARGET_API_MAC_CARBON
-       {"SaveOld", (PyCFunction)WinObj_SaveOld, 1,
-        "() -> None"},
-#endif
-
-#if !TARGET_API_MAC_CARBON
-       {"DrawNew", (PyCFunction)WinObj_DrawNew, 1,
-        "(Boolean update) -> None"},
-#endif
-       {"PaintOne", (PyCFunction)WinObj_PaintOne, 1,
-        "(RgnHandle clobberedRgn) -> None"},
-       {"PaintBehind", (PyCFunction)WinObj_PaintBehind, 1,
-        "(RgnHandle clobberedRgn) -> None"},
-       {"CalcVis", (PyCFunction)WinObj_CalcVis, 1,
-        "() -> None"},
-       {"CalcVisBehind", (PyCFunction)WinObj_CalcVisBehind, 1,
-        "(RgnHandle clobberedRgn) -> None"},
-       {"BringToFront", (PyCFunction)WinObj_BringToFront, 1,
-        "() -> None"},
-       {"SendBehind", (PyCFunction)WinObj_SendBehind, 1,
-        "(WindowPtr behindWindow) -> None"},
-       {"SelectWindow", (PyCFunction)WinObj_SelectWindow, 1,
-        "() -> None"},
-
-#if TARGET_API_MAC_CARBON
-       {"GetNextWindowOfClass", (PyCFunction)WinObj_GetNextWindowOfClass, 1,
-        "(WindowClass inWindowClass, Boolean mustBeVisible) -> (WindowPtr _rv)"},
-#endif
-
-#if !TARGET_API_MAC_CARBON
-       {"IsValidWindowPtr", (PyCFunction)WinObj_IsValidWindowPtr, 1,
-        "() -> (Boolean _rv)"},
-#endif
-       {"HiliteWindow", (PyCFunction)WinObj_HiliteWindow, 1,
-        "(Boolean fHilite) -> None"},
-       {"SetWRefCon", (PyCFunction)WinObj_SetWRefCon, 1,
-        "(long data) -> None"},
-       {"GetWRefCon", (PyCFunction)WinObj_GetWRefCon, 1,
-        "() -> (long _rv)"},
-       {"SetWindowPic", (PyCFunction)WinObj_SetWindowPic, 1,
-        "(PicHandle pic) -> None"},
-       {"GetWindowPic", (PyCFunction)WinObj_GetWindowPic, 1,
-        "() -> (PicHandle _rv)"},
-       {"GetWVariant", (PyCFunction)WinObj_GetWVariant, 1,
-        "() -> (short _rv)"},
-       {"GetWindowFeatures", (PyCFunction)WinObj_GetWindowFeatures, 1,
-        "() -> (UInt32 outFeatures)"},
-       {"GetWindowRegion", (PyCFunction)WinObj_GetWindowRegion, 1,
-        "(WindowRegionCode inRegionCode, RgnHandle ioWinRgn) -> None"},
-       {"BeginUpdate", (PyCFunction)WinObj_BeginUpdate, 1,
-        "() -> None"},
-       {"EndUpdate", (PyCFunction)WinObj_EndUpdate, 1,
-        "() -> None"},
-       {"InvalWindowRgn", (PyCFunction)WinObj_InvalWindowRgn, 1,
-        "(RgnHandle region) -> None"},
-       {"InvalWindowRect", (PyCFunction)WinObj_InvalWindowRect, 1,
-        "(Rect bounds) -> None"},
-       {"ValidWindowRgn", (PyCFunction)WinObj_ValidWindowRgn, 1,
-        "(RgnHandle region) -> None"},
-       {"ValidWindowRect", (PyCFunction)WinObj_ValidWindowRect, 1,
-        "(Rect bounds) -> None"},
-       {"DrawGrowIcon", (PyCFunction)WinObj_DrawGrowIcon, 1,
-        "() -> None"},
-       {"SetWTitle", (PyCFunction)WinObj_SetWTitle, 1,
-        "(Str255 title) -> None"},
-       {"GetWTitle", (PyCFunction)WinObj_GetWTitle, 1,
-        "() -> (Str255 title)"},
-       {"SetWindowProxyFSSpec", (PyCFunction)WinObj_SetWindowProxyFSSpec, 1,
-        "(FSSpec inFile) -> None"},
-       {"GetWindowProxyFSSpec", (PyCFunction)WinObj_GetWindowProxyFSSpec, 1,
-        "() -> (FSSpec outFile)"},
-       {"SetWindowProxyAlias", (PyCFunction)WinObj_SetWindowProxyAlias, 1,
-        "(AliasHandle alias) -> None"},
-       {"GetWindowProxyAlias", (PyCFunction)WinObj_GetWindowProxyAlias, 1,
-        "() -> (AliasHandle alias)"},
-       {"SetWindowProxyCreatorAndType", (PyCFunction)WinObj_SetWindowProxyCreatorAndType, 1,
-        "(OSType fileCreator, OSType fileType, SInt16 vRefNum) -> None"},
-       {"GetWindowProxyIcon", (PyCFunction)WinObj_GetWindowProxyIcon, 1,
-        "() -> (IconRef outIcon)"},
-       {"SetWindowProxyIcon", (PyCFunction)WinObj_SetWindowProxyIcon, 1,
-        "(IconRef icon) -> None"},
-       {"RemoveWindowProxy", (PyCFunction)WinObj_RemoveWindowProxy, 1,
-        "() -> None"},
-       {"BeginWindowProxyDrag", (PyCFunction)WinObj_BeginWindowProxyDrag, 1,
-        "(RgnHandle outDragOutlineRgn) -> (DragReference outNewDrag)"},
-       {"EndWindowProxyDrag", (PyCFunction)WinObj_EndWindowProxyDrag, 1,
-        "(DragReference theDrag) -> None"},
-       {"TrackWindowProxyFromExistingDrag", (PyCFunction)WinObj_TrackWindowProxyFromExistingDrag, 1,
-        "(Point startPt, DragReference drag, RgnHandle inDragOutlineRgn) -> None"},
-       {"TrackWindowProxyDrag", (PyCFunction)WinObj_TrackWindowProxyDrag, 1,
-        "(Point startPt) -> None"},
-       {"IsWindowModified", (PyCFunction)WinObj_IsWindowModified, 1,
-        "() -> (Boolean _rv)"},
-       {"SetWindowModified", (PyCFunction)WinObj_SetWindowModified, 1,
-        "(Boolean modified) -> None"},
-       {"IsWindowPathSelectClick", (PyCFunction)WinObj_IsWindowPathSelectClick, 1,
-        "(EventRecord event) -> (Boolean _rv)"},
-       {"WindowPathSelect", (PyCFunction)WinObj_WindowPathSelect, 1,
-        "(MenuHandle menu) -> (SInt32 outMenuResult)"},
-       {"HiliteWindowFrameForDrag", (PyCFunction)WinObj_HiliteWindowFrameForDrag, 1,
-        "(Boolean hilited) -> None"},
-       {"TransitionWindow", (PyCFunction)WinObj_TransitionWindow, 1,
-        "(WindowTransitionEffect effect, WindowTransitionAction action, Rect rect) -> None"},
-       {"MacMoveWindow", (PyCFunction)WinObj_MacMoveWindow, 1,
-        "(short hGlobal, short vGlobal, Boolean front) -> None"},
-       {"SizeWindow", (PyCFunction)WinObj_SizeWindow, 1,
-        "(short w, short h, Boolean fUpdate) -> None"},
-       {"GrowWindow", (PyCFunction)WinObj_GrowWindow, 1,
-        "(Point startPt, Rect bBox) -> (long _rv)"},
-       {"DragWindow", (PyCFunction)WinObj_DragWindow, 1,
-        "(Point startPt, Rect boundsRect) -> None"},
-       {"ZoomWindow", (PyCFunction)WinObj_ZoomWindow, 1,
-        "(WindowPartCode partCode, Boolean front) -> None"},
-       {"IsWindowCollapsable", (PyCFunction)WinObj_IsWindowCollapsable, 1,
-        "() -> (Boolean _rv)"},
-       {"IsWindowCollapsed", (PyCFunction)WinObj_IsWindowCollapsed, 1,
-        "() -> (Boolean _rv)"},
-       {"CollapseWindow", (PyCFunction)WinObj_CollapseWindow, 1,
-        "(Boolean collapse) -> None"},
-       {"GetWindowBounds", (PyCFunction)WinObj_GetWindowBounds, 1,
-        "(WindowRegionCode regionCode) -> (Rect globalBounds)"},
-       {"ResizeWindow", (PyCFunction)WinObj_ResizeWindow, 1,
-        "(Point startPoint, Rect sizeConstraints) -> (Boolean _rv, Rect newContentRect)"},
-       {"SetWindowBounds", (PyCFunction)WinObj_SetWindowBounds, 1,
-        "(WindowRegionCode regionCode, Rect globalBounds) -> None"},
-       {"RepositionWindow", (PyCFunction)WinObj_RepositionWindow, 1,
-        "(WindowPtr parentWindow, WindowPositionMethod method) -> None"},
-       {"MoveWindowStructure", (PyCFunction)WinObj_MoveWindowStructure, 1,
-        "(short hGlobal, short vGlobal) -> None"},
-       {"IsWindowInStandardState", (PyCFunction)WinObj_IsWindowInStandardState, 1,
-        "() -> (Boolean _rv, Point idealSize, Rect idealStandardState)"},
-       {"ZoomWindowIdeal", (PyCFunction)WinObj_ZoomWindowIdeal, 1,
-        "(WindowPartCode partCode) -> (Point ioIdealSize)"},
-       {"GetWindowIdealUserState", (PyCFunction)WinObj_GetWindowIdealUserState, 1,
-        "() -> (Rect userState)"},
-       {"SetWindowIdealUserState", (PyCFunction)WinObj_SetWindowIdealUserState, 1,
-        "() -> (Rect userState)"},
-       {"HideWindow", (PyCFunction)WinObj_HideWindow, 1,
-        "() -> None"},
-       {"MacShowWindow", (PyCFunction)WinObj_MacShowWindow, 1,
-        "() -> None"},
-       {"ShowHide", (PyCFunction)WinObj_ShowHide, 1,
-        "(Boolean showFlag) -> None"},
-
-#if TARGET_API_MAC_CARBON
-       {"GetWindowPropertyAttributes", (PyCFunction)WinObj_GetWindowPropertyAttributes, 1,
-        "(OSType propertyCreator, OSType propertyTag) -> (UInt32 attributes)"},
-#endif
-
-#if TARGET_API_MAC_CARBON
-       {"ChangeWindowPropertyAttributes", (PyCFunction)WinObj_ChangeWindowPropertyAttributes, 1,
-        "(OSType propertyCreator, OSType propertyTag, UInt32 attributesToSet, UInt32 attributesToClear) -> None"},
-#endif
-       {"TrackBox", (PyCFunction)WinObj_TrackBox, 1,
-        "(Point thePt, WindowPartCode partCode) -> (Boolean _rv)"},
-       {"TrackGoAway", (PyCFunction)WinObj_TrackGoAway, 1,
-        "(Point thePt) -> (Boolean _rv)"},
-
-#if !TARGET_API_MAC_CARBON
-       {"GetAuxWin", (PyCFunction)WinObj_GetAuxWin, 1,
-        "() -> (Boolean _rv, AuxWinHandle awHndl)"},
-#endif
-
-#if !TARGET_API_MAC_CARBON
-       {"GetWindowGoAwayFlag", (PyCFunction)WinObj_GetWindowGoAwayFlag, 1,
-        "() -> (Boolean _rv)"},
-#endif
-
-#if !TARGET_API_MAC_CARBON
-       {"GetWindowSpareFlag", (PyCFunction)WinObj_GetWindowSpareFlag, 1,
-        "() -> (Boolean _rv)"},
-#endif
-       {"GetWindowPort", (PyCFunction)WinObj_GetWindowPort, 1,
-        "() -> (CGrafPtr _rv)"},
-       {"GetWindowKind", (PyCFunction)WinObj_GetWindowKind, 1,
-        "() -> (short _rv)"},
-       {"MacIsWindowVisible", (PyCFunction)WinObj_MacIsWindowVisible, 1,
-        "() -> (Boolean _rv)"},
-       {"IsWindowHilited", (PyCFunction)WinObj_IsWindowHilited, 1,
-        "() -> (Boolean _rv)"},
-
-#if TARGET_API_MAC_CARBON
-       {"IsWindowUpdatePending", (PyCFunction)WinObj_IsWindowUpdatePending, 1,
-        "() -> (Boolean _rv)"},
-#endif
-       {"MacGetNextWindow", (PyCFunction)WinObj_MacGetNextWindow, 1,
-        "() -> (WindowPtr _rv)"},
-       {"GetWindowStandardState", (PyCFunction)WinObj_GetWindowStandardState, 1,
-        "() -> (Rect rect)"},
-       {"GetWindowUserState", (PyCFunction)WinObj_GetWindowUserState, 1,
-        "() -> (Rect rect)"},
-       {"SetWindowKind", (PyCFunction)WinObj_SetWindowKind, 1,
-        "(short kind) -> None"},
-       {"SetWindowStandardState", (PyCFunction)WinObj_SetWindowStandardState, 1,
-        "(Rect rect) -> None"},
-       {"SetWindowUserState", (PyCFunction)WinObj_SetWindowUserState, 1,
-        "(Rect rect) -> None"},
-       {"SetPortWindowPort", (PyCFunction)WinObj_SetPortWindowPort, 1,
-        "() -> None"},
-       {"GetWindowPortBounds", (PyCFunction)WinObj_GetWindowPortBounds, 1,
-        "() -> (Rect bounds)"},
-       {"IsWindowVisible", (PyCFunction)WinObj_IsWindowVisible, 1,
-        "() -> (Boolean _rv)"},
-
-#if !TARGET_API_MAC_CARBON
-       {"GetWindowZoomFlag", (PyCFunction)WinObj_GetWindowZoomFlag, 1,
-        "() -> (Boolean _rv)"},
-#endif
-       {"GetWindowStructureRgn", (PyCFunction)WinObj_GetWindowStructureRgn, 1,
-        "(RgnHandle r) -> None"},
-       {"GetWindowContentRgn", (PyCFunction)WinObj_GetWindowContentRgn, 1,
-        "(RgnHandle r) -> None"},
-       {"GetWindowUpdateRgn", (PyCFunction)WinObj_GetWindowUpdateRgn, 1,
-        "(RgnHandle r) -> None"},
-
-#if !TARGET_API_MAC_CARBON
-       {"GetWindowTitleWidth", (PyCFunction)WinObj_GetWindowTitleWidth, 1,
-        "() -> (short _rv)"},
-#endif
-       {"GetNextWindow", (PyCFunction)WinObj_GetNextWindow, 1,
-        "() -> (WindowPtr _rv)"},
-
-#if !TARGET_API_MAC_CARBON
-       {"CloseWindow", (PyCFunction)WinObj_CloseWindow, 1,
-        "() -> None"},
-#endif
-       {"MoveWindow", (PyCFunction)WinObj_MoveWindow, 1,
-        "(short hGlobal, short vGlobal, Boolean front) -> None"},
-       {"ShowWindow", (PyCFunction)WinObj_ShowWindow, 1,
-        "() -> None"},
-       {NULL, NULL, 0}
-};
-
-PyMethodChain WinObj_chain = { WinObj_methods, NULL };
-
-static PyObject *WinObj_getattr(self, name)
-       WindowObject *self;
-       char *name;
-{
-       return Py_FindMethodInChain(&WinObj_chain, (PyObject *)self, name);
-}
-
-#define WinObj_setattr NULL
-
-static int WinObj_compare(self, other)
-       WindowObject *self, *other;
-{
-       if ( self->ob_itself > other->ob_itself ) return 1;
-       if ( self->ob_itself < other->ob_itself ) return -1;
-       return 0;
-}
-
-static PyObject * WinObj_repr(self)
-       WindowObject *self;
-{
-       char buf[100];
-       sprintf(buf, "<Window object at 0x%08.8x for 0x%08.8x>", self, self->ob_itself);
-       return PyString_FromString(buf);
-}
-
-static int WinObj_hash(self)
-       WindowObject *self;
-{
-       return (int)self->ob_itself;
-}
-
-PyTypeObject Window_Type = {
-       PyObject_HEAD_INIT(&PyType_Type)
-       0, /*ob_size*/
-       "Window", /*tp_name*/
-       sizeof(WindowObject), /*tp_basicsize*/
-       0, /*tp_itemsize*/
-       /* methods */
-       (destructor) WinObj_dealloc, /*tp_dealloc*/
-       0, /*tp_print*/
-       (getattrfunc) WinObj_getattr, /*tp_getattr*/
-       (setattrfunc) WinObj_setattr, /*tp_setattr*/
-       (cmpfunc) WinObj_compare, /*tp_compare*/
-       (reprfunc) WinObj_repr, /*tp_repr*/
-       (PyNumberMethods *)0, /* tp_as_number */
-       (PySequenceMethods *)0, /* tp_as_sequence */
-       (PyMappingMethods *)0, /* tp_as_mapping */
-       (hashfunc) WinObj_hash, /*tp_hash*/
-};
-
-/* --------------------- End object type Window --------------------- */
-
-
-static PyObject *Win_GetNewCWindow(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       WindowPtr _rv;
-       short windowID;
-       WindowPtr behind;
-       if (!PyArg_ParseTuple(_args, "hO&",
-                             &windowID,
-                             WinObj_Convert, &behind))
-               return NULL;
-       _rv = GetNewCWindow(windowID,
-                           (void *)0,
-                           behind);
-       _res = Py_BuildValue("O&",
-                            WinObj_New, _rv);
-       return _res;
-}
-
-static PyObject *Win_NewWindow(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       WindowPtr _rv;
-       Rect boundsRect;
-       Str255 title;
-       Boolean visible;
-       short theProc;
-       WindowPtr behind;
-       Boolean goAwayFlag;
-       long refCon;
-       if (!PyArg_ParseTuple(_args, "O&O&bhO&bl",
-                             PyMac_GetRect, &boundsRect,
-                             PyMac_GetStr255, title,
-                             &visible,
-                             &theProc,
-                             WinObj_Convert, &behind,
-                             &goAwayFlag,
-                             &refCon))
-               return NULL;
-       _rv = NewWindow((void *)0,
-                       &boundsRect,
-                       title,
-                       visible,
-                       theProc,
-                       behind,
-                       goAwayFlag,
-                       refCon);
-       _res = Py_BuildValue("O&",
-                            WinObj_New, _rv);
-       return _res;
-}
-
-static PyObject *Win_GetNewWindow(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       WindowPtr _rv;
-       short windowID;
-       WindowPtr behind;
-       if (!PyArg_ParseTuple(_args, "hO&",
-                             &windowID,
-                             WinObj_Convert, &behind))
-               return NULL;
-       _rv = GetNewWindow(windowID,
-                          (void *)0,
-                          behind);
-       _res = Py_BuildValue("O&",
-                            WinObj_New, _rv);
-       return _res;
-}
-
-static PyObject *Win_NewCWindow(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       WindowPtr _rv;
-       Rect boundsRect;
-       Str255 title;
-       Boolean visible;
-       short procID;
-       WindowPtr behind;
-       Boolean goAwayFlag;
-       long refCon;
-       if (!PyArg_ParseTuple(_args, "O&O&bhO&bl",
-                             PyMac_GetRect, &boundsRect,
-                             PyMac_GetStr255, title,
-                             &visible,
-                             &procID,
-                             WinObj_Convert, &behind,
-                             &goAwayFlag,
-                             &refCon))
-               return NULL;
-       _rv = NewCWindow((void *)0,
-                        &boundsRect,
-                        title,
-                        visible,
-                        procID,
-                        behind,
-                        goAwayFlag,
-                        refCon);
-       _res = Py_BuildValue("O&",
-                            WinObj_New, _rv);
-       return _res;
-}
-
-static PyObject *Win_CreateNewWindow(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSStatus _err;
-       WindowClass windowClass;
-       WindowAttributes attributes;
-       Rect contentBounds;
-       WindowPtr outWindow;
-       if (!PyArg_ParseTuple(_args, "llO&",
-                             &windowClass,
-                             &attributes,
-                             PyMac_GetRect, &contentBounds))
-               return NULL;
-       _err = CreateNewWindow(windowClass,
-                              attributes,
-                              &contentBounds,
-                              &outWindow);
-       if (_err != noErr) return PyMac_Error(_err);
-       _res = Py_BuildValue("O&",
-                            WinObj_WhichWindow, outWindow);
-       return _res;
-}
-
-static PyObject *Win_CreateWindowFromResource(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSStatus _err;
-       SInt16 resID;
-       WindowPtr outWindow;
-       if (!PyArg_ParseTuple(_args, "h",
-                             &resID))
-               return NULL;
-       _err = CreateWindowFromResource(resID,
-                                       &outWindow);
-       if (_err != noErr) return PyMac_Error(_err);
-       _res = Py_BuildValue("O&",
-                            WinObj_WhichWindow, outWindow);
-       return _res;
-}
-
-static PyObject *Win_ShowFloatingWindows(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSStatus _err;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _err = ShowFloatingWindows();
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *Win_HideFloatingWindows(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSStatus _err;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _err = HideFloatingWindows();
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *Win_AreFloatingWindowsVisible(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Boolean _rv;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _rv = AreFloatingWindowsVisible();
-       _res = Py_BuildValue("b",
-                            _rv);
-       return _res;
-}
-
-#if !TARGET_API_MAC_CARBON
-
-static PyObject *Win_SetDeskCPat(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       PixPatHandle deskPixPat;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             ResObj_Convert, &deskPixPat))
-               return NULL;
-       SetDeskCPat(deskPixPat);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-#endif
-
-static PyObject *Win_CheckUpdate(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Boolean _rv;
-       EventRecord theEvent;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _rv = CheckUpdate(&theEvent);
-       _res = Py_BuildValue("bO&",
-                            _rv,
-                            PyMac_BuildEventRecord, &theEvent);
-       return _res;
-}
-
-static PyObject *Win_MacFindWindow(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       WindowPartCode _rv;
-       Point thePoint;
-       WindowPtr window;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             PyMac_GetPoint, &thePoint))
-               return NULL;
-       _rv = MacFindWindow(thePoint,
-                           &window);
-       _res = Py_BuildValue("hO&",
-                            _rv,
-                            WinObj_WhichWindow, window);
-       return _res;
-}
-
-static PyObject *Win_FrontWindow(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       WindowPtr _rv;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _rv = FrontWindow();
-       _res = Py_BuildValue("O&",
-                            WinObj_WhichWindow, _rv);
-       return _res;
-}
-
-static PyObject *Win_FrontNonFloatingWindow(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       WindowPtr _rv;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _rv = FrontNonFloatingWindow();
-       _res = Py_BuildValue("O&",
-                            WinObj_WhichWindow, _rv);
-       return _res;
-}
-
-#if TARGET_API_MAC_CARBON
-
-static PyObject *Win_GetFrontWindowOfClass(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       WindowPtr _rv;
-       WindowClass inWindowClass;
-       Boolean mustBeVisible;
-       if (!PyArg_ParseTuple(_args, "lb",
-                             &inWindowClass,
-                             &mustBeVisible))
-               return NULL;
-       _rv = GetFrontWindowOfClass(inWindowClass,
-                                   mustBeVisible);
-       _res = Py_BuildValue("O&",
-                            WinObj_New, _rv);
-       return _res;
-}
-#endif
-
-#if TARGET_API_MAC_CARBON
-
-static PyObject *Win_FindWindowOfClass(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSStatus _err;
-       Point where;
-       WindowClass inWindowClass;
-       WindowPtr outWindow;
-       WindowPartCode outWindowPart;
-       if (!PyArg_ParseTuple(_args, "O&l",
-                             PyMac_GetPoint, &where,
-                             &inWindowClass))
-               return NULL;
-       _err = FindWindowOfClass(&where,
-                                inWindowClass,
-                                &outWindow,
-                                &outWindowPart);
-       if (_err != noErr) return PyMac_Error(_err);
-       _res = Py_BuildValue("O&h",
-                            WinObj_WhichWindow, outWindow,
-                            outWindowPart);
-       return _res;
-}
-#endif
-
-#if !TARGET_API_MAC_CARBON
-
-static PyObject *Win_InitWindows(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       InitWindows();
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-#endif
-
-#if !TARGET_API_MAC_CARBON
-
-static PyObject *Win_GetWMgrPort(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       GrafPtr wPort;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       GetWMgrPort(&wPort);
-       _res = Py_BuildValue("O&",
-                            GrafObj_New, wPort);
-       return _res;
-}
-#endif
-
-#if !TARGET_API_MAC_CARBON
-
-static PyObject *Win_GetCWMgrPort(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       CGrafPtr wMgrCPort;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       GetCWMgrPort(&wMgrCPort);
-       _res = Py_BuildValue("O&",
-                            GrafObj_New, wMgrCPort);
-       return _res;
-}
-#endif
-
-#if !TARGET_API_MAC_CARBON
-
-static PyObject *Win_InitFloatingWindows(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSStatus _err;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _err = InitFloatingWindows();
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-#endif
-
-#if !TARGET_API_MAC_CARBON
-
-static PyObject *Win_InvalRect(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Rect badRect;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             PyMac_GetRect, &badRect))
-               return NULL;
-       InvalRect(&badRect);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-#endif
-
-#if !TARGET_API_MAC_CARBON
-
-static PyObject *Win_InvalRgn(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       RgnHandle badRgn;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             ResObj_Convert, &badRgn))
-               return NULL;
-       InvalRgn(badRgn);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-#endif
-
-#if !TARGET_API_MAC_CARBON
-
-static PyObject *Win_ValidRect(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       Rect goodRect;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             PyMac_GetRect, &goodRect))
-               return NULL;
-       ValidRect(&goodRect);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-#endif
-
-#if !TARGET_API_MAC_CARBON
-
-static PyObject *Win_ValidRgn(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       RgnHandle goodRgn;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             ResObj_Convert, &goodRgn))
-               return NULL;
-       ValidRgn(goodRgn);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-#endif
-
-static PyObject *Win_CollapseAllWindows(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       OSStatus _err;
-       Boolean collapse;
-       if (!PyArg_ParseTuple(_args, "b",
-                             &collapse))
-               return NULL;
-       _err = CollapseAllWindows(collapse);
-       if (_err != noErr) return PyMac_Error(_err);
-       Py_INCREF(Py_None);
-       _res = Py_None;
-       return _res;
-}
-
-static PyObject *Win_PinRect(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       long _rv;
-       Rect theRect;
-       Point thePt;
-       if (!PyArg_ParseTuple(_args, "O&O&",
-                             PyMac_GetRect, &theRect,
-                             PyMac_GetPoint, &thePt))
-               return NULL;
-       _rv = PinRect(&theRect,
-                     thePt);
-       _res = Py_BuildValue("l",
-                            _rv);
-       return _res;
-}
-
-static PyObject *Win_GetGrayRgn(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       RgnHandle _rv;
-       if (!PyArg_ParseTuple(_args, ""))
-               return NULL;
-       _rv = GetGrayRgn();
-       _res = Py_BuildValue("O&",
-                            ResObj_New, _rv);
-       return _res;
-}
-
-static PyObject *Win_GetWindowFromPort(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       WindowPtr _rv;
-       CGrafPtr port;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             GrafObj_Convert, &port))
-               return NULL;
-       _rv = GetWindowFromPort(port);
-       _res = Py_BuildValue("O&",
-                            WinObj_New, _rv);
-       return _res;
-}
-
-static PyObject *Win_WhichWindow(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-
-       long ptr;
-
-       if ( !PyArg_ParseTuple(_args, "i", &ptr) )
-               return NULL;
-       return WinObj_WhichWindow((WindowPtr)ptr);
-
-}
-
-static PyObject *Win_FindWindow(_self, _args)
-       PyObject *_self;
-       PyObject *_args;
-{
-       PyObject *_res = NULL;
-       short _rv;
-       Point thePoint;
-       WindowPtr theWindow;
-       if (!PyArg_ParseTuple(_args, "O&",
-                             PyMac_GetPoint, &thePoint))
-               return NULL;
-       _rv = FindWindow(thePoint,
-                        &theWindow);
-       _res = Py_BuildValue("hO&",
-                            _rv,
-                            WinObj_WhichWindow, theWindow);
-       return _res;
-}
-
-static PyMethodDef Win_methods[] = {
-       {"GetNewCWindow", (PyCFunction)Win_GetNewCWindow, 1,
-        "(short windowID, WindowPtr behind) -> (WindowPtr _rv)"},
-       {"NewWindow", (PyCFunction)Win_NewWindow, 1,
-        "(Rect boundsRect, Str255 title, Boolean visible, short theProc, WindowPtr behind, Boolean goAwayFlag, long refCon) -> (WindowPtr _rv)"},
-       {"GetNewWindow", (PyCFunction)Win_GetNewWindow, 1,
-        "(short windowID, WindowPtr behind) -> (WindowPtr _rv)"},
-       {"NewCWindow", (PyCFunction)Win_NewCWindow, 1,
-        "(Rect boundsRect, Str255 title, Boolean visible, short procID, WindowPtr behind, Boolean goAwayFlag, long refCon) -> (WindowPtr _rv)"},
-       {"CreateNewWindow", (PyCFunction)Win_CreateNewWindow, 1,
-        "(WindowClass windowClass, WindowAttributes attributes, Rect contentBounds) -> (WindowPtr outWindow)"},
-       {"CreateWindowFromResource", (PyCFunction)Win_CreateWindowFromResource, 1,
-        "(SInt16 resID) -> (WindowPtr outWindow)"},
-       {"ShowFloatingWindows", (PyCFunction)Win_ShowFloatingWindows, 1,
-        "() -> None"},
-       {"HideFloatingWindows", (PyCFunction)Win_HideFloatingWindows, 1,
-        "() -> None"},
-       {"AreFloatingWindowsVisible", (PyCFunction)Win_AreFloatingWindowsVisible, 1,
-        "() -> (Boolean _rv)"},
-
-#if !TARGET_API_MAC_CARBON
-       {"SetDeskCPat", (PyCFunction)Win_SetDeskCPat, 1,
-        "(PixPatHandle deskPixPat) -> None"},
-#endif
-       {"CheckUpdate", (PyCFunction)Win_CheckUpdate, 1,
-        "() -> (Boolean _rv, EventRecord theEvent)"},
-       {"MacFindWindow", (PyCFunction)Win_MacFindWindow, 1,
-        "(Point thePoint) -> (WindowPartCode _rv, WindowPtr window)"},
-       {"FrontWindow", (PyCFunction)Win_FrontWindow, 1,
-        "() -> (WindowPtr _rv)"},
-       {"FrontNonFloatingWindow", (PyCFunction)Win_FrontNonFloatingWindow, 1,
-        "() -> (WindowPtr _rv)"},
-
-#if TARGET_API_MAC_CARBON
-       {"GetFrontWindowOfClass", (PyCFunction)Win_GetFrontWindowOfClass, 1,
-        "(WindowClass inWindowClass, Boolean mustBeVisible) -> (WindowPtr _rv)"},
-#endif
-
-#if TARGET_API_MAC_CARBON
-       {"FindWindowOfClass", (PyCFunction)Win_FindWindowOfClass, 1,
-        "(Point where, WindowClass inWindowClass) -> (WindowPtr outWindow, WindowPartCode outWindowPart)"},
-#endif
-
-#if !TARGET_API_MAC_CARBON
-       {"InitWindows", (PyCFunction)Win_InitWindows, 1,
-        "() -> None"},
-#endif
-
-#if !TARGET_API_MAC_CARBON
-       {"GetWMgrPort", (PyCFunction)Win_GetWMgrPort, 1,
-        "() -> (GrafPtr wPort)"},
-#endif
-
-#if !TARGET_API_MAC_CARBON
-       {"GetCWMgrPort", (PyCFunction)Win_GetCWMgrPort, 1,
-        "() -> (CGrafPtr wMgrCPort)"},
-#endif
-
-#if !TARGET_API_MAC_CARBON
-       {"InitFloatingWindows", (PyCFunction)Win_InitFloatingWindows, 1,
-        "() -> None"},
-#endif
-
-#if !TARGET_API_MAC_CARBON
-       {"InvalRect", (PyCFunction)Win_InvalRect, 1,
-        "(Rect badRect) -> None"},
-#endif
-
-#if !TARGET_API_MAC_CARBON
-       {"InvalRgn", (PyCFunction)Win_InvalRgn, 1,
-        "(RgnHandle badRgn) -> None"},
-#endif
-
-#if !TARGET_API_MAC_CARBON
-       {"ValidRect", (PyCFunction)Win_ValidRect, 1,
-        "(Rect goodRect) -> None"},
-#endif
-
-#if !TARGET_API_MAC_CARBON
-       {"ValidRgn", (PyCFunction)Win_ValidRgn, 1,
-        "(RgnHandle goodRgn) -> None"},
-#endif
-       {"CollapseAllWindows", (PyCFunction)Win_CollapseAllWindows, 1,
-        "(Boolean collapse) -> None"},
-       {"PinRect", (PyCFunction)Win_PinRect, 1,
-        "(Rect theRect, Point thePt) -> (long _rv)"},
-       {"GetGrayRgn", (PyCFunction)Win_GetGrayRgn, 1,
-        "() -> (RgnHandle _rv)"},
-       {"GetWindowFromPort", (PyCFunction)Win_GetWindowFromPort, 1,
-        "(CGrafPtr port) -> (WindowPtr _rv)"},
-       {"WhichWindow", (PyCFunction)Win_WhichWindow, 1,
-        "Resolve an integer WindowPtr address to a Window object"},
-       {"FindWindow", (PyCFunction)Win_FindWindow, 1,
-        "(Point thePoint) -> (short _rv, WindowPtr theWindow)"},
-       {NULL, NULL, 0}
-};
-
-
-
-/* Return the object corresponding to the window, or NULL */
-
-PyObject *
-WinObj_WhichWindow(w)
-       WindowPtr w;
-{
-       PyObject *it;
-       
-       if (w == NULL) {
-               it = Py_None;
-               Py_INCREF(it);
-       } else {
-               it = (PyObject *) GetWRefCon(w);
-               if (it == NULL || ((WindowObject *)it)->ob_itself != w || !WinObj_Check(it)) {
-                       it = WinObj_New(w);
-                       ((WindowObject *)it)->ob_freeit = NULL;
-               } else {
-                       Py_INCREF(it);
-               }
-       }
-       return it;
-}
-
-
-void initWin()
-{
-       PyObject *m;
-       PyObject *d;
-
-
-
-
-       m = Py_InitModule("Win", Win_methods);
-       d = PyModule_GetDict(m);
-       Win_Error = PyMac_GetOSErrException();
-       if (Win_Error == NULL ||
-           PyDict_SetItemString(d, "Error", Win_Error) != 0)
-               return;
-       Window_Type.ob_type = &PyType_Type;
-       Py_INCREF(&Window_Type);
-       if (PyDict_SetItemString(d, "WindowType", (PyObject *)&Window_Type) != 0)
-               Py_FatalError("can't initialize WindowType");
-}
-
-/* ========================= End module Win ========================= */
-
diff --git a/Mac/Modules/win/winsupport.py b/Mac/Modules/win/winsupport.py
deleted file mode 100644 (file)
index 6054e26..0000000
+++ /dev/null
@@ -1,218 +0,0 @@
-# This script generates a Python interface for an Apple Macintosh Manager.
-# It uses the "bgen" package to generate C code.
-# The function specifications are generated by scanning the mamager's header file,
-# using the "scantools" package (customized for this particular manager).
-
-import string
-
-# Declarations that change for each manager
-MACHEADERFILE = 'Windows.h'            # The Apple header file
-MODNAME = 'Win'                                # The name of the module
-OBJECTNAME = 'Window'                  # The basic name of the objects used here
-
-# The following is *usually* unchanged but may still require tuning
-MODPREFIX = MODNAME                    # The prefix for module-wide routines
-OBJECTTYPE = OBJECTNAME + 'Ptr'                # The C type used to represent them
-OBJECTPREFIX = MODPREFIX + 'Obj'       # The prefix for object methods
-INPUTFILE = string.lower(MODPREFIX) + 'gen.py' # The file generated by the scanner
-EDITFILE = string.lower(MODPREFIX) + 'edit.py' # The manual definitions
-OUTPUTFILE = MODNAME + "module.c"      # The file generated by this program
-
-from macsupport import *
-
-# Create the type objects
-
-WindowPtr = OpaqueByValueType(OBJECTTYPE, OBJECTPREFIX)
-WindowRef = WindowPtr
-WindowPeek = OpaqueByValueType("WindowPeek", OBJECTPREFIX)
-WindowPeek.passInput = lambda name: "(WindowPeek)(%s)" % name
-CGrafPtr = OpaqueByValueType("CGrafPtr", "GrafObj")
-GrafPtr = OpaqueByValueType("GrafPtr", "GrafObj")
-
-DragReference = OpaqueByValueType("DragReference", "DragObj")
-
-RgnHandle = OpaqueByValueType("RgnHandle", "ResObj")
-PicHandle = OpaqueByValueType("PicHandle", "ResObj")
-WCTabHandle = OpaqueByValueType("WCTabHandle", "ResObj")
-AuxWinHandle = OpaqueByValueType("AuxWinHandle", "ResObj")
-PixPatHandle = OpaqueByValueType("PixPatHandle", "ResObj")
-AliasHandle = OpaqueByValueType("AliasHandle", "ResObj")
-IconRef = OpaqueByValueType("IconRef", "ResObj")
-
-WindowRegionCode = Type("WindowRegionCode", "H")
-WindowClass = Type("WindowClass", "l")
-WindowAttributes = Type("WindowAttributes", "l")
-WindowPositionMethod = Type("WindowPositionMethod", "l")
-WindowTransitionEffect = Type("WindowTransitionEffect", "l")
-WindowTransitionAction = Type("WindowTransitionAction", "l")
-RGBColor = OpaqueType("RGBColor", "QdRGB")
-RGBColor_ptr = RGBColor
-ScrollWindowOptions = Type("ScrollWindowOptions", "l")
-WindowPartCode = Type("WindowPartCode", "h")
-
-PropertyCreator = OSTypeType("PropertyCreator")
-PropertyTag = OSTypeType("PropertyTag")
-
-includestuff = includestuff + """
-#include <%s>""" % MACHEADERFILE + """
-
-#if !ACCESSOR_CALLS_ARE_FUNCTIONS
-/* Carbon calls that we emulate in classic mode */
-#define GetWindowSpareFlag(win) (((CWindowPeek)(win))->spareFlag)
-#define GetWindowFromPort(port) ((WindowRef)(port))
-#define GetWindowPortBounds(win, rectp) (*(rectp) = ((CWindowPeek)(win))->port.portRect)
-#endif
-#if ACCESSOR_CALLS_ARE_FUNCTIONS
-/* Classic calls that we emulate in carbon mode */
-#define GetWindowUpdateRgn(win, rgn) GetWindowRegion((win), kWindowUpdateRgn, (rgn))
-#define GetWindowStructureRgn(win, rgn) GetWindowRegion((win), kWindowStructureRgn, (rgn))
-#define GetWindowContentRgn(win, rgn) GetWindowRegion((win), kWindowContentRgn, (rgn))
-#endif
-
-/* Function to dispose a window, with a "normal" calling sequence */
-static void
-PyMac_AutoDisposeWindow(WindowPtr w)
-{
-       DisposeWindow(w);
-}
-"""
-
-finalstuff = finalstuff + """
-/* Return the object corresponding to the window, or NULL */
-
-PyObject *
-WinObj_WhichWindow(w)
-       WindowPtr w;
-{
-       PyObject *it;
-       
-       if (w == NULL) {
-               it = Py_None;
-               Py_INCREF(it);
-       } else {
-               it = (PyObject *) GetWRefCon(w);
-               if (it == NULL || ((WindowObject *)it)->ob_itself != w || !WinObj_Check(it)) {
-                       it = WinObj_New(w);
-                       ((WindowObject *)it)->ob_freeit = NULL;
-               } else {
-                       Py_INCREF(it);
-               }
-       }
-       return it;
-}
-"""
-
-class MyObjectDefinition(GlobalObjectDefinition):
-       def outputCheckNewArg(self):
-               Output("if (itself == NULL) return PyMac_Error(resNotFound);")
-       def outputStructMembers(self):
-               GlobalObjectDefinition.outputStructMembers(self)
-               Output("void (*ob_freeit)(%s ptr);", self.itselftype)
-       def outputInitStructMembers(self):
-               GlobalObjectDefinition.outputInitStructMembers(self)
-               Output("it->ob_freeit = NULL;")
-               Output("if (GetWRefCon(itself) == 0)")
-               OutLbrace()
-               Output("SetWRefCon(itself, (long)it);")
-               Output("it->ob_freeit = PyMac_AutoDisposeWindow;")
-               OutRbrace()
-       def outputCheckConvertArg(self):
-               OutLbrace("if (DlgObj_Check(v))")
-               Output("*p_itself = DlgObj_ConvertToWindow(v);")
-               Output("return 1;")
-               OutRbrace()
-               Out("""
-               if (v == Py_None) { *p_itself = NULL; return 1; }
-               if (PyInt_Check(v)) { *p_itself = (WindowPtr)PyInt_AsLong(v); return 1; }
-               """)
-       def outputCleanupStructMembers(self):
-               Output("if (self->ob_freeit && self->ob_itself)")
-               OutLbrace()
-               Output("SetWRefCon(self->ob_itself, 0);")
-               Output("self->ob_freeit(self->ob_itself);")
-               OutRbrace()
-               Output("self->ob_itself = NULL;")
-               Output("self->ob_freeit = NULL;")
-               
-       def outputCompare(self):
-               Output()
-               Output("static int %s_compare(self, other)", self.prefix)
-               IndentLevel()
-               Output("%s *self, *other;", self.objecttype)
-               DedentLevel()
-               OutLbrace()
-               Output("if ( self->ob_itself > other->ob_itself ) return 1;")
-               Output("if ( self->ob_itself < other->ob_itself ) return -1;")
-               Output("return 0;")
-               OutRbrace()
-               
-       def outputHash(self):
-               Output()
-               Output("static int %s_hash(self)", self.prefix)
-               IndentLevel()
-               Output("%s *self;", self.objecttype)
-               DedentLevel()
-               OutLbrace()
-               Output("return (int)self->ob_itself;")
-               OutRbrace()
-               
-       def outputRepr(self):
-               Output()
-               Output("static PyObject * %s_repr(self)", self.prefix)
-               IndentLevel()
-               Output("%s *self;", self.objecttype)
-               DedentLevel()
-               OutLbrace()
-               Output("char buf[100];")
-               Output("""sprintf(buf, "<Window object at 0x%%08.8x for 0x%%08.8x>", self, self->ob_itself);""")
-               Output("return PyString_FromString(buf);")
-               OutRbrace()
-               
-##     def outputFreeIt(self, itselfname):
-##             Output("DisposeWindow(%s);", itselfname)
-# From here on it's basically all boiler plate...
-
-# Create the generator groups and link them
-module = MacModule(MODNAME, MODPREFIX, includestuff, finalstuff, initstuff)
-object = MyObjectDefinition(OBJECTNAME, OBJECTPREFIX, OBJECTTYPE)
-module.addobject(object)
-
-# Create the generator classes used to populate the lists
-Function = OSErrFunctionGenerator
-Method = OSErrMethodGenerator
-
-# Create and populate the lists
-functions = []
-methods = []
-execfile(INPUTFILE)
-
-# Add manual routines for converting integer WindowPtr's (as returned by
-# various event routines)  and Dialog objects to a WindowObject.
-whichwin_body = """
-long ptr;
-
-if ( !PyArg_ParseTuple(_args, "i", &ptr) )
-       return NULL;
-return WinObj_WhichWindow((WindowPtr)ptr);
-"""
-
-f = ManualGenerator("WhichWindow", whichwin_body)
-f.docstring = lambda : "Resolve an integer WindowPtr address to a Window object"
-
-functions.append(f)
-
-# And add the routines that access the internal bits of a window struct. They
-# are currently #defined in Windows.h, they will be real routines in Copland
-# (at which time this execfile can go)
-execfile(EDITFILE)
-
-# add the populated lists to the generator groups
-# (in a different wordl the scan program would generate this)
-for f in functions: module.add(f)
-for f in methods: object.add(f)
-
-
-
-# generate output (open the output file as late as possible)
-SetOutputFileName(OUTPUTFILE)
-module.generate()
diff --git a/Mac/Python/getapplbycreator.c b/Mac/Python/getapplbycreator.c
deleted file mode 100644 (file)
index f5e4212..0000000
+++ /dev/null
@@ -1,159 +0,0 @@
-/***********************************************************
-Copyright 1991-1997 by Stichting Mathematisch Centrum, Amsterdam,
-The Netherlands.
-
-                        All Rights Reserved
-
-Permission to use, copy, modify, and distribute this software and its
-documentation for any purpose and without fee is hereby granted,
-provided that the above copyright notice appear in all copies and that
-both that copyright notice and this permission notice appear in
-supporting documentation, and that the names of Stichting Mathematisch
-Centrum or CWI or Corporation for National Research Initiatives or
-CNRI not be used in advertising or publicity pertaining to
-distribution of the software without specific, written prior
-permission.
-
-While CWI is the initial source for this software, a modified version
-is made available by the Corporation for National Research Initiatives
-(CNRI) at the Internet address ftp://ftp.python.org.
-
-STICHTING MATHEMATISCH CENTRUM AND CNRI DISCLAIM ALL WARRANTIES WITH
-REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF
-MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL STICHTING MATHEMATISCH
-CENTRUM OR CNRI BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL
-DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
-PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
-TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
-PERFORMANCE OF THIS SOFTWARE.
-
-******************************************************************/
-
-/*
-** FindApplicationFromCreator uses the Desktop Database to
-** locate the creator application for the given document
-**
-** this routine will check the desktop database of all local
-** disks, then the desktop databases of all server volumes
-** (so up to two passes will be made)
-**
-** This code was created from FindApplicationFromDocument
-** routine, origin unknown.
-*/
-
-#include <Types.h>
-#include <Files.h>
-#include <Errors.h>
-#include "getapplbycreator.h"
-
-
-OSErr FindApplicationFromCreator(OSType creator,
-        FSSpecPtr applicationFSSpecPtr)
-{
-        enum { localPass, remotePass, donePass } volumePass;
-        DTPBRec desktopParams;
-        HParamBlockRec hfsParams;
-        short volumeIndex;
-        Boolean foundFlag;
-        GetVolParmsInfoBuffer volumeInfoBuffer;
-        OSErr retCode;
-
-/* dkj 12/94 initialize flag to false (thanks to Peter Baral for pointing out this bug) */
-        foundFlag = false;
-
-        volumePass = localPass;
-        volumeIndex = 0;
-
-        do {
-                               /*
-                ** first, find the vRefNum of the volume whose Desktop Database
-                ** we're checking this time
-                               */
-
-                               volumeIndex++;
-
-                               /*      convert the volumeIndex into a vRefNum */
-
-                               hfsParams.volumeParam.ioNamePtr = nil;
-                               hfsParams.volumeParam.ioVRefNum = 0;
-                               hfsParams.volumeParam.ioVolIndex = volumeIndex;
-                               retCode = PBHGetVInfoSync(&hfsParams);
-
-                               /* a nsvErr indicates that the current pass is over */
-                               if (retCode == nsvErr) goto SkipThisVolume;
-                               if (retCode != noErr) goto Bail;
-
-                               /*
-                               ** call GetVolParms to determine if this volume is a server
-                               ** (a remote volume)
-                               */
-                               
-                               hfsParams.ioParam.ioBuffer = (Ptr) &volumeInfoBuffer;
-                               hfsParams.ioParam.ioReqCount = sizeof(GetVolParmsInfoBuffer);
-                               retCode = PBHGetVolParmsSync(&hfsParams);
-                               if (retCode != noErr) goto Bail;
-                               
-                               /*
-                               ** if the vMServerAdr field of the volume information buffer
-                               ** is zero, this is a local volume; skip this volume
-                               ** if it's local on a remote pass or remote on a local pass
-                               */
-                               
-                               if ((volumeInfoBuffer.vMServerAdr != 0) !=
-                                               (volumePass == remotePass)) goto SkipThisVolume;
-
-                               /* okay, now we've found the vRefNum for our desktop database call */
-
-                               desktopParams.ioVRefNum = hfsParams.volumeParam.ioVRefNum;
-
-                               /*
-                ** find the path refNum for the desktop database for
-                ** the volume we're interested in
-                */
-
-                desktopParams.ioNamePtr = nil;
-
-                retCode = PBDTGetPath(&desktopParams);
-                if (retCode == noErr && desktopParams.ioDTRefNum != 0) {
-
-                                               /*
-                        ** use the GetAPPL call to find the preferred application
-                        ** for opening any document with this one's creator
-                        */
-
-                        desktopParams.ioIndex = 0;
-                        desktopParams.ioFileCreator = creator;
-                        desktopParams.ioNamePtr = applicationFSSpecPtr->name;
-                        retCode = PBDTGetAPPLSync(&desktopParams);
-
-                        if (retCode == noErr) {
-                                                               /*
-                                ** okay, found it; fill in the application file spec
-                                ** and set the flag indicating we're done
-                                */
-
-                                applicationFSSpecPtr->parID = desktopParams.ioAPPLParID;
-                                applicationFSSpecPtr->vRefNum = desktopParams.ioVRefNum;
-                                foundFlag = true;
-
-                        }
-                }
-
-        SkipThisVolume:
-                               /*
-                ** if retCode indicates a no such volume error or if this
-                ** was the first pass, it's time to move on to the next pass
-                */
-
-                if (retCode == nsvErr) {
-                        volumePass++;
-                        volumeIndex = 0;
-                }
-
-        } while (foundFlag == false && volumePass != donePass);
-
-Bail:
-               if (retCode == nsvErr)
-                       return fnfErr;          /* More logical than "No such volume" */
-        return retCode;
-}
diff --git a/Mac/Python/macgetargv.c b/Mac/Python/macgetargv.c
deleted file mode 100644 (file)
index bef197c..0000000
+++ /dev/null
@@ -1,306 +0,0 @@
-/***********************************************************
-Copyright 1991-1997 by Stichting Mathematisch Centrum, Amsterdam,
-The Netherlands.
-
-                        All Rights Reserved
-
-Permission to use, copy, modify, and distribute this software and its 
-documentation for any purpose and without fee is hereby granted, 
-provided that the above copyright notice appear in all copies and that
-both that copyright notice and this permission notice appear in 
-supporting documentation, and that the names of Stichting Mathematisch
-Centrum or CWI not be used in advertising or publicity pertaining to
-distribution of the software without specific, written prior permission.
-
-STICHTING MATHEMATISCH CENTRUM DISCLAIMS ALL WARRANTIES WITH REGARD TO
-THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
-FITNESS, IN NO EVENT SHALL STICHTING MATHEMATISCH CENTRUM BE LIABLE
-FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
-WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
-ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
-OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
-
-******************************************************************/
-
-/* Construct argc and argv for main() by using Apple Events */
-/* From Jack's implementation for STDWIN */
-
-#include <stdlib.h>
-
-#include <Types.h>
-#include <Files.h>
-#include <Events.h>
-#include <Memory.h>
-#include <Processes.h>
-#include <Errors.h>
-#include <AppleEvents.h>
-#include <AEObjects.h>
-#include <Fonts.h>
-#include <TextEdit.h>
-#include <Menus.h>
-#include <Dialogs.h>
-#include <Windows.h>
-
-#include "Python.h"
-#include "macglue.h"
-
-static int arg_count;
-static char *arg_vector[256];
-FSSpec PyMac_ApplicationFSSpec;
-char PyMac_ApplicationPath[256];
-static int applocation_inited;
-
-/* Duplicate a string to the heap. We also export this since it isn't standard
-** and others use it
-*/
-#ifndef HAVE_STRDUP
-char *
-strdup(const char *src)
-{
-       char *dst = malloc(strlen(src) + 1);
-       if (dst)
-               strcpy(dst, src);
-       return dst;
-}
-#endif
-
-/* Initialize FSSpec and full name of current application */
-
-OSErr
-PyMac_init_process_location()
-{
-       ProcessSerialNumber currentPSN;
-       ProcessInfoRec info;
-       OSErr err;
-       
-       if ( applocation_inited ) return 0;
-       currentPSN.highLongOfPSN = 0;
-       currentPSN.lowLongOfPSN = kCurrentProcess;
-       info.processInfoLength = sizeof(ProcessInfoRec);
-       info.processName = NULL;
-       info.processAppSpec = &PyMac_ApplicationFSSpec;
-       if ( err=GetProcessInformation(&currentPSN, &info))
-               return err;
-       if ( err=PyMac_GetFullPath(&PyMac_ApplicationFSSpec, PyMac_ApplicationPath) )
-               return err;
-       applocation_inited = 1;
-       return 0;
-}
-
-/* Given an FSSpec, return the FSSpec of the parent folder */
-
-static OSErr
-get_folder_parent (FSSpec * fss, FSSpec * parent)
-{
-       CInfoPBRec rec;
-       short err;
-
-        * parent = * fss;
-        rec.hFileInfo.ioNamePtr = parent->name;
-        rec.hFileInfo.ioVRefNum = parent->vRefNum;
-        rec.hFileInfo.ioDirID = parent->parID;
-               rec.hFileInfo.ioFDirIndex = -1;
-        rec.hFileInfo.ioFVersNum = 0;
-        if (err = PBGetCatInfoSync (& rec))
-               return err;
-        parent->parID = rec.dirInfo.ioDrParID;
-/*     parent->name[0] = 0; */
-        return 0;
-}
-
-/* Given an FSSpec return a full, colon-separated pathname */
-
-OSErr
-PyMac_GetFullPath (FSSpec *fss, char *buf)
-{
-       short err;
-       FSSpec fss_parent, fss_current;
-       char tmpbuf[1024];
-       int plen;
-
-       fss_current = *fss;
-       plen = fss_current.name[0];
-       memcpy(buf, &fss_current.name[1], plen);
-       buf[plen] = 0;
-       /* Special case for disk names */
-       if ( fss_current.parID <= 1 ) {
-               buf[plen++] = ':';
-               buf[plen] = 0;
-               return 0;
-       }
-       while (fss_current.parID > 1) {
-               /* Get parent folder name */
-                if (err = get_folder_parent(&fss_current, &fss_parent))
-                       return err;
-                fss_current = fss_parent;
-                /* Prepend path component just found to buf */
-                       plen = fss_current.name[0];
-                       if (strlen(buf) + plen + 1 > 1024) {
-                               /* Oops... Not enough space (shouldn't happen) */
-                               *buf = 0;
-                               return -1;
-                       }
-                       memcpy(tmpbuf, &fss_current.name[1], plen);
-                       tmpbuf[plen] = ':';
-                       strcpy(&tmpbuf[plen+1], buf);
-                       strcpy(buf, tmpbuf);
-        }
-        return 0;
-}
-
-/* Check that there aren't any args remaining in the event */
-
-static OSErr 
-get_missing_params(const AppleEvent *theAppleEvent)
-{
-       DescType theType;
-       Size actualSize;
-       OSErr err;
-       
-       err = AEGetAttributePtr(theAppleEvent, keyMissedKeywordAttr, typeWildCard,
-                               &theType, nil, 0, &actualSize);
-       if (err == errAEDescNotFound)
-               return noErr;
-       else
-               return errAEEventNotHandled;
-}
-
-static int got_one; /* Flag that we can stop getting events */
-
-/* Handle the Print or Quit events (by failing) */
-
-static pascal OSErr
-handle_not(const AppleEvent *theAppleEvent, AppleEvent *reply, unsigned long refCon)
-{
-       #pragma unused (reply, refCon)
-       got_one = 1;
-       return errAEEventNotHandled;
-}
-
-/* Handle the Open Application event (by ignoring it) */
-
-static pascal OSErr
-handle_open_app(const AppleEvent *theAppleEvent, AppleEvent *reply, unsigned long refCon)
-{
-       #pragma unused (reply, refCon)
-#if 0
-       /* Test by Jack: would removing this facilitate debugging? */
-       got_one = 1;
-#endif
-       return get_missing_params(theAppleEvent);
-}
-
-/* Handle the Open Document event, by adding an argument */
-
-static pascal OSErr
-handle_open_doc(const AppleEvent *theAppleEvent, AppleEvent *reply, unsigned long refCon)
-{
-       #pragma unused (reply, refCon)
-       OSErr err;
-       AEDescList doclist;
-       AEKeyword keywd;
-       DescType rttype;
-       long i, ndocs, size;
-       FSSpec fss;
-       char path[256];
-       
-       got_one = 1;
-       if (err = AEGetParamDesc(theAppleEvent,
-                                keyDirectObject, typeAEList, &doclist))
-               return err;
-       if (err = get_missing_params(theAppleEvent))
-               return err;
-       if (err = AECountItems(&doclist, &ndocs))
-               return err;
-       for(i = 1; i <= ndocs; i++) {
-               err = AEGetNthPtr(&doclist, i, typeFSS,
-                                 &keywd, &rttype, &fss, sizeof(fss), &size);
-               if (err)
-                       break;
-               PyMac_GetFullPath(&fss, path);
-               arg_vector[arg_count++] = strdup(path);
-       }
-       return err;
-}
-
-/* Install standard core event handlers */
-AEEventHandlerUPP open_doc_upp;
-AEEventHandlerUPP open_app_upp;
-AEEventHandlerUPP not_upp;
-
-static void
-set_ae_handlers()
-{
-       open_doc_upp = NewAEEventHandlerProc(handle_open_doc);
-       open_app_upp = NewAEEventHandlerProc(handle_open_app);
-       not_upp = NewAEEventHandlerProc(handle_not);
-       
-       AEInstallEventHandler(kCoreEventClass, kAEOpenApplication,
-                             open_app_upp, 0L, false);
-       AEInstallEventHandler(kCoreEventClass, kAEOpenDocuments,
-                             open_doc_upp, 0L, false);
-       AEInstallEventHandler(kCoreEventClass, kAEPrintDocuments,
-                             not_upp, 0L, false);
-       AEInstallEventHandler(kCoreEventClass, kAEQuitApplication,
-                             not_upp, 0L, false);
-}
-
-/* Uninstall standard core event handlers */
-
-static void
-reset_ae_handlers()
-{
-       AERemoveEventHandler(kCoreEventClass, kAEOpenApplication,
-                            open_app_upp, false);
-       AERemoveEventHandler(kCoreEventClass, kAEOpenDocuments,
-                            open_doc_upp, false);
-       AERemoveEventHandler(kCoreEventClass, kAEPrintDocuments,
-                            not_upp, false);
-       AERemoveEventHandler(kCoreEventClass, kAEQuitApplication,
-                            not_upp, false);
-}
-
-/* Wait for events until a core event has been handled */
-
-static void 
-event_loop()
-{
-       EventRecord event;
-       int n;
-       int ok;
-       
-       got_one = 0;
-       for (n = 0; n < 100 && !got_one; n++) {
-#if !TARGET_API_MAC_CARBON
-               SystemTask();
-#endif
-               ok = GetNextEvent(everyEvent, &event);
-               if (ok && event.what == kHighLevelEvent) {
-                       AEProcessAppleEvent(&event);
-               }
-       }
-}
-
-/* Get the argv vector, return argc */
-
-int
-PyMac_GetArgv(pargv, noevents)
-       char ***pargv;
-       int noevents;
-{
-       
-       arg_count = 0;
-       (void)PyMac_init_process_location();
-       arg_vector[arg_count++] = strdup(PyMac_ApplicationPath);
-       
-       if( !noevents ) {
-               set_ae_handlers();
-               event_loop();
-               reset_ae_handlers();
-       }
-       
-       arg_vector[arg_count] = NULL;
-       
-       *pargv = arg_vector;
-       return arg_count;
-}
diff --git a/Mac/Python/macglue.c b/Mac/Python/macglue.c
deleted file mode 100644 (file)
index 52bc225..0000000
+++ /dev/null
@@ -1,1143 +0,0 @@
-/***********************************************************
-Copyright 1991-1997 by Stichting Mathematisch Centrum, Amsterdam,
-The Netherlands.
-
-                        All Rights Reserved
-
-Permission to use, copy, modify, and distribute this software and its 
-documentation for any purpose and without fee is hereby granted, 
-provided that the above copyright notice appear in all copies and that
-both that copyright notice and this permission notice appear in 
-supporting documentation, and that the names of Stichting Mathematisch
-Centrum or CWI not be used in advertising or publicity pertaining to
-distribution of the software without specific, written prior permission.
-
-STICHTING MATHEMATISCH CENTRUM DISCLAIMS ALL WARRANTIES WITH REGARD TO
-THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
-FITNESS, IN NO EVENT SHALL STICHTING MATHEMATISCH CENTRUM BE LIABLE
-FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
-WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
-ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
-OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
-
-******************************************************************/
-
-#ifdef __CFM68K__
-/* cfm68k InterfaceLib exports GetEventQueue, but Events.h doesn't know this
-** and defines it as GetEvQHdr (which is correct for PPC). This fix is for
-** CW9, check that the workaround is still needed for the next release.
-*/
-#define GetEvQHdr GetEventQueue
-#endif /* __CFM68K__ */
-
-#include <Events.h>
-
-#if TARGET_API_MAC_CARBON
-/* Unfortunately this call is probably slower... */
-#define LMGetTicks() TickCount()
-#endif
-
-#ifdef __CFM68K__
-#undef GetEventQueue
-#endif /* __CFM68K__ */
-
-#include "Python.h"
-
-#include "macglue.h"
-#include "marshal.h"
-#include "import.h"
-#include "importdl.h"
-
-#include "pythonresources.h"
-
-#include <OSUtils.h> /* for Set(Current)A5 */
-#include <Files.h>
-#include <StandardFile.h>
-#include <Resources.h>
-#include <Memory.h>
-#include <Windows.h>
-#include <Traps.h>
-#include <Processes.h>
-#include <Fonts.h>
-#include <Menus.h>
-#include <TextUtils.h>
-#ifdef __MWERKS__
-#include <SIOUX.h>
-extern void SIOUXSetupMenus(void);
-extern void SIOUXDoAboutBox(void);
-#endif
-#ifdef USE_GUSI
-/* Functions we redefine because they're in obscure libraries */
-extern void SpinCursor(short x);
-extern void RotateCursor(short x);
-extern pascal void PLstrcpy(unsigned char *, unsigned char *);
-extern pascal int PLstrcmp(unsigned char *, unsigned char *);
-extern pascal unsigned char *PLstrrchr(unsigned char *, unsigned char);
-
-#endif
-
-#ifdef USE_GUSI1
-#include <TFileSpec.h> /* For Path2FSSpec */
-#include <GUSI.h>
-#endif
-#include <LowMem.h>
-
-/* The ID of the Sioux apple menu */
-#define SIOUX_APPLEID  32000
-
-#include <signal.h>
-#include <stdio.h>
-
-/*
-** When less than this amount of stackspace is left we
-** raise a MemoryError.
-*/
-#ifndef MINIMUM_STACK_SIZE
-#ifdef __powerc
-#define MINIMUM_STACK_SIZE 8192
-#else
-#define MINIMUM_STACK_SIZE 4096
-#endif
-#endif
-
-#if TARGET_API_MAC_CARBON
-/*
-** On MacOSX StackSpace() lies: it gives the distance from heap end to stack pointer,
-** but the stack cannot grow that far due to rlimit values. We cannot get at this value
-** from Carbon, so we set a maximum to the stack here that is based on the default
-** stack limit of 512K.
-*/
-#define MAXIMUM_STACK_SIZE (256*1024)
-#endif
-
-/*
-** We have to be careful, since we can't handle
-** things like updates (and they'll keep coming back if we don't
-** handle them). Note that we don't know who has windows open, so
-** even handing updates off to SIOUX under MW isn't going to work.
-*/
-#define MAINLOOP_EVENTMASK (mDownMask|keyDownMask|osMask|activMask)
-
-#include <signal.h>
-
-/* XXX We should include Errors.h here, but it has a name conflict
-** with the python errors.h. */
-#define fnfErr -43
-
-/* Declared in macfsmodule.c: */
-extern FSSpec *mfs_GetFSSpecFSSpec(PyObject *);
-extern PyObject *newmfssobject(FSSpec *);
-
-/* Interrupt code variables: */
-static int interrupted;                        /* Set to true when cmd-. seen */
-static RETSIGTYPE intcatcher(int);
-
-static int PyMac_Yield(void);
-
-/*
-** These are the real scheduling parameters that control what we check
-** in the event loop, and how often we check. The values are initialized
-** from pyMac_SchedParamStruct.
-*/
-
-struct real_sched_param_struct {
-       int             check_interrupt;        /* if true check for command-dot */
-       int             process_events;         /* if nonzero enable evt processing, this mask */
-       int             besocial;               /* if nonzero be a little social with CPU */
-       unsigned long   check_interval;         /* how often to check, in ticks */
-       unsigned long   bg_yield;               /* yield so long when in background */
-       /* these are computed from previous and clock and such */
-       int             enabled;                /* check_interrupt OR process_event OR yield */
-       unsigned long   next_check;             /* when to check/yield next, in ticks */
-};
-
-static struct real_sched_param_struct schedparams =
-       { 1, MAINLOOP_EVENTMASK, 1, 15, 15, 1, 0};
-
-/*
-** Workaround for sioux/gusi combo: set when we are exiting
-*/
-int PyMac_ConsoleIsDead;
-
-/*
-** Sioux menu bar, saved early so we can restore it
-*/
-static MenuBarHandle sioux_mbar;
-
-/*
-** Some stuff for our GetDirectory and PromptGetFile routines
-*/
-struct hook_args {
-       int selectcur_hit;              /* Set to true when "select current" selected */
-       char *prompt;                   /* The prompt */
-};
-#if TARGET_API_MAC_CARBON
-/* The StandardFile hooks don't exist in Carbon. This breaks GetDirectory,
-** but the macfsn code will replace it by a NavServices version anyway.
-*/
-#define myhook_upp NULL
-#else
-static DlgHookYDUPP myhook_upp;
-static int upp_inited = 0;
-#endif
-
-/*
-** The python-code event handler
-*/
-static PyObject *python_event_handler;
-
-/*
-** Set to true if we're appearance-compliant
-*/
-int PyMac_AppearanceCompliant;
-
-/*
-** Find out what the current script is.
-** Donated by Fredrik Lund.
-*/
-char *PyMac_getscript()
-{
-   int font, script, lang;
-    font = 0;
-    font = GetSysFont();
-    script = FontToScript(font);
-    switch (script) {
-    case smRoman:
-        lang = GetScriptVariable(script, smScriptLang);
-        if (lang == langIcelandic)
-            return "mac-iceland";
-        else if (lang == langTurkish)
-            return "mac-turkish";
-        else if (lang == langGreek)
-            return "mac-greek";
-        else
-            return "mac-roman";
-        break;
-    case smJapanese:
-        return "mac-japan";
-    case smGreek:
-        return "mac-greek";
-    case smCyrillic:
-        return "mac-cyrillic";
-    default:
-        return "mac-roman"; /* better than nothing */
-    }
-}
-
-
-#ifdef USE_GUSI1
-/*
-** GUSI (1.6.0 and earlier, at the least) do not set the MacOS idea of
-** the working directory. Hence, we call this routine after each call
-** to chdir() to rectify things.
-*/
-void
-PyMac_FixGUSIcd()
-{
-       WDPBRec pb;
-       FSSpec curdirfss;
-       
-       if ( Path2FSSpec(":x", &curdirfss) != noErr ) 
-               return;
-       
-       /* Set MacOS "working directory" */
-       pb.ioNamePtr= "\p";
-       pb.ioVRefNum= curdirfss.vRefNum;
-       pb.ioWDDirID= curdirfss.parID;
-       if (PBHSetVolSync(&pb) != noErr)
-               return;
-}
-#endif
-
-#ifdef USE_GUSI
-/*
-** SpinCursor (needed by GUSI) drags in heaps of stuff, so we
-** provide a dummy here.
-*/
-void SpinCursor(short x) { /* Dummy */ }
-void RotateCursor(short x) { /* Dummy */ }
-
-/*
-** Replacement GUSI Spin function
-*/
-#ifdef USE_GUSI1
-static int
-PyMac_GUSISpin(spin_msg msg, long arg)
-{
-       static Boolean  inForeground = true;
-       int             maxsleep = 6;   /* 6 ticks is "normal" sleeptime */
-
-       if (PyMac_ConsoleIsDead) return 0;
-#if 0
-       if (inForeground)
-               SpinCursor(msg == SP_AUTO_SPIN ? short(arg) : 1);
-#endif
-
-       if (interrupted) return -1;
-
-       if ( msg == SP_AUTO_SPIN )
-               maxsleep = 0;
-       if ( msg==SP_SLEEP||msg==SP_SELECT )
-               maxsleep = arg;
-
-       PyMac_DoYield(maxsleep, 0); /* XXXX or is it safe to call python here? */
-
-       return 0;
-}
-
-void
-PyMac_SetGUSISpin() {
-       GUSISetHook(GUSI_SpinHook, (GUSIHook)PyMac_GUSISpin);
-}
-#endif
-
-/* Called at exit() time thru atexit(), to stop event processing */
-void
-PyMac_StopGUSISpin() {
-       PyMac_ConsoleIsDead = 1;
-}
-
-#if !TARGET_API_MAC_CARBON
-/*
-** Replacement routines for the PLstr... functions so we don't need
-** StdCLib.
-*/
-pascal void
-PLstrcpy(unsigned char *to, unsigned char *fr)
-{
-       memcpy(to, fr, fr[0]+1);
-}
-
-pascal int
-PLstrcmp(unsigned char *s1, unsigned char *s2)
-{
-       int res;
-       int l = s1[0] < s2[0] ? s1[0] : s2[0];
-       
-       res = memcmp(s1+1, s2+1, l);
-       if ( res != 0 )
-               return res;
-       
-       if ( s1[0] < s2[0] )
-               return -1;
-       else if ( s1[0] > s2[0] )
-               return 1;
-       else
-               return 0;
-}
-
-pascal unsigned char *
-PLstrrchr(unsigned char *str, unsigned char chr)
-{
-       unsigned char *ptr = 0;
-       unsigned char *p;
-       
-       for(p=str+1; p<str+str[0]; p++)
-               if ( *p == chr )
-                       ptr = p;
-       return ptr;
-}
-       
-#endif /* !TARGET_API_MAC_CARBON */
-#endif /* USE_GUSI */
-
-
-/* Convert C to Pascal string. Returns pointer to static buffer. */
-unsigned char *
-Pstring(char *str)
-{
-       static Str255 buf;
-       int len;
-
-       len = strlen(str);
-       if (len > 255)
-               len = 255;
-       buf[0] = (unsigned char)len;
-       strncpy((char *)buf+1, str, len);
-       return buf;
-}
-
-#if !TARGET_API_MAC_CARBON
-void
-c2pstrcpy(unsigned char *dst, const char *src)
-{
-       int len;
-       
-       len = strlen(src);
-       if ( len > 255 ) len = 255;
-       strncpy((char *)dst+1, src, len);
-       dst[0] = len;
-}
-#endif /* !TARGET_API_MAC_CARBON */
-
-/* Like strerror() but for Mac OS error numbers */
-char *PyMac_StrError(int err)
-{
-       static char buf[256];
-       Handle h;
-       char *str;
-       
-       h = GetResource('Estr', err);
-       if ( h ) {
-               HLock(h);
-               str = (char *)*h;
-               memcpy(buf, str+1, (unsigned char)str[0]);
-               buf[(unsigned char)str[0]] = '\0';
-               HUnlock(h);
-               ReleaseResource(h);
-       } else {
-               sprintf(buf, "Mac OS error code %d", err);
-       }
-       return buf;
-}
-
-/* Exception object shared by all Mac specific modules for Mac OS errors */
-PyObject *PyMac_OSErrException;
-
-/* Initialize and return PyMac_OSErrException */
-PyObject *
-PyMac_GetOSErrException()
-{
-       if (PyMac_OSErrException == NULL)
-               PyMac_OSErrException = PyString_FromString("Mac OS Error");
-       return PyMac_OSErrException;
-}
-
-/* Set a MAC-specific error from errno, and return NULL; return None if no error */
-PyObject * 
-PyErr_Mac(PyObject *eobj, int err)
-{
-       char *msg;
-       PyObject *v;
-       
-       if (err == 0 && !PyErr_Occurred()) {
-               Py_INCREF(Py_None);
-               return Py_None;
-       }
-       if (err == -1 && PyErr_Occurred())
-               return NULL;
-       msg = PyMac_StrError(err);
-       v = Py_BuildValue("(is)", err, msg);
-       PyErr_SetObject(eobj, v);
-       Py_DECREF(v);
-       return NULL;
-}
-
-/* Call PyErr_Mac with PyMac_OSErrException */
-PyObject *
-PyMac_Error(OSErr err)
-{
-       return PyErr_Mac(PyMac_GetOSErrException(), err);
-}
-
-#ifdef USE_STACKCHECK
-/* Check for stack overflow */
-int
-PyOS_CheckStack()
-{
-       char here;
-       static char *sentinel = 0;
-       static PyThreadState *thread_for_sentinel = 0;
-       
-       if ( sentinel == 0 ) {
-               unsigned long stackspace = StackSpace();
-               
-#ifdef MAXIMUM_STACK_SIZE
-       /* See the comment at the definition */
-       if ( stackspace > MAXIMUM_STACK_SIZE )
-               stackspace = MAXIMUM_STACK_SIZE;
-#endif 
-               sentinel = &here - stackspace + MINIMUM_STACK_SIZE;
-       }
-       if ( thread_for_sentinel == 0 ) {
-               thread_for_sentinel = PyThreadState_Get();
-       }
-       if ( &here < sentinel ) {
-               if (thread_for_sentinel == PyThreadState_Get()) {
-                       return -1;
-#if 0
-               } else {
-                       /* Else we are unsure... */
-                       fprintf(stderr, "Stackcheck in other thread (was %x now %x)\n", thread_for_sentinel,PyThreadState_Get()); 
-#endif
-               }
-       }
-       return 0;
-}
-#endif /* USE_STACKCHECK */
-
-/* The catcher routine (which may not be used for all compilers) */
-static RETSIGTYPE
-intcatcher(sig)
-       int sig;
-{
-       interrupted = 1;
-       signal(SIGINT, intcatcher);
-}
-
-void
-PyOS_InitInterrupts()
-{
-       if (signal(SIGINT, SIG_IGN) != SIG_IGN)
-               signal(SIGINT, intcatcher);
-}
-
-void
-PyOS_FiniInterrupts()
-{
-}
-
-/*
-** This routine scans the event queue looking for cmd-.
-** This is the only way to get an interrupt under THINK (since it
-** doesn't do SIGINT handling), but is also used under MW, when
-** the full-fledged event loop is disabled. This way, we can at least
-** interrupt a runaway python program.
-*/
-static void
-scan_event_queue(flush)
-       int flush;
-{
-#if TARGET_API_MAC_CARBON
-       if ( CheckEventQueueForUserCancel() )
-               interrupted = 1;
-#else
-       register EvQElPtr q;
-       
-       q = (EvQElPtr) LMGetEventQueue()->qHead;
-       
-       for (; q; q = (EvQElPtr)q->qLink) {
-               if (q->evtQWhat == keyDown &&
-                               (char)q->evtQMessage == '.' &&
-                               (q->evtQModifiers & cmdKey) != 0) {
-                       if ( flush )
-                               FlushEvents(keyDownMask, 0);
-                       interrupted = 1;
-                       break;
-               }
-       }
-#endif
-}
-
-int
-PyErr_CheckSignals()
-{
-       if (schedparams.enabled) {
-               if ( (unsigned long)LMGetTicks() > schedparams.next_check ) {
-                       if ( PyMac_Yield() < 0)
-                               return -1;
-                       schedparams.next_check = (unsigned long)LMGetTicks()
-                                        + schedparams.check_interval;
-                       if (interrupted) {
-                               scan_event_queue(1);    /* Eat events up to cmd-. */
-                               interrupted = 0;
-                               PyErr_SetNone(PyExc_KeyboardInterrupt);
-                               return -1;
-                       }
-               }
-       }
-       return 0;
-}
-
-#if 0
-/*
-** This routine is called if we know that an external library yielded
-** to background tasks, so we shouldn't count that time in our computation
-** of how much CPU we used.
-** This happens with SIOUX, and the routine is called from our modified
-** GUSISIOUX.
-*/
-void
-PyMac_LibraryDidYield(int howlong)
-{
-       unsigned long maxnextcheck = (unsigned long)LMGetTicks() + schedparams.check_interval;
-       
-       schedparams.next_check = schedparams.next_check + howlong;
-       if (schedparams.next_check > maxnextcheck )
-               schedparams.next_check = maxnextcheck;
-}
-#endif
-
-int
-PyOS_InterruptOccurred()
-{
-       scan_event_queue(1);
-       return interrupted;
-}
-/* Check whether we are in the foreground */
-static int
-PyMac_InForeground(void)
-{
-       static ProcessSerialNumber ours;
-       static inited;
-       ProcessSerialNumber curfg;
-       Boolean eq;
-       
-       if ( inited == 0 ) {
-               (void)GetCurrentProcess(&ours);
-               inited = 1;
-       }
-       if ( GetFrontProcess(&curfg) < 0 )
-               eq = 1;
-       else if ( SameProcess(&ours, &curfg, &eq) < 0 )
-               eq = 1;
-       return (int)eq;
-
-}
-
-int
-PyMac_SetEventHandler(PyObject *evh)
-{
-       if ( evh && python_event_handler ) {
-               PyErr_SetString(PyExc_RuntimeError, "Python event handler already set");
-               return 0;
-       }
-       if ( python_event_handler )
-               Py_DECREF(python_event_handler);
-       if ( evh )
-               Py_INCREF(evh);
-       python_event_handler = evh;
-       return 1;
-}
-
-/*
-** Handle an event, either one found in the mainloop eventhandler or
-** one passed back from the python program.
-*/
-void
-PyMac_HandleEventIntern(evp)
-       EventRecord *evp;
-{
-#if !TARGET_API_MAC_CARBON
-       if ( evp->what == mouseDown ) {
-               WindowPtr wp;
-               
-               if ( FindWindow(evp->where, &wp) == inSysWindow ) {
-                       SystemClick(evp, wp);
-                       return;
-               }
-       }
-#endif
-#ifdef __MWERKS__
-       {
-               int siouxdidit;
-
-               /* If SIOUX wants it we're done */
-               siouxdidit = SIOUXHandleOneEvent(evp);
-               if ( siouxdidit )
-                       return;
-       }
-#else
-       /* Other compilers are just unlucky... */
-#endif /* !__MWERKS__ */
-}
-
-/*
-** Handle an event, either through HandleEvent or by passing it to the Python
-** event handler.
-*/
-int
-PyMac_HandleEvent(evp)
-       EventRecord *evp;
-{
-       PyObject *rv;
-       
-       if ( python_event_handler ) {
-               rv = PyObject_CallFunction(python_event_handler, "(O&)", 
-                       PyMac_BuildEventRecord, evp);
-               if ( rv )
-                       Py_DECREF(rv);
-               else
-                       return -1;      /* Propagate exception */
-       } else {
-               PyMac_HandleEventIntern(evp);
-       }
-       return 0;
-}
-
-/*
-** Yield the CPU to other tasks without processing events.
-*/
-int
-PyMac_DoYield(int maxsleep, int maycallpython)
-{
-       EventRecord ev;
-       int gotone;
-       long latest_time_ready;
-       static int in_here = 0;
-       
-       in_here++;
-       /*
-       ** First check for interrupts, if wanted.
-       ** This sets a flag that will be picked up at an appropriate
-       ** moment in the mainloop.
-       */
-       if (schedparams.check_interrupt)
-               scan_event_queue(0);
-       
-       /* XXXX Implementing an idle routine goes here */
-               
-       /*
-       ** Check which of the eventloop cases we have:
-       ** - process events
-       ** - don't process events but do yield
-       ** - do neither
-       */
-       if( in_here > 1 || !schedparams.process_events || 
-           (python_event_handler && !maycallpython) ) {
-#if !TARGET_API_MAC_CARBON
-               if ( maxsleep >= 0 ) {
-                       SystemTask();
-               }
-#endif
-       } else {
-               latest_time_ready = LMGetTicks() + maxsleep;
-               do {
-                       /* XXXX Hack by Jack.
-                       ** In time.sleep() you can click to another application
-                       ** once only. If you come back to Python you cannot get away
-                       ** again.
-                       **/
-                       gotone = WaitNextEvent(schedparams.process_events, &ev, maxsleep, NULL);        
-                       /* Get out quickly if nothing interesting is happening */
-                       if ( !gotone || ev.what == nullEvent )
-                               break;
-                       if ( PyMac_HandleEvent(&ev) < 0 ) {
-                               in_here--;
-                               return -1;
-                       }
-                       maxsleep = latest_time_ready - LMGetTicks();
-               } while ( maxsleep > 0 );
-       }
-       in_here--;
-       return 0;
-}
-
-/*
-** Process events and/or yield the CPU to other tasks if opportune
-*/
-int
-PyMac_Yield() {
-       unsigned long maxsleep;
-       
-       if( PyMac_InForeground() )
-               maxsleep = 0;
-       else
-               maxsleep = schedparams.bg_yield;
-
-       return PyMac_DoYield(maxsleep, 1);
-}
-
-/*
-** Return current scheduler parameters
-*/
-void
-PyMac_GetSchedParams(PyMacSchedParams *sp)
-{
-       sp->check_interrupt = schedparams.check_interrupt;
-       sp->process_events = schedparams.process_events;
-       sp->besocial = schedparams.besocial;
-       sp->check_interval = schedparams.check_interval / 60.0;
-       sp->bg_yield = schedparams.bg_yield / 60.0;
-}
-
-/*
-** Set current scheduler parameters
-*/
-void
-PyMac_SetSchedParams(PyMacSchedParams *sp)
-{
-       schedparams.check_interrupt = sp->check_interrupt;
-       schedparams.process_events = sp->process_events;
-       schedparams.besocial = sp->besocial;
-       schedparams.check_interval = (unsigned long)(sp->check_interval*60);
-       schedparams.bg_yield = (unsigned long)(sp->bg_yield*60);
-       if ( schedparams.check_interrupt || schedparams.process_events ||
-            schedparams.besocial )
-               schedparams.enabled = 1;
-       else
-               schedparams.enabled = 0;
-       schedparams.next_check = 0;     /* Check immedeately */
-}
-
-/*
-** Install our menu bar.
-*/
-void
-PyMac_InitMenuBar()
-{
-       MenuHandle applemenu;
-       
-       if ( (sioux_mbar=GetMenuBar()) == NULL )  {
-               /* Sioux menu not installed yet. Do so */
-               SIOUXSetupMenus();
-               if ( (sioux_mbar=GetMenuBar()) == NULL )
-                       return;
-       }
-       if ( (applemenu=GetMenuHandle(SIOUX_APPLEID)) == NULL ) return;
-       SetMenuItemText(applemenu, 1, "\pAbout Python...");
-}
-
-/*
-** Restore sioux menu bar
-*/
-void
-PyMac_RestoreMenuBar()
-{
-#if 0
-       /* This doesn't seem to work anymore? Or only for Carbon? */
-       MenuBarHandle curmenubar;
-       
-       curmenubar = GetMenuBar();
-       if ( sioux_mbar ) {
-               SetMenuBar(sioux_mbar);
-               DrawMenuBar();
-       } else {
-               PyMac_InitMenuBar();
-               DrawMenuBar();
-       }
-#endif
-}
-
-
-/*
-** Our replacement about box
-*/
-
-#include "patchlevel.h"
-
-void
-SIOUXDoAboutBox(void)
-{
-       DialogPtr theDialog;
-       WindowPtr theWindow;
-       short item;
-       short fontID;
-       
-       if( (theDialog = GetNewDialog(ABOUT_ID, NULL, (WindowPtr)-1)) == NULL )
-               return;
-       theWindow = GetDialogWindow(theDialog);
-       SetPortWindowPort(theWindow);
-       GetFNum("\pPython-Sans", &fontID);
-       if (fontID == 0)
-               fontID = kFontIDGeneva;
-       TextFont(fontID);
-       TextSize(9);
-       ParamText(Pstring(PATCHLEVEL), "\p", "\p", "\p");
-       ShowWindow(theWindow);
-       ModalDialog(NULL, &item);
-       DisposeDialog(theDialog);
-}
-
-#if 0
-int
-PyMac_FileExists(char *name)
-{
-       FSSpec fss;
-       
-       if ( FSMakeFSSpec(0, 0, Pstring(name), &fss) == noErr )
-               return 1;
-       return 0;
-}
-#endif
-
-/*
-** Helper routine for GetDirectory
-*/
-static pascal short
-myhook_proc(short item, DialogPtr theDialog, struct hook_args *dataptr)
-{
-       if ( item == sfHookFirstCall && dataptr->prompt) {
-               Handle prompth;
-               short type;
-               Rect rect;
-               
-               GetDialogItem(theDialog, PROMPT_ITEM, &type, &prompth, &rect);
-               if ( prompth )
-                       SetDialogItemText(prompth, (unsigned char *)dataptr->prompt);
-       } else
-       if ( item == SELECTCUR_ITEM ) {
-               item = sfItemCancelButton;
-               dataptr->selectcur_hit = 1;
-       }
-       return item;
-}      
-#if !TARGET_API_MAC_CARBON
-/*
-** Ask the user for a directory. I still can't understand
-** why Apple doesn't provide a standard solution for this...
-*/
-int
-PyMac_GetDirectory(dirfss, prompt)
-       FSSpec *dirfss;
-       char *prompt;
-{
-       static SFTypeList list = {'fldr', 0, 0, 0};
-       static Point where = {-1, -1};
-       StandardFileReply reply;
-       struct hook_args hook_args;
-       
-       if ( !upp_inited ) {
-               myhook_upp = NewDlgHookYDProc(myhook_proc);
-               upp_inited = 1;
-       }
-       if ( prompt && *prompt )
-               hook_args.prompt = (char *)Pstring(prompt);
-       else
-               hook_args.prompt = NULL;
-       hook_args.selectcur_hit = 0;
-       CustomGetFile((FileFilterYDUPP)0, 1, list, &reply, GETDIR_ID, where, myhook_upp,
-                               NULL, NULL, NULL, (void *)&hook_args);
-                               
-       reply.sfFile.name[0] = 0;
-       if( FSMakeFSSpec(reply.sfFile.vRefNum, reply.sfFile.parID, reply.sfFile.name, dirfss) )
-               return 0;
-       return hook_args.selectcur_hit;
-}
-
-/*
-** Slightly extended StandardGetFile: accepts a prompt */
-void PyMac_PromptGetFile(short numTypes, ConstSFTypeListPtr typeList, 
-               StandardFileReply *reply, char *prompt)
-{
-       static Point where = {-1, -1};
-       struct hook_args hook_args;
-       
-       if ( !upp_inited ) {
-               myhook_upp = NewDlgHookYDProc(myhook_proc);
-               upp_inited = 1;
-       }
-       if ( prompt && *prompt )
-               hook_args.prompt = (char *)Pstring(prompt);
-       else
-               hook_args.prompt = NULL;
-       hook_args.selectcur_hit = 0;
-       CustomGetFile((FileFilterYDUPP)0, numTypes, typeList, reply, GETFILEPROMPT_ID, where,
-                               myhook_upp, NULL, NULL, NULL, (void *)&hook_args);
-}
-#endif /* TARGET_API_MAC_CARBON */
-
-/* Convert a 4-char string object argument to an OSType value */
-int
-PyMac_GetOSType(PyObject *v, OSType *pr)
-{
-       if (!PyString_Check(v) || PyString_Size(v) != 4) {
-               PyErr_SetString(PyExc_TypeError,
-                       "OSType arg must be string of 4 chars");
-               return 0;
-       }
-       memcpy((char *)pr, PyString_AsString(v), 4);
-       return 1;
-}
-
-/* Convert an OSType value to a 4-char string object */
-PyObject *
-PyMac_BuildOSType(OSType t)
-{
-       return PyString_FromStringAndSize((char *)&t, 4);
-}
-
-/* Convert an NumVersion value to a 4-element tuple */
-PyObject *
-PyMac_BuildNumVersion(NumVersion t)
-{
-       return Py_BuildValue("(hhhh)", t.majorRev, t.minorAndBugRev, t.stage, t.nonRelRev);
-}
-
-
-/* Convert a Python string object to a Str255 */
-int
-PyMac_GetStr255(PyObject *v, Str255 pbuf)
-{
-       int len;
-       if (!PyString_Check(v) || (len = PyString_Size(v)) > 255) {
-               PyErr_SetString(PyExc_TypeError,
-                       "Str255 arg must be string of at most 255 chars");
-               return 0;
-       }
-       pbuf[0] = len;
-       memcpy((char *)(pbuf+1), PyString_AsString(v), len);
-       return 1;
-}
-
-/* Convert a Str255 to a Python string object */
-PyObject *
-PyMac_BuildStr255(Str255 s)
-{
-       if ( s == NULL ) {
-               PyErr_SetString(PyExc_SystemError, "Str255 pointer is NULL");
-               return NULL;
-       }
-       return PyString_FromStringAndSize((char *)&s[1], (int)s[0]);
-}
-
-PyObject *
-PyMac_BuildOptStr255(Str255 s)
-{
-       if ( s == NULL ) {
-               Py_INCREF(Py_None);
-               return Py_None;
-       }
-       return PyString_FromStringAndSize((char *)&s[1], (int)s[0]);
-}
-
-
-/*
-** Convert a Python object to an FSSpec.
-** The object may either be a full pathname or a triple
-** (vrefnum, dirid, path).
-** NOTE: This routine will fail on pre-sys7 machines. 
-** The caller is responsible for not calling this routine
-** in those cases (which is fine, since everyone calling
-** this is probably sys7 dependent anyway).
-*/
-int
-PyMac_GetFSSpec(PyObject *v, FSSpec *fs)
-{
-       Str255 path;
-       short refnum;
-       long parid;
-       OSErr err;
-       FSSpec *fs2;
-
-       /* first check whether it already is an FSSpec */
-       fs2 = mfs_GetFSSpecFSSpec(v);
-       if ( fs2 ) {
-               (void)FSMakeFSSpec(fs2->vRefNum, fs2->parID, fs2->name, fs);
-               return 1;
-       }
-       if ( PyString_Check(v) ) {
-               /* It's a pathname */
-               if( !PyArg_Parse(v, "O&", PyMac_GetStr255, &path) )
-                       return 0;
-               refnum = 0; /* XXXX Should get CurWD here?? */
-               parid = 0;
-       } else {
-               if( !PyArg_Parse(v, "(hlO&); FSSpec should be fullpath or (vrefnum,dirid,path)",
-                                                       &refnum, &parid, PyMac_GetStr255, &path)) {
-                       return 0;
-               }
-       }
-       err = FSMakeFSSpec(refnum, parid, path, fs);
-       if ( err && err != fnfErr ) {
-               PyMac_Error(err);
-               return 0;
-       }
-       return 1;
-}
-
-/* Convert FSSpec to PyObject */
-PyObject *PyMac_BuildFSSpec(FSSpec *v)
-{
-       return newmfssobject(v);
-}
-
-/* Convert a Python object to a Rect.
-   The object must be a (left, top, right, bottom) tuple.
-   (This differs from the order in the struct but is consistent with
-   the arguments to SetRect(), and also with STDWIN). */
-int
-PyMac_GetRect(PyObject *v, Rect *r)
-{
-       return PyArg_Parse(v, "(hhhh)", &r->left, &r->top, &r->right, &r->bottom);
-}
-
-/* Convert a Rect to a Python object */
-PyObject *
-PyMac_BuildRect(Rect *r)
-{
-       return Py_BuildValue("(hhhh)", r->left, r->top, r->right, r->bottom);
-}
-
-
-/* Convert a Python object to a Point.
-   The object must be a (h, v) tuple.
-   (This differs from the order in the struct but is consistent with
-   the arguments to SetPoint(), and also with STDWIN). */
-int
-PyMac_GetPoint(PyObject *v, Point *p)
-{
-       return PyArg_Parse(v, "(hh)", &p->h, &p->v);
-}
-
-/* Convert a Point to a Python object */
-PyObject *
-PyMac_BuildPoint(Point p)
-{
-       return Py_BuildValue("(hh)", p.h, p.v);
-}
-
-
-/* Convert a Python object to an EventRecord.
-   The object must be a (what, message, when, (v, h), modifiers) tuple. */
-int
-PyMac_GetEventRecord(PyObject *v, EventRecord *e)
-{
-       return PyArg_Parse(v, "(hll(hh)h)",
-                          &e->what,
-                          &e->message,
-                          &e->when,
-                          &e->where.h,
-                          &e->where.v,                   
-                          &e->modifiers);
-}
-
-/* Convert a Rect to an EventRecord object */
-PyObject *
-PyMac_BuildEventRecord(EventRecord *e)
-{
-       return Py_BuildValue("(hll(hh)h)",
-                            e->what,
-                            e->message,
-                            e->when,
-                            e->where.h,
-                            e->where.v,
-                            e->modifiers);
-}
-
-/* Convert Python object to Fixed */
-int
-PyMac_GetFixed(PyObject *v, Fixed *f)
-{
-       double d;
-       
-       if( !PyArg_Parse(v, "d", &d))
-               return 0;
-       *f = (Fixed)(d * 0x10000);
-       return 1;
-}
-
-/* Convert a Point to a Python object */
-PyObject *
-PyMac_BuildFixed(Fixed f)
-{
-       double d;
-       
-       d = f;
-       d = d / 0x10000;
-       return Py_BuildValue("d", d);
-}
-
-/* Convert wide to/from Python int or (hi, lo) tuple. XXXX Should use Python longs */
-int
-PyMac_Getwide(PyObject *v, wide *rv)
-{
-       if (PyInt_Check(v)) {
-               rv->hi = 0;
-               rv->lo = PyInt_AsLong(v);
-               if( rv->lo & 0x80000000 )
-                       rv->hi = -1;
-               return 1;
-       }
-       return PyArg_Parse(v, "(ll)", &rv->hi, &rv->lo);
-}
-
-
-PyObject *
-PyMac_Buildwide(wide *w)
-{
-       if ( (w->hi == 0 && (w->lo & 0x80000000) == 0) ||
-            (w->hi == -1 && (w->lo & 0x80000000) ) )
-               return PyInt_FromLong(w->lo);
-       return Py_BuildValue("(ll)", w->hi, w->lo);
-}
diff --git a/Mac/Python/macimport.c b/Mac/Python/macimport.c
deleted file mode 100644 (file)
index b1d6591..0000000
+++ /dev/null
@@ -1,478 +0,0 @@
-/***********************************************************
-Copyright 1991-1997 by Stichting Mathematisch Centrum, Amsterdam,
-The Netherlands.
-
-                        All Rights Reserved
-
-Permission to use, copy, modify, and distribute this software and its 
-documentation for any purpose and without fee is hereby granted, 
-provided that the above copyright notice appear in all copies and that
-both that copyright notice and this permission notice appear in 
-supporting documentation, and that the names of Stichting Mathematisch
-Centrum or CWI not be used in advertising or publicity pertaining to
-distribution of the software without specific, written prior permission.
-
-STICHTING MATHEMATISCH CENTRUM DISCLAIMS ALL WARRANTIES WITH REGARD TO
-THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
-FITNESS, IN NO EVENT SHALL STICHTING MATHEMATISCH CENTRUM BE LIABLE
-FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
-WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
-ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
-OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
-
-******************************************************************/
-
-
-#include "Python.h"
-
-#include "macglue.h"
-#include "marshal.h"
-#include "import.h"
-#include "importdl.h"
-
-#include "pythonresources.h"
-
-#include <Types.h>
-#include <Files.h>
-#include <Resources.h>
-#if 0
-#include <OSUtils.h> /* for Set(Current)A5 */
-#include <StandardFile.h>
-#include <Memory.h>
-#include <Windows.h>
-#include <Traps.h>
-#include <Processes.h>
-#include <Fonts.h>
-#include <Menus.h>
-#include <TextUtils.h>
-#endif
-#include <CodeFragments.h>
-
-#ifdef USE_GUSI1
-#include "TFileSpec.h" /* for Path2FSSpec() */
-#endif
-
-typedef void (*dl_funcptr)();
-#define FUNCNAME_PATTERN "init%.200s"
-
-/*
-** findnamedresource - Common code for the various *ResourceModule functions.
-** Check whether a file contains a resource of the correct name and type, and
-** optionally return the value in it.
-*/
-static int
-findnamedresource(
-       PyStringObject *obj, 
-       char *module, 
-       char *filename, 
-       OSType restype, 
-       StringPtr dataptr)
-{
-       FSSpec fss;
-       FInfo finfo;
-       short oldrh, filerh;
-       int ok;
-       Handle h;
-
-#ifdef INTERN_STRINGS
-       /*
-       ** If we have interning find_module takes care of interning all
-       ** sys.path components. We then keep a record of all sys.path
-       ** components for which GetFInfo has failed (usually because the
-       ** component in question is a folder), and we don't try opening these
-       ** as resource files again.
-       */
-#define MAXPATHCOMPONENTS 32
-       static PyStringObject *not_a_file[MAXPATHCOMPONENTS];
-       static int max_not_a_file = 0;
-       int i;
-               
-       if (obj && obj->ob_sinterned ) {
-               for( i=0; i< max_not_a_file; i++ )
-                       if ( obj == not_a_file[i] )
-                               return 0;
-       }
-#endif /* INTERN_STRINGS */
-
-       if ( strcmp(filename, PyMac_ApplicationPath) == 0 ) {
-               /*
-               ** Special case: the application itself. Use a shortcut to
-               ** forestall opening and closing the application numerous times
-               ** (which is dead slow when running from CDROM)
-               */
-               oldrh = CurResFile();
-               UseResFile(PyMac_AppRefNum);
-               filerh = -1;
-       } else {
-#ifdef USE_GUSI1
-               if ( Path2FSSpec(filename, &fss) != noErr ||
-#else
-               if ( FSMakeFSSpec(0, 0, Pstring(filename), &fss) != noErr ||
-#endif
-                    FSpGetFInfo(&fss, &finfo) != noErr ) {
-#ifdef INTERN_STRINGS
-                       if ( obj && max_not_a_file < MAXPATHCOMPONENTS && obj->ob_sinterned )
-                               not_a_file[max_not_a_file++] = obj;
-#endif /* INTERN_STRINGS */
-                       /* doesn't exist or is folder */
-                       return 0;
-               }                       
-               oldrh = CurResFile();
-               filerh = FSpOpenResFile(&fss, fsRdPerm);
-               if ( filerh == -1 )
-                       return 0;
-               UseResFile(filerh);
-       }
-       if ( dataptr == NULL )
-               SetResLoad(0);
-       h = Get1NamedResource(restype, Pstring(module));
-       SetResLoad(1);
-       ok = (h != NULL);
-       if ( ok && dataptr != NULL ) {
-               HLock(h);
-               /* XXXX Unsafe if resource not correctly formatted! */
-#ifdef __CFM68K__
-               /* for cfm68k we take the second pstring */
-               *dataptr = *((*h)+(**h)+1);
-               memcpy(dataptr+1, (*h)+(**h)+2, (int)*dataptr);
-#else
-               /* for ppc we take the first pstring */
-               *dataptr = **h;
-               memcpy(dataptr+1, (*h)+1, (int)*dataptr);
-#endif
-               HUnlock(h);
-       }
-       if ( filerh != -1 )
-               CloseResFile(filerh);
-       UseResFile(oldrh);
-       return ok;
-}
-
-/*
-** Returns true if the argument has a resource fork, and it contains
-** a 'PYC ' resource of the correct name
-*/
-int
-PyMac_FindResourceModule(obj, module, filename)
-PyStringObject *obj;
-char *module;
-char *filename;
-{
-       int ok;
-       
-       ok = findnamedresource(obj, module, filename, 'PYC ', (StringPtr)0);
-       return ok;
-}
-
-/*
-** Returns true if the argument has a resource fork, and it contains
-** a 'PYD ' resource of the correct name
-*/
-int
-PyMac_FindCodeResourceModule(obj, module, filename)
-PyStringObject *obj;
-char *module;
-char *filename;
-{
-       int ok;
-       
-       ok = findnamedresource(obj, module, filename, 'PYD ', (StringPtr)0);
-       return ok;
-}
-
-
-/*
-** Load the specified module from a code resource
-*/
-PyObject *
-PyMac_LoadCodeResourceModule(name, pathname)
-       char *name;
-       char *pathname;
-{
-       PyObject *m, *d, *s;
-       char funcname[258];
-       char *lastdot, *shortname, *packagecontext;
-       dl_funcptr p = NULL;
-       Str255 fragmentname;
-       CFragConnectionID connID;
-       Ptr mainAddr;
-       Str255 errMessage;
-       OSErr err;
-       char buf[512];
-       Ptr symAddr;
-       CFragSymbolClass class;
-
-       if ((m = _PyImport_FindExtension(name, name)) != NULL) {
-               Py_INCREF(m);
-               return m;
-       }
-       lastdot = strrchr(name, '.');
-       if (lastdot == NULL) {
-               packagecontext = NULL;
-               shortname = name;
-       }
-       else {
-               packagecontext = name;
-               shortname = lastdot+1;
-       }
-       sprintf(funcname, FUNCNAME_PATTERN, shortname);
-       if( !findnamedresource((PyStringObject *)0, shortname, pathname, 'PYD ', fragmentname)) {
-               PyErr_SetString(PyExc_ImportError, "PYD resource not found");
-               return NULL;
-       }
-       
-       /* Load the fragment
-          (or return the connID if it is already loaded */
-       err = GetSharedLibrary(fragmentname, kCompiledCFragArch,
-                             kLoadCFrag, &connID, &mainAddr,
-                             errMessage);
-       if ( err ) {
-               sprintf(buf, "%.*s: %.200s",
-                       errMessage[0], errMessage+1,
-                       PyMac_StrError(err));
-               PyErr_SetString(PyExc_ImportError, buf);
-               return NULL;
-       }
-       /* Locate the address of the correct init function */
-       err = FindSymbol(connID, Pstring(funcname), &symAddr, &class);
-       if ( err ) {
-               sprintf(buf, "%s: %.200s",
-                       funcname, PyMac_StrError(err));
-               PyErr_SetString(PyExc_ImportError, buf);
-               return NULL;
-       }
-       p = (dl_funcptr)symAddr;
-       if (p == NULL) {
-               PyErr_Format(PyExc_ImportError,
-                  "dynamic module does not define init function (%.200s)",
-                            funcname);
-               return NULL;
-       }
-       _Py_PackageContext = packagecontext;
-       (*p)();
-       _Py_PackageContext = NULL;
-       if (PyErr_Occurred())
-               return NULL;
-       if (_PyImport_FixupExtension(name, name) == NULL)
-               return NULL;
-
-       m = PyDict_GetItemString(PyImport_GetModuleDict(), name);
-       if (m == NULL) {
-               PyErr_SetString(PyExc_SystemError,
-                               "dynamic module not initialized properly");
-               return NULL;
-       }
-#if 1
-       /* Remember the filename as the __file__ attribute */
-       d = PyModule_GetDict(m);
-       s = PyString_FromString(pathname);
-       if (s == NULL || PyDict_SetItemString(d, "__file__", s) != 0)
-               PyErr_Clear(); /* Not important enough to report */
-       Py_XDECREF(s);
-#endif
-       if (Py_VerboseFlag)
-               PySys_WriteStderr("import %s # pyd fragment %#s loaded from %s\n",
-                       name, fragmentname, pathname);
-       Py_INCREF(m);
-       return m;
-}
-
-/*
-** Load the specified module from a resource
-*/
-PyObject *
-PyMac_LoadResourceModule(module, filename)
-char *module;
-char *filename;
-{
-       FSSpec fss;
-       FInfo finfo;
-       short oldrh, filerh;
-       Handle h;
-       OSErr err;
-       PyObject *m, *co;
-       long num, size;
-       
-       if ( strcmp(filename, PyMac_ApplicationPath) == 0 ) {
-               /*
-               ** Special case: the application itself. Use a shortcut to
-               ** forestall opening and closing the application numerous times
-               ** (which is dead slow when running from CDROM)
-               */
-               oldrh = CurResFile();
-               UseResFile(PyMac_AppRefNum);
-               filerh = -1;
-       } else {
-#ifdef USE_GUSI1
-               if ( (err=Path2FSSpec(filename, &fss)) != noErr ||
-                    FSpGetFInfo(&fss, &finfo) != noErr )
-#else
-               if ( (err=FSMakeFSSpec(0, 0, Pstring(filename), &fss)) != noErr )
-#endif
-                       goto error;
-               if ( (err=FSpGetFInfo(&fss, &finfo)) != noErr )
-                       goto error;
-               oldrh = CurResFile();
-               filerh = FSpOpenResFile(&fss, fsRdPerm);
-               if ( filerh == -1 ) {
-                       err = ResError();
-                       goto error;
-               }
-               UseResFile(filerh);
-       }
-       h = Get1NamedResource('PYC ', Pstring(module));
-       if ( h == NULL ) {
-               err = ResError();
-               goto error;
-       }
-       HLock(h);
-       /*
-       ** XXXX The next few lines are intimately tied to the format of pyc
-       ** files. I'm not sure whether this code should be here or in import.c -- Jack
-       */
-       size = GetHandleSize(h);
-       if ( size < 8 ) {
-               PyErr_SetString(PyExc_ImportError, "Resource too small");
-               co = NULL;
-       } else {
-               num = (*h)[0] & 0xff;
-               num = num | (((*h)[1] & 0xff) << 8);
-               num = num | (((*h)[2] & 0xff) << 16);
-               num = num | (((*h)[3] & 0xff) << 24);
-               if ( num != PyImport_GetMagicNumber() ) {
-                       PyErr_SetString(PyExc_ImportError, "Bad MAGIC in resource");
-                       co = NULL;
-               } else {
-                       co = PyMarshal_ReadObjectFromString((*h)+8, size-8);
-                       /*
-                       ** Normally, byte 4-7 are the time stamp, but that is not used
-                       ** for 'PYC ' resources. We abuse byte 4 as a flag to indicate
-                       ** that it is a package rather than an ordinary module. 
-                       ** See also py_resource.py. (jvr)
-                       */
-                       if ((*h)[4] & 0xff) {
-                               /* it's a package */
-                               /* Set __path__ to the package name */
-                               PyObject *d, *s;
-                               int err;
-                               
-                               m = PyImport_AddModule(module);
-                               if (m == NULL) {
-                                       co = NULL;
-                                       goto packageerror;
-                               }
-                               d = PyModule_GetDict(m);
-                               s = PyString_InternFromString(module);
-                               if (s == NULL) {
-                                       co = NULL;
-                                       goto packageerror;
-                               }
-                               err = PyDict_SetItemString(d, "__path__", s);
-                               Py_DECREF(s);
-                               if (err != 0) {
-                                       co = NULL;
-                                       goto packageerror;
-                               }
-                       }
-               }
-       }
-packageerror:
-       HUnlock(h);
-       if ( filerh != -1 )
-               CloseResFile(filerh);
-       else
-               ReleaseResource(h);
-       UseResFile(oldrh);
-       if ( co ) {
-               m = PyImport_ExecCodeModuleEx(module, co, "<pyc resource>");
-               Py_DECREF(co);
-       } else {
-               m = NULL;
-       }
-       if (Py_VerboseFlag)
-               PySys_WriteStderr("import %s # pyc resource from %s\n",
-                       module, filename);
-       return m;
-error:
-       {
-               char buf[512];
-               
-               sprintf(buf, "%s: %s", filename, PyMac_StrError(err));
-               PyErr_SetString(PyExc_ImportError, buf);
-               return NULL;
-       }
-}
-
-/*
-** Look for a module in a single folder. Upon entry buf and len
-** point to the folder to search, upon exit they refer to the full
-** pathname of the module found (if any).
-*/
-struct filedescr *
-PyMac_FindModuleExtension(char *buf, size_t *lenp, char *module)
-{
-       struct filedescr *fdp;
-       unsigned char fnbuf[64];
-       int modnamelen = strlen(module);
-       FSSpec fss;
-#ifdef USE_GUSI1
-       FInfo finfo;
-#endif
-       short refnum;
-       long dirid;
-       
-       /*
-       ** Copy the module name to the buffer (already :-terminated)
-       ** We also copy the first suffix, if this matches immedeately we're
-       ** lucky and return immedeately.
-       */
-       if ( !_PyImport_Filetab[0].suffix )
-               return 0;
-               
-#if 0
-       /* Pre 1.5a4 */
-       strcpy(buf+*lenp, module);
-       strcpy(buf+*lenp+modnamelen, _PyImport_Filetab[0].suffix);
-#else
-       strcpy(buf+*lenp, _PyImport_Filetab[0].suffix);
-#endif
-#ifdef USE_GUSI1
-       if ( Path2FSSpec(buf, &fss) == noErr && 
-                       FSpGetFInfo(&fss, &finfo) == noErr)
-               return _PyImport_Filetab;
-#else
-       if ( FSMakeFSSpec(0, 0, Pstring(buf), &fss) == noErr )
-               return _PyImport_Filetab;
-#endif
-       /*
-       ** We cannot check for fnfErr (unfortunately), it can mean either that
-       ** the file doesn't exist (fine, we try others) or the path leading to it.
-       */
-       refnum = fss.vRefNum;
-       dirid = fss.parID;
-       if ( refnum == 0 || dirid == 0 )        /* Fail on nonexistent dir */
-               return 0;
-       /*
-       ** We now have the folder parameters. Setup the field for the filename
-       */
-       if ( modnamelen > 54 ) return 0;        /* Leave room for extension */
-       strcpy((char *)fnbuf+1, module);
-       
-       for( fdp = _PyImport_Filetab+1; fdp->suffix; fdp++ ) {
-               strcpy((char *)fnbuf+1+modnamelen, fdp->suffix);
-               fnbuf[0] = strlen((char *)fnbuf+1);
-               if (Py_VerboseFlag > 1)
-                       PySys_WriteStderr("# trying %s%s\n", buf, fdp->suffix);
-               if ( FSMakeFSSpec(refnum, dirid, fnbuf, &fss) == noErr ) {
-                       /* Found it. */
-#if 0
-                       strcpy(buf+*lenp+modnamelen, fdp->suffix);
-#else
-                       strcpy(buf+*lenp, fdp->suffix);
-#endif
-                       *lenp = strlen(buf);
-                       return fdp;
-               }
-       }
-       return 0;
-}
diff --git a/Mac/Python/macmain.c b/Mac/Python/macmain.c
deleted file mode 100644 (file)
index bb798f2..0000000
+++ /dev/null
@@ -1,660 +0,0 @@
-/***********************************************************
-Copyright 1991-1997 by Stichting Mathematisch Centrum, Amsterdam,
-The Netherlands.
-
-                        All Rights Reserved
-
-Permission to use, copy, modify, and distribute this software and its 
-documentation for any purpose and without fee is hereby granted, 
-provided that the above copyright notice appear in all copies and that
-both that copyright notice and this permission notice appear in 
-supporting documentation, and that the names of Stichting Mathematisch
-Centrum or CWI not be used in advertising or publicity pertaining to
-distribution of the software without specific, written prior permission.
-
-STICHTING MATHEMATISCH CENTRUM DISCLAIMS ALL WARRANTIES WITH REGARD TO
-THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
-FITNESS, IN NO EVENT SHALL STICHTING MATHEMATISCH CENTRUM BE LIABLE
-FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
-WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
-ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
-OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
-
-******************************************************************/
-
-/* Python interpreter main program */
-
-#include "Python.h"
-#include "pythonresources.h"
-#include "import.h"
-#include "marshal.h"
-#include "macglue.h"
-
-#include <Memory.h>
-#include <Resources.h>
-#include <stdio.h>
-#include <Events.h>
-#include <Windows.h>
-#include <Fonts.h>
-#include <Balloons.h>
-#ifdef USE_APPEARANCE
-#include <Gestalt.h>
-#include <Appearance.h>
-#endif /* USE_APPEARANCE */
-#ifdef __MWERKS__
-#include <SIOUX.h>
-#define USE_SIOUX
-extern int ccommand(char ***);
-#if __profile__ == 1
-#include <profiler.h>
-#endif
-#endif
-#include <unistd.h>
-#ifdef USE_MAC_SHARED_LIBRARY
-extern PyMac_AddLibResources(void);
-#endif
-//#ifdef USE_GUSI
-//#include "GUSISIOUX.h"
-//#endif
-
-#define STARTUP "PythonStartup"
-
-#define COPYRIGHT \
-    "Type \"copyright\", \"credits\" or \"license\" for more information."
-
-
-extern int Py_DebugFlag; /* For parser.c, declared in pythonrun.c */
-extern int Py_VerboseFlag; /* For import.c, declared in pythonrun.c */
-short PyMac_AppRefNum; /* RefNum of application resource fork */
-
-/* For Py_GetArgcArgv(); set by main() */
-static char **orig_argv;
-static int  orig_argc;
-
-/* A flag which remembers whether the user has acknowledged all the console
-** output (by typing something)
-*/
-#define STATE_UNKNOWN 0
-#define STATE_LASTREAD 1
-#define STATE_LASTWRITE 2
-int console_output_state = STATE_UNKNOWN;
-
-PyMac_PrefRecord PyMac_options;
-
-static void Py_Main(int, char **); /* Forward */
-void PyMac_Exit(int); /* Forward */
-
-static void init_appearance()
-{
-#ifdef USE_APPEARANCE
-       OSErr err;
-       SInt32 response;
-
-       err = Gestalt(gestaltAppearanceAttr,&response);
-       if ( err ) goto no_appearance;
-       if ( !(response&(1<<gestaltAppearanceExists)) ) goto no_appearance;
-       /* XXXX Should we check the version? Compat-mode? */
-       PyMac_AppearanceCompliant = 1;
-no_appearance:
-       return;
-#endif /* USE_APPEARANCE */
-}
-/* Initialize the Mac toolbox world */
-
-static void
-init_mac_world()
-{
-#if !TARGET_API_MAC_CARBON
-       /* These aren't needed for carbon */
-       MaxApplZone();
-       InitGraf(&qd.thePort);
-       InitFonts();
-       InitWindows();
-       TEInit();
-       InitDialogs((long)0);
-       InitMenus();
-#endif
-       InitCursor();
-       init_appearance();
-}
-
-/*
-** PyMac_InteractiveOptions - Allow user to set options if option key is pressed
-*/
-static void
-PyMac_InteractiveOptions(PyMac_PrefRecord *p, int *argcp, char ***argvp)
-{
-       KeyMap rmap;
-       unsigned char *map;
-       short item, type;
-       ControlHandle handle;
-       DialogPtr dialog;
-       Rect rect;
-       int old_argc = *argcp;
-       int i;
-
-       /*
-       ** If the preferences disallows interactive options we return,
-       ** similarly of <option> isn't pressed.
-       */
-       if (p->nointopt) return;
-       
-       GetKeys(rmap);
-       map = (unsigned char *)rmap;
-       if ( ( map[0x3a>>3] & (1<<(0x3a&7)) ) == 0 )    /* option key is 3a */
-               return;
-
-       dialog = GetNewDialog(OPT_DIALOG, NULL, (WindowPtr)-1);
-       if ( dialog == NULL ) {
-               printf("Option dialog not found - cannot set options\n");
-               return;
-       }
-       SetDialogDefaultItem(dialog, OPT_OK);
-       SetDialogCancelItem(dialog, OPT_CANCEL);
-       
-       /* Set default values */
-#define SET_OPT_ITEM(num, var) \
-               GetDialogItem(dialog, (num), &type, (Handle *)&handle, &rect); \
-               SetControlValue(handle, (short)p->var);
-
-       SET_OPT_ITEM(OPT_INSPECT, inspect);
-       SET_OPT_ITEM(OPT_VERBOSE, verbose);
-       SET_OPT_ITEM(OPT_OPTIMIZE, optimize);
-       SET_OPT_ITEM(OPT_UNBUFFERED, unbuffered);
-       SET_OPT_ITEM(OPT_DEBUGGING, debugging);
-       GetDialogItem(dialog, OPT_KEEPALWAYS, &type, (Handle *)&handle, &rect);
-       SetControlValue(handle, (short)(p->keep_console == POPT_KEEPCONSOLE_ALWAYS));
-       GetDialogItem(dialog, OPT_KEEPOUTPUT, &type, (Handle *)&handle, &rect);
-       SetControlValue(handle, (short)(p->keep_console == POPT_KEEPCONSOLE_OUTPUT));
-       GetDialogItem(dialog, OPT_KEEPERROR, &type, (Handle *)&handle, &rect);
-       SetControlValue(handle, (short)(p->keep_console == POPT_KEEPCONSOLE_ERROR));
-       GetDialogItem(dialog, OPT_KEEPNEVER, &type, (Handle *)&handle, &rect);
-       SetControlValue(handle, (short)(p->keep_console == POPT_KEEPCONSOLE_NEVER));
-/*     SET_OPT_ITEM(OPT_KEEPCONSOLE, keep_console); */
-       SET_OPT_ITEM(OPT_TABWARN, tabwarn);
-       SET_OPT_ITEM(OPT_NOSITE, nosite);
-       SET_OPT_ITEM(OPT_NONAVSERV, nonavservice);
-       /* The rest are not settable interactively */
-
-#undef SET_OPT_ITEM
-       
-       while (1) {
-               handle = NULL;
-               ModalDialog(NULL, &item);
-               if ( item == OPT_OK )
-                       break;
-               if ( item == OPT_CANCEL ) {
-                       DisposeDialog(dialog);
-                       exit(0);
-               }
-#if !TARGET_API_MAC_CARBON
-               if ( item == OPT_HELP ) {
-                       HMSetBalloons(!HMGetBalloons());
-               }
-#endif
-               if ( item == OPT_CMDLINE ) {
-                       int new_argc, newer_argc;
-                       char **new_argv, **newer_argv;
-                       
-                       new_argc = ccommand(&new_argv);
-                       newer_argc = (new_argc-1) + old_argc;
-                       newer_argv = malloc((newer_argc+1)*sizeof(char *));
-                       if( !newer_argv )
-                               Py_FatalError("Cannot malloc argv\n");
-                       for(i=0; i<old_argc; i++)
-                               newer_argv[i] = (*argvp)[i];
-                       for(i=old_argc; i<=newer_argc; i++) /* Copy the NULL too */
-                               newer_argv[i] = new_argv[i-old_argc+1];
-                       *argvp = newer_argv;
-                       *argcp = newer_argc;
-                       
-                       /* XXXX Is it not safe to use free() here, apparently */
-               }
-#define OPT_ITEM(num, var) \
-               if ( item == (num) ) { \
-                       p->var = !p->var; \
-                       GetDialogItem(dialog, (num), &type, (Handle *)&handle, &rect); \
-                       SetControlValue(handle, (short)p->var); \
-               }
-               
-               OPT_ITEM(OPT_INSPECT, inspect);
-               OPT_ITEM(OPT_VERBOSE, verbose);
-               OPT_ITEM(OPT_OPTIMIZE, optimize);
-               OPT_ITEM(OPT_UNBUFFERED, unbuffered);
-               OPT_ITEM(OPT_DEBUGGING, debugging);
-               if ( item == OPT_KEEPALWAYS ) p->keep_console = POPT_KEEPCONSOLE_ALWAYS;
-               if ( item == OPT_KEEPOUTPUT ) p->keep_console = POPT_KEEPCONSOLE_OUTPUT;
-               if ( item == OPT_KEEPERROR ) p->keep_console = POPT_KEEPCONSOLE_ERROR;
-               if ( item == OPT_KEEPNEVER ) p->keep_console = POPT_KEEPCONSOLE_NEVER;
-               GetDialogItem(dialog, OPT_KEEPALWAYS, &type, (Handle *)&handle, &rect);
-               SetControlValue(handle, (short)(p->keep_console == POPT_KEEPCONSOLE_ALWAYS));
-               GetDialogItem(dialog, OPT_KEEPOUTPUT, &type, (Handle *)&handle, &rect);
-               SetControlValue(handle, (short)(p->keep_console == POPT_KEEPCONSOLE_OUTPUT));
-               GetDialogItem(dialog, OPT_KEEPERROR, &type, (Handle *)&handle, &rect);
-               SetControlValue(handle, (short)(p->keep_console == POPT_KEEPCONSOLE_ERROR));
-               GetDialogItem(dialog, OPT_KEEPNEVER, &type, (Handle *)&handle, &rect);
-               SetControlValue(handle, (short)(p->keep_console == POPT_KEEPCONSOLE_NEVER));
-               OPT_ITEM(OPT_TABWARN, tabwarn);
-               OPT_ITEM(OPT_NOSITE, nosite);
-               OPT_ITEM(OPT_NONAVSERV, nonavservice);
-               
-#undef OPT_ITEM
-       }
-       DisposeDialog(dialog);
-}
-
-/*
-** Initialization code, shared by interpreter and applets
-*/
-static void
-init_common(int *argcp, char ***argvp, int embedded)
-{
-       /* Remember resource fork refnum, for later */
-       PyMac_AppRefNum = CurResFile();
-       
-       /* Initialize toolboxes */
-       init_mac_world();
-       
-#ifdef USE_MAC_SHARED_LIBRARY
-       /* Add the shared library to the stack of resource files */
-       (void)PyMac_init_process_location();
-       PyMac_AddLibResources();
-#endif
-
-#if defined(USE_GUSI1)
-       /* Setup GUSI */
-       GUSIDefaultSetup();
-       PyMac_SetGUSISpin();
-       PyMac_SetGUSIOptions();
-#endif
-#if defined(USE_GUSI)
-       atexit(PyMac_StopGUSISpin);
-#endif 
-
-#ifdef USE_SIOUX
-       /* Set various SIOUX flags. Some are changed later based on options */
-/*     SIOUXSettings.standalone = 0;   /* XXXX Attempting to keep sioux from eating events */
-       SIOUXSettings.asktosaveonclose = 0;
-       SIOUXSettings.showstatusline = 0;
-       SIOUXSettings.tabspaces = 4;
-#endif
-
-       /* Get options from preference file (or from applet resource fork) */
-       PyMac_options.keep_console = POPT_KEEPCONSOLE_OUTPUT;           /* default-default */
-       PyMac_PreferenceOptions(&PyMac_options);
-       
-       if ( embedded ) {
-               static char *emb_argv[] = {"embedded-python", 0};
-               
-               *argcp = 1;
-               *argvp = emb_argv;
-       } else {
-               /* Create argc/argv. Do it before we go into the options event loop. */
-               *argcp = PyMac_GetArgv(argvp, PyMac_options.noargs);
-#ifndef NO_ARGV0_CHDIR
-               if (*argcp >= 1 && (*argvp)[0] && (*argvp)[0][0]) {
-                       /* Workaround for MacOS X, which currently (DP4) doesn't set
-                       ** the working folder correctly
-                       */
-                       char app_wd[256], *p;
-                       
-                       strncpy(app_wd, (*argvp)[0], 256);
-                       p = strrchr(app_wd, ':');
-                       if ( p ) *p = 0;
-                       chdir(app_wd);
-               }
-#endif
-               /* Do interactive option setting, if allowed and <option> depressed */
-               PyMac_InteractiveOptions(&PyMac_options, argcp, argvp);
-       }
-       
-       /* Copy selected options to where the machine-independent stuff wants it */
-       Py_VerboseFlag = PyMac_options.verbose;
-/*     Py_SuppressPrintingFlag = PyMac_options.suppress_print; */
-       Py_OptimizeFlag = PyMac_options.optimize;
-       Py_DebugFlag = PyMac_options.debugging;
-       Py_NoSiteFlag = PyMac_options.nosite;
-       Py_TabcheckFlag = PyMac_options.tabwarn;
-       if ( PyMac_options.noargs ) {
-               /* don't process events at all without the scripts permission */
-               PyMacSchedParams scp;
-               
-               PyMac_GetSchedParams(&scp);
-               scp.process_events = 0;
-               /* Should we disable command-dot as well? */
-               PyMac_SetSchedParams(&scp);
-       }
-       /* XXXX dispatch oldexc and nosite */
-
-       /* Set buffering */
-       if (PyMac_options.unbuffered) {
-#ifndef MPW
-               setbuf(stdout, (char *)NULL);
-               setbuf(stderr, (char *)NULL);
-#else
-               /* On MPW (3.2) unbuffered seems to hang */
-               setvbuf(stdout, (char *)NULL, _IOLBF, BUFSIZ);
-               setvbuf(stderr, (char *)NULL, _IOLBF, BUFSIZ);
-#endif
-       }
-#if __profile__ == 1
-       /* collectSummary or collectDetailed, timebase, #routines, max stack depth */
-       ProfilerInit(collectSummary, bestTimeBase, 8000, 250);
-#endif
-
-       /* Tell the rest of python about our argc/argv */
-       orig_argc = *argcp;     /* For Py_GetArgcArgv() */
-       orig_argv = *argvp;
-       Py_SetProgramName((*argvp)[0]);
-}
-
-/*
-** Inspection mode after script/applet termination
-*/
-static int
-run_inspect()
-{
-       int sts = 0;
-       
-       if (PyMac_options.inspect && isatty((int)fileno(stdin)))
-               sts = PyRun_AnyFile(stdin, "<stdin>") != 0;
-       return sts;
-}
-
-/*
-** Import the macfsn module, which will override the Standard File
-** calls in the macfs builtin module by Navigation Services versions,
-** if available on this machine.
-*/
-static void
-PyMac_InstallNavServicesForSF()
-{
-       if ( !PyMac_options.nonavservice ) {
-               PyObject *m = PyImport_ImportModule("macfsn");
-               
-               if ( m == NULL ) {
-                       PySys_WriteStderr("'import macfsn' failed; ");
-                       if (Py_VerboseFlag) {
-                               PySys_WriteStderr("traceback:\n");
-                               PyErr_Print();
-                       }
-                       else {
-                               PySys_WriteStderr("use -v for traceback\n");
-                       }
-               }
-       }
-}
-
-#ifdef USE_MAC_APPLET_SUPPORT
-/* Applet support */
-
-/* Run a compiled Python Python script from 'PYC ' resource __main__ */
-static int
-run_main_resource()
-{
-       Handle h;
-       long size;
-       PyObject *code;
-       PyObject *result;
-       
-       h = GetNamedResource('PYC ', "\p__main__");
-       if (h == NULL) {
-               Alert(NOPYC_ALERT, NULL);
-               return 1;
-       }
-       size = GetResourceSizeOnDisk(h);
-       HLock(h);
-       code = PyMarshal_ReadObjectFromString(*h + 8, (int)(size - 8));
-       HUnlock(h);
-       ReleaseResource(h);
-       if (code == NULL) {
-               PyErr_Print();
-               return 1;
-       }
-       result = PyImport_ExecCodeModule("__main__", code);
-       Py_DECREF(code);
-       if (result == NULL) {
-               PyErr_Print();
-               return 1;
-       }
-       Py_DECREF(result);
-       return 0;
-}
-
-/* Initialization sequence for applets */
-void
-PyMac_InitApplet()
-{
-       int argc;
-       char **argv;
-       int err;
-
-       init_common(&argc, &argv, 0);
-       
-       Py_Initialize();
-       PyMac_InstallNavServicesForSF();
-       PySys_SetArgv(argc, argv);
-       
-       err = run_main_resource();
-       
-       err = (run_inspect() || err);
-       
-       fflush(stderr);
-       fflush(stdout);
-       PyMac_Exit(err);
-       /* XXX Should we bother to Py_Exit(sts)? */
-}
-
-/*
-** Hook for embedding python.
-*/
-void
-PyMac_Initialize()
-{
-       int argc;
-       char **argv;
-       
-       init_common(&argc, &argv, 1);
-       Py_Initialize();
-       PyMac_InstallNavServicesForSF();
-       PySys_SetArgv(argc, argv);
-}
-
-#endif /* USE_MAC_APPLET_SUPPORT */
-
-/* For normal application */
-void
-PyMac_InitApplication()
-{
-       int argc;
-       char **argv;
-       
-       init_common(&argc, &argv, 0);
-       
-       if ( argc > 1 ) {
-               /* We're running a script. Attempt to change current directory */
-               char curwd[256], *endp;
-               
-               strcpy(curwd, argv[1]);
-               endp = strrchr(curwd, ':');
-               if ( endp && endp > curwd ) {
-                       *endp = '\0';
-
-                       chdir(curwd);
-#ifdef USE_GUSI1
-                       /* Change MacOS's idea of wd too */
-                       PyMac_FixGUSIcd();
-#endif
-               }
-       }
-       Py_Main(argc, argv);
-}
-
-/* Main program */
-
-static void
-Py_Main(argc, argv)
-       int argc;
-       char **argv;
-{
-       int sts;
-       char *command = NULL;
-       char *filename = NULL;
-       FILE *fp = stdin;
-
-       filename = argv[1];
-
-       if (Py_VerboseFlag ||
-           command == NULL && filename == NULL && isatty((int)fileno(fp)))
-               fprintf(stderr, "Python %s on %s\n%s\n",
-                       Py_GetVersion(), Py_GetPlatform(), COPYRIGHT);
-       
-       if (filename != NULL) {
-               if ((fp = fopen(filename, "r")) == NULL) {
-                       fprintf(stderr, "%s: can't open file '%s'\n",
-                               argv[0], filename);
-                       PyMac_Exit(2);
-               }
-       }
-       
-       /* We initialize the menubar here, hoping SIOUX is initialized by now */
-       PyMac_InitMenuBar();
-       
-       Py_Initialize();
-       
-       PyMac_InstallNavServicesForSF();
-
-       PySys_SetArgv(argc-1, argv+1);
-
-       if (filename == NULL && isatty((int)fileno(fp))) {
-               FILE *fp = fopen(STARTUP, "r");
-               if (fp != NULL) {
-                       (void) PyRun_SimpleFile(fp, STARTUP);
-                       PyErr_Clear();
-                       fclose(fp);
-               }
-       }
-       sts = PyRun_AnyFile(
-                       fp, filename == NULL ? "<stdin>" : filename) != 0;
-       if (filename != NULL)
-               fclose(fp);
-               
-       if ( filename != NULL || command != NULL )
-               sts = (run_inspect() || sts);
-
-       Py_Exit(sts);
-       /*NOTREACHED*/
-}
-
-/*
-** Reset the "unseen output" flag
-*/
-void
-PyMac_OutputSeen()
-{
-       if ( console_output_state == STATE_UNKNOWN )
-               PyMac_InitMenuBar();
-       console_output_state = STATE_LASTREAD;
-}
-
-/*
-** Set the "unseen output" flag
-*/
-void
-PyMac_OutputNotSeen()
-{
-       if ( console_output_state == STATE_UNKNOWN )
-               PyMac_InitMenuBar();
-       console_output_state = STATE_LASTWRITE;
-}
-       
-
-/*
-** Terminate application
-*/
-void
-PyMac_Exit(status)
-       int status;
-{
-       int keep = 0;
-
-#if __profile__ == 1
-       ProfilerDump("\pPython Profiler Results");
-       ProfilerTerm();
-#endif 
-               
-#ifdef USE_SIOUX
-       switch (PyMac_options.keep_console) {
-       case POPT_KEEPCONSOLE_NEVER:
-               keep = 0;
-               break;
-       case POPT_KEEPCONSOLE_OUTPUT:
-               if (console_output_state == STATE_LASTWRITE ||
-                               console_output_state == STATE_UNKNOWN )
-                       keep = 1;
-               else
-                       keep = 0;
-               break;
-       case POPT_KEEPCONSOLE_ERROR:
-               keep = (status != 0);
-               break;
-       default:
-               keep = 1;
-       }
-       if (keep) {
-               SIOUXSettings.standalone = 1;
-               SIOUXSettings.autocloseonquit = 0;
-               SIOUXSetTitle("\p\307terminated\310");
-               PyMac_RestoreMenuBar();
-#ifdef USE_MSL
-               /*
-               ** Temporary workaround: autocloseonquit clearing does not
-               ** currently work for the MSL/GUSI combo.
-               */
-               while(getchar() > 0);
-#endif
-       }
-       else
-               SIOUXSettings.autocloseonquit = 1;
-#endif /* USE_SIOUX */
-
-       exit(status);
-}
-
-/* Return the program name -- some code out there needs this. */
-char *
-Py_GetProgramFullPath()
-{
-       return orig_argv[0];
-}
-
-
-/* Make the *original* argc/argv available to other modules.
-   This is rare, but it is needed by the secureware extension. */
-
-void
-Py_GetArgcArgv(int *argc,char ***argv)
-{
-       *argc = orig_argc;
-       *argv = orig_argv;
-}
-
-/* More cruft that shouldn't really be here, used in sysmodule.c */
-
-char *
-Py_GetPrefix()
-{
-       return PyMac_GetPythonDir();
-}
-
-char *
-Py_GetExecPrefix()
-{
-       return PyMac_GetPythonDir();
-}
-
-int
-PyMac_GetDelayConsoleFlag()
-{
-       return (int)PyMac_options.delayconsole;
-}
\ No newline at end of file
diff --git a/Mac/Python/pyGUSISIOUX.cp b/Mac/Python/pyGUSISIOUX.cp
deleted file mode 100644 (file)
index 795e10e..0000000
+++ /dev/null
@@ -1,209 +0,0 @@
-/*
-** Modified version of GUSISIOUX.cp especially for Python.
-** Changes (by Jack):
-** - Optionally delay the console window until something is written to it.
-** - Tell the upper layers whether the last command was a read or a write.
-** - Tell SIOUX not to use WaitNextEvent (both Python and SIOUX trying to be
-**   nice to background apps means we're yielding almost 100% of the time).
-** - Make sure signals are processed when returning from read/write.
-*/
-#define GUSI_SOURCE
-#include "GUSIInternal.h"
-#include "GUSISIOUX.h"
-#include "GUSIDevice.h"
-#include "GUSIDescriptor.h"
-#include "GUSIBasics.h"
-#include "GUSIDiag.h"
-//#ifndef WITHOUT_JACK_MODS
-//#include "GUSIConfig.h"
-//#endif
-
-#include <LowMem.h>
-
-#include <fcntl.h>
-#include <sys/stat.h>
-#include <sys/ioctl.h>
-#include <errno.h>
-#include <console.h>
-
-#include "Python.h"
-#include "macglue.h"
-extern Boolean SIOUXUseWaitNextEvent;
-
-class GUSISIOUXSocket : public GUSISocket {
-public:
-       ~GUSISIOUXSocket();
-       
-       
-ssize_t        read(const GUSIScatterer & buffer);
-ssize_t write(const GUSIGatherer & buffer);
-virtual int    ioctl(unsigned int request, va_list arg);
-virtual int    fstat(struct stat * buf);
-virtual int    isatty();
-bool select(bool * canRead, bool * canWrite, bool *);
-
-       static GUSISIOUXSocket *        Instance();
-private:
-       static GUSISIOUXSocket *        sInstance;
-       
-       GUSISIOUXSocket();
-       bool initialized;
-       void Initialize();
-       bool fDelayConsole;
-};
-class GUSISIOUXDevice : public GUSIDevice {
-public:
-       static GUSISIOUXDevice *        Instance();
-
-       
-virtual bool Want(GUSIFileToken & file);
-virtual GUSISocket * open(GUSIFileToken &, int flags);
-private:
-       GUSISIOUXDevice()                                                               {}
-       
-       static GUSISIOUXDevice *        sInstance;
-};
-GUSISIOUXSocket * GUSISIOUXSocket::sInstance;
-
-GUSISIOUXSocket * GUSISIOUXSocket::Instance()
-{
-       if (!sInstance)
-               if (sInstance = new GUSISIOUXSocket)
-                       sInstance->AddReference();
-
-       return sInstance;
-}
-// This declaration lies about the return type
-extern "C" void SIOUXHandleOneEvent(EventRecord *userevent);
-
-GUSISIOUXSocket::GUSISIOUXSocket() 
-{
-       if (PyMac_GetDelayConsoleFlag())
-               fDelayConsole = true;
-       else
-               fDelayConsole = false;
-       if ( fDelayConsole )
-               initialized = 0;
-       else
-               Initialize();
-       /* Tell the upper layers there's no unseen output */
-       PyMac_OutputSeen();
-}
-
-void
-GUSISIOUXSocket::Initialize()
-{
-       initialized = 1;
-       InstallConsole(0);
-       GUSISetHook(GUSI_EventHook+nullEvent,   (GUSIHook)SIOUXHandleOneEvent);
-       GUSISetHook(GUSI_EventHook+mouseDown,   (GUSIHook)SIOUXHandleOneEvent);
-       GUSISetHook(GUSI_EventHook+mouseUp,     (GUSIHook)SIOUXHandleOneEvent);
-       GUSISetHook(GUSI_EventHook+updateEvt,   (GUSIHook)SIOUXHandleOneEvent);
-       GUSISetHook(GUSI_EventHook+diskEvt,     (GUSIHook)SIOUXHandleOneEvent);
-       GUSISetHook(GUSI_EventHook+activateEvt, (GUSIHook)SIOUXHandleOneEvent);
-       GUSISetHook(GUSI_EventHook+osEvt,               (GUSIHook)SIOUXHandleOneEvent);
-}
-GUSISIOUXSocket::~GUSISIOUXSocket()
-{
-       if ( !initialized ) return;
-       RemoveConsole();
-}
-ssize_t GUSISIOUXSocket::read(const GUSIScatterer & buffer)
-{
-       if ( !initialized ) Initialize();
-       GUSIStdioFlush();
-       PyMac_OutputSeen();
-       return buffer.SetLength(
-               ReadCharsFromConsole((char *) buffer.Buffer(), (int)buffer.Length()));
-       GUSIContext::Yield(kGUSIPoll);
-}
-ssize_t GUSISIOUXSocket::write(const GUSIGatherer & buffer)
-{
-       ssize_t rv;
-                       
-       if ( !initialized ) Initialize();
-       PyMac_OutputNotSeen();
-       SIOUXUseWaitNextEvent = false;
-       rv = WriteCharsToConsole((char *) buffer.Buffer(), (int)buffer.Length());
-       GUSIContext::Yield(kGUSIPoll);
-       return rv;
-}
-int GUSISIOUXSocket::ioctl(unsigned int request, va_list)
-{
-       switch (request)        {
-       case FIOINTERACTIVE:
-               return 0;
-       default:
-               return GUSISetPosixError(EOPNOTSUPP);
-       }
-}
-int    GUSISIOUXSocket::fstat(struct stat * buf)
-{
-       GUSISocket::fstat(buf);
-       buf->st_mode =  S_IFCHR | 0666;
-       
-       return 0;
-}
-int GUSISIOUXSocket::isatty()
-{ 
-       return 1;
-}
-static bool input_pending()
-{
-#if !TARGET_API_MAC_CARBON
-       // Jack thinks that completely removing this code is a bit
-       // too much...
-       QHdrPtr eventQueue = LMGetEventQueue();
-       EvQElPtr element = (EvQElPtr)eventQueue->qHead;
-       
-       // now, count the number of pending keyDown events.
-       while (element != nil) {
-               if (element->evtQWhat == keyDown || element->evtQWhat == autoKey)
-                       return true;
-               element = (EvQElPtr)element->qLink;
-       }
-#endif
-       return false;
-}
-
-bool GUSISIOUXSocket::select(bool * canRead, bool * canWrite, bool *)
-{
-       if ( !initialized ) Initialize();
-       bool cond = false;
-       if (canRead)
-               if (*canRead = input_pending())
-                       cond = true;
-       if (canWrite)
-               cond = *canWrite = true;
-               
-       return cond;
-}
-GUSISIOUXDevice * GUSISIOUXDevice::sInstance;
-GUSISIOUXDevice * GUSISIOUXDevice::Instance()
-{
-       if (!sInstance)
-               sInstance = new GUSISIOUXDevice();
-       return sInstance;
-}
-bool GUSISIOUXDevice::Want(GUSIFileToken & file)
-{
-       switch (file.WhichRequest()) {
-       case GUSIFileToken::kWillOpen:
-               return file.IsDevice() && (file.StrStdStream(file.Path()) > -1);
-       default:
-               return false;
-       }
-}
-GUSISocket * GUSISIOUXDevice::open(GUSIFileToken &, int)
-{
-       return GUSISIOUXSocket::Instance();
-}
-void GUSISetupConsoleDescriptors()
-{
-       GUSIDescriptorTable * table = GUSIDescriptorTable::Instance();
-       GUSISIOUXSocket *     SIOUX = GUSISIOUXSocket::Instance();
-       
-       table->InstallSocket(SIOUX);
-       table->InstallSocket(SIOUX);
-       table->InstallSocket(SIOUX);
-}
diff --git a/Mac/ReadMe b/Mac/ReadMe
deleted file mode 100644 (file)
index aa38579..0000000
+++ /dev/null
@@ -1,208 +0,0 @@
-How to install Python 2.1b2 on your Macintosh
----------------------------------------------
-
-This is a beta MacPython that can run on classic MacOS (from 8.1
-onwards) and natively on MacOSX. The installer tries to work out whether you can
-use the Carbon version or not. This is also the first MacPython distribution
-to be packaged as an active installer, which only downloads the parts you actually
-need. Let me hear about problems in these areas.
-
-You should definitely read the Relnotes file too.
-
-A special note about the active installer: do not background it, it will hang
-your machine. This is a general problem with Vise active installers, MindVision
-are working on it.
-
-------
-
-If this is your first encounter with Python: you definitely need the
-common user documentation (common to all platforms). You can find this
-(in various forms) on www.pythonlabs.com, www.python.org and
-ftp.python.org. Through there, or via
-http://www.cwi.nl/~jack/macpython.html you can also find the most recent
-MacPython distribution.
-
-Mac-specific documentation is included in this distribution in folder
-Mac:Demo. The documentation is sparse, but it will have to serve for
-now. The documentation is in HTML format, start with index.html.
-
-Caveats
--------
-Aside from the general new Python 2.1 features compared to 2.0 the main
-feature of this release is Carbon support.
-
-This installer installs MacPython for classic PPC MacOS, MacPython for Carbon
-(OS X, OS 9 or OS8 with CarbonLib installed) or both, depending on your
-configuration. By selecting custom install you can bypass these tests and
-install what you want.
-
-If you want 68k support you will have to stay with MacPython 1.5.2.
-
-What to install
----------------
-
-The optional parts in this distribution are
-- TK+PIL: Tkinter and support modules, plus Imaging, the Python image manipulation 
-  package (allows you to read, write and display images and do lots of operations on them).
-  For Carbon MacPython you only get PIL: there is no Tcl/Tk for Carbon yet.
-  This is the reason Classic MacPython is also installed on MacOSX: it allows you
-  to run Tkinter applications, albeit in the MacOS9 box.
-- img: another imaging package. Has more file format support and is faster
-  than imaging, but has only limited operations on images. There is a bridge
-  between the packages.
-- Numeric: the LLNL Numeric Python extension. All sorts of nifty operations
-  on matrices and such. This is the most recent version from the sourceforge archive.
-  Numeric has moved from Extensions to :Lib:site-python, by the way, see the release
-  notes.
-- Developers kit: all header files and some tools and sample projects to get you started on
-  writing Python extensions if you have CodeWarrior.
-All these except the DevKit are installed with Easy Install.
-
-After the installer finishes it automatically launches the appropriate
-ConfigurePython applet, to finish configuration of your Python. If you run MacOS9 or later
-(or 8 with CarbonLib installed) you can switch back and forth between the classic and
-Carbon versions of Python by running either ConfigurePythonClassic or ConfigurePythonCarbon.
-
-Moving your Python installation after installing is generally not a good idea.
-If you have to do this anyway you should remove your preference file, run
-ConfigurePython and remove all .pyc files. (there's a script zappyc.py that does
-the latter).
-
-If you don't have enough memory: the sizes choosen are somewhat
-arbitrary, and they are as high as they are so that test.autotest runs with fewer
-problems. An average Python program can make do with much less memory.
-Try lowering the application sizes in the finder "get info"
-window, and seeing whether the resulting python is still usable.
-
-After installing
-----------------
-
-It is probably a good idea to run the automatic tests. Start
-Python and "import test.autotest". 
-
-Two tests will fail on MacOS9, both with MemoryErrors:
-test_longexp and test_zlib (on MacOSX nothing should fail).
-
-If you increase the PythonInterpreter memory
-partition size they will pass (but for longexp you have to increase it by an
-incredible amount). It will, however, print some messages
-about optional features not supported. You should not worry about these,
-they are modules that are supported by Python on other platforms. Also,
-if you didn't run compileall before autotesting you may run out of
-memory the first time you run the tests. test_socket may also fail if
-you have no internet connection. Please also read the Relnotes file for
-other minor problems with this distribution.
-
-Using Python is most easily done from the IDE, which has a builtin editor,
-debugger and other goodies. The alternative is to use PythonInterpreter,
-which is the lowlevel interpreter with a console-window only (similar to Unix
-Python).
-
-If your program uses Tkinter you MUST run it under PythonInterpreter, Tkinter
-and IDE are incompatible and your program will fail in strange ways.
-
-Uninstalling
-------------
-
-Two items are installed in the system folder: the interpreter shared
-libraries PythonCore and PythonCoreCarbon lives in the Extensions folder and the
-"Python 2.1b1 Preferences" file in the Python subfolder in the
-Preferences folder. All the rest of Python lives in the folder you
-installed in.
-
-Things to see
--------------
-
-Start off at Mac:Demo:index.html. Read at least the first few sections.
-
-There are also some interesting files in the "Relnotes" folder that may
-contain useful information. There is also a first stab at documentation
-(plus examples) in the Mac:Demo folder. The toplevel Demo folder has
-machine-independent demos. 
-The Mac:Lib:test folder also has some programs that show simple
-capabilities of various modules.
-
-The ":Mac:scripts" folder has some sample scripts. Some are useful, some are
-just interesting to look at to see how various things work. The MkDistr,
-mkapplet and fullbuild scripts (plus the ones mentioned above) may help
-you to understand how to use AppleEvents and various other toolboxes
-from python.
-
-Other mac-specific goodies can be found in :Mac:Tools, of which the IDE sources
-and a CGI framework deserve special mention.
-
-The 'img' group of modules, which handles I/O of many different image
-formats is included, but without documentation.  You can find docs at
-ftp://ftp.cwi.nl/pub/jack/python/img (or somewhere around there).
-
-Finally there is a Mac:Contrib folder which contains some contributed
-software.
-
-Upgrading from older Python releases
-------------------------------------
-
-Python releases are independent of each other, with
-separate Preferences files, shared library names, etc. The good news is
-that this means you can keep your older version around if you are unsure
-whether to upgrade. The bad news is that your old preference settings
-are lost and you have to set them again.
-
-After you are satisfied that 2.1 works as expected you can trash
-anything in the system folder that has "python" in the name and not
-"2.1".
-
-As of 2.1 the ConfigurePython applets will try to detect incompatible preferences
-files and offer to remove them. This means that re-running ConfigurePython after
-a second install of the same MacPython version (or after moving the Python folder)
-should fix things up correctly.
-
-The installer
--------------
-
-The installer for this product was created using Installer VISE
-from MindVision Software. For more information on Installer VISE,
-contact:
-MindVision Software
-7201 North 7th Street
-Lincoln, NE 68521-8913
-Voice: 402-477-3269
-Fax: 402-477-1395
-Internet: mindvision@mindvision.com
-http://www.mindvision.com
-
-Just van Rossum <just@letterror.nl> created the initial version of the
-installer (with Installer Vise Lite), and Jack worked from there.
-
-Thanks!
--------
-
-Thanks go to the whole Python community with Guido in the lead, of
-course. Mac-specific thanks go to the pythonmac-sig, Just van Rossum,
-Corran Webster, Tony Ingraldi, Erik van Blokland, Bill Bedford, Chris
-Stern, Gordon Worley, Oliver Steele, M. Papillon, Steven Majewski, David
-Goodger, Chris Barker, Luc Lefebvre, Tattoo Mabonzo K., Russell Finn,
-Tom Bridgman Russel Owen and all the other people who provided feedback,
-code or both!
-
-MacPython includes waste, a TextEdit replacement which is (c) 1998 Marco Piovanelli.
-
-A special mention is deserved by Matthias Neeracher, who has written the brilliant
-unix-compatible GUSI I/O library, without which MacPython would not have sockets
-or select, and to Alexandre Parenteau, who has ported this library to Carbon.
-
-Feedback
---------
-
-Send bug reports, suggestions, contributions and fanmail to
-<jack@cwi.nl>. However, a better way to discuss MacPython is to join the
-<pythonmac-sig@python.org> mailing list, which is explicitly meant for
-this purpose.
-
-
-Jack Jansen
-Oratrix Development BV
-Valeriusplein 30
-Amsterdam
-the Netherlands
-
-<jack@cwi.nl>, http://www.cwi.nl/~jack
diff --git a/Mac/Relnotes b/Mac/Relnotes
deleted file mode 100644 (file)
index 2200fa5..0000000
+++ /dev/null
@@ -1,104 +0,0 @@
-Changes in 2.1b2 since 2.0
---------------------------
-
-These release notes refer to Mac-specific changes only. See NEWS (in the Misc folder)
-for machine-independent changes. Changes since 2.1b1 are
-marked with [*] and at the bottom of the list.
-
-- This release is Carbon-based, so it runs natively on MacOS 8.6 or
-  later and MacOSX. (Note that on MacOSX MacPython will run as a normal Mac application,
-  if you want to run Python from the BSD commandline get a unix-Python distribution
-  from www.python.org).
-- Alternatively there is a classic PPC interpreter as well. There are two reasons you
-  might want to use this: (a) you have a pre-MacOS9 system and don't want to install
-  CarbonLib, or (b) you need Tkinter, for which no Carbon version is available yet.
-- Distutils is included and seems to work.
-- There's a new module (package, actually) mkcwproject which builds CodeWarrior
-  projects from simple templates. See Distutils or :Mac:scripts:genpluginprojects.py
-  for examples of use.
-- The Numerical extension has moved to :Lib:site-python from :Extensions. As Numerical
-  is now distutils-based you can easily install newer versions when they become
-  available.
-- The Help and ctb modules are not available under Carbon because that functionality is
-  not in Carbon.
-- Windows and Dialogs can now be different beasts, so you may have to call
-  dlg.GetDialogWindow() where you used to be able to call window methods straight
-  on the dialog. This also has consequences for code using FrameWork.DialogWindow.
-  THIS IS AN INCOMPATIBLE CHANGE.
-- ctl.GetControlDataHandle() has been renamed to GetControlData_Handle(), and similarly
-  for the other variants of GetControlData and SetControlData. This was needed
-  because Carbon defines a completely different routine with the name GetControlDataHandle.
-  THIS IS AN INCOMPATIBLE CHANGE.
-- Method mac.xstat() has disappeared. THIS IS AN INCOMPATIBLE CHANGE.
-- Menu.SetPopupData() and GetPopupData() are gone. Use SetPopupMenuHandle() and
-  SetPopupMenuID() (and the getters) in stead. THIS IS AN INCOMPATIBLE CHANGE.
-- Various methods have disappeared when running under Carbon. The script
-  :Mac:scripts:missingcarbonmethods.py can check your sources, but you need unix to run
-  it. Or use it as documentation and search by hand. THIS IS AN INCOMPATIBLE CHANGE.
-- The good news is that "direct access to toolbox structs" still works from Python,
-  so Python programmers have a lot less to fix than C programmers.
-  That's because the lowlevel code simply uses the accessors internally. The accessors
-  are available both in Carbon and Classic MacPython.
-- Scrap under Carbon is, you guessed it, the Carbon Scrap Manager. Some workarounds are
-  provided, though. THIS IS AN INCOMPATIBLE CHANGE.
-- The Internet Config routines that are missing from Carbon have been removed. This
-  is no problem if you use the "ic" module, but may be if you use "icglue" directly.
-  THIS IS AN INCOMPATIBLE CHANGE.
-- Various old toolbox names (CountMItems, EnableItem, etc) have disappeared. Use the
-  new forms (CountMenuItems, EnableMenuItem, etc). THIS IS AN INCOMPATIBLE CHANGE.
-- Waste now uses Waste 2.0.
-- The default memory size for the interpreter has been upped again.
-- The MacOS error messages have been updated to reflect the current state of
-  things. This was long overdue.
-- The crash in BuildApplication has been fixed.
-- struct.pack related problems (in Audio_Mac, for example) have been fixed.
-- (src/dev/cvs only): The project files now use the .mcp extension in stead of .prj.
-  Projects for almost all plugins and the img modules are automatically generated
-  with :Mac:scripts:genpluginprojects.py (also called by fullbuild). The .mcp files
-  are not in the repository, if you don't want to use genpluginprojects you can import
-  the .mcp.xml files in CodeWarrior.
-- ConfigurePython has been replace by two applets: ConfigurePythonClassic and
-  ConfigurePythonCarbon. These will select either execution model for machines
-  supporting both, and it will also build all the standard applets.
-- PythonInterpreterCarbon and PythonInterpreterClassic are now files of type "Atmp", not
-  "APPL", so there should not be any confusion as to what the real application is
-  (PythonInterpreter).
-- A BBEdit language module by Chris Stern is included in the :Mac:Contrib folder.
-- The ConfigurePython applets will now detect if the preference file refers to a different
-  folder than where they live. They offer to remove the preference file in this case.
-- Import case-check was broken in 2.1b1, this is fixed. [*]
-- A side-effect of the previous fix is that getpass works again. [*]
-- BuildApplication was broken under Carbon. Fixed. [*]
-
-
-What is not in this distribution
---------------------------------
-
-- The garbage collection mods have not been enabled, mainly due to lack of test-time.
-- Stackless Python/microthreads hasn't been ported to 2.1 yet. If/when it becomes available
-  Just will undoubtedly announce it on pythonmac-sig and the MacPython homepage.
-
-Known problems
---------------
-
-This list is far from complete, more problems may be listed on the MacPython homepage,
-http://www.cwi.nl/~jack/macpython.html.
-
-- Tkinter does not work under Carbon.
-- The IDE and Tkinter do not work together. Run tkinter programs under PythonInterpreter.
-- After running a Tkinter program your menubar may end up dead, with command-alt-escape
-  the only way to terminate Python.
-- Tkinter file events do not work, unless you have opened the file through Tcl (but then
-  you cannot access it from Python).
-- Aliases do not work in sys.path entries.
-- The menu bar isn't always correctly restored before MacPython turns to <<terminated>>.
-- Under Carbon only you may occasionally see a spurious KeyboardInterrupt. I have absolutely
-  no clue as to what is causing this.
-- PythonInterpreter used interactively will eat a lot of processor cycles. You should use
-  PythonIDE for interactive work and PythonInterpreter for scripts only.
-- Under MacOSX Public Beta ConfigurePython cannot put PythonCore in the global CFMSupport
-  folder. Therefore applets have to live in the Python folder, otherwise they cannot find
-  PythonCore. There is a workaround if you want to have an applet in a different folder:
-  put an alias PythonCoreCarbon (pointing to the PythonCoreCarbon in the Python folder)
-  in the same folder as your applet.
-  This problem should in all probability not occur in the release version of MacOSX.
diff --git a/Mac/Resources/dialogs.rsrc b/Mac/Resources/dialogs.rsrc
deleted file mode 100644 (file)
index ffe792c..0000000
+++ /dev/null
@@ -1 +0,0 @@
-(This file must be converted with BinHex 4.0)\r:!!"bFh*M8P0&4!#3#%@6K@%!N!3"!!!!2J)!!$d#!!!(N6B8)&3JD!!8)&"p%E"\rS%3!k!@FQ%Lm-6VS#$!`k!&Tj$'4TB@a[Ch-ZFR0bBbjbEh*VUL"@D@9hCA*%)%e\r&FQ`!!(*cFQ058d9%!*!BXQ0b'J#3"M'era(!U'N"(8!4rr-6F!!3,[rc[G)4CK"\r40Vj9D`%"3N5pSEj9D`%"-&%b!@FH4"8-!!!FC4*`!"!Z3a8-!!!IBJC`!@!!!3%\r#,&T8,5j%[3%!'c`"CM!R96iD5S!J8`)S!,m!,L)!l3N#!3"!JbME0"1Tebm-6VS\r"#8TRD`%!TPG$1J!!!(3!!3#3"8X!9`"I!*%%!Np,!*!&#J!5!%%!jSK8@@pe)'0\rKEQj[G#"PH'9MGA4P)(4SDA-JCQPXC5`JDA3JDA-JGA0PC#"KFb"K)(4PEA"XBA4\rP)(GSC@iJBh*PBA4TEQFJ8(PdD'pZ)'&`F'aPG(-Z!!!!$!"b!)!!f!&X!19993!\r!!"8!,!"'!4%"UJ!"!*!*jJ#3"-S!#J#3"C3"$3#Q!9d%"%p`C@i!N!@[!3d!`3&\rG"!C$B@jMC@`!N!3%P`!q"1F!8!3!N!BM!1S!0`&GJ!#3"N)"$3"8!9d%"89UC@0\rd!*!'A!%0!'i"A33(4'9cDh4[F!#3"N%!$J$#!1S!N!FM!#m!1!$*J!#3"Rd""3"\rq!9f!!*!'#!!2!"J"@iJ!N!E1!!m!i!$T""96C@aPBh3JBh9bFQ9ZG#"QEfaNCA)\r!N!5Q!!N!N!@8!3d!TJ&G"!42F'9Z!*!&V`%0!-%"A33'3f&ZBf9X!*!%"*F!2J6\rR!&!%!*!')`$U!$F"AB!!N!C#!3d!9!&G"!9&DQ9MG!#3"P`"$3"Z!9d%"d4PFfY\rdEh!!N!C"!!i!`J$U!*!()`![!$J!bB!!N!Cp!38!IJ&GJ!#3"JJ!$`!B!9Z)!*!\r%&3!X!%B!q`'U!!%!N!RS!*!%M!!"!*!&6`%&!'-"2`3%4AKTG!#3"3S!8!"(!6q\r)D8NJBf&ZEQpd)'a[Bf&dC5"jEh9b)#G3FQ9QCA*PEQ0PFbF0CQpXC'9b)'PZ)(4\rSC5"cHA0dC@dJCQpXC'9b,L"8D'Pc)'Pc$A0[E@9dD'PZCb"*)'0KEQj[G#"SB@j\rNE'8X)(0[FR*j,R3!!!!-!&)!2J$!!BF!k999!!!!$!"-!')!aJ'r!1Y993!!!!`\r!C`#!!03"[3$Y998!!!"Q!!%!N!8-!%i!33%aL%0$B@jZEh3JCQPZC#"ZB@eP)'p\rQ)&"jG'K[EL"`FQ9QCA*PEQ0PFb"QD@aP)'PZ)(4SC5"bCA0[GA*MC5"MD'&TELi\r0!*!'5!$Q!&m"-!3%4AKTG!!!!)i!!3#3"9S"'3"Z!9-%!Np,!*!&#J"'!&-"8`K\rY8(PdD'pZ)("bC@CPFQ9ZBf9c)'CTE'8JBA"`C@&bFb"MEh*bGA"d1L"3HA4SEfi\rJD'pYC5"QEfaNCA)JD@jMEh*bC@0d,L!0$9"XC@&cC5"bC@e[GQ8JDA3JB@jN)(*\rPFh4KFR3JF(PdD'pZ,J#3"!`!+!!S!*i"F`$U998!!!#B!!3!N!91!08!BJ&!"""\r8FRNJG'mJC'9XCA4P)'Pd!*!&6J"m!')!a`3'5@GZEh*P!*!&6J!%!')!6`3%8A9\rTG!#3"3S!8!"(!6q)-9P[GA)JF(PdD'pZ)("bC@CPFQ9ZBf9c)'&bC5"[GA4NBA4\rPC#"[FL"MEh*bGA"d,L"d!*!-!33!!3$U!!!"MJ'1!*!&%!!3!"%#r``!rri!!!"\r)!!!!5!#3"a!!%!#3"3%!#J#3"4!!%!#BJ!J!N!83!"!!N!P)!!!!5!#3"33!!3!\r%!*!036dR!!!!$J!!rj!'!!(rN!3!!!!#lT!'!!2GN!B!"-b3"J!&Zj!'!!DUN!B\r!"iL3"J!)Gj!'!!P9N!B!#N53"J!,-j!'!!`LN!B!$4'3"J!1!*!,%!!3!*!&%!!\r3!!!(!!$mPJ'3!!!*"`P#@Ekj8NN!#3H8*HB9lZ8NN!!*"f-Gl!$HlK13!!N(NaM\rR!ElZ%j!!#3GM%$!$lZ86N!!*"j-4!&IX3413!!N(Bb%3IS84)j!!#3H@-K&k84)\reN!!*"fC6)8Fa)eD3!!N(PQ8jVUNeCj!!#3GRCP3b0&ChN!!*"jKhDDkTChL3!!N\r(#BGfcXChL3!(!!$mQ3'3!!!#q3!!!2m!!!!B!%B!*J%Q!FX!!3#3#H`!!$!+!!!\rM*#-N!*!&b!'N!"%#r``!rri!!!"(rli!4rqq!*!&b!'N!*!&S3(b!"Bi3NP0!*!\r(b!'N4h+*F'L[BQS!!3!+!*!&b!'N!*L!e!#3"FJ"T!#3#8Ir[J"(rli!!!!%!!%\r!"!#3$8CDeJ!!!!m!!2q3"J!"rj!%!!!!![H3"J!$aT!'!!5eN!B!"CbF!!"MB`!\r'M*!'!!H%N!B!#(13"J!*8T!'!!T#N!B!#c%a!!#FR!!-+C!'!!dBN!B!$JL3"J!\r2!*!,b!'N!*!&b!'N!!!%J3#Y!!5"!+d!")%!V3!%J3#Y!!5"!+d!")%!V3!%J3#\rY!!5"!+d!")%!V3!%J3#Y!##Q!!%$-ri!"6-`!!!$-r8!"6-`!!!#-ri!!5-`rJ#\rY!#DR!!d*rrri!Srrri)Srrri)2N!$`+2rrq#"rrrq5"qrrq5!!#Y!#HS!!%$hrl\rr!-hqr`(phrlr!0,j!!!Yr[m"rFrqr`$Xr[m#rM!!V3!6U!!!$26r!2Vj!!#[p2m\r"dJ#Y!"1S!!"[mrm!B2X!!!Ecr`(f!+d!%kJ!!+rcr`#!q`!!#22r!IS!V3!6U!!\r!lr2r!0$l!!!+mrm"rJ#Y!"+S!!$[mrm!d2X!!!cbr`!!V3!6U!!!Vr2r!*!!q`!\r!#I2r!IS!V3!KU!!!Mr[r!GVIqrm#B#-`r3!!"[[r!IfXqrm"q!)!-ki!+UJ!!#l\rpr`6qBJ!#Erhr"2f1rrk#r3!!hrhr"2FJ!!E[rIm"k1m"rrQ[!#HS!!!'rIm!`[i\r!!32Iq[m"r5$q!!"2r[m"rM$q!!!Yqrrrr`$MX!!PU!!!$2hr!$$p!!!rqIm!S2i\r!!*rqr`$dr3!!!r[rrrm"r5#a!#1S!!"[r[m!q2`!!!Rjr`2f!!!%rIm!N!$m!!#\r2r2rqr`"`X3!Yq!!#"3!&p`!!8,m!!+rqr`$cr!!!"2Rr!rN!!!Rpr`"Jr!!!2rc\rrr[m!S,%!-IB!"J8!!!ZlZl$p!!"3[`!!lrlr!2,m!!!$qIm$r3!!$2hr!$$m!!!\r[r2rqr`$`X3!Yq3!*8!!!"3!!#l%EX,S!rIm!m2`!!!,irrm!!!hpr`!Jr!!!$rc\rrr[m!m,%!+[-!!`ZlZl#k!!$2r[m!mr`!!!2jr`2k!!!*rIm!32`!!$rmrrlr!0#\ra!*Aj!!&3"I`!!3Z`m3!!)[i!!3)JrJ!!)[i!!3)`rJ!!)ri!!3)`rJ!!)ri!!3)\r`rJ!!!rN!!!2p!!!`rJ!#!`#Ir[m!p[`!!!Ijr`2i!!!(rIm!J2`!!%rmrrlr!C!\r!!rd!!$,j!!!brJ!"!b$q!!!brJ!"!b$q!!!LrJ!"!L$q!!!LrJ!"!L$q!!!LrJ!\r"!L$q!!!Ml3#Vq3!"8!Am!!%,X2`!!9!&qJ!S!Tlrk6!ThrqM!ThrqM!ThrqM!Th\rrqM!ShrqM!ShrqN!ShrqN!Shrr%$p!!d#IIrk3!I2rkB!I2rmM[lr!IdJr3!!,[R\rr"1!!!!,Ir[m!i[d!!3,[r2rqr`Kkrrf#"+rreb$p!$%%crrB)%VrrB)$VrrC!$V\rrrC!!!krrf3!krrf3!!1ZrpN!1HrpNJ1HrqNJ1HrqNJ1HrqNJl`#Jq3!$8!8!!2Q\rlr`!!82N!!%lqr`(ilrlr!*lqr`(jlrlr!*lqr`(jhrlr!*hqr`(jhrlr!*hqr`$\rjr3!!2Ilr!IR2r[m!V2Rr!*!!r3!!RrRr!%$q!!"2r[m!q[d!!!Mlrr[r!IfIr[m\r!ird!!*rqr`$Cr[m"rCrqr`$Tr[m"rTrqr`$Tr[m"rTrqr`$Sr[m"rTrqr`$Tr[m\r"rTrqr`$fl`"1q3!$8!8!!2Qlr`!!82S!!32[qIm!r[hr!1rqr`$qkrm%J!!!!Xr\r`r`!`r3!!6rRr!+$q!!#Ir[m!p[d!!!2lrrEr"2`J!!!(crm!-2!!2[J!!J8!!2Q\rlr`!"8!Al!!!*f2m$mJ!!"[$r!2Rm!!!*qIm$pJ!!"2hr!+$m!!#Ir2rer`0`!!!\r[crm!`2!!2rN!!e!&!![jZ`1`!&!&q`!!,pMr!rF!!!c`r`$dr!!!"[Rr!rJ!!!R\rpr`"`r!!!6rcrpIm$`!!!Imrr!2,`!$lj!!03"3!,qEX#X!"3qJ!!2pMr!rS!!!r\r`r`$cr!!!!rRr!ri!!!Vpr`!`r!!!,rcrpIm$m!!!Rmrr!26`!$lj!!03"3!,qEX\r#X!"3qJ!!2pMr!rS!!!r`r`$br!!!![Rr!ri!!!cpr`!`r!!!$rcrpIm$m!!!Rmr\rr!26`!$hj!!*3!!$hZrm!!!Al!!![f2m$p`!!$2$r!22m!!!%qIm$qJ!!#Ihr!%$\rm!!!rr2rer`23!!"rcrm!mr!!H[N!!P!!!2Hlr`!!"IX!!!hkr`$Ir[m!rIhr!0r\rqr`$pp2m!cr[r!r3!-!Rkr`$IqIm"hrIm!!)(rprlr`2h!$!'rIm!J2`!!'rmr`$\r2r[m!rIVr!j!!!J!rqrm!rIhr!0lqr`(plrAr!0ljr`$Zr[m"rZrlr`,`!L$b!*[\rj!!*3!!$hZrm!!!Al!!!%r2m4jL!#62jM!#62jM!#1[jM!#1[q2m$pc!!1[cr!mI\r2rkEmr`2h-!!jr2m%q$!!1#$p!!-R-!!ir2m%j+rraYrqr`$br3!"!Yrqr`(j-!B\r!0rq6)!0rr2m$DZrmM2cr$+-J!flk-J!flm3J!Qlir`6m3J!dlrhr#2e#!$6[e#!\r#6[cr!iRIrD,c!+$j!!*3!![hZ`+`!!Ak!!#[r[m!q[d!!',q!!%')2i!!',q!!!\r'qIm"r$$q!!"[pIm"r6$q!!"1r[m"rM$q!!!Jr3!!)2i!!$lpr`$[r[m!lrlr!2V\rp!!!)r[m#rN!!r`!!02i!!322r[m!r[lr!2lpr`$frJ!"!d$q!!8Q!!!#!Xrjr`"\r`rJ!!+Ihr#C)#!!!Q)#!#!*rpr`6[rrrqB23!BIN!!P!!#rHl!V!!"IX!!3,[r[m\r!iZm!!)rkr`$Lr3!!"rAr!22p!!!'r[m!mr3!!!6er`$fr3!!!rlr![B!!2S!!$r\rer`#!p!!!,[Vr!2Rp!!3#hrrrq[J!!#hjr`$cp!"Hq3!#8!!,plX#X!!&q`!!#[h\rr!%$[!!!Yq[m!B2`!!0rfr`"`r!!$VrrrN!$c!!#Ip[m!S2`!"Crrrk!!!2S!!!I\rfr`(p)23!!!6kr`$Jr!!$2rrrm[J!!!2jr`$mp!"6p`$eZrN!!!rprqi!!!Rkr`!\rJr!!!MrEr!$$m!!0rrrm`m`!!6rEr!'$m!!8rrrp`!!$k!!!$p[m!q2-!!!,kr`#\rJr!!$$rrrS[F!!1rjr`!Jp3"5p`$eZrN!!$rqr`$klJ!!"[[r!IiJr!!!6rErq`!\r$2rrr)2-!!%rfr`!`r!!&$rrr-!!!q3$fr`$dmJ!!hr[r!($m!!-+rrq!p`!!VrR\rr!%$e!&,h!2@lq3!!2rlr!2VZ!!!%qrm!r2X!!%rfrrX!!Mrrrr)!!!rfr`!Jr!!\r&$rrr-!!!q3!!hrIr!26b!!#[qrm!F2`!!`Vrrh$h!!#IqIm!B28!AIJ!"JZl'lX\r4Zl(lZ`#`qJ!!,rlr!2hZ!!!(q[rl!!"[p[m!)2`!!drrrc$c!!!rp[m!32`!"6r\rrrd!!!2S!!!,fr`$fmJ!!lr[r!)$m!!-0rrq3!2F!!+rjr`!`p3"Sq!!'#l%EXEZ\rlXIZl!,$k!!!1rIm!)1m!!JVrhrcr!$$m!!#Ip[m!32`!!hrrrd$c!!"[p[m!F2`\r!"8rqri!!!2S!!J2rlrRr!Grjm`!#![rIr2m!S2`!!brqrm$h!!(rl[Vr!3!LpJ"\rkq!!0#lXE'lZl%4Za'l%4Zl$k!!!(rIm!J1m!!bB`!MVpr`#3!2d!!3,[p[m!d2`\r!!qrrrp$d!!%#hrEr!1,m!!@$)!0b!!$k!!-(-J!hr2m%qM)!0c$d!!3'3J!flrl\rr!22m!!0%)!0$q!!%"N)!01rpr`6jRIrD)2J!C[J!rlX,'a%EZl'l'l'aZaZlq3!\r!crlr!22[!!!JrJ!!Irlr!26p!!!+pIm!p[d!!!Vqr`$hp!!!#2Ar!2Rj!!)#!!$\rk!!!JrJ!!22hr!'$X!!!Yr[m"r5$p!2mJmJ!!+IRr!16i!*Ii!2qlraX*XEZaZaZ\raXEXEZrS!!3,[r[m!i2d!!!2q!!8kB!!!!kEq!!!Jr3!!#Ilr!22p!!!)pIm!mrd\r!!!Epr`5#!!!#)2d!"#)!!!+IpIm!p[J!!5)!r`!%HL!!!!,p!!!$r[m!q2`!"$!\r!!!E$rJ!%DM!!!!,p!!3#lrrrq[J!!!2q!!4--!!!![d!!3,IqIm!-2N!NIJ!rl[\rr'`QaZl'l'l'aZaZlqJ!!#Ihr!%$p!!d#ad0Trrad0Trrad0TJ2`!!qrrrh$p!!%\r#hrEr!*!!r!!!hrlr!rf'0)Rm!!-*K%50p2m!`2J!!3L'"M4prqPM4k,m!!12rrr\r5r!!-D@0(crq@0(crq@0(S[`!!frrrr,i!!J%Pc0krrPc0k6m!!!rqIm!S2N!F[N\r!$`ZlZaZa'lZa'l%EXEXEZl$l!!!2rIm!)2d!!3+[p[m!-2`!!jrrrc$m!!#Ip[m\r!-2`!!(rlr`$dr!!!"[(r!($i!!%%rr[r!)$m!!-rrrq3!2`!!$rfr`#Jr!!$,rr\rrS2F!q[m!d2`!!!rjr`$bq3"Pq3!!#r1l!,$l!!!rr[m!rIX!!)rfrrX!!RrrrrX\r!!'rfr`!Jr!!!6r[r!22m!!!$mIm!-2J!!3,rqrm!3[`!!`rrrf$m!!!2p[m!F2`\r!!`lrri$h!!$2qrm!N!$m!!!+qIm!mrN!CIN!!![cZ`#`q`!!2rlr!2Vl!!"rprm\r!r2X!!Nrrr[X!!$rfrrX!!$rlr`$`r!!!!r(r!$$i!!%#rr[r!%$m!!-2rrm`r!!\r!$IEr!($m!!-+rrp`p`!!Vr[r!($m!!!*qIm!p[N!AZ-!!#rqr`$qq`!!RrErq`!\r$Irrr)2`!!(rfr`!`r!!!6r[r!22m!!!%mIm!32J!!32rqrm!B2`!!brrrh$m!!!\r2p[m!J2`!!`lrrj!!p`!!hr[r!+$m!!!-qIm!mrN!B1-!!!lpr`!Jr!!!crEr!$$\rm!!1[rrm`r!!!RrEr!%$m!!#2qrm!p[`!!!Iar`"`q!!""2rlr`#3!2`!!crrrj!\r!r!!!2rEr!+$m!!-[rrr!q!!!![Vr!1$m!!!2qIm!m2N!G1-!!!Ipr`#!r3!0!i-\rJ0Yrj3J0Yrj3J0S$p!!!$r[m!N!$p!!d#K#!dhrP#!dhrP#!dJ2d!!3,[qrm!r2`\r!!#har`$Jq!!"$Irlr`$Lr!!$Vrrri[`!!*rfr`$cr!!$MrrrmrJ!!!Ikr`$dr!!\r!ErRr!)$j!(RL!!$2r[m!mrd!$3)!)!!R-!)!!R-!)!!Jr3!!$2lr!26p!!d#!#!\r!"c!#!!"d!#!#![d!!!Rjr`"`r3!!Mr(r!2Vi!!&[rr[r!2Vp!!!'r[m!q[d!!!6\rer`(p)2i!!!2qr`(p)2N!!$rkr`$qr3!"!Zrkr`(p)2N!Cq)!!1rqr`$Ll`!%)!!\r!!Urpr`4J!!!$)2!!!!Ijr`"!r3!!Er(r!2Ep!!B#)!!!"rrrqrm!q2d!!!2qr`$\rjr3!!!rAr!2Vp!!3#lrrrq[`!"#!!!!6[q[m"r#$q!!%#hrVr!IiJq3"Hi`!!#Ih\rr!'$[!!-UFd51r2m$r(4%KZi!!-rlr`$jr!!!#[(r!-$m!!@B3dIIrrrlr`$5r!!\r$Irrrd2`!!(rfr`$Lr!!$Errri[`!!fPM0krjr`$cr!!!2rRr!0$j!&$M!!!2rIr\rZ!!!*p[m!mqi!!(rlr`$dr!!!"[(r!($m!!!rr2rlr`#!r!!$2rrrJ2`!!$rfr`#\r3!2`!!brrrk$m!!!2p[m!`2`!!!ljr`$bq3"5i`!!2rlr!2cZ!!!(p[m!m1i!!$r\rlr`$br!!!!r(r!$$m!!![r2rlr`"!r!!$$rrr32`!!!rfr`"`r!!$$IrrF2`!!!c\rfr`#3!2`!!!Vjr`$dq3"3i`!!2rlr!2VZ!!!$p[m!`1i!!$rlr`$bq`$ar`!Jr!!\r!$rcrqrm!-2`!!`hrrd$m!!!+p[m!32`!!`Vrrh$m!!!+p[m!B2`!!!Ijr`$hq3"\r5i`!!2rlr!2hZ!!!(p[m!m1i!!%rlr`$cr!!!!r(r!%$m!!![r2rlr`"!r!!$$rr\rrB2`!!!rfr`"`r!!$$IrrJ2`!!!cfr`#3!2`!!!Vjr`$cq3"5i`!!$rhr!#$[!!!\r*p[m!mqi!!(rlr`$dr!!!"r(r!'$m!!"2r2rlr`#!r!!$2rrrN!$m!!!rp[m!S2`\r!!brrrk$m!!![p[m!d2`!!!rjr`$bq3"Di`!!"rhr!($[!!!qp[m!qHm!!3,Iqrm\r!rI`!!#hjr`2k4!0+rIm!d[`!!+rmrr[r!1,m!!1IrrrLr!!!RrEr!22m!!12rrr\rcr!!!IrEr!26m!!"[qIm!N!$j!'(L!!$2r[m!mqm!!-rer`"!m!!!#IRr!($p!!#\r2qIm!F2i!!'lqr`$jr3!!"[[rqrm!q[d!!!6qr`$kr3!!"2Ar!I`JrJ!!!rlr!Id\rJrJ!!!rAr!IiJrJ!"!Zrkr`(q)2N!Hq-!!3,Ir[m!i[d!!!,q!!8TB!!!!TEq!!!\rUp2m!jri!"5P`!!!#Pri!!#,p!!!)qIm!B2d!!(rkr`$hr3!!"[lr!2Mp!!!'qrr\rlr`$jr3!!"2lr!2Vp!!!$pIm!q[d!!!2qr`$mr3!"!Zrfr`(p)2i!!3,[q[m"rL$\rj!(,M!!!)rIm!B2d!$!5R-dMrqR-dMrqR-dMbr`c(-dM[r(-dI[rA3dH3!2d!!3,\rIqrm!q[`!!!ckr`$!r!!$Vrrrd2`!!+rmrr[r!1$m!!1IrrrJr!!!MrEr!2,m!!0\rrrrrcr!!!ErEr!22m!!"2qIm!S2N!@H-!!!lpr`!Jr!!!Vp[r!%$m!!"rqrm!p2`\r!!!Ikr`"`r!!$6rrrF2`!!%rmrr[r!*!!r!!$2rrrN!$m!!!rp[m!S[`!!brrrk$\rm!!![p[m!d2`!!!rjr`$bq3"Ci`!!,rlr!2hl!!#2frm!)2`!!%rlr`$dr!!!!rV\rr!$$m!!02rrp!r!!!6rcrqrm!B2`!!brrrh$m!!!2p[m!J2`!!`lrri$m!!!0p[m\r!N!$m!!!+qIm!mrN!9q-!!%rqr`$kq`!!Ip[rq`!!2r[r!2$m!!!#q[m!)2`!!`r\rrrc$m!!!2r2rlr`!`r!!$$rrr-2`!!!hfr`"`r!!$#[rrF2`!!!Vfr`"`r!!!#IR\rr!2Ij!&RM!!![r[m!rIX!!)rEr`!Lr!!!6r[r!22m!!!%q[m!32`!!crrrd$m!!!\rrr2rlr`"Jr!!$,rrrF2`!!!rfr`#!r!!$$[rrN!$m!!!0p[m!S2`!!!Vjr`$cq3"\rCi`!!$[hr!#$m!!#[frm!32`!!)rlr`$dr!!!"[Vr!'$m!!0[rrp`r!!!6rcrqrm\r!N!$m!!-rrrq3!2`!!$rfr`#Jr!!$,rrr`2`!!#rfr`$Jr!!!$rRr!2,j!((M!!!\r)rIm!F2d!!!2Qr`bN-$EIqN-$EIqN-$D!r!!!hr[r!2Vm!!J*B`0XrmB`0S$m!!1\r[rrr5r!!!Vrcrqrm!i[`!!jrrrq,m!!ah-%5IrR-M5IrR-L56r!!$Mrrrmr`!!'r\rfr`$cr!!!6rRr!*!!q3"ji`!"!Yrqr`$br3!!$1Ir!16q!!NSB!!!!SB#!!!Jr3!\r!#2Rr!'$p!!!JrJ!!Gri!!!,p!!!'r[m!q2d!!!Elrr[r!2Rp!!!%r[m!qId!"3)\rJ!!!%N!$q!!-j!!!Jr!!!!rlr!2cp!!%#lrEr!IdJr3!!lrVr!IiJq3"Li`!"!Yr\rqr`$dr3!!$1Ir!%$`!!"rqIm!j[i!!3)JqJ!"!M$q!!"Zr[m!q2d!!!Elrr[r!2R\rp!!!%rIm!J[i!!#$d!!!#rJ!!2Ilr!2cp!!%$lrEr!IdJrJ!"!Zrkr`$qq!"Fi`!\r!#2hr!'$p!!!$k2m!q2-!!bK%!fchr`1N3$5!q!!$#8-$5[hr!0,m!!#[r2rlr`$\rJr!!!Rrlr"2eM!NJ`p!!$"R-L5Ihr!22m!!"[p[m!mr`!!%rjr`#3!2N!61-!!!r\rpr`!Jr!!!VqRr!22c!!!(mIm!B2J!!!6kr`"`r!!!6rcrqrm!J2`!!$rlr`$jm`!\r!![Vr!+$m!!!2p[m!d2`!!!ljr`$bq3"-i`!!2rlr!2hl!!#2kIm!m2-!!!6ar`!\r`q!!!"2Vr!$$m!!![r2rlr`"!r!!!$r[r!2Eb!!$[qrm!J2`!!!cfr`#3!2`!!!V\rjr`$dq3")i`!!2rlr!2Vl!!"[kIm!`2-!!!2arrB!q[m!)2`!!#rmrr[r!%$m!!!\r0qrm!mr)!!+rlr`"`r!!!#[Er!($m!!!(qIm!prN!61-!!$rqr`$mq`!!IqRr!2$\rc!!!%mIm!-2J!!!2kr`"!r!!!,rcrqrm!32`!!!rlr`$fmJ!!hr[r!($m!!!-p[m\r!N!$m!!!+qIm!p[N!5Z-!!#rprrX!!+rTr`$cm`!!"r(r!%$i!!!%q[m!B2`!!%r\rmrr[r!)$m!!!rqrm!qI-!!!,kr`#Jr!!!$rEr!-$m!!!1qIm!m[N!6H-!!!Rpr`"\rJr3!"!ZrTr`$im`!!,I(r!+$i!!!+q[m!`2`!!*rmrr[r!0,m!!#2qrm!r[-!!!E\rkr`$Lr!!!ErEr!22m!!!rqIm!S2N!81)!!1rqr`$Lr3!!#ZIr!$$d!!#2mIm!p[J\r!!'rkr`$hr3!!"2[rqrm!q2d!!!2jr`#3!23!!$lkr`$pr3!"!Zrfr`(p)2i!!3,\r[q[m"rM$j!(ML!!$2r[m&r6!!!!+[qIm!r[lr"HD[rrrqD[lr!1rpr`$NrJ!""d$\rq!!"drJ!!"r$r!IjJrJ!!C[i!!3E[qIm!F2i!!%llrrVr!(,q!!"1qIm&q#!!!!1\r#rJ!&1#!!!!2IqIm!N[i!!$hdr`#LrJ!!,IRr!IdJq3"Yi`!!"rcr!rK#!flir`h\rp5GqS)!5GqS)!5GqSErcr$*3J4-rj3J4-rj3J4-r[r`Mk3`4+rk3`4+rir`2p3`*\r*q[rkr`2pB`**prm-eM!NRreM!NRreM!NMrMr!rjM!MMcr`6qJb)ilrMr!)$j!"[\rM!!!1l[m!-2i!!!,p!!-J!!#[`2qfr`$`q3!8i`!!,qlr!'$f!!$[`2qfr`$cq3!\r8i`!!6qlr!)$h!!!#[rqfr`$fq3!5i`!!2qlr!($f!,rrY[m!p2N!&1-!!!rZr`"\r!pJ!!hm$rY[m!mrN!&H-!!!R[r`(q)2B!!(r!rlEr!+$j!"EM!!%#lr$r!I3JpJ!\r!,-$rY[m!-2N!1H)!!#cqr`$[p2m!p28!!3+Ir[m!lq[r!1rqr`#*r[m!rZ6rrrm\r!r[lr!2l2r`2[rrrqp2m"r5$j!$AL!!3#DHqSRr6r!2cd!!-%RIbAk[m)j*hmN`"\r*hpPZj2rqr`0TcpPYcrm$L+rUH[2r!*!!q3!UhJ!!lr2r!$$b!!!+k[m!prS!!)r\rNrrlr!j!!!!"[crm$m!!!,r2r!2$j!#VI!!!#m[m!F2)!!!rUr`$kqJ!!Vq6rr[m\r$i!!!Rmrr!r-!!%rcr`$cq3!Sh`!!!r,r!*!!mJ!!2qVr!2ck!12rr[m$m!!!Vmr\rr!r3!!(rcr`$hq3!Uh`!!!r,r!($b!!!2k[m!q[S!!0rNrrlr!r!!!*r2r`2c!!"\r2mrm!p2N!+0i!m[m!32)!!!cUr`$hqJ!!Rq6rr[m$S!!!Imrr!r!!!%rcr`$bq3!\rVhJ!!Rr6r!IiJmJ!!"qVr!22k!!"2j2rqr`0J!!![crm$S!!!$22r!0$j!#cH!!!\r1p2m!p2!!!-rVr`#!qJ!!#H6rrrm!r2i!!!I3r`6q)!!!!r2r!$$j!*VH!!%$hrl\rr!)hqr`(ihrlr!($`!!!mr[m"qFrqr`#Fr[m"qFrqr`#Dr[m"q5$k!!%#Vrlr!+V\rqr`(kRrlr!+Rqr`(kRrlr!+Rqr`,mRrrrr`$$r3!!Mrlr!-Rqr`(mRrlr!0Rqr`(\rpMrlr!0Mqr`(pMrlr!0Mqr`(qMrlr!1Mqr`(qM[lr!16p!!"1r[m&k1rrrrkHr[m\r!j2J!Npd!$#M2rT-#M2rT-#M2rU2Z!"9mrrS`"mrrT!"mrrT!"mrrT!"UrrT!q!!\rF"UrrTJ"UrrTJ"+rrTJ"+rraJ"+rra`"+rra`"+m"rmIm!$!$V[r(!$V[r)!$V[r\r)!$V[r))$V[r))$R[rB)$R[rB)$R[rC!!!jlrf3!jlrf3!!+YrpRm!!d$RIrC)#V\rIrC)#VIrC)[J!I0X!!#$q!!!#r3!!)1`!!!2p!!!`rJ!!!rd!!#$q!!!#p!!!)2i\r!!!,p!!!`rJ!!!rd!!$$q!!!$r3!!-2N!!#$q!!!#r3!!)2i!!!,p!!!LrJ!"!L$\rq!!!LrJ!"!L$q!!!LrJ!"!L$q!!!Lq3!!)[i!!3)JrJ!#)J!Jq!!iVJ!!)2i!!!,\rd!!!JrJ!!!ZX!q!!!)2i!!!,p!!!JrJ!!![d!!#$q!!!#r3!!)2i!!!,p!!!Jf`!\r%J3#Y!!5"!+d!")%!V3!%J3#Y!!5"!+d!")%!V3!%J3#Y!!5"!+d!")%!V3!%J3#\rY!!5"!+d!")%!V3!%J3#Y!!5"!+d!")%!V3!%J3#Y!!5"!+d!")%!V3!%J3#Y!!5\r"!+d!")%!V3!%J3#Y!!5"!+d!")%!V3!%J3#Y!!5"!+d!")%!V3!%J3#Y!!5"!+d\r!")%!V3!%J3#Y!!5"!+d!")%!V3!%J3#Y!!5"!+d!")%!V3!%J3#Y!!5"!+d!")%\r!V3!%J3#Y!!5"!+d!")%!V3!%J3#Y!!5"!+d!")%!V3!%J3#Y!!5"!+d!")%!V3!\r%J3#Y!!5"!+d!")%!V3!%J3#Y!!5"!+d!")%!V3!%J3#Y!!5"!+d!")%!V3!%J3#\rY!!5"!+d!")%!V3!%J3#Y!!5"!+d!")%!V3!%J3#Y!!5"!+d!")%!V3!%J3#Y!!5\r"!+d!")%!V3!%J3#Y!!5"!+d!")%!V3!%J3#Y!!5"!+d!")%!V3!TmJ!!rrX!!3r\r`iJ!!m1m!!!rp!!$`rJ!!$rF!!2$q!!!2rJ!!m1J!V3!Uq3!$$r!!m2i!!2rl!!%\r2m1X!!!rl!!,`!2$U!!$`l3!!m2N!!!r[!+d!E2N!%Jrr!2!2r`$rr`!2r`!2rr$\rr$r$p!"`2m!$`!2!2r`!!r`!!rr$rr`$rm!!2rr$rm!!2m2i!,[r`$rm!$rm!$rm\r!$`!2r`$rm!!!$`$rm!!2r`$`$`$`!2r`$`rrm2!!r`!2r`!2l`#Y!'[j!")2rr$\r`r`r`r`r`r`r`r`r`r`r`r3!4m!m!$`m!$`$`$`$`$`!!$`!2r3!im!$`$`$`$`!\r!$`!!$`$`!!$`$`$`$`$`!!$`$`!!$`$`$`$`$`$`$`$`$`!!$`$`!2!2!2!2!2!\r2l`#Y!'cj!2m2%2r`r`r`r`r`r`r`r`r`r`r`r3$rrrm!$[!!$`$`$rr`$`!!$`!\r!rri!"[!!m!m!rrrq!#lr!!m!m!$rm!m!m!m!$r!!m!m!!!m!m!m!m!m!m!m!m!$\rr!!m!m!$`$`$`$`$`$qm!V3"Sq3!4$`$rm2m2m2m2m2m2m2m2m!rrr!!2m!!!$`m\r!$`$`$`!!$`$`$ri!#2!!!2!!m!m!m2`!,2!2!2!2!2!2!2!2!!!2!2!2!!!2!2!\r2!2!2!2!2!2!!!2!2!2!!m!m!m!m!m1i!V3"Vq3!4$`!2m!rr!2rr!!rr!!rrm!$\rrr!!5$rm!m!$`$rm!!2r`!2m!!2m2rri!1!r`m!m!$rm!!!rr!!rr!!$rm!m!m!m\r!rr!!m!m!!!m!m!m!$rm!$rm!m!rr!!m!$r$`!2m!$`$`$qm!V3!9k3!"$r$f!!!\r2jJ!!$qS!!!rE!+d!&1N!!2re!!!2jJ!!$qS!!!rE!+d!")%!V3!%J3#Y!!5"!+d\r!")%!V3!%J3#Y!!5"!+d!")%!V3!%J3#Y!!5"!+d!!2m!!!$H!!%!N!R)!D4!!J$\rX!*!&F3!m!,3"RBLp9Q9bFfP[EL"H-#`JU5!a16Na,6%j16JJ8h4TBfKdD@jR)%e\rKG'KPE@&dDA0MD#"$C@jdFR9Y,Je"GA4SEh*c1L"(G@PNEb"fB@iJ8QpcFh9Y,#"\r+B@0V)%TKER0PEL`J5R9cG#"fB@iJ8QpcFh9Y)'&ZC#"[G'KPFR-Z$3e'Eh)JE@p\rbC5"TEQC[)(0PC5"SG(4`1Lm[GhGh,R"jG'K[ELj[FQF[)'pb)'8YE@&TE#!mDQ&\rMDd"MGfNZEQ`q!*!%"J#3"3X!!!!'!*!&#`!!!!B!N!8,!!!!"J#3"3X!!!!'!*!\r&#`!!!$!!N!F%!!$rN!B!!3#3"`)!N!F$!*!("2q3"J!!!!`!N!mC!&S""!"Q!I!\r!!!%!!'3!!!"3!*!%!Np,!!!!&`!i!!3!6J&8!!!"!!"N!!!"%J#3#$!!N!F%!!$\rrN!B!!3#3"`)!N!F$!*!("2q3"J!!!"!!N"-`!*!("!!!rj!'!!%!N!F#!*!(!`#\r3"`6rN!B!!!!J!!%!N!8X!)`!3!$F"!*25`#3"3S!#J!I!9k)!*!%3J!$!*!&6J%\r-!')"A!3#6dX!N!91!,)!BJ%#"!C$B@jMC@`!N!8+!!S!(`&HL!#3"LX!$3!p!9X\r3!*!%9!!%!*!&@J"c!'i!IBJ!N!BN!3`!1!&F"!0CCA-#!*!&*!!+!$J!EJ3#6Qm\r!N!8N!,3!1!%%"!C$B@jMC@`!N!8+!!S!(`&FL!#3"'S)3fKKFQ0[B@`!N$J-!*!\r("!!%!*!&!J#3$3B!N!f##%0SBA*MEf&X!*!i$!#3"`3!"!#3"33!N!d"!*!,"J#\r3#`F!N!f1#%0SBA*MEf&X!*!i$!#3"`3!"!#3"38!"J#3#`)!N!X#!*!,!J#3#`B\r!N!dB!'S!@!#b!F!!!3%!!3#3"3%!!!!`#J!!!"J!B!"f!0!"iJ!"!3!"!*!&!3%\r!!$!+!!!!'!##!'3!aJ(3!!%"!!%!N!8"!J!!-!S!!!!8!*!A-!#3"`3!!2q3"J!\r"!*!(!J#3"`-!N!F%rj!'!!!!-J!#!*!&+!%1!$`"AJ3'3f&ZBf9X!*!&#J!+!"m\r"ASJ!N!BV!!`!13$mJ!#3"(B)3fKKFQ0[B@`!N$J-!*!("!!%!*!&!`!"!*!,"J#\r3#`S!N!dB!'S!@!#f!F!!"3%!!3#3"3%$!!!`#J!!!!J!N!X`!*!("!!!rj!'!!%\r!N!F#!*!(!`#3"`6rN!B!!!!3!*!6-!#3"`3!!2q3"J!"!*!(!J#3"`-!N!F%rj!\r'!!!!&!#3&b!!!3#3"5J!N!!!2!$@"!*25`#3"3J!#!!G!@!)!*!%3J!$!*!&8!%\rB!'3"AJ3#6dX!N!93!-3!C!%+"!C$B@jMC@`!N!8+!!S!(`&HL!#3"LX!$3"!!9X\r3!*!%9!!%!*!&,!"`!%-!HBJ!N!BX!4J!3!&H"!0CCA-#!*!&,!$-!%!"%J3#6Qm\r!N!8X!!`!3!"5"!C$B@jMC@`!N!8+!!S!(`&HL!#3"$3!!J#3"5J!qJ!m!8!%"N0\rKEQ0PE!#3"3S!#J!I!8#)!*!',!!)!$J!p)F#!3#3"%3!!`#3"8J"$!"F!9)%!Np\r,!*!&5!#i!&`!rJ3'3f&ZBf9X!*!&$!!%!#!"9)J!N!BS!!3!23&8"`)"!3!!!'S\r)3fKKFQ0[B@`!N$J-!*!("!!%!*!&!J#3$3B!N!f##%0SBA*MEf&X!*!i$!#3"`3\r!"!#3"33!N!d"!*!,"J#3#`F!N!f1#%0SBA*MEf&X!*!i$!#3"`3!"!#3"38!"J#\r3#`)!N!X#!*!,!J#3#`B!N!ef#%0SBA*MEf&X!*!i$!#3"`3!"!#3"3-!!3#3#`B\r!N!X&!*!0JJK$D'&bBfpKE!#31!`!N!F%!!3!N!8%!*!0!3#3#`B!N!X&!*!0'!"\rh!)B![`(Z"")!!!%!N!8""!!!-!S!!!!B!Gi"&J*1!Ri%%J!!!3#3"3%&!!!`#J!\r!!"J#*J%a!R)#Q335!!!"!*!&!3B!!$!+!!!!'!"U!&J!XJ'N""-!!!%!N!8""`!\r!-!S!!!!B!6!"(`'F!S-%%J!!!3#3"3%)!!!`#J!!!$!!N!F%!!$rN!B!!3#3"`)\r!N!F$!*!("2q3"J!!!#3"'!!)!93"B!!!!3!!C!!!!+!!N!303fpYE@&ZC#"XD@j\rP1J!!!$!!N!F%!!$rN!B!!3#3"`)!N!F$!*!("2q3"J!!!!B!N!8,!!!!+!#3"`-\r!N!N"rj!'!!)!N!F$rj!'!!!!'J"B!3J!E!&B!!!"!!"N!!!"F!#3"!0"C'3!!!!\rD!-`"#!$J!9J!!!%!!'3!!!&`!*!%!d&NC!!!!#X!p!!)!3J!L!!!!3!!C!!!!A!\r!N!383@4N)'9iDA0dD@jR)'CTE'8Z,Li!!!!S!*!(!`#3#3(rN!B!!J#3"`2rN!B\r!!!!Q!23!#!%)!(3!!!%!!'3!!!&`!*!%$d&NC#"ZCAFJCQPXC5iZ,J!!!#3!p!!\r)!3J!D!!!!3!!C!!!!A!!N!303@4N)'C[E'4PFLiZ,J!!!#J!N!F$!*!*!Iq3"J!\r#!*!(!rq3"J!!!"J"!*!*rj!%#&9ZG'PdE'9N!*!%'!%"!*!)rj!%#&9ZG'PdE'9\rN!*!%+!#3"`-!N!N"rj!'!!)!N!F$rj!'!!!!(J!)!!J!G!&J!!!"!!"N!3!!SJ#\r3"!G2F(4TEfik!!!!(`!)!!J!G!&J!!!"!!"N!3%!SJ#3"!K$EfeYB@jN1J!!!0i\r!$3#3"!&J!4J"G!&H"!*25`#3"!&J!-3"G!%+"!C$B@jMC@`!N!8)!!J!G!&J"`)\r"!J#3"5!!'!!b!95)!*!'1!!B!%`"9"!!N!CB!3J!E!&B"`)""3#3"A`!#!$S!@!\r(!J%$!*!&Q!!F!-3"@)J!N!E-!3J!i!&B"`)""J#3"I3!#!%)!)J(!J%(!*!&p!#\r1!3J!qJF#!3J!N!Ad!3!"#!&J"`)"#3#3"!%B!!J"9!&J"`)""!#3"!%d!"J"5!&\r8%!#3"2S)3fKKFQ0[B@`!N$J-!*!("!!%!*!&$J#3$3%!N!X&!*!,"J#3#`F!N!X\r&!*!,"3#3#`B!N!X&!*!,"3#3#`8!N!X&!*!,"3#3#`F!N!dB!(8!bJ(j!MB%%`!\r!!3#3"3%*!!!`#J!!!$J!N$Y-!*"1!RJ!%J#3"!%i!-i"6!%)"!05G@i#!*!%!6J\r!#!&-!%8%"N0KEQ0PE!#3"4i!#!!`!3d&)d9ZG'9b)'PZG'9bB@0dDACP)'e[C'8\rJB@CdCA)JFf0bDA"d!J#3"6-!#!"&!3d&&e4bB@0P)'PYF'pbG#"cG'&dC@ePER4\rc!J#3"8N!#!"E!3`&'bKXD@GSG'aj+5"[F(4TE@PkC5"LHA4PBfpNC3)!N!9I!!J\r!F3%,"4K9EQ*eCQCPFQ9N)(0dC'peG#pcG'4PFR)!N!9e!!J!K`%+"40%C@*eCb"\r`BA*cCA)JEh9dF(9d!J#3"H)!&`$d!)%'"N&XGf&jF`#3"H)!K!$d!3`'%%pZ)(9\rZFf9PEL"[GA4`GA3!N!Ai!"F"#J#""Je2EL"PFR*[FL"PH'Pd4!#3"IJ!K!%+!1i\r'"8jPGQ9b!J#3"!%9!!J"+J%)""j6CA3JG@jTH#ecG(PXC5"MEfeYB@jN)'aTEQ8\rZ,Li!N!@,!!J!R3%3"5&ABA*Z)'&LEh9d)'PZBfpZFfPcG'9ZG#"838)JGA0KCf8\r#!*!&S3!)!,-"#J864'PcB@*XC5"cDA4P,A"jG'K[EJ)!N!8'!2J!&J%)3!,T`J#\r3"EJ!#!$+!3S&*84[EY9d)(9cC5"1BAC6CA*fD@0PFb"QEh)JE@&MCR-JBf&XE(-\r#!*!&"J!)!"F!d)JD8(PdD'pZ)'PZG'9bF(*PG'9b)'p`G'P[ER-!N!A0!!J!h3%\r*L"T,C@9`)(0dC'P[)(GTEQ4[Gb"[F'9Z)'pZ1J#3$)%%!!%!j`!!!6B)3fKKFQ0\r[B@`!N$J-!*!("!!%!*!&%`!#!*!,!3#3#`-!N!X$!*!,!`#3#`-!N!X$!*!,"!#\r3#`3!N!X%!*!,"!#3#`)!N!X$!*!,!`#3#`N!N!X$!*!,"J#3#`B!N!TTB@a[Ch-\rZFR0bBf`!!!!B!*3"SJ(S!VB!!3%!!3#3"ZF!!$!+!!!"!!!!2J)!!$d#!!!(N3B\rG'A3"HJ!!!"`%SJ!+4%P86!!5!&T"6&*8!!3"2N4-6dF!$3&k8%P$9!!"!L*$6P4\r-!!N#1N4-4eJ!#J+bC'aRH!!&!cCNBh4L!!F$IQPMG')!"`2HBf0dBJ!$"$j048j\r9!!%%EJ$P!'3!N!RQ!'XJ!!#K!*!&k!"l)!!"E`#3"HN!L3!!!M)!N!AV!*-!!!0\rF!*!&l!#I!!!TF!#3"Hd!U3!!![)!N!AU!,J!!!2q!*!%!3!!j`!!+h`!N!3"!3$\r[!!!VS!#3"!%#!2J!!#[Q!*!%!3-")3!!,Q3!N!3""!%j!!![d!#3"!%&!8N!!#r\rd!*!%!3B"@J!!-$S!N!3""`&Z!!!`NJ#3"!%)!B)!!$$+!*!%!3N#YJ!!0UJ!N!A\rR!YF!!$N`!*!&j3!e!!!!H!#3"HN!+`!!!X)!N!AV!!m!!!,5!*!&l3#3"!,L!*!\r&kJ!E!!!$lJ#3"HB!2#!!!)J'(4KJ!1J!6#!!!KN'(4KF!1`!@J!!"L`'(4KB!3!\r""!!!,F3'(4K8!3%"$!!!,H!'(4K3!3)"&3!!,I`'(4K-!3-",3!!,a3'(4K)!33\r"Q`!!-jJ'(4K%!38"VJ!!-l3'(4K!!3B"`J!!-p!'(4Jm!3F"f3!!-q`'(4Ji!3J\r"m!!!0!J'(4Jd!3N#a`!!1)J'(4J`!1F#j`!!21B'(4JXkF,rrb!!"*S!N!AX!-%\r!!!C)"Kd@i!%!!-XJ!#V)!*!%!3%!f#!!+Z8!N!3""!)%)!!d@!#3"!%&!KFJ!$6\rU!*!%!3B#*b!!03J!N!3""`)i)!!e*J#3"!%)!NSJ!$@"!*!%!3N#A#!!0DX!N!3\r"!J+2)!!fB`#3"!%$!U)J!$D&!*!%!3$rr`!!,$i!N!3"!Irr!!!XV!#3"!%#rrm\r!!#db!*!%!32rr`!!,TS!N!3""2rr!!!a%J#3"!%&rrm!!$'!!*!%!3Err`!!-JB\r!N!3""rrr!!!bQ!#3"!%)rrm!!$-5!*!%!3Rrr`!!0iS!N!ARrrm!!$ZX!*!%!36\rrr`!!+P)!N!3""Irr!!!UA!#3"!%'rrm!!#TQ!*!%!3Irr`!!+R!!N!3"#2rr!!!\rUHJ#3"!%*rrm!!$5d!*!%!3Irr`!!+S3!N!3"#2rr!!!V!*!&!3,rr`!!+dJ!N!3\r""2rr!!!Z-!#3"!%&rrm!!#mm!*!%!3Err`!!,i3!N!ARrrm!!$3N!*!%!3Rrr`!\r!0)!!N!3""rrr!!!UZ!#3"!%)rrm!!#Xd!*!%!3,rr`!!,KJ!N!3""2rr!!![-!#\r3"!%&rrm!!#p`!*!%!3Err`!!,lJ!N!3"#Irr!!!iT!#3"HIrr`!!11!!N!3""[r\rr!!!d[J#3"!%)rrm!!$99!*!%!32rr`!!0G-!N!3"![rr!!!f0`#3"!%!!Q`!!$A\rr!*!%!3%#I3!!0KX!N!316Qp3FQ9Q4QPXC8jKE@8,3Q&N8(*PCNCTE'823Q&N)("\rbC@CPFQ9ZBf9c#8j[8(*PCN4TFJC"F("XCA328f9XC@0d4'PbC@0dEh*j$9"bEfe\r`G%GPG%CTE'8*3@*[GA3JBQpi"N&`F'aPG!p6C@aPBh4%DA*PBh4[FRN08(*[EA"\rd4f9d4QPXC3P1Ee"bC@C%DA),3Q&N8(*PCNCTE'8*3@*[GA3JBQpi$Nj[8(*PCNC\rTE'91B@eP#%*KC&"bC@Cc#8&LEh9d)'*[H!a`FQpRFQ9cFb"LBA)18'&cFhG[FQ3\rJCQPPE'3(6@9cFf&RC3K4G@9cG'P[EJYCCA01Ed0KEQ0PE!G0CA0cB@GP#&&eCA0\rdD@pZ#ePPFdj[3f&ZBf9X#e"bEfGbCA0c3Q&b#e"bEfGbCA0c3Q&b$d0[F(NJEfB\rJ6@9cFf&RC4"$Eh"j)'pQ)&&eCA0dD@pZ%d0[F(NJEfBJ@@9c6Qp$B@jMC@`63fp\r`H5"[CL"3FQpRFQ9cFd*KFKK$Eh"j)'pQ)%0[F(NJEfBJ8A9PFh4TEfi53A"`C@&\rbB@jMC5"0CA0cB@GP%d&`F'9KFQ&ZBf8J8A9PFh4TEfi@3A"`C@&bB@jMC5"CCA0\r1Ed0KEQ0PE"C"F("PBA*KEQ0P)&"bEfGbCA0c3Q&b%d&`F'9KFQ&ZBf8J8'&cFhG\r[FQ35BA*RGL"MEfeYB@jN)'GbEh9`$f&bChBJB@4N)'p`G'P[EK"KFQGf)'&NC#"\rMEfeYB@jN%8&bChBJB@4N)'pXC#"QD@aP%8&bChBJB@4N)'jPGb"QD@aP$d&bChB\rJB@4N)'C[E'4PFK"KFQGf)'p`G'P[EL"YC@je%@&bChBJBfpYE@&ZC#"YC@je%Q&\rbChBJD@jcCA*d)'p`G'P[EK0KFQGf)'PZFf9bG#"MEfeYB@jN%%0[F(NJEfBJ8A9\rPFh4TEfi23A"`C@&bB@jMC5"KFQGf$e0dBA*dGA!JEh"dD@pZF`G2F(4TEfjcC0):\r
\ No newline at end of file
diff --git a/Mac/Resources/version.r b/Mac/Resources/version.r
deleted file mode 100644 (file)
index 4e52e6a..0000000
+++ /dev/null
@@ -1,30 +0,0 @@
-/*
-** Create the 'vers' version resource from information in the
-** Python include files.
-*/
-
-#include "Types.r"
-
-#include "patchlevel.h"
-
-/* Invent the Mac version from the Python version */
-#if PY_RELEASE_LEVEL == PY_RELEASE_LEVEL_ALPHA
-#define V_RELEASE alpha
-#endif
-#if PY_RELEASE_LEVEL == PY_RELEASE_LEVEL_BETA
-#define V_RELEASE beta
-#endif
-#ifndef V_RELEASE
-#define V_RELEASE final
-#endif
-
-resource 'vers' (1) {
-       PY_MAJOR_VERSION,
-       (PY_MINOR_VERSION<<4) | (PY_MICRO_VERSION),
-       V_RELEASE,
-       PY_RELEASE_SERIAL,
-       0,
-       PY_VERSION,
-       $$Format("%s, Â© Stichting Mathematisch Centrum %s",
-                       PY_VERSION, $$Date)
-};
diff --git a/Mac/Tools/IDE/MacPrefs.py b/Mac/Tools/IDE/MacPrefs.py
deleted file mode 100644 (file)
index f8888fc..0000000
+++ /dev/null
@@ -1,107 +0,0 @@
-import macfs
-import marshal
-import types
-
-from MACFS import kOnSystemDisk
-
-class PrefObject:
-       
-       def __init__(self, dict = None):
-               if dict == None:
-                       self._prefsdict = {}
-               else:
-                       self._prefsdict = dict
-       
-       def __len__(self):
-               return len(self._prefsdict)
-       
-       def __delattr__(self, attr):
-               if self._prefsdict.has_key(attr):
-                       del self._prefsdict[attr]
-               else:
-                       raise AttributeError, 'delete non-existing instance attribute'
-       
-       def __getattr__(self, attr):
-               if attr == '__members__':
-                       keys = self._prefsdict.keys()
-                       keys.sort()
-                       return keys
-               try:
-                       return self._prefsdict[attr]
-               except KeyError:
-                       raise AttributeError, attr
-       
-       def __setattr__(self, attr, value):
-               if attr[0] <> '_':
-                       self._prefsdict[attr] = value
-               else:
-                       self.__dict__[attr] = value
-       
-       def getprefsdict(self):
-               return self._prefsdict
-
-
-class PrefFile(PrefObject):
-       
-       def __init__(self, path, creator = 'Pyth'):
-               # Find the preferences folder and our prefs file, create if needed.
-               self.__path = path
-               self.__creator = creator
-               self._prefsdict = {}
-               try:
-                       prefdict = marshal.load(open(self.__path, 'rb'))
-               except IOError:
-                       pass
-               else:
-                       for key, value in prefdict.items():
-                               if type(value) == types.DictType:
-                                       self._prefsdict[key] = PrefObject(value)
-                               else:
-                                       self._prefsdict[key] = value
-       
-       def save(self):
-               prefdict = {}
-               for key, value in self._prefsdict.items():
-                       if type(value) == types.InstanceType:
-                               prefdict[key] = value.getprefsdict()
-                               if not prefdict[key]:
-                                       del prefdict[key]
-                       else:
-                               prefdict[key] = value
-               marshal.dump(prefdict, open(self.__path, 'wb'))
-               fss = macfs.FSSpec(self.__path)
-               fss.SetCreatorType(self.__creator, 'pref')
-       
-       def __getattr__(self, attr):
-               if attr == '__members__':
-                       keys = self._prefsdict.keys()
-                       keys.sort()
-                       return keys
-               try:
-                       return self._prefsdict[attr]
-               except KeyError:
-                       if attr[0] <> '_':
-                               self._prefsdict[attr] = PrefObject()
-                               return self._prefsdict[attr]
-                       else:
-                               raise AttributeError, attr
-
-
-_prefscache = {}
-
-def GetPrefs(prefname, creator = 'Pyth'):
-       import macostools, os
-       if _prefscache.has_key(prefname):
-               return _prefscache[prefname]
-       # Find the preferences folder and our prefs file, create if needed.
-       vrefnum, dirid = macfs.FindFolder(kOnSystemDisk, 'pref', 0)
-       prefsfolder_fss = macfs.FSSpec((vrefnum, dirid, ''))
-       prefsfolder = prefsfolder_fss.as_pathname()
-       path = os.path.join(prefsfolder, prefname)
-       head, tail = os.path.split(path)
-       # make sure the folder(s) exist
-       macostools.mkdirs(head)
-       
-       preffile = PrefFile(path, creator)
-       _prefscache[prefname] = preffile
-       return preffile
diff --git a/Mac/Tools/IDE/ModuleBrowser.py b/Mac/Tools/IDE/ModuleBrowser.py
deleted file mode 100644 (file)
index 454c099..0000000
+++ /dev/null
@@ -1,178 +0,0 @@
-import W
-import sys
-import Qd
-
-__version__ = "0.2"
-__author__ = "jvr"
-
-class _modulebrowser:
-       
-       def __init__(self):
-               self.editmodules = []
-               self.modules = []
-               self.window = W.Window((194, 1000), "Module Browser", minsize = (194, 160), maxsize = (340, 20000))
-               
-               #self.window.bevelbox = W.BevelBox((0, 0, 0, 56))
-               self.window.openbutton = W.Button((10, 8, 80, 16), "Open", self.openbuttonhit)
-               self.window.browsebutton = W.Button((100, 8, 80, 16), "Browse\8a", self.browsebuttonhit)
-               self.window.reloadbutton = W.Button((10, 32, 80, 16), "Reload", self.reloadbuttonhit)
-               self.window.openotherbutton = W.Button((100, 32, 80, 16), "Open other\8a", self.openother)
-               
-               self.window.openbutton.enable(0)
-               self.window.reloadbutton.enable(0)
-               self.window.browsebutton.enable(0)
-               self.window.setdefaultbutton(self.window.browsebutton)
-               
-               self.window.bind("cmdr", self.window.reloadbutton.push)
-               self.window.bind("cmdb", self.window.browsebutton.push)
-       
-               self.window.bind("<activate>", self.activate)
-               self.window.bind("<close>", self.close)
-               
-               self.window.list = W.List((-1, 56, 1, -14), [], self.listhit)
-               
-               self.window.open()
-               self.checkbuttons()
-       
-       def close(self):
-               global _browser
-               _browser = None
-       
-       def activate(self, onoff):
-               if onoff:
-                       self.makelist()
-               
-       def listhit(self, isdbl):
-               self.checkbuttons()
-               if isdbl:
-                       if self.window._defaultbutton:
-                               self.window._defaultbutton.push()
-       
-       def checkbuttons(self):
-               sel = self.window.list.getselection()
-               if sel:
-                       for i in sel:
-                               if self.editmodules[i]:
-                                       self.window.openbutton.enable(1)
-                                       self.window.reloadbutton.enable(1)
-                                       self.window.setdefaultbutton(self.window.openbutton)
-                                       break
-                       else:
-                               self.window.openbutton.enable(0)
-                               self.window.reloadbutton.enable(0)
-                               self.window.setdefaultbutton(self.window.browsebutton)
-                       self.window.browsebutton.enable(1)
-               else:
-                       #self.window.setdefaultbutton(self.window.browsebutton)
-                       self.window.openbutton.enable(0)
-                       self.window.reloadbutton.enable(0)
-                       self.window.browsebutton.enable(0)
-       
-       def openbuttonhit(self):
-               import imp
-               sel = self.window.list.getselection()
-               W.SetCursor("watch")
-               for i in sel:
-                       modname = self.window.list[i]
-                       try:
-                               self.openscript(sys.modules[modname].__file__, modname)
-                       except IOError:
-                               try:
-                                       file, path, description = imp.find_module(modname)
-                               except ImportError:
-                                       W.SetCursor("arrow")
-                                       W.Message("Can¹t find file for module Â³%s²." 
-                                                       % modname)
-                               else:
-                                       self.openscript(path, modname)                                  
-       
-       def openscript(self, path, modname):
-               import os
-               if path[-3:] == '.py':
-                       W.getapplication().openscript(path, modname=modname)
-               elif path[-4:] in ['.pyc', '.pyo']:
-                       W.getapplication().openscript(path[:-1], modname=modname)
-               else:
-                       W.Message("Can¹t edit Â³%s²; it might be a shared library or a .pyc file." 
-                                       % modname)
-       
-       def openother(self):
-               import imp
-               import EasyDialogs
-               
-               modname = EasyDialogs.AskString("Open module:")
-               if modname:
-                       try:
-                               file, path, description = imp.find_module(modname)
-                       except ImportError:
-                               if modname in sys.builtin_module_names:
-                                       alerttext = "³%s² is a builtin module, which you can¹t edit." % modname
-                               else:
-                                       alerttext = "No module named Â³%s²." % modname
-                               raise W.AlertError, alerttext
-                       self.openscript(path, modname)
-       
-       def reloadbuttonhit(self):
-               sel = self.window.list.getselection()
-               W.SetCursor("watch")
-               for i in sel:
-                       mname = self.window.list[i]
-                       m = sys.modules[mname]
-                       # Set the __name__ attribute of the module to its real name.
-                       # reload() complains if it's __main__, which is true
-                       # when it recently has been run as a script with "Run as __main__" 
-                       # enabled.
-                       m.__name__ = mname
-                       reload(m)
-       
-       def browsebuttonhit(self):
-               sel = self.window.list.getselection()
-               if not sel:
-                       return
-               import PyBrowser
-               for i in sel:
-                       PyBrowser.Browser(sys.modules[self.window.list[i]])
-       
-       def makelist(self):
-               editmodules, modules = getmoduleslist()
-               if modules == self.modules:
-                       return
-               self.editmodules, self.modules = editmodules, modules
-               self.window.list.setdrawingmode(0)
-               sel = self.window.list.getselectedobjects()
-               self.window.list.set(self.modules)
-               self.window.list.setselectedobjects(sel)
-               self.window.list.setdrawingmode(1)
-
-
-def getmoduleslist():
-       import PyBrowser        # for caselesssort function
-       moduleitems = sys.modules.items()
-       moduleitems = filter(lambda (name, module): module is not None, moduleitems)
-       modules = map(lambda (name, module): name, moduleitems)
-       modules = PyBrowser.caselesssort(modules)
-       editmodules = []
-       sysmodules = sys.modules
-       modulesappend = editmodules.append
-       for m in modules:
-               module = sysmodules[m]
-               try:
-                       if sysmodules[m].__file__[-3:] == '.py' or \
-                                       sysmodules[m].__file__[-4:] in ['.pyc', '.pyo']:
-                               modulesappend(1)
-                       else:
-                               modulesappend(0)
-               except AttributeError:
-                       modulesappend(0)
-       return editmodules, modules
-       
-       
-
-_browser = None
-
-def ModuleBrowser():
-       global _browser
-       if _browser is not None:
-               _browser.window.select()
-       else:
-               _browser = _modulebrowser()
diff --git a/Mac/Tools/IDE/PyBrowser.py b/Mac/Tools/IDE/PyBrowser.py
deleted file mode 100644 (file)
index 9eaa809..0000000
+++ /dev/null
@@ -1,442 +0,0 @@
-import W
-import Wkeys
-import struct
-import string
-import types
-import re
-
-nullid = '\0\0'
-closedid = struct.pack('h', 468)
-openid = struct.pack('h', 469)
-closedsolidid = struct.pack('h', 470)
-opensolidid = struct.pack('h', 471)
-
-arrows = (nullid, closedid, openid, closedsolidid, opensolidid)
-
-has_ctlcharsRE = re.compile('[\000-\037\177-\377]')
-def ctlcharsREsearch(str):
-       if has_ctlcharsRE.search(str) is None:
-               return -1
-       return 1
-       
-def double_repr(key, value, truncvalue = 0, 
-                       type = type, StringType = types.StringType,
-                       has_ctlchars = ctlcharsREsearch, _repr = repr, str = str):
-       if type(key) == StringType and has_ctlchars(key) < 0:
-               key = str(key)
-       else:
-               key = _repr(key)
-       if key == '__builtins__':
-               value = "<" + type(value).__name__ + " '__builtin__'>"
-       elif key == '__return__':
-               # bleh, when returning from a class codeblock we get infinite recursion in repr. 
-               # Use safe repr instead.
-               import repr
-               value = repr.repr(value)
-       else:
-               try:
-                       value = _repr(value)
-                       '' + value      # test to see if it is a string, in case a __repr__ method is buggy
-               except:
-                       value = '\80\80\80 exception in repr()'
-       if truncvalue:
-               return key + '\t' + value[:255]
-       return key + '\t' + value
-
-
-class BrowserWidget(W.List):
-       
-       LDEF_ID = 471
-       
-       def __init__(self, possize, object = None, col = 100, closechildren = 0):
-               W.List.__init__(self, possize, callback = self.listhit)
-               self.object = (None,)
-               self.indent = 16
-               self.lastmaxindent = 0
-               self.closechildren = closechildren
-               self.children = []
-               self.mincol = 64
-               self.setcolumn(col)
-               self.bind('return', self.openselection)
-               self.bind('enter', self.openselection)
-               if object is not None:
-                       self.set(object)
-       
-       def set(self, object):
-               if self.object[0] is not object:
-                       self.object = object,
-                       self[:] = self.unpack(object, 0)
-               elif self._parentwindow is not None and self._parentwindow.wid:
-                       self.update()
-       
-       def unpack(self, object, indent):
-               return unpack_object(object, indent)
-       
-       def update(self):
-               # for now...
-               W.SetCursor('watch')
-               self.setdrawingmode(0)
-               sel = self.getselectedobjects()
-               fold = self.getunfoldedobjects()
-               topcell = self.gettopcell()
-               self[:] = self.unpack(self.object[0], 0)
-               self.unfoldobjects(fold)
-               self.setselectedobjects(sel)
-               self.settopcell(topcell)
-               self.setdrawingmode(1)
-       
-       def setcolumn(self, col):
-               self.col = col
-               self.colstr = struct.pack('h', col)
-               if self._list:
-                       sel = self.getselection()
-                       self.setitems(self.items)
-                       self.setselection(sel)
-       
-       def key(self, char, event):
-               if char in (Wkeys.leftarrowkey, Wkeys.rightarrowkey):
-                       sel = self.getselection()
-                       sel.reverse()
-                       self.setdrawingmode(0)
-                       for index in sel:
-                               self.fold(index, char == Wkeys.rightarrowkey)
-                       self.setdrawingmode(1)
-               else:
-                       W.List.key(self, char, event)
-       
-       def rollover(self, (x, y), onoff):
-               if onoff:
-                       if self.incolumn((x, y)):
-                               W.SetCursor('hmover')
-                       else:
-                               W.SetCursor('arrow')
-       
-       def inarrow(self, (x, y)):
-               cl, ct, cr, cb = self._list.LRect((0, 0))
-               l, t, r, b = self._bounds
-               if (x - cl) < 16:
-                       cellheight = cb - ct
-                       index = (y - ct) / cellheight
-                       if index < len(self.items):
-                               return 1, index
-               return None, None
-       
-       def incolumn(self, (x, y)):
-               l, t, r, b = self._list.LRect((0, 0))
-               abscol = l + self.col
-               return abs(abscol - x) < 3
-       
-       def trackcolumn(self, (x, y)):
-               import Qd, QuickDraw, Evt
-               self.SetPort()
-               l, t, r, b = self._bounds
-               bounds = l, t, r, b = l + 1, t + 1, r - 16, b - 1
-               abscol = l + self.col
-               mincol = l + self.mincol
-               maxcol = r - 10
-               diff = abscol - x
-               Qd.PenPat('\000\377\000\377\000\377\000\377')
-               Qd.PenMode(QuickDraw.srcXor)
-               rect = abscol - 1, t, abscol, b
-               Qd.PaintRect(rect)
-               lastpoint = (x, y)
-               newcol = -1
-               #W.SetCursor('fist')
-               while Evt.Button():
-                       (x, y) = Evt.GetMouse()
-                       if (x, y) <> lastpoint:
-                               newcol = x + diff
-                               newcol = max(newcol, mincol)
-                               newcol = min(newcol, maxcol)
-                               Qd.PaintRect(rect)
-                               rect = newcol - 1, t, newcol, b
-                               Qd.PaintRect(rect)
-                               lastpoint = (x, y)
-               Qd.PaintRect(rect)
-               Qd.PenPat(Qd.qd.black)
-               Qd.PenNormal()
-               if newcol > 0 and newcol <> abscol:
-                       self.setcolumn(newcol - l)
-       
-       def click(self, point, modifiers):
-               if point == (-1, -1):   # gross.
-                       W.List.click(self, point ,modifiers)
-                       return
-               hit, index = self.inarrow(point)
-               if hit:
-                       (key, value, arrow, indent) = self.items[index]
-                       self.fold(index, arrow == 1)
-               elif self.incolumn(point):
-                       self.trackcolumn(point)
-               else:
-                       W.List.click(self, point, modifiers)
-       
-       # for W.List.key
-       def findmatch(self, tag):
-               lower = string.lower
-               items = self.items
-               taglen = len(tag)
-               match = '\377' * 100
-               match_i = -1
-               for i in range(len(items)):
-                       item = lower(str(items[i][0]))
-                       if tag <= item < match:
-                               match = item
-                               match_i = i
-               if match_i >= 0:
-                       return match_i
-               else:
-                       return len(items) - 1
-       
-       def close(self):
-               if self.closechildren:
-                       for window in self.children:
-                               window.close()
-               self.children = []
-               W.List.close(self)
-       
-       def fold(self, index, onoff):
-               (key, value, arrow, indent) = self.items[index]
-               if arrow == 0 or (onoff and arrow == 2) or (not onoff and arrow == 1):
-                       return
-               W.SetCursor('watch')
-               topcell = self.gettopcell()
-               if onoff:
-                       self[index] = (key, value, 4, indent)
-                       self.setdrawingmode(0)
-                       self[index+1:index+1] = self.unpack(value, indent + 1)
-                       self[index] = (key, value, 2, indent)
-               else:
-                       self[index] = (key, value, 3, indent)
-                       self.setdrawingmode(0)
-                       count = 0
-                       for i in range(index + 1, len(self.items)):
-                               (dummy, dummy, dummy, subindent) = self.items[i]
-                               if subindent <= indent:
-                                       break
-                               count = count + 1
-                       self[index+1:index+1+count] = []
-                       self[index] = (key, value, 1, indent)
-               maxindent = self.getmaxindent()
-               if maxindent <> self.lastmaxindent:
-                       newabsindent = self.col + (maxindent - self.lastmaxindent) * self.indent
-                       if newabsindent >= self.mincol:
-                               self.setcolumn(newabsindent)
-                       self.lastmaxindent = maxindent
-               self.settopcell(topcell)
-               self.setdrawingmode(1)
-       
-       def unfoldobjects(self, objects):
-               for obj in objects:
-                       try:
-                               index = self.items.index(obj)
-                       except ValueError:
-                               pass
-                       else:
-                               self.fold(index, 1)
-       
-       def getunfoldedobjects(self):
-               curindent = 0
-               objects = []
-               for index in range(len(self.items)):
-                       (key, value, arrow, indent) = self.items[index]
-                       if indent > curindent:
-                               (k, v, a, i) = self.items[index - 1]
-                               objects.append((k, v, 1, i))
-                               curindent = indent
-                       elif indent < curindent:
-                               curindent = indent
-               return objects
-       
-       def listhit(self, isdbl):
-               if isdbl:
-                       self.openselection()
-       
-       def openselection(self):
-               import os
-               sel = self.getselection()
-               for index in sel:
-                       (key, value, arrow, indent) = self[index]
-                       if arrow:
-                               self.children.append(Browser(value))
-                       elif type(value) == types.StringType and '\0' not in value:
-                               editor = self._parentwindow.parent.getscript(value)
-                               if editor:
-                                       editor.select()
-                                       return
-                               elif os.path.exists(value) and os.path.isfile(value):
-                                       import macfs
-                                       fss = macfs.FSSpec(value)
-                                       if fss.GetCreatorType()[1] == 'TEXT':
-                                               W.getapplication().openscript(value)
-       
-       def itemrepr(self, (key, value, arrow, indent), str = str, double_repr = double_repr, 
-                       arrows = arrows, pack = struct.pack):
-               arrow = arrows[arrow]
-               return arrow + pack('h', self.indent * indent) + self.colstr + \
-                               double_repr(key, value, 1)
-       
-       def getmaxindent(self, max = max):
-               maxindent = 0
-               for item in self.items:
-                       maxindent = max(maxindent, item[3])
-               return maxindent
-       
-       def domenu_copy(self, *args):
-               sel = self.getselectedobjects()
-               selitems = []
-               for key, value, dummy, dummy in sel:
-                       selitems.append(double_repr(key, value))
-               text = string.join(selitems, '\r')
-               if text:
-                       import Scrap
-                       Scrap.ZeroScrap()
-                       Scrap.PutScrap('TEXT', text)
-
-
-class Browser:
-       
-       def __init__(self, object = None, title = None, closechildren = 0):
-               if hasattr(object, '__name__'):
-                       name = object.__name__
-               else:
-                       name = ''
-               if title is None:
-                       title = 'Object browser'
-                       if name:
-                               title = title + ': ' + name
-               self.w = w = W.Window((300, 400), title, minsize = (100, 100))
-               w.info = W.TextBox((18, 8, -70, 15))
-               w.updatebutton = W.Button((-64, 4, 50, 16), 'Update', self.update)
-               w.browser = BrowserWidget((-1, 24, 1, -14), None)
-               w.bind('cmdu', w.updatebutton.push)
-               w.open()
-               self.set(object, name)
-       
-       def close(self):
-               if self.w.wid:
-                       self.w.close()
-       
-       def set(self, object, name = ''):
-               W.SetCursor('watch')
-               tp = type(object).__name__
-               try:
-                       length = len(object)
-               except:
-                       length = -1
-               if not name and hasattr(object, '__name__'):
-                       name = object.__name__
-               if name:
-                       info = name + ': ' + tp
-               else:
-                       info = tp
-               if length >= 0:
-                       if length == 1:
-                               info = info + ' (%d element)' % length
-                       else:
-                               info = info + ' (%d elements)' % length
-               self.w.info.set(info)
-               self.w.browser.set(object)
-       
-       def update(self):
-               self.w.browser.update()
-
-
-SIMPLE_TYPES = (
-       types.NoneType,
-       types.IntType,
-       types.LongType,
-       types.FloatType,
-       types.ComplexType,
-       types.StringType
-)
-
-INDEXING_TYPES = (
-       types.TupleType,
-       types.ListType,
-       types.DictionaryType
-)
-
-def unpack_object(object, indent = 0):
-       tp = type(object)
-       if tp in SIMPLE_TYPES and tp is not types.NoneType:
-               raise TypeError, 'can¹t browse simple type: %s' % tp.__name__
-       elif tp == types.DictionaryType:
-               return unpack_dict(object, indent)
-       elif tp in (types.TupleType, types.ListType):
-               return unpack_sequence(object, indent)
-       elif tp == types.InstanceType:
-               return unpack_instance(object, indent)
-       elif tp == types.ClassType:
-               return unpack_class(object, indent)
-       elif tp == types.ModuleType:
-               return unpack_dict(object.__dict__, indent)
-       else:
-               return unpack_other(object, indent)
-
-def unpack_sequence(seq, indent = 0):
-       items = map(None, range(len(seq)), seq)
-       items = map(lambda (k, v), type = type, simp = SIMPLE_TYPES, indent = indent: 
-                               (k, v, not type(v) in simp, indent), items)
-       return items
-
-def unpack_dict(dict, indent = 0):
-       items = dict.items()
-       return pack_items(items, indent)
-
-def unpack_instance(inst, indent = 0):
-       if hasattr(inst, '__pybrowse_unpack__'):
-               return unpack_object(inst.__pybrowse_unpack__(), indent)
-       else:
-               items = [('__class__', inst.__class__)] + inst.__dict__.items()
-               return pack_items(items, indent)
-
-def unpack_class(clss, indent = 0):
-       items = [('__bases__', clss.__bases__), ('__name__', clss.__name__)] + clss.__dict__.items()
-       return pack_items(items, indent)
-
-def unpack_other(object, indent = 0):
-       attrs = []
-       if hasattr(object, '__members__'):
-               attrs = attrs + object.__members__
-       if hasattr(object, '__methods__'):
-               attrs = attrs + object.__methods__
-       items = []
-       for attr in attrs:
-               items.append((attr, getattr(object, attr)))
-       return pack_items(items, indent)
-
-def pack_items(items, indent = 0):
-       items = map(lambda (k, v), type = type, simp = SIMPLE_TYPES, indent = indent: 
-                               (k, v, not type(v) in simp, indent), 
-                       items)
-       return tuple_caselesssort(items)
-
-def caselesssort(alist):
-       """Return a sorted copy of a list. If there are only strings in the list, 
-       it will not consider case"""
-       
-       try:
-               # turn ['FOO',  'aaBc', 'ABcD'] into [('foo', 'FOO'), ('aabc', 'aaBc'), ('abcd', 'ABcD')], if possible
-               tupledlist = map(lambda item, lower = string.lower: (lower(item), item), alist)
-       except TypeError:
-               # at least one element in alist is not a string, proceed the normal way...
-               alist = alist[:]
-               alist.sort()
-               return alist
-       else:
-               tupledlist.sort()
-               # turn [('aabc', 'aaBc'), ('abcd', 'ABcD'), ('foo', 'FOO')] into ['aaBc', 'ABcD', 'FOO']
-               return map(lambda x: x[1], tupledlist)
-
-def tuple_caselesssort(items):
-       try:
-               tupledlist = map(lambda tuple, lower = string.lower: (lower(tuple[0]), tuple), items)
-       except (AttributeError, TypeError):
-               items = items[:]
-               items.sort()
-               return items
-       else:
-               tupledlist.sort()
-               return map(lambda (low, tuple): tuple, tupledlist)
-
diff --git a/Mac/Tools/IDE/PyConsole.py b/Mac/Tools/IDE/PyConsole.py
deleted file mode 100644 (file)
index 5276131..0000000
+++ /dev/null
@@ -1,380 +0,0 @@
-import W
-import Wkeys
-import Fm
-import WASTEconst
-from types import *
-import Events
-import string
-import sys
-import traceback
-import MacOS
-import MacPrefs
-import Qd
-import PyInteractive
-
-if not hasattr(sys, 'ps1'):
-       sys.ps1 = '>>> '
-if not hasattr(sys, 'ps2'):
-       sys.ps2 = '... '
-
-def inspect(foo):                      # JJS 1/25/99
-       "Launch the browser on the given object.  This is a general built-in function."
-       import PyBrowser
-       PyBrowser.Browser(foo)
-
-class ConsoleTextWidget(W.EditText):
-       
-       def __init__(self, *args, **kwargs):
-               apply(W.EditText.__init__, (self,) + args, kwargs)
-               self._inputstart = 0
-               self._buf = ''
-               self.pyinteractive = PyInteractive.PyInteractive()
-       
-               import __main__
-               self._namespace = __main__.__dict__
-               self._namespace['inspect'] = inspect                    # JJS 1/25/99
-       
-       def insert(self, text):
-               self.checkselection()
-               self.ted.WEInsert(text, None, None)
-               self.changed = 1
-               self.selchanged = 1
-       
-       def set_namespace(self, dict):
-               if type(dict) <> DictionaryType:
-                       raise TypeError, "The namespace needs to be a dictionary"
-               if 'inspect' not in dict.keys(): dict['inspect'] = inspect                      # JJS 1/25/99
-               self._namespace = dict
-       
-       def open(self):
-               W.EditText.open(self)
-               self.write('Python ' + sys.version + '\n' + sys.copyright + '\n')
-               self.write(sys.ps1)
-               self.flush()
-       
-       def key(self, char, event):
-               (what, message, when, where, modifiers) = event
-               if self._enabled and not modifiers & Events.cmdKey or char in Wkeys.arrowkeys:
-                       if char not in Wkeys.navigationkeys:
-                               self.checkselection()
-                       if char == Wkeys.enterkey:
-                               char = Wkeys.returnkey
-                       selstart, selend = self.getselection()
-                       if char == Wkeys.backspacekey:
-                               if selstart <= (self._inputstart - (selstart <> selend)):
-                                       return
-                       self.ted.WEKey(ord(char), modifiers)
-                       if char not in Wkeys.navigationkeys:
-                               self.changed = 1
-                       if char not in Wkeys.scrollkeys:
-                               self.selchanged = 1
-                       self.updatescrollbars()
-                       if char == Wkeys.returnkey:
-                               text = self.get()[self._inputstart:selstart]
-                               text = string.join(string.split(text, "\r"), "\n")
-                               saveyield = MacOS.EnableAppswitch(0)
-                               self.pyinteractive.executeline(text, self, self._namespace)
-                               MacOS.EnableAppswitch(saveyield)
-                               selstart, selend = self.getselection()
-                               self._inputstart = selstart
-       
-       def domenu_save_as(self, *args):
-               import macfs
-               fss, ok = macfs.StandardPutFile('Save console text as:', 'console.txt')
-               if not ok:
-                       return
-               f = open(fss.as_pathname(), 'wb')
-               f.write(self.get())
-               f.close()
-               fss.SetCreatorType(W._signature, 'TEXT')
-       
-       def write(self, text):
-               self._buf = self._buf + text
-               if '\n' in self._buf:
-                       self.flush()
-       
-       def flush(self):
-               stuff = string.split(self._buf, '\n')
-               stuff = string.join(stuff, '\r')
-               self.setselection_at_end()
-               self.ted.WEInsert(stuff, None, None)
-               selstart, selend = self.getselection()
-               self._inputstart = selstart
-               self._buf = ""
-               self.ted.WEClearUndo()
-               self.updatescrollbars()
-       
-       def selection_ok(self):
-               selstart, selend = self.getselection()
-               return not (selstart < self._inputstart or selend < self._inputstart)
-       
-       def checkselection(self):
-               if not self.selection_ok():
-                       self.setselection_at_end()
-       
-       def setselection_at_end(self):
-               end = self.ted.WEGetTextLength()
-               self.setselection(end, end)
-               self.updatescrollbars()
-               
-       def domenu_cut(self, *args):
-               if not self.selection_ok():
-                       return
-               W.EditText.domenu_cut(self)
-       
-       def domenu_paste(self, *args):
-               if not self.selection_ok():
-                       self.setselection_at_end()
-               W.EditText.domenu_paste(self)
-       
-       def domenu_clear(self, *args):
-               if not self.selection_ok():
-                       return
-               W.EditText.domenu_clear(self)
-
-
-class PyConsole(W.Window):
-       
-       def __init__(self, bounds, show = 1, fontsettings = ("Monaco", 0, 9, (0, 0, 0)), 
-                       tabsettings = (32, 0), unclosable = 0):
-               W.Window.__init__(self,
-                                       bounds, 
-                                       "Python Interactive", 
-                                       minsize = (200, 100), 
-                                       tabbable = 0, 
-                                       show = show)
-               
-               self._unclosable = unclosable
-               consoletext = ConsoleTextWidget((-1, -1, -14, 1), inset = (6, 5), 
-                               fontsettings = fontsettings, tabsettings = tabsettings)
-               self._bary = W.Scrollbar((-15, 14, 16, -14), consoletext.vscroll, max = 32767)
-               self.consoletext = consoletext
-               self.namespacemenu = W.PopupMenu((-15, -1, 16, 16), [], self.consoletext.set_namespace)
-               self.namespacemenu.bind('<click>', self.makenamespacemenu)
-               self.open()
-       
-       def makenamespacemenu(self, *args):
-               W.SetCursor('watch')
-               namespacelist = self.getnamespacelist()
-               self.namespacemenu.set([("Clear window", self.clearbuffer), ("Font settings\8a", self.dofontsettings), 
-                               ["Namespace"] + namespacelist, ("Browse namespace\8a", self.browsenamespace)])
-               currentname = self.consoletext._namespace["__name__"]
-               for i in range(len(namespacelist)):
-                       if namespacelist[i][0] == currentname:
-                               break
-               else:
-                       return
-               # XXX this functionality should be generally available in Wmenus
-               submenuid = self.namespacemenu.menu.menu.GetItemMark(3)
-               menu = self.namespacemenu.menu.bar.menus[submenuid]
-               menu.menu.CheckMenuItem(i + 1, 1)
-       
-       def browsenamespace(self):
-               import PyBrowser, W
-               W.SetCursor('watch')
-               PyBrowser.Browser(self.consoletext._namespace, self.consoletext._namespace["__name__"])
-       
-       def clearbuffer(self):
-               import Res
-               self.consoletext.ted.WEUseText(Res.Resource(''))
-               self.consoletext.write(sys.ps1)
-               self.consoletext.flush()
-       
-       def getnamespacelist(self):
-               import os
-               import __main__
-               editors = filter(lambda x: x.__class__.__name__ == "Editor", self.parent._windows.values())
-               
-               namespaces = [ ("__main__",__main__.__dict__) ]
-               for ed in editors:
-                       modname = os.path.splitext(ed.title)[0]
-                       if sys.modules.has_key(modname):
-                               module = sys.modules[modname] 
-                               namespaces.append((modname, module.__dict__))
-                       else:
-                               if ed.title[-3:] == '.py':
-                                       modname = ed.title[:-3]
-                               else:
-                                       modname = ed.title
-                               ed.globals["__name__"] = modname
-                               namespaces.append((modname, ed.globals))
-               return namespaces
-       
-       def dofontsettings(self):
-               import FontSettings
-               settings = FontSettings.FontDialog(self.consoletext.getfontsettings(),
-                               self.consoletext.gettabsettings())
-               if settings:
-                       fontsettings, tabsettings = settings
-                       self.consoletext.setfontsettings(fontsettings)
-                       self.consoletext.settabsettings(tabsettings)
-       
-       def show(self, onoff = 1):
-               W.Window.show(self, onoff)
-               if onoff:
-                       self.select()
-       
-       def close(self):
-               if self._unclosable:
-                       self.show(0)
-                       return -1
-               W.Window.close(self)
-       
-       def writeprefs(self):
-               prefs = MacPrefs.GetPrefs(W.getapplication().preffilepath)
-               prefs.console.show = self.isvisible()
-               prefs.console.windowbounds = self.getbounds()
-               prefs.console.fontsettings = self.consoletext.getfontsettings()
-               prefs.console.tabsettings = self.consoletext.gettabsettings()
-               prefs.save()
-
-
-class OutputTextWidget(W.EditText):
-       
-       def domenu_save_as(self, *args):
-               title = self._parentwindow.gettitle()
-               import macfs
-               fss, ok = macfs.StandardPutFile('Save %s text as:' % title, title + '.txt')
-               if not ok:
-                       return
-               f = open(fss.as_pathname(), 'wb')
-               f.write(self.get())
-               f.close()
-               fss.SetCreatorType(W._signature, 'TEXT')
-       
-
-class PyOutput:
-       
-       def __init__(self, bounds, show = 1, fontsettings = ("Monaco", 0, 9, (0, 0, 0)), tabsettings = (32, 0)):
-               self.bounds = bounds
-               self.fontsettings = fontsettings
-               self.tabsettings = tabsettings
-               self.w = None
-               self.closed = 1
-               self._buf = ''
-               # should be able to set this
-               self.savestdout, self.savestderr = sys.stdout, sys.stderr
-               sys.stderr = sys.stdout = self
-               if show:
-                       self.show()
-       
-       def setupwidgets(self):
-               self.w = W.Window(self.bounds, "Output", 
-                               minsize = (200, 100), 
-                               tabbable = 0)
-               self.w.outputtext = OutputTextWidget((-1, -1, -14, 1), inset = (6, 5), 
-                               fontsettings = self.fontsettings, tabsettings = self.tabsettings, readonly = 1)
-               menuitems = [("Clear window", self.clearbuffer), ("Font settings\8a", self.dofontsettings)]
-               self.w.popupmenu = W.PopupMenu((-15, -1, 16, 16), menuitems)
-               
-               self.w._bary = W.Scrollbar((-15, 14, 16, -14), self.w.outputtext.vscroll, max = 32767)
-               self.w.bind("<close>", self.close)
-               self.w.bind("<activate>", self.activate)
-       
-       def write(self, text):
-               oldyield = MacOS.EnableAppswitch(-1)
-               try:
-                       self._buf = self._buf + text
-                       if '\n' in self._buf:
-                               self.flush()
-               finally:
-                       MacOS.EnableAppswitch(oldyield)
-       
-       def flush(self):
-               self.show()
-               stuff = string.split(self._buf, '\n')
-               stuff = string.join(stuff, '\r')
-               end = self.w.outputtext.ted.WEGetTextLength()
-               self.w.outputtext.setselection(end, end)
-               self.w.outputtext.ted.WEFeatureFlag(WASTEconst.weFReadOnly, 0)
-               self.w.outputtext.ted.WEInsert(stuff, None, None)
-               self._buf = ""
-               self.w.outputtext.updatescrollbars()
-               self.w.outputtext.ted.WEFeatureFlag(WASTEconst.weFReadOnly, 1)
-       
-       def show(self):
-               if self.closed:
-                       if not self.w:
-                               self.setupwidgets()
-                               self.w.open()
-                               self.w.outputtext.updatescrollbars()
-                               self.closed = 0
-                       else:
-                               self.w.show(1)
-                               self.closed = 0
-                               self.w.select()
-       
-       def writeprefs(self):
-               if self.w is not None:
-                       prefs = MacPrefs.GetPrefs(W.getapplication().preffilepath)
-                       prefs.output.show = self.w.isvisible()
-                       prefs.output.windowbounds = self.w.getbounds()
-                       prefs.output.fontsettings = self.w.outputtext.getfontsettings()
-                       prefs.output.tabsettings = self.w.outputtext.gettabsettings()
-                       prefs.save()
-       
-       def dofontsettings(self):
-               import FontSettings
-               settings = FontSettings.FontDialog(self.w.outputtext.getfontsettings(),
-                               self.w.outputtext.gettabsettings())
-               if settings:
-                       fontsettings, tabsettings = settings
-                       self.w.outputtext.setfontsettings(fontsettings)
-                       self.w.outputtext.settabsettings(tabsettings)
-       
-       def clearbuffer(self):
-               import Res
-               self.w.outputtext.set('')
-       
-       def activate(self, onoff):
-               if onoff:
-                       self.closed = 0
-       
-       def close(self):
-               self.w.show(0)
-               self.closed = 1
-               return -1
-
-
-class SimpleStdin:
-       
-       def readline(self):
-               import EasyDialogs
-               sys.stdout.flush()
-               rv = EasyDialogs.AskString("")
-               if rv is None:
-                       return ""
-               return rv + '\n'
-
-
-def installconsole(defaultshow = 1):
-       global console
-       prefs = MacPrefs.GetPrefs(W.getapplication().preffilepath)
-       if not prefs.console or not hasattr(prefs.console, 'show'):
-               prefs.console.show = defaultshow
-       if not hasattr(prefs.console, "windowbounds"):
-               prefs.console.windowbounds = (450, 250)
-       if not hasattr(prefs.console, "fontsettings"):
-               prefs.console.fontsettings = ("Monaco", 0, 9, (0, 0, 0))
-       if not hasattr(prefs.console, "tabsettings"):
-               prefs.console.tabsettings = (32, 0)
-       console = PyConsole(prefs.console.windowbounds, prefs.console.show, 
-                       prefs.console.fontsettings, prefs.console.tabsettings, 1)
-
-def installoutput(defaultshow = 0, OutPutWindow = PyOutput):
-       global output
-       
-       # quick 'n' dirty std in emulation
-       sys.stdin = SimpleStdin()
-       
-       prefs = MacPrefs.GetPrefs(W.getapplication().preffilepath)
-       if not prefs.output or not hasattr(prefs.output, 'show'):
-               prefs.output.show = defaultshow
-       if not hasattr(prefs.output, "windowbounds"):
-               prefs.output.windowbounds = (450, 250)
-       if not hasattr(prefs.output, "fontsettings"):
-               prefs.output.fontsettings = ("Monaco", 0, 9, (0, 0, 0))
-       if not hasattr(prefs.output, "tabsettings"):
-               prefs.output.tabsettings = (32, 0)
-       output = OutPutWindow(prefs.output.windowbounds, prefs.output.show, 
-                       prefs.output.fontsettings, prefs.output.tabsettings)
diff --git a/Mac/Tools/IDE/PyDebugger.py b/Mac/Tools/IDE/PyDebugger.py
deleted file mode 100644 (file)
index 866bc1b..0000000
+++ /dev/null
@@ -1,887 +0,0 @@
-import sys
-import bdb
-import types
-import os
-
-import W
-import WASTEconst
-import PyBrowser
-import Qd
-import Evt
-import Lists
-import MacOS
-_filenames = {}
-
-SIMPLE_TYPES = (
-       types.NoneType,
-       types.IntType,
-       types.LongType,
-       types.FloatType,
-       types.ComplexType,
-       types.StringType
-)
-
-
-class Debugger(bdb.Bdb):
-       
-       def __init__(self, title = 'Debugger'):
-               bdb.Bdb.__init__(self)
-               self.closed = 1
-               self.title = title
-               self.breaksviewer = None
-               self.reset()
-               self.tracing = 0
-               self.tracingmonitortime = Evt.TickCount()
-               self.editors = {}
-               
-               prefs = W.getapplication().getprefs()
-               if prefs.debugger:
-                       for file, breaks in prefs.debugger.breaks.items():
-                               for b in breaks:
-                                       self.set_break(file, b)
-                       self.bounds, self.horpanes, self.verpanes = prefs.debugger.windowsettings
-                       self.tracemagic = prefs.debugger.tracemagic
-               else:
-                       self.breaks = {}
-                       self.horpanes = (0.4, 0.6)
-                       self.verpanes = (0.3, 0.35, 0.35)
-                       self.bounds = (600, 400)
-                       self.tracemagic = 0
-               self.laststacksel = None
-       
-       def reset(self):
-               self.currentframe = None
-               self.file = None
-               self.laststack = None
-               self.reason = 'Not running'
-               self.continuewithoutdebugger = 0
-               bdb.Bdb.reset(self)
-               self.forget()
-       
-       def start(self, bottomframe = None, running = 0):
-               W.getapplication().DebuggerQuit = bdb.BdbQuit
-               import Menu
-               Menu.HiliteMenu(0)
-               if self.closed:
-                       self.setupwidgets(self.title)
-                       self.closed = 0
-               if not self.w.parent.debugger_quitting:
-                       self.w.select()
-                       raise W.AlertError, 'There is another debugger session busy.'
-               self.reset()
-               self.botframe = bottomframe
-               if running:
-                       self.set_continue()
-                       self.reason = 'Running\8a'
-                       self.setstate('running')
-               else:
-                       self.set_step()
-                       self.reason = 'stopped'
-                       self.setstate('stopped')
-               sys.settrace(self.trace_dispatch)
-       
-       def stop(self):
-               self.set_quit()
-               if self.w.parent:
-                       self.exit_mainloop()
-                       self.resetwidgets()
-       
-       def set_continue_without_debugger(self):
-               sys.settrace(None)
-               self.set_quit()
-               self.clear_tracefuncs()
-               self.continuewithoutdebugger = 1
-               if hasattr(self, "w") and self.w.parent:
-                       self.exit_mainloop()
-                       self.resetwidgets()
-       
-       def clear_tracefuncs(self):
-               try:
-                       raise 'spam'
-               except:
-                       pass
-               frame = sys.exc_traceback.tb_frame
-               while frame is not None:
-                       del frame.f_trace
-                       frame = frame.f_back
-       
-       def postmortem(self, exc_type, exc_value, traceback):
-               if self.closed:
-                       self.setupwidgets(self.title)
-                       self.closed = 0
-               if not self.w.parent.debugger_quitting:
-                       raise W.AlertError, 'There is another debugger session busy.'
-               self.reset()
-               if traceback:
-                       self.botframe = traceback.tb_frame
-                       while traceback.tb_next <> None:
-                               traceback = traceback.tb_next
-                       frame = traceback.tb_frame
-               else:
-                       self.botframe = None
-                       frame = None
-               self.w.panes.bottom.buttons.killbutton.enable(1)
-               self.reason = '(dead) ' + self.formatexception(exc_type, exc_value)
-               self.w.select()
-               self.setup(frame, traceback)
-               self.setstate('dead')
-               self.showstack(self.curindex)
-               self.showframe(self.curindex)
-       
-       def setupwidgets(self, title):
-               self.w = w = W.Window(self.bounds, title, minsize = (500, 300))
-               
-               w.panes = W.HorizontalPanes((8, 4, -8, -8), self.horpanes)
-               
-               w.panes.browserpanes = browserpanes = W.VerticalPanes(None, self.verpanes)
-               
-               browserpanes.stacklist = W.Group(None)
-               browserpanes.stacklist.title = W.TextBox((4, 0, 0, 12), 'Stack')
-               browserpanes.stacklist.stack = W.List((0, 16, 0, 0), callback = self.do_stack, flags = Lists.lOnlyOne)
-               
-               browserpanes.locals = W.Group(None)
-               browserpanes.locals.title = W.TextBox((4, 0, 0, 12), 'Local variables')
-               browserpanes.locals.browser = PyBrowser.BrowserWidget((0, 16, 0, 0))
-               
-               browserpanes.globals = W.Group(None)
-               browserpanes.globals.title = W.TextBox((4, 0, 0, 12), 'Global variables')
-               browserpanes.globals.browser = PyBrowser.BrowserWidget((0, 16, 0, 0))
-               
-               w.panes.bottom = bottom = W.Group(None)
-               bottom.src = src = W.Group((0, 52, 0, 0))
-               source = SourceViewer((1, 1, -15, -15), readonly = 1, debugger = self)
-               src.optionsmenu = W.PopupMenu((-16, 0, 16, 16), [])
-               src.optionsmenu.bind('<click>', self.makeoptionsmenu)
-               
-               src._barx = W.Scrollbar((0, -16, -15, 16), source.hscroll, max = 32767)
-               src._bary = W.Scrollbar((-16, 15, 16, -15), source.vscroll, max = 32767)
-               src.source = source
-               src.frame = W.Frame((0, 0, -15, -15))
-               
-               bottom.tracingmonitor = TracingMonitor((0, 23, 6, 6))
-               bottom.state = W.TextBox((12, 20, 0, 16), self.reason)
-               
-               bottom.srctitle = W.TextBox((12, 36, 0, 14))
-               bottom.buttons = buttons = W.Group((12, 0, 0, 16))
-               
-               buttons.runbutton = W.Button((0, 0, 50, 16), "Run", self.do_run)
-               buttons.stopbutton = W.Button((58, 0, 50, 16), "Stop", self.do_stop)
-               buttons.killbutton = W.Button((116, 0, 50, 16), "Kill", self.do_kill)
-               buttons.line = W.VerticalLine((173, 0, 0, 0))
-               buttons.stepbutton = W.Button((181, 0, 50, 16), "Step", self.do_step)
-               buttons.stepinbutton = W.Button((239, 0, 50, 16), "Step in", self.do_stepin)
-               buttons.stepoutbutton = W.Button((297, 0, 50, 16), "Step out", self.do_stepout)
-               
-               w.bind('cmdr', buttons.runbutton.push)
-               w.bind('cmd.', buttons.stopbutton.push)
-               w.bind('cmdk', buttons.killbutton.push)
-               w.bind('cmds', buttons.stepbutton.push)
-               w.bind('cmdt', buttons.stepinbutton.push)
-               w.bind('cmdu', buttons.stepoutbutton.push)
-               
-               w.bind('<close>', self.close)
-               
-               w.open()
-               w.xxx___select(w.panes.bottom.src.source)
-       
-       def makeoptionsmenu(self):
-               options = [('Clear breakpoints', self.w.panes.bottom.src.source.clearbreakpoints), 
-                               ('Clear all breakpoints', self.clear_all_breaks),
-                               ('Edit breakpoints\8a', self.edit_breaks), '-',
-                               (self.tracemagic and 
-                                       'Disable __magic__ tracing' or 'Enable __magic__ tracing', self.togglemagic)]
-               self.w.panes.bottom.src.optionsmenu.set(options)
-       
-       def edit_breaks(self):
-               if self.breaksviewer:
-                       self.breaksviewer.select()
-               else:
-                       self.breaksviewer = BreakpointsViewer(self)
-       
-       def togglemagic(self):
-               self.tracemagic = not self.tracemagic
-       
-       def setstate(self, state):
-               self.w.panes.bottom.tracingmonitor.reset()
-               self.w.panes.bottom.state.set(self.reason)
-               buttons = self.w.panes.bottom.buttons
-               if state == 'stopped':
-                       buttons.runbutton.enable(1)
-                       buttons.stopbutton.enable(0)
-                       buttons.killbutton.enable(1)
-                       buttons.stepbutton.enable(1)
-                       buttons.stepinbutton.enable(1)
-                       buttons.stepoutbutton.enable(1)
-               elif state == 'running':
-                       buttons.runbutton.enable(0)
-                       buttons.stopbutton.enable(1)
-                       buttons.killbutton.enable(1)
-                       buttons.stepbutton.enable(0)
-                       buttons.stepinbutton.enable(0)
-                       buttons.stepoutbutton.enable(0)
-               elif state == 'idle':
-                       buttons.runbutton.enable(0)
-                       buttons.stopbutton.enable(0)
-                       buttons.killbutton.enable(0)
-                       buttons.stepbutton.enable(0)
-                       buttons.stepinbutton.enable(0)
-                       buttons.stepoutbutton.enable(0)
-               elif state == 'dead':
-                       buttons.runbutton.enable(0)
-                       buttons.stopbutton.enable(0)
-                       buttons.killbutton.enable(1)
-                       buttons.stepbutton.enable(0)
-                       buttons.stepinbutton.enable(0)
-                       buttons.stepoutbutton.enable(0)
-               else:
-                       print 'unknown state:', state
-       
-       def resetwidgets(self):
-               self.reason = ''
-               self.w.panes.bottom.srctitle.set('')
-               self.w.panes.bottom.src.source.set('')
-               self.w.panes.browserpanes.stacklist.stack.set([])
-               self.w.panes.browserpanes.locals.browser.set({})
-               self.w.panes.browserpanes.globals.browser.set({})
-               self.setstate('idle')
-       
-       # W callbacks
-       
-       def close(self):
-               self.set_quit()
-               self.exit_mainloop()
-               self.closed = 1
-               
-               self.unregister_editor(self.w.panes.bottom.src.source, 
-                               self.w.panes.bottom.src.source.file)
-               self.horpanes = self.w.panes.getpanesizes()
-               self.verpanes = self.w.panes.browserpanes.getpanesizes()
-               self.bounds = self.w.getbounds()
-               prefs = W.getapplication().getprefs()
-               prefs.debugger.breaks = self.breaks
-               prefs.debugger.windowsettings = self.bounds, self.horpanes, self.verpanes
-               prefs.debugger.tracemagic = self.tracemagic
-               prefs.save()
-       
-       # stack list callback
-       
-       def do_stack(self, isdbl):
-               sel = self.w.panes.browserpanes.stacklist.stack.getselection()
-               if isdbl:
-                       if sel:
-                               frame, lineno = self.stack[sel[0] + 1]
-                               filename = frame.f_code.co_filename
-                               editor = self.w._parentwindow.parent.openscript(filename, lineno)
-                               if self.breaks.has_key(filename):
-                                       editor.showbreakpoints(1)
-               else:
-                       if sel and sel <> self.laststacksel:
-                               self.showframe(sel[0] + 1)
-                       self.laststacksel = sel
-       
-       def geteditor(self, filename):
-               if filename[:1] == '<' and filename[-1:] == '>':
-                       editor = W.getapplication().getscript(filename[1:-1])
-               else:
-                       editor = W.getapplication().getscript(filename)
-               return editor
-       
-       # button callbacks
-       
-       def do_run(self):
-               self.running()
-               self.set_continue()
-               self.exit_mainloop()
-       
-       def do_stop(self):
-               self.set_step()
-       
-       def do_kill(self):
-               self.set_quit()
-               self.exit_mainloop()
-               self.resetwidgets()
-       
-       def do_step(self):
-               self.running()
-               self.set_next(self.curframe)
-               self.exit_mainloop()
-       
-       def do_stepin(self):
-               self.running()
-               self.set_step()
-               self.exit_mainloop()
-       
-       def do_stepout(self):
-               self.running()
-               self.set_return(self.curframe)
-               self.exit_mainloop()
-       
-       def running(self):
-               W.SetCursor('watch')
-               self.reason = 'Running\8a'
-               self.setstate('running')
-               #self.w.panes.bottom.src.source.set('')
-               #self.w.panes.browserpanes.stacklist.stack.set([])
-               #self.w.panes.browserpanes.locals.browser.set({})
-               #self.w.panes.browserpanes.globals.browser.set({})
-       
-       def exit_mainloop(self):
-               self.w.parent.debugger_quitting = 1
-       
-       #
-       
-       def showframe(self, stackindex):
-               (frame, lineno) = self.stack[stackindex]
-               W.SetCursor('watch')
-               filename = frame.f_code.co_filename
-               if filename <> self.file:
-                       editor = self.geteditor(filename)
-                       if editor:
-                               self.w.panes.bottom.src.source.set(editor.get(), filename)
-                       else:
-                               try:
-                                       f = open(filename, 'rb')
-                                       data = f.read()
-                                       f.close()
-                               except IOError:
-                                       if filename[-3:] == '.py':
-                                               import imp
-                                               modname = os.path.basename(filename)[:-3]
-                                               try:
-                                                       f, filename, (suff, mode, dummy) = imp.find_module(modname)
-                                               except ImportError:
-                                                       self.w.panes.bottom.src.source.set('can¹t find file')
-                                               else:
-                                                       if f:
-                                                               f.close()
-                                                       if f and suff == '.py':
-                                                               f = open(filename, 'rb')
-                                                               data = f.read()
-                                                               f.close()
-                                                               self.w.panes.bottom.src.source.set(data, filename)
-                                                       else:
-                                                               self.w.panes.bottom.src.source.set('can¹t find file')
-                                       else:
-                                               self.w.panes.bottom.src.source.set('can¹t find file')
-                               else:
-                                       self.w.panes.bottom.src.source.set(data, filename)
-                       self.file = filename
-               self.w.panes.bottom.srctitle.set('Source: ' + filename + ((lineno > 0) and (' (line %d)' % lineno) or ' '))
-               self.goto_line(lineno)
-               self.lineno = lineno
-               self.showvars((frame, lineno))
-       
-       def showvars(self, (frame, lineno)):
-               if frame.f_locals is not frame.f_globals:
-                       locals = frame.f_locals
-               else:
-                       locals = {'Same as Globals':''}
-               filteredlocals = {}
-               for key, value in locals.items():
-                       # empty key is magic for Python 1.4; '.' is magic for 1.5...
-                       if not key or key[0] <> '.':
-                               filteredlocals[key] = value
-               self.w.panes.browserpanes.locals.browser.set(filteredlocals)
-               self.w.panes.browserpanes.globals.browser.set(frame.f_globals)
-       
-       def showstack(self, stackindex):
-               stack = []
-               for frame, lineno in self.stack[1:]:
-                       filename = frame.f_code.co_filename
-                       try:
-                               filename = _filenames[filename]
-                       except KeyError:
-                               if filename[:1] + filename[-1:] <> '<>':
-                                       filename = os.path.basename(filename)
-                               _filenames[frame.f_code.co_filename] = filename
-                       funcname = frame.f_code.co_name
-                       if funcname == '?':
-                               funcname = '<toplevel>'
-                       stack.append(filename + ': ' + funcname)
-               if stack <> self.laststack:
-                       self.w.panes.browserpanes.stacklist.stack.set(stack)
-                       self.laststack = stack
-               sel = [stackindex - 1]
-               self.w.panes.browserpanes.stacklist.stack.setselection(sel)
-               self.laststacksel = sel
-       
-       def goto_line(self, lineno):
-               if lineno > 0:
-                       self.w.panes.bottom.src.source.selectline(lineno - 1)
-               else:
-                       self.w.panes.bottom.src.source.setselection(0, 0)
-       
-       # bdb entry points
-       
-#      def user_call(self, frame, argument_list):
-#              self.reason = 'Calling'
-#              self.interaction(frame, None)
-       
-       def user_line(self, frame):
-               # This function is called when we stop or break at this line
-               self.reason = 'Stopped'
-               self.interaction(frame, None)
-       
-       def user_return(self, frame, return_value):
-               # This function is called when a return trap is set here
-               fname = frame.f_code.co_name
-               if fname <> '?':
-                       self.reason = 'Returning from %s()' % frame.f_code.co_name
-                       frame.f_locals['__return__'] = return_value
-               elif frame.f_back is self.botframe:
-                       self.reason = 'Done'
-               else:
-                       self.reason = 'Returning'
-               self.interaction(frame, None, 1)
-       
-       def user_exception(self, frame, (exc_type, exc_value, exc_traceback)):
-               # This function is called when we stop or break at this line
-               self.reason = self.formatexception(exc_type, exc_value)
-               self.interaction(frame, exc_traceback)
-       
-       def formatexception(self, exc_type, exc_value):
-               if exc_type == SyntaxError:
-                       try:
-                               value, (filename, lineno, charno, line) = exc_value
-                       except:
-                               pass
-                       else:
-                               return str(exc_type) + ': ' + str(value)
-               if type(exc_type) == types.ClassType:
-                       nice = exc_type.__name__
-               else:
-                       nice = str(exc_type)
-               value = str(exc_value)
-               if exc_value and value:
-                       nice = nice + ": " + value
-               return nice
-       
-       def forget(self):
-               self.stack = []
-               self.curindex = 0
-               self.curframe = None
-       
-       def setup(self, f, t, isreturning = 0):
-               self.forget()
-               self.stack, self.curindex = self.get_stack(f, t)
-               self.curframe = self.stack[self.curindex - isreturning][0]
-       
-       def interaction(self, frame, traceback, isreturning = 0):
-               saveport = Qd.GetPort()
-               self.w.select()
-               try:
-                       self.setup(frame, traceback, isreturning)
-                       self.setstate('stopped')
-                       stackindex = self.curindex
-                       if isreturning:
-                               if frame.f_back is not self.botframe:
-                                       stackindex = stackindex - 1
-                       self.showstack(stackindex)
-                       self.showframe(stackindex)
-                       self.w.parent.debugger_mainloop()
-                       self.forget()
-               finally:
-                       Qd.SetPort(saveport)
-       
-       # bdb customization
-       
-       def trace_dispatch(self, frame, event, arg, TickCount = Evt.TickCount):
-               if TickCount() - self.tracingmonitortime > 15:
-                       self.tracingmonitortime = TickCount()
-                       self.w.panes.bottom.tracingmonitor.toggle()
-               try:
-                       try:
-                               MacOS.EnableAppswitch(0)
-                               if self.quitting:
-                                       # returning None is not enough, a former BdbQuit exception
-                                       # might have been eaten by the print statement
-                                       raise bdb.BdbQuit
-                               if event == 'line':
-                                       return self.dispatch_line(frame)
-                               if event == 'call':
-                                       return self.dispatch_call(frame, arg)
-                               if event == 'return':
-                                       return self.dispatch_return(frame, arg)
-                               if event == 'exception':
-                                       return self.dispatch_exception(frame, arg)
-                               print 'bdb.Bdb.dispatch: unknown debugging event:', `event`
-                               return self.trace_dispatch
-                       finally:
-                               MacOS.EnableAppswitch(-1)
-               except KeyboardInterrupt:
-                       self.set_step()
-                       return self.trace_dispatch
-               except bdb.BdbQuit:
-                       if self.continuewithoutdebugger:
-                               self.clear_tracefuncs()
-                               return
-                       else:
-                               raise bdb.BdbQuit
-               except:
-                       print 'XXX Exception during debugger interaction.', \
-                                       self.formatexception(sys.exc_type, sys.exc_value)
-                       import traceback
-                       traceback.print_exc()
-                       return self.trace_dispatch
-       
-       def dispatch_call(self, frame, arg):
-               if not self.tracemagic and \
-                               frame.f_code.co_name[:2] == '__' == frame.f_code.co_name[-2:] and \
-                               frame.f_code.co_name <> '__init__':
-                       return
-               if self.botframe is None:
-                       # First call of dispatch since reset()
-                       self.botframe = frame.f_back    # xxx !!! added f_back
-                       return self.trace_dispatch
-               if not (self.stop_here(frame) or self.break_anywhere(frame)):
-                       # No need to trace this function
-                       return # None
-               self.user_call(frame, arg)
-               if self.quitting:
-                       raise bdb.BdbQuit
-               return self.trace_dispatch
-       
-       def set_continue(self):
-               # Don't stop except at breakpoints or when finished
-               self.stopframe = self.botframe
-               self.returnframe = None
-               self.quitting = 0
-               # unlike in bdb/pdb, there's a chance that breakpoints change 
-               # *while* a program (this program ;-) is running. It's actually quite likely.
-               # So we don't delete frame.f_trace until the bottom frame if there are no breakpoints.
-       
-       def set_break(self, filename, lineno):
-               if not self.breaks.has_key(filename):
-                       self.breaks[filename] = []
-               list = self.breaks[filename]
-               if lineno in list:
-                       return 'There is already a breakpoint there!'
-               list.append(lineno)
-               list.sort()     # I want to keep them neatly sorted; easier for drawing
-               if hasattr(bdb, "Breakpoint"):
-                       # 1.5.2b1 specific
-                       bp = bdb.Breakpoint(filename, lineno, 0, None)
-               self.update_breaks(filename)
-       
-       def clear_break(self, filename, lineno):
-               bdb.Bdb.clear_break(self, filename, lineno)
-               self.update_breaks(filename)
-       
-       def clear_all_file_breaks(self, filename):
-               bdb.Bdb.clear_all_file_breaks(self, filename)
-               self.update_breaks(filename)
-       
-       def clear_all_breaks(self):
-               bdb.Bdb.clear_all_breaks(self)
-               for editors in self.editors.values():
-                       for editor in editors:
-                               editor.drawbreakpoints()
-       
-       # special
-       
-       def toggle_break(self, filename, lineno):
-               if self.get_break(filename, lineno):
-                       self.clear_break(filename, lineno)
-               else:
-                       self.set_break(filename, lineno)
-       
-       def clear_breaks_above(self, filename, above):
-               if not self.breaks.has_key(filename):
-                       return 'There are no breakpoints in that file!'
-               for lineno in self.breaks[filename][:]:
-                       if lineno > above:
-                               self.breaks[filename].remove(lineno)
-               if not self.breaks[filename]:
-                       del self.breaks[filename]
-       
-       # editor stuff
-       
-       def update_breaks(self, filename):
-               if self.breaksviewer:
-                       self.breaksviewer.update()
-               if self.editors.has_key(filename):
-                       for editor in self.editors[filename]:
-                               if editor._debugger:    # XXX
-                                       editor.drawbreakpoints()
-                               else:
-                                       print 'xxx dead editor!'
-       
-       def update_allbreaks(self):
-               if self.breaksviewer:
-                       self.breaksviewer.update()
-               for filename in self.breaks.keys():
-                       if self.editors.has_key(filename):
-                               for editor in self.editors[filename]:
-                                       if editor._debugger:    # XXX
-                                               editor.drawbreakpoints()
-                                       else:
-                                               print 'xxx dead editor!'
-       
-       def register_editor(self, editor, filename):
-               if not filename:
-                       return
-               if not self.editors.has_key(filename):
-                       self.editors[filename] = [editor]
-               elif editor not in self.editors[filename]:
-                       self.editors[filename].append(editor)
-       
-       def unregister_editor(self, editor, filename):
-               if not filename:
-                       return
-               try:
-                       self.editors[filename].remove(editor)
-                       if not self.editors[filename]:
-                               del self.editors[filename]
-                               # if this was an untitled window, clear the breaks.
-                               if filename[:1] == '<' and filename[-1:] == '>' and \
-                                               self.breaks.has_key(filename):
-                                       self.clear_all_file_breaks(filename)
-               except (KeyError, ValueError):
-                       pass
-               
-
-class SourceViewer(W.PyEditor):
-       
-       def __init__(self, *args, **kwargs):
-               apply(W.PyEditor.__init__, (self,) + args, kwargs)
-               self.bind('<click>', self.clickintercept)
-       
-       def clickintercept(self, point, modifiers):
-               if self._parentwindow._currentwidget <> self and not self.pt_in_breaks(point):
-                       self._parentwindow.xxx___select(self)
-                       return 1
-       
-       def _getviewrect(self):
-               l, t, r, b = self._bounds
-               if self._debugger:
-                       return (l + 12, t + 2, r - 1, b - 2)
-               else:
-                       return (l + 5, t + 2, r - 1, b - 2)
-       
-       def select(self, onoff, isclick = 0):
-               if W.SelectableWidget.select(self, onoff):
-                       return
-               self.SetPort()
-               #if onoff:
-               #       self.ted.WEActivate()
-               #else:
-               #       self.ted.WEDeactivate()
-               self.drawselframe(onoff)
-       
-       def drawselframe(self, onoff):
-               pass
-
-
-class BreakpointsViewer:
-       
-       def __init__(self, debugger):
-               self.debugger = debugger
-               import Lists
-               self.w = W.Window((300, 250), 'Breakpoints', minsize = (200, 200))
-               self.w.panes = W.HorizontalPanes((8, 8, -8, -32), (0.3, 0.7))
-               self.w.panes.files = W.List(None, callback = self.filehit)              #, flags = Lists.lOnlyOne)
-               self.w.panes.gr = W.Group(None)
-               self.w.panes.gr.breaks = W.List((0, 0, -130, 0), callback = self.linehit)       #, flags = Lists.lOnlyOne)
-               self.w.panes.gr.openbutton = W.Button((-80, 4, 0, 16), 'View\8a', self.openbuttonhit)
-               self.w.panes.gr.deletebutton = W.Button((-80, 28, 0, 16), 'Delete', self.deletebuttonhit)
-               
-               self.w.bind('<close>', self.close)
-               self.w.bind('backspace', self.w.panes.gr.deletebutton.push)
-               
-               self.setup()
-               self.w.open()
-               self.w.panes.gr.openbutton.enable(0)
-               self.w.panes.gr.deletebutton.enable(0)
-               self.curfile = None
-       
-       def deletebuttonhit(self):
-               if self.w._currentwidget == self.w.panes.files:
-                       self.del_filename()
-               else:
-                       self.del_number()
-               self.checkbuttons()
-       
-       def del_number(self):
-               if self.curfile is None:
-                       return
-               sel = self.w.panes.gr.breaks.getselectedobjects()
-               for lineno in sel:
-                       self.debugger.clear_break(self.curfile, lineno)
-       
-       def del_filename(self):
-               sel = self.w.panes.files.getselectedobjects()
-               for filename in sel:
-                       self.debugger.clear_all_file_breaks(filename)
-               self.debugger.update_allbreaks()
-       
-       def setup(self):
-               files = self.debugger.breaks.keys()
-               files.sort()
-               self.w.panes.files.set(files)
-       
-       def close(self):
-               self.debugger.breaksviewer = None
-               self.debugger = None
-       
-       def update(self):
-               sel = self.w.panes.files.getselectedobjects()
-               self.setup()
-               self.w.panes.files.setselectedobjects(sel)
-               sel = self.w.panes.files.getselection()
-               if len(sel) == 0 and self.curfile:
-                       self.w.panes.files.setselectedobjects([self.curfile])
-               self.filehit(0)
-       
-       def select(self):
-               self.w.select()
-       
-       def selectfile(self, file):
-               self.w.panes.files.setselectedobjects([file])
-               self.filehit(0)                 
-       
-       def openbuttonhit(self):
-               self.filehit(1)
-       
-       def filehit(self, isdbl):
-               sel = self.w.panes.files.getselectedobjects()
-               if isdbl:
-                       for filename in sel:
-                               lineno = None
-                               if filename == self.curfile:
-                                       linesel = self.w.panes.gr.breaks.getselectedobjects()
-                                       if linesel:
-                                               lineno = linesel[-1]
-                                       elif self.w.panes.gr.breaks:
-                                               lineno = self.w.panes.gr.breaks[0]
-                               editor = self.w._parentwindow.parent.openscript(filename, lineno)
-                               editor.showbreakpoints(1)
-                       return
-               if len(sel) == 1:
-                       file = sel[0]
-                       filebreaks = self.debugger.breaks[file][:]
-                       if self.curfile == file:
-                               linesel = self.w.panes.gr.breaks.getselectedobjects()
-                       self.w.panes.gr.breaks.set(filebreaks)
-                       if self.curfile == file:
-                               self.w.panes.gr.breaks.setselectedobjects(linesel)
-                       self.curfile = file
-               else:
-                       if len(sel) <> 0:
-                               self.curfile = None
-                       self.w.panes.gr.breaks.set([])
-               self.checkbuttons()
-       
-       def linehit(self, isdbl):
-               if isdbl:
-                       files = self.w.panes.files.getselectedobjects()
-                       if len(files) <> 1:
-                               return
-                       filename = files[0]
-                       linenos = self.w.panes.gr.breaks.getselectedobjects()
-                       if not linenos:
-                               return
-                       lineno = linenos[-1]
-                       editor = self.w._parentwindow.parent.openscript(filename, lineno)
-                       editor.showbreakpoints(1)
-               self.checkbuttons()
-       
-       def checkbuttons(self):
-               if self.w.panes.files.getselection():
-                       self.w.panes.gr.openbutton.enable(1)
-                       self.w._parentwindow.setdefaultbutton(self.w.panes.gr.openbutton)
-                       if self.w._currentwidget == self.w.panes.files:
-                               if self.w.panes.files.getselection():
-                                       self.w.panes.gr.deletebutton.enable(1)
-                               else:
-                                       self.w.panes.gr.deletebutton.enable(0)
-                       else:
-                               if self.w.panes.gr.breaks.getselection():
-                                       self.w.panes.gr.deletebutton.enable(1)
-                               else:
-                                       self.w.panes.gr.deletebutton.enable(0)
-               else:
-                       self.w.panes.gr.openbutton.enable(0)
-                       self.w.panes.gr.deletebutton.enable(0)
-
-
-class TracingMonitor(W.Widget):
-       
-       def __init__(self, *args, **kwargs):
-               apply(W.Widget.__init__, (self,) + args, kwargs)
-               self.state = 0
-       
-       def toggle(self):
-               if hasattr(self, "_parentwindow") and self._parentwindow is not None:
-                       self.state = self.state % 2 + 1
-                       port = Qd.GetPort()
-                       self.SetPort()
-                       self.draw()
-                       Qd.SetPort(port)
-       
-       def reset(self):
-               if self._parentwindow:
-                       self.state = 0
-                       port = Qd.GetPort()
-                       self.SetPort()
-                       self.draw()
-                       Qd.SetPort(port)
-       
-       def draw(self, visRgn = None):
-               if self.state == 2:
-                       Qd.PaintOval(self._bounds)
-               else:
-                       Qd.EraseOval(self._bounds)
-
-
-# convenience funcs
-
-def postmortem(exc_type, exc_value, tb):
-       d = getdebugger()
-       d.postmortem(exc_type, exc_value, tb)
-
-def start(bottomframe = None):
-       d = getdebugger()
-       d.start(bottomframe)
-
-def startfromhere():
-       d = getdebugger()
-       try:
-               raise 'spam'
-       except:
-               frame = sys.exc_traceback.tb_frame.f_back
-       d.start(frame)
-
-def startfrombottom():
-       d = getdebugger()
-       d.start(_getbottomframe(), 1)
-
-def stop():
-       d = getdebugger()
-       d.stop()
-
-def cont():
-       sys.settrace(None)
-       d = getdebugger()
-       d.set_continue_without_debugger()
-
-def _getbottomframe():
-       try:
-               raise 'spam'
-       except:
-               pass
-       frame = sys.exc_traceback.tb_frame
-       while 1:
-               if frame.f_code.co_name == 'mainloop' or frame.f_back is None:
-                       break
-               frame = frame.f_back
-       return frame
-
-_debugger = None
-
-def getdebugger():
-       if not __debug__:
-               raise W.AlertError, "Can¹t debug in Â³Optimize bytecode² mode.\r(see Â³Default startup options² in EditPythonPreferences)"
-       global _debugger
-       if _debugger is None:
-               _debugger = Debugger()
-       return _debugger
diff --git a/Mac/Tools/IDE/PyDocSearch.py b/Mac/Tools/IDE/PyDocSearch.py
deleted file mode 100644 (file)
index b036556..0000000
+++ /dev/null
@@ -1,290 +0,0 @@
-import aetools
-import Standard_Suite
-import Required_Suite
-import WWW_Suite
-import re
-import W
-import macfs
-import os
-import MacPrefs
-import MacOS
-import string
-
-if hasattr(WWW_Suite, "WWW_Suite"):
-       WWW = WWW_Suite.WWW_Suite
-else:
-       WWW = WWW_Suite.WorldWideWeb_suite_2c__as_defined_in_Spyglass_spec_2e_
-
-class WebBrowser(aetools.TalkTo, 
-               Standard_Suite.Standard_Suite, 
-               WWW):
-       
-       def openfile(self, path, activate = 1):
-               if activate:
-                       self.activate()
-               self.OpenURL("file:///" + string.join(string.split(path,':'), '/'))
-
-app = W.getapplication()
-
-#SIGNATURE='MSIE' # MS Explorer
-SIGNATURE='MOSS' # Netscape
-
-_titlepat = re.compile('<title>\([^<]*\)</title>')
-
-def sucktitle(path):
-       f = open(path)
-       text = f.read(1024) # assume the title is in the first 1024 bytes
-       f.close()
-       lowertext = string.lower(text)
-       matcher = _titlepat.search(lowertext)
-       if matcher:
-               return matcher.group(1)
-       return path
-
-def verifydocpath(docpath):
-       try:
-               tut = os.path.join(docpath, "tut")
-               lib = os.path.join(docpath, "lib")
-               ref = os.path.join(docpath, "ref")
-               for path in [tut, lib, ref]:
-                       if not os.path.exists(path):
-                               return 0
-       except:
-               return 0
-       return 1
-
-
-class TwoLineList(W.List):
-       
-       LDEF_ID = 468
-       
-       def createlist(self):
-               import List
-               self._calcbounds()
-               self.SetPort()
-               rect = self._bounds
-               rect = rect[0]+1, rect[1]+1, rect[2]-16, rect[3]-1
-               self._list = List.LNew(rect, (0, 0, 1, 0), (0, 28), self.LDEF_ID, self._parentwindow.wid,
-                                       0, 1, 0, 1)
-               self.set(self.items)
-
-
-_resultscounter = 1
-
-class Results:
-       
-       def __init__(self, hits):
-               global _resultscounter
-               hits = map(lambda (path, hits): (sucktitle(path), path, hits), hits)
-               hits.sort()
-               self.hits = hits
-               nicehits = map(
-                               lambda (title, path, hits):
-                               title + '\r' + string.join(
-                               map(lambda (c, p): "%s (%d)" % (p, c), hits), ', '), hits)
-               nicehits.sort()
-               self.w = W.Window((440, 300), "Search results %d" % _resultscounter, minsize = (200, 100))
-               self.w.results = TwoLineList((-1, -1, 1, -14), nicehits, self.listhit)
-               self.w.open()
-               self.w.bind('return', self.listhit)
-               self.w.bind('enter', self.listhit)
-               _resultscounter = _resultscounter + 1
-               self.browser = None
-       
-       def listhit(self, isdbl = 1):
-               if isdbl:
-                       for i in self.w.results.getselection():
-                               if self.browser is None:
-                                       self.browser = WebBrowser(SIGNATURE, start = 1)
-                               self.browser.openfile(self.hits[i][1])
-
-class Status:
-       
-       def __init__(self):
-               self.w = W.Dialog((440, 64), "Searching\8a")
-               self.w.searching = W.TextBox((4, 4, -4, 16), "DevDev:PyPyDoc 1.5.1:ext:parseTupleAndKeywords.html")
-               self.w.hits = W.TextBox((4, 24, -4, 16), "Hits: 0")
-               self.w.canceltip = W.TextBox((4, 44, -4, 16), "Type cmd-period (.) to cancel.")
-               self.w.open()
-       
-       def set(self, path, hits):
-               self.w.searching.set(path)
-               self.w.hits.set('Hits: ' + `hits`)
-               app.breathe()
-       
-       def close(self):
-               self.w.close()
-
-
-def match(text, patterns, all):
-       hits = []
-       hitsappend = hits.append
-       stringcount = string.count
-       for pat in patterns:
-               c = stringcount(text, pat)
-               if c > 0:
-                       hitsappend((c, pat))
-               elif all:
-                       hits[:] = []
-                       break
-       hits.sort()
-       hits.reverse()
-       return hits
-
-def dosearch(docpath, searchstring, settings):
-       (docpath, kind, case, word, tut, lib, ref, ext, api) = settings
-       books = [(tut, 'tut'), (lib, 'lib'), (ref, 'ref'), (ext, 'ext'), (api, 'api')]
-       if not case:
-               searchstring = string.lower(searchstring)
-       
-       if kind == 1:
-               patterns = string.split(searchstring)
-               all = 1
-       elif kind == 2:
-               patterns = string.split(searchstring)
-               all = 0
-       else:
-               patterns = [searchstring]
-               all = 0 # not relevant
-       
-       ospathjoin = os.path.join
-       stringlower = string.lower
-       status = Status()
-       statusset = status.set
-       _match = match
-       _open = open
-       hits = {}
-       try:
-               MacOS.EnableAppswitch(0)
-               try:
-                       for do, name in books:
-                               if not do:
-                                       continue
-                               bookpath = ospathjoin(docpath, name)
-                               if not os.path.exists(bookpath):
-                                       continue
-                               files = os.listdir(bookpath)
-                               for file in files:
-                                       fullpath = ospathjoin(bookpath, file)
-                                       if fullpath[-5:] <> '.html':
-                                               continue
-                                       statusset(fullpath, len(hits))
-                                       f = _open(fullpath)
-                                       text = f.read()
-                                       if not case:
-                                               text = stringlower(text)
-                                       f.close()
-                                       filehits = _match(text, patterns, all)
-                                       if filehits:
-                                               hits[fullpath] = filehits
-               finally:
-                       MacOS.EnableAppswitch(-1)
-                       status.close()
-       except KeyboardInterrupt:
-               pass
-       hits = hits.items()
-       hits.sort()
-       return hits
-
-
-class PyDocSearch:
-       
-       def __init__(self):
-               prefs = MacPrefs.GetPrefs(W.getapplication().preffilepath)
-               try:
-                       (docpath, kind, case, word, tut, lib, ref, ext, api) = prefs.docsearchengine
-               except:
-                       (docpath, kind, case, word, tut, lib, ref, ext, api) = prefs.docsearchengine = \
-                               ("", 0, 0, 0, 1, 1, 0, 0, 0)
-               
-               if docpath and not verifydocpath(docpath):
-                       docpath = ""
-               
-               self.w = W.Window((400, 200), "Search the Python Documentation")
-               self.w.searchtext = W.EditText((10, 10, -100, 20), callback = self.checkbuttons)
-               self.w.searchbutton = W.Button((-90, 12, 80, 16), "Search", self.search)
-               buttons = []
-               
-               gutter = 10
-               width = 130
-               bookstart = width + 2 * gutter
-               self.w.phraseradio = W.RadioButton((10, 38, width, 16), "As a phrase", buttons)
-               self.w.allwordsradio = W.RadioButton((10, 58, width, 16), "All words", buttons)
-               self.w.anywordsradio = W.RadioButton((10, 78, width, 16), "Any word", buttons)
-               self.w.casesens = W.CheckBox((10, 98, width, 16), "Case sensitive")
-               self.w.wholewords = W.CheckBox((10, 118, width, 16), "Whole words")
-               self.w.tutorial = W.CheckBox((bookstart, 38, -10, 16), "Tutorial")
-               self.w.library = W.CheckBox((bookstart, 58, -10, 16), "Library reference")
-               self.w.langueref = W.CheckBox((bookstart, 78, -10, 16), "Lanuage reference manual")
-               self.w.extending = W.CheckBox((bookstart, 98, -10, 16), "Extending & embedding")
-               self.w.api = W.CheckBox((bookstart, 118, -10, 16), "C/C++ API")
-               
-               self.w.setdocfolderbutton = W.Button((10, -30, 80, 16), "Set doc folder", self.setdocpath)
-               
-               if docpath:
-                       self.w.setdefaultbutton(self.w.searchbutton)
-               else:
-                       self.w.setdefaultbutton(self.w.setdocfolderbutton)
-               
-               self.docpath = docpath
-               if not docpath:
-                       docpath = "(please select the Python html documentation folder)"
-               self.w.docfolder = W.TextBox((100, -28, -10, 16), docpath)
-               
-               [self.w.phraseradio, self.w.allwordsradio, self.w.anywordsradio][kind].set(1)
-               
-               self.w.casesens.set(case)
-               self.w.wholewords.set(word)
-               self.w.tutorial.set(tut)
-               self.w.library.set(lib)
-               self.w.langueref.set(ref)
-               self.w.extending.set(ext)
-               self.w.api.set(api)
-               
-               self.w.open()
-               self.w.wholewords.enable(0)
-               self.w.bind('<close>', self.close)
-               self.w.searchbutton.enable(0)
-       
-       def search(self):
-               hits = dosearch(self.docpath, self.w.searchtext.get(), self.getsettings())
-               if hits:
-                       Results(hits)
-               elif hasattr(MacOS, 'SysBeep'):
-                       MacOS.SysBeep(0)
-               #import PyBrowser
-               #PyBrowser.Browser(hits)
-       
-       def setdocpath(self):
-               fss, ok = macfs.GetDirectory()
-               if ok:
-                       docpath = fss.as_pathname()
-                       if not verifydocpath(docpath):
-                               W.Message("This does not seem to be a Python documentation folder...")
-                       else:
-                               self.docpath = docpath
-                               self.w.docfolder.set(docpath)
-                               self.w.setdefaultbutton(self.w.searchbutton)
-       
-       def close(self):
-               prefs = MacPrefs.GetPrefs(W.getapplication().preffilepath)
-               prefs.docsearchengine = self.getsettings()
-       
-       def getsettings(self):
-               radiobuttons = [self.w.phraseradio, self.w.allwordsradio, self.w.anywordsradio]
-               for i in range(3):
-                       if radiobuttons[i].get():
-                               kind = i
-                               break
-               docpath = self.docpath
-               case = self.w.casesens.get()
-               word = self.w.wholewords.get()
-               tut = self.w.tutorial.get()
-               lib = self.w.library.get()
-               ref = self.w.langueref.get()
-               ext = self.w.extending.get()
-               api = self.w.api.get()
-               return (docpath, kind, case, word, tut, lib, ref, ext, api)
-       
-       def checkbuttons(self):
-               self.w.searchbutton.enable(not not self.w.searchtext.get())
diff --git a/Mac/Tools/IDE/PyEdit.py b/Mac/Tools/IDE/PyEdit.py
deleted file mode 100644 (file)
index fc8503a..0000000
+++ /dev/null
@@ -1,1305 +0,0 @@
-"""A (less & less) simple Python editor"""
-
-import W
-import Wtraceback
-from Wkeys import *
-
-import macfs
-import MACFS
-import MacOS
-import Win
-import Res
-import Evt
-import os
-import imp
-import sys
-import string
-import marshal
-import re
-
-try:
-       import Wthreading
-except ImportError:
-       haveThreading = 0
-else:
-       haveThreading = Wthreading.haveThreading
-
-_scriptuntitledcounter = 1
-# _wordchars = string.letters + string.digits + "_"
-_wordchars = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_'
-
-
-runButtonLabels = ["Run all", "Stop!"]
-runSelButtonLabels = ["Run selection", "Pause!", "Resume"]
-
-
-class Editor(W.Window):
-       
-       def __init__(self, path = "", title = ""):
-               defaultfontsettings, defaulttabsettings, defaultwindowsize = geteditorprefs()
-               global _scriptuntitledcounter
-               if not path:
-                       if title:
-                               self.title = title
-                       else:
-                               self.title = "Untitled Script " + `_scriptuntitledcounter`
-                               _scriptuntitledcounter = _scriptuntitledcounter + 1
-                       text = ""
-                       self._creator = W._signature
-               elif os.path.exists(path):
-                       path = resolvealiases(path)
-                       dir, name = os.path.split(path)
-                       self.title = name
-                       f = open(path, "rb")
-                       text = f.read()
-                       f.close()
-                       fss = macfs.FSSpec(path)
-                       self._creator, filetype = fss.GetCreatorType()
-               else:
-                       raise IOError, "file '%s' does not exist" % path
-               self.path = path
-               
-               if '\n' in text:
-                       import EasyDialogs
-                       if string.find(text, '\r\n') >= 0:
-                               sourceOS = 'DOS'
-                               searchString = '\r\n'
-                       else:
-                               sourceOS = 'UNIX'
-                               searchString = '\n'
-                       change = EasyDialogs.AskYesNoCancel('³%s² contains %s-style line feeds. '
-                                       'Change them to MacOS carriage returns?' % (self.title, sourceOS), 1)
-                       # bug: Cancel is treated as No
-                       if change > 0:
-                               text = string.replace(text, searchString, '\r')
-               else:
-                       change = 0
-               
-               self.settings = {}
-               if self.path:
-                       self.readwindowsettings()
-               if self.settings.has_key("windowbounds"):
-                       bounds = self.settings["windowbounds"]
-               else:
-                       bounds = defaultwindowsize
-               if self.settings.has_key("fontsettings"):
-                       self.fontsettings = self.settings["fontsettings"]
-               else:
-                       self.fontsettings = defaultfontsettings
-               if self.settings.has_key("tabsize"):
-                       try:
-                               self.tabsettings = (tabsize, tabmode) = self.settings["tabsize"]
-                       except:
-                               self.tabsettings = defaulttabsettings
-               else:
-                       self.tabsettings = defaulttabsettings
-               
-               W.Window.__init__(self, bounds, self.title, minsize = (330, 120), tabbable = 0)
-               self.setupwidgets(text)
-               if change > 0:
-                       self.editgroup.editor.changed = 1
-               
-               if self.settings.has_key("selection"):
-                       selstart, selend = self.settings["selection"]
-                       self.setselection(selstart, selend)
-               self.open()
-               self.setinfotext()
-               self.globals = {}
-               self._buf = ""  # for write method
-               self.debugging = 0
-               self.profiling = 0
-               if self.settings.has_key("run_as_main"):
-                       self.run_as_main = self.settings["run_as_main"]
-               else:
-                       self.run_as_main = 0
-               if self.settings.has_key("run_with_interpreter"):
-                       self.run_with_interpreter = self.settings["run_with_interpreter"]
-               else:
-                       self.run_with_interpreter = 0
-               self._threadstate = (0, 0)
-               self._thread = None
-       
-       def readwindowsettings(self):
-               try:
-                       resref = Res.FSpOpenResFile(self.path, 1)
-               except Res.Error:
-                       return
-               try:
-                       Res.UseResFile(resref)
-                       data = Res.Get1Resource('PyWS', 128)
-                       self.settings = marshal.loads(data.data)
-               except:
-                       pass
-               Res.CloseResFile(resref)
-               
-       def writewindowsettings(self):
-               try:
-                       resref = Res.FSpOpenResFile(self.path, 3)
-               except Res.Error:
-                       Res.FSpCreateResFile(self.path, self._creator, 'TEXT', MACFS.smAllScripts)
-                       resref = Res.FSpOpenResFile(self.path, 3)
-               try:
-                       data = Res.Resource(marshal.dumps(self.settings))
-                       Res.UseResFile(resref)
-                       try:
-                               temp = Res.Get1Resource('PyWS', 128)
-                               temp.RemoveResource()
-                       except Res.Error:
-                               pass
-                       data.AddResource('PyWS', 128, "window settings")
-               finally:
-                       Res.UpdateResFile(resref)
-                       Res.CloseResFile(resref)
-       
-       def getsettings(self):
-               self.settings = {}
-               self.settings["windowbounds"] = self.getbounds()
-               self.settings["selection"] = self.getselection()
-               self.settings["fontsettings"] = self.editgroup.editor.getfontsettings()
-               self.settings["tabsize"] = self.editgroup.editor.gettabsettings()
-               self.settings["run_as_main"] = self.run_as_main
-               self.settings["run_with_interpreter"] = self.run_with_interpreter
-       
-       def get(self):
-               return self.editgroup.editor.get()
-       
-       def getselection(self):
-               return self.editgroup.editor.ted.WEGetSelection()
-       
-       def setselection(self, selstart, selend):
-               self.editgroup.editor.setselection(selstart, selend)
-       
-       def getfilename(self):
-               if self.path:
-                       return self.path
-               return '<%s>' % self.title
-       
-       def setupwidgets(self, text):
-               topbarheight = 24
-               popfieldwidth = 80
-               self.lastlineno = None
-               
-               # make an editor
-               self.editgroup = W.Group((0, topbarheight + 1, 0, 0))
-               editor = W.PyEditor((0, 0, -15,-15), text, 
-                               fontsettings = self.fontsettings, 
-                               tabsettings = self.tabsettings,
-                               file = self.getfilename())
-               
-               # make the widgets
-               self.popfield = ClassFinder((popfieldwidth - 17, -15, 16, 16), [], self.popselectline)
-               self.linefield = W.EditText((-1, -15, popfieldwidth - 15, 16), inset = (6, 1))
-               self.editgroup._barx = W.Scrollbar((popfieldwidth - 2, -15, -14, 16), editor.hscroll, max = 32767)
-               self.editgroup._bary = W.Scrollbar((-15, 14, 16, -14), editor.vscroll, max = 32767)
-               self.editgroup.editor = editor  # add editor *after* scrollbars
-               
-               self.editgroup.optionsmenu = W.PopupMenu((-15, -1, 16, 16), [])
-               self.editgroup.optionsmenu.bind('<click>', self.makeoptionsmenu)
-               
-               self.bevelbox = W.BevelBox((0, 0, 0, topbarheight))
-               self.hline = W.HorizontalLine((0, topbarheight, 0, 0))
-               self.infotext = W.TextBox((175, 6, -4, 14), backgroundcolor = (0xe000, 0xe000, 0xe000))
-               self.runbutton = W.Button((5, 4, 80, 16), runButtonLabels[0], self.run)
-               self.runselbutton = W.Button((90, 4, 80, 16), runSelButtonLabels[0], self.runselection)
-               
-               # bind some keys
-               editor.bind("cmdr", self.runbutton.push)
-               editor.bind("enter", self.runselbutton.push)
-               editor.bind("cmdj", self.domenu_gotoline)
-               editor.bind("cmdd", self.domenu_toggledebugger)
-               editor.bind("<idle>", self.updateselection)
-               
-               editor.bind("cmde", searchengine.setfindstring)
-               editor.bind("cmdf", searchengine.show)
-               editor.bind("cmdg", searchengine.findnext)
-               editor.bind("cmdshiftr", searchengine.replace)
-               editor.bind("cmdt", searchengine.replacefind)
-               
-               self.linefield.bind("return", self.dolinefield)
-               self.linefield.bind("enter", self.dolinefield)
-               self.linefield.bind("tab", self.dolinefield)
-               
-               # intercept clicks
-               editor.bind("<click>", self.clickeditor)
-               self.linefield.bind("<click>", self.clicklinefield)
-       
-       def makeoptionsmenu(self):
-               menuitems = [('Font settings\8a', self.domenu_fontsettings), 
-                               ("Save options\8a", self.domenu_options),
-                               '-',
-                               ('\0' + chr(self.run_as_main) + 'Run as __main__', self.domenu_toggle_run_as_main), 
-                               #('\0' + chr(self.run_with_interpreter) + 'Run with Interpreter', self.domenu_toggle_run_with_interpreter), 
-                               #'-',
-                               ('Modularize', self.domenu_modularize),
-                               ('Browse namespace\8a', self.domenu_browsenamespace), 
-                               '-']
-               if self.profiling:
-                       menuitems = menuitems + [('Disable profiler', self.domenu_toggleprofiler)]
-               else:
-                       menuitems = menuitems + [('Enable profiler', self.domenu_toggleprofiler)]
-               if self.editgroup.editor._debugger:
-                       menuitems = menuitems + [('Disable debugger', self.domenu_toggledebugger),
-                               ('Clear breakpoints', self.domenu_clearbreakpoints),
-                               ('Edit breakpoints\8a', self.domenu_editbreakpoints)]
-               else:
-                       menuitems = menuitems + [('Enable debugger', self.domenu_toggledebugger)]
-               self.editgroup.optionsmenu.set(menuitems)
-       
-       def domenu_toggle_run_as_main(self):
-               self.run_as_main = not self.run_as_main
-               self.run_with_interpreter = 0
-               self.editgroup.editor.selchanged = 1
-       
-       def domenu_toggle_run_with_interpreter(self):
-               self.run_with_interpreter = not self.run_with_interpreter
-               self.run_as_main = 0
-               self.editgroup.editor.selchanged = 1
-       
-       def showbreakpoints(self, onoff):
-               self.editgroup.editor.showbreakpoints(onoff)
-               self.debugging = onoff
-       
-       def domenu_clearbreakpoints(self, *args):
-               self.editgroup.editor.clearbreakpoints()
-       
-       def domenu_editbreakpoints(self, *args):
-               self.editgroup.editor.editbreakpoints()
-       
-       def domenu_toggledebugger(self, *args):
-               if not self.debugging:
-                       W.SetCursor('watch')
-               self.debugging = not self.debugging
-               self.editgroup.editor.togglebreakpoints()
-               
-       def domenu_toggleprofiler(self, *args):
-               self.profiling = not self.profiling
-       
-       def domenu_browsenamespace(self, *args):
-               import PyBrowser, W
-               W.SetCursor('watch')
-               globals, file, modname = self.getenvironment()
-               if not modname:
-                       modname = self.title
-               PyBrowser.Browser(globals, "Object browser: " + modname)
-       
-       def domenu_modularize(self, *args):
-               modname = _filename_as_modname(self.title)
-               if not modname:
-                       raise W.AlertError, 'Can¹t modularize Â³%s²' % self.title
-               run_as_main = self.run_as_main
-               self.run_as_main = 0
-               self.run()
-               self.run_as_main = run_as_main
-               if self.path:
-                       file = self.path
-               else:
-                       file = self.title
-               
-               if self.globals and not sys.modules.has_key(modname):
-                       module = imp.new_module(modname)
-                       for attr in self.globals.keys():
-                               setattr(module,attr,self.globals[attr])
-                       sys.modules[modname] = module
-                       self.globals = {}
-       
-       def domenu_fontsettings(self, *args):
-               import FontSettings
-               fontsettings = self.editgroup.editor.getfontsettings()
-               tabsettings = self.editgroup.editor.gettabsettings()
-               settings = FontSettings.FontDialog(fontsettings, tabsettings)
-               if settings:
-                       fontsettings, tabsettings = settings
-                       self.editgroup.editor.setfontsettings(fontsettings)
-                       self.editgroup.editor.settabsettings(tabsettings)
-       
-       def domenu_options(self, *args):
-               rv = SaveOptions(self._creator)
-               if rv:
-                       self.editgroup.editor.selchanged = 1 # ouch...
-                       self._creator = rv
-       
-       def clicklinefield(self):
-               if self._currentwidget <> self.linefield:
-                       self.linefield.select(1)
-                       self.linefield.selectall()
-                       return 1
-       
-       def clickeditor(self):
-               if self._currentwidget <> self.editgroup.editor:
-                       self.dolinefield()
-                       return 1
-       
-       def updateselection(self, force = 0):
-               sel = min(self.editgroup.editor.getselection())
-               lineno = self.editgroup.editor.offsettoline(sel)
-               if lineno <> self.lastlineno or force:
-                       self.lastlineno = lineno
-                       self.linefield.set(str(lineno + 1))
-                       self.linefield.selview()
-       
-       def dolinefield(self):
-               try:
-                       lineno = string.atoi(self.linefield.get()) - 1
-                       if lineno <> self.lastlineno:
-                               self.editgroup.editor.selectline(lineno)
-                               self.updateselection(1)
-               except:
-                       self.updateselection(1)
-               self.editgroup.editor.select(1)
-       
-       def setinfotext(self):
-               if not hasattr(self, 'infotext'):
-                       return
-               if self.path:
-                       self.infotext.set(self.path)
-               else:
-                       self.infotext.set("")
-       
-       def close(self):
-               if self.editgroup.editor.changed:
-                       import EasyDialogs
-                       import Qd
-                       Qd.InitCursor() # XXX should be done by dialog
-                       save = EasyDialogs.AskYesNoCancel('Save window Â³%s² before closing?' % self.title, 1)
-                       if save > 0:
-                               if self.domenu_save():
-                                       return 1
-                       elif save < 0:
-                               return 1
-               self.globals = None         # XXX doesn't help... all globals leak :-(
-               W.Window.close(self)
-       
-       def domenu_close(self, *args):
-               return self.close()
-       
-       def domenu_save(self, *args):
-               if not self.path:
-                       # Will call us recursively
-                       return self.domenu_save_as()
-               data = self.editgroup.editor.get()
-               fp = open(self.path, 'wb')  # open file in binary mode, data has '\r' line-endings
-               fp.write(data)
-               fp.close()
-               fss = macfs.FSSpec(self.path)
-               fss.SetCreatorType(self._creator, 'TEXT')
-               self.getsettings()
-               self.writewindowsettings()
-               self.editgroup.editor.changed = 0
-               self.editgroup.editor.selchanged = 0
-               import linecache
-               if linecache.cache.has_key(self.path):
-                       del linecache.cache[self.path]
-               import macostools
-               macostools.touched(self.path)
-       
-       def can_save(self, menuitem):
-               return self.editgroup.editor.changed or self.editgroup.editor.selchanged
-       
-       def domenu_save_as(self, *args):
-               fss, ok = macfs.StandardPutFile('Save as:', self.title)
-               if not ok: 
-                       return 1
-               self.showbreakpoints(0)
-               self.path = fss.as_pathname()
-               self.setinfotext()
-               self.title = os.path.split(self.path)[-1]
-               self.wid.SetWTitle(self.title)
-               self.domenu_save()
-               self.editgroup.editor.setfile(self.getfilename())
-               app = W.getapplication()
-               app.makeopenwindowsmenu()
-               if hasattr(app, 'makescriptsmenu'):
-                       app = W.getapplication()
-                       fss, fss_changed = app.scriptsfolder.Resolve()
-                       path = fss.as_pathname()
-                       if path == self.path[:len(path)]:
-                               W.getapplication().makescriptsmenu()
-       
-       def domenu_save_as_applet(self, *args):
-               try:
-                       import buildtools
-               except ImportError:
-                       # only have buildtools in Python >= 1.5.2
-                       raise W.AlertError, "³Save as Applet² is only supported in\rPython 1.5.2 and up."
-               
-               buildtools.DEBUG = 0    # ouch.
-               
-               if self.title[-3:] == ".py":
-                       destname = self.title[:-3]
-               else:
-                       destname = self.title + ".applet"
-               fss, ok = macfs.StandardPutFile('Save as Applet:', destname)
-               if not ok: 
-                       return 1
-               W.SetCursor("watch")
-               destname = fss.as_pathname()
-               if self.path:
-                       filename = self.path
-                       if filename[-3:] == ".py":
-                               rsrcname = filename[:-3] + '.rsrc'
-                       else:
-                               rsrcname = filename + '.rsrc'
-               else:
-                       filename = self.title
-                       rsrcname = ""
-               
-               pytext = self.editgroup.editor.get()
-               pytext = string.split(pytext, '\r')
-               pytext = string.join(pytext, '\n') + '\n'
-               try:
-                       code = compile(pytext, filename, "exec")
-               except (SyntaxError, EOFError):
-                       raise buildtools.BuildError, "Syntax error in script %s" % `filename`
-               
-               # Try removing the output file
-               try:
-                       os.remove(destname)
-               except os.error:
-                       pass
-               template = buildtools.findtemplate()
-               buildtools.process_common(template, None, code, rsrcname, destname, 0, 1)
-       
-       def domenu_gotoline(self, *args):
-               self.linefield.selectall()
-               self.linefield.select(1)
-               self.linefield.selectall()
-       
-       def domenu_selectline(self, *args):
-               self.editgroup.editor.expandselection()
-       
-       def domenu_find(self, *args):
-               searchengine.show()
-       
-       def domenu_entersearchstring(self, *args):
-               searchengine.setfindstring()
-       
-       def domenu_replace(self, *args):
-               searchengine.replace()
-       
-       def domenu_findnext(self, *args):
-               searchengine.findnext()
-       
-       def domenu_replacefind(self, *args):
-               searchengine.replacefind()
-       
-       def domenu_run(self, *args):
-               self.runbutton.push()
-       
-       def domenu_runselection(self, *args):
-               self.runselbutton.push()
-       
-       def run(self):
-               if self._threadstate == (0, 0):
-                       self._run()
-               else:
-                       lock = Wthreading.Lock()
-                       lock.acquire()
-                       self._thread.postException(KeyboardInterrupt)
-                       if self._thread.isBlocked():
-                               self._thread.start()
-                       lock.release()
-       
-       def _run(self):
-               if self.run_with_interpreter:
-                       if self.editgroup.editor.changed:
-                               import EasyDialogs
-                               import Qd; Qd.InitCursor()
-                               save = EasyDialogs.AskYesNoCancel('Save Â³%s² before running?' % self.title, 1)
-                               if save > 0:
-                                       if self.domenu_save():
-                                               return
-                               elif save < 0:
-                                       return
-                       if not self.path:
-                               raise W.AlertError, "Can't run unsaved file"
-                       self._run_with_interpreter()
-               else:
-                       pytext = self.editgroup.editor.get()
-                       globals, file, modname = self.getenvironment()
-                       self.execstring(pytext, globals, globals, file, modname)
-       
-       def _run_with_interpreter(self):
-               interp_path = os.path.join(sys.exec_prefix, "PythonInterpreter")
-               if not os.path.exists(interp_path):
-                       raise W.AlertError, "Can't find interpreter"
-               import findertools
-               XXX
-       
-       def runselection(self):
-               if self._threadstate == (0, 0):
-                       self._runselection()
-               elif self._threadstate == (1, 1):
-                       self._thread.block()
-                       self.setthreadstate((1, 2))
-               elif self._threadstate == (1, 2):
-                       self._thread.start()
-                       self.setthreadstate((1, 1))
-       
-       def _runselection(self):
-               if self.run_with_interpreter:
-                       raise W.AlertError, "Can't run selection with Interpreter"
-               globals, file, modname = self.getenvironment()
-               locals = globals
-               # select whole lines
-               self.editgroup.editor.expandselection()
-               
-               # get lineno of first selected line
-               selstart, selend = self.editgroup.editor.getselection()
-               selstart, selend = min(selstart, selend), max(selstart, selend)
-               selfirstline = self.editgroup.editor.offsettoline(selstart)
-               alltext = self.editgroup.editor.get()
-               pytext = alltext[selstart:selend]
-               lines = string.split(pytext, '\r')
-               indent = getminindent(lines)
-               if indent == 1:
-                       classname = ''
-                       alllines = string.split(alltext, '\r')
-                       for i in range(selfirstline - 1, -1, -1):
-                               line = alllines[i]
-                               if line[:6] == 'class ':
-                                       classname = string.split(string.strip(line[6:]))[0]
-                                       classend = identifieRE_match(classname)
-                                       if classend < 1:
-                                               raise W.AlertError, 'Can¹t find a class.'
-                                       classname = classname[:classend]
-                                       break
-                               elif line and line[0] not in '\t#':
-                                       raise W.AlertError, 'Can¹t find a class.'
-                       else:
-                               raise W.AlertError, 'Can¹t find a class.'
-                       if globals.has_key(classname):
-                               locals = globals[classname].__dict__
-                       else:
-                               raise W.AlertError, 'Can¹t find class Â³%s².' % classname
-                       # dedent to top level
-                       for i in range(len(lines)):
-                               lines[i] = lines[i][1:]
-                       pytext = string.join(lines, '\r')
-               elif indent > 0:
-                       raise W.AlertError, 'Can¹t run indented code.'
-               
-               # add "newlines" to fool compile/exec: 
-               # now a traceback will give the right line number
-               pytext = selfirstline * '\r' + pytext
-               self.execstring(pytext, globals, locals, file, modname)
-       
-       def setthreadstate(self, state):
-               oldstate = self._threadstate
-               if oldstate[0] <> state[0]:
-                       self.runbutton.settitle(runButtonLabels[state[0]])
-               if oldstate[1] <> state[1]:
-                       self.runselbutton.settitle(runSelButtonLabels[state[1]])
-               self._threadstate = state
-       
-       def _exec_threadwrapper(self, *args, **kwargs):
-               apply(execstring, args, kwargs)
-               self.setthreadstate((0, 0))
-               self._thread = None
-       
-       def execstring(self, pytext, globals, locals, file, modname):
-               tracebackwindow.hide()
-               # update windows
-               W.getapplication().refreshwindows()
-               if self.run_as_main:
-                       modname = "__main__"
-               if self.path:
-                       dir = os.path.dirname(self.path)
-                       savedir = os.getcwd()
-                       os.chdir(dir)
-                       sys.path.insert(0, dir)
-               else:
-                       cwdindex = None
-               try:
-                       if haveThreading:
-                               self._thread = Wthreading.Thread(os.path.basename(file), 
-                                                       self._exec_threadwrapper, pytext, globals, locals, file, self.debugging, 
-                                                       modname, self.profiling)
-                               self.setthreadstate((1, 1))
-                               self._thread.start()
-                       else:
-                               execstring(pytext, globals, locals, file, self.debugging, 
-                                                       modname, self.profiling)
-               finally:
-                       if self.path:
-                               os.chdir(savedir)
-                               del sys.path[0]
-       
-       def getenvironment(self):
-               if self.path:
-                       file = self.path
-                       dir = os.path.dirname(file)
-                       # check if we're part of a package
-                       modname = ""
-                       while os.path.exists(os.path.join(dir, "__init__.py")):
-                               dir, dirname = os.path.split(dir)
-                               modname = dirname + '.' + modname
-                       subname = _filename_as_modname(self.title)
-                       if modname:
-                               if subname == "__init__":
-                                       # strip trailing period
-                                       modname = modname[:-1]
-                               else:
-                                       modname = modname + subname
-                       else:
-                               modname = subname
-                       if sys.modules.has_key(modname):
-                               globals = sys.modules[modname].__dict__
-                               self.globals = {}
-                       else:
-                               globals = self.globals
-                               modname = subname
-               else:
-                       file = '<%s>' % self.title
-                       globals = self.globals
-                       modname = file
-               return globals, file, modname
-       
-       def write(self, stuff):
-               """for use as stdout"""
-               self._buf = self._buf + stuff
-               if '\n' in self._buf:
-                       self.flush()
-       
-       def flush(self):
-               stuff = string.split(self._buf, '\n')
-               stuff = string.join(stuff, '\r')
-               end = self.editgroup.editor.ted.WEGetTextLength()
-               self.editgroup.editor.ted.WESetSelection(end, end)
-               self.editgroup.editor.ted.WEInsert(stuff, None, None)
-               self.editgroup.editor.updatescrollbars()
-               self._buf = ""
-               # ? optional:
-               #self.wid.SelectWindow()
-       
-       def getclasslist(self):
-               from string import find, strip
-               methodRE = re.compile(r"\r[ \t]+def ")
-               findMethod = methodRE.search
-               editor = self.editgroup.editor
-               text = editor.get()
-               list = []
-               append = list.append
-               functag = "func"
-               classtag = "class"
-               methodtag = "method"
-               pos = -1
-               if text[:4] == 'def ':
-                       append((pos + 4, functag))
-                       pos = 4
-               while 1:
-                       pos = find(text, '\rdef ', pos + 1)
-                       if pos < 0:
-                               break
-                       append((pos + 5, functag))
-               pos = -1
-               if text[:6] == 'class ':
-                       append((pos + 6, classtag))
-                       pos = 6
-               while 1:
-                       pos = find(text, '\rclass ', pos + 1)
-                       if pos < 0:
-                               break
-                       append((pos + 7, classtag))
-               pos = 0
-               while 1:
-                       m = findMethod(text, pos + 1)
-                       if m is None:
-                               break
-                       pos = m.regs[0][0]
-                       #pos = find(text, '\r\tdef ', pos + 1)
-                       append((m.regs[0][1], methodtag))
-               list.sort()
-               classlist = []
-               methodlistappend = None
-               offsetToLine = editor.ted.WEOffsetToLine
-               getLineRange = editor.ted.WEGetLineRange
-               append = classlist.append
-               for pos, tag in list:
-                       lineno = offsetToLine(pos)
-                       lineStart, lineEnd = getLineRange(lineno)
-                       line = strip(text[pos:lineEnd])
-                       line = line[:identifieRE_match(line)]
-                       if tag is functag:
-                               append(("def " + line, lineno + 1))
-                               methodlistappend = None
-                       elif tag is classtag:
-                               append(["class " + line])
-                               methodlistappend = classlist[-1].append
-                       elif methodlistappend and tag is methodtag:
-                               methodlistappend(("def " + line, lineno + 1))
-               return classlist
-       
-       def popselectline(self, lineno):
-               self.editgroup.editor.selectline(lineno - 1)
-       
-       def selectline(self, lineno, charoffset = 0):
-               self.editgroup.editor.selectline(lineno - 1, charoffset)
-
-class _saveoptions:
-       
-       def __init__(self, creator):
-               self.rv = None
-               self.w = w = W.ModalDialog((240, 140), 'Save options')
-               radiobuttons = []
-               w.label = W.TextBox((8, 8, 80, 18), "File creator:")
-               w.ide_radio = W.RadioButton((8, 22, 160, 18), "This application", radiobuttons, self.ide_hit)
-               w.interp_radio = W.RadioButton((8, 42, 160, 18), "Python Interpreter", radiobuttons, self.interp_hit)
-               w.other_radio = W.RadioButton((8, 62, 50, 18), "Other:", radiobuttons)
-               w.other_creator = W.EditText((62, 62, 40, 20), creator, self.otherselect)
-               w.cancelbutton = W.Button((-180, -30, 80, 16), "Cancel", self.cancelbuttonhit)
-               w.okbutton = W.Button((-90, -30, 80, 16), "Done", self.okbuttonhit)
-               w.setdefaultbutton(w.okbutton)
-               if creator == 'Pyth':
-                       w.interp_radio.set(1)
-               elif creator == W._signature:
-                       w.ide_radio.set(1)
-               else:
-                       w.other_radio.set(1)
-               w.bind("cmd.", w.cancelbutton.push)
-               w.open()
-       
-       def ide_hit(self):
-               self.w.other_creator.set(W._signature)
-       
-       def interp_hit(self):
-               self.w.other_creator.set("Pyth")
-       
-       def otherselect(self, *args):
-               sel_from, sel_to = self.w.other_creator.getselection()
-               creator = self.w.other_creator.get()[:4]
-               creator = creator + " " * (4 - len(creator))
-               self.w.other_creator.set(creator)
-               self.w.other_creator.setselection(sel_from, sel_to)
-               self.w.other_radio.set(1)
-       
-       def cancelbuttonhit(self):
-               self.w.close()
-       
-       def okbuttonhit(self):
-               self.rv = self.w.other_creator.get()[:4]
-               self.w.close()
-
-
-def SaveOptions(creator):
-       s = _saveoptions(creator)
-       return s.rv
-
-
-def _escape(where, what) : 
-       return string.join(string.split(where, what), '\\' + what)
-
-def _makewholewordpattern(word):
-       # first, escape special regex chars
-       for esc in "\\[].*^+$?":
-               word = _escape(word, esc)
-       notwordcharspat = '[^' + _wordchars + ']'
-       pattern = '(' + word + ')'
-       if word[0] in _wordchars:
-               pattern = notwordcharspat + pattern
-       if word[-1] in _wordchars:
-               pattern = pattern + notwordcharspat
-       return re.compile(pattern)
-
-class SearchEngine:
-       
-       def __init__(self):
-               self.visible = 0
-               self.w = None
-               self.parms = {  "find": "",
-                                       "replace": "",
-                                       "wrap": 1,
-                                       "casesens": 1,
-                                       "wholeword": 1
-                               }
-               import MacPrefs
-               prefs = MacPrefs.GetPrefs(W.getapplication().preffilepath)
-               if prefs.searchengine:
-                       self.parms["casesens"] = prefs.searchengine.casesens
-                       self.parms["wrap"] = prefs.searchengine.wrap
-                       self.parms["wholeword"] = prefs.searchengine.wholeword
-       
-       def show(self):
-               self.visible = 1
-               if self.w:
-                       self.w.wid.ShowWindow()
-                       self.w.wid.SelectWindow()
-                       self.w.find.edit.select(1)
-                       self.w.find.edit.selectall()
-                       return
-               self.w = W.Dialog((420, 150), "Find")
-               
-               self.w.find = TitledEditText((10, 4, 300, 36), "Search for:")
-               self.w.replace = TitledEditText((10, 100, 300, 36), "Replace with:")
-               
-               self.w.boxes = W.Group((10, 50, 300, 40))
-               self.w.boxes.casesens = W.CheckBox((0, 0, 100, 16), "Case sensitive")
-               self.w.boxes.wholeword = W.CheckBox((0, 20, 100, 16), "Whole word")
-               self.w.boxes.wrap = W.CheckBox((110, 0, 100, 16), "Wrap around")
-               
-               self.buttons = [        ("Find",                "cmdf",  self.find), 
-                                       ("Replace",          "cmdr",     self.replace), 
-                                       ("Replace all",  None,   self.replaceall), 
-                                       ("Don¹t find",  "cmdd",  self.dont), 
-                                       ("Cancel",            "cmd.",    self.cancel)
-                               ]
-               for i in range(len(self.buttons)):
-                       bounds = -90, 22 + i * 24, 80, 16
-                       title, shortcut, callback = self.buttons[i]
-                       self.w[title] = W.Button(bounds, title, callback)
-                       if shortcut:
-                               self.w.bind(shortcut, self.w[title].push)
-               self.w.setdefaultbutton(self.w["Don¹t find"])
-               self.w.find.edit.bind("<key>", self.key)
-               self.w.bind("<activate>", self.activate)
-               self.w.bind("<close>", self.close)
-               self.w.open()
-               self.setparms()
-               self.w.find.edit.select(1)
-               self.w.find.edit.selectall()
-               self.checkbuttons()
-       
-       def close(self):
-               self.hide()
-               return -1
-       
-       def key(self, char, modifiers):
-               self.w.find.edit.key(char, modifiers)
-               self.checkbuttons()
-               return 1
-       
-       def activate(self, onoff):
-               if onoff:
-                       self.checkbuttons()
-       
-       def checkbuttons(self):
-               editor = findeditor(self)
-               if editor:
-                       if self.w.find.get():
-                               for title, cmd, call in self.buttons[:-2]:
-                                       self.w[title].enable(1)
-                               self.w.setdefaultbutton(self.w["Find"])
-                       else:
-                               for title, cmd, call in self.buttons[:-2]:
-                                       self.w[title].enable(0)
-                               self.w.setdefaultbutton(self.w["Don¹t find"])
-               else:
-                       for title, cmd, call in self.buttons[:-2]:
-                               self.w[title].enable(0)
-                       self.w.setdefaultbutton(self.w["Don¹t find"])
-       
-       def find(self):
-               self.getparmsfromwindow()
-               if self.findnext():
-                       self.hide()
-       
-       def replace(self):
-               editor = findeditor(self)
-               if not editor:
-                       return
-               if self.visible:
-                       self.getparmsfromwindow()
-               text = editor.getselectedtext()
-               find = self.parms["find"]
-               if not self.parms["casesens"]:
-                       find = string.lower(find)
-                       text = string.lower(text)
-               if text == find:
-                       self.hide()
-                       editor.insert(self.parms["replace"])
-       
-       def replaceall(self):
-               editor = findeditor(self)
-               if not editor:
-                       return
-               if self.visible:
-                       self.getparmsfromwindow()
-               W.SetCursor("watch")
-               find = self.parms["find"]
-               if not find:
-                       return
-               findlen = len(find)
-               replace = self.parms["replace"]
-               replacelen = len(replace)
-               Text = editor.get()
-               if not self.parms["casesens"]:
-                       find = string.lower(find)
-                       text = string.lower(Text)
-               else:
-                       text = Text
-               newtext = ""
-               pos = 0
-               counter = 0
-               while 1:
-                       if self.parms["wholeword"]:
-                               wholewordRE = _makewholewordpattern(find)
-                               match = wholewordRE.search(text, pos)
-                               if match:
-                                       pos = match.start(1)
-                               else:
-                                       pos = -1
-                       else:
-                               pos = string.find(text, find, pos)
-                       if pos < 0:
-                               break
-                       counter = counter + 1
-                       text = text[:pos] + replace + text[pos + findlen:]
-                       Text = Text[:pos] + replace + Text[pos + findlen:]
-                       pos = pos + replacelen
-               W.SetCursor("arrow")
-               if counter:
-                       self.hide()
-                       import EasyDialogs
-                       import Res
-                       editor.changed = 1
-                       editor.selchanged = 1
-                       editor.ted.WEUseText(Res.Resource(Text))
-                       editor.ted.WECalText()
-                       editor.SetPort()
-                       editor.GetWindow().InvalWindowRect(editor._bounds)
-                       #editor.ted.WEUpdate(self.w.wid.GetWindowPort().visRgn)
-                       EasyDialogs.Message("Replaced %d occurrences" % counter)
-       
-       def dont(self):
-               self.getparmsfromwindow()
-               self.hide()
-       
-       def replacefind(self):
-               self.replace()
-               self.findnext()
-       
-       def setfindstring(self):
-               editor = findeditor(self)
-               if not editor:
-                       return
-               find = editor.getselectedtext()
-               if not find:
-                       return
-               self.parms["find"] = find
-               if self.w:
-                       self.w.find.edit.set(self.parms["find"])
-                       self.w.find.edit.selectall()
-       
-       def findnext(self):
-               editor = findeditor(self)
-               if not editor:
-                       return
-               find = self.parms["find"]
-               if not find:
-                       return
-               text = editor.get()
-               if not self.parms["casesens"]:
-                       find = string.lower(find)
-                       text = string.lower(text)
-               selstart, selend = editor.getselection()
-               selstart, selend = min(selstart, selend), max(selstart, selend)
-               if self.parms["wholeword"]:
-                       wholewordRE = _makewholewordpattern(find)
-                       match = wholewordRE.search(text, selend)
-                       if match:
-                               pos = match.start(1)
-                       else:
-                               pos = -1
-               else:
-                       pos = string.find(text, find, selend)
-               if pos >= 0:
-                       editor.setselection(pos, pos + len(find))
-                       return 1
-               elif self.parms["wrap"]:
-                       if self.parms["wholeword"]:
-                               match = wholewordRE.search(text, 0)
-                               if match:
-                                       pos = match.start(1)
-                               else:
-                                       pos = -1
-                       else:
-                               pos = string.find(text, find)
-                       if selstart > pos >= 0:
-                               editor.setselection(pos, pos + len(find))
-                               return 1
-       
-       def setparms(self):
-               for key, value in self.parms.items():
-                       try:
-                               self.w[key].set(value)
-                       except KeyError:
-                               self.w.boxes[key].set(value)
-       
-       def getparmsfromwindow(self):
-               if not self.w:
-                       return
-               for key, value in self.parms.items():
-                       try:
-                               value = self.w[key].get()
-                       except KeyError:
-                               value = self.w.boxes[key].get()
-                       self.parms[key] = value
-       
-       def cancel(self):
-               self.hide()
-               self.setparms()
-       
-       def hide(self):
-               if self.w:
-                       self.w.wid.HideWindow()
-                       self.visible = 0
-       
-       def writeprefs(self):
-               import MacPrefs
-               self.getparmsfromwindow()
-               prefs = MacPrefs.GetPrefs(W.getapplication().preffilepath)
-               prefs.searchengine.casesens = self.parms["casesens"]
-               prefs.searchengine.wrap = self.parms["wrap"]
-               prefs.searchengine.wholeword = self.parms["wholeword"]
-               prefs.save()
-       
-
-class TitledEditText(W.Group):
-       
-       def __init__(self, possize, title, text = ""):
-               W.Group.__init__(self, possize)
-               self.title = W.TextBox((0, 0, 0, 16), title)
-               self.edit = W.EditText((0, 16, 0, 0), text)
-       
-       def set(self, value):
-               self.edit.set(value)
-       
-       def get(self):
-               return self.edit.get()
-
-
-class ClassFinder(W.PopupWidget):
-       
-       def click(self, point, modifiers):
-               W.SetCursor("watch")
-               self.set(self._parentwindow.getclasslist())
-               W.PopupWidget.click(self, point, modifiers)
-
-
-def getminindent(lines):
-       indent = -1
-       for line in lines:
-               stripped = string.strip(line)
-               if not stripped or stripped[0] == '#':
-                       continue
-               if indent < 0 or line[:indent] <> indent * '\t':
-                       indent = 0
-                       for c in line:
-                               if c <> '\t':
-                                       break
-                               indent = indent + 1
-       return indent
-
-
-def getoptionkey():
-       return not not ord(Evt.GetKeys()[7]) & 0x04
-
-
-def execstring(pytext, globals, locals, filename="<string>", debugging=0, 
-                       modname="__main__", profiling=0):
-       if debugging:
-               import PyDebugger, bdb
-               BdbQuit = bdb.BdbQuit
-       else:
-               BdbQuit = 'BdbQuitDummyException'
-       pytext = string.split(pytext, '\r')
-       pytext = string.join(pytext, '\n') + '\n'
-       W.SetCursor("watch")
-       globals['__name__'] = modname
-       globals['__file__'] = filename
-       sys.argv = [filename]
-       try:
-               code = compile(pytext, filename, "exec")
-       except:
-               # XXXX BAAAADDD.... We let tracebackwindow decide to treat SyntaxError 
-               # special. That's wrong because THIS case is special (could be literal 
-               # overflow!) and SyntaxError could mean we need a traceback (syntax error 
-               # in imported module!!!
-               tracebackwindow.traceback(1, filename)
-               return
-       try:
-               if debugging:
-                       if haveThreading:
-                               lock = Wthreading.Lock()
-                               lock.acquire()
-                               PyDebugger.startfromhere()
-                               lock.release()
-                       else:
-                               PyDebugger.startfromhere()
-               elif not haveThreading:
-                       MacOS.EnableAppswitch(0)
-               try:
-                       if profiling:
-                               import profile, ProfileBrowser
-                               p = profile.Profile()
-                               p.set_cmd(filename)
-                               try:
-                                       p.runctx(code, globals, locals)
-                               finally:
-                                       import pstats
-                                       
-                                       stats = pstats.Stats(p)
-                                       ProfileBrowser.ProfileBrowser(stats)
-                       else:
-                               exec code in globals, locals
-               finally:
-                       if not haveThreading:
-                               MacOS.EnableAppswitch(-1)
-       except W.AlertError, detail:
-               raise W.AlertError, detail
-       except (KeyboardInterrupt, BdbQuit):
-               pass
-       except:
-               if haveThreading:
-                       import continuation
-                       lock = Wthreading.Lock()
-                       lock.acquire()
-               if debugging:
-                       sys.settrace(None)
-                       PyDebugger.postmortem(sys.exc_type, sys.exc_value, sys.exc_traceback)
-                       return
-               else:
-                       tracebackwindow.traceback(1, filename)
-               if haveThreading:
-                       lock.release()
-       if debugging:
-               sys.settrace(None)
-               PyDebugger.stop()
-
-
-_identifieRE = re.compile("[A-Za-z_][A-Za-z_0-9]*")
-
-def identifieRE_match(str):
-       match = _identifieRE.match(str)
-       if not match:
-               return -1
-       return match.end()
-
-def _filename_as_modname(fname):
-       if fname[-3:] == '.py':
-               modname = fname[:-3]
-               match = _identifieRE.match(modname)
-               if match and match.start() == 0 and match.end() == len(modname):
-                       return string.join(string.split(modname, '.'), '_')
-
-def findeditor(topwindow, fromtop = 0):
-       wid = Win.FrontWindow()
-       if not fromtop:
-               if topwindow.w and wid == topwindow.w.wid:
-                       wid = topwindow.w.wid.GetNextWindow()
-       if not wid:
-               return
-       app = W.getapplication()
-       if app._windows.has_key(wid): # KeyError otherwise can happen in RoboFog :-(
-               window = W.getapplication()._windows[wid]
-       else:
-               return
-       if not isinstance(window, Editor):
-               return
-       return window.editgroup.editor
-
-
-class _EditorDefaultSettings:
-       
-       def __init__(self):
-               self.template = "%s, %d point"
-               self.fontsettings, self.tabsettings, self.windowsize = geteditorprefs()
-               self.w = W.Dialog((328, 120), "Editor default settings")
-               self.w.setfontbutton = W.Button((8, 8, 80, 16), "Set font\8a", self.dofont)
-               self.w.fonttext = W.TextBox((98, 10, -8, 14), self.template % (self.fontsettings[0], self.fontsettings[2]))
-               
-               self.w.picksizebutton = W.Button((8, 50, 80, 16), "Front window", self.picksize)
-               self.w.xsizelabel = W.TextBox((98, 32, 40, 14), "Width:")
-               self.w.ysizelabel = W.TextBox((148, 32, 40, 14), "Height:")
-               self.w.xsize = W.EditText((98, 48, 40, 20), `self.windowsize[0]`)
-               self.w.ysize = W.EditText((148, 48, 40, 20), `self.windowsize[1]`)
-               
-               self.w.cancelbutton = W.Button((-180, -26, 80, 16), "Cancel", self.cancel)
-               self.w.okbutton = W.Button((-90, -26, 80, 16), "Done", self.ok)
-               self.w.setdefaultbutton(self.w.okbutton)
-               self.w.bind('cmd.', self.w.cancelbutton.push)
-               self.w.open()
-       
-       def picksize(self):
-               app = W.getapplication()
-               editor = findeditor(self)
-               if editor is not None:
-                       width, height = editor._parentwindow._bounds[2:]
-                       self.w.xsize.set(`width`)
-                       self.w.ysize.set(`height`)
-               else:
-                       raise W.AlertError, "No edit window found"
-       
-       def dofont(self):
-               import FontSettings
-               settings = FontSettings.FontDialog(self.fontsettings, self.tabsettings)
-               if settings:
-                       self.fontsettings, self.tabsettings = settings
-                       sys.exc_traceback = None
-                       self.w.fonttext.set(self.template % (self.fontsettings[0], self.fontsettings[2]))
-       
-       def close(self):
-               self.w.close()
-               del self.w
-       
-       def cancel(self):
-               self.close()
-       
-       def ok(self):
-               try:
-                       width = string.atoi(self.w.xsize.get())
-               except:
-                       self.w.xsize.select(1)
-                       self.w.xsize.selectall()
-                       raise W.AlertError, "Bad number for window width"
-               try:
-                       height = string.atoi(self.w.ysize.get())
-               except:
-                       self.w.ysize.select(1)
-                       self.w.ysize.selectall()
-                       raise W.AlertError, "Bad number for window height"
-               self.windowsize = width, height
-               seteditorprefs(self.fontsettings, self.tabsettings, self.windowsize)
-               self.close()
-
-def geteditorprefs():
-       import MacPrefs
-       prefs = MacPrefs.GetPrefs(W.getapplication().preffilepath)
-       try:
-               fontsettings = prefs.pyedit.fontsettings
-               tabsettings = prefs.pyedit.tabsettings
-               windowsize = prefs.pyedit.windowsize
-       except:
-               fontsettings = prefs.pyedit.fontsettings = ("Python-Sans", 0, 9, (0, 0, 0))
-               tabsettings = prefs.pyedit.tabsettings = (8, 1)
-               windowsize = prefs.pyedit.windowsize = (500, 250)
-               sys.exc_traceback = None
-       return fontsettings, tabsettings, windowsize
-
-def seteditorprefs(fontsettings, tabsettings, windowsize):
-       import MacPrefs
-       prefs = MacPrefs.GetPrefs(W.getapplication().preffilepath)
-       prefs.pyedit.fontsettings = fontsettings
-       prefs.pyedit.tabsettings = tabsettings
-       prefs.pyedit.windowsize = windowsize
-       prefs.save()
-
-_defaultSettingsEditor = None
-
-def EditorDefaultSettings():
-       global _defaultSettingsEditor
-       if _defaultSettingsEditor is None or not hasattr(_defaultSettingsEditor, "w"):
-               _defaultSettingsEditor = _EditorDefaultSettings()
-       else:
-               _defaultSettingsEditor.w.select()
-
-def resolvealiases(path):
-       try:
-               return macfs.ResolveAliasFile(path)[0].as_pathname()
-       except (macfs.error, ValueError), (error, str):
-               if error <> -120:
-                       raise
-               dir, file = os.path.split(path)
-               return os.path.join(resolvealiases(dir), file)
-
-searchengine = SearchEngine()
-tracebackwindow = Wtraceback.TraceBack()
diff --git a/Mac/Tools/IDE/PyFontify.py b/Mac/Tools/IDE/PyFontify.py
deleted file mode 100644 (file)
index b5d6102..0000000
+++ /dev/null
@@ -1,152 +0,0 @@
-"""Module to analyze Python source code; for syntax coloring tools.
-
-Interface:
-       tags = fontify(pytext, searchfrom, searchto)
-
-The 'pytext' argument is a string containing Python source code.
-The (optional) arguments 'searchfrom' and 'searchto' may contain a slice in pytext. 
-The returned value is a list of tuples, formatted like this:
-       [('keyword', 0, 6, None), ('keyword', 11, 17, None), ('comment', 23, 53, None), etc. ]
-The tuple contents are always like this:
-       (tag, startindex, endindex, sublist)
-tag is one of 'keyword', 'string', 'comment' or 'identifier'
-sublist is not used, hence always None. 
-"""
-
-# Based on FontText.py by Mitchell S. Chapman,
-# which was modified by Zachary Roadhouse,
-# then un-Tk'd by Just van Rossum.
-# Many thanks for regular expression debugging & authoring are due to:
-#      Tim (the-incredib-ly y'rs) Peters and Cristian Tismer
-# So, who owns the copyright? ;-) How about this:
-# Copyright 1996-2000: 
-#      Mitchell S. Chapman,
-#      Zachary Roadhouse,
-#      Tim Peters,
-#      Just van Rossum
-
-__version__ = "0.3.3"
-
-import string, re
-
-# First a little helper, since I don't like to repeat things. (Tismer speaking)
-import string
-def replace(where, what, with):
-       return string.join(string.split(where, what), with)
-
-# This list of keywords is taken from ref/node13.html of the
-# Python 1.3 HTML documentation. ("access" is intentionally omitted.)
-keywordsList = [
-       "assert", "exec",
-       "del", "from", "lambda", "return",
-       "and", "elif", "global", "not", "try",
-       "break", "else", "if", "or", "while",
-       "class", "except", "import", "pass",
-       "continue", "finally", "in", "print",
-       "def", "for", "is", "raise"]
-
-# Build up a regular expression which will match anything
-# interesting, including multi-line triple-quoted strings.
-commentPat = "#.*"
-
-pat = "q[^\q\n]*\(\\\\[\000-\377][^\q\n]*\)*q"
-quotePat = replace(pat, "q", "'") + "\|" + replace(pat, 'q', '"')
-
-# Way to go, Tim!
-pat = """
-       qqq
-       [^\\q]*
-       \(
-               \(      \\\\[\000-\377]
-               \|      q
-                       \(      \\\\[\000-\377]
-                       \|      [^\\q]
-                       \|      q
-                               \(      \\\\[\000-\377]
-                               \|      [^\\q]
-                               \)
-                       \)
-               \)
-               [^\\q]*
-       \)*
-       qqq
-"""
-pat = string.join(string.split(pat), '')       # get rid of whitespace
-tripleQuotePat = replace(pat, "q", "'") + "\|" + replace(pat, 'q', '"')
-
-# Build up a regular expression which matches all and only
-# Python keywords. This will let us skip the uninteresting
-# identifier references.
-# nonKeyPat identifies characters which may legally precede
-# a keyword pattern.
-nonKeyPat = "\(^\|[^a-zA-Z0-9_.\"']\)"
-
-keyPat = nonKeyPat + "\("
-for keyword in keywordsList:
-       keyPat = keyPat + keyword + "\|"
-keyPat = keyPat[:-2] + "\)" + nonKeyPat
-
-matchPat = commentPat + "\|" + keyPat + "\|" + tripleQuotePat + "\|" + quotePat
-matchRE = re.compile(matchPat)
-
-idKeyPat = "[ \t]*[A-Za-z_][A-Za-z_0-9.]*"     # Ident w. leading whitespace.
-idRE = re.compile(idKeyPat)
-
-
-def fontify(pytext, searchfrom = 0, searchto = None):
-       if searchto is None:
-               searchto = len(pytext)
-       # Cache a few attributes for quicker reference.
-       search = matchRE.search
-       idSearch = idRE.search
-       
-       tags = []
-       tags_append = tags.append
-       commentTag = 'comment'
-       stringTag = 'string'
-       keywordTag = 'keyword'
-       identifierTag = 'identifier'
-       
-       start = 0
-       end = searchfrom
-       while 1:
-               m = search(pytext, end)
-               if not m or m.start() >= searchto:
-                       break   # EXIT LOOP
-               match = m.group(0)
-               end = start + len(match)
-               c = match[0]
-               if c not in "#'\"":
-                       # Must have matched a keyword.
-                       if start <> searchfrom:
-                               # there's still a redundant char before and after it, strip!
-                               match = match[1:-1]
-                               start = start + 1
-                       else:
-                               # this is the first keyword in the text.
-                               # Only a space at the end.
-                               match = match[:-1]
-                       end = end - 1
-                       tags_append((keywordTag, start, end, None))
-                       # If this was a defining keyword, look ahead to the
-                       # following identifier.
-                       if match in ["def", "class"]:
-                               m = idSearch(pytext, end)
-                               if m and m.start() == end:
-                                       match = m.group(0)
-                                       end = start + len(match)
-                                       tags_append((identifierTag, start, end, None))
-               elif c == "#":
-                       tags_append((commentTag, start, end, None))
-               else:
-                       tags_append((stringTag, start, end, None))
-       return tags
-
-
-def test(path):
-       f = open(path)
-       text = f.read()
-       f.close()
-       tags = fontify(text)
-       for tag, start, end, sublist in tags:
-               print tag, `text[start:end]`
diff --git a/Mac/Tools/IDE/PythonIDE.py b/Mac/Tools/IDE/PythonIDE.py
deleted file mode 100644 (file)
index b80fd5f..0000000
+++ /dev/null
@@ -1,41 +0,0 @@
-# copyright 1996-1999 Just van Rossum, Letterror. just@letterror.com
-
-# keep this (__main__) as clean as possible, since we are using 
-# it like the "normal" interpreter.
-
-__version__ = '1.0'
-
-
-def init():
-       import MacOS
-       MacOS.EnableAppswitch(-1)
-       
-       import Qd, QuickDraw
-       Qd.SetCursor(Qd.GetCursor(QuickDraw.watchCursor).data)
-       
-       import Res, sys, os
-       try:
-               Res.GetResource('DITL', 468)
-       except Res.Error:
-               # we're not an applet
-               Res.FSpOpenResFile(os.path.join(sys.exec_prefix, ":Mac:Tools:IDE:PythonIDE.rsrc"), 1)
-               Res.FSpOpenResFile(os.path.join(sys.exec_prefix, ":Mac:Tools:IDE:Widgets.rsrc"), 1)
-               ide_path = os.path.join(sys.exec_prefix, ":Mac:Tools:IDE")
-       else:
-               # we're an applet
-               try:
-                       Res.GetResource('CURS', 468)
-               except Res.Error:
-                       Res.FSpOpenResFile(os.path.join(sys.exec_prefix, ":Mac:Tools:IDE:Widgets.rsrc"), 1)
-                       ide_path = os.path.join(sys.exec_prefix, ":Mac:Tools:IDE")
-               else:
-                       # we're a full blown applet
-                       ide_path = sys.argv[0]
-       if ide_path not in sys.path:
-               sys.path.insert(0, ide_path)
-
-
-init()
-del init
-
-import PythonIDEMain
diff --git a/Mac/Tools/IDE/PythonIDE.rsrc b/Mac/Tools/IDE/PythonIDE.rsrc
deleted file mode 100644 (file)
index 1d6ca2c..0000000
+++ /dev/null
@@ -1 +0,0 @@
-(This file must be converted with BinHex 4.0)\r:!!"bFh*M8P0&4!#3#$@LUdS!N!3"!!!!-qd!!$,Y!!!"YIHEcGlIHUcGhQHEhHh\rhR0lYji[YlIqEhrlr!1rpr`2f$P"jG'K[ENP%45jbFh*MTD@Pb@mZF(PKC'9bFfj\rdFf8#!(*cFQ058d9%!3$rN!B!N"#bh8[9!*!'0B!!-Z[r%fQEhYhQQXlGhhQplHe\rlcHhIHVlHprm%lrpj[Yldr`9SRGrhRGrlr`(jcl2r!I!!+q[r%rDEcYhZHEhGhQQ\rFhYhSVGlIq,hIpIm#D,hHp2m&D+cZD+hIUrm"m!mQk[m1HXcYhILVlZhfQphHlkc\rImIm$D+hYlrAr"(LYhrL[!!!SmLMb!*!&D!&N!"%#r``!rri!!!")!!!!5!#3"fJ\r"C!#3"3%!#J#3"@J"C!#BJ@3!N!9S!@3!N!P)!!!!5!#3"3J!!3!)!*!2+!!!!2m\r!!2q3"J!"rT!'!!,pN!B!!rb3"J!%qj!'!!AkN!B!"[Q3"J!(q*!'!!MhN!B!#ID\r3"J!+pC!'!![dN!B!$213"J!0mT!'!!laN!B!$r#3"J!3lj!'!"(ZN!B!%Zf3"J!\r6l*!'!"6VN!B!&HU3"J!@kC!'!"ISN!B!'1H3"J!CjT!'!"VPN!B!'q53"J!Fij!\r'!"hLN!B!(Z'3"J!Ii*!'!#$IN!B!)Gk3"J!LhC!'!#2FN!B!*0Z3"J!PfT!'!#E\rCN!B!*pL3"J!Sej!'!#R@N!B!+Y@3"J!Ve*!'!#c6N!B!,G+3"J!ZdC!'!#r3N!B\r!--q3"J!acT!'!$,0N!B!-mb3"J!dbj!'!$A+N!B!0XQ3"J!hb*!'!$M(N!B!1FD\r3"J!kaC!'!$[%N!B!2-13"J!p`T!'!$l"N!B!2m#3"J"![j!'!%'qN!B!3Vf3"J"\r$[*!'!%5lN!B!4EU3"J"'ZC!'!%HiN!B!5,H3"J"*YT!'!%UeN!B!5l53"J"-Xj!\r'!%fbN!B!6V'3"J"2X*!'!&#[N!B!8Dk3"J"5VC!'!&1XN!B!9+Z3"J"9UT!'!&D\rTN!B!9kL3"J"BTj!'!&QQN!B!@U@3"J"ET*!'!&bMN!B!AD+3"J"HSC!'!&qJN!B\r!B*q3"J"KRT!'!'+GN!B!Bjb3"J"NQj!'!'@DN!B!CTQ3"J"RQ*!'!'LAN!B!DCD\r3"J"UPC!'!'Z8N!B!E*13"J"YNT!'!'k4N!B!Ej!!N!B!F)q3"J"aMT!'!(+0N!B\r!Fib3"J"dLj!'!(@+N!B!GSQ3"J"hL*!'!(L(N!B!HBD3"J"kKC!'!(Z%N!B!I)1\r3"J"pJT!'!(k"N!B!Ii#3"J#!Ij!'!)&qN!B!JRf3"J#$I*!'!)4lN!B!KAU3"J#\r'HC!'!)GiN!B!L(H3"J#*GT!'!)TeN!B!Lh53"J#-Fj!'!)ebN!B!MR'3"J#2F*!\r'!*!!Ej!'!*&ZN!B!NQf3"J#6E*!'!*4VN!B!P@U3"J#@DC!'!*GSN!B!Q'H3"J#\rCCT!'!*TPN!B!Qf53"J#FBj!'!*eLN!B!RQ'3"J#IB*!'!+"IN!B!S9k3"J#LAC!\r'!+0FN!B!T&Z3"J#P@T!'!+CCN!B!TeL3"J#S9j!'!+P@N!B!UP@3"J#V9*!'!+a\r6N!B!V9+3"J#Z8C!'!+p3N!B!X%q3"J#a6T!'!,*0N!B!Xdb3"J#d5j!'!,9+N!B\r!YNQ3"J#h5*!'!,K(N!B!Z8D3"J#k4C!'!,Y%N!B![%13"J#p3T!'!,j"N!B![d#\r3"J$!2j!'!-%qN!B!`Mf3"J$$2*!'!-3lN!B!a6U3"J$'1C!'!-FiN!B!b$H3"J$\r*0T!'!-SeN!B!bc53"J$--j!'!-dbN!B!cM'3"J$2-*!'!0![N!B!d5k3"J$5,C!\r'!0-XN!B!e#Z3"J$9+T!'!0BTN!B!ebL3"J$B*j!'!0NQN!B!fL@3"J$E**!'!0`\rMN!B!h5+3"J$H)C!'!0mJN!B!i"q3"J$K(T!'!1)GN!B!iab3"J$N'j!'!18DN!B\r!jKQ3"J$R'*!'!1JAN!B!k4D3"J$U&C!'!1X8N!B!l"13"J$Y%T!'!1i4N!B!la#\r3"J$`$j!'!2%1N!B!mJf3"J$c$*!'!23,N!B!p3U3"J$f#C!'!2F)N!B!q!H3"J$\rj"T!'!2S&N!B!q`53"J$m!j!'!2d#N!B!rJ'3"J$r!*!,D!&N!*!&D!&N!!!!"S%\r!J3#G!!!'J3#"!*d!!!D"!)%!R3!!"S%!J3#G!!!LJJ!!1[mkq`$q1[X!rMVT!2i\rkq`!#(6Skq`!#(6Sk`J#G!!!hK3!$#Thrrrlr!iX!#S[mr`1,#JU,r2m"L`V[!!%\r+Lrcr!iX+!(Vmr`5G#J"km2hr!Cd+a3#G!!!YKJ!"1Z2qrrhr!GAMq[rrirVr!H-\rGm3!"(GAkr`(MeIVr!I$9q[m"m$V'!*d!!"H'!!$9rIrUr`#qm3!![ZEr!H-+a`#\rG!!!@K`!!F[crkIm!Ar-!!&rNr`"ba`#G!!!@K`!![[crkIm!RI-!!)[Nr`#qa`#\rG!!!@K`!!m2crkIm!eI-!!,lNr`$`a`#G!!!8K`!!m2crkIm!ir-!!0AMrmF!R3!\r!&SF!!,lmrqRr!+hc!!#Gj2m![XF!R3!!+SF!!)[mrrRr!Z1qir6r"()!(6Skp`!\r!F[6r!Z1qeI6r")X!(6Skb`#G!!!mK`!"#[$prrcr!["b#[i!!3Tbprm#ii[`r[m\r#m)X+qJ!"#Z2hr`&k#[d!!A,`q2m#m)[`rIm"R3V1!*d!!#b'!!"brIrpr`(9(IS\r!!6VMmIm"iahk!!"0qIm"m$Vk!!%GeI(r!I!kc`#G!!!RKJ!!eIhrrIm!1[J!!$V\r`r`#qqJ!!VIRr!%hi!!!km2m"i`V3!*d!!#D(!!"br2rqr`#,pJ!!RI$r!&rm!!"\rIqIm!VIB!!)[`r`"kd!#G!!!QK`!![[crr[m!1[B!!&r`r`#Yr!!!RIRr!(,f!!!\rkm2m![Y!!R3!!*)F!!2$mrrlr!!Vf!!!km2m!ir`!!0Ajr`!kpJ!!#Zrrd!#G!!!\rFK`$lrrlrp3!!#Zrrr!!!irRr!"he!1rrd!#G!!!QK`!!eIcrr[m!1[B!!$V`r`#\rqr!!!VIRr!%hf!!!km2m!ip!!R3!!QIF!!3SGqJ!"#Khk!!%+(IS!!3SkqJ!"#MV\rk!!%+1[S!!3SkqJ!"#MVj!!!km!!!1[N!!$Vj!!-k!!#Gr2rqr`"bpJ!!H[$r!)[\rm!!"kqIm!LrB!!&r`r`1Y!!!kq3!"1JVa!!%k#[S!!6S+qJ!"1JVk!!%k#[S!!4d\r+qJ!"(3Vk!!%G#[S!!4d+qJ!"(3Vk!!%G#[S!rahP!!%-qJ!,(Ch`rrr`V6S!#Th\rMr[m&[MS!#ThMr[m&[MS!#ThMr[m&[MS!#ThMr[m&[MS!#S[Mr[m&[MS!#S[Mr[m\r&[Nd!#S[Mr[m&[Nd!#S[Mr[m"e8hh!!)+HZ2qr`@q63!!HYAqr`@qFJ!!HYAqr`,\r9Lr$prrlr!H-+q!!"#[$ar`(`#[`!!3VMq[m"m"hi!!%+ir$r!AUqr[m&iiX+!%f\rqr[m#ihS+p`!"6GAqr`AML`S!6Elqr`AML`S!1Vlqr`AMR3S!1Vlqr`AMR3S!1Vl\rqr`AMR3S!1VlqrbrMR3S!1Vl`rrrMR3S!1Uh`rrrMV4d!1Uh`rrr`V4d!1Uh`rrr\r`V4d!1Uh`rrr`V4hS!!#Lq`!"6I$kr`',m2Vr!Ch`q[m"RI$kr`'Gm2Vr!ChMq[m\r"RH2kr`'YirVr!DhMq[m!VIN!!6VMq[m"VGAkr`'qeIArrIm!RIJ!!+h`r`"IqJ!\r!6IRr!+hi!!#,k2m"ikhkr`(`1[N!!+hkr`(MRIVr!H1Gr2rrr`(`RIVr!I#Gq[m\r"m*hkr`(`RIVr!I#,q[m"m*hkr`(`RIVr!I#GqIm!AqN!!$Rm!!%km,$r!)[l!!%\r+eH,rrIm!1[J!!%h`r`#qqJ!!VIRr!(,i!!!kh[m"e3Vl!!"kkIqer`!kkJ!!0[`\r!!+fZr`!Gr!!!FZ(rr[m!RIB!!+h`r`"Ir!!!6IRr!,lf!!#Gh[m!H[`!!"hSrlA\rr!0AU!!!fr3!!#Uhr!(,m!!$9iIrqr`"0pJ!!F[$r!*hm!!#GqIm!H[B!!%hHr`$\r9r!!!FZMrY2m!(HX!!$,p!!!kVIm![[`!i2rqr`!kpJ!!1[$r!2$m!!#qqIm!1[B\r!!"hGrr`!!+hSrl6r!$VV!!!`r3!!1Uhr!,lm!1$rr[m!#[B!!"h`r`$`r!!!eIR\rr!$Ve!0hrr!!!VHMrY2m!AqX!!$Ep!!!+VIm!H[`!!0AKrrlr!$Vf!!"0m2m![[`\r!!*hjr`"IpJ!!1Ylr!12m!!"kk2qdr`!kk`!!Hr`!!12cr`$MqIm!irRr!12jr`$\rMjrm!eI2r"Nd!!$S!!*hcr`$Mm2m$irrrH[B!!hVrrq2cr`Ck!!!k!!"bqIm!LrB\r!!(,fr`$9qIm!ir2r"Ud!!"d!!$Vcr`$MqIm"ir$kr`(Mm1Mr!H2`mIrrm2Vrrr$\rcrrm!r`VZ!!$Hr!!!ArIr)["I(3!!#Nh9rr"b1J!!#Nh9rr"b1J!!#MUqrr"b1J!\r!#MUqlIm"HMVq!!%k[[Ir!Y9keIlr!Ejkp[m"HMVq!!%kVIEr!SXk!2m!!MU,#[J\r!!Kek1[i!!6U,prm#m&qqr[m#eAVMq[m"m"hi!!%+irRr!DdkrJ!+1RVrrkdk#J!\r!1RVfr`Gb[[$rrp@,eIIr$Eik#J!!1R,`rlik#J!!#cTbm2r963S!!"ebm1lr"p9\r0#J!!(9r`prm3iddG!!!GAr$riddG!!!G6I$hr`H,VH2rrq1Y(I%!!+2l!!#YqIm\r"[JVk!!&b(IS!!A)GqJ!"FKhk!!"bm2m"e6Vk!!"bjrm"icVk!!&0m2Vr!I!krJ$\rp!!!+q!!!#[S!!6V`qIm!m2Vr!2$jr`#Yq!!!LrVr!I"0qJ!"1Nhk!!%keIRr!2$\rkr`$`q2m!F[S!!4eIr!$r!!%GF[S!!4h9m2m!H[S!!3UYqIm"R3Vl!!)+FJVl!!%\r+VIMr!2$lr`(`Ar)!!&cm!!%Gm2Vr!I!+h3!!Lr,r!I!Gq!!!HZMr!$Vi!!"bq[m\r!1[d!kJ!!6HMr!(,i!!!kq[m!FZm!!$VSr`#,mJ$e!!%+m2,r!+hi!!%+ir[r!,l\r[!!%+ir$r!$Vc!!"Cr!!![[Rr!&rF!!%+ir2r!(,f!!$Mk[m!H[B!!,lmr`#Gr!$\rT!!#Yk[m![[B!!*hmr`#ql3!!HZVr!H-+mJ$d!!"Imrm"m!Vh!!!kqrm!(Hi!!$V\r`r`$9m`!!82`!q2rD!!#Gmrm!(IB!!)[Ur`!kpJ!!H[cr!$Vm!1N!!&rUr`"bpJ!\r!1[cr!(VY!!!kk[m!Lr%!p!!!#[2r!,le!2cr!,lX!!$`m2m!(I3!!&,p!!!kqIm\r![YS!!(,dr`$`p3!!AqVrp3!!1[cr!!Vm!1N!!$VUr`!kpJ!!#[cr!$VX!1Vr!&r\ra!2-!!12dr`"kp3!![[hr!)[X!!#qm2m!6I3!!&$p!!!kqIm![YS!!%hdr`$9p3!\r!1ZVrp3!!1[crq`$T!!!+k[m!(I8!r2m!1Z`!!12Vr`!km3$c!!#qp2m!H[8!!,l\rpr`"kl!!!RI$r!(,d!!"8r3!!(IRr!12D!!"kmrre!!"bk[m!(IB!!%hmr`!kr!$\rT!!!kk[m!6IB!!$Vmr`"Il3!!#ZVr!(Va!2-!!2$dr`#,p3!!irhr!*hX!!#qm2m\r!1[3!!'Vm!!$`qIm!#YX!!llrrq2fr`!kpJ!!RHVr!%hf!!"kr2m!Ar`!k3!!FZV\rr!(Vf!!CIrrr`rrq,l3!$1[rrm2$r!q2rrkha!23!!ahrrq2fr`#qpJ!'#[rrm2r\rreH`!rrrrm22rr`$r#[F!!)Rm!!"kqIm!Lp`!"aeb1J!!#MUqqIm!VIF!!4h`k[m\r!eIF!!3V`r2m!eI`!kJ!"#Z2Ur`(`#[F!"hSk#J!!1RS+lJ!'HMS+!!!kH[Er"li\rk#J!!1RSkmJ$d!!GI63S!!$Tbm2Rr!$Vh!2p0"4d!!$TI1Zi!"ep0(3!!(9r`prm\r(RDhMrrrMV4hk!!"Eq`!!eIRr!$V9!!"kqIm!6IJ!!,lSr`"kq!!!VIVr!(Vp!1S\r!!)[Sr`#Gm!!!#Zm!!!Vk!!%keIRr!(,U!1d!!4h9q[m"i`Vi!!!+j`!!#[X!!3U\rYmIm"m%hl!!#Dr!!"#[$kr`(`#[J!!$Vl!!)k[R,l!!)k[R,l!!!Gp`!!RIVr!$V\ri!!#,k2m!1[J!!(Vjr`1,#J!!rJ$r#[J!!4d+r!!"#UhRr`"bl`!"#Khl!!*k[Kh\rl!!!Gq!!!1[Vr!)[h!!!kq`!#FY8kr3$r!!*b[MVl!!!Gq!!"(I$lr`#qlJ!!1[X\r!!Nh91[X!!"hi!!%+ir$r!$Vm!!#er!!!RIRr!&rh!!BGeAT01R+Gr[m&eAT01R+\rGr[m'eAT01R+GH[F!!3V`r2m!H[F!!3VMk[m!RIB!!12jr`,MLem$1Pq,RIB!"Tf\r,AcTILq2Rr`$9l3$rL`jb1Nekirrrm*eb1Nek[JVh!!#,r2m"i`Vh!!CkRA)k6AV\r9r[m$RA)k63&keIlr"Teb1Nek[JVh!!"bqrm!(Hi!"PqYHMSkHVlqr`DYHMSkHVi\rkp`!!1[$r!,lm!!"Jr!$ir`!+pJ!![ZVr!$Vf!!#Yr2m!1[B!!*hUr`!kpJ!!H[E\rrr[m!ArB!!(VKr`"kl3!!6I2r!)[f!!!kr2m!RIB!!$VdrrIr!,lf!!!+r2m![Z`\r!mrm!ir8!lrm!#[d!!&lp!!!kqIm!ir8!!)[Urr8!!(Vmrr8!!(,Ur`!GpJ!!6IE\rrr[m!1[B!!$VKr`!kl3!!(I2r!&re!2cr!(,e!26rprm!H[8!!2$pr`#,l!!!eI6\rr!+he!!#qm2m!1[d!!&lp!!!kqIm![[8!!(VVr`$9p3!!6Ihr!2$e!!!kk[re!!!\rkp[rqrr8!!$VKr`!kl!$cr`!kp3$mr`!kp3!!irArprm!H[8!!,lpr`"kl!!![[6\rr!(Ve!!#Ym2m!F[d!!',p!!!GqIm!m28!!*hUrr8!!(Vmr`!+pJ!!HZVr!$Vf!!"\rIp[rqr`!kpJ!!6H(r!%hY!!!kmrm!F[B!!!Vmr`"kp3$drrIr!)[e!!$`rIm!RH`\r!!12dr`#qp3!!eI$r!$Vp!!"Lr!!!m2Rr!"hf!!$9k[m!1[B!!,lmr`!kpJ!!VHV\rr!%hf!!#,p[rqr`"bpJ!!HZ(r!(VY!!"Imrm!RIB!!$Vmr`#YpJ!!1[6rprm![[B\r!!"hmr`$9l3!!#[2r!2$e!1rrr!!!PI`!!(Vjr`#,p`!C1SXk(3!kFZ2rrje0(3!\rkFZ2rrje0(3!kFS[h!!!kqrm!VIF!'4f,64d!1Pr9rrqY64d!1Pr9rrqY64d!1Pq\r,p`!"#[$frrlr!0Ah!!%+iq(r!I!+lJ!!eI2r!I!Gp`!![[cr!I!Gp`!!VI6rp[m\r!1[F!!)[lr`!klJ!!H[,r!%hh!!"bm2m!Lr`!!)(l!!$9qIm!1[J!!!Vl!!)+HMV\rl!!)+HMVl!!!+p`!!eIVr!%hi!!!+qJ!"HMVk!!&k6IS!!!Vi!!#YpIrpr`"kq!!\r!Lprr!+h[!!"bmIm![[J!!(,kr`#qq!!!6I2rp[m"i`Vj!!!kq[m"i`V`!!!kmIm\r"m!Vj!!%Gm2(r!H-+r!!!Er`!!3V`q[m"m"hG!!!Gq`!"(Elir`"bq`!"(3VG!!"\rkpIrpr`"Iq!!!FYrr!(Vi!2m+q`!!H[$r!)[i!!!kq[m!RIJ!!$VcrrEr!,li!!%\rGm2[r!,lh!!!Gq`!"6I$ar`(9#[N!!3VMmIm"m"hm!!"cr!!!RIRr!&rF!!F+VAS\rk1Pq,m2Er"Y9k66TILh,E!!$9p[rqr`#YpJ!![Z(r!0Af!!DGLemk6AVMm2m"i`V\rh!!"kr2m"i`Vh!!"kp2rhr`(`#[F!!(,mr`(`(IF!"PqGFMSkHVl[r`!kp`!!1[$\rr!0Am!!"3r!$irpS!!+hUr`!kf`!!H[Err[m!6IB!!(,Kr`"kpJ!!1ZVr!)[f!!!\rkr2m!LrB!!$VdrrIr!+hf!!!+r2m![[8!k[m!eI8!!2$`r`!Gr3!!82d!!$Vjr`$\r9fJ!!HZVrfJ!!1[Err[m!(IB!!$VKr`!kpJ!!#ZVr!%he!2cr!&re!26rprm!H[8\r!!12pr`"kp3!!eH[r!*he!!#qm2m!6Id!!&$p!!!kqIm![YS!!$VVr`$9fJ!!1[E\rrr[rd!1(r!"he!1Vr!$Ve!!$MrIm!1[8!!,lerrIr!%he!!#qrIm!H[8!!,lVr`"\rkp3!!H[$r!(Vp!!"3r3!!1[Rr!12D!!"kk[rD!!"0p[rqr`!kpJ!!1Z(r!$Vf!!!\rGk[m!Ar8!r2m!F[8!p2rhr`"kp3!!irhr!)[e!!$9krm!VI8!!,l`r`!kr3!!8[`\r!q2m!#YX!!+hUr`!kf`!!H[Err[m!ArB!!(VKr`"kpJ!!6HVr!)[f!!!kr2m!RIB\r!!$VdrrIr!,lf!!!Gr2m![[B!!!VUr`$Mp3$[r`!+r3!!C[`!!(Vjr`"kh!!"1[$\rUr`#Yh!!"#Z2frrlr!0Ah!!%+ir$r"VjI1J!kAlljr`(M#[F!!,lUr`(`#[F!!+h\rmr`(`(IF!!*hdrrEr!$Vh!!"kqrm!1[F!!(VTr`"0p`!!F[$r!+hm!!"Nq`!!eIR\rr!$VG!!$9k2m!6Gd!!+herrhr!(Vi!!#,m2m!H[S!!A,`q[m!RIJ!!(,Sr`#qq!!\r!6IVr!,li!!"0mrrfr`(9#[N!!$Vkr`(M#[N!!$VSr`(`#[N!!4h`mIm"m!Vm!!#\r'r!!"#Z2kr`(`(IJ!!"hl!!)GVA,l!!)GVA,l!!%G[ZIr!I"kq`!##Uekq`!##Ue\rkq`$r#[J!!)[errhr!(,i!!"kmIm!H[J!!(,kr`#,q!!!FZMr!+hi!!"0q[m!VIJ\r!!$VcrrEr!,li!!!kq[m!eIJ!!4h`kIm"i`Vj!!%+m2(r!I!+r!!!N[`!!)[jr`"\rbp`!C1Vjk1MTILr$rrljk1MTILr$rrljk1MTILr$NraM9HMSkAi[`rrr9HMSk6AV\r`rrrMHNdk6AUGp`!"#Z2frrlr!,lf!!$9mrm!eIB!!,lmr`$MpJ!![ZVr!I!+p`!\r!RIcr!I!+p`!!Lr6rp[m!(IF!!(Vlr`!kp`!!FZRr!$Vh!!"0m2m![[`!!&cm!!$\r`qIm!#[B!!,kdr`"0pJ!!H[Err[m!ArB!!(Vcr`"kpJ!!Arcr!(Vf!!"Ik[m!RIB\r!!$Vmr`#YpJ!!1[6rprm![[B!!"hmr`#qpJ!!#ZVr!12e!1rr!!Vp!!"Fr3!!(IR\rr!12e!!#,Y2m!(IB!!%hfrrlr!$Vf!!!kmrm!1[B!!$Vmr`"0pJ!!1ZVr!(,f!!!\r+r2m!H[8!p2rhr`#,p3!!m2hr!)[e!!$Mkrm!VI8!!,l`r`!kr3!!92d!!$Vjr`#\rqp3!!HV6rp3!!1[Err[re!!!Gmrm!(I8!r2m!1[8!k[m!1[8!r2m!1[8!!12errI\rr!(Ve!!#qrIm!H[8!!,lVr`"kp3!!RI$r!(Vp!!"Fr3!!(IRr!12e!!#,Y2m!(IB\r!!&rfrrlr!$Vf!!!kmrm!1[B!!$Vmr`"0pJ!!1ZVr!(,f!!!+r2m!H[8!p2rhr`#\r,p3!!m2hr!*he!!$Mkrm![[8!!,l`r`!kr3!!A2`!!2$jr`!+pJ!![V6r!%hf!!"\rkp[rqr`"IpJ!!H[2r!(Vf!!"br2m!H[B!!&rUr`#GpJ!!1[cr!+hf!!!kp2rhr`#\rqpJ!!(Icr!0Af!!!+k[m!m28!lrm!#[d!!*Rm!!#,qIm!H[F!!$V,raLYAcS!1R,\rMrrqYAcS!1R,MrrqqAcS!1R+,p`!"#Z2frrlr!,lf!!qGFMS!1R,9rrr9FMS!1R+\r,pJ!![[cr!H-+p`!![ZVr!I!+p`!!VIcr!I!+p`$rHJXk#MTIVIrrm(Sk#MS,Ajh\rrrr"k1JSG6Cdkp`!!H[[r!$Vh!!"bkIm!1[F!!%h`r`#Yr!!!K2`!!3VMqIm!(IJ\r!!0A0r`(`6IX!!JU,F[X!!JU,F[X!!!Vh!!#,pIrpr`"bq!!!(IS!rhVk!!!Gq!!\r!F[Vr!)[i!!"bk2m!VIJ!!%hkr`#Yq!$r#[X!!NfG#[d!r`!#1Td+q`!!#[J!!$V\rkr`$9q!!"(I$Tr`(M#[N!!3V`mIm"m!Vm!!"Rr!!"#Z2jr`!kq!!!eFhr!%hH!!"\rkp2rpr`(`F[S!!!V[!!!GqJ!"F[$kr`#,q!!!FZMr!+hi!!"0qIm"L`Vl!!!GmJ$\rd!!!+q`!"1Z2kr`$9q!!"(I$Tr`(M#[N!!3V`mIm"m!Vm!!"`r!!!LrRr!(,h!!!\rkc[m!Lq8!"`U,AcS!1R,9mrrlr`DqAcS!1Pq,l3!'R9mk!$TI[[Rr!H-+p`!![ZV\rr!I!+p`!!VIRr"q0b1J!G6BXGmJ$d!!CbHMS+(8fGq2m!1[F!!(,Tr`!kp`!!6I$\rr!+hm!!"+r!$ir`!+pJ!![Xrr!$VN!!"klIrer`"Il3!!Ar2r!(Vf!!"0k[m!LrB\r!!$Vcr`#Gm3$d!!!Gmrm![[8!k[m!ir8!!2$`r`!Gr3!!5[d!!$Vjr`$Mp3!!Lmr\rri`!!6HhrpIm!1Zd!!$Vcr`!kpJ!!(HVr!&re!22r!(,a!2-!!2$dr`#,p3!!eH[\rr!+he!!#qm2m!6Id!!%Mp!!!kqIm![[8!!(,3r`$9i`!!1ZhrpIrV!22r!"he!1V\rr!$Ve!!$Mp2m!1[%!m`!![[6r!(Ve!!#qkrm!H[8!!(V`r`"kr3!!5[d!!$Vjr`$\r9p3!!HXrri`!!6HhrpIm!1Zd!!$Vcr`!kpJ!!#ZVr!&re!22r!(,a!2-!!12dr`"\rkp3!!eH[r!*he!!#qm2m!F[d!!%Vp!!!+q2re!!#qcrm!1Z3!!(VYrrAr!&rY!!"\rImrm!H[B!!%hUr`#,pJ!!1[2r!*ha!23!!!Vcr`#qp3$Ur`$9p3!!m2$r!"hp!!"\r6r!!!RIRr!(,h!!%Gm-rr!)[P!!%+iqhrpIm![Zd!!,lcr`$9pJ!!VHVr!H-+p`!\r!Lr2r!I!+mJ$d!!"bmrm"m"hh!!"bkIm!1[F!!$V`r`#qr!!!9I`!!3V`q[m"m"h\ri!!#qcIm!1ZB!!)[Xrr6r!(,[!!"bmIm!H[J!!%hSr`#,q!!!1[(r!+hb!28!!6V\r`m[m!eIJ!!4h`kIm"i`Vj!!%+m2(r!I!kr!!!LrX!!0Ajr`(91[X!!3UYlrm!m2[\rr!["b[[[r!["b[[[r!2$ir`(`6IS!!AT0qJ!"HNhk!!"kkrrdr`(`F[S!rh,k!!&\rbm2$r!(Vk!!&0m1Ir!AS+q`!"6I$`r`',#[X!!MU,#[d!r`!#1SX+q`!"1Z2`r`'\rY#[X!!6V9jrm"[Khl!!%GeI$r!H-+r!!!U2`!!(Vfr`D,64d!1R,`l[mCe9qYirq\rqLad!!&qYirqqLad!!&qYirqqLh,fraLY64d!1Pr9rrqY64d!1Pr9rrqY64d!1Pr\r9k[rbr`qqAcS!1PqqrrqqAcS!1PqqlIm'e9mk!"e0VH6r"Z0b1J!G6ChYr`hMFMS\r!(8fGrrrMFMS!(3T0RIrrih)k!!T0Lqhr"["b1J!+1S[Nr`I`LcS+#MU,m1lr!)[\rm!!!8r!!!m0[r!$VU!!#qa[q"rk,rr!!!&[d!!"hDr`"bkJ!!m-ErJIqLr`!kr3!\r!&[d!!$VDr`#,k`!!#XArJIqLr`"br3!!&2d!!$VDr`"kkJ$&ri(rS[m!6Id!!"6\rm!0Vr!&rU!!$Ma[q"rk,r!$Vp!!!Ar!!!RGcr!I!+kJ!!HXErJIqMr`#qr!!!'2`\r!!4h`hIm!AqN!!3V9arq"rk2r!$Vm!!!qq`!"#YAlr`$`jIm!1ZJ!!3UYq[m!m06\rr!2$qrrhr!BZYq[m!m-,r!2$kr`$`err(r`$`qrm!m1Er!H-+r!!!6IS!"`TbVI$\rr[SZGjIm!eHB!"PqGirr9RAV6r`2`AkhM$Ir9V6S!!%fYirrMVA,``Im(FTh9rq1\rYFZ2ArmIrriX&[[r`[RUqjIm!RI`!!#cc!!$`j2m!1Z%!!,l5r`*k!!$e!!#,`2m\r!VI`!!(,@rmErr!!!(H2r!!Vp!!!Xp!!!(H2r!(VK!0(r!Ud!!28!!,l!r`$`r!!\r!RGEra[m!1[d!!%hMr`!kr3!!+[3!!$VMr`#YiJ!!1Y(r!Y8!!28![[rm!!#qe[r\r'r`"0r3!!HZ2r!(Vp!!!Up!!!1Z2r!(VK!0(r!Vi!!28!!11rrr`!!+h@rmEr!$V\rp!!"Iirm!6Id!!#Vc!12r!%hK!!$9d[m#HJ!!p3!!VF$r!,lm!!"ke[r'rr`!!$V\rMr`!Gr3!!,r-!!*hPr`(`#Z%!!(V5r`)k!!$e!!"0`2m!F[`!!"h@rmIr!,ll!!$\r9jIm!eI`!!$$c!!%+m1Er!%hI!!$9e2m!Lri!p!!!VF,r!0Ak!!"kerr)r`(`(IX\r!!$VPr`!kr!!!X2)!!6VMq[m"Lq2kr`',irVr!(VH!!%keIVr!Ch9q[m"VGAkr`'\rYeIVr!Dfqq[m"V3Vq!23!!3Uqq[rr[[Vr!EkYq[m"[Uhkr`'qVIVr!EkYq[m"eDh\rkr`(91[N!!)[kr`(9RIVr!G@Gq[m"ijhkr`(MLrcrrrm"ii[kr`(MLrVr!H1,q[m\r"m)[kr`(`LrVr![#,m2[r!I"0q3!"Ar$lr`,`Lr$lr`,`RI$lr`(`ArX!!4,a!"N\r+LpArrr#Y1J!+LpArrr#Y1J!+LpArrr#q1YX!!AV9r[m&[MS!!(V9r[m&[Nd!!(V\r9r[m&[Nd!!(V9r[m&[Nd!!(+qr[m"[Nhm!2)!!A+qr[m&[R)!!(+qr[m&[R)!!%f\rqr[m&[R)!!%fqr[m&eA)!!%fqr[m&eAS!!%fqr[m&eAS!!%fqr[m"eAVf!#Jk[[$\rrrp9k!!!k[[$rrp@,!!!k[[$rrp@,#J!k[[$rrp@,#J!k[[$rrcM9L`S!1Uh`rrr\rML`S!1Uh`rrrML`S!1Uh`rrrMR3S!1Uh`rrrMR3S!1Uh`rrrMR3S!(DhMrrrMR3V\rh!"NGVH2rrq1Y(3!GVH2rrq1Y(3!GVH2rrq1Y(IS!!(hY!!!Gq3!!(IN!!"h9!!!\rkq3!!1[N!!$Vj!!!Gq3!!(IN!l`!!(IN!!"hj!!!kq3!!1[N!!$Vj!!!kq3!!1[!\r!!"hj!!!Gq3!!(IN!!"hj!!%G#[S!!4d+qJ!"(3Vk!!%G#[S!!4d+qJ$r#[S!r`V\ra!2m+qJ$r#[S!r`Vh!!!'J3#"!*d!!!D"!)%!R3!!"S%!J3#G!!!'J3#"!*d!!!$\rr!!!!'!"A!(B"J`)'!!%"!*!(!G3!!$!+!!!!%J#3"`B!&3"Z!AR!!J(c!!!!%&4\r&@&43HA4S!+J`-6Ja!*!&(3%!J!!!!!P-CA4dCA*bEh)-BRNJ6'9dG'9bFQpb!!!\r!03%!J!!!!!-a,M!U-5i`)+Na16Nf,6%j16NJ5R9cG#"fB@iJ8QpcFh9Y)#K-CA4\rdCA*bEh)T!!!!!3!!!!%!%3!!#!%(i!L""Q!F!!IJ*C!!!B"8N!!!!*Q3!2rj1C!\r!rrjT%2rNbC(rbB'4rj0"NImQ))2q6K#$rTi2Jrpm"iIqJ!H(rZ!(Krrm"`rrrmF\r2rrrr$rrrpahIrrJC[[ri(AaQ1$dHfY`pEYVF2@lDh(fHCYjrrrrqIrrrrJ#3#"%\r!!!J""q!)J3IJ(!!(i$f3!!'!I*!!!B$jN!$rqIQ3!2rrk4$rrmQ4rrq"NIrr`C(\rrrq#$rrr`Jrrrri2rrrq(rrrrKrrrriIrrrm2rrrr$rrrr`rrrrmIrrri(rrrq"r\rrrrJrrrrm2rrrr$rrrrarrrrqIrrrrRrrrri!N!Y!!!!!%415%j8"qLI8*kSRq3q\r"$q%2[aUK'V!Im!#3"a%6Na1A!IiRr#Iq*rm2r`rr$rmIi4r`(r!!N!H!!*!0"3!\r2!!8!99!&!2`!"3"98!82(`!!!!9Irr(`!&!&99r2(`!!8!99r2(mm!"3"9Arrrc\r2!!"99Ic-c-m!!&9Irrc-c`!!99pFArrr!!9489&3!!m!"9&4898!!!!&9C!%!*!\r8!3#3(,!!!!$r!!!!X!!!X,#`!!#`!!$r%`!!!,!!!,#`X!!!X!$r"Im!N!H`X2q\r3"!Ar!!!!X!!!X*!%r`Mr"Im!N!5`!!#`X,$r#2m&r`Mr!!!!X!!!X,#`rj!&#!M\rr!*!%X*!%r`L3"[m!N!5`X,$rN!3)N!6r!*!%X,#`rl!UX2q3"3!!!,#`"E!&X!@\r`!*!%r`!!!,#`"E!&X!@`X!#3"l#3#3#3*J)!!!3!"!#3#N!!N!3%!!!&9993!*!\r%3!"!!!!%!!!&8!93!!!!$rm!N!F&9993!!!!r-m%3!3!N!8&8!!!!!mIc`"!"!#\r3#[(Im!4!"!!!9C!'8!mGrd!%3!3!!&@3"Prahr"!"!!%!!"9N!4Ir0mGr`"!"%!\r%!!99N!4IcI(Im!!!"%!%!!99N!6mhahrh`!!"%!%!!99999IcI(IrGc`!!"!!!"\r9N!6mhahrrFc2!!"!!!"9N!6pmGremXc-rrp!!!"9N!4I(rrr$-c-hrp!!!99N!6\ram-b3"Grr3!!&9C!%rIrphFc-c0rr3!!&9999Arp9ArrGhFcIr`!!9C!%Ae999IA\rrrphIr`!!9C!,rrrr!!"9N!`2r`!&9499&9@3#&!!!!94&9&999&9N!C3!!!&948\r99984&9%984&98!!!9989%499898989&9&98!!&99&49499&9&9&49499!!"9948\r989949494898993!&998984998494&9&9&993"9@3$P!&9C!18!#3)J3!N!4T!!!\r!D3#3&'N!N!TT!*!&X*!'!*!*D3!!!'N!N!CT!*!&X,!!!,#`!*!)rrrr!*!2X*!\r'!*!(ra-6r`"TD3!!D3#3#l#`!*!)r`Ar%rm!!'N!!'N!N"6r"62rr`!!D@N!!'N\r!N!5`N!d!!2m&-rrrD3!!D@N!!'N!N!5`N!hrr`8crrm!D3!!D3!!!'N!N!5`N!R\rrr`Jcr`3crrm!!'N!!'PT!!"T!!!!X*!+r`Jcr`3crrm!N!CTD3!!D3!!!,#3#Im\r)-rm&-rrr-rm!N!9TD3!!D3!!!,#3#2m)-rm&-rrr-c-)r`#3"@N!N!@`N!Mr#$2\rr"62rrrmc#!J)r`#3"'N!N!@`N!Mr-rm&-rrrX2m@#*!%rj!%D3#3"E#3#Im&rj!\r&!3L3"62rrrpT!*!%X*!*r`Ar!3L3#M2rrrpT!*!%X*!*rc2rrrmc-c-)N!Bcrrr\rrD3#3",#3#2rrrl#`X2rrrc13"!J)-rrrr`#3",#3#Iq`N!ErX2q3"$-c-rrrr`#\r3",#3&[q3"J#3",#3'!$rrrm!!!#`X,!&X,#`"E#3%J#3"V#`"3@`X!@`N!8&X*!\r0!*!'X,#`"E!&X*!&"38&X,!&"E#`"38&X,#`!*!&X*!%"E!&"3@`N!3&X,!&X,!\r&X!@`X!@`X,!!N!5`N!3&X!@`X!@`X,!&X,!&X,!&X!@`X!@`X,!!N!5`N!3&X!@\r`X!@`X,!&X,!&X,!&X!@`X!@`X,!!!!#`N!8&X,!&"E#3"!8&X,!&"E#`"E#`"E#\r3"!!!X*!H!!#`N"i!N%3(39"36!#3"JFUN!3!!3#3"#43D@4P!!!!!8C548B!!3!\r!!)!!!3#"5801)`!"!!!!J`!"!*!&$JF!N!B"!*!&!3!!!!TBi!!fV!!!"k%J!!!\r!#PMJ!2S!!!!(S5!!!!!+@1!!qJ!!!$k!!!!!!3!!!$2Y!!!bl3!!!E966e*8"6B\r!J!!F!Bi!$d*14%`!!!##4%P86!!!!)j%6%p(!!!!QNC548B!!3#Q4e@h53!!!,j\r*3diM!!!!bP"*3e3!!!$@8'PNC3!!!1*3Eh"d!!!!lP0*@N8!!J$kD@0X0!!!!4j\rTBf`i!!!"+QPMFb-!!!%fD@0c0!!!!8*TBh-i!!!"6RCPFR-!!3&D!)$rr`!!-SN\r!N!3"e!#3"#N5!*!%!G3!"J!!+2B!N!@!rrm!!$*c!*!&JIrr!!!bIJ#3"#J"rrm\r!!#NS!*!&Jrrr!!!TQ`#3"!(c!!`!N!XB!!!TPJ#3"HArr`!!-V%!N!6rN!3!!$,\r$!*!'rrm!!$,4!*!&!Irr!!!bh`#3"B2rr`!!,'X!N!@$rrm!!#j[!*!&Jrrr!!!\rUR`#3"B2rr`!!+Z-!N!@$rrm!!#YR!*!&!Irr!!!TA3#3"3,rr`!!+6`!N!3&3@*\r[GA3&3@*[GA3,F(PdD'pZ)'a[Cfm16hGZCA)JFQ9cEh9bBf853`:\r
\ No newline at end of file
diff --git a/Mac/Tools/IDE/PythonIDEMain.py b/Mac/Tools/IDE/PythonIDEMain.py
deleted file mode 100644 (file)
index 3ff7e59..0000000
+++ /dev/null
@@ -1,257 +0,0 @@
-# copyright 1997-2000 Just van Rossum, Letterror. just@letterror.com
-
-import Splash
-
-import FrameWork
-import Wapplication
-import W
-import os
-import macfs
-
-
-class PythonIDE(Wapplication.Application):
-       
-       def __init__(self):
-               self.preffilepath = ":Python:PythonIDE preferences"
-               Wapplication.Application.__init__(self, 'Pide')
-               import AE, AppleEvents
-               
-               AE.AEInstallEventHandler(AppleEvents.kCoreEventClass, AppleEvents.kAEOpenApplication, 
-                               self.ignoreevent)
-               AE.AEInstallEventHandler(AppleEvents.kCoreEventClass, AppleEvents.kAEReopenApplication, 
-                               self.ignoreevent)
-               AE.AEInstallEventHandler(AppleEvents.kCoreEventClass, AppleEvents.kAEPrintDocuments, 
-                               self.ignoreevent)
-               AE.AEInstallEventHandler(AppleEvents.kCoreEventClass, AppleEvents.kAEOpenDocuments, 
-                               self.opendocsevent)
-               AE.AEInstallEventHandler(AppleEvents.kCoreEventClass, AppleEvents.kAEQuitApplication, 
-                               self.quitevent)
-               import PyConsole, PyEdit
-               Splash.wait()
-               Splash.uninstall_importhook()
-               PyConsole.installoutput()
-               PyConsole.installconsole()
-               import sys
-               for path in sys.argv[1:]:
-                       self.opendoc(path)
-               try:
-                       import Wthreading
-               except ImportError:
-                       self.mainloop()
-               else:
-                       if Wthreading.haveThreading:
-                               self.mainthread = Wthreading.Thread("IDE event loop", self.mainloop)
-                               self.mainthread.start()
-                               #self.mainthread.setResistant(1)
-                               Wthreading.run()
-                       else:
-                               self.mainloop()
-       
-       def makeusermenus(self):
-               m = Wapplication.Menu(self.menubar, "File")
-               newitem = FrameWork.MenuItem(m, "New", "N", 'new')
-               openitem = FrameWork.MenuItem(m, "Open\8a", "O", 'open')
-               FrameWork.Separator(m)
-               closeitem = FrameWork.MenuItem(m, "Close", "W", 'close')
-               saveitem = FrameWork.MenuItem(m, "Save", "S", 'save')
-               saveasitem = FrameWork.MenuItem(m, "Save as\8a", None, 'save_as')
-               FrameWork.Separator(m)
-               saveasappletitem = FrameWork.MenuItem(m, "Save as Applet\8a", None, 'save_as_applet')
-               FrameWork.Separator(m)
-               quititem = FrameWork.MenuItem(m, "Quit", "Q", 'quit')
-               
-               m = Wapplication.Menu(self.menubar, "Edit")
-               undoitem = FrameWork.MenuItem(m, "Undo", 'Z', "undo")
-               FrameWork.Separator(m)
-               cutitem = FrameWork.MenuItem(m, "Cut", 'X', "cut")
-               copyitem = FrameWork.MenuItem(m, "Copy", "C", "copy")
-               pasteitem = FrameWork.MenuItem(m, "Paste", "V", "paste")
-               FrameWork.MenuItem(m, "Clear", None,  "clear")
-               FrameWork.Separator(m)
-               selallitem = FrameWork.MenuItem(m, "Select all", "A", "selectall")
-               sellineitem = FrameWork.MenuItem(m, "Select line", "L", "selectline")
-               FrameWork.Separator(m)
-               finditem = FrameWork.MenuItem(m, "Find\8a", "F", "find")
-               findagainitem = FrameWork.MenuItem(m, "Find again", 'G', "findnext")
-               enterselitem = FrameWork.MenuItem(m, "Enter search string", "E", "entersearchstring")
-               replaceitem = FrameWork.MenuItem(m, "Replace", None, "replace")
-               replacefinditem = FrameWork.MenuItem(m, "Replace & find again", 'T', "replacefind")
-               FrameWork.Separator(m)
-               shiftleftitem = FrameWork.MenuItem(m, "Shift left", "[", "shiftleft")
-               shiftrightitem = FrameWork.MenuItem(m, "Shift right", "]", "shiftright")
-               
-               m = Wapplication.Menu(self.menubar, "Python")
-               runitem = FrameWork.MenuItem(m, "Run window", "R", 'run')
-               runselitem = FrameWork.MenuItem(m, "Run selection", None, 'runselection')
-               FrameWork.Separator(m)
-               moditem = FrameWork.MenuItem(m, "Module browser\8a", "M", self.domenu_modulebrowser)
-               FrameWork.Separator(m)
-               mm = FrameWork.SubMenu(m, "Preferences")
-               FrameWork.MenuItem(mm, "Set Scripts folder\8a", None, self.do_setscriptsfolder)
-               FrameWork.MenuItem(mm, "Editor default settings\8a", None, self.do_editorprefs)
-               FrameWork.MenuItem(mm, "Set default window font\8a", None, self.do_setwindowfont)
-               
-               self.openwindowsmenu = Wapplication.Menu(self.menubar, 'Windows')
-               self.makeopenwindowsmenu()
-               self._menustocheck = [closeitem, saveitem, saveasitem, saveasappletitem,
-                               undoitem, cutitem, copyitem, pasteitem, 
-                               selallitem, sellineitem, 
-                               finditem, findagainitem, enterselitem, replaceitem, replacefinditem,
-                               shiftleftitem, shiftrightitem, 
-                               runitem, runselitem]
-               
-               prefs = self.getprefs()
-               try:
-                       fss, fss_changed = macfs.RawAlias(prefs.scriptsfolder).Resolve()
-                       self.scriptsfolder = fss.NewAlias()
-               except:
-                       path = os.path.join(os.getcwd(), ":Mac:IDE scripts")
-                       if not os.path.exists(path):
-                               path = os.path.join(os.getcwd(), "Scripts")
-                               if not os.path.exists(path):
-                                       os.mkdir(path)
-                                       f = open(os.path.join(path, "Place your scripts here\8a"), "w")
-                                       f.close()
-                       fss = macfs.FSSpec(path)
-                       self.scriptsfolder = fss.NewAlias()
-                       self.scriptsfoldermodtime = fss.GetDates()[1]
-               else:
-                       self.scriptsfoldermodtime = fss.GetDates()[1]
-               prefs.scriptsfolder = self.scriptsfolder.data
-               self._scripts = {}
-               self.scriptsmenu = None
-               self.makescriptsmenu()
-       
-       def quitevent(self, theAppleEvent, theReply):
-               import AE
-               AE.AEInteractWithUser(50000000)
-               self._quit()
-       
-       def suspendresume(self, onoff):
-               if onoff:
-                       fss, fss_changed = self.scriptsfolder.Resolve()
-                       modtime = fss.GetDates()[1]
-                       if self.scriptsfoldermodtime <> modtime or fss_changed:
-                               self.scriptsfoldermodtime = modtime
-                               W.SetCursor('watch')
-                               self.makescriptsmenu()
-       
-       def ignoreevent(self, theAppleEvent, theReply):
-               pass
-       
-       def opendocsevent(self, theAppleEvent, theReply):
-               W.SetCursor('watch')
-               import aetools
-               parameters, args = aetools.unpackevent(theAppleEvent)
-               docs = parameters['----']
-               if type(docs) <> type([]):
-                       docs = [docs]
-               for doc in docs:
-                       fss, a = doc.Resolve()
-                       path = fss.as_pathname()
-                       self.opendoc(path)
-       
-       def opendoc(self, path):
-               fcreator, ftype = macfs.FSSpec(path).GetCreatorType()
-               if ftype == 'TEXT':
-                       self.openscript(path)
-               else:
-                       W.Message("Can¹t open file of type '%s'." % ftype)
-       
-       def getabouttext(self):
-               return "About Python IDE\8a"
-       
-       def do_about(self, id, item, window, event):
-               Splash.about()
-       
-       def do_setscriptsfolder(self, *args):
-               fss, ok = macfs.GetDirectory("Select Scripts Folder")
-               if ok:
-                       prefs = self.getprefs()
-                       alis = fss.NewAlias()
-                       prefs.scriptsfolder = alis.data
-                       self.scriptsfolder = alis
-                       self.makescriptsmenu()
-                       prefs.save()
-       
-       def domenu_modulebrowser(self, *args):
-               W.SetCursor('watch')
-               import ModuleBrowser
-               ModuleBrowser.ModuleBrowser()
-       
-       def domenu_open(self, *args):
-               fss, ok = macfs.StandardGetFile("TEXT")
-               if ok:
-                       self.openscript(fss.as_pathname())
-       
-       def domenu_new(self, *args):
-               W.SetCursor('watch')
-               import PyEdit
-               return PyEdit.Editor()
-       
-       def makescriptsmenu(self):
-               W.SetCursor('watch')
-               if self._scripts:
-                       for id, item in self._scripts.keys():
-                               if self.menubar.menus.has_key(id):
-                                       m = self.menubar.menus[id]
-                                       m.delete()
-                       self._scripts = {}
-               if self.scriptsmenu:
-                       if hasattr(self.scriptsmenu, 'id') and self.menubar.menus.has_key(self.scriptsmenu.id):
-                               self.scriptsmenu.delete()
-               self.scriptsmenu = FrameWork.Menu(self.menubar, "Scripts")
-               #FrameWork.MenuItem(self.scriptsmenu, "New script", None, self.domenu_new)
-               #self.scriptsmenu.addseparator()
-               fss, fss_changed = self.scriptsfolder.Resolve()
-               self.scriptswalk(fss.as_pathname(), self.scriptsmenu)
-       
-       def makeopenwindowsmenu(self):
-               for i in range(len(self.openwindowsmenu.items)):
-                       self.openwindowsmenu.menu.DeleteMenuItem(1)
-                       self.openwindowsmenu.items = []
-               windows = []
-               self._openwindows = {}
-               for window in self._windows.keys():
-                       title = window.GetWTitle()
-                       if not title:
-                               title = "<no title>"
-                       windows.append((title, window))
-               windows.sort()
-               for title, window in windows:
-                       if title == "Python Interactive":       # ugly but useful hack by Joe Strout
-                               shortcut = '0'
-                       else: 
-                               shortcut = None
-                       item = FrameWork.MenuItem(self.openwindowsmenu, title, shortcut, callback = self.domenu_openwindows)
-                       self._openwindows[item.item] = window
-               self._openwindowscheckmark = 0
-               self.checkopenwindowsmenu()
-               
-       def domenu_openwindows(self, id, item, window, event):
-               w = self._openwindows[item]
-               w.ShowWindow()
-               w.SelectWindow()
-       
-       def domenu_quit(self):
-               self._quit()
-       
-       def domenu_save(self, *args):
-               print "Save"
-       
-       def _quit(self):
-               import PyConsole, PyEdit
-               PyConsole.console.writeprefs()
-               PyConsole.output.writeprefs()
-               PyEdit.searchengine.writeprefs()
-               for window in self._windows.values():
-                       try:
-                               rv = window.close() # ignore any errors while quitting
-                       except:
-                               rv = 0   # (otherwise, we can get stuck!)
-                       if rv and rv > 0:
-                               return
-               self.quitting = 1
-
-PythonIDE()
-
diff --git a/Mac/Tools/IDE/Splash.py b/Mac/Tools/IDE/Splash.py
deleted file mode 100644 (file)
index 862d82e..0000000
+++ /dev/null
@@ -1,164 +0,0 @@
-import Dlg
-import Res
-
-splash = Dlg.GetNewDialog(468, -1)
-splash.DrawDialog()
-
-import Qd, TE, Fm, sys
-
-_real__import__ = None
-
-def install_importhook():
-       global _real__import__
-       import __builtin__
-       if _real__import__ is None:
-               _real__import__ = __builtin__.__import__
-               __builtin__.__import__ = my__import__
-
-def uninstall_importhook():
-       global _real__import__
-       if _real__import__ is not None:
-               import __builtin__
-               __builtin__.__import__ = _real__import__
-               _real__import__ = None
-
-_progress = 0
-
-def importing(module):
-       global _progress
-       Qd.SetPort(splash)
-       fontID = Fm.GetFNum("Python-Sans")
-       if not fontID:
-               fontID = geneva
-       Qd.TextFont(fontID)
-       Qd.TextSize(9)
-       rect = (35, 265, 365, 281)
-       if module:
-               TE.TETextBox('Importing: ' + module, rect, 0)
-               if not _progress:
-                       Qd.FrameRect((35, 281, 365, 289))
-               pos = min(36 + 330 * _progress / 44, 364)
-               Qd.PaintRect((36, 282, pos, 288))
-               _progress = _progress + 1
-       else:
-               Qd.EraseRect(rect)
-               Qd.PaintRect((36, 282, pos, 288))
-       Qd.QDFlushPortBuffer(splash.GetDialogWindow().GetWindowPort(), None)
-
-def my__import__(name, globals=None, locals=None, fromlist=None):
-       try:
-               return sys.modules[name]
-       except KeyError:
-               try:
-                       importing(name)
-               except:
-                       try:
-                               rv = _real__import__(name)
-                       finally:
-                               uninstall_importhook()
-                       return rv
-               return _real__import__(name)
-
-install_importhook()
-
-kHighLevelEvent = 23
-import Win
-from Fonts import *
-from QuickDraw import *
-from TextEdit import *
-import string
-import sys
-
-_keepsplashscreenopen = 0
-
-abouttext1 = """The Python Integrated Development Environment for the Macintosh\81
-Version: %s
-Copyright 1997-2000 Just van Rossum, Letterror. <just@letterror.com>
-Python %s
-%s
-See: <http://www.python.org/> for information and documentation."""
-
-flauwekul = [  'Goodday, Bruce.', 
-                       'What¹s new?', 
-                       'Nudge, nudge, say no more!', 
-                       'No, no sir, it¹s not dead. It¹s resting.',
-                       'Albatros!',
-                       'It¹s . . .',
-                       'Is your name not Bruce, then?',
-                       """But Mr F.G. Superman has a secret identity . . . 
-when trouble strikes at any time . . . 
-at any place . . . he is ready to become . . . 
-Bicycle Repair Man!"""
-                       ]
-
-def skipdoublereturns(text):
-       return string.replace(text, '\n\n', '\n')
-
-def nl2return(text):
-       return string.replace(text, '\n', '\r')
-
-def UpdateSplash(drawdialog = 0, what = 0):
-       if drawdialog:
-               splash.DrawDialog()
-       drawtext(what)
-       splash.GetDialogWindow().ValidWindowRect(splash.GetDialogPort().portRect)
-       Qd.QDFlushPortBuffer(splash.GetDialogWindow().GetWindowPort(), None)
-
-def drawtext(what = 0):
-       Qd.SetPort(splash)
-       fontID = Fm.GetFNum("Python-Sans")
-       if not fontID:
-               fontID = geneva
-       Qd.TextFont(fontID)
-       Qd.TextSize(9)
-       rect = (10, 115, 390, 290)
-       if not what:
-               import __main__
-               abouttxt = nl2return(abouttext1 % (
-                               __main__.__version__, sys.version, skipdoublereturns(sys.copyright)))
-       else:
-               import random
-               abouttxt = nl2return(random.choice(flauwekul))
-       TE.TETextBox(abouttxt, rect, teJustCenter)
-
-UpdateSplash(1)
-
-def wait():
-       import Evt
-       import Events
-       global splash
-       try:
-               splash
-       except NameError:
-               return
-       Qd.InitCursor()
-       time = Evt.TickCount()
-       whattext = 0
-       while _keepsplashscreenopen:
-               ok, event = Evt.EventAvail(Events.highLevelEventMask)
-               if ok:
-                       # got apple event, back to mainloop
-                       break
-               ok, event = Evt.EventAvail(Events.mDownMask | Events.keyDownMask | Events.updateMask)
-               if ok:
-                       ok, event = Evt.WaitNextEvent(Events.mDownMask | Events.keyDownMask | Events.updateMask, 30)
-                       if ok:
-                               (what, message, when, where, modifiers) = event
-                               if what == Events.updateEvt:
-                                       if Win.WhichWindow(message) == splash:
-                                               UpdateSplash(1, whattext)
-                               else:
-                                       break
-               if Evt.TickCount() - time > 360:
-                       whattext = not whattext
-                       drawtext(whattext)
-                       time = Evt.TickCount()
-       del splash
-       #Res.CloseResFile(splashresfile)
-
-def about():
-       global splash, splashresfile, _keepsplashscreenopen
-       _keepsplashscreenopen = 1
-       splash = Dlg.GetNewDialog(468, -1)
-       splash.DrawDialog()
-       wait()
diff --git a/Mac/Tools/IDE/Wapplication.py b/Mac/Tools/IDE/Wapplication.py
deleted file mode 100644 (file)
index 88c415c..0000000
+++ /dev/null
@@ -1,441 +0,0 @@
-import FrameWork
-import Win
-import Qd
-import Evt
-import MacOS
-import Events
-import traceback
-from types import *
-
-import Menu; MenuToolbox = Menu; del Menu
-
-
-class Application(FrameWork.Application):
-       
-       def __init__(self, signature='Pyth'):
-               import W
-               W.setapplication(self, signature)
-               FrameWork.Application.__init__(self)
-               self._suspended = 0
-               self.quitting = 0
-               self.debugger_quitting = 1
-               self.DebuggerQuit = 'DebuggerQuitDummyException'
-               self._idlefuncs = []
-               # map certain F key codes to equivalent command-letter combos (JJS)
-               self.fkeymaps = {122:"z", 120:"x", 99:"c", 118:"v"}
-       
-       def mainloop(self, mask=FrameWork.everyEvent, wait=None):
-               import W
-               self.quitting = 0
-               saveyield = MacOS.EnableAppswitch(-1)
-               try:
-                       while not self.quitting:
-                               try:
-                                       self.do1event(mask, wait)
-                               except W.AlertError, detail:
-                                       MacOS.EnableAppswitch(-1)
-                                       W.Message(detail)
-                               except self.DebuggerQuit:
-                                       MacOS.EnableAppswitch(-1)
-                               except:
-                                       MacOS.EnableAppswitch(-1)
-                                       import PyEdit
-                                       PyEdit.tracebackwindow.traceback()
-               finally:
-                       MacOS.EnableAppswitch(1)
-       
-       def debugger_mainloop(self, mask=FrameWork.everyEvent, wait=None):
-               import W
-               self.debugger_quitting = 0
-               saveyield = MacOS.EnableAppswitch(-1)
-               try:
-                       while not self.quitting and not self.debugger_quitting:
-                               try:
-                                       self.do1event(mask, wait)
-                               except W.AlertError, detail:
-                                       W.Message(detail)
-                               except:
-                                       import PyEdit
-                                       PyEdit.tracebackwindow.traceback()
-               finally:
-                       MacOS.EnableAppswitch(saveyield)
-       
-       def breathe(self, wait=1):
-               import W
-               ok, event = Evt.WaitNextEvent(FrameWork.updateMask | 
-                               FrameWork.mDownMask | FrameWork.osMask |
-                               FrameWork.activMask, 
-                               wait)
-               if ok:
-                       (what, message, when, where, modifiers) = event
-                       #print FrameWork.eventname[what]
-                       if FrameWork.eventname[what] == 'mouseDown':
-                               partcode, wid = Win.FindWindow(where)
-                               if FrameWork.partname[partcode] <> 'inDesk':
-                                       return
-                       else:
-                               W.SetCursor('watch')
-                       self.dispatch(event)
-       
-       def refreshwindows(self, wait=1):
-               import W
-               while 1:
-                       ok, event = Evt.WaitNextEvent(FrameWork.updateMask, wait)
-                       if not ok:
-                               break
-                       self.dispatch(event)
-       
-       def addidlefunc(self, func):
-               self._idlefuncs.append(func)
-       
-       def removeidlefunc(self, func):
-               self._idlefuncs.remove(func)
-       
-       def idle(self, event):
-               if not self._suspended:
-                       if not self.do_frontWindowMethod("idle", event):
-                               Qd.InitCursor()
-               if self._idlefuncs:
-                       for func in self._idlefuncs:
-                               try:
-                                       func()
-                               except:
-                                       import sys
-                                       sys.stderr.write("exception in idle function %s; killed:\n" % `func`)
-                                       traceback.print_exc()
-                                       self._idlefuncs.remove(func)
-                                       break
-       
-       def do_frontWindowMethod(self, attr, *args):
-               wid = Win.FrontWindow()
-               if wid and self._windows.has_key(wid):
-                       window = self._windows[wid]
-                       if hasattr(window, attr):
-                               handler = getattr(window, attr)
-                               apply(handler, args)
-                               return 1
-       
-       def appendwindow(self, wid, window):
-               self._windows[wid] = window
-               self.makeopenwindowsmenu()
-               
-       def removewindow(self, wid):
-               del self._windows[wid]
-               self.makeopenwindowsmenu()
-       
-       def makeopenwindowsmenu(self):
-               # dummy; could be the full version from PythonIDEMain.py
-               self._openwindows = {}
-               self._openwindowscheckmark = 0
-               if not hasattr(self, "_menustocheck"):
-                       self._menustocheck = []
-       
-       def do_key(self, event):
-               (what, message, when, where, modifiers) = event
-               ch = chr(message & FrameWork.charCodeMask)
-               rest = message & ~FrameWork.charCodeMask
-               keycode = (message & FrameWork.keyCodeMask) >> 8
-               if keycode in self.fkeymaps.keys():             # JJS
-                       ch = self.fkeymaps[keycode]
-                       modifiers = modifiers | FrameWork.cmdKey
-               wid = Win.FrontWindow()
-               if modifiers & FrameWork.cmdKey and not modifiers & FrameWork.shiftKey:
-                       if wid and self._windows.has_key(wid):
-                               self.checkmenus(self._windows[wid])
-                       else:
-                               self.checkmenus(None)
-                       event = (what, ord(ch) | rest, when, where, modifiers)
-                       result = MenuToolbox.MenuKey(ord(ch))
-                       id = (result>>16) & 0xffff      # Hi word
-                       item = result & 0xffff          # Lo word
-                       if id:
-                               self.do_rawmenu(id, item, None, event)
-                               return  # here! we had a menukey! 
-                       #else:
-                       #       print "XXX Command-" +`ch`
-               # See whether the front window wants it
-               if wid and self._windows.has_key(wid):
-                       window = self._windows[wid]
-                       try:
-                               do_char = window.do_char
-                       except AttributeError:
-                               do_char = self.do_char
-                       do_char(ch, event)
-               # else it wasn't for us, sigh...
-       
-       def do_inMenuBar(self, partcode, window, event):
-               Qd.InitCursor()
-               (what, message, when, where, modifiers) = event
-               self.checkopenwindowsmenu()
-               wid = Win.FrontWindow()
-               if wid and self._windows.has_key(wid):
-                       self.checkmenus(self._windows[wid])
-               else:
-                       self.checkmenus(None)
-               result = MenuToolbox.MenuSelect(where)
-               id = (result>>16) & 0xffff      # Hi word
-               item = result & 0xffff          # Lo word
-               self.do_rawmenu(id, item, window, event)
-       
-       def do_updateEvt(self, event):
-               (what, message, when, where, modifiers) = event
-               wid = Win.WhichWindow(message)
-               if wid and self._windows.has_key(wid):
-                       window = self._windows[wid]
-                       window.do_rawupdate(wid, event)
-               else:
-                       if wid:
-                               wid.HideWindow()
-                               import sys
-                               sys.stderr.write("XXX killed unknown (crashed?) Python window.\n")
-                       else:
-                               MacOS.HandleEvent(event)
-       
-       def suspendresume(self, onoff):
-               pass
-       
-       def do_suspendresume(self, event):
-               self._suspended = not event[1] & 1
-               FrameWork.Application.do_suspendresume(self, event)
-       
-       def checkopenwindowsmenu(self):
-               if self._openwindowscheckmark:
-                       self.openwindowsmenu.menu.CheckMenuItem(self._openwindowscheckmark, 0)
-               window = Win.FrontWindow()
-               if window:
-                       for item, wid in self._openwindows.items():
-                               if wid == window:
-                                       #self.pythonwindowsmenuitem.check(1)
-                                       self.openwindowsmenu.menu.CheckMenuItem(item, 1)
-                                       self._openwindowscheckmark = item
-                                       break
-               else:
-                       self._openwindowscheckmark = 0
-               #if self._openwindows:
-               #       self.pythonwindowsmenuitem.enable(1)
-               #else:
-               #       self.pythonwindowsmenuitem.enable(0)
-       
-       def checkmenus(self, window):
-               for item in self._menustocheck:
-                       callback = item.menu.items[item.item-1][2]
-                       if type(callback) <> StringType:
-                               item.enable(1)
-                       elif hasattr(window, "domenu_" + callback):
-                               if hasattr(window, "can_" + callback):
-                                       canhandler = getattr(window, "can_" + callback)
-                                       if canhandler(item):
-                                               item.enable(1)
-                                       else:
-                                               item.enable(0)
-                               else:
-                                       item.enable(1)
-                       else:
-                               item.enable(0)
-       
-       def enablemenubar(self, onoff):
-               for m in self.menubar.menus.values():
-                       if onoff:
-                               m.menu.EnableMenuItem(0)
-                       elif m.menu.GetMenuItemText(3) <> 'Cut': # ew...
-                               m.menu.DisableMenuItem(0)
-               MenuToolbox.DrawMenuBar()
-       
-       def makemenubar(self):
-               self.menubar = MenuBar(self)
-               FrameWork.AppleMenu(self.menubar, self.getabouttext(), self.do_about)
-               self.makeusermenus()
-       
-       def scriptswalk(self, top, menu, done=None):
-               if done is None:
-                       done = {}
-               if done.has_key(top):
-                       return
-               done[top] = 1
-               import os, macfs, string
-               try:
-                       names = os.listdir(top)
-               except os.error:
-                       FrameWork.MenuItem(menu, '(Scripts Folder not found)', None, None)
-                       return
-               savedir = os.getcwd()
-               os.chdir(top)
-               for name in names:
-                       if name == "CVS":
-                               continue
-                       try:
-                               fss, isdir, isalias = macfs.ResolveAliasFile(name)
-                       except:
-                               # maybe a broken alias
-                               continue
-                       path = fss.as_pathname()
-                       if done.has_key(path):
-                               continue
-                       name = string.strip(name)
-                       if name[-3:] == '---':
-                               menu.addseparator()
-                       elif isdir:
-                               submenu = FrameWork.SubMenu(menu, name)
-                               self.scriptswalk(path, submenu, done)
-                       else:
-                               creator, type = fss.GetCreatorType()
-                               if type == 'TEXT':
-                                       if name[-3:] == '.py':
-                                               name = name[:-3]
-                                       item = FrameWork.MenuItem(menu, name, None, self.domenu_script)
-                                       self._scripts[(menu.id, item.item)] = path
-                       done[path] = 1
-               os.chdir(savedir)
-       
-       def domenu_script(self, id, item, window, event):
-               (what, message, when, where, modifiers) = event
-               path = self._scripts[(id, item)]
-               import os
-               if not os.path.exists(path):
-                       self.makescriptsmenu()
-                       import W
-                       raise W.AlertError, "File not found."
-               if ord(Evt.GetKeys()[7]) & 4:
-                       self.openscript(path)
-               else:
-                       import W, MacOS, sys
-                       W.SetCursor("watch")
-                       sys.argv = [path]
-                       #cwd = os.getcwd()
-                       #os.chdir(os.path.dirname(path) + ':')
-                       try:
-                               # xxx if there is a script window for this file,
-                               # exec in that window's namespace.
-                               # xxx what to do when it's not saved???
-                               # promt to save?
-                               MacOS.EnableAppswitch(0)
-                               execfile(path, {'__name__': '__main__', '__file__': path})
-                       except W.AlertError, detail:
-                               MacOS.EnableAppswitch(-1)
-                               raise W.AlertError, detail
-                       except KeyboardInterrupt:
-                               MacOS.EnableAppswitch(-1)
-                       except:
-                               MacOS.EnableAppswitch(-1)
-                               import PyEdit
-                               PyEdit.tracebackwindow.traceback(1)
-                       else:
-                               MacOS.EnableAppswitch(-1)
-                       #os.chdir(cwd)
-       
-       def openscript(self, filename, lineno=None, charoffset=0, modname=""):
-               import os, PyEdit, W
-               editor = self.getscript(filename)
-               if editor:
-                       editor.select()
-               elif os.path.exists(filename):
-                       editor = PyEdit.Editor(filename)
-               elif filename[-3:] == '.py' or filename[-4:] == '.pyc':
-                       import imp
-                       if not modname:
-                               if filename[-1] == 'c':
-                                       modname = os.path.basename(filename)[:-4]
-                               else:
-                                       modname = os.path.basename(filename)[:-3]
-                       try:
-                               # XXX This does not work correctly with packages!
-                               # XXX The docs say we should do it manually, pack, then sub, then sub2 etc. 
-                               # XXX It says we should use imp.load_module(), but that *reloads* a package,
-                               # XXX and that's the last thing we want here.
-                               f, filename, (suff, mode, dummy) = imp.find_module(modname)
-                       except ImportError:
-                               raise W.AlertError, "Can¹t find file for Â³%s²" % modname
-                       else:
-                               if not f:
-                                       raise W.AlertError, "Can¹t find file for Â³%s²" % modname
-                               f.close()
-                       if suff == '.py':
-                               self.openscript(filename, lineno, charoffset)
-                               return
-                       else:
-                               raise W.AlertError, "Can¹t find file for Â³%s²" % modname
-               else:
-                       raise W.AlertError, "Can¹t find file \8c%s¹" % filename
-               if lineno is not None:
-                       editor.selectline(lineno, charoffset)
-               return editor
-       
-       def getscript(self, filename):
-               if filename[:1] == '<' and filename[-1:] == '>':
-                       filename = filename[1:-1]
-               import string
-               lowpath = string.lower(filename)
-               for wid, window in self._windows.items():
-                       if hasattr(window, "path") and type(window.path) == StringType and \
-                                       lowpath == string.lower(window.path):
-                               return window
-                       elif hasattr(window, "path") and filename == wid.GetWTitle():
-                               return window
-       
-       def getprefs(self):
-               import MacPrefs
-               return MacPrefs.GetPrefs(self.preffilepath)
-       
-       def do_editorprefs(self, *args):
-               import PyEdit
-               PyEdit.EditorDefaultSettings()
-       
-       def do_setwindowfont(self, *args):
-               import FontSettings, W
-               prefs = self.getprefs()
-               settings = FontSettings.FontDialog(prefs.defaultfont)
-               if settings:
-                       prefs.defaultfont, tabsettings = settings
-                       raise W.AlertError, "Note that changes will only affect new windows!"
-
-
-
-class MenuBar(FrameWork.MenuBar):
-       
-       possibleIDs = range(10, 256)
-       
-       def getnextid(self):
-               id = self.possibleIDs[0]
-               del self.possibleIDs[0]
-               return id
-       
-       def __init__(self, parent = None):
-               self.bar = MenuToolbox.GetMenuBar()
-               MenuToolbox.ClearMenuBar()
-               self.menus = {}
-               self.parent = parent
-       
-       def dispatch(self, id, item, window, event):
-               if self.menus.has_key(id):
-                       self.menus[id].dispatch(id, item, window, event)
-       
-       def delmenu(self, id):
-               MenuToolbox.DeleteMenu(id)
-               if id in self.possibleIDs:
-                       print "XXX duplicate menu ID!", id
-               self.possibleIDs.append(id)
-       
-
-class Menu(FrameWork.Menu):
-       
-       def dispatch(self, id, item, window, event):
-               title, shortcut, callback, kind = self.items[item-1]
-               if type(callback) == StringType:
-                       callback = self._getmenuhandler(callback)
-               if callback:
-                       import W
-                       W.CallbackCall(callback, 0, id, item, window, event)
-       
-       def _getmenuhandler(self, callback):
-               menuhandler = None
-               wid = Win.FrontWindow()
-               if wid and self.bar.parent._windows.has_key(wid):
-                       window = self.bar.parent._windows[wid]
-                       if hasattr(window, "domenu_" + callback):
-                               menuhandler = getattr(window, "domenu_" + callback)
-                       elif hasattr(self.bar.parent, "domenu_" + callback):
-                               menuhandler = getattr(self.bar.parent, "domenu_" + callback)
-               elif hasattr(self.bar.parent, "domenu_" + callback):
-                       menuhandler = getattr(self.bar.parent, "domenu_" + callback)
-               return menuhandler
-
diff --git a/Mac/Tools/IDE/Wcontrols.py b/Mac/Tools/IDE/Wcontrols.py
deleted file mode 100644 (file)
index 7a88cca..0000000
+++ /dev/null
@@ -1,401 +0,0 @@
-import Ctl
-import Controls
-import Win
-import Wbase
-import Qd
-import Evt
-
-class ControlWidget(Wbase.ClickableWidget):
-       
-       """Baseclass for all native controls."""
-       
-       def __init__(self, possize, title = "Control", procID = 0, callback = None, value = 0, min = 0, max = 1):
-               Wbase.ClickableWidget.__init__(self, possize)
-               self._control = None
-               self._title = title
-               self._callback = callback
-               self._procID = procID
-               self._value = value
-               self._min = min
-               self._max = max
-               self._enabled = 1
-       
-       def open(self):
-               self._calcbounds()
-               self._control = Ctl.NewControl(self._parentwindow.wid, 
-                                               self._bounds, 
-                                               self._title, 
-                                               1, 
-                                               self._value, 
-                                               self._min, 
-                                               self._max, 
-                                               self._procID, 
-                                               0)
-               self.SetPort()
-               #self.GetWindow().ValidWindowRect(self._bounds)
-               self.enable(self._enabled)
-       
-       def adjust(self, oldbounds):
-               self.SetPort()
-               self._control.HideControl()
-               self._control.MoveControl(self._bounds[0], self._bounds[1])
-               self._control.SizeControl(self._bounds[2] - self._bounds[0], self._bounds[3] - self._bounds[1])
-               if self._visible:
-                       Qd.EraseRect(self._bounds)
-                       self._control.ShowControl()
-                       self.GetWindow().ValidWindowRect(self._bounds)
-       
-       def close(self):
-               self._control.HideControl()
-               self._control = None
-               Wbase.ClickableWidget.close(self)
-       
-       def enable(self, onoff):
-               if self._control and self._enabled <> onoff:
-                       self._control.HiliteControl((not onoff) and 255)
-                       self._enabled = onoff
-       
-       def show(self, onoff):
-               self._visible = onoff
-               for w in self._widgets:
-                       w.show(onoff)
-               if onoff:
-                       self._control.ShowControl()
-               else:
-                       self._control.HideControl()
-       
-       def activate(self, onoff):
-               self._activated = onoff
-               if self._enabled:
-                       self._control.HiliteControl((not onoff) and 255)
-       
-       def draw(self, visRgn = None):
-               if self._visible:
-                       self._control.Draw1Control()
-       
-       def test(self, point):
-               ctltype, control = Ctl.FindControl(point, self._parentwindow.wid)
-               if self._enabled and control == self._control:
-                       return 1
-       
-       def click(self, point, modifiers):
-               if not self._enabled:
-                       return
-               part = self._control.TrackControl(point)
-               if part:
-                       if self._callback:
-                               Wbase.CallbackCall(self._callback, 0)
-       
-       def settitle(self, title):
-               if self._control:
-                       self._control.SetControlTitle(title)
-               self._title = title
-       
-       def gettitle(self):
-               return self._title
-
-class Button(ControlWidget):
-       
-       """Standard push button."""
-       
-       def __init__(self, possize, title = "Button", callback = None):
-               procID = Controls.pushButProc | Controls.useWFont
-               ControlWidget.__init__(self, possize, title, procID, callback, 0, 0, 1)
-               self._isdefault = 0
-       
-       def push(self):
-               if not self._enabled:
-                       return
-               import time
-               self._control.HiliteControl(1)
-               time.sleep(0.1)
-               self._control.HiliteControl(0)
-               if self._callback:
-                       Wbase.CallbackCall(self._callback, 0)
-       
-       def enable(self, onoff):
-               if self._control and self._enabled <> onoff:
-                       self._control.HiliteControl((not onoff) and 255)
-                       self._enabled = onoff
-                       if self._isdefault and self._visible:
-                               self.SetPort()
-                               self.drawfatframe(onoff)
-       
-       def activate(self, onoff):
-               self._activated = onoff
-               if self._enabled:
-                       self._control.HiliteControl((not onoff) and 255)
-                       if self._isdefault and self._visible:
-                               self.SetPort()
-                               self.drawfatframe(onoff)
-       
-       def show(self, onoff):
-               ControlWidget.show(self, onoff)
-               if self._isdefault:
-                       self.drawfatframe(onoff and self._enabled)
-       
-       def draw(self, visRgn = None):
-               if self._visible:
-                       self._control.Draw1Control()
-                       if self._isdefault and self._activated:
-                               self.drawfatframe(self._enabled)
-       
-       def drawfatframe(self, onoff):
-               state = Qd.GetPenState()
-               if onoff:
-                       Qd.PenPat(Qd.qd.black)
-               else:
-                       Qd.PenPat(Qd.qd.white)
-               fatrect = Qd.InsetRect(self._bounds, -4, -4)
-               Qd.PenSize(3, 3)
-               Qd.FrameRoundRect(fatrect, 16, 16)
-               Qd.SetPenState(state)
-       
-       def _setdefault(self, onoff):
-               self._isdefault = onoff
-               if self._control and self._enabled:
-                       self.SetPort()
-                       self.drawfatframe(onoff)
-       
-       def adjust(self, oldbounds):
-               if self._isdefault:
-                       old = Qd.InsetRect(oldbounds, -4, -4)
-                       new = Qd.InsetRect(self._bounds, -4, -4)
-                       Qd.EraseRect(old)
-                       self.GetWindow().InvalWindowRect(old)
-                       self.GetWindow().InvalWindowRect(new)
-               ControlWidget.adjust(self, oldbounds)
-
-
-class CheckBox(ControlWidget):
-       
-       """Standard checkbox."""
-       
-       def __init__(self, possize, title = "Checkbox", callback = None, value = 0):
-               procID = Controls.checkBoxProc | Controls.useWFont
-               ControlWidget.__init__(self, possize, title, procID, callback, value, 0, 1)
-       
-       def click(self, point, modifiers):
-               if not self._enabled:
-                       return
-               part = self._control.TrackControl(point)
-               if part:
-                       self.toggle()
-                       if self._callback:
-                               Wbase.CallbackCall(self._callback, 0, self.get())
-       
-       def push(self):
-               if not self._enabled:
-                       return
-               self.toggle()
-               if self._callback:
-                       Wbase.CallbackCall(self._callback, 0, self.get())
-       
-       def toggle(self):
-               self.set(not self.get())
-       
-       def set(self, value):
-               if self._control:
-                       self._control.SetControlValue(value)
-               else:
-                       self._value = value
-       
-       def get(self):
-               if self._control:
-                       return self._control.GetControlValue()
-               else:
-                       return self._value
-       
-
-class RadioButton(ControlWidget):
-       
-       """Standard radiobutton."""
-       
-       # XXX We need a radiogroup widget; this is too kludgy.
-       
-       def __init__(self, possize, title, thebuttons, callback = None, value = 0):
-               procID = Controls.radioButProc | Controls.useWFont
-               ControlWidget.__init__(self, possize, title, procID, callback, value, 0, 1)
-               self.thebuttons = thebuttons
-               thebuttons.append(self)
-       
-       def close(self):
-               self.thebuttons = None
-               ControlWidget.close(self)
-       
-       def click(self, point, modifiers):
-               if not self._enabled:
-                       return
-               part = self._control.TrackControl(point)
-               if part:
-                       self.set(1)
-                       if self._callback:
-                               Wbase.CallbackCall(self._callback, 0, 1)
-       
-       def push(self):
-               if not self._enabled:
-                       return
-               self.set(1)
-               if self._callback:
-                       Wbase.CallbackCall(self._callback, 0, 1)
-       
-       def set(self, value):
-               for button in self.thebuttons:
-                       if button._control:
-                               button._control.SetControlValue(button == self)
-                       else:
-                               button._value = (button == self)
-       
-       def get(self):
-               if self._control:
-                       return self._control.GetControlValue()
-               else:
-                       return self._value
-       
-
-class Scrollbar(ControlWidget):
-       
-       """Standard scrollbar."""
-       
-       def __init__(self, possize, callback = None, value = 0, min = 0, max = 0):
-               procID = Controls.scrollBarProc
-               ControlWidget.__init__(self, possize, "", procID, callback, value, min, max)
-       
-       # interface
-       def set(self, value):
-               if self._callback:
-                       Wbase.CallbackCall(self._callback, 1, value)
-       
-       def up(self):
-               if self._callback:
-                       Wbase.CallbackCall(self._callback, 1, '+')
-       
-       def down(self):
-               if self._callback:
-                       Wbase.CallbackCall(self._callback, 1, '-')
-       
-       def pageup(self):
-               if self._callback:
-                       Wbase.CallbackCall(self._callback, 1, '++')
-       
-       def pagedown(self):
-               if self._callback:
-                       Wbase.CallbackCall(self._callback, 1, '--')
-       
-       def setmin(self, min):
-               self._control.SetControlMinimum(min)
-       
-       def setmax(self, min):
-               self._control.SetControlMinimum(max)
-       
-       def getmin(self):
-               return self._control.GetControlMinimum()
-       
-       def getmax(self):
-               return self._control.GetControlMinimum()
-       
-       # internals
-       def click(self, point, modifiers):
-               if not self._enabled:
-                       return
-               # custom TrackControl. A mousedown in a scrollbar arrow or page area should
-               # generate _control hits as long as the mouse is a) down, b) still in the same part
-               part = self._control.TestControl(point)
-               if Controls.inUpButton <= part <= Controls.inPageDown:  
-                       self._control.HiliteControl(part)
-                       self._hit(part)
-                       oldpart = part
-                       # slight delay before scrolling at top speed...
-                       now = Evt.TickCount()
-                       while Evt.StillDown():
-                               if (Evt.TickCount() - now) > 18: # 0.3 seconds
-                                       break
-                       while Evt.StillDown():
-                               part = self._control.TestControl(point)
-                               if part == oldpart:
-                                       self._control.HiliteControl(part)
-                                       self._hit(part)
-                               else:
-                                       self._control.HiliteControl(0)
-                               self.SetPort()
-                               point = Evt.GetMouse()
-                       self._control.HiliteControl(0)
-               elif part == Controls.inThumb:
-                       part = self._control.TrackControl(point)
-                       if part:
-                               self._hit(part)
-       
-       def _hit(self, part):
-               if part == Controls.inThumb:
-                       value = self._control.GetControlValue()
-               elif part == Controls.inUpButton:
-                       value = "+"
-               elif part == Controls.inDownButton:
-                       value = "-"
-               elif part == Controls.inPageUp:
-                       value = "++"
-               elif part == Controls.inPageDown:
-                       value = "--"
-               if self._callback:
-                       Wbase.CallbackCall(self._callback, 1, value)
-       
-       def draw(self, visRgn = None):
-               if self._visible:
-                       self._control.Draw1Control()
-                       Qd.FrameRect(self._bounds)
-       
-       def adjust(self, oldbounds):
-               self.SetPort()
-               self.GetWindow().InvalWindowRect(oldbounds)
-               self._control.HideControl()
-               self._control.MoveControl(self._bounds[0], self._bounds[1])
-               self._control.SizeControl(self._bounds[2] - self._bounds[0], self._bounds[3] - self._bounds[1])
-               if self._visible:
-                       Qd.EraseRect(self._bounds)
-                       if self._activated:
-                               self._control.ShowControl()
-                       else:
-                               Qd.FrameRect(self._bounds)
-                       self.GetWindow().ValidWindowRect(self._bounds)
-       
-       def activate(self, onoff):
-               self._activated = onoff
-               if self._visible:
-                       if onoff:
-                               self._control.ShowControl()
-                       else:
-                               self._control.HideControl()
-                               self.draw(None)
-                               self.GetWindow().ValidWindowRect(self._bounds)
-               
-       def set(self, value):
-               if self._control:
-                       self._control.SetControlValue(value)
-               else:
-                       self._value = value
-       
-       def get(self):
-               if self._control:
-                       return self._control.GetControlValue()
-               else:
-                       return self._value
-       
-
-class __xxxx_PopupControl(ControlWidget):
-       
-       def __init__(self, possize, title = "Button", callback = None):
-               procID = Controls.popupMenuProc # | Controls.useWFont
-               ControlWidget.__init__(self, possize, title, procID, callback, 0, 0, 1)
-               self._isdefault = 0
-       
-
-def _scalebarvalue(absmin, absmax, curmin, curmax):
-       if curmin <= absmin and curmax >= absmax:
-               return None
-       if curmin <= absmin:
-               return 0
-       if curmax >= absmax:
-               return 32767
-       perc = float(curmin-absmin) / float((absmax - absmin) - (curmax - curmin))
-       return int(perc*32767)
-
diff --git a/Mac/Tools/IDE/Wtext.py b/Mac/Tools/IDE/Wtext.py
deleted file mode 100644 (file)
index 41ea5ec..0000000
+++ /dev/null
@@ -1,988 +0,0 @@
-import Qd
-import TE
-import Fm
-import waste
-import WASTEconst
-import Res
-import Evt
-import Events
-import Scrap
-import string
-
-import Win
-import Wbase
-import Wkeys
-import Wcontrols
-import PyFontify
-from types import *
-import Fonts
-import TextEdit
-
-
-
-class TextBox(Wbase.Widget):
-       
-       """A static text widget"""
-       
-       def __init__(self, possize, text="", align=TextEdit.teJustLeft, 
-                               fontsettings=None,
-                               backgroundcolor=(0xffff, 0xffff, 0xffff)
-                               ):
-               if fontsettings is None:
-                       import W
-                       fontsettings = W.getdefaultfont()
-               Wbase.Widget.__init__(self, possize)
-               self.fontsettings = fontsettings
-               self.text = text
-               self.align = align
-               self._backgroundcolor = backgroundcolor
-       
-       def draw(self, visRgn = None):
-               if self._visible:
-                       (font, style, size, color) = self.fontsettings
-                       fontid = GetFNum(font)
-                       savestate = Qd.GetPenState()
-                       Qd.TextFont(fontid)
-                       Qd.TextFace(style)
-                       Qd.TextSize(size)
-                       Qd.RGBForeColor(color)
-                       Qd.RGBBackColor(self._backgroundcolor)
-                       TE.TETextBox(self.text, self._bounds, self.align)
-                       Qd.RGBBackColor((0xffff, 0xffff, 0xffff))
-                       Qd.SetPenState(savestate)
-       
-       def get(self):
-               return self.text
-       
-       def set(self, text):
-               self.text = text
-               if self._parentwindow and self._parentwindow.wid:
-                       self.SetPort()
-                       self.draw()
-
-
-class _ScrollWidget:
-       
-       # to be overridden
-       def getscrollbarvalues(self):
-               return None, None
-       
-       # internal method
-       def updatescrollbars(self):
-               vx, vy = self.getscrollbarvalues()
-               if self._parent._barx:
-                       if vx <> None:
-                               self._parent._barx.enable(1)
-                               self._parent._barx.set(vx)
-                       else:
-                               self._parent._barx.enable(0)
-               if self._parent._bary:
-                       if vy <> None:
-                               self._parent._bary.enable(1)
-                               self._parent._bary.set(vy)
-                       else:
-                               self._parent._bary.enable(0)
-       
-
-UNDOLABELS = [ # Indexed by WEGetUndoInfo() value
-       None, "", "typing", "Cut", "Paste", "Clear", "Drag", "Style",
-       "Ruler", "backspace", "delete", "transform", "resize"]
-
-
-class EditText(Wbase.SelectableWidget, _ScrollWidget):
-       
-       """A text edit widget, mainly for simple entry fields."""
-       
-       def __init__(self, possize, text="", 
-                               callback=None, inset=(3, 3), 
-                               fontsettings=None,
-                               tabsettings = (32, 0),
-                               readonly = 0):
-               if fontsettings is None:
-                       import W
-                       fontsettings = W.getdefaultfont()
-               Wbase.SelectableWidget.__init__(self, possize)
-               self.temptext = text
-               self.ted = None
-               self.selection = None
-               self._callback = callback
-               self.changed = 0
-               self.selchanged = 0
-               self._selected = 0
-               self._enabled = 1
-               self.wrap = 1
-               self.readonly = readonly
-               self.fontsettings = fontsettings
-               self.tabsettings = tabsettings
-               if type(inset) <> TupleType:
-                       self.inset = (inset, inset)
-               else:
-                       self.inset = inset
-       
-       def open(self):
-               if not hasattr(self._parent, "_barx"):
-                       self._parent._barx = None
-               if not hasattr(self._parent, "_bary"):
-                       self._parent._bary = None
-               self._calcbounds()
-               self.SetPort()
-               viewrect, destrect = self._calctextbounds()
-               flags = self._getflags()
-               self.ted = waste.WENew(destrect, viewrect, flags)
-               self.ted.WEInstallTabHooks()
-               self.ted.WESetAlignment(WASTEconst.weFlushLeft)
-               self.setfontsettings(self.fontsettings)
-               self.settabsettings(self.tabsettings)
-               self.ted.WEUseText(Res.Resource(self.temptext))
-               self.ted.WECalText()
-               if self.selection:
-                       self.setselection(self.selection[0], self.selection[1])
-                       self.selection = None
-               else:
-                       self.selview()
-               self.temptext = None
-               self.updatescrollbars()
-               self.bind("pageup", self.scrollpageup)
-               self.bind("pagedown", self.scrollpagedown)
-               self.bind("top", self.scrolltop)
-               self.bind("bottom", self.scrollbottom)
-               self.selchanged = 0
-       
-       def close(self):
-               self._parent._barx = None
-               self._parent._bary = None
-               self.ted = None
-               self.temptext = None
-               Wbase.SelectableWidget.close(self)
-       
-       def gettabsettings(self):
-               return self.tabsettings
-       
-       def settabsettings(self, (tabsize, tabmode)):
-               self.tabsettings = (tabsize, tabmode)
-               if hasattr(self.ted, "WESetTabSize"):
-                       port = self._parentwindow.wid.GetWindowPort()
-                       if tabmode:
-                               (font, style, size, color) = self.getfontsettings()
-                               savesettings = GetPortFontSettings(port)
-                               SetPortFontSettings(port, (font, style, size))
-                               tabsize = Qd.StringWidth(' ' * tabsize)
-                               SetPortFontSettings(port, savesettings)
-                       tabsize = max(tabsize, 1)
-                       self.ted.WESetTabSize(tabsize)
-                       self.SetPort()
-                       Qd.EraseRect(self.ted.WEGetViewRect())
-                       self.ted.WEUpdate(port.visRgn)
-       
-       def getfontsettings(self):
-               import Res
-               (font, style, size, color) = self.ted.WEGetRunInfo(0)[4]
-               font = Fm.GetFontName(font)
-               return (font, style, size, color)
-       
-       def setfontsettings(self, (font, style, size, color)):
-               self.SetPort()
-               if type(font) <> StringType:
-                       font = Fm.GetFontName(font)
-               self.fontsettings = (font, style, size, color)
-               fontid = GetFNum(font)
-               readonly = self.ted.WEFeatureFlag(WASTEconst.weFReadOnly, -1)
-               if readonly:
-                       self.ted.WEFeatureFlag(WASTEconst.weFReadOnly, 0)
-               try:
-                       self.ted.WEFeatureFlag(WASTEconst.weFInhibitRecal, 1)
-                       selstart, selend = self.ted.WEGetSelection()
-                       self.ted.WESetSelection(0, self.ted.WEGetTextLength())
-                       self.ted.WESetStyle(WASTEconst.weDoFace, (0, 0, 0, (0, 0, 0)))
-                       self.ted.WESetStyle(WASTEconst.weDoFace | 
-                                               WASTEconst.weDoColor | 
-                                               WASTEconst.weDoFont | 
-                                               WASTEconst.weDoSize, 
-                                               (fontid, style, size, color))
-                       self.ted.WEFeatureFlag(WASTEconst.weFInhibitRecal, 0)
-                       self.ted.WECalText()
-                       self.ted.WESetSelection(selstart, selend)
-               finally:
-                       if readonly:
-                               self.ted.WEFeatureFlag(WASTEconst.weFReadOnly, 1)
-               viewrect = self.ted.WEGetViewRect()
-               Qd.EraseRect(viewrect)
-               self.ted.WEUpdate(self._parentwindow.wid.GetWindowPort().visRgn)
-               self.selchanged = 1
-               self.updatescrollbars()
-       
-       def adjust(self, oldbounds):
-               self.SetPort()
-               if self._selected and self._parentwindow._hasselframes:
-                       self.GetWindow().InvalWindowRect(Qd.InsetRect(oldbounds, -3, -3))
-                       self.GetWindow().InvalWindowRect(Qd.InsetRect(self._bounds, -3, -3))
-               else:
-                       self.GetWindow().InvalWindowRect(oldbounds)
-                       self.GetWindow().InvalWindowRect(self._bounds)
-               viewrect, destrect = self._calctextbounds()
-               self.ted.WESetViewRect(viewrect)
-               self.ted.WESetDestRect(destrect)
-               if self.wrap:
-                       self.ted.WECalText()
-               if self.ted.WEGetDestRect()[3] < viewrect[1]:
-                       self.selview()
-               self.updatescrollbars()
-       
-       # interface -----------------------
-       # selection stuff
-       def selview(self):
-               self.ted.WESelView()
-       
-       def selectall(self):
-               self.ted.WESetSelection(0, self.ted.WEGetTextLength())
-               self.selchanged = 1
-               self.updatescrollbars()
-       
-       def selectline(self, lineno, charoffset = 0):
-               newselstart, newselend = self.ted.WEGetLineRange(lineno)
-               # Autoscroll makes the *end* of the selection visible, which, 
-               # in the case of a whole line, is the beginning of the *next* line. 
-               # So sometimes it leaves our line just above the view rect. 
-               # Let's fool Waste by initially selecting one char less:
-               self.ted.WESetSelection(newselstart + charoffset, newselend-1)
-               self.ted.WESetSelection(newselstart + charoffset, newselend)
-               self.selchanged = 1
-               self.updatescrollbars()
-       
-       def getselection(self):
-               if self.ted:
-                       return self.ted.WEGetSelection()
-               else:
-                       return self.selection
-       
-       def setselection(self, selstart, selend):
-               self.selchanged = 1
-               if self.ted:
-                       self.ted.WESetSelection(selstart, selend)
-                       self.ted.WESelView()
-                       self.updatescrollbars()
-               else:
-                       self.selection = selstart, selend
-       
-       def offsettoline(self, offset):
-               return self.ted.WEOffsetToLine(offset)
-       
-       def countlines(self):
-               return self.ted.WECountLines()
-       
-       def getselectedtext(self):
-               selstart, selend = self.ted.WEGetSelection()
-               return self.ted.WEGetText().data[selstart:selend]
-       
-       def expandselection(self):
-               oldselstart, oldselend = self.ted.WEGetSelection()
-               selstart, selend = min(oldselstart, oldselend), max(oldselstart, oldselend)
-               if selstart <> selend and chr(self.ted.WEGetChar(selend-1)) == '\r':
-                       selend = selend - 1
-               newselstart, dummy = self.ted.WEFindLine(selstart, 0)
-               dummy, newselend = self.ted.WEFindLine(selend, 0)
-               if oldselstart <> newselstart or  oldselend <> newselend:
-                       self.ted.WESetSelection(newselstart, newselend)
-                       self.updatescrollbars()
-               self.selchanged = 1
-       
-       def insert(self, text):
-               self.ted.WEInsert(text, None, None)
-               self.changed = 1
-               self.selchanged = 1
-       
-       # text
-       def set(self, text):
-               if not self.ted:
-                       self.temptext = text
-               else:
-                       self.ted.WEUseText(Res.Resource(text))
-                       self.ted.WECalText()
-                       self.SetPort()
-                       viewrect, destrect = self._calctextbounds()
-                       self.ted.WESetViewRect(viewrect)
-                       self.ted.WESetDestRect(destrect)
-                       rgn = Qd.NewRgn()
-                       Qd.RectRgn(rgn, viewrect)
-                       Qd.EraseRect(viewrect)
-                       self.draw(rgn)
-                       #self.GetWindow().InvalWindowRect(self.ted.WEGetViewRect())
-                       self.updatescrollbars()
-       
-       def get(self):
-               if not self._parent:
-                       return self.temptext
-               else:
-                       return self.ted.WEGetText().data
-       
-       # events
-       def key(self, char, event):
-               (what, message, when, where, modifiers) = event
-               if self._enabled and not modifiers & Events.cmdKey or char in Wkeys.arrowkeys:
-                       self.ted.WEKey(ord(char), modifiers)
-                       if char not in Wkeys.navigationkeys:
-                               self.changed = 1
-                       if char not in Wkeys.scrollkeys:
-                               self.selchanged = 1
-                       self.updatescrollbars()
-                       if self._callback:
-                               Wbase.CallbackCall(self._callback, 0, char, modifiers)
-       
-       def click(self, point, modifiers):
-               if not self._enabled:
-                       return
-               self.ted.WEClick(point, modifiers, Evt.TickCount())
-               self.selchanged = 1
-               self.updatescrollbars()
-               return 1
-       
-       def idle(self):
-               self.SetPort()
-               self.ted.WEIdle()
-       
-       def rollover(self, point, onoff):
-               if onoff:
-                       Wbase.SetCursor("iBeam")
-       
-       def activate(self, onoff):
-               self._activated = onoff
-               if self._selected and self._visible:
-                       if onoff:
-                               self.ted.WEActivate()
-                       else:
-                               self.ted.WEDeactivate()
-                       if self._selected:
-                               self.drawselframe(onoff)
-       
-       def select(self, onoff, isclick = 0):
-               if Wbase.SelectableWidget.select(self, onoff):
-                       return
-               self.SetPort()
-               if onoff:
-                       self.ted.WEActivate()
-                       if self._parentwindow._tabbable and not isclick:
-                               self.selectall()
-               else:
-                       self.ted.WEDeactivate()
-               self.drawselframe(onoff)
-       
-       def draw(self, visRgn = None):
-               if self._visible:
-                       if not visRgn:
-                               visRgn = self._parentwindow.wid.GetWindowPort().visRgn
-                       self.ted.WEUpdate(visRgn)
-                       if self._selected and self._activated:
-                               self.drawselframe(1)
-                       Qd.FrameRect(self._bounds)
-       
-       # scrolling
-       def scrollpageup(self):
-               if self._parent._bary and self._parent._bary._enabled:
-                       self.vscroll("++")
-       
-       def scrollpagedown(self):
-               if self._parent._bary and self._parent._bary._enabled:
-                       self.vscroll("--")
-       
-       def scrolltop(self):
-               if self._parent._bary and self._parent._bary._enabled:
-                       self.vscroll(0)
-               if self._parent._barx and self._parent._barx._enabled:
-                       self.hscroll(0)
-       
-       def scrollbottom(self):
-               if self._parent._bary and self._parent._bary._enabled:
-                       self.vscroll(32767)
-       
-       # menu handlers
-       def domenu_copy(self, *args):
-               selbegin, selend = self.ted.WEGetSelection()
-               if selbegin == selend:
-                       return
-               Scrap.ZeroScrap()
-               self.ted.WECopy()
-               self.updatescrollbars()
-       
-       def domenu_cut(self, *args):
-               selbegin, selend = self.ted.WEGetSelection()
-               if selbegin == selend:
-                       return
-               Scrap.ZeroScrap()
-               self.ted.WECut()
-               self.updatescrollbars()
-               self.selview()
-               self.changed = 1
-               self.selchanged = 1
-               if self._callback:
-                       Wbase.CallbackCall(self._callback, 0, "", None)
-       
-       def domenu_paste(self, *args):
-               if not self.ted.WECanPaste():
-                       return
-               self.selview()
-               self.ted.WEPaste()
-               self.updatescrollbars()
-               self.changed = 1
-               self.selchanged = 1
-               if self._callback:
-                       Wbase.CallbackCall(self._callback, 0, "", None)
-       
-       def domenu_clear(self, *args):
-               self.ted.WEDelete()
-               self.selview()
-               self.updatescrollbars()
-               self.changed = 1
-               self.selchanged = 1
-               if self._callback:
-                       Wbase.CallbackCall(self._callback, 0, "", None)
-       
-       def domenu_undo(self, *args):
-               which, redo = self.ted.WEGetUndoInfo()
-               if not which: 
-                       return
-               self.ted.WEUndo()
-               self.updatescrollbars()
-               self.changed = 1
-               self.selchanged = 1
-               if self._callback:
-                       Wbase.CallbackCall(self._callback, 0, "", None)
-       
-       def can_undo(self, menuitem):
-               #doundo = self.ted.WEFeatureFlag(WASTEconst.weFUndo, -1)
-               #print doundo
-               #if not doundo:
-               #       return 0
-               which, redo = self.ted.WEGetUndoInfo()
-               if which < len(UNDOLABELS):
-                       which = UNDOLABELS[which]
-               else:
-                       which = ""
-               if which == None: 
-                       return None
-               if redo:
-                       which = "Redo "+which
-               else:
-                       which = "Undo "+which
-               menuitem.settext(which)
-               return 1
-       
-       def domenu_selectall(self, *args):
-               self.selectall()
-       
-       # private
-       def getscrollbarvalues(self):
-               dr = self.ted.WEGetDestRect()
-               vr = self.ted.WEGetViewRect()
-               vx = Wcontrols._scalebarvalue(dr[0], dr[2], vr[0], vr[2])
-               vy = Wcontrols._scalebarvalue(dr[1], dr[3], vr[1], vr[3])
-               return vx, vy
-       
-       def vscroll(self, value):
-               lineheight = self.ted.WEGetHeight(0, 1)
-               dr = self.ted.WEGetDestRect()
-               vr = self.ted.WEGetViewRect()
-               destheight = dr[3] - dr[1]
-               viewheight = vr[3] - vr[1]
-               viewoffset = maxdelta = vr[1] - dr[1]
-               mindelta = vr[3] - dr[3]
-               if value == "+":
-                       delta = lineheight
-               elif value == "-":
-                       delta = - lineheight
-               elif value == "++":
-                       delta = viewheight - lineheight
-               elif value == "--":
-                       delta = lineheight - viewheight
-               else:   # in thumb
-                       cur = (32767L * viewoffset) / (destheight - viewheight)
-                       delta = (cur-value)*(destheight - viewheight)/32767
-                       if abs(delta - viewoffset) <=2:
-                               # compensate for irritating rounding error
-                               delta = viewoffset
-               delta = min(maxdelta, delta)
-               delta = max(mindelta, delta)
-               self.ted.WEScroll(0, delta)
-               self.updatescrollbars()
-       
-       def hscroll(self, value):
-               dr = self.ted.WEGetDestRect()
-               vr = self.ted.WEGetViewRect()
-               destwidth = dr[2] - dr[0]
-               viewwidth = vr[2] - vr[0]
-               viewoffset = maxdelta = vr[0] - dr[0]
-               mindelta = vr[2] - dr[2]
-               if value == "+":
-                       delta = 32
-               elif value == "-":
-                       delta = - 32
-               elif value == "++":
-                       delta = 0.5 * (vr[2] - vr[0])
-               elif value == "--":
-                       delta = 0.5 * (vr[0] - vr[2])
-               else:   # in thumb
-                       cur = (32767 * viewoffset) / (destwidth - viewwidth)
-                       delta = (cur-value)*(destwidth - viewwidth)/32767
-                       if abs(delta - viewoffset) <=2:
-                               # compensate for irritating rounding error
-                               delta = viewoffset
-               delta = min(maxdelta, delta)
-               delta = max(mindelta, delta)
-               self.ted.WEScroll(delta, 0)
-               self.updatescrollbars()
-       
-       # some internals
-       def _getflags(self):
-               flags = WASTEconst.weDoAutoScroll | WASTEconst.weDoMonoStyled
-               if self.readonly:
-                       flags = flags | WASTEconst.weDoReadOnly
-               else:
-                       flags = flags | WASTEconst.weDoUndo
-               return flags
-       
-       def _getviewrect(self):
-               return Qd.InsetRect(self._bounds, self.inset[0], self.inset[1])
-       
-       def _calctextbounds(self):
-               viewrect = l, t, r, b = self._getviewrect()
-               if self.ted:
-                       dl, dt, dr, db = self.ted.WEGetDestRect()
-                       vl, vt, vr, vb = self.ted.WEGetViewRect()
-                       yshift = t - vt
-                       if (db - dt) < (b - t):
-                               destrect = viewrect
-                       else:
-                               destrect = l, dt + yshift, r, db + yshift
-               else:
-                       destrect = viewrect
-               return viewrect, destrect
-               
-
-class TextEditor(EditText):
-       
-       """A text edit widget."""
-       
-       def __init__(self, possize, text="", callback=None, wrap=1, inset=(4, 4),
-                               fontsettings=None,
-                               tabsettings=(32, 0),
-                               readonly=0):
-               EditText.__init__(self, possize, text, callback, inset, fontsettings, tabsettings, readonly)
-               self.wrap = wrap
-       
-       def _getflags(self):
-               flags = WASTEconst.weDoAutoScroll | WASTEconst.weDoMonoStyled | \
-                               WASTEconst.weDoOutlineHilite
-               if self.readonly:
-                       flags = flags | WASTEconst.weDoReadOnly
-               else:
-                       flags = flags | WASTEconst.weDoUndo
-               return flags
-       
-       def _getviewrect(self):
-               l, t, r, b = self._bounds
-               return (l + 5, t + 2, r, b - 2)
-       
-       def _calctextbounds(self):
-               if self.wrap:
-                       return EditText._calctextbounds(self)
-               else:
-                       viewrect = l, t, r, b = self._getviewrect()
-                       if self.ted:
-                               dl, dt, dr, db = self.ted.WEGetDestRect()
-                               vl, vt, vr, vb = self.ted.WEGetViewRect()
-                               xshift = l - vl
-                               yshift = t - vt
-                               if (db - dt) < (b - t):
-                                       yshift = t - dt
-                               destrect = (dl + xshift, dt + yshift, dr + xshift, db + yshift)
-                       else:
-                               destrect = (l, t, r + 5000, b)
-                       return viewrect, destrect
-       
-       def draw(self, visRgn = None):
-               if self._visible:
-                       if not visRgn:
-                               visRgn = self._parentwindow.wid.GetWindowPort().visRgn
-                       self.ted.WEUpdate(visRgn)
-                       if self._selected and self._activated:
-                               self.drawselframe(1)
-
-
-import re
-commentPat = re.compile("[ \t]*\(#\)")
-indentPat = re.compile("\t*")
-
-class PyEditor(TextEditor):
-       
-       """A specialized Python source edit widget"""
-       
-       def __init__(self, possize, text="", callback=None, inset=(4, 4),
-                               fontsettings=None,
-                               tabsettings=(32, 0),
-                               readonly=0,
-                               debugger=None,
-                               file=''):
-               TextEditor.__init__(self, possize, text, callback, 0, inset, fontsettings, tabsettings, readonly)
-               self.bind("cmd[", self.domenu_shiftleft)
-               self.bind("cmd]", self.domenu_shiftright)
-               self.bind("cmdshift[", self.domenu_uncomment)
-               self.bind("cmdshift]", self.domenu_comment)
-               self.file = file        # only for debugger reference
-               self._debugger = debugger
-               if debugger:
-                       debugger.register_editor(self, self.file)
-       
-       def domenu_shiftleft(self):
-               self.expandselection()
-               selstart, selend = self.ted.WEGetSelection()
-               selstart, selend = min(selstart, selend), max(selstart, selend)
-               snippet = self.getselectedtext()
-               lines = string.split(snippet, '\r')
-               for i in range(len(lines)):
-                       if lines[i][:1] == '\t':
-                               lines[i] = lines[i][1:]
-               snippet = string.join(lines, '\r')
-               self.insert(snippet)
-               self.ted.WESetSelection(selstart, selstart + len(snippet))
-       
-       def domenu_shiftright(self):
-               self.expandselection()
-               selstart, selend = self.ted.WEGetSelection()
-               selstart, selend = min(selstart, selend), max(selstart, selend)
-               snippet = self.getselectedtext()
-               lines = string.split(snippet, '\r')
-               for i in range(len(lines) - (not lines[-1])):
-                       lines[i] = '\t' + lines[i]
-               snippet = string.join(lines, '\r')
-               self.insert(snippet)
-               self.ted.WESetSelection(selstart, selstart + len(snippet))
-       
-       def domenu_uncomment(self):
-               self.expandselection()
-               selstart, selend = self.ted.WEGetSelection()
-               selstart, selend = min(selstart, selend), max(selstart, selend)
-               snippet = self.getselectedtext()
-               lines = string.split(snippet, '\r')
-               for i in range(len(lines)):
-                       m = commentPat.match(lines[i])
-                       if m:
-                               pos = m.start(1)
-                               lines[i] = lines[i][:pos] + lines[i][pos+1:]
-               snippet = string.join(lines, '\r')
-               self.insert(snippet)
-               self.ted.WESetSelection(selstart, selstart + len(snippet))
-       
-       def domenu_comment(self):
-               self.expandselection()
-               selstart, selend = self.ted.WEGetSelection()
-               selstart, selend = min(selstart, selend), max(selstart, selend)
-               snippet = self.getselectedtext()
-               lines = string.split(snippet, '\r')
-               indent = 3000 # arbitrary large number...
-               for line in lines:
-                       if string.strip(line):
-                               m = indentPat.match(line)
-                               if m:
-                                       indent = min(indent, m.regs[0][1])
-                               else:
-                                       indent = 0
-                                       break
-               for i in range(len(lines) - (not lines[-1])):
-                       lines[i] = lines[i][:indent] + "#" + lines[i][indent:]
-               snippet = string.join(lines, '\r')
-               self.insert(snippet)
-               self.ted.WESetSelection(selstart, selstart + len(snippet))
-       
-       def setfile(self, file):
-               self.file = file
-       
-       def set(self, text, file = ''):
-               oldfile = self.file
-               self.file = file
-               if self._debugger:
-                       self._debugger.unregister_editor(self, oldfile)
-                       self._debugger.register_editor(self, file)
-               TextEditor.set(self, text)
-       
-       def close(self):
-               if self._debugger:
-                       self._debugger.unregister_editor(self, self.file)
-                       self._debugger = None
-               TextEditor.close(self)          
-       
-       def click(self, point, modifiers):
-               if not self._enabled:
-                       return
-               if self._debugger and self.pt_in_breaks(point):
-                       self.breakhit(point, modifiers)
-               elif self._debugger:
-                       bl, bt, br, bb = self._getbreakrect()
-                       Qd.EraseRect((bl, bt, br-1, bb))
-                       TextEditor.click(self, point, modifiers)
-                       self.drawbreakpoints()
-               else:
-                       TextEditor.click(self, point, modifiers)
-                       if self.ted.WEGetClickCount() >= 3:
-                               # select block with our indent
-                               lines = string.split(self.get(), '\r')
-                               selstart, selend = self.ted.WEGetSelection()
-                               lineno = self.ted.WEOffsetToLine(selstart)
-                               tabs = 0
-                               line = lines[lineno]
-                               while line[tabs:] and line[tabs] == '\t':
-                                       tabs = tabs + 1
-                               tabstag = '\t' * tabs
-                               fromline = 0
-                               toline = len(lines)
-                               if tabs:
-                                       for i in range(lineno - 1, -1, -1):
-                                               line = lines[i]
-                                               if line[:tabs] <> tabstag:
-                                                       fromline = i + 1
-                                                       break
-                                       for i in range(lineno + 1, toline):
-                                               line = lines[i]
-                                               if line[:tabs] <> tabstag:
-                                                       toline = i - 1
-                                                       break
-                               selstart, dummy = self.ted.WEGetLineRange(fromline)
-                               dummy, selend = self.ted.WEGetLineRange(toline)
-                               self.ted.WESetSelection(selstart, selend)
-       
-       def breakhit(self, point, modifiers):
-               if not self.file:
-                       return
-               destrect = self.ted.WEGetDestRect()
-               offset, edge = self.ted.WEGetOffset(point)
-               lineno = self.ted.WEOffsetToLine(offset) + 1
-               if point[1] <= destrect[3]:
-                       self._debugger.clear_breaks_above(self.file, self.countlines())
-                       self._debugger.toggle_break(self.file, lineno)
-               else:
-                       self._debugger.clear_breaks_above(self.file, lineno)
-       
-       def key(self, char, event):
-               (what, message, when, where, modifiers) = event
-               if modifiers & Events.cmdKey and not char in Wkeys.arrowkeys:
-                       return
-               if char == '\r':
-                       selstart, selend = self.ted.WEGetSelection()
-                       selstart, selend = min(selstart, selend), max(selstart, selend)
-                       lastchar = chr(self.ted.WEGetChar(selstart-1))
-                       if lastchar <> '\r' and selstart:
-                               pos, dummy = self.ted.WEFindLine(selstart, 0)
-                               lineres = Res.Resource('')
-                               self.ted.WECopyRange(pos, selstart, lineres, None, None)
-                               line = lineres.data + '\n'
-                               tabcount = self.extratabs(line)
-                               self.ted.WEKey(ord('\r'), 0)
-                               for i in range(tabcount):
-                                       self.ted.WEKey(ord('\t'), 0)
-                       else:
-                               self.ted.WEKey(ord('\r'), 0)
-               elif char in ')]}':
-                       self.ted.WEKey(ord(char), modifiers)
-                       self.balanceparens(char)
-               else:
-                       self.ted.WEKey(ord(char), modifiers)
-               if char not in Wkeys.navigationkeys:
-                       self.changed = 1
-               self.selchanged = 1
-               self.updatescrollbars()
-       
-       def balanceparens(self, char):
-               if char == ')':
-                       target = '('
-               elif char == ']':
-                       target = '['
-               elif char == '}':
-                       target = '{'
-               recursionlevel = 1
-               selstart, selend = self.ted.WEGetSelection()
-               count = min(selstart, selend) - 2
-               mincount = max(0, count - 2048)
-               lastquote = None
-               while count > mincount:
-                       testchar = chr(self.ted.WEGetChar(count))
-                       if testchar in "\"'" and chr(self.ted.WEGetChar(count - 1)) <> '\\':
-                               if lastquote == testchar:
-                                       recursionlevel = recursionlevel - 1
-                                       lastquote = None
-                               elif not lastquote:
-                                       recursionlevel = recursionlevel + 1
-                                       lastquote = testchar
-                       elif not lastquote and testchar == char:
-                               recursionlevel = recursionlevel + 1
-                       elif not lastquote and testchar == target:
-                               recursionlevel = recursionlevel - 1
-                               if recursionlevel == 0:
-                                       import time
-                                       autoscroll = self.ted.WEFeatureFlag(WASTEconst.weFAutoScroll, -1)
-                                       if autoscroll:
-                                               self.ted.WEFeatureFlag(WASTEconst.weFAutoScroll, 0)
-                                       self.ted.WESetSelection(count, count + 1)
-                                       time.sleep(0.2)
-                                       self.ted.WESetSelection(selstart, selend)
-                                       if autoscroll:
-                                               self.ted.WEFeatureFlag(WASTEconst.weFAutoScroll, 1)
-                                       break
-                       count = count - 1
-       
-       def extratabs(self, line):
-               tabcount = 0
-               for c in line:
-                       if c <> '\t':
-                               break
-                       tabcount = tabcount + 1
-               last = 0
-               cleanline = ''
-               tags = PyFontify.fontify(line)
-               # strip comments and strings
-               for tag, start, end, sublist in tags:
-                       if tag in ('string', 'comment'):
-                               cleanline = cleanline + line[last:start]
-                               last = end
-               cleanline = cleanline + line[last:]
-               cleanline = string.strip(cleanline)
-               if cleanline and cleanline[-1] == ':':
-                       tabcount = tabcount + 1
-               else:
-                       # extra indent after unbalanced (, [ or {
-                       for open, close in (('(', ')'), ('[', ']'), ('{', '}')):
-                               count = string.count(cleanline, open)
-                               if count and count > string.count(cleanline, close):
-                                       tabcount = tabcount + 2
-                                       break
-               return tabcount
-       
-       def rollover(self, point, onoff):
-               if onoff:
-                       if self._debugger and self.pt_in_breaks(point):
-                               Wbase.SetCursor("arrow")
-                       else:
-                               Wbase.SetCursor("iBeam")
-       
-       def draw(self, visRgn = None):
-               TextEditor.draw(self, visRgn)
-               if self._debugger:
-                       self.drawbreakpoints()
-       
-       def showbreakpoints(self, onoff):
-               if (not not self._debugger) <> onoff:
-                       if onoff:
-                               if not __debug__:
-                                       import W
-                                       raise W.AlertError, "Can¹t debug in Â³Optimize bytecode² mode.\r(see Â³Default startup options² in EditPythonPreferences)"
-                               import PyDebugger
-                               self._debugger = PyDebugger.getdebugger()
-                               self._debugger.register_editor(self, self.file)
-                       elif self._debugger:
-                               self._debugger.unregister_editor(self, self.file)
-                               self._debugger = None
-                       self.adjust(self._bounds)
-       
-       def togglebreakpoints(self):
-               self.showbreakpoints(not self._debugger)
-       
-       def clearbreakpoints(self):
-               if self.file:
-                       self._debugger.clear_all_file_breaks(self.file)
-       
-       def editbreakpoints(self):
-               if self._debugger:
-                       self._debugger.edit_breaks()
-                       self._debugger.breaksviewer.selectfile(self.file)
-       
-       def drawbreakpoints(self, eraseall = 0):
-               breakrect = bl, bt, br, bb = self._getbreakrect()
-               br = br - 1
-               self.SetPort()
-               Qd.PenPat(Qd.qd.gray)
-               Qd.PaintRect((br, bt, br + 1, bb))
-               Qd.PenNormal()
-               self._parentwindow.tempcliprect(breakrect)
-               Qd.RGBForeColor((0xffff, 0, 0))
-               try:
-                       lasttop = bt
-                       self_ted = self.ted
-                       Qd_PaintOval = Qd.PaintOval
-                       Qd_EraseRect = Qd.EraseRect
-                       for lineno in self._debugger.get_file_breaks(self.file):
-                               start, end = self_ted.WEGetLineRange(lineno - 1)
-                               if lineno <> self_ted.WEOffsetToLine(start) + 1:
-                                       # breakpoints beyond our text: erase rest, and back out
-                                       Qd_EraseRect((bl, lasttop, br, bb))
-                                       break
-                               (x, y), h = self_ted.WEGetPoint(start, 0)
-                               bottom = y + h
-                               #print y, (lasttop, bottom)
-                               if bottom > lasttop:
-                                       Qd_EraseRect((bl, lasttop, br, y + h * eraseall))
-                                       lasttop = bottom
-                               redbullet = bl + 2, y + 3, bl + 8, y + 9
-                               Qd_PaintOval(redbullet)
-                       else:
-                               Qd_EraseRect((bl, lasttop, br, bb))
-                       Qd.RGBForeColor((0, 0, 0))
-               finally:
-                       self._parentwindow.restoreclip()
-       
-       def updatescrollbars(self):
-               if self._debugger:
-                       self.drawbreakpoints(1)
-               TextEditor.updatescrollbars(self)
-       
-       def pt_in_breaks(self, point):
-               return Qd.PtInRect(point, self._getbreakrect())
-       
-       def _getbreakrect(self):
-               if self._debugger:
-                       l, t, r, b = self._bounds
-                       return (l+1, t+1, l + 12, b-1)
-               else:
-                       return (0, 0, 0, 0)
-       
-       def _getviewrect(self):
-               l, t, r, b = self._bounds
-               if self._debugger:
-                       return (l + 17, t + 2, r, b - 2)
-               else:
-                       return (l + 5, t + 2, r, b - 2)
-       
-       def _calctextbounds(self):
-               viewrect = l, t, r, b = self._getviewrect()
-               if self.ted:
-                       dl, dt, dr, db = self.ted.WEGetDestRect()
-                       vl, vt, vr, vb = self.ted.WEGetViewRect()
-                       xshift = l - vl
-                       yshift = t - vt
-                       if (db - dt) < (b - t):
-                               yshift = t - dt
-                       destrect = (dl + xshift, dt + yshift, dr + xshift, db + yshift)
-               else:
-                       destrect = (l, t, r + 5000, b)
-               return viewrect, destrect
-
-
-def GetFNum(fontname):
-       """Same as Fm.GetFNum(), but maps a missing font to Monaco instead of the system font."""
-       if fontname <> Fm.GetFontName(0):
-               fontid = Fm.GetFNum(fontname)
-               if fontid == 0:
-                       fontid = Fonts.monaco
-       else:
-               fontid = 0
-       return fontid
-
-# b/w compat. Anyone using this?
-GetFName = Fm.GetFontName
-
-def GetPortFontSettings(port):
-       return Fm.GetFontName(port.txFont), port.txFace, port.txSize
-
-def SetPortFontSettings(port, (font, face, size)):
-       saveport = Qd.GetPort()
-       Qd.SetPort(port)
-       Qd.TextFont(GetFNum(font))
-       Qd.TextFace(face)
-       Qd.TextSize(size)
-       Qd.SetPort(saveport)
diff --git a/Mac/Tools/IDE/Wtraceback.py b/Mac/Tools/IDE/Wtraceback.py
deleted file mode 100644 (file)
index 9b54b17..0000000
+++ /dev/null
@@ -1,188 +0,0 @@
-import traceback
-import sys
-import W
-import os
-import types
-import List
-
-
-class TraceBack:
-       
-       def __init__(self, title = "Traceback"):
-               app = W.getapplication()  # checks if W is properly initialized
-               self.title = title
-               self.w = None
-               self.closed = 1
-               self.start = 0
-               self.lastwindowtitle = ""
-               self.bounds = (360, 298)
-       
-       def traceback(self, start = 0, lastwindowtitle = ""):
-               try:
-                       self.lastwindowtitle = lastwindowtitle
-                       self.start = start
-                       self.type, self.value, self.tb = sys.exc_info()
-                       if self.type is not SyntaxError:
-                               self.show()
-                               if type(self.type) == types.ClassType:
-                                       errortext = self.type.__name__
-                               else:
-                                       errortext = str(self.type)
-                               value = str(self.value)
-                               if self.value and value:
-                                       errortext = errortext + ": " + value
-                               self.w.text.set(errortext)
-                               self.buildtblist()
-                               self.w.list.set(self.textlist)
-                               self.w.list.setselection([len(self.textlist) - 1])
-                               self.w.wid.SelectWindow()
-                               self.closed = 0
-                       else:
-                               self.syntaxerror()
-               except:
-                       traceback.print_exc()
-       
-       def syntaxerror(self):
-               try:
-                       value, (filename, lineno, charno, line) = self.value
-               except:
-                       filename = ""
-                       lineno = None
-                       value = self.value
-               if not filename and self.lastwindowtitle:
-                       filename = self.lastwindowtitle
-               elif not filename:
-                       filename = "<unknown>"
-               if filename and os.path.exists(filename):
-                       filename = os.path.split(filename)[1]
-               if lineno:
-                       charno = charno - 1
-                       text = str(value) + '\rFile: "' + str(filename) + '", line ' + str(lineno) + '\r\r' + line[:charno] + "\80" + line[charno:-1]
-               else:
-                       text = str(value) + '\rFile: "' + str(filename) + '"'
-               self.syntaxdialog = W.ModalDialog((360, 120), "Syntax Error")
-               self.syntaxdialog.text = W.TextBox((10, 10, -10, -40), text)
-               self.syntaxdialog.cancel = W.Button((-190, -32, 80, 16), "Cancel", self.syntaxclose)
-               self.syntaxdialog.edit = W.Button((-100, -32, 80, 16), "Edit", self.syntaxedit)
-               self.syntaxdialog.setdefaultbutton(self.syntaxdialog.edit)
-               self.syntaxdialog.bind("cmd.", self.syntaxdialog.cancel.push)
-               self.syntaxdialog.open()
-       
-       def syntaxclose(self):
-               self.syntaxdialog.close()
-               del self.syntaxdialog
-       
-       def syntaxedit(self):
-               try:
-                       value, (filename, lineno, charno, line) = self.value
-               except:
-                       filename = ""
-                       lineno = None
-               if not filename and self.lastwindowtitle:
-                       filename = self.lastwindowtitle
-               elif not filename:
-                       filename = "<unknown>"
-               self.syntaxclose()
-               if lineno:
-                       W.getapplication().openscript(filename, lineno, charno - 1)
-               else:
-                       W.getapplication().openscript(filename)
-       
-       def show(self):
-               if self.closed:
-                       self.setupwidgets()
-                       self.w.open()
-               else:
-                       self.w.wid.ShowWindow()
-                       self.w.wid.SelectWindow()
-       
-       def hide(self):
-               if self.closed:
-                       return
-               self.w.close()
-       
-       def close(self):
-               self.bounds = self.w.getbounds()
-               self.closed = 1
-               self.type, self.value, self.tb = None, None, None
-               self.tblist = None
-       
-       def activate(self, onoff):
-               if onoff:
-                       if self.closed:
-                               self.traceback()
-                       self.closed = 0
-                       self.checkbuttons()
-       
-       def setupwidgets(self):
-               self.w = W.Window(self.bounds, self.title, minsize = (316, 168))
-               self.w.text = W.TextBox((10, 10, -10, 30))
-               self.w.tbtitle = W.TextBox((10, 40, -10, 10), "Traceback (innermost last):")
-               self.w.list = W.TwoLineList((10, 60, -10, -40), callback = self.listhit)
-               
-               self.w.editbutton = W.Button((10, -30, 60, 16), "Edit", self.edit)
-               self.w.editbutton.enable(0)
-               
-               self.w.browselocalsbutton = W.Button((80, -30, 100, 16), "Browse locals\8a", self.browselocals)
-               self.w.browselocalsbutton.enable(0)
-               
-               self.w.postmortembutton = W.Button((190, -30, 100, 16), "Post mortem\8a", self.postmortem)
-               
-               self.w.setdefaultbutton(self.w.editbutton)
-               self.w.bind("cmdb", self.w.browselocalsbutton.push)
-               self.w.bind("<close>", self.close)
-               self.w.bind("<activate>", self.activate)
-       
-       def buildtblist(self):
-               tb = self.tb
-               for i in range(self.start):
-                       if tb.tb_next is None:
-                               break
-                       tb = tb.tb_next
-               self.tblist = traceback.extract_tb(tb)
-               self.textlist = []
-               for filename, lineno, func, line in self.tblist:
-                       tbline = ""
-                       if os.path.exists(filename):
-                               filename = os.path.split(filename)[1]
-                               tbline = 'File "' + filename + '", line ' + `lineno` + ', in ' + func
-                       else:
-                               tbline = 'File "' + filename + '", line ' + `lineno` + ', in ' + func
-                       if line:
-                               tbline = tbline + '\r      ' + line
-                       self.textlist.append(tbline[:255])
-       
-       def edit(self):
-               sel = self.w.list.getselection()
-               for i in sel:
-                       filename, lineno, func, line = self.tblist[i]
-                       W.getapplication().openscript(filename, lineno)
-       
-       def browselocals(self):
-               sel = self.w.list.getselection()
-               for i in sel:
-                       tb = self.tb
-                       for j in range(i + self.start):
-                               tb = tb.tb_next
-                       self.browse(tb.tb_frame.f_locals)
-       
-       def browse(self, object):
-               import PyBrowser
-               PyBrowser.Browser(object)
-       
-       def postmortem(self):
-               import PyDebugger
-               PyDebugger.postmortem(self.type, self.value, self.tb)
-       
-       def listhit(self, isdbl):
-               if isdbl:
-                       self.w.editbutton.push()
-               else:
-                       self.checkbuttons()
-       
-       def checkbuttons(self):
-               havefile = len(self.w.list.getselection()) > 0
-               self.w.editbutton.enable(havefile)
-               self.w.browselocalsbutton.enable(havefile)
-               self.w.setdefaultbutton(havefile and self.w.editbutton or self.w.postmortembutton)
-
diff --git a/Mac/Tools/IDE/Wwindows.py b/Mac/Tools/IDE/Wwindows.py
deleted file mode 100644 (file)
index 2d449c7..0000000
+++ /dev/null
@@ -1,628 +0,0 @@
-import Qd
-import Win
-import Evt
-import Fm
-import FrameWork
-import Windows
-import Events
-import Wbase
-import Dlg
-import MacOS
-import Menu
-import struct
-import traceback
-
-from types import *
-
-
-class Window(FrameWork.Window, Wbase.SelectableWidget):
-       
-       windowkind = Windows.documentProc
-       
-       def __init__(self, possize, title="", minsize=None, maxsize=None, 
-                       tabbable=1, show=1, fontsettings=None):
-               import W
-               if fontsettings is None:
-                       fontsettings = W.getdefaultfont()
-               self._fontsettings = fontsettings
-               W.SelectableWidget.__init__(self, possize)
-               self._globalbounds = l, t, r, b = self.getwindowbounds(possize, minsize)
-               self._bounds = (0, 0, r - l, b - t)
-               self._tabchain = []
-               self._currentwidget = None
-               self.title = title
-               self._parentwindow = self
-               self._tabbable = tabbable
-               self._defaultbutton = None
-               self._drawwidgetbounds = 0
-               self._show = show
-               self._lastrollover = None
-               self.hasclosebox = 1
-               # XXX the following is not really compatible with the
-               #  new (system >= 7.5) window procs. 
-               if minsize:
-                       self._hasgrowbox = 1
-                       self.windowkind = self.windowkind | 8
-                       l, t = minsize
-                       if maxsize:
-                               r, b = maxsize[0] + 1, maxsize[1] + 1
-                       else:
-                               r, b = 32000, 32000
-                       self.growlimit = (l, t, r, b)
-               else:
-                       self._hasgrowbox = 0
-                       if (self.windowkind == 0 or self.windowkind >= 8) and self.windowkind < 1000:
-                               self.windowkind = self.windowkind | 4
-               FrameWork.Window.__init__(self, W.getapplication())
-       
-       def gettitle(self):
-               return self.title
-       
-       def settitle(self, title):
-               self.title = title
-               if self.wid:
-                       self.wid.SetWTitle(title)
-       
-       def getwindowbounds(self, size, minsize = None):
-               return windowbounds(size, minsize)      
-       
-       def getcurrentwidget(self):
-               return self._currentwidget
-       
-       def show(self, onoff):
-               if onoff:
-                       self.wid.ShowWindow()
-               else:
-                       self.wid.HideWindow()
-       
-       def isvisible(self):
-               return self.wid.IsWindowVisible()
-       
-       def select(self):
-               self.wid.SelectWindow()
-               # not sure if this is the best place, I need it when
-               # an editor gets selected, and immediately scrolled
-               # to a certain line, waste scroll assumes everything 
-               # to be in tact.
-               self.do_rawupdate(self.wid, "DummyEvent")
-       
-       def open(self):
-               self.wid = Win.NewCWindow(self._globalbounds, self.title, self._show,
-                       self.windowkind, -1, self.hasclosebox, 0)
-               self.SetPort()
-               fontname, fontstyle, fontsize, fontcolor = self._fontsettings
-               fnum = Fm.GetFNum(fontname)
-               if fnum == 0:
-                       fnum = Fm.GetFNum("Geneva")
-               Qd.TextFont(fnum)
-               Qd.TextFace(fontstyle)
-               Qd.TextSize(fontsize)
-               if self._bindings.has_key("<open>"):
-                       callback = self._bindings["<open>"]
-                       callback()
-               for w in self._widgets:
-                       w.forall_frombottom("open")
-               self._maketabchain()
-               if self._tabbable:
-                       self.bind('tab', self.nextwidget)
-                       self.bind('shifttab', self.previouswidget)
-               else:
-                       self._hasselframes = 0
-               if self._tabchain:
-                       self._tabchain[0].select(1)
-               self.do_postopen()
-       
-       def close(self):
-               if not self.wid:
-                       return  # we are already closed
-               if self._bindings.has_key("<close>"):
-                       callback = self._bindings["<close>"]
-                       try:
-                               rv = callback()
-                       except:
-                               print 'error in <close> callback'
-                               traceback.print_exc()
-                       else:
-                               if rv:
-                                       return rv
-               #for key in self._widgetsdict.keys():
-               #       self._removewidget(key)
-               self.forall_butself("close")
-               Wbase.SelectableWidget.close(self)
-               self._tabchain = []
-               self._currentwidget = None
-               self.wid.HideWindow()
-               self.do_postclose()
-       
-       def domenu_close(self, *args):
-               self.close()
-       
-       def getbounds(self):
-               return self._globalbounds
-       
-       def setbounds(self, bounds):
-               l, t, r, b = bounds
-               self.move(l, t)
-               self.resize(r-l, b-t)
-       
-       def move(self, x, y = None):
-               """absolute move"""
-               if y == None:
-                       x, y = x
-               self.wid.MoveWindow(x, y, 0)
-       
-       def resize(self, x, y = None):
-               if not self._hasgrowbox:
-                       return  # hands off!
-               if y == None:
-                       x, y = x
-               self.SetPort()
-               self.GetWindow().InvalWindowRect(self.getgrowrect())
-               self.wid.SizeWindow(x, y, 1)
-               self._calcbounds()
-       
-       def test(self, point):
-               return 1
-       
-       def draw(self, visRgn = None):
-               if self._hasgrowbox:
-                       self.tempcliprect(self.getgrowrect())
-                       self.wid.DrawGrowIcon()
-                       self.restoreclip()
-       
-       def idle(self, *args):
-               self.SetPort()
-               point = Evt.GetMouse()
-               widget = self.findwidget(point, 0)
-               if self._bindings.has_key("<idle>"):
-                       callback = self._bindings["<idle>"]
-                       if callback():
-                               return
-               if self._currentwidget is not None and hasattr(self._currentwidget, "idle"):
-                       if self._currentwidget._bindings.has_key("<idle>"):
-                               callback = self._currentwidget._bindings["<idle>"]
-                               if callback():
-                                       return
-                       if self._currentwidget.idle():
-                               return
-               if widget is not None and hasattr(widget, "rollover"):
-                       if 1:   #self._lastrollover <> widget:
-                               if self._lastrollover:
-                                       self._lastrollover.rollover(point, 0)
-                               self._lastrollover = widget
-                               self._lastrollover.rollover(point, 1)
-               else:
-                       if self._lastrollover:
-                               self._lastrollover.rollover(point, 0)
-                       self._lastrollover = None
-                       Wbase.SetCursor("arrow")
-
-       def xxx___select(self, widget):
-               if self._currentwidget == widget:
-                       return
-               if self._bindings.has_key("<select>"):
-                       callback = self._bindings["<select>"]
-                       if callback(widget):
-                               return
-               if widget is None:
-                       if self._currentwidget is not None:
-                               self._currentwidget.select(0)
-               elif type(widget) == InstanceType and widget._selectable:
-                       widget.select(1)
-               elif widget == -1 or widget == 1:
-                       if len(self._tabchain) <= 1:
-                               return
-                       temp = self._tabchain[(self._tabchain.index(self._currentwidget) + widget) % len(self._tabchain)]
-                       temp.select(1)
-               else:
-                       raise TypeError, "Widget is not selectable"
-       
-       def setdefaultbutton(self, newdefaultbutton = None, *keys):
-               if newdefaultbutton == self._defaultbutton:
-                       return
-               if self._defaultbutton:
-                       self._defaultbutton._setdefault(0)
-               if not newdefaultbutton:
-                       self.bind("return", None)
-                       self.bind("enter", None)
-                       return
-               import Wcontrols
-               if not isinstance(newdefaultbutton, Wcontrols.Button):
-                       raise TypeError, "widget is not a button"
-               self._defaultbutton = newdefaultbutton
-               self._defaultbutton._setdefault(1)
-               if not keys:
-                       self.bind("return", self._defaultbutton.push)
-                       self.bind("enter", self._defaultbutton.push)
-               else:
-                       for key in keys:
-                               self.bind(key, self._defaultbutton.push)
-       
-       def nextwidget(self):
-               self.xxx___select(1)
-       
-       def previouswidget(self):
-               self.xxx___select(-1)
-       
-       def drawwidgetbounds(self, onoff):
-               self._drawwidgetbounds = onoff
-               self.SetPort()
-               self.GetWindow().InvalWindowRect(self._bounds)
-       
-       def _drawbounds(self):
-               pass
-
-       def _maketabchain(self):
-               # XXX This has to change, it's no good when we are adding or deleting widgets.
-               # XXX Perhaps we shouldn't keep a "tabchain" at all.
-               self._hasselframes = 0
-               self._collectselectablewidgets(self._widgets)
-               if self._hasselframes and len(self._tabchain) > 1:
-                       self._hasselframes = 1
-               else:
-                       self._hasselframes = 0
-       
-       def _collectselectablewidgets(self, widgets):
-               import W
-               for w in widgets:
-                       if w._selectable:
-                               self._tabchain.append(w)
-                               if isinstance(w, W.List):
-                                       self._hasselframes = 1
-                       self._collectselectablewidgets(w._widgets)
-       
-       def _calcbounds(self):
-               self._possize = self.wid.GetWindowPort().portRect[2:]
-               w, h = self._possize
-               self._bounds = (0, 0, w, h)
-               self.wid.GetWindowContentRgn(scratchRegion)
-               l, t, r, b = GetRgnBounds(scratchRegion)
-               self._globalbounds = l, t, l + w, t + h
-               for w in self._widgets:
-                       w._calcbounds()
-       
-       # FrameWork override methods
-       def do_inDrag(self, partcode, window, event):
-               where = event[3]
-               self.wid.GetWindowContentRgn(scratchRegion)
-               was_l, was_t, r, b = GetRgnBounds(scratchRegion)
-               window.DragWindow(where, self.draglimit)
-               self.wid.GetWindowContentRgn(scratchRegion)
-               is_l, is_t, r, b = GetRgnBounds(scratchRegion)
-               self._globalbounds = Qd.OffsetRect(self._globalbounds, 
-                                       is_l - was_l, is_t - was_t)
-       
-       def do_char(self, char, event):
-               import Wkeys
-               (what, message, when, where, modifiers) = event
-               key = char
-               if Wkeys.keynames.has_key(key):
-                       key = Wkeys.keynames[key]
-               if modifiers & Events.shiftKey:
-                       key = 'shift' + key
-               if modifiers & Events.cmdKey:
-                       key = 'cmd' + key
-               if modifiers & Events.controlKey:
-                       key = 'control' + key
-               if self._bindings.has_key("<key>"):
-                       callback = self._bindings["<key>"]
-                       if Wbase.CallbackCall(callback, 0, char, event):
-                               return
-               if self._bindings.has_key(key):
-                       callback = self._bindings[key]
-                       Wbase.CallbackCall(callback, 0, char, event)
-               elif self._currentwidget is not None:
-                       if self._currentwidget._bindings.has_key(key):
-                               callback = self._currentwidget._bindings[key]
-                               Wbase.CallbackCall(callback, 0, char, event)
-                       else:
-                               if self._currentwidget._bindings.has_key("<key>"):
-                                       callback = self._currentwidget._bindings["<key>"]
-                                       if Wbase.CallbackCall(callback, 0, char, event):
-                                               return
-                               self._currentwidget.key(char, event)
-       
-       def do_contentclick(self, point, modifiers, event):
-               widget = self.findwidget(point)
-               if widget is not None:
-                       if self._bindings.has_key("<click>"):
-                               callback = self._bindings["<click>"]
-                               if Wbase.CallbackCall(callback, 0, point, modifiers):
-                                       return
-                       if widget._bindings.has_key("<click>"):
-                               callback = widget._bindings["<click>"]
-                               if Wbase.CallbackCall(callback, 0, point, modifiers):
-                                       return
-                       if widget._selectable:
-                               widget.select(1, 1)
-                       widget.click(point, modifiers)
-       
-       def do_update(self, window, event):
-               Qd.EraseRgn(window.GetWindowPort().visRgn)
-               self.forall_frombottom("draw", window.GetWindowPort().visRgn)
-               if self._drawwidgetbounds:
-                       self.forall_frombottom("_drawbounds")
-       
-       def do_activate(self, onoff, event):
-               if not onoff:
-                       if self._lastrollover:
-                               self._lastrollover.rollover((0, 0), 0)
-                               self._lastrollover = None
-               self.SetPort()
-               self.forall("activate", onoff)
-               self.draw()
-       
-       def do_postresize(self, width, height, window):
-               self.GetWindow().InvalWindowRect(self.getgrowrect())
-               self._calcbounds()
-       
-       def do_inGoAway(self, partcode, window, event):
-               where = event[3]
-               closeall = event[4] & Events.optionKey
-               if window.TrackGoAway(where):
-                       if not closeall:
-                               self.close()
-                       else:
-                               for window in self.parent._windows.values():
-                                       rv = window.close()
-                                       if rv and rv > 0:
-                                               return
-       
-       # utilities
-       def tempcliprect(self, tempcliprect):
-               tempclip = Qd.NewRgn()
-               Qd.RectRgn(tempclip, tempcliprect)
-               self.tempclip(tempclip)
-               Qd.DisposeRgn(tempclip)
-       
-       def tempclip(self, tempclip):
-               if not hasattr(self, "saveclip"):
-                       self.saveclip = []
-               saveclip = Qd.NewRgn()
-               Qd.GetClip(saveclip)
-               self.saveclip.append(saveclip)
-               Qd.SetClip(tempclip)
-       
-       def restoreclip(self):
-               Qd.SetClip(self.saveclip[-1])
-               Qd.DisposeRgn(self.saveclip[-1])
-               del self.saveclip[-1]
-       
-       def getgrowrect(self):
-               l, t, r, b = self.wid.GetWindowPort().portRect
-               return (r - 15, b - 15, r, b)
-       
-       def has_key(self, key):
-               return self._widgetsdict.has_key(key)
-       
-       def __getattr__(self, attr):
-               global _successcount, _failcount, _magiccount
-               if self._widgetsdict.has_key(attr):
-                       _successcount = _successcount + 1
-                       return self._widgetsdict[attr]
-               if self._currentwidget is None or (attr[:7] <> 'domenu_' and 
-                               attr[:4] <> 'can_' and attr <> 'insert'):
-                       _failcount = _failcount + 1
-                       raise AttributeError, attr
-               # special case: if a domenu_xxx, can_xxx or insert method is asked for, 
-               # see if the active widget supports it
-               _magiccount = _magiccount + 1
-               return getattr(self._currentwidget, attr)
-
-_successcount = 0
-_failcount = 0
-_magiccount = 0
-
-class Dialog(Window):
-       
-       windowkind = Windows.movableDBoxProc
-       
-       # this __init__ seems redundant, but it's not: it has less args
-       def __init__(self, possize, title = ""):
-               Window.__init__(self, possize, title)
-       
-       def can_close(self, *args):
-               return 0
-       
-       def getwindowbounds(self, size, minsize = None):
-               screenbounds = sl, st, sr, sb = Qd.qd.screenBits.bounds
-               w, h = size
-               l = sl + (sr - sl - w) / 2
-               t = st + (sb - st - h) / 3
-               return l, t, l + w, t + h
-
-
-class ModalDialog(Dialog):
-       
-       def __init__(self, possize, title = ""):
-               Dialog.__init__(self, possize, title)
-               if title:
-                       self.windowkind = Windows.movableDBoxProc
-               else:
-                       self.windowkind = Windows.dBoxProc
-       
-       def open(self):
-               import W
-               Dialog.open(self)
-               self.app = W.getapplication()
-               self.done = 0
-               Menu.HiliteMenu(0)
-               app = self.parent
-               app.enablemenubar(0)
-               try:
-                       self.mainloop()
-               finally:
-                       app.enablemenubar(1)
-       
-       def close(self):
-               if not self.wid:
-                       return  # we are already closed
-               self.done = 1
-               del self.app
-               Dialog.close(self)
-       
-       def mainloop(self):
-               saveyield = MacOS.EnableAppswitch(-1)
-               while not self.done:
-                       #self.do1event()
-                       self.do1event(  Events.keyDownMask + 
-                                               Events.autoKeyMask + 
-                                               Events.activMask + 
-                                               Events.updateMask + 
-                                               Events.mDownMask +
-                                               Events.mUpMask, 
-                                               10)
-               MacOS.EnableAppswitch(saveyield)
-       
-       def do1event(self, mask = Events.everyEvent, wait = 0):
-               ok, event = self.app.getevent(mask, wait)
-               if Dlg.IsDialogEvent(event):
-                       if self.app.do_dialogevent(event):
-                               return
-               if ok:
-                       self.dispatch(event)
-               else:
-                       self.app.idle(event)
-       
-       def do_keyDown(self, event):
-               self.do_key(event)
-       
-       def do_autoKey(self, event):
-               if not event[-1] & Events.cmdKey:
-                       self.do_key(event)
-       
-       def do_key(self, event):
-               (what, message, when, where, modifiers) = event
-               w = Win.FrontWindow()
-               if w <> self.wid:
-                       return
-               c = chr(message & Events.charCodeMask)
-               if modifiers & Events.cmdKey:
-                       self.app.checkmenus(self)
-                       result = Menu.MenuKey(ord(c))
-                       id = (result>>16) & 0xffff      # Hi word
-                       item = result & 0xffff          # Lo word
-                       if id:
-                               self.app.do_rawmenu(id, item, None, event)
-                               return
-               self.do_char(c, event)
-       
-       def do_mouseDown(self, event):
-               (what, message, when, where, modifiers) = event
-               partcode, wid = Win.FindWindow(where)
-               #
-               # Find the correct name.
-               #
-               if FrameWork.partname.has_key(partcode):
-                       name = "do_" + FrameWork.partname[partcode]
-               else:
-                       name = "do_%d" % partcode
-               
-               if name == "do_inDesk":
-                       MacOS.HandleEvent(event)
-                       return
-               if wid == self.wid:
-                       try:
-                               handler = getattr(self, name)
-                       except AttributeError:
-                               handler = self.app.do_unknownpartcode
-               else:
-                       #MacOS.HandleEvent(event)
-                       if name == 'do_inMenuBar':
-                               handler = getattr(self.parent, name)
-                       else:
-                               return          
-               handler(partcode, wid, event)
-       
-       def dispatch(self, event):
-               (what, message, when, where, modifiers) = event
-               if FrameWork.eventname.has_key(what):
-                       name = "do_" + FrameWork.eventname[what]
-               else:
-                       name = "do_%d" % what
-               try:
-                       handler = getattr(self, name)
-               except AttributeError:
-                       try:
-                               handler = getattr(self.app, name)
-                       except AttributeError:
-                               handler = self.app.do_unknownevent
-               handler(event)
-       
-
-def FrontWindowInsert(stuff):
-       if not stuff:
-               return
-       if type(stuff) <> StringType:
-               raise TypeError, 'string expected'
-       import W
-       app = W.getapplication()
-       wid = Win.FrontWindow()
-       if wid and app._windows.has_key(wid):
-               window = app._windows[wid]
-               if hasattr(window, "insert"):
-                       try:
-                               window.insert(stuff)
-                               return
-                       except:
-                               pass
-       import EasyDialogs
-       if EasyDialogs.AskYesNoCancel(
-                       "Can¹t find window or widget to insert text into; copy to clipboard instead?", 
-                       1) == 1:
-               import Scrap
-               Scrap.ZeroScrap()
-               Scrap.PutScrap('TEXT', stuff)
-
-
-# not quite based on the same function in FrameWork    
-_windowcounter = 0
-
-def getnextwindowpos():
-       global _windowcounter
-       rows = 8
-       l = 4 * (rows + 1 - (_windowcounter % rows) + _windowcounter / rows)
-       t = 44 + 20 * (_windowcounter % rows)
-       _windowcounter = _windowcounter + 1
-       return l, t
-
-def windowbounds(preferredsize, minsize=None):
-       "Return sensible window bounds"
-       
-       global _windowcounter
-       if len(preferredsize) == 4:
-               bounds = l, t, r, b = preferredsize
-               desktopRgn = Win.GetGrayRgn()
-               tempRgn = Qd.NewRgn()
-               Qd.RectRgn(tempRgn, bounds)
-               union = Qd.UnionRgn(tempRgn, desktopRgn, tempRgn)
-               equal = Qd.EqualRgn(tempRgn, desktopRgn)
-               Qd.DisposeRgn(tempRgn)
-               if equal:
-                       return bounds
-               else:
-                       preferredsize = r - l, b - t
-       if not minsize:
-               minsize = preferredsize
-       minwidth, minheight = minsize
-       width, height = preferredsize
-       
-       sl, st, sr, sb = screenbounds = Qd.InsetRect(Qd.qd.screenBits.bounds, 4, 4)
-       l, t = getnextwindowpos()
-       if (l + width) > sr:
-               _windowcounter = 0
-               l, t = getnextwindowpos()
-       r = l + width
-       b = t + height
-       if (t + height) > sb:
-               b = sb
-               if (b - t) < minheight:
-                       b = t + minheight
-       return l, t, r, b
-
-scratchRegion = Qd.NewRgn()
-
-# util -- move somewhere convenient???
-def GetRgnBounds(the_Rgn):
-       (t, l, b, r) = struct.unpack("hhhh", the_Rgn.data[2:10])
-       return (l, t, r, b)
diff --git a/Mac/Unsupported/GUSI1-mods/GUSI.h b/Mac/Unsupported/GUSI1-mods/GUSI.h
deleted file mode 100644 (file)
index 5bea7f4..0000000
+++ /dev/null
@@ -1,369 +0,0 @@
-/*********************************************************************
-Project        :       GUSI                            -       Grand Unified Socket Interface
-File           :       GUSI.h                  -       Socket calls
-Author :       Matthias Neeracher
-Language       :       MPW C/C++
-
-$Log$
-Revision 1.1  2000/09/12 20:24:50  jack
-Moved to Unsupported.
-
-Revision 1.1  1998/08/18 14:52:33  jack
-Putting Python-specific GUSI modifications under CVS.
-
-Revision 1.2  1994/12/31  01:45:54  neeri
-Fix alignment.
-
-Revision 1.1  1994/02/25  02:56:49  neeri
-Initial revision
-
-Revision 0.15  1993/06/27  00:00:00  neeri
-f?truncate
-
-Revision 0.14  1993/06/20  00:00:00  neeri
-Changed sa_constr_ppc
-
-Revision 0.13  1993/02/14  00:00:00  neeri
-AF_PAP
-
-Revision 0.12  1992/12/08  00:00:00  neeri
-getcwd()
-
-Revision 0.11  1992/11/15  00:00:00  neeri
-remove netdb.h definitions
-
-Revision 0.10  1992/09/26  00:00:00  neeri
-Separate dirent and stat
-
-Revision 0.9  1992/09/12  00:00:00  neeri
-Hostname stuff
-
-Revision 0.8  1992/09/07  00:00:00  neeri
-readlink()
-
-Revision 0.7  1992/08/03  00:00:00  neeri
-sa_constr_ppc
-
-Revision 0.6  1992/07/21  00:00:00  neeri
-sockaddr_atlk_sym
-
-Revision 0.5  1992/06/26  00:00:00  neeri
-choose()
-
-Revision 0.4  1992/05/18  00:00:00  neeri
-PPC stuff
-
-Revision 0.3  1992/04/27  00:00:00  neeri
-getsockopt()
-
-Revision 0.2  1992/04/19  00:00:00  neeri
-C++ compatibility
-
-Revision 0.1  1992/04/17  00:00:00  neeri
-bzero()
-
-*********************************************************************/
-
-#ifndef _GUSI_
-#define _GUSI_
-
-#include <sys/types.h>
-
-/* Feel free to increase FD_SETSIZE as needed */
-#define GUSI_MAX_FD    FD_SETSIZE
-
-#include <sys/cdefs.h>
-#include <compat.h>
-#include <sys/ioctl.h>
-#include <sys/fcntl.h>
-#include <sys/stat.h>
-#include <dirent.h>
-#include <Types.h>
-#include <Events.h>
-#include <Files.h>
-#include <AppleTalk.h>
-#include <CTBUtilities.h>
-#include <Packages.h>
-#include <PPCToolBox.h>
-#include <StandardFile.h>
-#include <stdio.h>
-#include <sys/time.h>
-#include <sys/socket.h>
-#include <string.h>
-#include <netinet/in.h>
-#include <netdb.h>
-#include <sys/un.h>
-#include <unistd.h>
-#include <machine/endian.h>
-
-typedef enum spin_msg {
-       SP_MISC,                                /* some weird thing, usually just return immediately if you get this */
-       SP_SELECT,                      /* in a select call */
-       SP_NAME,                                /* getting a host by name */
-       SP_ADDR,                                /* getting a host by address */
-       SP_STREAM_READ, /* Stream read call */
-       SP_STREAM_WRITE,        /* Stream write call */
-       SP_DGRAM_READ,          /* Datagram read call */
-       SP_DGRAM_WRITE, /* Datagram write call */
-       SP_SLEEP,                       /* sleeping, passes ticks left to sleep */
-       SP_AUTO_SPIN            /* Autospin, passes argument to SpinCursor */
-} spin_msg;
-
-typedef int (*GUSISpinFn)(spin_msg msg, long param);
-typedef void (*GUSIEvtHandler)(EventRecord * ev);
-typedef GUSIEvtHandler GUSIEvtTable[24];
-
-/*
- * Address families, defined in sys/socket.h
- *
-#define        AF_UNSPEC                0              // unspecified
-#define        AF_UNIX                  1              // local to host (pipes, portals)
-#define        AF_INET                  2              // internetwork: UDP, TCP, etc.
-#define        AF_CTB                   3              // Apple Comm Toolbox (not yet supported)
-#define        AF_FILE                  4              // Normal File I/O (used internally)
-#define        AF_PPC                   5              // PPC Toolbox
-#define        AF_PAP                   6              // Printer Access Protocol (client only)
-#define        AF_APPLETALK    16              // Apple Talk
-
-*/
-
-#define        ATALK_SYMADDR 272               /* Symbolic Address for AppleTalk                       */
-
-/*
- * Some Implementations of GUSI require you to call GUSISetup for the
- * socket families you'd like to have defined. It's a good idea to call
- * this for *all* implementations.
- *
- * GUSIDefaultSetup() will include all socket families.
- *
- * Never call any of the GUSIwithXXX routines directly.
- */
-
-__BEGIN_DECLS
-void GUSIwithAppleTalkSockets();
-void GUSIwithInternetSockets();
-void GUSIwithPAPSockets();
-void GUSIwithPPCSockets();
-void GUSIwithUnixSockets();
-void GUSIwithSIOUXSockets();
-void GUSIwithMPWSockets();
-
-void GUSISetup(void (*socketfamily)());
-void GUSIDefaultSetup();
-void GUSILoadConfiguration(Handle);
-__END_DECLS
-/*
- * Types,  defined in sys/socket.h
- *
-
-#define        SOCK_STREAM              1              // stream socket 
-#define        SOCK_DGRAM               2              // datagram socket
-
-*/
-
-/*
- * Defined in sys/un.h
- *
-struct sockaddr_un {
-       short           sun_family;
-       char            sun_path[108];
-};
-
-*/
-
-#ifndef PRAGMA_ALIGN_SUPPORTED
-#error Apple had some fun with the conditional macros again
-#endif
-
-#if PRAGMA_ALIGN_SUPPORTED
-#pragma options align=mac68k
-#endif
-
-struct sockaddr_atlk {
-       short                   family;
-       AddrBlock       addr;
-};
-
-struct sockaddr_atlk_sym {
-       short                   family;
-       EntityName      name;
-};
-
-struct sockaddr_ppc {
-       short                                   family;
-       LocationNameRec location;
-       PPCPortRec                      port;
-};
-
-/* Definitions for choose() */
-
-#define        CHOOSE_DEFAULT  1               /*      Use *name as default name                                               */
-#define        CHOOSE_NEW              2               /* Choose new entity name, not existing one     */
-#define        CHOOSE_DIR              4               /* Choose a directory name, not a file          */
-
-typedef struct {
-       short                   numTypes;
-       SFTypeList      types;
-} sa_constr_file;
-
-typedef struct {
-       short                   numTypes;
-       NLType          types;
-} sa_constr_atlk;
-
-/* Definitions for sa_constr_ppc */
-
-#define PPC_CON_NEWSTYLE               0x8000  /* Required */
-#define PPC_CON_MATCH_NAME             0x0001  /* Match name */
-#define PPC_CON_MATCH_TYPE     0x0002  /* Match port type */
-#define PPC_CON_MATCH_NBP              0x0004  /* Match NBP type */
-
-typedef struct {
-       short                   flags;
-       Str32                   nbpType;
-       PPCPortRec      match;
-} sa_constr_ppc;
-
-#if PRAGMA_ALIGN_SUPPORTED
-#pragma options align=reset
-#endif
-
-__BEGIN_DECLS
-/* 
- * IO/Socket stuff, defined elsewhere (unistd.h, sys/socket.h
- *
-
-int socket(int domain, int type, short protocol);
-int bind(int s, void *name, int namelen);
-int connect(int s, void *addr, int addrlen);
-int listen(int s, int qlen);
-int accept(int s, void *addr, int *addrlen);
-int close(int s);
-int read(int s, char *buffer, unsigned buflen);
-int readv(int s, struct iovec *iov, int count);
-int recv(int s, void *buffer, int buflen, int flags);
-int recvfrom(int s, void *buffer, int buflen, int flags, void *from, int *fromlen);
-int recvmsg(int s,struct msghdr *msg,int flags);
-int write(int s, const char *buffer, unsigned buflen);
-int writev(int s, struct iovec *iov, int count);
-int send(int s, void *buffer, int buflen, int flags);
-int sendto (int s, void *buffer, int buflen, int flags, void *to, int tolen);
-int sendmsg(int s,struct msghdr *msg,int flags);
-int select(int width, fd_set *readfds, fd_set *writefds, fd_set *exceptfds, struct timeval *timeout);
-int getdtablesize(void);
-int getsockname(int s, void *name, int *namelen);
-int getpeername(int s, struct sockaddr *name, int *namelen);
-int shutdown(int s, int how);
-int fcntl(int s, unsigned int cmd, int arg);
-int dup(int s);
-int dup2(int s, int s1);
-int ioctl(int d, unsigned int request, long *argp);
-int getsockopt(int s, int level, int optname, char *optval, int * optlen);
-int setsockopt(int s, int level, int optname, char *optval, int optlen);
-int isatty(int);
-int remove(const char *filename);
-int rename(const char *oldname, const char *newname);
-int creat(const char*);
-int faccess(char*, unsigned int, long*);
-long lseek(int, long, int);
-int open(const char*, int);
-int unlink(char*);
-int symlink(char* linkto, char* linkname);
-int readlink(char* path, char* buf, int bufsiz);
-int truncate(char *path, long length);
-int ftruncate(int fd, long length);
-int chdir(char * path);
-int mkdir(char * path);
-int rmdir(char * path);
-char * getcwd(char * buf, int size);
-*/
-
-/* 
- * Defined in stdio.h
- */
-#ifdef __MWERKS__
-void fsetfileinfo (char *filename, unsigned long newcreator, unsigned long newtype);
-#endif
-
-void fgetfileinfo (char *filename, unsigned long * creator, unsigned long * type);
-
-#ifdef __MWERKS__
-FILE *fdopen(int fd, const char *mode);
-int fwalk(int (*func)(FILE * stream));
-#endif
-
-int choose(
-               int             domain,
-               int             type,
-               char *  prompt,
-               void *  constraint,
-               int             flags,
-               void *  name,
-               int *   namelen);
-
-/* 
- * Hostname routines, defined in netdb.h
- *
-struct hostent * gethostbyname(char *name);
-struct hostent * gethostbyaddr(struct in_addr *addrP, int, int);
-int gethostname(char *machname, long buflen);
-struct servent * getservbyname (char * name, char * proto);
-struct protoent * getprotobyname(char * name);
-
-*/
-
-char * inet_ntoa(struct in_addr inaddr);
-struct in_addr inet_addr(char *address);
-
-/* 
- * GUSI supports a number of hooks. Every one of them has a different prototype, but needs
- * to be passed as a GUSIHook
- */
-
-typedef enum {
-       GUSI_SpinHook,  /* A GUSISpinFn, to be called when a call blocks */
-       GUSI_ExecHook, /* Boolean (*hook)(const GUSIFileRef & ref), decides if file is executable */
-       GUSI_FTypeHook,/* Boolean (*hook)(const FSSpec & spec) sets a default file type */
-       GUSI_SpeedHook /* A long integer, to be added to the cursor spin variable */
-} GUSIHookCode;
-
-typedef void (*GUSIHook)(void);
-void GUSISetHook(GUSIHookCode code, GUSIHook hook);
-GUSIHook GUSIGetHook(GUSIHookCode code);
-
-/* 
- * What to do when a routine blocks
- */
-
-/* Defined for compatibility */
-#define GUSISetSpin(routine)   GUSISetHook(GUSI_SpinHook, (GUSIHook)routine)
-#define GUSIGetSpin()                  (GUSISpinFn) GUSIGetHook(GUSI_SpinHook)
-
-int GUSISetEvents(GUSIEvtTable table);
-GUSIEvtHandler * GUSIGetEvents(void);
-
-extern GUSIEvtHandler  GUSISIOWEvents[];
-
-#define SIGPIPE        13
-#define SIGALRM        14
-
-/* 
- * BSD memory routines, defined in compat.h
- *
-
-#define index(a, b)                                            strchr(a, b)
-#define rindex(a, b)                                           strrchr(a, b)
-#define bzero(from, len)                               memset(from, 0, len)
-#define bcopy(from, to, len)                   memcpy(to, from, len)
-#define bcmp(s1, s2, len)                              memcmp(s1, s2, len)
-#define bfill(from, len, x)                    memset(from, x, len)
-
- */
-
-__END_DECLS
-
-#endif /* !_GUSI_ */
diff --git a/Mac/Unsupported/GUSI1-mods/GUSI.r b/Mac/Unsupported/GUSI1-mods/GUSI.r
deleted file mode 100644 (file)
index a6e2648..0000000
+++ /dev/null
@@ -1,171 +0,0 @@
-/*********************************************************************
-Project        :       GUSI                            -       Grand Unified Socket Interface
-File           :       GUSI.r                  -       Include this
-Author :       Matthias Neeracher
-Language       :       MPW Rez 3.0
-
-$Log$
-Revision 1.1  2000/09/12 20:24:45  jack
-Moved to Unsupported.
-
-Revision 1.1  1998/08/18 14:52:37  jack
-Putting Python-specific GUSI modifications under CVS.
-
-Revision 1.3  1994/12/30  19:33:34  neeri
-Enlargened message box for select folder dialog.
-
-Revision 1.2  1994/08/10  00:34:18  neeri
-Sanitized for universal headers.
-
-Revision 1.1  1994/02/25  02:12:04  neeri
-Initial revision
-
-Revision 0.5  1993/05/21  00:00:00  neeri
-suffixes
-
-Revision 0.4  1993/01/31  00:00:00  neeri
-Daemon
-
-Revision 0.3  1993/01/03  00:00:00  neeri
-autoSpin
-
-Revision 0.2  1992/09/24  00:00:00  neeri
-Don't include CKID, create GUSIRsrc_P.h
-
-Revision 0.1  1992/07/13  00:00:00  neeri
-.rsrc
-
-*********************************************************************/
-
-#include "Types.r"
-#include "GUSIRsrc_P.h"
-
-include "GUSI.rsrc" not 'ckid';
-
-/* Define a resource ('GU\85I', GUSIRsrcID) to override GUSI defaults            
-       To avoid having to change the Rez file every time I introduce another
-       feature, the preprocessor variable GUSI_PREF_VERSION by default keeps
-       everything compatible with version 1.0.2. Just define GUSI_PREF_VERSION
-       to be the version you want to use.
-*/
-
-#ifndef GUSI_PREF_VERSION
-#define GUSI_PREF_VERSION '0102'
-#endif
-
-type 'GU\85I' {
-       literal longint text    =       'TEXT'; /* Type for creat'ed files                              */
-       literal longint mpw     =       'MPS '; /* Creator for creat'ed files                   */
-       byte            noAutoSpin, autoSpin;           /* Automatically spin cursor ?                  */
-#if GUSI_PREF_VERSION > '0102'
-       boolean         useChdir, dontUseChdir;         /* Use chdir() ?                                                        */
-       boolean approxStat, accurateStat;       /* statbuf.st_nlink = # of subdirectories ? */
-#if GUSI_PREF_VERSION >= '0181'
-       boolean noDelayConsole, DelayConsole;   /* Delay opening console window until needed? */
-       fill            bit[1];
-#else
-       boolean noTCPDaemon, isTCPDaemon;       /* Inetd client ?                                                       */
-       boolean noUDPDaemon, isUDPDaemon;
-#endif
-#if GUSI_PREF_VERSION >= '0150'
-#if GUSI_PREF_VERSION >= '0181'
-       boolean wantAppleEvents, noAppleEvents; /* Always solicit AppleEvents */
-#else
-       boolean noConsole, hasConsole;          /* Are we providing our own dev:console ? (Obsolete) */
-#endif
-#if GUSI_PREF_VERSION >= '0180'
-       boolean autoInitGraf, noAutoInitGraf;   /* Automatically do InitGraf ? */
-       boolean exclusiveOpen, sharedOpen;      /* Shared open() ?                                                      */
-       boolean noSigPipe, sigPipe;                     /* raise SIGPIPE on write to closed PIPE */
-#else
-       fill            bit[3];
-#endif
-#else
-       fill            bit[4];
-#endif
-       literal longint = GUSI_PREF_VERSION;
-#if GUSI_PREF_VERSION >= '0120'
-       integer = $$Countof(SuffixArray);
-       wide array SuffixArray {
-                       literal longint;                                        /* Suffix of file */
-                       literal longint;                                        /* Type for file */
-                       literal longint;                                        /* Creator for file */
-       };
-#endif
-#endif
-};
-
-type 'TMPL' {
-       wide array {
-               pstring;
-               literal longint;
-       };
-};
-
-resource 'TMPL' (GUSIRsrcID, "GU\85I") {
-       {
-               "Type of created files",                'TNAM',
-               "Creator of created files",     'TNAM',
-               "Automatically spin cursor",    'DBYT',
-#if GUSI_PREF_VERSION > '0102'
-               "Not using chdir()",                            'BBIT',
-               "Accurate stat()",                              'BBIT',
-               "TCP daemon",                                           'BBIT',
-               "UDP daemon",                                           'BBIT',
-#if GUSI_PREF_VERSION >= '0150'
-               "Own Console",                                          'BBIT',
-#else
-               "Reserved",                                                     'BBIT',
-#endif
-#if GUSI_PREF_VERSION >= '0180'
-               "Don't initialize QuickDraw",   'BBIT',
-               "Open files shared",                            'BBIT',
-               "Raise SIGPIPE",                                        'BBIT',
-#else
-               "Reserved",                                                     'BBIT',
-               "Reserved",                                                     'BBIT',
-               "Reserved",                                                     'BBIT',
-#endif
-               "Version (don't change)",               'TNAM',         
-#if GUSI_PREF_VERSION >= '0120'
-               "NumSuffices",                                          'OCNT',
-               "*****",                                                                'LSTC',
-               "Suffix",                                                       'TNAM',
-               "Type for suffix",                              'TNAM',
-               "Creator for suffix",                   'TNAM',
-               "*****",                                                                'LSTE',
-#endif
-#endif         
-       }
-};
-
-resource 'DLOG' (GUSIRsrcID, "Get Directory") {
-       {0, 0, 217, 348}, 
-       dBoxProc, 
-       invisible, 
-       noGoAway, 
-       0x0, 
-       10240, 
-       "",
-       alertPositionMainScreen
-};
-
-resource 'DITL' (GUSIRsrcID, "Get Directory") {
-       {
-               { 142, 256,  160, 336}, Button          {enabled,"Open"},
-               {1152,  59, 1232,  77}, Button          {enabled,"Hidden"},
-               { 193, 256,  211, 336}, Button          {enabled,"Cancel"},
-               {  43, 232,   63, 347}, UserItem                {disabled},
-               {  72, 256,   90, 336}, Button          {enabled,"Eject"},
-               {  97, 256,  115, 336}, Button          {enabled,"Drive"},
-               {  43,  12,  189, 230}, UserItem                {enabled},
-               {  43, 229,  189, 246}, UserItem                {enabled},
-               { 128, 252,  129, 340}, UserItem                {disabled},
-               {1044,  20, 1145, 116}, StaticText      {disabled,""},
-               { 167, 256,  185, 336}, Button          {enabled,"Directory"},
-               {   0,  30,   18, 215}, Button          {enabled,"Select Current Directory:"},
-               { 200,  20, 1145, 222}, StaticText      {disabled,"Select a Folder"}
-       }
-};
-
-
diff --git a/Mac/Unsupported/GUSI1-mods/GUSIDispatch.cp b/Mac/Unsupported/GUSI1-mods/GUSIDispatch.cp
deleted file mode 100644 (file)
index c51783f..0000000
+++ /dev/null
@@ -1,1437 +0,0 @@
-/*********************************************************************
-Project        :       GUSI                            -       Grand Unified Socket Interface
-File   :       GUSIDispatch.cp-        Dispatch calls to their correct recipient
-Author :       Matthias Neeracher
-Language:      MPW C/C++
-
-$Log$
-Revision 1.1  2000/09/12 20:24:47  jack
-Moved to Unsupported.
-
-Revision 1.1  1998/08/18 14:52:37  jack
-Putting Python-specific GUSI modifications under CVS.
-
-Revision 1.4  1994/12/30  19:48:09  neeri
-Remove (theoretical) support for pre-System 6 systems.
-Remove built-in support for INETd.
-Fix problems in connection with ROM PowerPC library.
-Move open() to GUSIFileDispatch.cp.
-Support AF_UNSPEC domains.
-More work on spinning performance.
-
-Revision 1.3  1994/08/10  00:30:30  neeri
-Sanitized for universal headers.
-Prevent overly fast spinning.
-
-Revision 1.2  1994/05/01  23:47:34  neeri
-Extend fflush() kludge.
-Define _lastbuf for MPW 3.2 compatibility.
-
-Revision 1.1  1994/02/25  02:28:36  neeri
-Initial revision
-
-Revision 0.27  1993/11/24  00:00:00  neeri
-Flush stdio before closing
-
-Revision 0.26  1993/11/22  00:00:00  neeri
-Extend two time loser for EBADF
-
-Revision 0.25  1993/11/12  00:00:00  neeri
-Two time loser workaround for flush bug
-
-Revision 0.24  1993/06/27  00:00:00  neeri
-{pre,post}_select
-
-Revision 0.23  1993/06/27  00:00:00  neeri
-ftruncate
-
-Revision 0.22  1993/06/20  00:00:00  neeri
-Further subtleties in console handling 
-
-Revision 0.21  1993/05/21  00:00:00  neeri
-Suffixes
-
-Revision 0.20  1993/05/15  00:00:00  neeri
-Try to keep errno always set on error returns
-
-Revision 0.19  1993/05/13  00:00:00  neeri
-Limit Search for configuration resource to application
-
-Revision 0.18  1993/01/31  00:00:00  neeri
-Introducing daemons (pleased to meet you, hope you guess my name)
-
-Revision 0.17  1993/01/17  00:00:00  neeri
-Be more careful about user aborts.
-
-Revision 0.16  1993/01/03  00:00:00  neeri
-GUSIConfiguration
-
-Revision 0.15  1992/11/25  00:00:00  neeri
-Still trying to get standard descriptors for standalone programs right. sigh.
-
-Revision 0.14  1992/10/05  00:00:00  neeri
-Small fix in event dispatching
-
-Revision 0.13  1992/09/12  00:00:00  neeri
-getdtablesize()
-
-Revision 0.12  1992/08/30  00:00:00  neeri
-Move hasPPC to GUSIPPC.cp, AppleTalkIdentity
-
-Revision 0.11  1992/08/05  00:00:00  neeri
-Change the way standard I/O channels are opened
-
-Revision 0.10  1992/08/03  00:00:00  neeri
-Move Scatter/Gather to GUSIBuffer.cp
-
-Revision 0.9  1992/07/30  00:00:00  neeri
-Features with initializers
-
-Revision 0.8  1992/07/13  00:00:00  neeri
-hasProcessMgr
-
-Revision 0.7  1992/06/27  00:00:00  neeri
-choose(), hasNewSF
-
-Revision 0.6  1992/06/06  00:00:00  neeri
-Feature
-
-Revision 0.5  1992/04/19  00:00:00  neeri
-C++ Rewrite
-
-Revision 0.4  1992/04/18  00:00:00  neeri
-Changed read/write/send/recv dispatchers
-
-Revision 0.3  1992/04/17  00:00:00  neeri
-Spin routines
-
-Revision 0.2  1992/04/16  00:00:00  neeri
-User interrupt stuff
-
-Revision 0.1  1992/03/31  00:00:00  neeri
-unix domain socket calls
-
-*********************************************************************/
-
-#include "GUSIFile_P.h"
-#include "GUSIMPW_P.h"
-#include <SetJmp.h>
-#include <Signal.h>
-#include <CursorCtl.h>
-#include <Resources.h>
-#include <Events.h> 
-#include <Windows.h>
-#include <Finder.h>
-#include <Script.h>
-#include <Events.h>
-#include <Traps.h>
-#include <CommResources.h>
-#include <CTBUtilities.h>
-#include <Connections.h>
-#include <FileTransfers.h>
-#include <Terminals.h>
-#include <EPPC.h>
-#include <PLStringFuncs.h>
-#include <LowMem.h>
-#include <Processes.h>
-
-#if GENERATINGCFM
-#include <CodeFragments.h>
-#endif
-
-#pragma segment GUSI
-
-/***************************** Globals ******************************/
-
-GUSIConfiguration GUSIConfig;          // Change the order of these declarations
-SocketTable                                    Sockets;                        //      and you'll regret it (ARM Â§12.6.1)
-GUSISpinFn                                     GUSISpin        = GUSIDefaultSpin;
-GUSIExecFn                                     GUSIExec        = GUSIDefaultExec;
-GUSIFTypeFn                                    GUSIFType       = (GUSIFTypeFn)0;
-long                                           gGUSISpeed      = 1;
-static GUSIEvtHandler *        evtHandler      = nil;
-static short                           evtMask         = 0;
-static int                                     errorSock       = -1;
-static int                                     errorType       = 0;
-static int                                     errorCount      = 0;
-const int                                      errorMax                = 3;
-Boolean                                                CatchStdIO      = false;
-
-Feature        hasMakeFSSpec(
-                               gestaltFSAttr,
-                               (1<<gestaltHasFSSpecCalls),
-                               (1<<gestaltHasFSSpecCalls));
-Feature        hasAlias(
-                               gestaltAliasMgrAttr,
-                               (1<<gestaltAliasMgrPresent),
-                               (1<<gestaltAliasMgrPresent));
-Feature        hasNewSF(
-                               gestaltStandardFileAttr,
-                               (1<<gestaltStandardFile58),
-                               (1<<gestaltStandardFile58));
-Feature        hasProcessMgr(
-                               gestaltOSAttr,
-                               (1<<gestaltLaunchControl),
-                               (1<<gestaltLaunchControl));
-Feature hasCRM_P(
-                               gestaltCRMAttr,
-                               (1<<gestaltCRMPresent),
-                               (1<<gestaltCRMPresent));
-Feature hasCRM(hasCRM_P, InitCRM);
-Feature hasCTB(hasCRM, InitCTBUtilities);
-Feature hasStdNBP_P(
-                               gestaltStdNBPAttr,
-                               (1<<gestaltStdNBPPresent),
-                               (1<<gestaltStdNBPPresent));
-Feature hasStdNBP(hasCTB, hasStdNBP_P);
-Feature hasAppleEvents(
-                               gestaltAppleEventsAttr,
-                               (1<<gestaltAppleEventsPresent),
-                               (1<<gestaltAppleEventsPresent));
-Feature hasRevisedTimeMgr(
-                       gestaltTimeMgrVersion,
-                       2L);
-
-/*********************** Error propagation ************************/
-
-#ifdef GUSI_DISPATCH
-inline
-#endif
-int GUSI_error(int err)
-{
-       if (err)
-               errno = err;
-
-       return -1;
-}
-
-#ifdef GUSI_DISPATCH
-inline
-#endif
-void * GUSI_error_nil(int err)
-{
-       if (err)
-               errno = err;
-
-       return nil;
-}
-
-/*********************** GUSIConfiguration members ************************/
-
-#ifndef GUSI_DISPATCH
-
-Boolean        GUSIConfiguration::firstTime = false;
-short          GUSIConfiguration::we;
-
-void GUSIConfiguration::GUSILoadConfiguration(Handle h)
-{
-       typedef         GUSIConfigRsrc **       GUSIConfHdl;            
-       GUSIConfHdl config              =       GUSIConfHdl(h);
-       long            confSize        =       config ? GetHandleSize(Handle(config)) : 0;
-       
-       if (confSize < 4 || !(defaultType = (*config)->defaultType))
-               defaultType     =       'TEXT';
-       if (confSize < 8 || !(defaultCreator = (*config)->defaultCreator))
-               defaultCreator  =       'MPS ';
-       if (confSize < 9) 
-               autoSpin        =       1;                      // do automatic spin on read/write
-       else
-               autoSpin = (*config)->autoSpin;
-                       
-       if (confSize < 14)
-               version = '0102';
-       else
-               version = (*config)->version;
-
-       if (confSize < 10) {
-               noChdir                 =       false;  // Use chdir()
-               accurStat               =       false;  // st_nlink = # of entries + 2
-               hasConsole              =       false;
-               noAutoInitGraf  =       false;
-               sharedOpen              =       false;
-               sigPipe                 =       false;
-               noAppleEvents   =       false;
-               delayConsole            =       false;
-       } else {
-               noChdir                 =       ((*config)->flags & 0x80) != 0;
-               accurStat               =       ((*config)->flags & 0x40) != 0;
-               hasConsole              =       version >= '0150' && version <= '0180' && ((*config)->flags & 0x08) != 0;
-               delayConsole    =       version >= '0181' && ((*config)->flags & 0x20) != 0;
-               noAppleEvents   =       version >= '0181' && ((*config)->flags & 0x08) != 0;
-               noAutoInitGraf  =       version >= '0174' && ((*config)->flags & 0x04) != 0;
-               sharedOpen              =       version >= '0174' && ((*config)->flags & 0x02) != 0;
-               sigPipe                 =       version >= '0174' && ((*config)->flags & 0x01) != 0;
-       }
-       
-       if (version < '0120' || confSize < 16)
-               numSuffices = 0;
-       else
-               numSuffices = (*config)->numSuffices;
-       
-       if (!numSuffices)
-               suffices = nil;
-       else if (suffices = new GUSISuffix[numSuffices]) {
-               HLock((Handle)config);
-               memcpy(suffices, (*config)->suffices, numSuffices*sizeof(GUSISuffix));
-               for (int i=0; i<numSuffices; i++)
-                       for (int j=0; j<4; j++)
-                               if (((char *) (suffices+i))[j] == ' ')
-                                       ((char *) (suffices+i))[j] = 0;
-       }
-}
-
-GUSIConfiguration::GUSIConfiguration()
-{
-       short   oldResFile = CurResFile();
-       
-       if (!firstTime)
-               we = oldResFile;
-       else
-               UseResFile(we);
-               
-       Handle config   =       Get1Resource('GU\85I', GUSIRsrcID);
-       GUSILoadConfiguration(config);  
-       if (!firstTime) {
-               firstTime       =       true;
-               
-               if (!noChdir)
-                       chdir(":");
-       } else
-               UseResFile(oldResFile);
-       
-       ReleaseResource((Handle)config);
-}
-
-void GUSIConfiguration::SetDefaultFType(const TFileSpec & name) const
-{
-       FInfo   info;   
-
-       // 
-       // Custom hook if existing
-       //
-       if (GUSIFType && GUSIFType(name))
-               return;
-       
-       //
-       // Otherwise default behaviour
-       //
-       if (HGetFInfo(name.vRefNum, name.parID, name.name, &info))
-               return;
-
-       Ptr dot = PLstrrchr(name.name, '.');
-       
-       if (dot && (name.name[0] - (dot-Ptr(name.name))) <= 4) {
-               char searchsuffix[5];
-               
-               strncpy(searchsuffix, dot+1, name.name[0] - (dot-Ptr(name.name)));
-               
-               for (int i = 0; i<numSuffices; i++)
-                       if (!strncmp(suffices[i].suffix, searchsuffix, 4)) {
-                               info.fdType     =       suffices[i].suffType;
-                               info.fdCreator  =       suffices[i].suffCreator;
-                               
-                               goto determined;
-                       }
-       }
-
-       info.fdType     =       defaultType;
-       info.fdCreator  =       defaultCreator;
-       info.fdFlags    &= ~kHasBeenInited;
-
-determined:    
-       HSetFInfo(name.vRefNum, name.parID, name.name, &info);
-}
-
-void GUSIConfiguration::DoAutoInitGraf() const
-{
-       if (*(GrafPtr **) LMGetCurrentA5() != &qd.thePort)
-               InitGraf(&qd.thePort);
-       const_cast<GUSIConfiguration *>(this)->noAutoInitGraf   =       true;
-}
-
-#endif // GUSI_DISPATCH
-
-inline void GUSIConfiguration::DoAutoSpin() const 
-{
-       if (autoSpin)
-               SAFESPIN(0, SP_AUTO_SPIN, autoSpin);
-}
-
-Boolean GUSIConfiguration::DelayConsole() const
-{
-       return delayConsole;
-}
-
-/************************ Handle nonstandard consoles *************************/
-
-#ifndef GUSI_DISPATCH
-
-static void InitConsole()
-{
-       if (MPWDomain::stdopen) {
-               for (int i = 0; i < 3; i++) {
-                       Socket * sock =         MPWDomain::stdopen(i);
-
-                       if (sock)
-                               Sockets.Install(sock);
-               }
-       } else {
-               if (open("dev:console", O_RDONLY) < 0)
-                       open("dev:null", O_RDONLY);
-               if (open("dev:console", O_WRONLY) < 0)
-                       open("dev:null", O_WRONLY);
-               if (open("dev:console", O_WRONLY) < 0)
-                       open("dev:null", O_WRONLY); 
-       }
-}
-
-void SocketTable::InitConsole()
-{
-       if (needsConsole) {
-               needsConsole = false;
-               ::InitConsole();
-       }
-}
-
-#endif // GUSI_DISPATCH
-
-/************************ External routines *************************/
-
-int getdtablesize()
-{
-       return GUSI_MAX_FD;
-}
-
-int socket(int domain, int type, int protocol)
-{
-       SocketDomain *  dom;
-       Socket *                sock;
-       int                             fd;
-
-       Sockets.InitConsole();
-       
-       if (dom = SocketDomain::Domain(domain))
-               if (sock = dom->socket(type, protocol))
-                       if ((fd = Sockets.Install(sock)) != -1)
-                               return fd;
-                       else
-                               delete sock;
-
-       if (!errno)
-               return GUSI_error(ENOMEM);
-       else
-               return -1;
-}
-
-int socketpair(int domain, int type, int protocol, int * sv)
-{
-       SocketDomain *  dom;
-       Socket *                sock[2];
-
-       Sockets.InitConsole();
-       
-       if (dom = SocketDomain::Domain(domain))
-               if (!dom->socketpair(type, protocol, sock))
-                       if ((sv[0] = Sockets.Install(sock[0])) != -1)
-                               if ((sv[1] = Sockets.Install(sock[1])) != -1)
-                                       return 0;
-                               else {
-                                       Sockets.Remove(sv[0]);
-                                       
-                                       goto failInstall;
-                               }
-                       else {
-failInstall:
-                               delete sock[0];
-                               delete sock[1];
-                       }
-               
-       if (!errno)
-               return GUSI_error(ENOMEM);
-       else
-               return -1;
-}
-
-int pipe(int * fd)
-{
-       GUSIwithUnixSockets();
-       
-       if (socketpair(AF_UNIX, SOCK_STREAM, 0, fd))
-               return -1;
-       shutdown(fd[0], 1);
-       shutdown(fd[1], 0);
-       
-       return 0;
-}
-
-int choose(int domain, int type, char * prompt, void * constraint, int flags, void * name, int * namelen)
-{
-       SocketDomain *  dom;
-
-       if (dom = SocketDomain::Domain(domain))
-               return dom->choose(type, prompt, constraint, flags, name, namelen);
-
-       return -1;
-}
-
-int bind(int s, const struct sockaddr *name, int namelen)
-{
-       Socket *        sock    =       Sockets[s];
-
-       return sock ? sock->bind((void *) name, namelen) : -1;
-}
-
-int connect(int s, const struct sockaddr *addr, int addrlen)
-{
-       Socket *        sock    =       Sockets[s];
-
-       return sock ? sock->connect((void *) addr, addrlen) : -1;
-}
-
-int listen(int s, int qlen)
-{
-       Socket *        sock    =       Sockets[s];
-
-       return sock ? sock->listen(qlen) : -1;
-}
-
-int accept(int s, struct sockaddr *addr, int *addrlen)
-{
-       Socket *        sock    =       Sockets[s];
-
-       if (sock)
-               if (sock        = sock->accept(addr, addrlen))
-                       if ((s = Sockets.Install(sock)) != -1)
-                               return s;
-                       else
-                               delete sock;
-
-       return -1;
-}
-
-int close(int s)
-{
-       errorSock       =       -1;
-       
-       return Sockets.Remove(s);
-}
-
-#ifdef __MWERKS__
-int read(int s, char *buffer, int buflen)
-#else
-int read(int s, char *buffer, unsigned buflen)
-#endif
-{
-       GUSIConfig.DoAutoSpin();
-       
-       Socket *        sock    =       Sockets[s];
-
-       return sock ? sock->read(buffer, (unsigned) buflen) : -1;
-}
-
-int readv(int s, const struct iovec *iov, int count)
-{
-       GUSIConfig.DoAutoSpin();
-       
-       Socket *        sock    =       Sockets[s];
-
-       if (sock)       {
-               Scatterer       scatt(iov, count);
-
-               if (scatt)
-                       return scatt.length(sock->read(scatt.buffer(), scatt.buflen()));
-               else
-                       return GUSI_error(ENOMEM);
-       } else
-               return -1;
-}
-
-int recv(int s, void *buffer, int buflen, int flags)
-{
-       GUSIConfig.DoAutoSpin();
-       
-       int             fromlen         =       0;
-       Socket *        sock            =       Sockets[s];
-
-       return sock ? sock->recvfrom(buffer, buflen, flags, nil, &fromlen) : -1;
-}
-
-int recvfrom(int s, void *buffer, int buflen, int flags, struct sockaddr *from, int *fromlen)
-{
-       GUSIConfig.DoAutoSpin();
-       
-       Socket *        sock    =       Sockets[s];
-
-       return sock ? sock->recvfrom(buffer, buflen, flags, from, fromlen) : -1;
-}
-
-int recvmsg(int s, struct msghdr *msg, int flags)
-{
-       GUSIConfig.DoAutoSpin();
-       
-       Socket *        sock    =       Sockets[s];
-
-       if (sock)       {
-               Scatterer       scatt((struct iovec *)msg->msg_iov, msg->msg_iovlen);
-
-               if (scatt)
-                       return
-                               scatt.length(
-                                       sock->recvfrom(
-                                               scatt.buffer(),
-                                               scatt.buflen(),
-                                               flags,
-                                               msg->msg_name,
-                                               (int *)&msg->msg_namelen));
-               else
-                       return GUSI_error(ENOMEM);
-       } else
-               return -1;
-}
-
-#ifdef __MWERKS__
-int write(int s, const char *buffer, int buflen)
-#else
-int write(int s, const char *buffer, unsigned buflen)
-#endif
-{
-       /* fflush() in the MPW stdio library doesn't take no for an answer.
-               Our workaround is to treat a second subsequent ESHUTDOWN or EBADF as 
-               an invitation to lie by pretending the write worked.
-       */
-       
-       int     len;
-       
-       GUSIConfig.DoAutoSpin();
-       
-       Socket *        sock    =       Sockets[s];
-
-       if (sock && (len = sock->write((char *) buffer, (unsigned) buflen)) != -1)
-               return len;
-               
-       switch (errno) {
-       case EINTR:
-       case EWOULDBLOCK:
-       case EINPROGRESS:
-       case EALREADY:
-               break;
-       default:
-               if (GUSIConfig.sigPipe)
-                       raise(SIGPIPE);
-               if (errorSock == s && errorType == errno) {
-                       if (++errorCount == errorMax) {
-                               errorSock = -1;
-                       
-                               return buflen;
-                       }
-               } else {
-                       errorSock = s;
-                       errorType = errno;
-                       errorCount= 1;
-               }
-       }
-       return -1;
-}
-
-static int HandleWriteErrors(int retval)
-{
-       if (retval == -1)
-               switch (errno) {
-               case EINTR:
-               case EWOULDBLOCK:
-               case EINPROGRESS:
-               case EALREADY:
-                       break;
-               default:
-                       if (GUSIConfig.sigPipe)
-                               raise(SIGPIPE);
-                       break;
-               }
-       
-       return retval;
-}
-
-int writev(int s, const struct iovec *iov, int count)
-{
-       GUSIConfig.DoAutoSpin();
-       
-       Socket *        sock    =       Sockets[s];
-
-       if (sock)       {
-               Gatherer        gath(iov, count);
-
-               if (gath)
-                       return HandleWriteErrors(gath.length(sock->write(gath.buffer(), gath.buflen())));
-               else
-                       return GUSI_error(ENOMEM);
-       } else
-               return -1;
-}
-
-int send(int s, const void *buffer, int buflen, int flags)
-{
-       GUSIConfig.DoAutoSpin();
-       
-       Socket *        sock    =       Sockets[s];
-
-       return sock ? HandleWriteErrors(sock->sendto((void *)buffer, buflen, flags, nil, 0)) : -1;
-}
-
-int sendto(int s, const void *buffer, int buflen, int flags, const struct sockaddr *to, int tolen)
-{
-       GUSIConfig.DoAutoSpin();
-       
-       Socket *        sock    =       Sockets[s];
-
-       return sock ? HandleWriteErrors(sock->sendto((void *)buffer, buflen, flags, (void *) to, tolen)) : -1;
-}
-
-int sendmsg(int s, const struct msghdr *msg, int flags)
-{
-       GUSIConfig.DoAutoSpin();
-       
-       Socket *        sock    =       Sockets[s];
-
-       if (sock)       {
-               Gatherer        gath((struct iovec *) msg->msg_iov, msg->msg_iovlen);
-
-               if (gath)
-                       return
-                               HandleWriteErrors(gath.length(
-                                       sock->sendto(
-                                               gath.buffer(),
-                                               gath.buflen(),
-                                               flags,
-                                               msg->msg_name,
-                                               msg->msg_namelen)));
-               else
-                       return GUSI_error(ENOMEM);
-       } else
-               return -1;
-}
-
-int select(int width, fd_set *readfds, fd_set *writefds, fd_set *exceptfds, struct timeval *timeout)
-{
-       Socket  *       sock;
-       long                    count;
-       int                     s;
-       long                    starttime, waittime;
-       fd_set          rd, wd, ed;
-       Boolean         r,w,e;
-       Boolean *       canRead;
-       Boolean *       canWrite;
-       Boolean *       exception;
-
-       count = 0;
-       FD_ZERO(&rd);
-       FD_ZERO(&wd);
-       FD_ZERO(&ed);
-
-       if (timeout)
-               waittime =  timeout->tv_sec*60 + timeout->tv_usec/16666;
-       else
-               waittime =      2000000000;     // Slightly more than a year; close enough to "no timeout"
-               
-       starttime = LMGetTicks();
-
-       // Check files for kosherness
-
-       for (s = 0; s < width ; ++s)
-               if (    (readfds && FD_ISSET(s,readfds))
-                       ||      (writefds && FD_ISSET(s,writefds))
-                       ||      (exceptfds && FD_ISSET(s,exceptfds))
-               )
-                       if (!Sockets[s])
-                               return GUSI_error(EBADF);
-       
-       for (s = 0; s < width ; ++s)
-               if (sock = Sockets[s]) {
-                       r = readfds && FD_ISSET(s,readfds);
-                       w = writefds && FD_ISSET(s,writefds);
-                       e = exceptfds && FD_ISSET(s,exceptfds);
-
-                       if (r || w || e)
-                               sock->pre_select(r, w, e);
-               }
-               
-       do {
-               for (s = 0; s < width ; ++s)  {
-                       if (sock = Sockets[s]) {
-                               r = false;
-                               w = false;
-                               e = false;
-
-                               canRead = (readfds && FD_ISSET(s,readfds)) ? &r : nil;
-                               canWrite = (writefds && FD_ISSET(s,writefds)) ? &w : nil;
-                               exception = (exceptfds && FD_ISSET(s,exceptfds)) ? &e : nil;
-
-                               if (canRead || canWrite || exception)   {
-                                       count   += sock->select(canRead, canWrite, exception);
-
-                                       if (r)
-                                               FD_SET(s,&rd);
-                                       if (w)
-                                               FD_SET(s,&wd);
-                                       if (e)
-                                               FD_SET(s,&ed);
-                               }
-                       }
-               }
-               if (count)
-                       break;
-
-               SAVE_AND_CLEAR_ERRNO;
-               SAFESPIN(false, SP_SELECT, waittime);
-
-               if (errno) {
-                       count = -1;
-                       
-                       break;
-               }
-       }  while (LMGetTicks() - starttime < waittime);
-
-       for (s = 0; s < width ; ++s)
-               if (sock = Sockets[s]) {
-                       r = readfds && FD_ISSET(s,readfds);
-                       w = writefds && FD_ISSET(s,writefds);
-                       e = exceptfds && FD_ISSET(s,exceptfds);
-
-                       if (r || w || e)
-                               sock->post_select(r, w, e);
-               }
-               
-       if (count < 0)
-               return GUSI_error(EINTR);
-               
-       if (readfds)
-               *readfds = rd;
-       if (writefds)
-               *writefds = wd;
-       if (exceptfds)
-               *exceptfds = ed;
-
-       return count;
-}
-
-int getsockname(int s, struct sockaddr *name, int *namelen)
-{
-       Socket *        sock    =       Sockets[s];
-
-       return sock ? sock->getsockname(name, namelen) : -1;
-}
-
-int getpeername(int s, struct sockaddr *name, int *namelen)
-{
-       Socket *        sock    =       Sockets[s];
-
-       return sock ? sock->getpeername(name, namelen) : -1;
-}
-
-int shutdown(int s, int how)
-{
-       Socket *        sock    =       Sockets[s];
-
-       return sock ? sock->shutdown(how) : -1;
-}
-
-int fcntl(int s, unsigned int cmd, int arg)
-{
-       Socket *        sock    =       Sockets[s];
-
-       if (sock)
-               return (cmd == F_DUPFD) ? Sockets.Install(sock, arg) : sock->fcntl(cmd, arg);
-       else
-               return -1;
-}
-
-int dup(int s)
-{
-       Socket *        sock    =       Sockets[s];
-
-       return sock ? Sockets.Install(sock) : -1;
-}
-
-int dup2(int s, int s1)
-{
-       Socket *        sock    =       Sockets[s];
-
-       if (!sock)
-               return -1;
-
-       if (Sockets[s1])
-               Sockets.Remove(s1);
-
-       return Sockets.Install(sock, s1);
-}
-
-int ioctl(int s, unsigned int request, long *argp)
-{
-       Socket *        sock    =       Sockets[s];
-
-       if (!sock)
-               return -1;
-       
-       return sock->ioctl(request, argp);
-}
-
-int getsockopt(int s, int level, int optname, void *optval, int * optlen)
-{
-       Socket *        sock    =       Sockets[s];
-
-       return sock ? sock->getsockopt(level, optname, optval, optlen) : -1;
-}
-
-int setsockopt(int s, int level, int optname, const void *optval, int optlen)
-{
-       Socket *        sock    =       Sockets[s];
-
-       return sock ? sock->setsockopt(level, optname, (void *) optval, optlen) : -1;
-}
-
-int fstat(int s, struct stat * buf)
-{
-       Socket *        sock    =       Sockets[s];
-
-       return sock ? sock->fstat(buf) : -1;
-}
-
-long lseek(int s, long offset, int whence)
-{
-       Socket *        sock    =       Sockets[s];
-
-       return sock ? sock->lseek(offset, whence) : -1;
-}
-
-int ftruncate(int s, long offset)
-{
-       Socket *        sock    =       Sockets[s];
-
-       return sock ? sock->ftruncate(offset) : -1;
-}
-
-int isatty(int s)
-{
-       Socket *        sock    =       Sockets[s];
-
-       return sock ? sock->isatty() : -1;
-}
-
-void GUSISetHook(GUSIHookCode code, GUSIHook hook)
-{
-       switch (code) {
-       case GUSI_SpinHook:
-               GUSISpin = (GUSISpinFn) hook;
-               break;
-       case GUSI_ExecHook:
-               GUSIExec = (GUSIExecFn) hook;
-               break;
-       case GUSI_FTypeHook:
-               GUSIFType = (GUSIFTypeFn) hook;
-               break;
-       case GUSI_SpeedHook:
-               gGUSISpeed = (long) hook;
-               break;
-       }
-}
-
-GUSIHook GUSIGetHook(GUSIHookCode code)
-{
-       switch (code) {
-       case GUSI_SpinHook:
-               return (GUSIHook) GUSISpin;
-       case GUSI_ExecHook:
-               return (GUSIHook) GUSIExec;
-       case GUSI_FTypeHook:
-               return (GUSIHook) GUSIFType;
-       case GUSI_SpeedHook:
-               return (GUSIHook) gGUSISpeed;
-               break;
-       default:
-               return (GUSIHook) nil;
-       }
-}
-
-int GUSISetEvents(GUSIEvtTable table)
-{
-       short   evt;
-
-       evtHandler      =       table;
-       evtMask         =       0;
-
-       for (evt = 0; evt<16; ++evt)
-               if (evtHandler[evt])
-                       evtMask |=      1 << evt;
-
-       return 0;
-}
-
-GUSIEvtHandler * GUSIGetEvents(void)
-{
-       return evtHandler;
-}
-
-/*********************** SocketDomain members ***********************/
-
-#ifndef GUSI_DISPATCH
-
-SocketDomain *                 SocketDomain::domains[GUSI_MAX_DOMAIN];
-ProcessSerialNumber    SocketDomain::process;
-
-SocketDomain * SocketDomain::Domain(int domain)
-{
-       if (domain < 0 || domain >= GUSI_MAX_DOMAIN || !domains[domain])        {
-               GUSI_error(EINVAL);
-
-               return nil;
-       } else
-               return domains[domain];
-}
-
-void SocketDomain::Ready()
-{
-       if (hasProcessMgr)
-               WakeUpProcess(&process);
-}
-
-SocketDomain::SocketDomain(int domain)
-{
-#ifdef PREVENT_DUPLICATE_DOMAINS
-       if (domains[domain])    {
-               Str63   msg;
-
-               sprintf((char *) msg+1, "Duplicate declaration for domain %d\n", domain);
-               msg[0] = (unsigned char)strlen((char *) msg+1);
-
-               DebugStr(msg);
-       }
-#endif
-       if (domain)                                                                     // Ignore AF_UNSPEC domains
-               domains[domain] =       this;
-       
-       if (hasProcessMgr && !process.highLongOfPSN && !process.lowLongOfPSN)
-               GetCurrentProcess(&process);
-}
-
-SocketDomain::~SocketDomain()
-{
-}
-
-// Default implementations of socket() just returns an error
-
-Socket * SocketDomain::socket(int, short)
-{
-       GUSI_error(EOPNOTSUPP);
-
-       return nil;
-}
-
-// Same with socketpair
-
-int SocketDomain::socketpair(int, short, Socket **)
-{
-       return GUSI_error(EOPNOTSUPP);
-}
-
-
-int SocketDomain::choose(int, char *, void *, int, void *, int *)
-{
-       return GUSI_error(EOPNOTSUPP);
-}
-
-void SocketDomain::DontStrip()
-{
-}
-
-/*********************** SocketTable members ************************/
-
-static void FlushStdio()
-{
-       fwalk(fflush);
-}
-
-SocketTable::SocketTable()
-{
-       atexit(FlushStdio);
-       
-       needsConsole = true;
-}
-       
-int SocketTable::Install(Socket * sock, int start)
-{
-       short   fd;
-
-       if (start<0 || start >= GUSI_MAX_FD)
-               return GUSI_error(EINVAL);
-
-       for (fd=start; fd<GUSI_MAX_FD; ++fd)
-               if (!sockets[fd])       {
-                       sockets[fd] = sock;
-               
-                       ++sock->refCount;
-                       return fd;
-               }
-
-       return GUSI_error(EMFILE);
-}
-
-int SocketTable::Remove(int fd)
-{
-       Socket *        sock;
-
-       InitConsole();
-
-       if (fd<0 || fd >= GUSI_MAX_FD || !(sock = sockets[fd]))
-               return GUSI_error(EBADF);
-
-       sockets[fd]     =       nil;
-
-       if (!--sock->refCount)
-               delete sock;
-
-       return 0;
-}
-
-Socket * SocketTable::operator[](int fd)
-{
-       Socket * sock;
-
-       InitConsole();
-       
-       if (fd<0 || fd >= GUSI_MAX_FD || !(sock = sockets[fd])) {
-               GUSI_error(EBADF);
-
-               return nil;
-       } else
-               return sock;
-}
-
-#ifndef powerc
-#pragma far_code
-#endif
-
-SocketTable::~SocketTable()
-{
-       int i;
-
-       // Flush stdio files (necessary to flush buffers)
-
-       fwalk(fflush);
-
-       // If we didn't need a console so far, we certainly don't need one now!
-       // Doing this further up would be dangerous for small write only apps
-       
-       needsConsole = false;
-
-       // Now close stdio files, just to be sure
-
-       fwalk(fclose);
-
-       // Close all files
-
-       for (i = 0; i<GUSI_MAX_FD; ++i)
-               if (sockets[i])
-                       close(i);
-}
-
-#endif // GUSI_DISPATCH
-
-/********************** sleep()/alarm() ***********************/
-
-static long    GUSIAlarm = 0;
-
-int GUSICheckAlarm()
-{
-       if (GUSIAlarm && LMGetTicks() > GUSIAlarm) {
-               GUSIAlarm = 0;
-               raise(SIGALRM);
-               
-               return 1;
-       } else
-               return 0;
-}
-
-u_int   alarm(u_int seconds)
-{
-       long remaining = GUSIAlarm ? (LMGetTicks() - GUSIAlarm) / 60 : 0;
-       
-       GUSIAlarm = seconds ? LMGetTicks() + 60 * seconds : 0;
-       
-       return (remaining < 0) ? 0 : (u_int) remaining;
-}
-
-static u_int DoSleep(long ticks)
-{
-       long wakeup = LMGetTicks() + ticks;
-       
-       SAFESPIN(wakeup > LMGetTicks(), SP_SLEEP, wakeup - LMGetTicks());
-       
-       long remaining = (LMGetTicks() - wakeup) / 60;
-       
-       return (remaining < 0) ? 0 : (u_int) remaining;
-}
-
-u_int sleep(u_int seconds) 
-{
-       return DoSleep(seconds * 60);
-}
-
-void usleep(u_int useconds)
-{
-       DoSleep((useconds * 3) / 50000);
-}
-
-/********************** Default spin function ***********************/
-
-#ifndef GUSI_DISPATCH
-
-#ifndef powerc
-#pragma smart_code
-#endif
-
-/* Borrowed from tech note 263 */
-
-#define kMaskModifiers         0xFE00          // we need the modifiers without the
-                                               // command key for KeyTrans
-#define kMaskVirtualKey        0x0000FF00      // get virtual key from event message
-                                               // for KeyTrans
-#define kUpKeyMask             0x0080
-#define kShiftWord             8               // we shift the virtual key to mask it
-                                               // into the keyCode for KeyTrans
-#define kMaskASCII1            0x00FF0000      // get the key out of the ASCII1 byte
-#define kMaskASCII2            0x000000FF      // get the key out of the ASCII2 byte
-#define kPeriod                0x2E            // ascii for a period
-
-static Boolean CmdPeriod(EventRecord *theEvent)
-{
-       Boolean  fTimeToQuit;
-       short    keyCode;
-       long     virtualKey, keyInfo, lowChar, highChar, keyCId;
-       UInt32  state;
-       Handle   hKCHR;
-       Ptr             KCHRPtr;
-
-       fTimeToQuit = false;
-
-       if (((*theEvent).what == keyDown) || ((*theEvent).what == autoKey)) {
-
-               // see if the command key is down.  If it is, find out the ASCII
-               // equivalent for the accompanying key.
-
-               if ((*theEvent).modifiers & cmdKey ) {
-
-                       virtualKey = ((*theEvent).message & kMaskVirtualKey) >> kShiftWord;
-                       // And out the command key and Or in the virtualKey
-                       keyCode    = short(((*theEvent).modifiers & kMaskModifiers) | virtualKey);
-                       state      = 0;
-
-                       hKCHR = nil;  /* set this to nil before starting */
-                       KCHRPtr = (Ptr)GetScriptManagerVariable(smKCHRCache);
-
-                       if ( !KCHRPtr ) {
-                               keyCId = GetScriptVariable(short(GetScriptManagerVariable(smKeyScript)), smScriptKeys);
-
-                               hKCHR   = GetResource('KCHR',short(keyCId));
-                               KCHRPtr = *hKCHR;
-                       }
-
-                       if (KCHRPtr) {
-                               keyInfo = KeyTrans(KCHRPtr, keyCode, &state);
-                               if (hKCHR)
-                                       ReleaseResource(hKCHR);
-                       } else
-                               keyInfo = (*theEvent).message;
-
-                       lowChar =  keyInfo &  kMaskASCII2;
-                       highChar = (keyInfo & kMaskASCII1) >> 16;
-                       if (lowChar == kPeriod || highChar == kPeriod)
-                               fTimeToQuit = true;
-
-               }  // end the command key is down
-       }  // end key down event
-
-       return( fTimeToQuit );
-}
-
-Boolean GUSIInterrupt()
-{
-       EvQElPtr                eventQ;
-
-       for (eventQ = (EvQElPtr) LMGetEventQueue()->qHead; eventQ; )
-               if (CmdPeriod((EventRecord *) &eventQ->evtQWhat))
-                       return true;
-               else
-                       eventQ = (EvQElPtr)eventQ->qLink;
-       
-       return false;
-}
-
-int StandAlone = 1;
-long gGUSISpinControl = 0;
-
-int GUSIDefaultSpin(spin_msg msg, long arg)
-{
-       static Boolean                  inForeground    =       true;
-       WindowPtr                               win;
-       EventRecord                             ev;
-       long                                    sleepTime       =       6;      // 1/10 of a second by default
-       short                                   mask            =       osMask|highLevelEventMask|mDownMask|evtMask;
-
-       GUSIConfig.AutoInitGraf();
-       
-       if (inForeground) {
-               register long contrib = (msg == SP_AUTO_SPIN) ? arg : gGUSISpeed;
-               gGUSISpinControl += contrib;
-               // Tweak when a spin point has been overshot
-               RotateCursor((gGUSISpinControl & 31) < contrib ? 32 : gGUSISpinControl);
-       }
-
-       if (GUSIInterrupt())
-               goto interrupt;
-
-       if (!StandAlone && inForeground)                // For MPW tools, SpinCursor already calls WNE
-               if (!GUSIConfig.noAppleEvents)                  // but it no longer reports AppleEvents
-                       mask = highLevelEventMask|evtMask;
-               else
-                       return 0;                                                               
-               
-       switch (msg) {
-       case SP_SLEEP:
-       case SP_SELECT:
-               if (arg >= sleepTime)                           // Only sleep if patience guaranteed
-                       break;
-               // Otherwise, fall through      
-       case SP_AUTO_SPIN:
-               sleepTime = 0;
-               break;
-       default:
-               break;
-       }
-       
-       if (WaitNextEvent(mask, &ev, sleepTime, nil))
-               switch (ev.what) {
-               case mouseDown:
-                       if (!evtHandler || !evtHandler[mouseDown])
-                               if (FindWindow(ev.where, &win) == inSysWindow)
-                                       SystemClick(&ev, win);
-
-                       break;
-               case osEvt:
-                       if (ev.message & 1)
-                               inForeground    =       true;
-                       else
-                               inForeground    =       false;
-                       break;
-               case kHighLevelEvent:
-                       if (!evtHandler || !evtHandler[kHighLevelEvent])
-                               if (hasAppleEvents)                             // actually pretty likely, if we get HL Events
-                                       AEProcessAppleEvent(&ev);       // Ignore errors
-                       break;
-               default:
-                       break;
-               }
-
-       if (ev.what >= 0 && ev.what < 24 && evtHandler && evtHandler[ev.what])
-               evtHandler[ev.what](&ev);
-
-       return 0;
-
-interrupt:
-       FlushEvents(-1, 0);
-
-       return -1;
-}
-
-/************************** Feature members **************************/
-
-Feature::Feature(unsigned short trapNum, TrapType tTyp)
-{
-       good =
-               NGetTrapAddress(trapNum, tTyp) != NGetTrapAddress(_Unimplemented, ToolTrap);
-}
-
-Feature::Feature(OSType type, long value)
-{
-       long            attr;
-
-       good = (!Gestalt(type, &attr) && (attr >= value));
-}
-
-Feature::Feature(OSType type, long mask, long value)
-{
-       long            attr;
-
-       good = (!Gestalt(type, &attr) && ((attr & mask) == value));
-}
-
-Feature::Feature(const Feature & precondition, OSErrInitializer init)
-{
-       good    =       precondition && !init();
-}
-
-Feature::Feature(OSErrInitializer init)
-{
-       good    =       !init();
-}
-
-Feature::Feature(const Feature & precondition, voidInitializer init)
-{
-       if (precondition)       {
-               good = true;
-               init();
-       } else
-               good = false;
-}
-
-Feature::Feature(voidInitializer init)
-{
-       good = true;
-       init();
-}
-
-Feature::Feature(const Feature & cond1, const Feature & cond2)
-{
-       good = cond1 && cond2;
-}
-
-OSErr AppleTalkIdentity(short & net, short & node)
-{
-       static short    mynet;
-       static short    mynode;
-       static OSErr    err = 1;
-
-       if (err == 1)
-               if (!(err = MPPOpen()))
-                       err = GetNodeAddress(&mynode, &mynet);
-
-
-       net     =       mynet;
-       node    =       mynode;
-
-       return err;
-}
-
-/************************** Setup suppport **************************/
-
-/* Pray that the following function never inlines GUSISetup */
-
-void GUSIDefaultSetup()
-{
-       GUSISetup(GUSIwithAppleTalkSockets);
-       GUSISetup(GUSIwithInternetSockets);
-       GUSISetup(GUSIwithPAPSockets);
-       GUSISetup(GUSIwithPPCSockets);
-       GUSISetup(GUSIwithUnixSockets);
-       GUSISetup(GUSIwithSIOUXSockets);
-}
-
-void GUSISetup(void (*proc)())
-{
-       proc();
-}
-
-void GUSILoadConfiguration(Handle hdl)
-{
-       GUSIConfig.GUSILoadConfiguration(hdl);
-}
-
-#endif // GUSI_DISPATCH
diff --git a/Mac/Unsupported/GUSI1-mods/GUSINetDB.cp b/Mac/Unsupported/GUSI1-mods/GUSINetDB.cp
deleted file mode 100644 (file)
index 8b2140e..0000000
+++ /dev/null
@@ -1,582 +0,0 @@
-/*********************************************************************
-Project        :       GUSI                            -       Grand Unified Socket Interface
-File           :       GUSINetDB.cp    -       Convert internet names to adresses
-Author :       Matthias Neeracher
-
-       This file was derived from the socket library by
-
-               Charlie Reiman  <creiman@ncsa.uiuc.edu> and
-               Tom Milligan    <milligan@madhaus.utcs.utoronto.ca>
-
-Language       :       MPW C++
-
-$Log$
-Revision 1.1  2000/09/12 20:24:49  jack
-Moved to Unsupported.
-
-Revision 1.1  1998/08/18 14:52:38  jack
-Putting Python-specific GUSI modifications under CVS.
-
-Revision 1.3  1994/08/10  00:07:30  neeri
-Sanitized for universal headers.
-
-Revision 1.2  1994/05/01  23:43:31  neeri
-getservbyname() without /etc/services would fail.
-
-Revision 1.1  1994/02/25  02:29:36  neeri
-Initial revision
-
-Revision 0.5  1993/10/31  00:00:00  neeri
-Deferred opening of resolver
-
-Revision 0.4  1993/07/29  00:00:00  neeri
-Real getservent code (adapted from Sak Wathanasin)
-
-Revision 0.3  1993/01/19  00:00:00  neeri
-Can't set aliases to NULL.
-
-Revision 0.2  1992/11/21  00:00:00  neeri
-Remove force_active
-
-Revision 0.1  1992/09/14  00:00:00  neeri
-Maybe it works, maybe it doesn't
-
-*********************************************************************/
-
-#include "GUSIINET_P.h"
-
-#include "TFileSpec.h"
-#include "Folders.h"
-#include "PLStringFuncs.h"
-
-#ifdef __MWERKS__
-//
-// I disapprove of the way dnr.c is written
-// This disapproval gets stronger with every version
-//
-#include "dnr.c"
-#pragma require_prototypes reset
-#pragma cplusplus reset
-#endif
-
-#if GENERATING68K
-#pragma segment GUSIINET
-#endif
-
-static pascal void DNRDone(struct hostInfo *, Boolean * done)
-{
-       *done = true;
-}
-
-#if GENERATINGCFM
-RoutineDescriptor      uDNRDone = 
-               BUILD_ROUTINE_DESCRIPTOR(uppResultProcInfo, DNRDone);
-#else
-#define uDNRDone DNRDone
-#endif
-
-int h_errno;
-
-/*
- *   Gethostbyname and gethostbyaddr each return a pointer to an
- *   object with the following structure describing an Internet
- *   host referenced by name or by address, respectively. This
- *   structure contains the information obtained from the MacTCP
- *   name server.
- *
- *   struct    hostent
- *   {
- *        char *h_name;
- *        char **h_aliases;
- *        int  h_addrtype;
- *        int  h_length;
- *        char **h_addr_list;
- *   };
- *   #define   h_addr  h_addr_list[0]
- *
- *   The members of this structure are:
- *
- *   h_name       Official name of the host.
- *
- *   h_aliases    A zero terminated array of alternate names for the host.
- *
- *   h_addrtype   The type of address being  returned; always AF_INET.
- *
- *   h_length     The length, in bytes, of the address.
- *
- *   h_addr_list  A zero terminated array of network addresses for the host.
- *
- *   Error return status from gethostbyname and gethostbyaddr  is
- *   indicated by return of a null pointer.  The external integer
- *   h_errno may then  be checked  to  see  whether  this  is  a
- *   temporary  failure  or  an  invalid  or  unknown  host.  The
- *   routine herror  can  be  used  to  print  an error  message
- *   describing the failure.  If its argument string is non-NULL,
- *   it is printed, followed by a colon and a space.   The  error
- *   message is printed with a trailing newline.
- *
- *   h_errno can have the following values:
- *
- *     HOST_NOT_FOUND  No such host is known.
- *
- *     TRY_AGAIN       This is usually a temporary error and
- *                                     means   that  the  local  server  did  not
- *                                     receive a response from  an  authoritative
- *                                     server.   A  retry at some later time may
- *                                     succeed.
- *
- *     NO_RECOVERY     Some unexpected server failure was encountered.
- *                                     This is a non-recoverable error.
- *
- *     NO_DATA         The requested name is valid but  does  not
- *                                     have   an IP  address;  this  is not  a
- *                                     temporary error. This means that the  name
- *                                     is known  to the name server but there is
- *                                     no address  associated  with  this  name.
- *                                     Another type of request to the name server
- *                                     using this domain name will result in  an
- *                                     answer;  for example, a mail-forwarder may
- *                                     be registered for this domain.
- *                                     (NOT GENERATED BY THIS IMPLEMENTATION)
- */
-
-static struct hostInfo macHost;
-
-#define MAXALIASES 0
-static char *aliasPtrs[MAXALIASES+1] = {NULL};
-static ip_addr *addrPtrs[NUM_ALT_ADDRS+1];
-
-static struct hostent  unixHost =
-{
-       macHost.cname,
-       aliasPtrs,
-       AF_INET,
-       sizeof(ip_addr),
-       (char **) addrPtrs
-};
-
-inline struct in_addr make_in_addr(ip_addr addr)
-{
-       struct in_addr  res;
-
-       res.s_addr      =       addr;
-
-       return res;
-}
-
-struct hostent * gethostbyname(char *name)
-{
-       Boolean done;
-       int i;
-
-       if (!strcmp(name, "localhost")) {
-               in_addr ipaddr;
-
-               ipaddr  =       make_in_addr(ip_addr(gethostid()));
-
-               if (ipaddr.s_addr)
-                       return gethostbyaddr((char *) &ipaddr, sizeof(in_addr), AF_INET);
-
-               h_errno = HOST_NOT_FOUND;
-                       
-               return NULL;
-       }
-       
-       if (INETSockets.Resolver()) {
-               h_errno = NO_RECOVERY;  
-               return NULL;
-       }
-       
-       for (i=0; i<NUM_ALT_ADDRS; i++)
-               macHost.addr[i] = 0;
-
-       done = false;
-
-       if (StrToAddr(name, &macHost, ResultUPP(&uDNRDone), (char *) &done) == cacheFault)
-               SPINP(!done,SP_NAME,0L);
-
-       switch (macHost.rtnCode) {
-       case noErr: break;
-
-       case nameSyntaxErr:     h_errno = HOST_NOT_FOUND;       return(NULL);
-       case cacheFault:                h_errno = NO_RECOVERY;          return(NULL);
-       case noResultProc:      h_errno = NO_RECOVERY;          return(NULL);
-       case noNameServer:      h_errno = HOST_NOT_FOUND;       return(NULL);
-       case authNameErr:               h_errno = HOST_NOT_FOUND;       return(NULL);
-       case noAnsErr:                  h_errno = TRY_AGAIN;                    return(NULL);
-       case dnrErr:                    h_errno = NO_RECOVERY;          return(NULL);
-       case outOfMemory:               h_errno = TRY_AGAIN;                    return(NULL);
-       default:                                        h_errno = NO_RECOVERY;          return(NULL);
-       }
-
-       /* was the 'name' an IP address? */
-       if (macHost.cname[0] == 0) {
-               h_errno = HOST_NOT_FOUND;
-               return(NULL);
-       }
-
-       /* for some reason there is a dot at the end of the name */
-       i = int(strlen(macHost.cname)) - 1;
-       if (macHost.cname[i] == '.')
-               macHost.cname[i] = 0;
-
-       for (i=0; i<NUM_ALT_ADDRS && macHost.addr[i]!=0; i++)
-               addrPtrs[i] =   (ip_addr *) &macHost.addr[i];
-
-       addrPtrs[i] = NULL;
-
-       return &unixHost;
-}
-
-struct hostent * gethostbyaddr(const char *addrP, int, int)
-{
-       Boolean done;
-       int             i;
-
-       if (INETSockets.Resolver()) {
-               h_errno = NO_RECOVERY;  
-               return NULL;
-       }
-
-       for (i=0; i<NUM_ALT_ADDRS; i++)
-               macHost.addr[i] = 0;
-
-       done = false;
-
-       ip_addr addr = FIX_LOOPBACK(*(ip_addr *)addrP);
-       
-       if (AddrToName(addr, &macHost, ResultUPP(&uDNRDone), (char *) &done) == cacheFault)
-               SPINP(!done,SP_ADDR,0L);
-
-       switch (macHost.rtnCode) {
-       case noErr:                     break;
-
-       case cacheFault:                h_errno = NO_RECOVERY;          return(NULL);
-       case noNameServer:      h_errno = HOST_NOT_FOUND;       return(NULL);
-       case authNameErr:               h_errno = HOST_NOT_FOUND;       return(NULL);
-       case noAnsErr:                  h_errno = TRY_AGAIN;                    return(NULL);
-       case dnrErr:                    h_errno = NO_RECOVERY;          return(NULL);
-       case outOfMemory:               h_errno = TRY_AGAIN;                    return(NULL);
-       default:                                        h_errno = NO_RECOVERY;          return(NULL);
-       }
-
-       /* for some reason there is a dot at the end of the name */
-       i = int(strlen(macHost.cname)) - 1;
-       if (macHost.cname[i] == '.')
-               macHost.cname[i] = 0;
-
-       /* For some reason, the IP address usually seems to be set to 0 */
-       if (!macHost.addr[0])
-               macHost.addr[0] = addr;
-               
-       for (i=0; i<NUM_ALT_ADDRS; i++)
-               addrPtrs[i] = (ip_addr *) &macHost.addr[i];
-
-       addrPtrs[NUM_ALT_ADDRS] = NULL;
-
-       return &unixHost;
-}
-
-char * inet_ntoa(struct in_addr inaddr)
-{
-       if (INETSockets.Resolver()) {
-               h_errno = NO_RECOVERY;  
-               return NULL;
-       }
-       
-       (void) AddrToStr(inaddr.s_addr, macHost.cname);
-
-       return macHost.cname;
-}
-
-struct in_addr inet_addr(char *address)
-{
-       if (INETSockets.Resolver()) {
-               h_errno = NO_RECOVERY;  
-               return make_in_addr(0xFFFFFFFF);
-       }
-       
-       if (StrToAddr(address,&macHost,NULL,NULL) != noErr)
-               return make_in_addr(0xFFFFFFFF);
-
-       /* was the 'address' really a name? */
-       if (macHost.cname[0] != 0)
-               return make_in_addr(0xFFFFFFFF);
-
-       return make_in_addr(macHost.addr[0]);
-}
-
-/*
- * gethostid()
- *
- * Get internet address of current host
- */
-
-long gethostid()
-{
-       static long sHostID = 0;
-       if (sHostID)
-               return sHostID;
-       
-       struct GetAddrParamBlock pbr;
-               
-       pbr.ioCRefNum   = INETSockets.Driver();
-       pbr.csCode              = ipctlGetAddr;
-
-       if (PBControlSync(ParmBlkPtr(&pbr)))
-               return 0;
-       else
-               return sHostID = (long)pbr.ourAddress;
-}
-
-/*
- * gethostname()
- *
- * Try to get my host name from DNR. If it fails, just return my
- * IP address as ASCII. This is non-standard, but it's a mac,
- * what do you want me to do?
- */
-
-int gethostname(char *machname, int buflen)
-{
-       static char * sHostName = nil;
-       
-       if (!sHostName) {
-               in_addr ipaddr;
-               struct  hostent *hp;
-
-               ipaddr  =       make_in_addr(ip_addr(gethostid()));
-
-               if (!ipaddr.s_addr)                                     // TCP/IP not up at all
-                       return GUSI_error(ENETDOWN);
-               
-               hp = gethostbyaddr((char *) &ipaddr, sizeof(in_addr), AF_INET);
-
-               if (!hp) {
-                       // No good name
-                       if (buflen < 16)                                                // Not enough space
-                               return GUSI_error(EINVAL);      
-                       sprintf(machname, "%d.%d.%d.%d",
-                                                       ipaddr.s_addr>>24,
-                                                       ipaddr.s_addr>>16 & 0xff,
-                                                       ipaddr.s_addr>>8 & 0xff,
-                                                       ipaddr.s_addr & 0xff);
-                       return 0;
-               } else {
-                       // We only cache satisfactory replies in sHostName
-                       sHostName = new char[strlen(hp->h_name)+1];
-                       strcpy(sHostName, hp->h_name);
-               }
-       }
-       strncpy(machname, sHostName, unsigned(buflen));
-       machname[buflen-1] = 0;  /* extra safeguard */
-
-       return 0;
-}
-
-
-/*
- *     getservbybname()
- *
- */
-
-static char * servlist[] =
-{
-       "echo                     7/udp",
-       "discard          9/udp",
-       "time                    37/udp",
-       "domain          53/udp",
-       "sunrpc         111/udp",
-       "tftp            69/udp",
-       "biff                   512/udp",
-       "who            513/udp",
-       "talk                   517/udp",
-       "ftp-data        20/tcp",
-       "ftp             21/tcp",
-       "telnet          23/tcp",
-       "smtp            25/tcp",
-       "time            37/tcp",
-       "whois                   43/tcp",
-       "domain                  53/tcp",
-       "hostnames  101/tcp",
-       "nntp                   119/tcp",
-       "finger          79/tcp",
-       "ntp            123/tcp",
-       "uucp                   540/tcp",
-       NULL
-};
-
-static char                            servline[128];
-static struct servent  serv;
-static FILE *                          servfil;
-static int                                     servptr;
-static char *                          servalias[8];
-static int                                     servstay = 0;
-
-void setservent(int stayopen)
-{
-       if (servfil && servfil != (FILE *) -1) {
-               rewind(servfil);
-       }
-       servptr = 0;
-       servstay = servstay || stayopen;
-}
-
-void endservent()
-{
-       if (servfil && servfil != (FILE *) -1) {
-               fclose(servfil);
-               servfil = NULL;
-       }
-       
-       servstay = 0;
-}
-
-struct servent *  getservent()
-{
-       char *  p;
-       int             aliascount;
-       
-       if (!servfil) {
-               TFileSpec serv;
-               
-               if (!FindFolder(
-                               kOnSystemDisk, 
-                               kPreferencesFolderType, 
-                               kDontCreateFolder, 
-                               &serv.vRefNum,
-                               &serv.parID)
-               ) {
-                       PLstrcpy(serv.name, (StringPtr) "\p/etc/services");
-               
-                       if (servfil = fopen(serv.FullPath(), "r"))
-                               goto retry;
-               }       
-               servfil         = (FILE *) -1;
-               servptr = 0;
-       }
-       
-retry:
-       if (servfil == (FILE *) -1)
-               if (!servlist[servptr])
-                       return (struct servent *) NULL;
-               else
-                       strcpy(servline, servlist[servptr++]);
-       else if (!(fgets(servline, 128, servfil)))
-               return (struct servent *) NULL;
-               
-       if (p = strpbrk(servline, "#\n\r"))
-               *p = 0;
-       if (!servline[0])
-               goto retry;
-       
-       if (!(serv.s_name = strtok(servline, " \t")))
-               goto retry;
-               
-       if (!(p = strtok(NULL, " \t")))
-               goto retry;
-       
-       if (!(serv.s_proto = strpbrk(p, "/,")))
-               goto retry;
-               
-       *serv.s_proto++         = 0;
-       serv.s_port             = htons(atoi(p));
-       serv.s_aliases  = servalias;
-       
-       for (aliascount = 0; aliascount < 7; ) 
-               if (!(servalias[aliascount++] = strtok(NULL, " \t")))
-                       break;
-       
-       servalias[aliascount] = NULL;
-       
-       return &serv;
-}
-
-struct servent * getservbyname(const char * name, const char * proto)
-{
-       struct servent *        ent;
-       char **                                 al;
-       setservent(0);
-       
-       while (ent = getservent()) {
-               if (!strcmp(name, ent->s_name))
-                       goto haveName;
-               
-               for (al = ent->s_aliases; *al; ++al)
-                       if (!strcmp(name, *al))
-                               goto haveName;
-               
-               continue;
-haveName:
-               if (!proto || !strcmp(proto, ent->s_proto))
-                       break;
-       }
-       
-       if (!servstay)
-               endservent();
-       
-       return ent;
-}
-
-struct servent * getservbyport(int port, const char * proto)
-{
-       struct servent * ent;
-       
-       setservent(0);
-       
-       while (ent = getservent())
-               if (port == ent->s_port && (!proto || !strcmp(proto, ent->s_proto)))
-                       break;
-       
-       if (!servstay)
-               endservent();
-       
-       return ent;
-}
-
-static char    tcp[] = "tcp";
-static char    udp[] = "udp";
-#define        MAX_PROTOENT                    10
-static         struct protoent         protoents[MAX_PROTOENT];
-static         int                                             protoent_count=0;
-
-struct protoent * getprotobyname(const char * name)
-{
-       struct protoent *pe;
-
-       pe = &protoents[protoent_count];
-       if (strcmp(name, "udp") == 0) {
-               pe->p_name = udp;
-               pe->p_proto = IPPROTO_UDP;
-       } else if (strcmp (name, "tcp") == 0)  {
-               pe->p_name = tcp;
-               pe->p_proto = IPPROTO_TCP;
-       } else {
-               errno = EPROTONOSUPPORT;
-               return NULL;
-       }
-       pe->p_aliases = aliasPtrs;
-       protoent_count = (protoent_count +1) % MAX_PROTOENT;
-       return pe;
-}
-
-struct protoent * getprotobynumber(int proto)
-{
-       struct protoent *pe;
-
-       pe = &protoents[protoent_count];
-       if (proto == IPPROTO_UDP) {
-               pe->p_name = udp;
-               pe->p_proto = IPPROTO_UDP;
-       } else if (proto == IPPROTO_TCP)  {
-               pe->p_name = tcp;
-               pe->p_proto = IPPROTO_TCP;
-       } else {
-               errno = EPROTONOSUPPORT;
-               return NULL;
-       }
-       pe->p_aliases = aliasPtrs;
-       protoent_count = (protoent_count +1) % MAX_PROTOENT;
-       return pe;
-}
-
diff --git a/Mac/Unsupported/GUSI1-mods/GUSISIOUX.cp b/Mac/Unsupported/GUSI1-mods/GUSISIOUX.cp
deleted file mode 100644 (file)
index c8cfc65..0000000
+++ /dev/null
@@ -1,249 +0,0 @@
-/*********************************************************************
-Project        :       GUSI                            -       Grand unified socket interface
-File           :       GUSISIOUX.cp    -       Interface to Metrowerks SIOUX library
-Author :       Matthias Neeracher
-Language       :       MPW C/C++
-
-$Log$
-Revision 1.1  2000/09/12 20:24:49  jack
-Moved to Unsupported.
-
-Revision 1.1  1998/08/18 14:52:38  jack
-Putting Python-specific GUSI modifications under CVS.
-
-*********************************************************************/
-
-#include <GUSIFile_P.h>
-#include <ioctl.h>
-#include <console.h>
-
-#include <Events.h>
-#include <LowMem.h>
-
-/************************ SIOUXSocket members ************************/
-
-/* This declaration lies about the return type */
-extern "C" void SIOUXHandleOneEvent(EventRecord *userevent);
-
-GUSIEvtHandler GUSISIOUXEvents[]       =       {
-       SIOUXHandleOneEvent,            // nullEvent
-       
-       SIOUXHandleOneEvent,            // mouseDown
-       SIOUXHandleOneEvent,            // mouseUp
-       nil,                                                    // keyDown
-       nil,
-       
-       nil,                                                    // autoKey
-       SIOUXHandleOneEvent,            // updateEvt
-       SIOUXHandleOneEvent,            // diskEvt
-       SIOUXHandleOneEvent,            // activateEvt
-       
-       nil,
-       nil,
-       nil,
-       nil,
-       
-       nil,
-       nil,
-       SIOUXHandleOneEvent,            // osEvt
-       nil,
-       
-       nil,
-       nil,
-       nil,
-       nil,
-       
-       nil,
-       nil,
-       nil,
-};
-
-/************************ Declaration of SIOUXSocket ************************/
-
-class SIOUXSocket : public Socket      {               
-       friend class SIOUXSocketDomain; 
-       
-                                       SIOUXSocket();
-                                       
-       virtual                 ~SIOUXSocket();
-protected:
-       int                     initialized;
-       void                    DoInitialize(void);
-public:
-       virtual int     read(void * buffer, int buflen);
-       virtual int write(void * buffer, int buflen);
-       virtual int select(Boolean * canRead, Boolean * canWrite, Boolean * exception);
-       virtual int     ioctl(unsigned int request, void *argp);
-       virtual int     isatty();
-};     
-
-class SIOUXSocketDomain : public FileSocketDomain {
-       SIOUXSocket *   singleton;
-public:
-       SIOUXSocketDomain()     :       FileSocketDomain(AF_UNSPEC, true, false), singleton(nil)        {       }
-       
-       virtual Boolean Yours(const GUSIFileRef & ref, Request request);
-       virtual Socket * open(const GUSIFileRef & ref, int oflag);
-};
-
-#if GENERATING68K
-#pragma segment SIOUX
-#endif
-
-/************************ SIOUXSocket members ************************/
-
-void SIOUXSocket::DoInitialize()
-{
-       if ( initialized ) return;
-       initialized++;
-       InstallConsole(0);
-       GUSISetEvents(GUSISIOUXEvents);
-}
-
-SIOUXSocket::SIOUXSocket()
-{
-       initialized = 0;
-       if ( !GUSIConfig.DelayConsole() )
-               DoInitialize();
-}
-
-SIOUXSocket::~SIOUXSocket()
-{
-       RemoveConsole();
-}
-
-int SIOUXSocket::ioctl(unsigned int request, void *)
-{
-       if ( !initialized) DoInitialize();
-       switch (request)        {
-       case FIOINTERACTIVE:
-               return 0;
-       default:
-               return GUSI_error(EOPNOTSUPP);
-       }
-}
-
-int SIOUXSocket::read(void * buffer, int buflen)
-{
-       if ( !initialized) DoInitialize();
-       fflush(stdout);
-       
-       return ReadCharsFromConsole((char *) buffer, buflen);
-}
-
-int SIOUXSocket::write(void * buffer, int buflen)
-{
-       if ( !initialized) DoInitialize();
-       return WriteCharsToConsole((char *) buffer, buflen);
-}
-
-static Boolean input_pending()
-{
-       QHdrPtr eventQueue = LMGetEventQueue();
-       EvQElPtr element = (EvQElPtr)eventQueue->qHead;
-       
-       // now, count the number of pending keyDown events.
-       while (element != nil) {
-               if (element->evtQWhat == keyDown || element->evtQWhat == autoKey)
-                       return true;
-               element = (EvQElPtr)element->qLink;
-       }
-       
-       return false;
-}
-
-int SIOUXSocket::select(Boolean * canRead, Boolean * canWrite, Boolean * exception)
-{
-       int             goodies         =       0;
-               
-       if ( !initialized) DoInitialize();
-       fflush(stdout);
-       
-       if (canRead) 
-               if (*canRead = input_pending())
-                       ++goodies;
-       
-       if (canWrite) {
-               *canWrite = true;
-               ++goodies;
-       }
-       
-       if (exception)
-               *exception = false;
-       
-       return goodies;
-}
-
-int SIOUXSocket::isatty()
-{
-       return 1;
-}
-
-/********************* SIOUXSocketDomain members **********************/
-
-#ifdef MSLGUSI
-#ifndef SFIOGUSI
-       extern void GUSISetupMSLSIOUX();
-#endif
-#endif
-
-extern "C" void GUSIwithSIOUXSockets()
-{
-       static SIOUXSocketDomain        SIOUXSockets;
-       SIOUXSockets.DontStrip();
-#ifdef MSLGUSI
-#ifndef SFIOGUSI
-       GUSISetupMSLSIOUX();
-#endif
-#endif
-}
-
-Boolean SIOUXSocketDomain::Yours(const GUSIFileRef & ref, FileSocketDomain::Request request)
-{
-       if (ref.spec || (request != willOpen && request != willStat))
-               return false;
-       
-       switch (ref.name[4] | 0x20) {
-       case 's':
-               if ((ref.name[5] | 0x20) != 't' || (ref.name[6] | 0x20) != 'd')
-                       return false;
-               switch (ref.name[7] | 0x20) {
-               case 'i':
-                       if ((ref.name[8] | 0x20) != 'n' || ref.name[9])
-                               return false;
-                       return true;
-               case 'o':
-                       if ((ref.name[8] | 0x20) != 'u' || (ref.name[9] | 0x20) != 't' || ref.name[10])
-                               return false;
-                       return true;
-               case 'e':
-                       if ((ref.name[8] | 0x20) != 'r' || (ref.name[9] | 0x20) != 'r' || ref.name[10])
-                               return false;
-                       return true;
-               default:
-                       return false;
-               }
-       case 'c':
-               if (    (ref.name[5] | 0x20) != 'o' || (ref.name[6] | 0x20) != 'n'
-                       || (ref.name[7] | 0x20) != 's' || (ref.name[8] | 0x20) != 'o'
-                       || (ref.name[9] | 0x20) != 'l' || (ref.name[10] | 0x20) != 'e')
-                       return false;
-               switch (ref.name[11]) {
-               case 0:
-                       return true;
-               default:
-                       return false;
-               }
-       default:
-               return false;
-       }
-}
-
-Socket * SIOUXSocketDomain::open(const GUSIFileRef &, int)
-{
-       if (!singleton)
-               singleton = new SIOUXSocket();
-       ++*singleton;
-       
-       return singleton;
-}
diff --git a/Mac/Unsupported/GUSI1-mods/GUSI_P.h b/Mac/Unsupported/GUSI1-mods/GUSI_P.h
deleted file mode 100644 (file)
index 66ee3a7..0000000
+++ /dev/null
@@ -1,474 +0,0 @@
-/*********************************************************************
-Project        :       GUSI                            -       Grand Unified Socket Interface
-File           :       GUSI_P.h                        -       Private stuff
-Author :       Matthias Neeracher
-Language       :       MPW C/C++
-
-$Log$
-Revision 1.1  2000/09/12 20:24:46  jack
-Moved to Unsupported.
-
-Revision 1.1  1998/08/18 14:52:33  jack
-Putting Python-specific GUSI modifications under CVS.
-
-Revision 1.3  1994/12/31  01:30:26  neeri
-Reorganize filename dispatching.
-
-Revision 1.2  1994/08/10  00:41:05  neeri
-Sanitized for universal headers.
-
-Revision 1.1  1994/02/25  02:57:01  neeri
-Initial revision
-
-Revision 0.22  1993/07/17  00:00:00  neeri
-GUSIRingBuffer::proc -> defproc
-
-Revision 0.21  1993/07/17  00:00:00  neeri
-GUSIO_MAX_DOMAIN -> AF_MAX
-
-Revision 0.20  1993/06/27  00:00:00  neeri
-Socket::{pre,post}_select
-
-Revision 0.19  1993/06/27  00:00:00  neeri
-Socket::ftruncate
-
-Revision 0.18  1993/02/09  00:00:00  neeri
-Socket::lurking, Socket::lurkdescr
-
-Revision 0.17  1993/01/31  00:00:00  neeri
-GUSIConfiguration::daemon
-
-Revision 0.16  1993/01/17  00:00:00  neeri
-Destructors for Socketdomain
-
-Revision 0.15  1993/01/17  00:00:00  neeri
-SAFESPIN
-
-Revision 0.14  1993/01/03  00:00:00  neeri
-GUSIConfig
-
-Revision 0.13  1992/09/24  00:00:00  neeri
-Include GUSIRsrc_P.h
-
-Revision 0.12  1992/09/13  00:00:00  neeri
-SPINVOID didn't return
-
-Revision 0.11  1992/08/30  00:00:00  neeri
-AppleTalkIdentity()
-
-Revision 0.10  1992/08/03  00:00:00  neeri
-RingBuffer
-
-Revision 0.9  1992/07/30  00:00:00  neeri
-Initializer Features
-
-Revision 0.8  1992/07/26  00:00:00  neeri
-UnixSockets.choose()
-
-Revision 0.7  1992/07/13  00:00:00  neeri
-Make AppleTalkSockets global
-
-Revision 0.6  1992/06/27  00:00:00  neeri
-choose(), hasNewSF
-
-Revision 0.5  1992/06/07  00:00:00  neeri
-Feature
-
-Revision 0.4  1992/05/21  00:00:00  neeri
-Implemented select()
-
-Revision 0.3  1992/04/19  00:00:00  neeri
-C++ rewrite
-
-Revision 0.2  1992/04/18  00:00:00  neeri
-changed read/write/send/recv dispatchers
-
-Revision 0.1  1992/04/18  00:00:00  neeri
-ppc Domain
-
-*********************************************************************/
-
-#ifndef __GUSI_P__
-#define __GUSI_P__
-
-#define __useAppleExts__
-
-#include <GUSI.h>
-#include <GUSIRsrc_P.h>
-#include <TFileSpec.h>
-
-
-#include <sys/errno.h>
-#include <sys/uio.h>
-#include <sys/socket.h>
-
-extern "C" {
-
-#include <stdio.h>
-#include <string.h>
-
-int            GUSI_error(int err);
-void * GUSI_error_nil(int err);
-}
-
-#include <Memory.h>
-#include <Gestalt.h>
-#include <Traps.h>
-#include <AppleEvents.h>
-#include <Processes.h>
-#include <MixedMode.h>
-
-#if MSLGUSI
-using namespace std;
-#endif
-
-#if GENERATING68K
-#pragma segment GUSI
-#endif
-
-#define GUSI_MAX_DOMAIN                        AF_MAX
-#define DEFAULT_BUFFER_SIZE    4096
-
-/*
- *     In use and shutdown status.
- */
-#define        SOCK_STATUS_USED                0x1             /* Used socket table entry */
-#define        SOCK_STATUS_NOREAD      0x2             /* No more reading allowed from socket */
-#define        SOCK_STATUS_NOWRITE     0x4             /* No more writing allowed to socket */
-
-/*
- *     Socket connection states.
- */
-#define        SOCK_STATE_NO_STREAM            0       /* Socket doesn't have a MacTCP stream yet */
-#define        SOCK_STATE_UNCONNECTED  1       /* Socket is unconnected. */
-#define        SOCK_STATE_LISTENING            2       /* Socket is listening for connection. */
-#define        SOCK_STATE_LIS_CON              3       /* Socket is in transition from listen to connected. */
-#define        SOCK_STATE_CONNECTING   4       /* Socket is initiating a connection. */
-#define        SOCK_STATE_CONNECTED            5       /* Socket is connected. */
-#define        SOCK_STATE_CLOSING      6       /* Socket is closing */
-#define        SOCK_STATE_LIS_CLOSE    7       /* Socket closed while listening */
-
-#define                min(a,b)                                ( (a) < (b) ? (a) : (b))
-#define                max(a,b)                                ( (a) > (b) ? (a) : (b))
-
-extern GUSISpinFn GUSISpin;
-extern "C" int GUSIDefaultSpin(spin_msg, long);
-extern int GUSICheckAlarm();
-
-#define GUSI_INTERRUPT(mesg,param)     (GUSICheckAlarm() || (GUSISpin && (*GUSISpin)(mesg,param)))
-
-/* SPIN returns a -1 on user cancel for fn returning integers */
-#define                SPIN(cond,mesg,param)                                                   \
-                                       do {                                                                                            \
-                                               if (GUSI_INTERRUPT(mesg,param))         \
-                                                       return GUSI_error(EINTR);                       \
-                                       } while(cond)
-
-/* SPINP returns a NULL on user cancel, for fn returning pointers */                           
-#define                SPINP(cond,mesg,param)                                                  \
-                                       do {                                                                                            \
-                                               if (GUSI_INTERRUPT(mesg,param)) {       \
-                                                       GUSI_error(EINTR);                                      \
-                                                       return NULL;                                                    \
-                                               }                                                                                               \
-                                       } while(cond)
-
-/* SPINVOID just returns on user cancel, for fn returning void */                              
-#define                SPINVOID(cond,mesg,param)                                               \
-                                       do {                                                                                            \
-                                               if (GUSI_INTERRUPT(mesg,param)) {       \
-                                                               GUSI_error(EINTR);                              \
-                                                               return;                                                         \
-                                                       }                                                                                       \
-                                       } while(cond)
-                                       
-/* SAFESPIN doesn't return, you have to check errno */                         
-#define                SAFESPIN(cond,mesg,param)                                               \
-                                       do {                                                                                            \
-                                               if (GUSI_INTERRUPT(mesg,param)) {       \
-                                                       GUSI_error(EINTR);                                      \
-                                                       break;                                                                  \
-                                               } else                                                                          \
-                                                       errno = 0;                                                              \
-                                       } while(cond)
-
-//
-// Library functions are never allowed to clear errno, so we have to save
-//
-class ErrnoSaver {
-public:
-       ErrnoSaver()  { fSavedErrno = ::errno; ::errno = 0;     }
-       ~ErrnoSaver() { if (!::errno) ::errno = fSavedErrno;  }
-private:
-       int fSavedErrno;
-};
-
-#define SAVE_AND_CLEAR_ERRNO   ErrnoSaver saveErrno
-                       
-class SocketTable;
-
-#if PRAGMA_ALIGN_SUPPORTED
-#pragma options align=mac68k
-#endif
-
-class Socket {
-       friend class SocketTable;
-       
-       short                   refCount;
-protected:
-                                       Socket();
-public:
-       virtual int     bind(void * name, int namelen);
-       virtual int connect(void * address, int addrlen);
-       virtual int listen(int qlen);
-       virtual Socket * accept(void * address, int * addrlen);
-       virtual int     read(void * buffer, int buflen);
-       virtual int write(void * buffer, int buflen);
-       virtual int recvfrom(void * buffer, int buflen, int flags, void * from, int * fromlen);
-       virtual int sendto(void * buffer, int buflen, int flags, void * to, int tolen);
-       virtual int getsockname(void * name, int * namelen);
-       virtual int getpeername(void * name, int * namelen);
-       virtual int getsockopt(int level, int optname, void *optval, int * optlen);
-       virtual int setsockopt(int level, int optname, void *optval, int optlen);
-       virtual int     fcntl(unsigned int cmd, int arg);
-       virtual int     ioctl(unsigned int request, void *argp);
-       virtual int     fstat(struct stat * buf);
-       virtual long lseek(long offset, int whence);
-       virtual int ftruncate(long offset);
-       virtual int     isatty();
-       virtual int shutdown(int how);
-       virtual void pre_select(Boolean wantRead, Boolean wantWrite, Boolean wantExcept);
-       virtual int select(Boolean * canRead, Boolean * canWrite, Boolean * exception);
-       virtual void post_select(Boolean wantRead, Boolean wantWrite, Boolean wantExcept);
-       virtual                 ~Socket();
-       
-       void operator++()       {       ++refCount;                                                     }
-       void operator--()       {       if (!--refCount) delete this;   }
-};
-
-
-#if PRAGMA_ALIGN_SUPPORTED
-#pragma options align=reset
-#endif
-
-class SocketDomain {
-       static SocketDomain *           domains[GUSI_MAX_DOMAIN];
-       static ProcessSerialNumber      process;
-protected:
-       SocketDomain(int domain);
-       virtual ~SocketDomain();
-public:
-       inline static SocketDomain *    Domain(int domain);
-       static void Ready();
-       
-       // Optionally override the following
-       
-       virtual Socket * socket(int type, short protocol);
-       
-       // Optionally override the following
-       
-       virtual int socketpair(int type, short protocol, Socket * sockets[]);
-       
-       // Optionally define the following
-       
-       virtual int choose(
-                                               int             type, 
-                                               char *  prompt, 
-                                               void *  constraint,             
-                                               int             flags,
-                                               void *  name, 
-                                               int *   namelen);
-       
-       // Never override the following
-       
-       void DontStrip();
-};
-
-class SocketTable {
-       Socket *        sockets[GUSI_MAX_FD];
-       Boolean needsConsole;
-public:
-       SocketTable();
-       ~SocketTable();
-       
-       void            InitConsole();
-       int             Install(Socket * sock, int start = 0);
-       int             Remove(int fd);
-       Socket * operator[](int fd);
-};
-
-struct GUSISuffix {
-       char            suffix[4];
-       OSType  suffType;
-       OSType  suffCreator;
-};
-
-#if PRAGMA_ALIGN_SUPPORTED
-#pragma options align=mac68k
-#endif
-
-//
-// I learned the hard way not to rely on bit field alignments
-//
-
-struct GUSIConfigRsrc {
-       OSType                  defaultType;
-       OSType                  defaultCreator;
-       
-       char                            autoSpin;
-       unsigned char   flags;
-       
-       OSType                  version;
-       short                           numSuffices;
-       GUSISuffix              suffices[1];
-};
-
-#if PRAGMA_ALIGN_SUPPORTED
-#pragma options align=reset
-#endif
-
-struct GUSIConfiguration {
-       OSType                  defaultType;
-       OSType                  defaultCreator;
-       
-       char                            autoSpin;
-       
-       Boolean                 noChdir;                // Set current directory without chdir()
-       Boolean                         accurStat;      // Return # of subdirectories + 2 in st_nlink
-       Boolean                 hasConsole;     // Do we have our own console ?
-       Boolean                 noAutoInitGraf; // Never automatically do InitGraf
-       Boolean                 sharedOpen;     // Open files with shared permissions
-       Boolean                 sigPipe;                // raise SIGPIPE on write to closed socket
-       Boolean                 noAppleEvents; // Don't solicit AppleEvents for MPW tools
-       Boolean                 delayConsole;   // Do not open console until needed
-       
-       OSType                  version;
-       short                           numSuffices;
-       GUSISuffix *    suffices;
-       
-       GUSIConfiguration();
-       void GUSILoadConfiguration(Handle config);
-       
-       void SetDefaultFType(const TFileSpec & name) const;
-       void DoAutoSpin() const;
-       void AutoInitGraf()     const { if (!noAutoInitGraf) DoAutoInitGraf();  }
-       void DoAutoInitGraf() const;
-       Boolean DelayConsole() const;
-private:
-       static Boolean firstTime;
-       static short    we;
-};
-
-extern GUSIConfiguration       GUSIConfig;
-extern SocketTable                                     Sockets;
-
-typedef pascal OSErr (*OSErrInitializer)();
-typedef pascal void  (*voidInitializer)();
-
-class Feature {
-       Boolean good;
-public:
-       Feature(unsigned short trapNum, TrapType tTyp);
-       Feature(OSType type, long value);
-       Feature(OSType type, long mask, long value);
-       Feature(const Feature & precondition, OSErrInitializer init);
-       Feature(OSErrInitializer init);
-       Feature(const Feature & precondition, voidInitializer init);
-       Feature(voidInitializer init);
-       Feature(const Feature & cond1, const Feature & cond2);
-
-       operator void*() const {        return (void *) good;   }
-};
-
-extern Feature hasMakeFSSpec;
-extern Feature hasAlias;
-extern Feature hasNewSF;
-extern Feature hasProcessMgr;
-extern Feature hasCRM;
-extern Feature hasCTB;
-extern Feature hasStdNBP;
-extern Feature hasCM;
-extern Feature hasFT;
-extern Feature hasTM;
-extern Feature hasPPC;
-extern Feature hasRevisedTimeMgr;
-
-class ScattGath        {
-       Handle                  scratch;
-protected:
-       void *                  buf;
-       int                                             len;
-       int                                             count;
-       const struct iovec *    io;
-
-       ScattGath(const struct iovec *iov, int cnt);
-       virtual ~ScattGath();
-public:
-       void *                  buffer()                        {       return buf;                     }
-       int                             buflen()                        {       return len;                     }
-       int                             length(int l)   {       return len = l; }
-       operator void *()                                       {       return buf;                     }
-};
-
-class Scatterer : public ScattGath {
-public:
-       Scatterer(const struct iovec *iov, int count);
-       virtual ~Scatterer();
-};
-
-class Gatherer : public ScattGath {
-public:
-       Gatherer(const struct iovec *iov, int count);
-       virtual ~Gatherer();
-};
-
-typedef pascal void (*Deferred)(void *);
-
-class RingBuffer {
-       // Valid bytes are between consume and produce
-       // Free bytes are between produce and consume
-       // bytes between endbuf-spare and endbuf are neither
-       Ptr             buffer;
-       Ptr             endbuf;
-       Ptr             consume;
-       Ptr             produce;
-       u_short free;
-       u_short valid;
-       u_short spare;
-       Boolean lock;
-       Deferred        defproc;
-       void *  arg;
-       
-public:
-                               RingBuffer(u_short bufsiz);
-                               ~RingBuffer();
-       
-       Ptr             Producer(long & len);                   //      Find continuous memory for producer
-       Ptr             Consumer(long & len);                   //      Find continuous memory for consumer
-       void            Validate(long len);                             // Validate this, unallocate rest
-       void            Invalidate(long len);
-       void            Produce(Ptr from, long & len);//        Allocate, copy & validate
-       void            Consume(Ptr to, long & len);    // Copy & invalidate
-       
-       long            Free()                                                          { return free;                                                                  }               
-       long            Valid()                                                         { return valid;                                                         }
-       
-       void            Defer()                                                         { lock = true;                                                                  }
-       void            Undefer()                                                       { lock = false; if (defproc) defproc(arg);}
-       Boolean Locked()                                                                { return lock;                                                                  }
-       void            Later(Deferred def, void * ar){ defproc = def; arg = ar;                                        }
-       
-       operator void *()                                                               { return buffer;                                                                }
-};
-
-Boolean GUSIInterrupt();
-
-Boolean CopyIconFamily(short srcResFile, short srcID, short dstResFile, short dstID);
-
-pascal OSErr PPCInit_P();
-
-OSErr AppleTalkIdentity(short & net, short & node);
-
-void CopyC2PStr(const char * cstr, StringPtr pstr);
-
-#endif
diff --git a/Mac/Unsupported/mactcp/MACTCPconst.py b/Mac/Unsupported/mactcp/MACTCPconst.py
deleted file mode 100644 (file)
index 47b9d68..0000000
+++ /dev/null
@@ -1,62 +0,0 @@
-#
-# MACTCP - event codes for the mactcp module
-#
-
-# UDP asr event codes
-UDPDataArrival=1               # A datagram has arrived
-UDPICMPReceived=2              # An ICMP error was received
-
-# TCP asr event codes
-TCPClosing=1                   # All incoming data has been received and read.
-TCPULPTimeout=2                        # No response from remote process.
-TCPTerminate=3                 # Connection terminated. Has a detail parameter.
-TCPDataArrival=4               # Data has arrived (and no Rcv call is outstanding)
-TCPUrgent=5                            # Urgent data is outstanding
-TCPICMPReceived=6              # An ICMP error was received
-PassiveOpenDone=32766  # (python only) a PassiveOpen has completed.
-
-# TCP termination reasons
-TCPRemoteAbort=2
-TCPNetworkFailure=3
-TCPSecPrecMismatch=4
-TCPULPTimeoutTerminate=5
-TCPULPAbort=6
-TCPULPClose=7
-TCPServiceError=8
-
-# MacTCP/DNR errors
-ipBadLapErr =                  -23000                  # bad network configuration 
-ipBadCnfgErr =                         -23001                  # bad IP configuration error 
-ipNoCnfgErr =                  -23002                  # missing IP or LAP configuration error 
-ipLoadErr =                    -23003                  # error in MacTCP load 
-ipBadAddr =                    -23004                  # error in getting address 
-connectionClosing =    -23005                  # connection is closing 
-invalidLength =                -23006
-connectionExists =             -23007                  # request conflicts with existing connection 
-connectionDoesntExist =        -23008                  # connection does not exist 
-insufficientResources =        -23009                  # insufficient resources to perform request 
-invalidStreamPtr =             -23010
-streamAlreadyOpen =    -23011
-connectionTerminated =         -23012
-invalidBufPtr =                -23013
-invalidRDS =                   -23014
-invalidWDS =                   -23014
-openFailed =                   -23015
-commandTimeout =               -23016
-duplicateSocket =              -23017
-
-# Error codes from internal IP functions 
-ipDontFragErr =                -23032                  # Packet too large to send w/o fragmenting 
-ipDestDeadErr =                -23033                  # destination not responding
-icmpEchoTimeoutErr =   -23035                  # ICMP echo timed-out 
-ipNoFragMemErr =               -23036                  # no memory to send fragmented pkt 
-ipRouteErr =                   -23037                  # can't route packet off-net 
-
-nameSyntaxErr =                -23041          
-cacheFault =                   -23042
-noResultProc =                         -23043
-noNameServer =                         -23044
-authNameErr =                  -23045
-noAnsErr =                             -23046
-dnrErr =                               -23047
-outOfMemory =                  -23048
diff --git a/Mac/Unsupported/mactcp/MacTCPerrors.py b/Mac/Unsupported/mactcp/MacTCPerrors.py
deleted file mode 100644 (file)
index 3f6e72b..0000000
+++ /dev/null
@@ -1,35 +0,0 @@
-ipBadLapErr =                  -23000                  # bad network configuration 
-ipBadCnfgErr =                         -23001                  # bad IP configuration error 
-ipNoCnfgErr =                  -23002                  # missing IP or LAP configuration error 
-ipLoadErr =                    -23003                  # error in MacTCP load 
-ipBadAddr =                    -23004                  # error in getting address 
-connectionClosing =    -23005                  # connection is closing 
-invalidLength =                -23006
-connectionExists =             -23007                  # request conflicts with existing connection 
-connectionDoesntExist =        -23008                  # connection does not exist 
-insufficientResources =        -23009                  # insufficient resources to perform request 
-invalidStreamPtr =             -23010
-streamAlreadyOpen =    -23011
-connectionTerminated =         -23012
-invalidBufPtr =                -23013
-invalidRDS =                   -23014
-invalidWDS =                   -23014
-openFailed =                   -23015
-commandTimeout =               -23016
-duplicateSocket =              -23017
-
-# Error codes from internal IP functions 
-ipDontFragErr =                -23032                  # Packet too large to send w/o fragmenting 
-ipDestDeadErr =                -23033                  # destination not responding
-icmpEchoTimeoutErr =   -23035                  # ICMP echo timed-out 
-ipNoFragMemErr =               -23036                  # no memory to send fragmented pkt 
-ipRouteErr =                   -23037                  # can't route packet off-net 
-
-nameSyntaxErr =                -23041          
-cacheFault =                   -23042
-noResultProc =                         -23043
-noNameServer =                         -23044
-authNameErr =                  -23045
-noAnsErr =                             -23046
-dnrErr =                               -23047
-outOfMemory =                  -23048
diff --git a/Mac/Unsupported/mactcp/dnrglue.c b/Mac/Unsupported/mactcp/dnrglue.c
deleted file mode 100644 (file)
index 5474b73..0000000
+++ /dev/null
@@ -1,301 +0,0 @@
-/*     DNR.c - DNR library for MPW
-
-       (c) Copyright 1988 by Apple Computer.  All rights reserved
-       
-       Modifications by Jim Matthews, Dartmouth College, 5/91
-       Again modified for use with python by Jack Jansen, CWI, October 1994.
-       
-*/
-
-#include <Traps.h>
-#include <OSUtils.h>
-#include <Errors.h>
-#include <Files.h>
-#include <Resources.h>
-#include <Memory.h>
-#include <Traps.h>
-#include <GestaltEqu.h>
-#include <Folders.h>
-#include <ToolUtils.h>
-#include <MacTCPCommonTypes.h>
-#include "AddressXlation.h"
-
-TrapType GetTrapType(unsigned long theTrap);
-Boolean TrapAvailable(unsigned long trap);
-void GetSystemFolder(short *vRefNumP, long *dirIDP);
-void GetCPanelFolder(short *vRefNumP, long *dirIDP);
-short SearchFolderForDNRP(long targetType, long targetCreator, short vRefNum, long dirID);
-short OpenOurRF(void);
-
-#define OPENRESOLVER   1L
-#define CLOSERESOLVER  2L
-#define STRTOADDR              3L
-#define        ADDRTOSTR               4L
-#define        ENUMCACHE               5L
-#define ADDRTONAME             6L
-#define        HINFO                   7L
-#define MXINFO                 8L
-
-Handle codeHndl = nil;
-
-OSErrProcPtr dnr = nil;
-
-TrapType GetTrapType(theTrap)
-unsigned long theTrap;
-{
-       if (BitAnd(theTrap, 0x0800) > 0)
-               return(ToolTrap);
-       else
-               return(OSTrap);
-       }
-       
-Boolean TrapAvailable(trap)
-unsigned long trap;
-{
-TrapType trapType = ToolTrap;
-unsigned long numToolBoxTraps;
-
-       if (NGetTrapAddress(_InitGraf, ToolTrap) == NGetTrapAddress(0xAA6E, ToolTrap))
-               numToolBoxTraps = 0x200;
-       else
-               numToolBoxTraps = 0x400;
-
-       trapType = GetTrapType(trap);
-       if (trapType == ToolTrap) {
-               trap = BitAnd(trap, 0x07FF);
-               if (trap >= numToolBoxTraps)
-                       trap = _Unimplemented;
-               }
-       return(NGetTrapAddress(trap, trapType) != NGetTrapAddress(_Unimplemented, ToolTrap));
-
-}
-
-void GetSystemFolder(short *vRefNumP, long *dirIDP)
-{
-       SysEnvRec info;
-       long wdProcID;
-       
-       SysEnvirons(1, &info);
-       if (GetWDInfo(info.sysVRefNum, vRefNumP, dirIDP, &wdProcID) != noErr) {
-               *vRefNumP = 0;
-               *dirIDP = 0;
-               }
-       }
-
-void GetCPanelFolder(short *vRefNumP, long *dirIDP)
-{
-       Boolean hasFolderMgr = false;
-       long feature;
-       
-       if (Gestalt(gestaltFindFolderAttr, &feature) == noErr) hasFolderMgr = true;
-       if (!hasFolderMgr) {
-               GetSystemFolder(vRefNumP, dirIDP);
-               return;
-               }
-       else {
-               if (FindFolder(kOnSystemDisk, kControlPanelFolderType, kDontCreateFolder, vRefNumP, dirIDP) != noErr) {
-                       *vRefNumP = 0;
-                       *dirIDP = 0;
-                       }
-               }
-       }
-       
-/* SearchFolderForDNRP is called to search a folder for files that might 
-       contain the 'dnrp' resource */
-short SearchFolderForDNRP(long targetType, long targetCreator, short vRefNum, long dirID)
-{
-       HParamBlockRec fi;
-       Str255 filename;
-       short refnum;
-       
-       fi.fileParam.ioCompletion = nil;
-       fi.fileParam.ioNamePtr = filename;
-       fi.fileParam.ioVRefNum = vRefNum;
-       fi.fileParam.ioDirID = dirID;
-       fi.fileParam.ioFDirIndex = 1;
-       
-       while (PBHGetFInfo(&fi, false) == noErr) {
-               /* scan system folder for driver resource files of specific type & creator */
-               if (fi.fileParam.ioFlFndrInfo.fdType == targetType &&
-                       fi.fileParam.ioFlFndrInfo.fdCreator == targetCreator) {
-                       /* found the MacTCP driver file? */
-                       refnum = HOpenResFile(vRefNum, dirID, filename, fsRdPerm);
-                       if (GetIndResource('dnrp', 1) == NULL)
-                               CloseResFile(refnum);
-                       else
-                               return refnum;
-                       }
-               /* check next file in system folder */
-               fi.fileParam.ioFDirIndex++;
-               fi.fileParam.ioDirID = dirID;   /* PBHGetFInfo() clobbers ioDirID */
-               }
-       return(-1);
-       }       
-
-/* OpenOurRF is called to open the MacTCP driver resources */
-
-short OpenOurRF()
-{
-       short refnum;
-       short vRefNum;
-       long dirID;
-       
-       /* first search Control Panels for MacTCP 1.1 */
-       GetCPanelFolder(&vRefNum, &dirID);
-       refnum = SearchFolderForDNRP('cdev', 'ztcp', vRefNum, dirID);
-       if (refnum != -1) return(refnum);
-               
-       /* next search System Folder for MacTCP 1.0.x */
-       GetSystemFolder(&vRefNum, &dirID);
-       refnum = SearchFolderForDNRP('cdev', 'mtcp', vRefNum, dirID);
-       if (refnum != -1) return(refnum);
-               
-       /* finally, search Control Panels for MacTCP 1.0.x */
-       GetCPanelFolder(&vRefNum, &dirID);
-       refnum = SearchFolderForDNRP('cdev', 'mtcp', vRefNum, dirID);
-       if (refnum != -1) return(refnum);
-               
-       return -1;
-       }       
-
-
-OSErr OpenResolver(fileName)
-char *fileName;
-{
-       short refnum;
-       OSErr rc;
-       
-       if (dnr != nil)
-               /* resolver already loaded in */
-               return(noErr);
-               
-       /* open the MacTCP driver to get DNR resources. Search for it based on
-          creator & type rather than simply file name */       
-       refnum = OpenOurRF();
-
-       /* ignore failures since the resource may have been installed in the 
-          System file if running on a Mac 512Ke */
-          
-       /* load in the DNR resource package */
-       codeHndl = GetIndResource('dnrp', 1);
-       if (codeHndl == nil) {
-               /* can't open DNR */
-               return(ResError());
-               }
-       
-       DetachResource(codeHndl);
-       if (refnum != -1) {
-               CloseWD(refnum);
-               CloseResFile(refnum);
-               }
-               
-       /* lock the DNR resource since it cannot be reloated while opened */
-       HLock(codeHndl);
-       dnr = (OSErrProcPtr) *codeHndl;
-       
-       /* call open resolver */
-       rc = (*dnr)(OPENRESOLVER, fileName);
-       if (rc != noErr) {
-               /* problem with open resolver, flush it */
-               HUnlock(codeHndl);
-               DisposHandle(codeHndl);
-               dnr = nil;
-               }
-       return(rc);
-       }
-
-
-OSErr CloseResolver()
-{
-       if (dnr == nil)
-               /* resolver not loaded error */
-               return(notOpenErr);
-               
-       /* call close resolver */
-       (void) (*dnr)(CLOSERESOLVER);
-
-       /* release the DNR resource package */
-       HUnlock(codeHndl);
-       DisposHandle(codeHndl);
-       dnr = nil;
-       return(noErr);
-       }
-
-OSErr StrToAddr(hostName, rtnStruct, resultproc, userDataPtr)
-char *hostName;
-struct hostInfo *rtnStruct;
-ResultProcPtr resultproc;
-char *userDataPtr;
-{
-       if (dnr == nil)
-               /* resolver not loaded error */
-               return(notOpenErr);
-               
-       return((*dnr)(STRTOADDR, hostName, rtnStruct, resultproc, userDataPtr));
-       }
-       
-OSErr AddrToStr(addr, addrStr)
-unsigned long addr;
-char *addrStr;                                                                 
-{
-       if (dnr == nil)
-               /* resolver not loaded error */
-               return(notOpenErr);
-               
-       (*dnr)(ADDRTOSTR, addr, addrStr);
-       return(noErr);
-       }
-       
-OSErr EnumCache(resultproc, userDataPtr)
-EnumResultProcPtr resultproc;
-char *userDataPtr;
-{
-       if (dnr == nil)
-               /* resolver not loaded error */
-               return(notOpenErr);
-               
-       return((*dnr)(ENUMCACHE, resultproc, userDataPtr));
-       }
-       
-       
-OSErr AddrToName(addr, rtnStruct, resultproc, userDataPtr)
-unsigned long addr;
-struct hostInfo *rtnStruct;
-ResultProcPtr resultproc;
-char *userDataPtr;                                                                     
-{
-       if (dnr == nil)
-               /* resolver not loaded error */
-               return(notOpenErr);
-               
-       return((*dnr)(ADDRTONAME, addr, rtnStruct, resultproc, userDataPtr));
-       }
-
-
-extern OSErr HInfo(hostName, returnRecPtr, resultProc, userDataPtr)
-char *hostName;
-struct returnRec *returnRecPtr;
-ResultProc2Ptr resultProc;
-char *userDataPtr;
-{
-       if (dnr == nil)
-               /* resolver not loaded error */
-               return(notOpenErr);
-               
-       return((*dnr)(HINFO, hostName, returnRecPtr, resultProc, userDataPtr));
-
-       }
-       
-extern OSErr MXInfo(hostName, returnRecPtr, resultProc, userDataPtr)
-char *hostName;
-struct returnRec *returnRecPtr;
-ResultProc2Ptr resultProc;
-char *userDataPtr;
-{
-       if (dnr == nil)
-               /* resolver not loaded error */
-               return(notOpenErr);
-               
-       return((*dnr)(MXINFO, hostName, returnRecPtr, resultProc, userDataPtr));
-
-       }
\ No newline at end of file
diff --git a/Mac/Unsupported/mactcp/macdnrmodule.c b/Mac/Unsupported/mactcp/macdnrmodule.c
deleted file mode 100644 (file)
index fe89e03..0000000
+++ /dev/null
@@ -1,459 +0,0 @@
-/***********************************************************
-Copyright 1991-1995 by Stichting Mathematisch Centrum, Amsterdam,
-The Netherlands.
-
-                        All Rights Reserved
-
-Permission to use, copy, modify, and distribute this software and its 
-documentation for any purpose and without fee is hereby granted, 
-provided that the above copyright notice appear in all copies and that
-both that copyright notice and this permission notice appear in 
-supporting documentation, and that the names of Stichting Mathematisch
-Centrum or CWI not be used in advertising or publicity pertaining to
-distribution of the software without specific, written prior permission.
-
-STICHTING MATHEMATISCH CENTRUM DISCLAIMS ALL WARRANTIES WITH REGARD TO
-THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
-FITNESS, IN NO EVENT SHALL STICHTING MATHEMATISCH CENTRUM BE LIABLE
-FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
-WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
-ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
-OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
-
-******************************************************************/
-
-#include "allobjects.h"
-#include "modsupport.h"                /* For getargs() etc. */
-
-#include "macglue.h"
-#include <AddressXlation.h>
-#include <Desk.h>
-
-#ifndef HAVE_UNIVERSAL_HEADERS
-#define ResultUPP ResultProcPtr
-#define NewResultProc(x) (x)
-#define ResultProc2UPP ResultProc2Ptr
-#define NewResultProc2Proc(x) (x)
-#endif
-
-static object *ErrorObject;
-
-/* ----------------------------------------------------- */
-/* Declarations for objects of type MacTCP DNR Result */
-
-/* Types of records we have */
-#define DNR_ADDR 0
-#define DNR_HINFO 1
-#define DNR_MX 2
-
-typedef struct {
-       OB_HEAD
-       int type;               /* DNR_XXX */
-       int waiting;    /* True while completion proc not called */
-       struct returnRec hinfo;
-} dnrrobject;
-
-staticforward typeobject Dnrrtype;
-
-#define is_dnrrobject(v)               ((v)->ob_type == &Dnrrtype)
-
-/* ---------------------------------------------------------------- */
-
-static pascal void
-dnrr_done(rrp, udp)
-       struct hostInfo *rrp;   /* Unused */
-       dnrrobject *udp;
-{
-       if ( !udp->waiting ) {
-               printf("macdnr: dnrr_done: spurious completion call!\n");
-               return;
-       }
-       udp->waiting = 0;
-       DECREF(udp);
-}
-
-static int dnrwait(self)
-       dnrrobject *self;
-{
-       while ( self->waiting ) {
-               if ( PyMac_Idle() )
-                       return 0;
-       }
-       return 1;
-}
-
-static object *
-dnrr_wait(self, args)
-       dnrrobject *self;
-       object *args;
-{
-       if (!newgetargs(args, ""))
-               return NULL;
-       if ( !dnrwait(self) ) {
-               /* XXX An interrupt is pending -- is this correct? */
-               INCREF(None);
-               return None;
-       }
-       if ( self->hinfo.rtnCode ) {
-               PyErr_Mac(ErrorObject, self->hinfo.rtnCode);
-               return NULL;
-       }
-       INCREF(None);
-       return None;
-}
-
-static object *
-dnrr_isdone(self, args)
-       dnrrobject *self;
-       object *args;
-{
-       if (!newgetargs(args, ""))
-               return NULL;
-       return newintobject(!self->waiting);
-}
-
-static struct methodlist dnrr_methods[] = {
-       {"wait",        (method)dnrr_wait,      1},
-       {"isdone",      (method)dnrr_isdone,    1},
-       {NULL,          NULL}           /* sentinel */
-};
-
-/* ---------- */
-
-static dnrrobject *
-newdnrrobject(tp)
-       int tp;
-{
-       dnrrobject *self;
-       
-       self = NEWOBJ(dnrrobject, &Dnrrtype);
-       if (self == NULL)
-               return NULL;
-       self->type = tp;
-       self->waiting = 0;
-       memset(&self->hinfo, 0, sizeof(self->hinfo));
-       return self;
-}
-
-static void
-dnrr_dealloc(self)
-       dnrrobject *self;
-{
-       self->waiting = 0;  /* Not really needed, since we incref for completion */
-       DEL(self);
-}
-
-/* Code to access structure members by accessing attributes */
-
-#include "structmember.h"
-
-#define OFF(x) offsetof(struct returnRec, x)
-
-static struct memberlist dnrr_memberlist_addr[] = {
-       { "rtnCode", T_INT, OFF(rtnCode), RO},
-       { "cname", T_STRING_INPLACE, OFF(cname), RO},
-       { "ip0", T_UINT, OFF(rdata.addr[0]), RO},
-       { "ip1", T_UINT, OFF(rdata.addr[1]), RO},
-       { "ip2", T_UINT, OFF(rdata.addr[2]), RO},
-       { "ip3", T_UINT, OFF(rdata.addr[3]), RO},
-       {NULL}  /* Sentinel */
-};
-
-static struct memberlist dnrr_memberlist_hinfo[] = {
-       { "rtnCode", T_INT, OFF(rtnCode), RO},
-       { "cname", T_STRING_INPLACE, OFF(cname), RO},
-       { "cpuType", T_STRING_INPLACE, OFF(rdata.hinfo.cpuType), RO},
-       { "osType", T_STRING_INPLACE, OFF(rdata.hinfo.osType), RO},
-       {NULL}  /* Sentinel */
-};
-
-static struct memberlist dnrr_memberlist_mx[] = {
-       { "rtnCode", T_INT, OFF(rtnCode), RO},
-       { "cname", T_STRING_INPLACE, OFF(cname), RO},
-       { "preference", T_USHORT, OFF(rdata.mx.preference), RO},
-       { "exchange", T_STRING_INPLACE, OFF(rdata.mx.exchange), RO},
-       {NULL}  /* Sentinel */
-};
-
-static struct memberlist *dnrr_mlists[3] = {
-       dnrr_memberlist_addr,
-       dnrr_memberlist_hinfo,
-       dnrr_memberlist_mx
-};
-
-static object *
-dnrr_getattr(self, name)
-       dnrrobject *self;
-       char *name;
-{
-       object *rv;
-       int tp;
-       
-       rv = findmethod(dnrr_methods, (object *)self, name);
-       if ( rv ) return rv;
-       err_clear();
-       if ( self->waiting )
-               if ( !dnrwait(self) ) {
-                       /* XXX An interrupt is pending -- is this correct? */
-                       err_setstr(ErrorObject, "Resolver busy");
-                       return NULL;
-               }
-       tp = self->type;
-       return getmember((char *)&self->hinfo, dnrr_mlists[tp], name);
-}
-
-
-static typeobject Dnrrtype = {
-       OB_HEAD_INIT(&Typetype)
-       0,                              /*ob_size*/
-       "MacTCP DNR Result",                    /*tp_name*/
-       sizeof(dnrrobject),             /*tp_basicsize*/
-       0,                              /*tp_itemsize*/
-       /* methods */
-       (destructor)dnrr_dealloc,       /*tp_dealloc*/
-       (printfunc)0,           /*tp_print*/
-       (getattrfunc)dnrr_getattr,      /*tp_getattr*/
-       (setattrfunc)0, /*tp_setattr*/
-       (cmpfunc)0,             /*tp_compare*/
-       (reprfunc)0,            /*tp_repr*/
-       0,                      /*tp_as_number*/
-       0,              /*tp_as_sequence*/
-       0,              /*tp_as_mapping*/
-       (hashfunc)0,            /*tp_hash*/
-};
-
-/* End of code for MacTCP DNR Result objects */
-/* -------------------------------------------------------- */
-
-int dnr_is_open;
-
-static int
-opendnr(fn)
-       char *fn;
-{
-       OSErr err;
-       
-       if ( dnr_is_open ) return 1;
-       if ( (err=OpenResolver(fn)) ) {
-               PyErr_Mac(ErrorObject, err);
-               return 0;
-       }
-       dnr_is_open = 1;
-       return 1;
-}
-       
-static object *
-dnr_Open(self, args)
-       object *self;   /* Not used */
-       object *args;
-{
-       char *fn = NULL;
-
-       if (!newgetargs(args, "|s", &fn))
-               return NULL;
-       if ( dnr_is_open ) {
-               err_setstr(ErrorObject, "DNR already open");
-               return NULL;
-       }
-       if ( !opendnr(fn) )
-               return NULL;
-       INCREF(None);
-       return None;
-}
-
-static object *
-dnr_Close(self, args)
-       object *self;   /* Not used */
-       object *args;
-{
-       OSErr err;
-
-       if (!newgetargs(args, ""))
-               return NULL;
-       dnr_is_open = 0;
-       if ( (err=CloseResolver()) ) {
-               PyErr_Mac(ErrorObject, err);
-               return NULL;
-       }
-       INCREF(None);
-       return None;
-}
-
-static object *
-dnr_StrToAddr(self, args)
-       object *self;   /* Not used */
-       object *args;
-{
-       OSErr err;
-       char *hostname;
-       dnrrobject *rv;
-       ResultUPP cb_upp = NewResultProc(dnrr_done);
-
-       if (!newgetargs(args, "s", &hostname))
-               return NULL;
-       if ( !opendnr(NULL) )
-               return NULL;
-       if ( (rv=newdnrrobject(DNR_ADDR)) == NULL )
-               return NULL;
-       err = StrToAddr(hostname, (struct hostInfo *)&rv->hinfo, cb_upp, (char *)rv);
-       if ( err == cacheFault ) {
-               rv->waiting++;
-               INCREF(rv);
-       } else if ( err ) {
-               DECREF(rv);
-               PyErr_Mac(ErrorObject, err);
-               return NULL;
-       }
-       return (object *)rv;
-}
-
-static object *
-dnr_AddrToName(self, args)
-       object *self;   /* Not used */
-       object *args;
-{
-       OSErr err;
-       unsigned long ipaddr;
-       dnrrobject *rv;
-       ResultUPP cb_upp = NewResultProc(dnrr_done);
-
-       if (!newgetargs(args, "l", &ipaddr))
-               return NULL;
-       if ( !opendnr(NULL) )
-               return NULL;
-       if ( (rv=newdnrrobject(DNR_ADDR)) == NULL )
-               return NULL;
-       err = AddrToName(ipaddr, (struct hostInfo *)&rv->hinfo, cb_upp, (char *)rv);
-       if ( err == cacheFault ) {
-               rv->waiting++;
-               INCREF(rv);
-       } else if ( err ) {
-               DECREF(rv);
-               PyErr_Mac(ErrorObject, err);
-               return NULL;
-       }
-       return (object *)rv;
-}
-
-static object *
-dnr_AddrToStr(self, args)
-       object *self;   /* Not used */
-       object *args;
-{
-       OSErr err;
-       unsigned long ipaddr;
-       char ipname[16];
-
-       if (!newgetargs(args, "l", &ipaddr))
-               return NULL;
-       if ( !opendnr(NULL) )
-               return NULL;
-       if ( (err=AddrToStr(ipaddr, ipname)) ) {
-               PyErr_Mac(ErrorObject, err);
-               return NULL;
-       }
-       return newstringobject(ipname);
-}
-
-static object *
-dnr_HInfo(self, args)
-       object *self;   /* Not used */
-       object *args;
-{
-       OSErr err;
-       char *hostname;
-       dnrrobject *rv;
-       ResultProc2UPP cb_upp = NewResultProc2Proc(dnrr_done);
-
-       if (!newgetargs(args, "s", &hostname))
-               return NULL;
-       if ( !opendnr(NULL) )
-               return NULL;
-       if ( (rv=newdnrrobject(DNR_HINFO)) == NULL )
-               return NULL;
-       err = HInfo(hostname, &rv->hinfo, cb_upp, (char *)rv);
-       if ( err == cacheFault ) {
-               rv->waiting++;
-               INCREF(rv);
-       } else if ( err ) {
-               DECREF(rv);
-               PyErr_Mac(ErrorObject, err);
-               return NULL;
-       }
-       return (object *)rv;
-
-       if (!newgetargs(args, ""))
-               return NULL;
-       INCREF(None);
-       return None;
-}
-
-static object *
-dnr_MXInfo(self, args)
-       object *self;   /* Not used */
-       object *args;
-{
-       OSErr err;
-       char *hostname;
-       dnrrobject *rv;
-       ResultProc2UPP cb_upp = NewResultProc2Proc(dnrr_done);
-
-       if (!newgetargs(args, "s", &hostname))
-               return NULL;
-       if ( !opendnr(NULL) )
-               return NULL;
-       if ( (rv=newdnrrobject(DNR_MX)) == NULL )
-               return NULL;
-       err = MXInfo(hostname, &rv->hinfo, cb_upp, (char *)rv);
-       if ( err == cacheFault ) {
-               rv->waiting++;
-               INCREF(rv);
-       } else if ( err ) {
-               DECREF(rv);
-               PyErr_Mac(ErrorObject, err);
-               return NULL;
-       }
-       return (object *)rv;
-}
-
-/* List of methods defined in the module */
-
-static struct methodlist dnr_methods[] = {
-       {"Open",        dnr_Open,       1},
-       {"Close",       dnr_Close,      1},
-       {"StrToAddr",   dnr_StrToAddr,  1},
-       {"AddrToStr",   dnr_AddrToStr,  1},
-       {"AddrToName",  dnr_AddrToName, 1},
-       {"HInfo",       dnr_HInfo,      1},
-       {"MXInfo",      dnr_MXInfo,     1},
-       {NULL,          NULL}           /* sentinel */
-};
-
-
-/* Initialization function for the module (*must* be called initmacdnr) */
-
-void
-initmacdnr()
-{
-       object *m, *d;
-
-       /* Create the module and add the functions */
-       m = initmodule("macdnr", dnr_methods);
-
-       /* Add some symbolic constants to the module */
-       d = getmoduledict(m);
-       ErrorObject = newstringobject("macdnr.error");
-       dictinsert(d, "error", ErrorObject);
-#if 0
-/* Not needed, after all */
-#define CONST(name, value) o = newintobject(value); dictinsert(d, name, o);
-       CONST("ADDR", DNR_ADDR);
-       CONST("HINFO", DNR_HINFO);
-       CONST("MX", DNR_MX);
-#endif
-       /* Check for errors */
-       if (err_occurred())
-               fatal("can't initialize module macdnr");
-}
diff --git a/Mac/Unsupported/mactcp/mactcpmodule.c b/Mac/Unsupported/mactcp/mactcpmodule.c
deleted file mode 100644 (file)
index fc07f1e..0000000
+++ /dev/null
@@ -1,990 +0,0 @@
-/***********************************************************
-Copyright 1991, 1992, 1993, 1994 by Stichting Mathematisch Centrum,
-Amsterdam, The Netherlands.
-
-                        All Rights Reserved
-
-Permission to use, copy, modify, and distribute this software and its 
-documentation for any purpose and without fee is hereby granted, 
-provided that the above copyright notice appear in all copies and that
-both that copyright notice and this permission notice appear in 
-supporting documentation, and that the names of Stichting Mathematisch
-Centrum or CWI not be used in advertising or publicity pertaining to
-distribution of the software without specific, written prior permission.
-
-STICHTING MATHEMATISCH CENTRUM DISCLAIMS ALL WARRANTIES WITH REGARD TO
-THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
-FITNESS, IN NO EVENT SHALL STICHTING MATHEMATISCH CENTRUM BE LIABLE
-FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
-WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
-ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
-OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
-
-******************************************************************/
-
-#include "allobjects.h"
-#include "modsupport.h"                /* For getargs() etc. */
-
-#include "macglue.h"
-#include "tcpglue.h"
-
-#include <Desk.h>
-
-/* State of a tcp stream, in the connectionState field */
-#define STATE_CLOSED   0
-#define STATE_LISTEN   2
-#define STATE_ESTAB            8
-#define STATE_CWAIT            18
-
-/* Python code has an additional reason for asr call: open done */
-#define MY_OPEN_DONE   32766
-
-static object *ErrorObject;
-
-TCPIOCompletionUPP     upp_tcp_done;
-TCPNotifyUPP           upp_tcp_asr;
-#if 0
-UDPIOCompletionUPP     upp_udp_done;
-#endif
-UDPNotifyUPP           upp_udp_asr;
-
-/* ----------------------------------------------------- */
-/* Declarations for objects of type MacTCP connection status */
-
-typedef struct {
-       OB_HEAD
-       TCPStatusPB status;
-} tcpcsobject;
-
-staticforward typeobject Tcpcstype;
-
-#define is_tcpcsobject(v)              ((v)->ob_type == &Tcpcstype)
-
-/* ---------------------------------------------------------------- */
-/* Declarations for objects of type MacTCP global status */
-
-#ifdef TCP_GS
-typedef struct {
-       OB_HEAD
-       TCPParam *ptr;
-} tcpgsobject;
-
-staticforward typeobject Tcpgstype;
-
-#define is_tcpgsobject(v)              ((v)->ob_type == &Tcpgstype)
-#endif /* TCP_GS */
-
-/* ---------------------------------------------------------------- */
-/* Declarations for objects of type MacTCP TCP stream */
-
-typedef struct {
-       OB_HEAD
-       TCPiopb iop;
-       long localhost;                 /* Our IP address */
-       short localport;                /* Our port number */
-       object *asr;                    /* Optional async notification routine */
-       int asr_ec;                             /* error code parameter to asr */
-       int asr_reason;                 /* detail for some errors */
-       int async_busy;                 /* True when completion routine pending */
-       int async_err;                  /* the error for the async call */
-} tcpsobject;
-
-staticforward typeobject Tcpstype;
-
-#define is_tcpsobject(v)               ((v)->ob_type == &Tcpstype)
-
-/* ---------------------------------------------------------------- */
-/* Declarations for objects of type MacTCP UDP stream */
-
-typedef struct {
-       OB_HEAD
-       UDPiopb iop;
-       object *asr;
-       int asr_ec;                             /* error code parameter to asr */
-       ip_port port;
-} udpsobject;
-
-staticforward typeobject Udpstype;
-
-#define is_udpsobject(v)               ((v)->ob_type == &Udpstype)
-
-/* ---------------------------------------------------------------- */
-
-static tcpcsobject *
-newtcpcsobject(ptr)
-       TCPStatusPB *ptr;
-{
-       tcpcsobject *self;
-       
-       self = NEWOBJ(tcpcsobject, &Tcpcstype);
-       if (self == NULL)
-               return NULL;
-       self->status = *ptr;
-       return self;
-}
-
-static void
-tcpcs_dealloc(self)
-       tcpcsobject *self;
-{
-       DEL(self);
-}
-/* Code to access structure members by accessing attributes */
-
-#include "structmember.h"
-
-#define OFF(x) offsetof(TCPStatusPB, x)
-
-static struct memberlist tcpcs_memberlist[] = {
-       {"remoteHost",          T_ULONG,        OFF(remoteHost),                RO},
-       {"remotePort",          T_USHORT,       OFF(remotePort),                RO},
-       {"localHost",           T_UINT,         OFF(localHost),                 RO},
-       {"localPort",           T_USHORT,       OFF(localPort),                 RO},
-       {"tosFlags",            T_BYTE,         OFF(tosFlags),                  RO},
-#if 0  /* Bug in header file: cannot access precedence */
-       {"precedence"           T_BYTE,         OFF(precedence),                RO},
-#endif
-       {"connectionState", T_BYTE,     OFF(connectionState),   RO},
-       {"sendWindow",          T_USHORT,       OFF(sendWindow),                RO},
-       {"rcvWindow",           T_USHORT,       OFF(rcvWindow),                 RO},
-       {"amtUnackedData",      T_USHORT,       OFF(amtUnackedData),    RO},
-       {"amtUnreadData",       T_USHORT,       OFF(amtUnreadData),     RO},
-       {"sendUnacked",         T_UINT,         OFF(sendUnacked),               RO},
-       {"sendNext",            T_UINT,         OFF(sendNext),                  RO},
-       {"congestionWindow", T_UINT,    OFF(congestionWindow),  RO},
-       {"rcvNext",             T_UINT,         OFF(rcvNext),                   RO},
-       {"srtt",                        T_UINT,         OFF(srtt),                              RO},
-       {"lastRTT",                     T_UINT,         OFF(lastRTT),                   RO},
-       {"sendMaxSegSize",      T_UINT,         OFF(sendMaxSegSize),    RO},
-       {NULL}  /* Sentinel */
-};
-
-static object *
-tcpcs_getattr(self, name)
-       tcpcsobject *self;
-       char *name;
-{
-       return getmember((char *)&self->status, tcpcs_memberlist, name);
-}
-
-
-static typeobject Tcpcstype = {
-       OB_HEAD_INIT(&Typetype)
-       0,                                                      /*ob_size*/
-       "MacTCP connection status",     /*tp_name*/
-       sizeof(tcpcsobject),            /*tp_basicsize*/
-       0,                                                      /*tp_itemsize*/
-       /* methods */
-       (destructor)tcpcs_dealloc,      /*tp_dealloc*/
-       (printfunc)0,                           /*tp_print*/
-       (getattrfunc)tcpcs_getattr,     /*tp_getattr*/
-       (setattrfunc)0,                         /*tp_setattr*/
-       (cmpfunc)0,                                     /*tp_compare*/
-       (reprfunc)0,                            /*tp_repr*/
-       0,                                                      /*tp_as_number*/
-       0,                                                      /*tp_as_sequence*/
-       0,                                                      /*tp_as_mapping*/
-       (hashfunc)0,                            /*tp_hash*/
-};
-
-/* End of code for MacTCP connection status objects */
-/* -------------------------------------------------------- */
-
-#ifdef TCP_GS
-static tcpgsobject *
-newtcpgsobject(ptr)
-       TCPParam *ptr;
-{
-       tcpgsobject *self;
-       
-       self = NEWOBJ(tcpgsobject, &Tcpgstype);
-       if (self == NULL)
-               return NULL;
-       self->ptr = ptr;
-       return self;
-}
-
-static void
-tcpgs_dealloc(self)
-       tcpgsobject *self;
-{
-       DEL(self);
-}
-/* Code to access structure members by accessing attributes */
-#undef OFF
-#define OFF(x) offsetof(TCPParam, x)
-
-static struct memberlist tcpgs_memberlist[] = {
-       {"RtoA",                T_UINT, OFF(tcpRtoA),           RO},
-       {"RtoMin",              T_UINT, OFF(tcpRtoMin),         RO},
-       {"RtoMax",              T_UINT, OFF(tcpRtoMax),         RO},
-       {"MaxSegSize",  T_UINT, OFF(tcpMaxSegSize),     RO},
-       {"MaxConn",             T_UINT, OFF(tcpMaxConn),        RO},
-       {"MaxWindow",   T_UINT, OFF(tcpMaxWindow),      RO},
-       {NULL}  /* Sentinel */
-};
-
-static object *
-tcpgs_getattr(self, name)
-       tcpgsobject *self;
-       char *name;
-{
-       object *rv;
-       
-       return getmember((char *)self->ptr, tcpgs_memberlist, name);
-}
-
-static typeobject Tcpgstype = {
-       OB_HEAD_INIT(&Typetype)
-       0,                              /*ob_size*/
-       "MacTCP global status",                 /*tp_name*/
-       sizeof(tcpgsobject),            /*tp_basicsize*/
-       0,                              /*tp_itemsize*/
-       /* methods */
-       (destructor)tcpgs_dealloc,      /*tp_dealloc*/
-       (printfunc)0,           /*tp_print*/
-       (getattrfunc)tcpgs_getattr,     /*tp_getattr*/
-       (setattrfunc)0, /*tp_setattr*/
-       (cmpfunc)0,             /*tp_compare*/
-       (reprfunc)0,            /*tp_repr*/
-       0,                      /*tp_as_number*/
-       0,              /*tp_as_sequence*/
-       0,              /*tp_as_mapping*/
-       (hashfunc)0,            /*tp_hash*/
-};
-#endif /* TCP_GS */
-
-/* End of code for MacTCP global status objects */
-/* -------------------------------------------------------- */
-
-static int
-tcps_checkstate(self, state, state2)
-       tcpsobject *self;
-       int state, state2;
-{
-       OSErr err;
-       TCPStatusPB *pb;
-       char buf[80];
-       
-       if ( self->async_busy ) {
-               err_setstr(ErrorObject, "Operation not allowed, PassiveOpen in progress");
-               return -1;
-       }
-       if ( state < 0 && state2 < 0 )
-               return 0;
-       err = xTCPStatus(&self->iop, &pb);
-       if ( err ) {
-               PyErr_Mac(ErrorObject, err);
-               return -1;
-       }
-       if ( state == pb->connectionState ||
-                state2 == pb->connectionState )
-                return 0;
-       sprintf(buf, "Operation not allowed, connection state=%d", pb->connectionState);
-       err_setstr(ErrorObject, buf);
-       return -1;
-}
-
-static int
-tcps_asr_safe(arg)
-       void *arg;
-{
-       tcpsobject *self = (tcpsobject *)arg;
-       object *args, *rv;
-       
-       if ( self->asr == None )
-               return 0;
-       args = mkvalue("(ii)", self->asr_ec, self->asr_reason);
-       rv = call_object(self->asr, args);
-       DECREF(args);
-       if ( rv ) {
-               DECREF(rv);
-               return 0;
-       }
-       return -1;
-}
-
-static pascal void
-tcps_asr(str, ec, self, reason, icmp)
-       StreamPtr str;
-       unsigned short ec;
-       tcpsobject *self;
-       unsigned short reason;
-       struct ICMPReport icmp;
-{
-       if ( self->asr == None )
-               return;
-       self->asr_ec = ec;
-       self->asr_reason = reason;
-       Py_AddPendingCall(tcps_asr_safe, (void *)self);
-}
-
-static void
-tcps_done(pb)
-       TCPiopb *pb;
-{
-       tcpsobject *self = (tcpsobject *)pb->csParam.open.userDataPtr;
-       
-       if ( pb != &self->iop || !self->async_busy ) {
-               /* Oops... problems */
-               printf("tcps_done: unexpected call\n");
-               return;
-       }
-       self->async_busy = 0;
-       self->async_err = pb->ioResult;
-       /* Extension of mactcp semantics: also call asr on open complete */
-       if ( self->asr == None )
-               return;
-       self->asr_ec = MY_OPEN_DONE;
-       self->asr_reason = 0;
-       Py_AddPendingCall(tcps_asr_safe, (void *)self);
-}
-
-static object *
-tcps_isdone(self, args)
-       tcpsobject *self;
-       object *args;
-{
-       if (!newgetargs(args, ""))
-               return NULL;
-       return newintobject(!self->async_busy);
-}
-
-static object *
-tcps_wait(self, args)
-       tcpsobject *self;
-       object *args;
-{
-       if (!newgetargs(args, ""))
-               return NULL;
-       while ( self->async_busy ) {
-               if ( PyMac_Idle() ) {
-                       INCREF(None);
-                       return None;
-               }
-       }
-       if ( self->async_err ) {
-               PyErr_Mac(ErrorObject, self->async_err);
-               self->async_err = 0;
-               return NULL;
-       }
-       INCREF(None);
-       return None;
-}
-
-
-static object *
-tcps_PassiveOpen(self, args)
-       tcpsobject *self;
-       object *args;
-{
-       short port;
-       OSErr err;
-       
-       if (!newgetargs(args, "h", &port))
-               return NULL;
-       if ( tcps_checkstate(self, -1, -1) < 0 )
-               return NULL;
-       self->async_busy = 1;
-       self->async_err = 0;
-       err = xTCPPassiveOpen(&self->iop, port, upp_tcp_done,
-                                                (void *)self);
-       if ( err ) {
-               self->async_busy = 0;
-               PyErr_Mac(ErrorObject, err);
-               return NULL;
-       }
-       self->localhost = self->iop.csParam.open.localHost;
-       self->localport = self->iop.csParam.open.localPort;
-       INCREF(None);
-       return None;
-}
-
-static object *
-tcps_ActiveOpen(self, args)
-       tcpsobject *self;
-       object *args;
-{
-       short lport, rport;
-       long rhost;
-       OSErr err;
-       
-       if (!newgetargs(args, "hlh", &lport, &rhost, &rport))
-               return NULL;
-       if ( tcps_checkstate(self, -1, -1) < 0 )
-               return NULL;
-       err = xTCPActiveOpen(&self->iop, lport, rhost, rport, (TCPIOCompletionUPP)0);
-       if ( err ) {
-               PyErr_Mac(ErrorObject, err);
-               return NULL;
-       }       
-       self->localhost = self->iop.csParam.open.localHost;
-       self->localport = self->iop.csParam.open.localPort;
-       INCREF(None);
-       return None;
-}
-
-static object *
-tcps_Send(self, args)
-       tcpsobject *self;
-       object *args;
-{
-       char *buf;
-       int bufsize;
-       int push = 0, urgent = 0;
-       OSErr err;
-       miniwds wds;
-       
-       if (!newgetargs(args, "s#|ii", &buf, &bufsize, &push, &urgent))
-               return NULL;
-       if ( tcps_checkstate(self, STATE_ESTAB, STATE_CWAIT) < 0 )
-               return NULL;
-       wds.length = bufsize;
-       wds.ptr = buf;
-       wds.terminus = 0;
-       err = xTCPSend(&self->iop, (wdsEntry *)&wds, (Boolean)push, (Boolean)urgent,
-                                       (TCPIOCompletionUPP)0);
-       if ( err ) {
-               PyErr_Mac(ErrorObject, err);
-               return NULL;
-       }
-       INCREF(None);
-       return None;
-}
-
-static object *
-tcps_Rcv(self, args)
-       tcpsobject *self;
-       object *args;
-{
-       int timeout;
-       rdsEntry rds[2];
-       OSErr err;
-       object *rv;
-       int urgent, mark;
-       
-       if (!newgetargs(args, "i", &timeout))
-               return NULL;
-       if ( tcps_checkstate(self, -1, -1) < 0 )
-               return NULL;
-       memset((char *)&rds, 0, sizeof(rds));
-       err = xTCPNoCopyRcv(&self->iop, rds, 1, timeout, (TCPIOCompletionUPP)0);
-       if ( err ) {
-               PyErr_Mac(ErrorObject, err);
-               return NULL;
-       }
-       urgent = self->iop.csParam.receive.urgentFlag;
-       mark = self->iop.csParam.receive.markFlag;
-       rv = newsizedstringobject((char *)rds[0].ptr, rds[0].length);
-       err = xTCPBufReturn(&self->iop, rds, (TCPIOCompletionUPP)0);
-       if ( err ) {
-               /* Should not happen */printf("mactcp module: BufReturn failed?\n");
-               PyErr_Mac(ErrorObject, err);
-               DECREF(rv);
-               return NULL;
-       }
-       return mkvalue("(Oii)", rv, urgent, mark);
-}
-
-static object *
-tcps_Close(self, args)
-       tcpsobject *self;
-       object *args;
-{
-       OSErr err;
-       
-       if (!newgetargs(args, ""))
-               return NULL;
-       err = xTCPClose(&self->iop, (TCPIOCompletionUPP)0);
-       if ( err ) {
-               PyErr_Mac(ErrorObject, err);
-               return NULL;
-       }
-       INCREF(None);
-       return None;
-}
-
-static object *
-tcps_Abort(self, args)
-       tcpsobject *self;
-       object *args;
-{
-       OSErr err;
-       
-       if (!newgetargs(args, ""))
-               return NULL;
-       err = xTCPAbort(&self->iop);
-       if ( err ) {
-               PyErr_Mac(ErrorObject, err);
-               return NULL;
-       }
-       INCREF(None);
-       return None;
-}
-
-static object *
-tcps_Status(self, args)
-       tcpsobject *self;
-       object *args;
-{
-       OSErr err;
-       TCPStatusPB *pb;
-       
-       if (!newgetargs(args, ""))
-               return NULL;
-       if ( tcps_checkstate(self, -1, -1) < 0 )
-               return NULL;
-       err = xTCPStatus(&self->iop, &pb);
-       if ( err ) {
-               PyErr_Mac(ErrorObject, err);
-               return NULL;
-       }
-       return (object *)newtcpcsobject(pb);
-}
-
-static object *
-tcps_GetSockName(self, args)
-       tcpsobject *self;
-       object *args;
-{
-       /* This routine is needed so we can get at the local port even when
-       ** a PassiveOpen is in progress (when we can't do a Status call).
-       ** This is needed for socket listen(); getsockname(); accept() emulation
-       ** as used by ftp and the like.
-       */      
-       if (!newgetargs(args, ""))
-               return NULL;
-       return mkvalue("(lh)", self->localhost, self->localport);
-}
-
-static struct methodlist tcps_methods[] = {
-       {"isdone",      (method)tcps_isdone,    1},
-       {"wait",        (method)tcps_wait,              1},
-       {"PassiveOpen", (method)tcps_PassiveOpen,       1},
-       {"ActiveOpen",  (method)tcps_ActiveOpen,        1},
-       {"Send",        (method)tcps_Send,      1},
-       {"Rcv", (method)tcps_Rcv,       1},
-       {"Close",       (method)tcps_Close,     1},
-       {"Abort",       (method)tcps_Abort,     1},
-       {"Status",      (method)tcps_Status,    1},
-       {"GetSockName", (method)tcps_GetSockName, 1},
-       {NULL,          NULL}           /* sentinel */
-};
-
-/* ---------- */
-
-static object *
-tcps_getattr(self, name)
-       tcpsobject *self;
-       char *name;
-{
-       if ( strcmp(name, "asr") == 0 ) {
-               INCREF(self->asr);
-               return self->asr;
-       }
-       return findmethod(tcps_methods, (object *)self, name);
-}
-
-static int
-tcps_setattr(self, name, value)
-       tcpsobject *self;
-       char *name;
-       object *value;
-{
-       if ( strcmp(name, "asr") != 0 || value == NULL )
-               return -1;
-       self->asr = value;      /* XXXX Assuming I don't have to incref */
-       return 0;
-}
-
-static tcpsobject *
-newtcpsobject(bufsize)
-       int bufsize;
-{
-       tcpsobject *self;
-       OSErr err;
-       
-       self = NEWOBJ(tcpsobject, &Tcpstype);
-       if (self == NULL)
-               return NULL;
-       memset((char *)&self->iop, 0, sizeof(self->iop));
-       err= xTCPCreate(bufsize, upp_tcp_asr, (void *)self, &self->iop);
-       if ( err ) {
-               DEL(self);
-               PyErr_Mac(ErrorObject, err);
-               return NULL;
-       }
-       INCREF(None);
-       self->localhost = 0;
-       self->localport = 0;
-       self->asr = None;
-       self->async_busy = 0;
-       self->async_err = 0;
-       return self;
-}
-
-static void
-tcps_dealloc(self)
-       tcpsobject *self;
-{
-       if ( self->async_busy ) {
-               printf("mactcp module: error: dealloc with async busy\n");
-               return;
-       }
-       xTCPRelease(&self->iop);
-       DEL(self);
-}
-
-static typeobject Tcpstype = {
-       OB_HEAD_INIT(&Typetype)
-       0,                                                      /*ob_size*/
-       "MacTCP TCP stream",            /*tp_name*/
-       sizeof(tcpsobject),                     /*tp_basicsize*/
-       0,                                                      /*tp_itemsize*/
-       /* methods */
-       (destructor)tcps_dealloc,       /*tp_dealloc*/
-       (printfunc)0,                           /*tp_print*/
-       (getattrfunc)tcps_getattr,      /*tp_getattr*/
-       (setattrfunc)tcps_setattr,      /*tp_setattr*/
-       (cmpfunc)0,                                     /*tp_compare*/
-       (reprfunc)0,                            /*tp_repr*/
-       0,                                                      /*tp_as_number*/
-       0,                                                      /*tp_as_sequence*/
-       0,                                                      /*tp_as_mapping*/
-       (hashfunc)0,                            /*tp_hash*/
-};
-
-/* End of code for MacTCP TCP stream objects */
-/* -------------------------------------------------------- */
-
-static int
-udps_asr_safe(arg)
-       void *arg;
-{
-       udpsobject *self = (udpsobject *)arg;
-       object *args, *rv;
-       
-       if ( self->asr == None )
-               return 0;
-       args = mkvalue("(i)", self->asr_ec);
-       rv = call_object(self->asr, args);
-       DECREF(args);
-       if ( rv ) {
-               DECREF(rv);
-               return 0;
-       }
-       return -1;
-}
-
-static pascal void
-udps_asr(str, ec, self, icmp)
-       StreamPtr str;
-       unsigned short ec;
-       udpsobject *self;
-       struct ICMPReport icmp;
-{
-       if ( self->asr == None )
-               return;
-       self->asr_ec = ec;
-       Py_AddPendingCall(udps_asr_safe, (void *)self);
-}
-
-
-static object *
-udps_Read(self, args)
-       udpsobject *self;
-       object *args;
-{
-       OSErr err;
-       object *rv;
-       int timeout;
-       
-       if (!newgetargs(args, "i", &timeout))
-               return NULL;
-       err = xUDPRead(&self->iop, timeout, (UDPIOCompletionUPP)0);
-       if ( err ) {
-               PyErr_Mac(ErrorObject, err);
-               return NULL;
-       }
-       rv = newsizedstringobject((char *)self->iop.csParam.receive.rcvBuff,
-                                                               self->iop.csParam.receive.rcvBuffLen);
-       err = xUDPBfrReturn(&self->iop, self->iop.csParam.receive.rcvBuff);
-       if ( err ) {
-               PyErr_Mac(ErrorObject, err);
-               DECREF(rv);
-               return NULL;
-       }
-       return rv;
-}
-
-static object *
-udps_Write(self, args)
-       udpsobject *self;
-       object *args;
-{
-       unsigned long host;
-       unsigned short port;
-       char *buf;
-       int bufsize;
-       OSErr err;
-       miniwds wds;
-       
-       if (!newgetargs(args, "lhs#", &host, &port, &buf, &bufsize))
-               return NULL;
-       wds.length = bufsize;
-       wds.ptr = buf;
-       wds.terminus = 0;
-       err = xUDPWrite(&self->iop, host, port, &wds, (UDPIOCompletionUPP)0);
-       if ( err ) {
-               PyErr_Mac(ErrorObject, err);
-               return NULL;
-       }
-       INCREF(None);
-       return None;
-}
-static struct methodlist udps_methods[] = {
-       {"Read",        (method)udps_Read,      1},
-       {"Write",       (method)udps_Write,     1},
-       {NULL,          NULL}           /* sentinel */
-};
-
-/* ---------- */
-
-static object *
-udps_getattr(self, name)
-       udpsobject *self;
-       char *name;
-{
-       if ( strcmp(name, "asr") == 0 ) {
-               INCREF(self->asr);
-               return self->asr;
-       }
-       if ( strcmp(name, "port") == 0 ) 
-               return newintobject((int)self->port);
-       return findmethod(udps_methods, (object *)self, name);
-}
-
-static int
-udps_setattr(self, name, value)
-       udpsobject *self;
-       char *name;
-       object *value;
-{
-       if ( strcmp(name, "asr") != 0 || value == NULL )
-               return -1;
-       self->asr = value;      /* XXXX Assuming I don't have to incref */
-       return 0;
-}
-
-static udpsobject *
-newudpsobject(bufsize, port)
-       int bufsize;
-       int port;
-{
-       udpsobject *self;
-       OSErr err;
-       
-       self = NEWOBJ(udpsobject, &Udpstype);
-       if (self == NULL)
-               return NULL;
-       memset((char *)&self->iop, 0, sizeof(self->iop));
-       self->port = port;
-       err= xUDPCreate(&self->iop, bufsize, &self->port, upp_udp_asr,
-                                        (void *)self);
-       if ( err ) {
-               DEL(self);
-               PyErr_Mac(ErrorObject, err);
-               return NULL;
-       }
-       INCREF(None);
-       self->asr = None;
-       return self;
-}
-
-static void
-udps_dealloc(self)
-       udpsobject *self;
-{
-       xUDPRelease(&self->iop);
-       DEL(self);
-}
-
-static typeobject Udpstype = {
-       OB_HEAD_INIT(&Typetype)
-       0,                                                      /*ob_size*/
-       "MacTCP UDP stream",            /*tp_name*/
-       sizeof(udpsobject),                     /*tp_basicsize*/
-       0,                                                      /*tp_itemsize*/
-       /* methods */
-       (destructor)udps_dealloc,       /*tp_dealloc*/
-       (printfunc)0,                           /*tp_print*/
-       (getattrfunc)udps_getattr,      /*tp_getattr*/
-       (setattrfunc)udps_setattr,      /*tp_setattr*/
-       (cmpfunc)0,                                     /*tp_compare*/
-       (reprfunc)0,                            /*tp_repr*/
-       0,                                                      /*tp_as_number*/
-       0,                                                      /*tp_as_sequence*/
-       0,                                                      /*tp_as_mapping*/
-       (hashfunc)0,                            /*tp_hash*/
-};
-
-/* End of code for MacTCP UDP stream objects */
-/* -------------------------------------------------------- */
-
-static object *
-mactcp_TCPCreate(self, args)
-       object *self;   /* Not used */
-       object *args;
-{
-       OSErr err;
-       object *rv;
-       int bufsize;
-
-       if (!newgetargs(args, "i", &bufsize))
-               return NULL;
-       if ( (err = xOpenDriver()) != noErr ) {
-               PyErr_Mac(ErrorObject, err);
-               return NULL;
-       }
-       rv = (object *)newtcpsobject(bufsize);
-       return rv;
-}
-
-static object *
-mactcp_UDPCreate(self, args)
-       object *self;   /* Not used */
-       object *args;
-{
-       OSErr err;
-       object *rv;
-       int bufsize, port;
-
-       if (!newgetargs(args, "ii", &bufsize, &port))
-               return NULL;
-       if ( (err = xOpenDriver()) != noErr ) {
-               PyErr_Mac(ErrorObject, err);
-               return NULL;
-       }
-       rv = (object *)newudpsobject(bufsize, port);
-       return rv;
-}
-
-static object *
-mactcp_MTU(self, args)
-       object *self;   /* Not used */
-       object *args;
-{
-       OSErr err;
-       unsigned short mtu;
-
-       if (!newgetargs(args, ""))
-               return NULL;
-       if ( (err = xOpenDriver()) != noErr ) {
-               PyErr_Mac(ErrorObject, err);
-               return NULL;
-       }
-       mtu = xMaxMTU();
-       return newintobject((int)mtu);
-}
-
-static object *
-mactcp_IPAddr(self, args)
-       object *self;   /* Not used */
-       object *args;
-{
-       OSErr err;
-       unsigned long rv;
-
-       if (!newgetargs(args, ""))
-               return NULL;
-       if ( (err = xOpenDriver()) != noErr ) {
-               PyErr_Mac(ErrorObject, err);
-               return NULL;
-       }
-       rv = xIPAddr();
-       return newintobject((int)rv);
-}
-
-static object *
-mactcp_NetMask(self, args)
-       object *self;   /* Not used */
-       object *args;
-{
-       OSErr err;
-       unsigned long rv;
-
-       if (!newgetargs(args, ""))
-               return NULL;
-       if ( (err = xOpenDriver()) != noErr ) {
-               PyErr_Mac(ErrorObject, err);
-               return NULL;
-       }
-       rv = xNetMask();
-       return newintobject((int)rv);
-}
-
-#ifdef TCP_GS
-static object *
-mactcp_GlobalInfo(self, args)
-       object *self;   /* Not used */
-       object *args;
-{
-       OSErr err;
-
-       if (!newgetargs(args, ""))
-               return NULL;
-       if ( (err = xOpenDriver()) != noErr ) {
-               PyErr_Mac(ErrorObject, err);
-               return NULL;
-       }
-       /* XXXX Allocate, fill */
-       INCREF(None);
-       return None;
-}
-#endif /* TCP_GS */
-
-/* List of methods defined in the module */
-
-static struct methodlist mactcp_methods[] = {
-       {"TCPCreate",   mactcp_TCPCreate,       1},
-       {"UDPCreate",   mactcp_UDPCreate,       1},
-       {"MTU",                 mactcp_MTU,     1},
-       {"IPAddr",              mactcp_IPAddr,  1},
-       {"NetMask",             mactcp_NetMask, 1},
-#ifdef TCP_GS
-       {"GlobalInfo",  mactcp_GlobalInfo,      1},
-#endif
-       {NULL,          NULL}           /* sentinel */
-};
-
-
-/* Initialization function for the module (*must* be called initmactcp) */
-
-void
-initmactcp()
-{
-       object *m, *d;
-
-       /* Create the module and add the functions */
-       m = initmodule("mactcp", mactcp_methods);
-
-       /* Add some symbolic constants to the module */
-       d = getmoduledict(m);
-       ErrorObject = newstringobject("mactcp.error");
-       dictinsert(d, "error", ErrorObject);
-       
-       upp_tcp_done = NewTCPIOCompletionProc(tcps_done);
-       upp_tcp_asr = NewTCPNotifyProc(tcps_asr);
-#if 0
-       upp_udp_done = NewUDPIOCompletionProc(udps_done);
-#endif
-       upp_udp_asr = NewUDPNotifyProc(udps_asr);
-
-       /* XXXX Add constants here */
-       
-       /* Check for errors */
-       if (err_occurred())
-               fatal("can't initialize module mactcp");
-}
diff --git a/Mac/Unsupported/mactcp/mactcpmodules.mu.exp b/Mac/Unsupported/mactcp/mactcpmodules.mu.exp
deleted file mode 100644 (file)
index 4cf9f52..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-initmacdnr
-initmactcp
diff --git a/Mac/Unsupported/mactcp/mactcpmodules.mu.hqx b/Mac/Unsupported/mactcp/mactcpmodules.mu.hqx
deleted file mode 100644 (file)
index b784006..0000000
+++ /dev/null
@@ -1,212 +0,0 @@
-(This file must be converted with BinHex 4.0)
-
-:%'eKBh4MF'e[C(9XCA-ZEA8!68e38N0A588!N!3Dd!!!+q@Mh@0[Ef`!!!!"!!!
-!(!!!'Q3!!"U!!!!!8!!!!!3!!!"S!!)!-!!#!"`(8fpeFQ0PFpf3#!#3'3)!-!!
-#!#J*6'PLFQ&bD@9chC!'!*!C!J!!!!)!+!P-D@*bBA*TCA2GN!B!N"d#!#J!q2r
-`!*!&!G58!*!'-XB!!!!"!*5fU!#3$3)!!-c-!$,-c*Q3"!!cc-bCQ@CQ!$6-c*Q
-C-c-!0Fc-QCN!!!!fc-aQC[rr!$I-c'CQc-`!1-c-CQB!!`!"3!F!N!3-5@jdCA*
-QB@0P6'PL!*!6V%qP3!'"Fh4eBUa2T8!!!J!$!*!%$QeKBf4ZFQe[C(9XC5jM!*!
-4VA-b@3'"9%9B9+ec-PN!!`!$!*!%$QeKBh4MF'e[C(9XC5jM!*!4VA-b@J'"9%9
-B9+ec-PS!"!!$!*!%#A4MF'GXG@8ZB`#3&Uec-PS"J94&@&5YFc*D!!8!!`#3"!a
-KE'a[BQTPBh4c,QJ!N"1Z#C!!13'!9%9B9+i*N!!j!!B!!`#3"!KMEfjQD@FZD!#
-3&kec-NF"J&4&@&5YFc*(!!G!!`#3"!GcG'4TEbjS!*!BV6qZp!#!9%9B9+drV[3
-!#%!$!*!%"hPfB@ac,QJ!N"LYXp4*!)"849K8VE2853!*3!-!N!3)Fh4bD@jR,QJ
-!N"HY2kld!)"849K8V6qZp!!+3!-!N!3(CA*bEQmZD!#3'+drV[)!J&4&@&5Y2kl
-b!!X!!`#3"!PYHA"bEh4[,QJ!N"DYFc)H!B"849K8VA-b(J!-!!-!N!3*FQ9ZB@e
-P-LjS!*!@VJQ3!$N"J&4&@&5Z#C!!13!0!!-!N!3)Ef*UC@0d,QJ!N"HZ#C!!13'
-!9%9B9+i*N!!j!!i!!`#3"!P[BQTTEA"X,QJ!N"DYFc)H!B"849K8VA-b(J!2!!-
-!N!31B@0MCA0cEf*UC@0d,QJ!N"'YFc)C!B"849K8VA-b'3!3!!-!N!3,D@jdEf*
-UC@0d,QJ!N"5YFc)F!B"849K8VA-b(!!4!!-!N!3-E'pZCfpLDQ9MG#jS!*!6VA-
-b(3'!9%9B9+ec-Kd!%J!$!*!%$@CXEf&dEf*UC@0d,QJ!N"+YFc)E!B"849K8VA-
-b'`!6!!-!N!30FQ&ZCf9[BQTPBh3ZD!#3%Uec-Km"J&4&@&5YFc)I!"3!!`#3"!j
-cG(*TEQG[BQTPBh3ZD!#3%Dec-Km"J&4&@&5YFc)I!"8!!`#3"!edGA"XC@pLDQ9
-MG#jS!*!5VA-b)!'!9%9B9+ec-L!!&J!$!*!%$'aTFh4[BQTPBh3ZD!#3%kec-Kd
-"J&4&@&5YFc)G!"F!!`#3"!pYBA"`D@jREf*UC@0d,QJ!N"#YFc)G!B"849K8VA-
-b(3!B!!-!N!31E@9dD'pNEf*UC@0d,QJ!N"'YFc)G!B"849K8VA-b(3!C!!-!N!3
-1E@pNG@aPEf*UC@0d,QJ!N"'YFc)G!B"849K8VA-b(3!D!!-!N!3-CR9ZBfpLDQ9
-MG#jS!*!6VA-b(!'!9%9B9+ec-K`!'`!$!*!%$@0XBA0cEf*UC@0d,QJ!N"+YFc)
-D!B"849K8VA-b'J!F!!-!N!3-CQPXC@pLDQ9MG#jS!*!6VJQ3!$N"J&4&@&5Z#C!
-!13!G!!-!N!3+EAPYB@aXEf-ZD!#3&Dec-Ki"J&4&@&5YFc)H!"j!!`#3"!KcG'4
-XD@)ZD!#3&kdrV[3!J&4&@&5Y2kld!"m!!`#3"!aYEf4cGA"`Eh*d,QJ!N"1YFc)
-G!B"849K8VA-b(3!J3!-!N!3)Fh4NBA*R,QJ!N"HY2kqp!)"849K8V6q[[3!K3!-
-!N!3*Ah0dC'&bCbjS!*!@UX`2e`#!9%9B9+V-$pF!)J!$!*!%"f0PGQ&X,QJ!N"L
-YFc)D!B"849K8VA-b'J!M!!-!N!3+B@*cG(*KBh3ZD!#3&Dec-KN"J&4&@&5YFc)
-C!#3!!`#3"!PYB@0RE(9P,QJ!N"DZ*8AF!B"849K8VL9&h!!P3!B!N!3(9(P`CA-
-ZD!#3'+fY'UN!J&4&@&5YV4UT!#C!"J#3""0$EfjNDA4TEfjKE%eKBh*[FbjS!*!
--V4rb3!#!9%9B9+dImN!!*d!'!*!%"dCTE'9c,QJ!N"LX)B$!!)"849K8V#'!`!!
-S3!B!N!3,6@PiC@40Ef4P,QJ!N"5Y8ec!!)"849K8V90F`!!T3!B!N!3*6e09G'P
-XFbjS!*!@VE291`#!9%9B9+fce6X!+N!'!*!%#%ePE@pbH5jS!*!AV#'!`!#!9%9
-B9+`KJ-!!+d!'!*!%#%9fC@jdFbjS!*!AV4rb3!#!9%9B9+dImN!!,%!'!*!%#e&
-eD@0VC(*KGbjS!*!8V')D3!#!9%9B9+aL'N!!,8!'!*!%$e&eD@0VC(*KGe4PH(3
-ZD!#3%+`KJ-!!J&4&@&5X)B$!!#j!"J#3"!j6G'&ZC'&bC%CTE'8ZD!#3%D`KJ-!
-!J&4&@&5X)B$!!#p!"J#3"!P%D@&XEfGc,QJ!N"DX)B$!!)"849K8V#'!`!!`3!B
-!N!3)4A*bEh*c,QJ!N"HY(r*!!)"849K8V4rb3!!a3!B!N!3(6@9ZGA-ZD!#3'+`
-KJ-!!J&4&@&5X)B$!!$*!"J#3"!T$EfjdFQpXFbjS!*!9V#'!`!#!9%9B9+`KJ-!
-!-d!'!*!%#9GTEQ4[Gh-ZD!#3&UaL'N!!J&4&@&5XBKT!!$4!"J#3"!T8CAKd4@4
-TG#jS!*!9V#'!`!#!9%9B9+`KJ-!!08!&!*!%%%&NC(*PFh0BE'&dD@pZ,QJ!N!q
-VZre!!)"849K8Ul[p3!!f3!B!N!3)6@&M9%03,QJ!N"HYQ6a!!)"849K8VCNm3!!
-h3!B!N!3,3A"`E'98B@aV,QJ!N"5X)B$!!)"849K8V#'!`!!i3!B!N!3'4'9cDbj
-S!*!CV#'!`!#!9%9B9+`KJ-!!18!'!*!%#84PGQPMCA-ZD!#3&UdImN!!J&4&@&5
-Y(r*!!$S!!`#3"!jcG(*eBh4YC@eLCA)ZD!#3%Dec-Km"J&4&@&5YFc)I!$X!!`#
-3"!PdBh"RE(9P,QJ!N"DYFc*E!B"849K8VA-b@`!m3!8!N!366@&M9%033fpYE@p
-Z9(P`CA-ZD!#3$+X%`dB!J&4&@&5V"-0'!$e!"3#3"!e(CA40H8P33@4NFLjS!*!
-5U`6$83#!9%9B9+X%`e%!2N!&!*!%"e4$8&"#,QJ!N"LV"--T!)"849K8U`6$+3!
-r3!8!N!3(98438%)ZD!#3'+X%`b!!J&4&@&5V"--J!%!!"!#3"!PbG@jdD@eP,Q-
-!N"DXVa"e!B"849K8V+m3G3""!!-!N!3@EAGPFQYcAh"XG@GTEPpMEfjQD@FZD!#
-3#Dec-QX"J&4&@&5YFc*V!%)!!`#3"!pMEfe`E'9iEf*UC@0d,QJ!N"#Z#C!!13'
-!9%9B9+i*N!!j!%-!!`#3"!PMEf*UC@0d,QJ!N"DYFc)D!B"849K8VA-b'J"%!!)
-!N!36E@&MG'0`E@pNG@aPFbke,Q9iF!#3$+cq!28"J&4&@&5XrJ$e!%8!!`#3"!T
-`H@9bFQpbFbjS!*!9VA-b(`'!9%9B9+ec-Km!4J!$!*!%#P"jG'K[EN0[FQ8!N"@
-Z*RYp!B"cD'aLVLClI3"(!!-!N!3*F(PNC@*eCbjS!*!@VJQ3!$N"J&4&@&5Z#C!
-!13")!!-!N!3,G(*KBf9LB@0V,QJ!N"5YFc)J!B"849K8VA-b)!"*!!-!N!3,F(P
-dD'pZFR9Z,QJ!N"5Z#C!!13'!9%9B9+i*N!!j!%S!!`#3"!YcHA0YEf4eE'8ZD!#
-3&+i*N!!j!B"849K8VJQ3!$N!5`!$!*!%#fPZG(*MD'9MDbjS!*!8VKP0'!'!9%9
-B9+iC64J!6!!$!*!%#'PYF'pbG#jS!*!AVJQ3!$N"J&4&@&5Z#C!!13"0!!-!N!3
-0BQadD@jYEf4eE'8ZD!#3%Ui*N!!j!B"849K8VJQ3!$N!6N!'!*!%#%YPFQjPE#j
-S!*!AV4rb3!#!9%9B9+dImN!!6d!'!*!%%deKBfKTEQ9&H'0PF(4TEfjc,QJ!N!b
-X)B$!!)"849K8V#'!`!"33!B!N!316Q&YC9*PCfPcG(*j,QJ!N"'Y(r*!!)"849K
-8V4rb3!"43!B!N!323fpNC8CbB@GYC@jdFbjS!*!3V#'!`!#!9%9B9+`KJ-!!!!K
--!!F#G!!!!%B!!3#3#!)!N!81E@&MC'jbE@pNG@aP,Q-!N"S#!*!(0DZlr8!!!3!
-hV#'!`!!"!&'X)B$!!!%!*UdImN!!!3!bV#'!`!!"!$LX)B$!!!%!1DdImN!!!3!
-[V#'!`!!"!!UY2klb!!%!-+dImN!!!3!VV4rb3!!"!#HX)B$!!!%!6UdImN!!!3"
-2V#'!`!!"!$DYQ6a!!!%!+U`KJ-!!!3!aV#'!`!!"!#LY8ec!!!%!8+dImN!!!3!
-TVE291`!"!#bXBKT!!!%!,D`KJ-!!!3!ZV#'!`!!"!##Y2kqp!!%!"kdrV[3!!3!
-HV6qZp!!"!!QY2kld!!%!0+`KJ-!!!3!PVDdDU3!"!$1XBKT!!!%!#+fce%N!!3!
-KUX`2e`!"!#1YFc)C!!%!$kec-KN!!3!&VJQ3!$N!!3"0VJQ3!$N!!3!LVA-b'J!
-"!"ZYFc)D!!%!3kec-KS!!3"#VJQ3!$N!!3!'VA-b4`!"!"bZ#C!!13!"!"+YFc)
-E!!%!'Uec-K`!!3"-VJQ3!$N!!3!3VA-b(!!"!%ZZ'8dB!!%!&Uec-Kd!!3!4VA-
-b(3!"!#5Z*8AF!!%!&kec-Kd!!3!BVA-b(3!"!"qYFc)G!!%!'Dec-Kd!!3""VA-
-bD`!"!"fYFc)H!!%!#kec-Ki!!3!0VJQ3!$N!!3!1VA-b(J!"!%HZ#C!!13!"!%@
-YFc)I!!%!5Di*N!!j!!%!%kec-Km!!3!-VJQ3!$N!!3!8VA-b(`!"!$UYFc)I!!%
-!5Ui*N!!j!!%!5+ec-L!!!3!9VA-b)!!"!TB#Q!+D!T`!!!",!!%!N!J#!*!&$Qe
-KBh4MF'e[C(9XC5jM!*!D!`#3"c@VZre!!!%!0k`KJ-!!!3"4V#'!`!!"!#DY(r*
-!!!%!-U`KJ-!!!3!iV#'!`!!"!$QY(r*!!!%!,k`KJ-!!!3!+V6qZmJ!"!$#Y(r*
-!!!%!+kdImN!!!3!RV#'!`!!"!$fV"-04!!%!6UdImN!!!3"2V#'!`!!"!$DYQ6a
-!!!%!2+X%`dB!!3!UV#'!`!!"!$'X)B$!!!%!++e6A-!!!3"3V4rb3!!"!#QYXp8
-l!!%!,+aL'N!!!3!YV#'!`!!"!#kX)B$!!!%!)+drVld!!3!(V6qZp!!"!"kY2kl
-d!!%!#DdrV[3!!3!qU`6$+3!"!$5X)B$!!!%!*DfY'UN!!3!rU`6$)!!"!$1XBKT
-!!!%!#+fce%N!!3!KUX`2e`!"!#1YFc)C!!%!$kec-KN!!3!&VJQ3!$N!!3"0VJQ
-3!$N!!3!LVA-b'J!"!"ZYFc)D!!%!3kec-KS!!3"#VJQ3!$N!!3!'VA-b4`!"!"b
-Z#C!!13!"!"+YFc)E!!%!'Uec-K`!!3"-VJQ3!$N!!3!3VA-b(!!"!%ZZ'8dB!!%
-!&Uec-Kd!!3!4VA-b(3!"!#5Z*8AF!!%!&kec-Kd!!3!BVA-b(3!"!"qYFc)G!!%
-!'Dec-Kd!!3""VA-bD`!"!"fYFc)H!!%!#kec-Ki!!3!0VJQ3!$N!!3!1VA-b(J!
-"!%HZ#C!!13!"!%@YFc)I!!%!5Di*N!!j!!%!%kec-Km!!3!-VJQ3!$N!!3!8VA-
-b(`!"!$UYFc)I!!%!5Ui*N!!j!!%!1kec-PX!!3")VA-b)!!"!"@YFc)J!!%",J%
-`!6)"0!!!!"i!!3#3#!)!N!8*G'0`CfaeC5jM!*!I"!#3"c@VZre!!!%!0k`KJ-!
-!!3"4V#'!`!!"!#DY(r*!!!%!-U`KJ-!!!3!jV4rb3!!"!#qX)B$!!!%!-+dImN!
-!!3!VV4rb3!!"!#HX)B$!!!%!2DX%`e%!!3"1V4rb3!!"!%qX)B$!!!%!0UfC2%!
-!!3!mU`6$4J!"!#UX)B$!!!%!-D`KJ-!!!3!SV90F`!!"!&#Y(r*!!!%!+Dfce6X
-!!3!XV')D3!!"!#fX)B$!!!%!2UX%`bN!!3!dV#'!`!!"!#@YV4UT!!%!2kX%`b!
-!!3!cV')D3!!"!%'YFc*V!!%!1kec-PX!!3%1!4!"%J%8!!!!!3!"!*!)!J%!N!3
-6E@&MG'0`E@pNG@aPFbke,Q9iF!#3&83!N!G'!%Mp33!"!$HX)3&4FD!!N!BLN!!
-"8C6!J-)!!3!jV#'!`J!"!8I!8)$#!!%!-+`KJ-)!!3!VV#'!`J!"!#HX)B$#!!%
-!2DX%`e%!!3!fV#'!`3!"!$bV"-0'!!%!+U`KJ-)!!3!aV#'!`J!"!#LX)B$#!!%
-!+D`KJ-)!!3!XV#'!`J!"!#fX)B$#!!%!2UX%`bN!!3!dV#'!`J!"!#@XDI6b!!%
-!2kX%`b!!!3!cV#'!`J!"!%'Xrbq[!!%!1kY#c6)!!3"'!%J!5J"-!qF!!3!#!*!
-)!J%!N!3+8(PdD'pZ3fpbC3#3(NB!N!G'!%J!5J"-!qF!!3!#!*!)!J#3"3a*ER4
-PFQCKBf9-D@)!N"`"!*!(6J"3!&)!9!!!!!)!!J#3#!)"!*!%#A*eER4TE@8ZB`#
-3(d!!N!G"VA-bD`!"!*!)!YkYQ!!!!4i!!"%@8%CXF`#3"!,HVY3!!")d!!!)6&"
--Fh3!N!S"(!!!!!*38f9Rrrm!N!NF!!!"!&"6C@F!!3!!GM)!!!%!!!!T-`!!+$-
-!!!+b!!3!+!!+!F)#J!!S!!S"`J+!!*!1%'eKBh4MF'e[C(9XCA-ZEA9X!J!!!%e
-08&*$9dP&!*!%68e38N0A588!N"LZUS!V!!!Dd!!!+q9S!*!B#J!#!*!,"!!##!#
-3"-3!"0!!N%&TEQPdH(J!N!X#!!B!!!!+!!3!N!X`!!B"!2rr!*!)rrm"N!8!N!3
-H!3%!N!LCQ3!!2rmrrcrr!3#3"%S!!3!*"Qe[EQ&ME`#3(!3!+!!+!F)#J!!S!!S
-"`J+!!*!3!3#3"!)!N!88!!%!@!#Z!-m"d3#3"%S6!!!G0`!!!"S!!`!!QCN!N!4
-rr`#3"(rr!*!%Irm!N!3+-!!%!!!!!`!(!3J!!3%kA*%!jNMN!!j[K'&cDb!!!!!
-F!*!*[XUQ!,l,P!#qbk`!N!@r%e`!N!@r%e`!%#5!!*!Sc*!)!1C!d!$Q3'$GN!K
-rrhrr!1C!K!#3"%#(!*!%"B3!!+%LrJ)!N!IQ30!!!cNb!*!6!3#qbf)![XY#!,m
-(b!!!A*%!jNMN!!!!!f&cDb!!!!!F!*!*[XUQ!,l,P!#qbk`!N!@r%e`![iPF!,m
-6'%e33d-"#!!"!MSkN3$Q513!$Qq%BA0V)!!!!"`!N!QqbUB![XZ8!,l,V!#3"Em
-6A!#3"Em6A!!3*)!!N#M-N!J!jN$3!1C!B0f3#(rrIrm!jN#%!*!%3)F!N!3&K!!
-!S5,q!J#3"qC!d!!$16)!N"-"!,l,BJ#qbd)![`I)!!"FN3$Q513!!!!$BA0V)!!
-!!"`!N!QqbUB![XZ8!,l,V!#3"Em6A!#rL9`![a-B69"$3`'i!!)h1NeKBdp6)&0
-eF("[FR3k6'PLFQ&bD@9c1P*eER4TE@8k8R9ZG'PYC5"38%-k+&0[GA*MCA-T1J!
-!!"2[E!#3)!'MHpJ!N!A6%83!N!3"Sh[B!!)!!!(6ha!"V8(S!*!KjJ"c!2J!b!'
-Y4r`!"!!i!G2J5!!!%83"dpp`,k$Gh3!2k#!!!2r"!$2#d!!6lf`!D`%r!'X"2`(
-FF`J"h(48!GaBV!(FFd3"h&,X!GaJZ!!!!2m"I`#qrmIMIJ(6h`!"d`%!!!%B1MS
-k3eG(990*)$%Z0Lid1QPZBfaeC'8k-!!6qC3!1D3)!!!dY!#3#Irrr`()p6J"b24
-33J!#"2rGB'`"X@6*!FMdB!!#9E!"XAP3!D)Xd!()p(!!!P@`!"'lj!!e,`!!4!)
-!!!%!!3!"!!%!!!!$!FMdX!#3"2rDi)3!!!!"!FMe!!!5qR`"Q)q`!E&Nc!()p-!
-!%[Tm!"(+&!()pG)"b26!!!*9X2r8FF!!!+%L!FMdm!!$-8Mrf`1)!*!%!FMf%!!
-6fI`!%pR`!FMf@J()p2!!%qCSrpe#1'Mrpd!"b28!!",h+!!4U&!"X@5S!2rrr`!
-90c3"d3%!!!)N1NeKBdp6)&0eF("[FR3k5'9KC'9bFcT"6P0*)%KPB@4PFR-k!*!
-LjN33!*!(!3!0HPJN!!J%!1C$N!!!%#33!1C&6!#3'4!J[!#3"HC&J!#3"3ekT!#
-qk#"!RI&3!"!N%!#3"HC&KJ#3"4!NJ!!!S"`!N"AQ4*!!!*!*$ATB*)!)"!$Q4"!
-!%#33!*!H!3!!!L3k6@&M6e-J8h9`F'pbG$T)C@&NCA*c1P"33b"6F'9MD@CTBcS
-!N#,Q4"!!N!F"!!ek@#3!#!3!jN13!!!3*"!!jN9-!*!C%##m!*!&jN@!!*!&$AU
-N!,lS)%#Gm9!!%#33!*!&jN@'!*!&%#5!!!#J(!#3&HC%N!!!N!N0HPJNJ!J%!1C
-%%!!3*"!!N"i"!!!#2$T0B@028b"6GA"`Eh*d1NKPB@4PFR-k8hPcG'9Y)%9iG(*
-KFb")C@&NCA*c1NeKBe4$8#")C@&NCA*c1J#3#ZC%%!#3"`%!$ATB*!!)"!$Q3j!
-!!"!N%!$Q48`!N"N3),`!N!AQ4B!!N!80HU3![ZJJ3*ha8!!3*"!!N!AQ4BB!N!8
-3*)!!!+!F!*!9jN53!!#3#3ek@#5!#!3!jN33!"!N%!#3(J%!!!)T1NeKBdp6)&0
-eF("[FR3k5'9KC'9bFcT9EQPfCA*cB@`J5'9KC'9bFcS!N"hQ4"!!N!F"!!ek@#3
-!#!3!jN13!!!3*"!!jN9-!*!C%##m!*!&jN@!!*!&$AUN!,lS)%#Gm9!!%#33!*!
-&jN@'!*!&%#5!!!#J(!#3&HC%N!!!N!N0HPJNJ!J%!1C%%!!3*"!!N"i"!!!#*MT
-0B@028b"6GA"`Eh*d1NaTBR*KFQPPFcT0B@028b"$EfeYEfik!*!JjN33!*!(!3!
-0HPJN!!J%!1C$N!!!%#33!1C&6!#3'4!J[!#3"HC&J!#3"3ekT!#qk#"!RI&3!"!
-N%!#3"HC&KJ#3"4!NJ!!!S"`!N"AQ4*!!!*!*$ATB*)!)"!$Q4"!!%#33!*!H!3!
-!!Ldk6@&M6e-J8h9`F'pbG$T-D@*bBA*TCA-k8R9ZG'PYC6T5G@jdD@eP)&"33cS
-!N"RQ4"!!N!F"!!ek@#3!#!3!jN13!!!3*"!!jN9-!*!C%##m!*!&jN@!!*!&$AU
-N!,lS)%#Gm9!!%#33!*!&jN@'!*!&%#5!!!#J(!#3&HC%N!!!N!N0HPJNJ!J%!1C
-%%!!3*"!!N#!8P!!'%%eKBdp6)&"33b"-D@jVCA)!N"!%%%eKBdp6)&"33b"-D@j
-VCA)!N$!D39"36!#33'!!!!""F("X!*"!B!!!!%e06%)!N#!16'PL)%PYF'pbG#"
-38%-!N"908%a'!*!J$NaTBL"*EA"[FR3J8&"$!*!969G$4!#33'!!!!"58e*$!*"
-!B!!!!&4&@&3$,Q*SBmUV8!!$--J!&+h3!!!"IJ(+Ue!!&'A!!!!#eJa#B@aXEfp
-Z)%KPE(!!N!8G"!(+Ui!!&'A!!BH@e!#3"&4&@&3#,Q-!N"d-69FJ3bp$+bXJ8&"
-$!*!A9%9B9!3ZBbXV!*!E$%eA)%-[3bXV)&"33`#3&e4&@&3$,Q0M!*!F$%eA)%-
-[3bXV)&"33`#3&e4&@&3$,Q0`!*!F$%eA)%-[3bXV)&"33`#3&e4&@&3%,Q0`F!#
-3'`a09b"$,d-V+b"38%-!N"G849K8"#jPH(!!N$p849K8!LjS!*!G$%eA)%-[3bX
-V)&"33`#3%a!!!!"849K8!Lj`!*!G$8eA)&"KFf0KE#"38%-!N"C849K8"#j`BA-
-!N"X069FJ8'&cBf&X)&"33`#3&P4&@&3%,R"MD!#3'`a09b"$,d-V+b"38%-!N"1
-!!!!!9%9B9!BZF'0S+bX!N"N-69FJ3bp$+bXJ8&"$!*!6J!!!!&4&@&3#,R)!N"d
-'69FJ8Q9k!*!G9%9B9!)ZFfKMbUY3!!-`b!!8VG!!!!&q!FUV8!!8CF!!!!,@"P"
-33d&cE@iJ5'9X!*!'(33"bUZ!!"4P`!'(PY3!N!4B3dp'!*!J%&K$6dC')%PYF'p
-bG#"38%-!N"0NEf0e!*"!B!!!!(*cFQ-!N%"J!!!!FfKXBJ#3)!j348BJ5@e`Eh*
-d)&"33`#3&A0dG@)!N#!18%9')%PYF'pbG#"38%-!N"N%,Q4[B`#31e!!!!!36@&
-M6e-J0MK,)%aTEQYPFJ#3-"T"8&"-!*"!B!!!!%&`F'`!N%"J!!!!68e-3J#3)!j
--D@)J5@e`Eh*d)$Bi5`#3&8e36%B!N#!16'PL)%PYF'pbG#!f1%X!N"909d0%!*"
-!B!!!!%p#5L!!N#!169"A)%PYF'pbG#!f1%X!N"958e*$!*"!B!!!!&4&@&3$,Q*
-SBmUV8!!$--J!&+h3!!!"IJ(+Ue!!&'A!!!!#eJa#B@aXEfpZ)%KPE(!!N!8G"!(
-+Ui!!&'A!!BH@e!#3"&4&@&3#,Q-!N"d-69FJ3bp$+bXJ0MK,!*!A9%9B9!3ZBbX
-V!*!E$%eA)%-[3bXV)$Bi5`#3&e4&@&3$,Q0M!*!F$%eA)%-[3bXV)$Bi5`#3&e4
-&@&3$,Q0`!*!F$%eA)%-[3bXV)$Bi5`#3&e4&@&3%,Q0`F!#3'`a09b"$,d-V+b!
-f1%X!N"G849K8"#jPH($+Ue!!!c$)!"5Yd!!!!Ai"bUY3!"4P`!!!!YB!abTdP%L
-VJ!(+VN3!%j98!!!G"!(+Ui!!&'A!!BHL2!#3"&4&@&3#,QJ!N"d-69FJ3bp$+bX
-J0MK,!*!6%!!!!&4&@&3#,R!!N"d069FJ8'&cBf&X)$Bi5`#3&P4&@&3%,R"KF`#
-3'`e09b"3BA0MB@`J0MK,!*!@9%9B9!3ZF'0S!*!E$%eA)%-[3bXV)$Bi5`#3%i!
-!!!"849K8"Lj`BfJV+`#3'3a09b"$,d-V+b!f1%X!N"1!!!!!9%9B9!)ZFJ#3(3C
-09b"5CAS!N"e849K8"#jcC@I+Ue!!!c$)!"5Yd!!!!Ai"bUY3!"4P`!!!!YB!abT
-dP%LVJ!(+VN3!%j98!!!G"!(+Ui!!&'A!!BHL2!#3"'4[Bh8!N%"J!!!!FR0bB`#
-33'!!!!"cD'aL!*!J$P"&4L"*EA"[FR3J0MKV!*!9Fh4eBJ#3)!j348BJ5@e`Eh*
-d)$BiD`#3'33ZC'pM!*!l8!!!!""AD@ic-L"i1$BJ6'PZDf9b!*!`#94&@&3#,Q-
-!N"d-69FJ3bp$+bXJH$Jf!*!A9%9B9!3ZBbXV!*!E$%eA)%-[3bXV)(Ji0J#3&e4
-&@&3$,Q0`!*!F$%eA)%-[3bXV)(Ji0J#3&e4&@&3%,Q0`F!#3'`a09b"$,d-V+b"
-i1$B!N"G849K8"#j`BfJ!N"X-69FJ3bp$+bXJH$Jf!*!6J!!!!&4&@&3',R"MD#X
-V!*!C$%eA)%-[3bXV)(Ji0J#3%i!!!!"849K8!bjbB`#3(!K09b"AD@j53`#3(`3
-ZE'PL!*!E$NaTBL"*EA"[FR3JH$Jf!*!C"#j[BQS!N"X16f*U)%PYF'pbG#"i1$B
-!N"8*68-J6'PZDf9b!*!h#%e03dJ!N%4849K8!LjM!*!G#%e$)%-[3bXV!*!E9%9
-B9!3ZBfac!*!E%8e$)%0XBA0c)%0[EA"TE'9b!*!1J!!!!&4&@&3%,Q4PCJ#32e4
-&@&3%,Q4[B`#31a!!!!"849K8!LjS!*!p%!!!!&4&@&3%,R"MD!#3'`K03b"$,d-
-V+`#3&i!!!!"849K8!bjdF`#33`B!!3%!N!B8!!3"!*!(!3#3$!S!!3%!!!%"!!%
-!N!31!!F"!!%"!!%"!!!!!3#3"-B!"`#33Mq3"%&38%`!!!'!@)!!N%)rN!3!N!P
-9!C!!!3)#H`#3"3)!!!!8!*!%!B!!N"%i!!N!N!F@EAGPFQYcAh"XG@GTEPpMEfj
-QD@FZD!#3$!%!N!i-!!-!N!`"fJ!%!*!3!3#3r`#34&pIFh4KFR3!N(`"!!!!0J!
--!*!(!3#3*3%!N!8"!!!!$3!#!*!1&!!$!J!"!3!!!3%$!3#3#`S!!3%"!!!"!3!
-"!!!!a!!'`J#3``%8!!8!!3!!-XJ!!$,)!!!bb!#3"!eYB@0dBh"YEf4eE'9c!*$
-eZJ!%!!%4E@&MG'0`E@pNG@aPFbjcE')!N!j3HA4SFfKXBJ#3F3%rN!3!N!GA!+i
-!kJ(4!3!!!!Y@!!"FN3!!!#i!!J!!!!)!!J#3+!)-!!)!8!!"!!%!!3!"!*$r!"3
-R3dp%45FJ*d4"9%%R)#G35808*`#3lJS!"!#3#J%!!!!T-`!!+$-!!!+b!YkX@#H
-U!!!!(!&k!!*`FQ9Q!"J!'R"@CA)!!!&'8e45)`!!!9)%X!!3!!!!"J#3"$U5!"d
-!!!!8!*!%FFi!*!!!!%J!N!4E@J!T!!!!R!#3"(Pd!$J!!!#d!*!%$A-!5!!!!0)
-!N!32PJ"9!!!,"J#3"&e+!&`!!"qH!*!%*k8!D3!!(kJ!N!3-a!"e!!!I`!#3"#H
-U!)B!!"r1!*!%3hX!N3!!(q!!N!4&S`#G!!!JUJ#3"!hN!+`!!#$Q!*!%*ZJ!Z`!
-!)2B!N!4kF3$#!!!Le!#3"'@X!0)!!#-1!*!%(YF!iJ!!)am!N!30V3$Z!!!M0`#
-3"$#-!2m!!#0&!*!%@MF"#J!!*!d!N!3,L3%5!!!P*3#3"(I+!4i!!#AM!*!%F-F
-"+`!!*K8!N!A)rrm!!#JP!*!3'i$rr`!!!*B!N!328(*[DQ9MG#"@CA*cD@pZ$&"
-bEfTPBh3J6@PcB`C&C'PdEh)%4QpZG!j3FQpUC@0d)%9iG(*KF`p$GA0dEfdJ5f9
-jGfpbC(--3@0MCA0c)&"KG'Kc"P4KFQGPG!a#G@PXC#"&H(4bBA-,0MK,)%0[C'9
-(C@i30MK,)%4TFf&cFf9YBQaPFJSf1%XJ6'PZDf9b#cBi5b"3FQpUC@0d$N-[3bX
-V)%0[EA"TE'9b$N-[3bXV)&GKFQjTEQGc"N0'66Bi5`p3BA0MB@`J3fpYF'PXCA)
-28'&cBf&X)&GKFQjTEQGc#e"33b"$Ef4P4f9Z%&"33b"%DA0KFh0PE@*XCA)+8&"
-$)%aTEQYPFJG38%-J8%9'#e"33b"3FQpUC@0d$&"33d&cE5"3B@jPE!a5CASJ3fp
-YF'PXCA+qM`:
diff --git a/Mac/Unsupported/mactcp/socket.py b/Mac/Unsupported/mactcp/socket.py
deleted file mode 100644 (file)
index e6600b1..0000000
+++ /dev/null
@@ -1,304 +0,0 @@
-"""socket.py for mac - Emulate socket module with mactcp and macdnr
-
-Currently only implements TCP sockets (AF_INET, SOCK_STREAM).
-Esoteric things like socket options don't work,
-but getpeername() and makefile() do work; everything used by ftplib works!
-"""
-
-# Jack Jansen, CWI, November 1994 (initial version)
-# Guido van Rossum, CWI, March 1995 (bug fixes and lay-out)
-
-
-import mactcp
-import MACTCPconst
-import macdnr
-
-
-# Exported constants
-
-_myerror = 'socket_wrapper.error'
-error = (mactcp.error, macdnr.error, _myerror)
-
-SOCK_DGRAM = 1
-SOCK_STREAM = 2
-
-AF_INET = 1
-
-
-# Internal constants
-
-_BUFSIZE = 15*1024                     # Size of TCP/UDP input buffer
-
-_myaddress = None
-_myname = None
-_myaddrstr = None
-
-
-def _myipaddress():
-       global _myaddress
-       if _myaddress == None:
-               _myaddress = mactcp.IPAddr()
-       return _myaddress
-
-
-def _ipaddress(str):
-       if type(str) == type(1):
-               return str                      # Already numeric
-       ptr = macdnr.StrToAddr(str)
-       ptr.wait()
-       return ptr.ip0
-
-
-def gethostbyname(str):
-       id = _ipaddress(str)
-       return macdnr.AddrToStr(id)
-
-
-def gethostbyaddr(str):
-       id = _ipaddress(str)
-       ptr = macdnr.AddrToName(id)
-       ptr.wait()
-       name = ptr.cname
-       if name[-1:] == '.': name = name[:-1]
-       names, addresses = [], [str]
-       return name, names, addresses
-
-def gethostname():
-       global _myname
-       if _myname == None:
-               id = _myipaddress()
-               ptr = macdnr.AddrToName(id)
-               ptr.wait()
-               _myname = ptr.cname
-       return _myname
-
-
-def _gethostaddress():
-       global _myaddrstr
-       if _myaddrstr == None:
-               id = _myipaddress()
-               _myaddrstr = macdnr.AddrToStr(id)
-       return _myaddrstr
-
-
-def socket(family, type, *which):
-       if family <> AF_INET:
-               raise _myerror, 'Protocol family %d not supported' % type
-       if type == SOCK_DGRAM:
-               return _udpsocket()
-       elif type == SOCK_STREAM:
-               return _tcpsocket()
-       raise _myerror, 'Protocol type %d not supported' % type
-
-
-def fromfd(*args):
-       raise _myerror, 'Operation not supported on a mac'
-
-
-class _socket:
-       def unsupported(self, *args):
-               raise _myerror, 'Operation not supported on this socket'
-       
-       accept = unsupported
-       bind = unsupported
-       close = unsupported
-       connect = unsupported
-       fileno = unsupported
-       getpeername = unsupported
-       getsockname = unsupported
-       getsockopt = unsupported
-       listen = unsupported
-       recv = unsupported
-       recvfrom = unsupported
-       send = unsupported
-       sendto = unsupported
-       setblocking = unsupported
-       setsockopt = unsupported
-       shutdown = unsupported
-
-
-class _tcpsocket(_socket):
-       
-       def __init__(self):
-               self.stream = mactcp.TCPCreate(_BUFSIZE)
-               ##self.stream.asr = self.asr
-               self.databuf = ''
-               self.udatabuf = ''
-               self.port = 0
-               self.accepted = 0
-               self.listening = 0
-
-       def accept(self):
-               if not self.listening:
-                       raise _myerror, 'Not listening'
-               self.listening = 0
-               self.stream.wait()
-               self.accepted = 1
-               return self, self.getsockname()
-       
-       # bind has two ways of calling: s.bind(host, port) or s.bind((host, port));
-       # the latter is more proper but the former more common
-       def bind(self, a1, a2=None):
-               if a2 is None:
-                       host, port = a1
-               else:
-                       host, port = a1, a2
-               self.port = port
-               
-       def close(self):
-               if self.accepted:
-                       self.accepted = 0
-                       return
-               self.stream.Abort()
-       
-       # connect has the same problem as bind (see above)
-       def connect(self, a1, a2=None):
-               if a2 is None:
-                       host, port = a1
-               else:
-                       host, port = a1, a2
-               self.stream.ActiveOpen(self.port, _ipaddress(host), port)
-               
-       def getsockname(self):
-               host, port = self.stream.GetSockName()
-               host = macdnr.AddrToStr(host)
-               return host, port
-               
-       def getpeername(self):
-               st = self.stream.Status()
-               host = macdnr.AddrToStr(st.remoteHost)
-               return host, st.remotePort              
-               
-       def listen(self, backlog):
-               self.stream.PassiveOpen(self.port)
-               self.listening = 1
-               
-       def makefile(self, rw = 'r', bs = 512):
-               return _socketfile(self, rw, bs)
-               
-       def recv(self, bufsize, flags=0):
-               if flags:
-                       raise _myerror, 'recv flags not yet supported on mac'
-               if not self.databuf:
-                       try:
-                               self.databuf, urg, mark = self.stream.Rcv(0)
-                       except mactcp.error, arg:
-                               if arg[0] != MACTCPconst.connectionClosing:
-                                       raise mactcp.error, arg
-               rv = self.databuf[:bufsize]
-               self.databuf = self.databuf[bufsize:]
-               return rv
-               
-       def send(self, buf):
-               self.stream.Send(buf)
-               return len(buf)
-               
-       def shutdown(self, how):
-               if how == 0:
-                       return
-               self.stream.Close()
-               
-       def bytes_readable(self):
-               st = self.stream.Status()
-               return st.amtUnreadData
-               
-       def bytes_writeable(self):
-               st = self.stream.Status()
-               return st.sendWindow - st.sendUnacked;
-
-
-class _udpsocket(_socket):
-       
-       def __init__(self):
-               pass
-
-
-class _socketfile:
-       
-       def __init__(self, sock, rw, bs):
-               if rw[1:] == 'b': rw = rw[:1]
-               if rw not in ('r', 'w'): raise _myerror, "mode must be 'r' or 'w'"
-               self.sock = sock
-               self.rw = rw
-               self.bs = bs
-               self.buf = ''
-               
-       def read(self, length = -1):
-               if length < 0:
-                       length = 0x7fffffff
-               while len(self.buf) < length:
-                       new = self.sock.recv(0x7fffffff)
-                       if not new:
-                               break
-                       self.buf = self.buf + new
-               rv = self.buf[:length]
-               self.buf = self.buf[length:]
-               return rv
-               
-       def readline(self):
-               import string
-               while not '\n' in self.buf:
-                       new = self.sock.recv(0x7fffffff)
-                       if not new:
-                               break
-                       self.buf = self.buf + new
-               if not '\n' in self.buf:
-                       rv = self.buf
-                       self.buf = ''
-               else:
-                       i = string.index(self.buf, '\n')
-                       rv = self.buf[:i+1]
-                       self.buf = self.buf[i+1:]
-               return rv
-               
-       def readlines(self):
-               list = []
-               line = self.readline()
-               while line:
-                       list.append(line)
-                       line = self.readline()
-               return list
-               
-       def write(self, buf):
-               BS = self.bs
-               if len(buf) >= BS:
-                       self.flush()
-                       self.sock.send(buf)
-               elif len(buf) + len(self.buf) >= BS:
-                       self.flush()
-                       self.buf = buf
-               else:
-                       self.buf = self.buf + buf
-       
-       def writelines(self, list):
-               for line in list:
-                       self.write(line)
-       
-       def flush(self):
-               if self.buf and self.rw == 'w':
-                       self.sock.send(self.buf)
-                       self.buf = ''
-       
-       def close(self):
-               self.flush()
-               ##self.sock.close()
-               del self.sock
-
-
-def __test_tcp():
-       s = socket(AF_INET, SOCK_STREAM)
-       s.connect('poseidon.cwi.nl', 13)
-       rv = s.recv(1000)
-       print 'Time/date:', rv
-       rv = s.recv(1000)
-       if rv:
-               print 'Unexpected extra data:', rv
-       s.close()
-       
-
-def __test_udp():
-       s = socket(AF_INET, SOCK_DGRAM)
-       print 'Sending data... (hello world)'
-       s.sendto(('poseidon.cwi.nl', 7), 'hello world')
-       rv, host = s.recvfrom(1000)
-       print 'Got from ', host, ':', rv
diff --git a/Mac/Unsupported/mactcp/tcpglue.c b/Mac/Unsupported/mactcp/tcpglue.c
deleted file mode 100644 (file)
index 79042b4..0000000
+++ /dev/null
@@ -1,477 +0,0 @@
-/*
- * Glue routines for mactcp module.
- * Jack Jansen, CWI, 1994.
- *
- * Adapted from mactcp socket library, which was in turn
- * adapted from ncsa telnet code.
- *
- * Original authors: Tom Milligan, Charlie Reiman
- */
-# include <Memory.h>
-# include <Files.h>
-# include <Errors.h>
-
-#include "tcpglue.h"
-#include <Devices.h>
-
-static short driver = 0;
-
-#ifndef __powerc
-/*
- * Hack fix for MacTCP 1.0.X bug
- *
- * This hack doesn't work on the PPC. But then, people with new machines
- * shouldn't run ancient buggy software. -- Jack.
- */
-pascal char *ReturnA5(void) = {0x2E8D};
-#endif /* !__powerc */
-
-OSErr xOpenDriver() 
-{ 
-       if (driver == 0) 
-       { 
-               ParamBlockRec pb; 
-               OSErr io; 
-               
-               pb.ioParam.ioCompletion = 0L; 
-               pb.ioParam.ioNamePtr = "\p.IPP"; 
-               pb.ioParam.ioPermssn = fsCurPerm; 
-               io = PBOpen(&pb,false); 
-               if (io != noErr) 
-                       return(io); 
-               driver = pb.ioParam.ioRefNum; 
-       }
-       return noErr;
-}
-
-/*
- * create a TCP stream
- */
-OSErr xTCPCreate(buflen,notify,udp, pb) 
-       int buflen;
-       TCPNotifyUPP notify;
-       void *udp;
-       TCPiopb *pb;
-{      
-       pb->ioCRefNum = driver;
-       pb->csCode = TCPCreate;
-       pb->csParam.create.rcvBuff = (char *)NewPtr(buflen);
-       pb->csParam.create.rcvBuffLen = buflen;
-       pb->csParam.create.notifyProc = notify;
-       pb->csParam.create.userDataPtr = udp;
-       return (xPBControlSync(pb));
-}
-
-
-/*
- * start listening for a TCP connection
- */
-OSErr xTCPPassiveOpen(TCPiopb *pb, short port, TCPIOCompletionUPP completion,
-       void *udp)
-{
-       if (driver == 0)
-               return(invalidStreamPtr);
-
-       pb->ioCRefNum = driver;
-       pb->csCode = TCPPassiveOpen;
-       pb->csParam.open.validityFlags = timeoutValue | timeoutAction;
-       pb->csParam.open.ulpTimeoutValue = 255 /* seconds */;
-       pb->csParam.open.ulpTimeoutAction = 0 /* 1:abort 0:report */;
-       pb->csParam.open.commandTimeoutValue = 0 /* infinity */;
-       pb->csParam.open.remoteHost = 0;
-       pb->csParam.open.remotePort = 0;
-       pb->csParam.open.localHost = 0;
-       pb->csParam.open.localPort = port;
-       pb->csParam.open.dontFrag = 0;
-       pb->csParam.open.timeToLive = 0;
-       pb->csParam.open.security = 0;
-       pb->csParam.open.optionCnt = 0;
-       pb->csParam.open.userDataPtr = udp;
-       return (xPBControl(pb,completion));
-}
-
-/*
- * connect to a remote TCP
- */
-OSErr xTCPActiveOpen(TCPiopb *pb, short port, long rhost, short rport, 
-       TCPIOCompletionUPP completion)
-{
-       if (driver == 0)
-               return(invalidStreamPtr);
-
-       pb->ioCRefNum = driver;
-       pb->csCode = TCPActiveOpen;
-       pb->csParam.open.validityFlags = timeoutValue | timeoutAction;
-       pb->csParam.open.ulpTimeoutValue = 60 /* seconds */;
-       pb->csParam.open.ulpTimeoutAction = 1 /* 1:abort 0:report */;
-       pb->csParam.open.commandTimeoutValue = 0;
-       pb->csParam.open.remoteHost = rhost;
-       pb->csParam.open.remotePort = rport;
-       pb->csParam.open.localHost = 0;
-       pb->csParam.open.localPort = port;
-       pb->csParam.open.dontFrag = 0;
-       pb->csParam.open.timeToLive = 0;
-       pb->csParam.open.security = 0;
-       pb->csParam.open.optionCnt = 0;
-       return (xPBControl(pb,completion));
-}
-
-OSErr xTCPNoCopyRcv(pb,rds,rdslen,timeout,completion) 
-       TCPiopb *pb;
-       rdsEntry *rds; 
-       int rdslen;
-       int     timeout;
-       TCPIOCompletionUPP completion;
-{
-       
-       if (driver == 0)
-               return(invalidStreamPtr);
-       
-       pb->ioCRefNum = driver;
-       pb->csCode = TCPNoCopyRcv;
-       pb->csParam.receive.commandTimeoutValue = timeout; /* seconds, 0 = blocking */
-       pb->csParam.receive.rdsPtr = (Ptr)rds;
-       pb->csParam.receive.rdsLength = rdslen;
-       return (xPBControl(pb,completion));
-}
-
-OSErr xTCPBufReturn(TCPiopb *pb,rdsEntry *rds,TCPIOCompletionUPP completion)
-       {
-       pb->ioCRefNum = driver;
-       pb->csCode = TCPRcvBfrReturn;
-       pb->csParam.receive.rdsPtr = (Ptr)rds;
-       
-       return (xPBControl(pb,completion));
-       }
-       
-/*
- * send data
- */
-OSErr xTCPSend(TCPiopb *pb, wdsEntry *wds, Boolean push, Boolean urgent, TCPIOCompletionUPP completion)
-{
-       if (driver == 0)
-               return invalidStreamPtr;
-       
-       pb->ioCRefNum = driver;
-       pb->csCode = TCPSend;
-       pb->csParam.send.validityFlags = timeoutValue | timeoutAction;
-       pb->csParam.send.ulpTimeoutValue = 60 /* seconds */;
-       pb->csParam.send.ulpTimeoutAction = 0 /* 0:abort 1:report */;
-       pb->csParam.send.pushFlag = push;
-       pb->csParam.send.urgentFlag = urgent;
-       pb->csParam.send.wdsPtr = (Ptr)wds;
-       return (xPBControl(pb,completion));
-}
-
-
-/*
- * close a connection
- */
-OSErr xTCPClose(TCPiopb *pb,TCPIOCompletionUPP completion) 
-{
-       if (driver == 0)
-               return(invalidStreamPtr);
-       
-       pb->ioCRefNum = driver;
-       pb->csCode = TCPClose;
-       pb->csParam.close.validityFlags = timeoutValue | timeoutAction;
-       pb->csParam.close.ulpTimeoutValue = 60 /* seconds */;
-       pb->csParam.close.ulpTimeoutAction = 1 /* 1:abort 0:report */;
-       return (xPBControl(pb,completion));
-}
-
-/*
- * abort a connection
- */
-OSErr xTCPAbort(TCPiopb *pb) 
-{
-       if (driver == 0)
-               return(invalidStreamPtr);
-       
-       pb->ioCRefNum = driver;
-       pb->csCode = TCPAbort;
-       return (xPBControlSync(pb));
-}
-
-/*
- * close down a TCP stream (aborting a connection, if necessary)
- */
-OSErr xTCPRelease(pb) 
-       TCPiopb *pb;
-{
-       OSErr io;
-       
-       if (driver == 0)
-               return(invalidStreamPtr);
-       
-       pb->ioCRefNum = driver;
-       pb->csCode = TCPRelease;
-       io = xPBControlSync(pb);
-       if (io == noErr)
-               DisposPtr(pb->csParam.create.rcvBuff); /* there is no release pb */
-       return(io);
-}
-
-#if 0
-
-int
-xTCPBytesUnread(sp) 
-       SocketPtr sp;
-{
-       TCPiopb *pb;
-       OSErr io;
-       
-       if (!(pb = sock_fetch_pb(sp)))
-               return -1;              /* panic */
-       
-       if (driver == 0)
-               return(-1);
-       
-       pb->ioCRefNum = driver;
-       pb->csCode = TCPStatus;
-       io = xPBControlSync(pb);
-       if (io != noErr)
-               return(-1);
-       return(pb->csParam.status.amtUnreadData);
-}
-
-int
-xTCPBytesWriteable(sp)
-       SocketPtr sp;
-       {
-       TCPiopb *pb;
-       OSErr   io;
-       long    amount;
-       
-       if (!(pb = sock_fetch_pb(sp)))
-               return -1;              /* panic */
-       
-       if (driver == 0)
-               return(-1);
-       
-       pb->ioCRefNum = driver;
-       pb->csCode = TCPStatus;
-       io = xPBControlSync(pb);
-       if (io != noErr)
-               return(-1);
-       amount = pb->csParam.status.sendWindow-pb->csParam.status.amtUnackedData;
-       if (amount < 0)
-               amount = 0;
-       return amount;
-       }
-       
-int xTCPWriteBytesLeft(SocketPtr sp)
-       {
-       TCPiopb *pb;
-       OSErr   io;
-       
-       if (!(pb = sock_fetch_pb(sp)))
-               return -1;              /* panic */
-       
-       if (driver == 0)
-               return(-1);
-       
-       pb->ioCRefNum = driver;
-       pb->csCode = TCPStatus;
-       io = xPBControlSync(pb);
-       if (io != noErr)
-               return(-1);
-       return (pb->csParam.status.amtUnackedData);
-       }
-#endif
-
-OSErr xTCPStatus(TCPiopb *pb, TCPStatusPB **spb)
-       {
-       OSErr io;
-       
-       if (driver == 0)
-               return(-1);
-       
-       pb->ioCRefNum = driver;
-       pb->csCode = TCPStatus;
-       io = xPBControlSync(pb);
-       if (io == noErr)
-               *spb = &pb->csParam.status;
-       return(io);
-       }
-
-
-/*
- * create a UDP stream, hook it to a socket.
- */
-OSErr xUDPCreate(UDPiopb *pb,int buflen,ip_port *port, UDPNotifyUPP asr, void *udp)
-       {       
-       OSErr   io;
-       
-       pb->ioCRefNum = driver;
-       pb->csCode = UDPCreate;
-       pb->csParam.create.rcvBuff = (char *)NewPtr(buflen);
-       pb->csParam.create.rcvBuffLen = buflen;
-       pb->csParam.create.notifyProc = asr;
-       pb->csParam.create.userDataPtr = udp;
-       pb->csParam.create.localPort = *port;
-       if ( (io = xPBControlSync( (TCPiopb *)pb ) ) != noErr)
-               return io;
-               
-       *port = pb->csParam.create.localPort;
-       return noErr;
-       }
-
-/*
- * ask for incoming data
- */
-OSErr xUDPRead(UDPiopb *pb, int timeout, UDPIOCompletionUPP completion) 
-       {
-       
-       if (driver == 0)
-               return(invalidStreamPtr);
-       
-       pb->ioCRefNum = driver;
-       pb->csCode = UDPRead;
-       pb->csParam.receive.timeOut = timeout;
-       pb->csParam.receive.secondTimeStamp = 0/* must be zero */;
-       return (xPBControl ( (TCPiopb *)pb, (TCPIOCompletionUPP)completion ));
-       }
-
-OSErr xUDPBfrReturn(UDPiopb *pb, char *buff) 
-       {
-       
-       if (driver == 0)
-               return(invalidStreamPtr);
-       
-       pb->ioCRefNum = driver;
-       pb->csCode = UDPBfrReturn;
-       pb->csParam.receive.rcvBuff = buff;
-       return ( xPBControl( (TCPiopb *)pb,(TCPIOCompletionUPP)-1 ) );
-       }
-
-/*
- * send data
- */
-OSErr xUDPWrite(UDPiopb        *pb,ip_addr host,ip_port port,miniwds *wds,
-               UDPIOCompletionUPP completion) 
-       {
-               
-       if (driver == 0)
-               return(invalidStreamPtr);
-       
-       pb->ioCRefNum = driver;
-       pb->csCode = UDPWrite;
-       pb->csParam.send.remoteHost = host;
-       pb->csParam.send.remotePort = port;
-       pb->csParam.send.wdsPtr = (Ptr)wds;
-       pb->csParam.send.checkSum = true;
-       pb->csParam.send.sendLength = 0/* must be zero */;
-       return (xPBControl( (TCPiopb *)pb, (TCPIOCompletionUPP)completion));
-       }
-
-/*
- * close down a UDP stream (aborting a read, if necessary)
- */
-OSErr xUDPRelease(UDPiopb *pb) {
-       OSErr io;
-
-       if (driver == 0)
-               return(invalidStreamPtr);
-       
-       pb->ioCRefNum = driver;
-       pb->csCode = UDPRelease;
-       io = xPBControlSync( (TCPiopb *)pb );
-       if (io == noErr) {
-               DisposPtr(pb->csParam.create.rcvBuff);
-               }
-       return(io);
-       }
-
-ip_addr xIPAddr(void) 
-{
-       struct GetAddrParamBlock pbr;
-       OSErr io;
-       
-       pbr.ioCRefNum = driver;
-       pbr.csCode = ipctlGetAddr;
-       io = xPBControlSync( (TCPiopb *)&pbr );
-       if (io != noErr)
-               return(0);
-       return(pbr.ourAddress);
-}
-
-long xNetMask() 
-{
-       struct GetAddrParamBlock pbr;
-       OSErr io;
-       
-       pbr.ioCRefNum = driver;
-       pbr.csCode = ipctlGetAddr;
-       io = xPBControlSync( (TCPiopb *)&pbr);
-       if (io != noErr)
-               return(0);
-       return(pbr.ourNetMask);
-}
-
-unsigned short xMaxMTU()
-{
-       struct UDPiopb pbr;
-       OSErr io;
-       
-       pbr.ioCRefNum = driver;
-       pbr.csCode = UDPMaxMTUSize;
-       pbr.csParam.mtu.remoteHost = xIPAddr();
-       io = xPBControlSync( (TCPiopb *)&pbr );
-       if (io != noErr)
-               return(0);
-       return(pbr.csParam.mtu.mtuSize);
-}
-
-OSErr xPBControlSync(TCPiopb *pb) 
-{ 
-       (pb)->ioCompletion = 0L; 
-       return PBControl((ParmBlkPtr)(pb),false); 
-}
-
-#pragma segment SOCK_RESIDENT
-
-OSErr xTCPRcv(pb,buf,buflen,timeout,completion) 
-       TCPiopb *pb;
-       Ptr buf; 
-       int buflen;
-       int     timeout;
-       TCPIOCompletionUPP completion;
-{
-       
-       if (driver == 0)
-               return(invalidStreamPtr);
-       
-       pb->ioCRefNum = driver;
-       pb->csCode = TCPRcv;
-       pb->csParam.receive.commandTimeoutValue = timeout; /* seconds, 0 = blocking */
-       pb->csParam.receive.rcvBuff = buf;
-       pb->csParam.receive.rcvBuffLen = buflen;
-       return (xPBControl(pb,completion));
-}
-
-OSErr xPBControl(TCPiopb *pb,TCPIOCompletionUPP completion) 
-{ 
-#ifndef __MWERKS__
-       pb->ioNamePtr = ReturnA5();
-#endif
-       
-       if (completion == 0L) 
-       { 
-               (pb)->ioCompletion = 0L; 
-               return(PBControl((ParmBlkPtr)(pb),false));              /* sync */
-       } 
-       else if (completion == (TCPIOCompletionUPP)-1L) 
-       { 
-               (pb)->ioCompletion = 0L; 
-               return(PBControl((ParmBlkPtr)(pb),true));               /* async */
-       } 
-       else 
-       {  
-               (pb)->ioCompletion = completion;
-               return(PBControl((ParmBlkPtr)(pb),true));               /* async */
-       } 
-}
-
diff --git a/Mac/Unsupported/mactcp/tcpglue.h b/Mac/Unsupported/mactcp/tcpglue.h
deleted file mode 100644 (file)
index ef9e133..0000000
+++ /dev/null
@@ -1,68 +0,0 @@
-/*
- * Prototypes for mactcpglue routines and includes/structures needed
- * by those.
- *
- * Jack Jansen, CWI, 1994.
- *
- * Adapted from mac socket library, which has in turn adapted from ncsa telnet.
- * Original authors: Tom Milligan, Charlie Reiman
- */
-  
-#include <MacTCPCommonTypes.h>
-#include <GetMyIPAddr.h>
-#include <TCPPB.h>
-#include <UDPPB.h>
-#include <AddressXlation.h>
-
-#ifndef __MWERKS__
-#define TCPIOCompletionUPP TCPIOCompletionProc
-#define TCPNotifyUPP TCPNotifyProc
-#define UDPIOCompletionUPP UDPIOCompletionProc
-#define UDPNotifyUPP UDPNotifyProc
-#define NewTCPIOCompletionProc(x) (x)
-#define NewTCPNotifyProc(x) (x)
-#define NewUDPIOCompletionProc(x) (x)
-#define NewUDPNotifyProc(x) (x)
-#endif /* __MWERKS__ */
-
-#if defined(powerc) || defined (__powerc)
-#pragma options align=mac68k
-#endif
-
-typedef        struct  miniwds
-       {
-       unsigned short length;
-       char * ptr;
-       unsigned short terminus;        /* must be zero'd for use */
-       } miniwds;
-
-#if defined(powerc) || defined(__powerc)
-#pragma options align=reset
-#endif
-
-
-OSErr xOpenDriver(void);
-OSErr xPBControl(TCPiopb *pb, TCPIOCompletionUPP completion);
-OSErr xPBControlSync(TCPiopb *pb);
-OSErr xTCPCreate(int buflen, TCPNotifyUPP notify, void *udp, TCPiopb *pb);
-OSErr xTCPPassiveOpen(TCPiopb *pb, short port, TCPIOCompletionUPP completion, void *udp);
-OSErr xTCPActiveOpen(TCPiopb *pb, short port, long rhost, short rport, TCPIOCompletionUPP completion);
-OSErr xTCPRcv(TCPiopb *pb, char *buf, int buflen, int timeout, TCPIOCompletionUPP completion);
-OSErr xTCPNoCopyRcv(TCPiopb *,rdsEntry *,int,int,TCPIOCompletionUPP);
-OSErr xTCPBufReturn(TCPiopb *pb,rdsEntry *rds,TCPIOCompletionUPP completion);
-OSErr xTCPSend(TCPiopb *pb, wdsEntry *wds, Boolean push, Boolean urgent, TCPIOCompletionUPP completion);
-OSErr xTCPClose(TCPiopb *pb,TCPIOCompletionUPP completion);
-OSErr xTCPAbort(TCPiopb *pb);
-OSErr xTCPRelease(TCPiopb *pb);
-
-OSErr xUDPCreate(UDPiopb *pb,int buflen,ip_port *port, UDPNotifyUPP asr, void *udp);
-OSErr xUDPRead(UDPiopb *pb,int timeout, UDPIOCompletionUPP completion);
-OSErr xUDPBfrReturn(UDPiopb *pb, char *buff);
-OSErr xUDPWrite(UDPiopb *pb,ip_addr host,ip_port port,miniwds *wds,
-               UDPIOCompletionUPP completion);
-OSErr xUDPRelease(UDPiopb *pb);
-
-ip_addr xIPAddr(void);
-long xNetMask(void);
-unsigned short xMaxMTU(void);
-
diff --git a/Mac/Unsupported/stdwinmodule.mu.exp b/Mac/Unsupported/stdwinmodule.mu.exp
deleted file mode 100644 (file)
index f0c5321..0000000
+++ /dev/null
@@ -1,241 +0,0 @@
-Drawingtype
-initstdwin
-ewpaste
-ewcopy
-ewundo
-ewreplace
-ewcloseall
-ewsaveall
-ewevent
-ewwritefile
-ewsetdimensions
-ewreadfile
-ewrevert
-ewsaveprompt
-ewsavecopy
-ewsaveas
-ewsave
-ewclose
-ewopen
-ewnew
-ewcreate
-ewcount
-ewfind
-wparheight
-wdrawpar
-tesetbuf
-tegetlen
-tegettext
-tegetnlines
-tegetfoc2
-tegetfoc1
-tesetfocus
-tenoview
-tesetview
-temovenew
-temove
-tegetbottom
-tegetright
-tegettop
-tegetleft
-teclicknew
-tebackspace
-tearrow
-teevent
-tereplace
-tetextround
-tewhereis
-tewhichline
-tewhichpoint
-tesetcaret
-teemptygap
-tegrowgapby
-temovegapto
-tedrawnew
-tedraw
-techangefocus
-tehidefocus
-teshowfocus
-tesetactive
-tefree
-tedestroy
-tesetup
-tecreate
-tealloc
-zrealloc
-zmalloc
-tedrawtext
-tetextbreak
-tetextwidth
-wcprintf
-wprintf
-about_message
-do_about
-wargs_argv
-wargs_argc
-wargs
-InitAEHandlers
-wnocaret
-wsetcaret
-blinkcaret
-rmcaret
-wfetchcolor
-_w_cursor
-set_hand
-set_applcursor
-set_watch
-set_arrow
-wsetwincursor
-wfetchcursor
-std_type
-wasktypelist
-waskntypes
-wperror
-waskstr
-waskync
-wmessage
-waskfile
-dprintf
-_w_fgcolor
-_w_bgcolor
-_w_font
-_w_size
-_w_usebgcolor
-_w_usefgcolor
-wsetbgcolor
-wsetfgcolor
-wgetbgcolor
-wgetfgcolor
-wnoclip
-wcliprect
-wxorpoly
-wfillpoly
-wdrawpoly
-wxorelarc
-wfillelarc
-wdrawelarc
-wxorcircle
-wfillcircle
-wdrawcircle
-wshade
-wpaint
-winvert
-w_erase
-wdrawbox
-wxorline
-wdrawline
-getwinrect
-makerect
-wdrawchar
-wdrawtext
-wcharwidth
-wtextwidth
-wbaseline
-wlineheight
-wsethilite
-wsetunderline
-wsetbolditalic
-wsetitalic
-wsetbold
-wsetinverse
-wsetplain
-wsetstyle_
-wsetsize
-wsetfont
-wlistfontnames
-wsetwintextattr
-wgetwintextattr
-wsettextattr
-wgettextattr
-initwattr
-wenddrawing
-wbegindrawing
-wupdate
-_wupdate
-scrollby
-wscroll
-wchange
-_wm_down
-active
-_w_high_level_event_proc
-_w_idle_proc
-wgetactive
-wsetactive
-_wresetmouse
-valid_border
-inval_border
-wgetevent
-wpollevent
-wungetevent
-fullpath
-getdirname
-about_item
-_wmenuhilite
-setup_menus
-_wdo_menu
-rmlocalmenus
-addlocalmenus
-killmbar
-initmbar
-wmenusetdeflocal
-wmenudetach
-wmenuattach
-wmenucheck
-wmenuenable
-wmenusetitem
-wmenuadditem
-wmenudelete
-wmenucreate
-PSTRING
-wrotatecutbuffers
-wgetcutbuffer
-wsetcutbuffer
-wresetselection
-wgetselection
-wsetselection
-wsetclip
-wgetclip
-_wfreeclip
-_wgrowicon
-movescrollbars
-hidescrollbars
-showscrollbars
-makescrollbars
-dragscroll
-autoscroll
-do_scroll
-_wfixorigin
-wgetdocsize
-wsetdocsize
-wshow
-wgetorigin
-wsetorigin
-wattr
-screen
-wgetdefscrollbars
-wsetdefscrollbars
-wgetdefwinsize
-wsetdefwinsize
-wgetdefwinpos
-wsetdefwinpos
-wsetmaxwinsize
-wfleep
-wgettitle
-wsettitle
-wsetwinpos
-wgetwinpos
-wsetwinsize
-wgetwinsize
-wclose
-wopen
-whichwin
-wgetmouseconfig
-wgetscrmm
-wgetscrsize
-wdone
-winit
-winitargs
-strdup
-checktimer
-wsettimer
-wtextbreak
diff --git a/Mac/Unsupported/stdwinmodule.mu.hqx b/Mac/Unsupported/stdwinmodule.mu.hqx
deleted file mode 100644 (file)
index 2a29335..0000000
+++ /dev/null
@@ -1,182 +0,0 @@
-(This file must be converted with BinHex 4.0)
-
-:$h0dC(GTEQe[C(9XC5jYG3"069"53eG*43#3""11!!!Vj9k[Bfp[E!!!!!%!!!!
-F!!!6)J!!%ci!!!"3!!!!"!!!!'J!!J!`!!)!(!G6Eh9bBf9chC!)!*!C!J!`!!)
-!+!P-D@*bBA*TCA2GN!B!N"N#!!!!!J!S#8aTBR*KFQPPFpf3"J#3(3)!+!$irr!
-!N!8"e*3!N!BbaJ!!!!%!P,DS!*!0!J!!c-`!-Xc-QC!%!$2-c*QCCQB!0-c-QCN
-c-`!ec-bCQ3!!!$E-c'CQrrm!0mc-CQE-c!!ic-aQCJ!$!!&!"J#3"!a*ER4PFQC
-KBf9-D@)!N"1X6k9!!B&cG(9LV%qP3!!#!!3!N!31Fh4NGfPZ)&"33bj-D@)!N"'
-Y6P"G!B&08%a'V8j3A3!$!!-!N!31Fh4NGfPZE@pNG@aP,Q-!N"'YFc++!B&849K
-8VA-bLJ!%!!3!N!33G'9iG'9NDA3J8&"$,NaTBJ#3$ke18)%"J8e36%DY6P#"!!8
-!!`#3"!aKE'a[BQTPBh4c,QJ!N"1Z#C!!13'!9%9B9+i*N!!j!!B!!`#3"!KMEfj
-QD@FZD!#3&kec-NF"J&4&@&5YFc*(!!G!!`#3"!GcG'4TEbjS!*!BV6qZp!#!9%9
-B9+drV[3!#%!$!*!%"hPfB@ac,QJ!N"LYXp4*!)"849K8VE2853!*3!-!N!3)Fh4
-bD@jR,QJ!N"HY2kld!)"849K8V6qZp!!+3!-!N!3(CA*bEQmZD!#3'+drV[)!J&4
-&@&5Y2klb!!X!!`#3"!PYHA"bEh4[,QJ!N"DYFc)H!B"849K8VA-b(J!-!!-!N!3
-*FQ9ZB@eP-LjS!*!@VJQ3!$N"J&4&@&5Z#C!!13!0!!-!N!3)Ef*UC@0d,QJ!N"H
-Z#C!!13'!9%9B9+i*N!!j!!i!!`#3"!P[BQTTEA"X,QJ!N"DYFc)H!B"849K8VA-
-b(J!2!!-!N!31B@0MCA0cEf*UC@0d,QJ!N"'YFc)C!B"849K8VA-b'3!3!!-!N!3
-,D@jdEf*UC@0d,QJ!N"5YFc)F!B"849K8VA-b(!!4!!-!N!3-E'pZCfpLDQ9MG#j
-S!*!6VA-b(3'!9%9B9+ec-Kd!%J!$!*!%$@CXEf&dEf*UC@0d,QJ!N"+YFc)E!B"
-849K8VA-b'`!6!!-!N!30FQ&ZCf9[BQTPBh3ZD!#3%Uec-Km"J&4&@&5YFc)I!"3
-!!`#3"!jcG(*TEQG[BQTPBh3ZD!#3%Dec-Km"J&4&@&5YFc)I!"8!!`#3"!edGA"
-XC@pLDQ9MG#jS!*!5VA-b)!'!9%9B9+ec-L!!&J!$!*!%$'aTFh4[BQTPBh3ZD!#
-3%kec-Kd"J&4&@&5YFc)G!"F!!`#3"!pYBA"`D@jREf*UC@0d,QJ!N"#YFc)G!B"
-849K8VA-b(3!B!!-!N!31E@9dD'pNEf*UC@0d,QJ!N"'YFc)G!B"849K8VA-b(3!
-C!!-!N!31E@pNG@aPEf*UC@0d,QJ!N"'YFc)G!B"849K8VA-b(3!D!!-!N!3-CR9
-ZBfpLDQ9MG#jS!*!6VA-b(!'!9%9B9+ec-K`!'`!$!*!%$@0XBA0cEf*UC@0d,QJ
-!N"+YFc)D!B"849K8VA-b'J!F!!-!N!3-CQPXC@pLDQ9MG#jS!*!6VJQ3!$N"J&4
-&@&5Z#C!!13!G!!-!N!3+EAPYB@aXEf-ZD!#3&Dec-Ki"J&4&@&5YFc)H!"j!!`#
-3"!KcG'4XD@)ZD!#3&kdrV[3!J&4&@&5Y2kld!"m!!`#3"!aYEf4cGA"`Eh*d,QJ
-!N"1YFc)G!B"849K8VA-b(3!J3!-!N!3)Fh4NBA*R,QJ!N"HY2kqp!)"849K8V6q
-[[3!K3!-!N!3*Ah0dC'&bCbjS!*!@UX`2e`#!9%9B9+V-$pF!)J!$!*!%"f0PGQ&
-X,QJ!N"LYFc)D!B"849K8VA-b'J!M!!-!N!3+B@*cG(*KBh3ZD!#3&Dec-KN"J&4
-&@&5YFc)C!#3!!`#3"!YcHA0YEf4eE'8ZD!#3&+i*N!!j!B"849K8VJQ3!$N!*3!
-$!*!%#@eKBfGXG@8ZD!#3&UiP4G`"J&4&@&5Z*8AF!#C!"3#3"!G8HA"PFbjS!*!
-BVDdDU3#!9%9B9+fY'UN!*d!&!*!%%d0[EQ4TG'P[EQ&X6@&MFQpc,QJ!N!bY(r*
-!!)"849K8V4rb3!!S3!8!N!3(4QPXCA-ZD!#3'+`KJ-!!J&4&@&5X)B$!!#P!"3#
-3"!Y0DAKPC%e[C'8ZD!#3&+e6A-!!J&4&@&5Y8ec!!#T!"3#3"!P28e9dD@ac,QJ
-!N"DYXp8l!)"849K8VE291`!V3!8!N!3)6@9YEh*j,QJ!N"HX)B$!!)"849K8V#'
-!`!!X3!8!N!3)4ACPER4c,QJ!N"HY(r*!!)"849K8V4rb3!!Y3!8!N!3,8A9TBfY
-NFQ&h,QJ!N"5XBKT!!)"849K8V')D3!!Z3!8!N!328A9TBfYNFQ&h9'9iG#jS!*!
-3V#'!`!#!9%9B9+`KJ-!!,d!&!*!%$P0dB@jNBA*N4QPXC5jS!*!4V#'!`!#!9%9
-B9+`KJ-!!-%!&!*!%#84TB@a[Ch-ZD!#3&U`KJ-!!J&4&@&5X)B$!!$&!"3#3"!K
-&FR*[FR-ZD!#3&kdImN!!J&4&@&5Y(r*!!$*!"3#3"!G0C@jeFbjS!*!BV#'!`!#
-!9%9B9+`KJ-!!-d!&!*!%#N0[ER4bEfac,QJ!N"@X)B$!!)"849K8V#'!`!!d3!8
-!N!3*9fPZC'phFbjS!*!@V')D3!#!9%9B9+aL'N!!08!&!*!%#P4PH(4&C'Pd,QJ
-!N"@X)B$!!)"849K8V#'!`!!f!!)!N!381MSkFh4NGfPZ1NJkFh4NGfPZ,QJ!N!m
-"J&4&@&3!N!8h!!3!N!3(Ad&54e-ZD!#3'+cr2r!"J&4&@&5Xrcr`!$J!"!#3"!T
-cG'4hG'9iG#jS!*!9V2mrm3'!9%9B9+cr2r%!13!&!*!%#A*eER4TE@8ZB`#3&Ub
-[%(8"J&4&@&5XVa"e!$S!!`#3""CYGf9bDh0IF'aeCfPZAf0[EQCTCbjS!*!*VA-
-bD`'!9%9B9+ec-QX!1`!$!*!%$f0[EA"XCAK[BQTPBh3ZD!#3%+i*N!!j!B"849K
-8VJQ3!$N!2!!$!*!%#@0[BQTPBh3ZD!#3&Uec-KS"J&4&@&5YFc)D!$d!!`#3"!T
-`H@9bFQpbFbjS!*!9VA-b(`'!9%9B9+ec-Km!2J!$!*!%#P"jG'K[EN0[FQ8!N"@
-Z*RYp!B"cD'aLVLClI3!r!!-!N!3*F(PNC@*eCbjS!*!@VJQ3!$N"J&4&@&5Z#C!
-!13"!!!-!N!3,G(*KBf9LB@0V,QJ!N"5YFc)J!B"849K8VA-b)!""!!-!N!3,F(P
-dD'pZFR9Z,QJ!N"5Z#C!!13'!9%9B9+i*N!!j!%)!!`#3"!YTER4bBfKPBfXZD!#
-3&+iC64J"J&4&@&5Z'8dB!%-!!`#3"!KTEA"[FR3ZD!#3&ki*N!!j!B"849K8VJQ
-3!$N!4!!$!*!%$@*XG'PZE@pNG@aP,QJ!N"+Z#C!!13'!9%9B9+i*N!!j!!!$b!!
-'!M`!!!!r!!%!N!J#!*!&$R0dC(GTEQe[C(9XC5jM!*!D!`#3"bHY(r*!!!%!-k`
-KJ-!!!3!`V#'!`!!"!!UY2klb!!%!-DdImN!!!3!XV4rb3!!"!#LX)B$!!!%!+k`
-KJ-!!!3!bV#'!`!!"!#QY8ec!!!%!+Ufce6X!!3!YV')D3!!"!#kX)B$!!!%!,k`
-KJ-!!!3!JV6q[[3!"!!HY2kld!!%!(UdrV[3!!3!*V6qZp!!"!$@X)B$!!!%!*Uf
-Y'UN!!3!dV')D3!!"!!LYXp4*!!%!)DV-$pF!!3!fV2mrm3!"!#1YFc)C!!%!$ke
-c-KN!!3!&VJQ3!$N!!3"%VJQ3!$N!!3!LVA-b'J!"!"ZYFc)D!!%!2+ec-KS!!3!
-lVJQ3!$N!!3!'VA-b4`!"!"bZ#C!!13!"!"+YFc)E!!%!'Uec-K`!!3"$VJQ3!$N
-!!3!3VA-b(!!"!%+Z'8dB!!%!&Uec-Kd!!3!4VA-b(3!"!#@Z*8AF!!%!&kec-Kd
-!!3!BVA-b(3!"!"qYFc)G!!%!'Dec-Kd!!3!kVA-bD`!"!"fYFc)H!!%!#kec-Ki
-!!3!0VJQ3!$N!!3!1VA-b(J!"!$qZ#C!!13!"!$fYFc)I!!%!3Di*N!!j!!%!%ke
-c-Km!!3!-VJQ3!$N!!3!iV2mrm3!"!"5YFc)I!!%!*+i*N!!j!!%!3+ec-L!!!3!
-9VA-b)!!"!$HXrcr`!!%!4J")!%S!6!2R!!%!!3#3#!)!N!83G'9iG'9NDA3J8&"
-$,NaTBJ#3'!3!N!G'!%J!5J"-!qF!!3!"!*!)!J#3"3jcG'4hD@iJ8&"$,NaTBJ#
-3'J)!N!G'!%J!5J"-!qF!!3!#!*!)!J%!N!3+8(PdD'pZ3fpbC3#3(Mi!N!G'!%J
-!5J"-!qF!!3!#!*!)!J%!N!3-5@jdCA*QB@0P6'PL!*!F!3#3"di!8!"5!&3!!!!
-#!!)!N!J#!3#3"!PbG@jdD@eP,Q-!N"mj!*!(1Uec-QX!!3#3#!,HVZ!!!!%H!!!
-1@&"'E(-!N!3#hUii!!!2GJ!!!mK36(0d!*!+!4`!!!!#8&0PCrrr!*!*(!!!!3"
-38f9R!!%!!"3l!!!"!!!!+6-!!#Jc!!!#XN4'E'F!!!M14(*'FJ!!#0T*ENCX!!!
-)jNa%48B!!!Mb$h0dC(GTEQe[C(9XC5jYG3)!!!"069"53eG*43!!!$3!!%e08&*
-$9dP&!!!!0!#!!*!5VUU!+`!!%ii!!#[P#Ej*3diM!!)*bQPME$J!!!RZD@0X0!!
-!#IT#6N4-!!!+"P08-$%!!!S54P*&4J!!#KjcEQ3J!!!++RNB!*!+HAcrrb!!#cX
-!N!4jIIrr)!!1e!#3"(RP!'d!!"8-!*!%HH%!R`!!&q)!N!4ji`$L!!!JA!#3"`)
-!"J!!!!S!"!#3#c!!"J%!rrm!N!Mrr`'3"3#3""i"!3#3#*QC!!!rrcrr2rm"!*!
-%5J!"!!N'E@pZB@0[!*!F"!!S!!S"`J+!!#J!#J(#!S!!N"!"!*!%!J#3"43!!3"
-B!+i!c`(4!*!%5K-!!"df!!!!'J!$!!#CQ3#3"(rr!*!%Irm!N!4rr`#3"!S`!!3
-!!!!%!!B"#!!"!6TFN3$Q513!$Qq%BA0V)!!!!"`!N!QqbUB![XZ8!,l,V!#3"Em
-5J!#3"Em5J!!3*)!!N#M-N!J!jN$3!1C!B0f3#(rrIrm!jN#%!*!%3)F!N!3&K!!
-!S5,q!J#3"qC!d!!$16)!N"-"!,l,BJ#qbd)![`I)!!"FN3$Q513!!!!$BA0V)!!
-!!"`!N!QqbUB![XZ8!,l,V!#3"Em5J!#r&J`![a%!69"$3`%)!!%#1MU4!1C)j!!
-1Ei4KFfXJ!!!!(!#3#El+TJ#qbj3![XZX!*!&[a+!!*!&[a+!!"!NJ!#3+-b3#!$
-Q30!!jN"JhC!)Irprr`$Q3)3!N!4!K`#3"!@%!!#K)[i#!*!(jN$3!!-j-J#3%`%
-![XYL!,l,3J#r"mJ!!&b4!1C)j!!!!!0KFfXJ!!!!(!#3#El+TJ#qbj3![XZX!*!
-&[a+!!,m@$!#r%3"08%0$!3J!!3Sk1MTcG'4hD@ikK'&cDb!!!!!F!*!*[XUQ!,l
-,P!#qbk`!N!@r%S!!N!@r%S!!%#5!!*!Sc*!)!1C!d!$Q3'$GN!Krrhrr!1C!K!#
-3"%#(!*!%"B3!!+%LrJ)!N!IQ30!!!cNb!*!6!3#qbf)![XY#!,m(b!!!A*%!jNM
-N!!!!!f&cDb!!!!!F!*!*[XUQ!,l,P!#qbk`!N!@r%S!![aB-!,m4!%e33d-"B!!
-#0cT0B@028b"6GA"`Eh*d1NaTBR*KFQPPFcT5G@jdD@eP1P*eER4TE@8J8&"$1LK
-6Eh9bBf9c+6VHd%)!!J6rh@"X!E9C+3(6hZ!!!P@`!E9U)!'Y53`"dpl`!!*9X!!
-3Gb3!0"E!!%E&N!!!!3!"!!%!!3!!!!-"dpm`!*!%rpVJK!!!!!%"dpq!!"'eV!'
-MHP!"Y9NX!G2I3!!4YD`!%)98!G2J8J(6hd!!!P@`rp4a`!!!S5)"dpp`!!-a52r
-E!iJ!N!3"dq#3!!!8*b`!&#FJ!G2JfJ(6hh!!&$1Brpe#1'Mrpd!"dpq!!"'b@!!
-3Bj!!!E9C#!$rrrm!%rMN!G`"i!!"'$Sk1N0A4e9655!a,MBZ0$TTEQ0XG@4P1M!
-!%rQ8!$QN#!!!0,3!N!Rrrrm"b28i!FMd8%)!!J6rh@"X!E,EL3()p'!!!P@`!E,
-[S!'L,!J"b24`!!*9X!!4Zq3!05m!!%3#!!!"!!%!!3!"!!!!!`()p,!!N!6rfZ#
-%!!!!!3()p3!!%[Tm!CL2X!'bfi`"b26!!",kI!!4bK3"b2A5!FMd`!!#9E$re((
-!!!#K)J()p2!!!c&)rpX$L!#3"!()pK!!%pRm!"2Cm!()pPS"b26`!"2QD2rG3MK
-SrrG!!FMe!!!5pbJ!%DK3!E,ED!$rrrm!&6Fd!G%"!!!#*$T0B@028b"6GA"`Eh*
-d1NKPB@4PFR-k38j655")C@&NCA*c1J#3)ZC%%!#3"`%!$ATB*!!)"!$Q3j!!!"!
-N%!$Q48`!N"N3),`!N!AQ4B!!N!80HU3![ZJJ3*ha8!!3*"!!N!AQ4BB!N!83*)!
-!!+!F!*!9jN53!!#3#3ek@#5!#!3!jN33!"!N%!#3(J%!!!)N1NeKBdp6)&0eF("
-[FR3k5'9KC'9bFcT38%-J8h"PBfPQD@-k!*!LjN33!*!(!3!0HPJN!!J%!1C$N!!
-!%#33!1C&6!#3'4!J[!#3"HC&J!#3"3ekT!#qk#"!RI&3!"!N%!#3"HC&KJ#3"4!
-NJ!!!S"`!N"AQ4*!!!*!*$ATB*)!)"!$Q4"!!%#33!*!H!3!!!LNk6@&M6e-J8h9
-`F'pbG$T)C@&NCA*c1P9ZDACPFR0KE#")C@&NCA*c1J#3(HC%%!#3"`%!$ATB*!!
-)"!$Q3j!!!"!N%!$Q48`!N"N3),`!N!AQ4B!!N!80HU3![ZJJ3*ha8!!3*"!!N!A
-Q4BB!N!83*)!!!+!F!*!9jN53!!#3#3ek@#5!#!3!jN33!"!N%!#3(J%!!!)Q1Ne
-KBdp6)&0eF("[FR3k6'PLFQ&bD@9c1NeKBdp6)%0[E@e[EMS!N#$Q4"!!N!F"!!e
-k@#3!#!3!jN13!!!3*"!!jN9-!*!C%##m!*!&jN@!!*!&$AUN!,lS)%#Gm9!!%#3
-3!*!&jN@'!*!&%#5!!!#J(!#3&HC%N!!!N!N0HPJNJ!J%!1C%%!!3*"!!N"i"!!!
-#)6T0B@028b"6GA"`Eh*d1NaTBR*KFQPPFcT5G@jdD@eP1J#3*!%"bC!!!3IqX!!
-!!!%!$e!i*!!)"!%"b4!!%J$J!3(+c!#3'4(pM!#3"!%"b`!""rk`!!p3K!$DE@!
-!"*Lm!")!i!#3"!%"b`B!N!85!9!!!+!F!*!8!3(+%!#3#3p31#5!#!3"!FQ3!!!
-5!1!!N#!8P!!'%%eKBdp6)&"33b"-D@jVCA)!N"!%%%eKBdp6)&"33b"-D@jVCA)
-!N$!D39"36!#33'!!!!""F("X!*"!B!!!!%e06%)!N#!16'PL)%PYF'pbG#"38%-
-!N"908%a'!*!J$NaTBL"*EA"[FR3J8&"$!*!969G$4!#33'!!!!"58e*$!*"!B!!
-!!&4&@&3$,Q*SBmUV8!!$--J!&+h3!!!"IJ(+Ue!!&'A!!!!#eJa#B@aXEfpZ)%K
-PE(!!N!8G"!(+Ui!!&'A!!BH@e!#3"&4&@&3#,Q-!N"d-69FJ3bp$+bXJ8&"$!*!
-A9%9B9!3ZBbXV!*!E$%eA)%-[3bXV)&"33`#3&e4&@&3$,Q0M!*!F$%eA)%-[3bX
-V)&"33`#3&e4&@&3$,Q0`!*!F$%eA)%-[3bXV)&"33`#3&e4&@&3%,Q0`F!#3'`a
-09b"$,d-V+b"38%-!N"G849K8"#jPH(!!N$p849K8!LjS!*!G$%eA)%-[3bXV)&"
-33`#3%a!!!!"849K8!Lj`!*!G$8eA)&"KFf0KE#"38%-!N"C849K8"#j`BA-!N"X
-069FJ8'&cBf&X)&"33`#3&P4&@&3%,R"MD!#3'`a09b"$,d-V+b"38%-!N"1!!!!
-!9%9B9!BZF'0S+bX!N"N-69FJ3bp$+bXJ8&"$!*!6J!!!!&4&@&3#,R)!N"d'69F
-J8Q9k!*!G9%9B9!)ZFfKMbUY3!!-`b!!8VG!!!!&q!FUV8!!8CF!!!!,@"P"33d&
-cE@iJ5'9X!*!'(33"bUZ!!"4P`!'(PY3!N!4B3dp'!*!J%&K$6dC')%PYF'pbG#"
-38%-!N"0NEf0e!*"!B!!!!(*cFQ-!N%"J!!!!FfKXBJ#3)!j348BJ5@e`Eh*d)&"
-33`#3&A0dG@)!N#!18%9')%PYF'pbG#"38%-!N"N%,Q4[B`#31e!!!!!36@&M6e-
-J0MK,)%aTEQYPFJ#3-"T"8&"-!*"!B!!!!%&`F'`!N%"J!!!!68e-3J#3)!j-D@)
-J5@e`Eh*d)$Bi5`#3&8e36%B!N#!16'PL)%PYF'pbG#!f1%X!N"909d0%!*"!B!!
-!!%p#5L!!N#!169"A)%PYF'pbG#!f1%X!N"958e*$!*"!B!!!!&4&@&3$,Q*SBmU
-V8!!$--J!&+h3!!!"IJ(+Ue!!&'A!!!!#eJa#B@aXEfpZ)%KPE(!!N!8G"!(+Ui!
-!&'A!!BH@e!#3"&4&@&3#,Q-!N"d-69FJ3bp$+bXJ0MK,!*!A9%9B9!3ZBbXV!*!
-E$%eA)%-[3bXV)$Bi5`#3&e4&@&3$,Q0M!*!F$%eA)%-[3bXV)$Bi5`#3&e4&@&3
-$,Q0`!*!F$%eA)%-[3bXV)$Bi5`#3&e4&@&3%,Q0`F!#3'`a09b"$,d-V+b!f1%X
-!N"G849K8"#jPH($+Ue!!!c$)!"5Yd!!!!Ai"bUY3!"4P`!!!!YB!abTdJjLVJ!(
-+VN3!%j98!!!G"!(+Ui!!&'A!!BHL2!#3"&4&@&3#,QJ!N"d-69FJ3bp$+bXJ0MK
-,!*!6%!!!!&4&@&3#,R!!N"d069FJ8'&cBf&X)$Bi5`#3&P4&@&3%,R"KF`#3'`e
-09b"3BA0MB@`J0MK,!*!@9%9B9!3ZF'0S!*!E$%eA)%-[3bXV)$Bi5`#3%i!!!!"
-849K8"Lj`BfJV+`#3'3a09b"$,d-V+b!f1%X!N"1!!!!!9%9B9!)ZFJ#3(3C09b"
-5CAS!N"e849K8"#jcC@I+Ue!!!c$)!"5Yd!!!!Ai"bUY3!"4P`!!!!YB!abTdJjL
-VJ!(+VN3!%j98!!!G"!(+Ui!!&'A!!BHL2!#3"'4[Bh8!N%"J!!!!FR0bB`#33'!
-!!!"cD'aL!*!J$P"&4L"*EA"[FR3J0MKV!*!9Fh4eBJ#3)!j348BJ5@e`Eh*d)$B
-iD`#3'33ZC'pM!*!l8!!!!""AD@ic-L"i1$BJ6'PZDf9b!*!`#94&@&3#,Q-!N"d
--69FJ3bp$+bXJH$Jf!*!A9%9B9!3ZBbXV!*!E$%eA)%-[3bXV)(Ji0J#3&e4&@&3
-$,Q0`!*!F$%eA)%-[3bXV)(Ji0J#3&e4&@&3%,Q0`F!#3'`a09b"$,d-V+b"i1$B
-!N"G849K8"#j`BfJ!N"X-69FJ3bp$+bXJH$Jf!*!6J!!!!&4&@&3',R"MD#XV!*!
-C$%eA)%-[3bXV)(Ji0J#3%i!!!!"849K8!bjbB`#3(!K09b"AD@j53`#3(`3ZE'P
-L!*!E$NaTBL"*EA"[FR3JH$Jf!*!C"#j[BQS!N"X16f*U)%PYF'pbG#"i1$B!N"8
-*68-J6'PZDf9b!*!h#%e03dJ!N%4849K8!LjM!*!G#%e$)%-[3bXV!*!E9%9B9!3
-ZBfac!*!E%8e$)%0XBA0c)%0[EA"TE'9b!*!1J!!!!&4&@&3%,Q4PCJ#32e4&@&3
-%,Q4[B`#31a!!!!"849K8!LjS!*!p%!!!!&4&@&3%,R"MD!#3'`K03b"$,d-V+`#
-3&i!!!!"849K8!bjdF`#33`B!!3%!N!B8!!3"!*!(!3#3$!S!!3%!!!%"!!%!N!3
-1!!F"!!%"!!%"!!!!!3#3"-B!"`#33Mq3"%&38%`!!!'!@)!!N%)rN!3!N!P9!C!
-!!3)#H`#3"3)!!!!8!*!%!B!!N"%i!!N!N!F@EAGPFQYcAh"XG@GTEPpMEfjQD@F
-ZD!#3$!%!N!i-!!-!N!`"fJ!%!*!3!3#3r`#34&pIFh4KFR3!N(`"!!!!0J!-!*!
-(!3#3*3%!N!8"!!!!$3!#!*!1&!!$!!!"!3!!!3%$!3#3#`S!!3%"!!!"!3!"!!!
-!a!!'`J#33@PZDA4cG'4hD@i!N(J"&!!&!!%!!$,)!!!bb!!!-XJ!N!3'Fh4NGfP
-Z!*$mZJ!%!!%3Fh4NGfPZE@pNG@aP,R0XBJ#3$e"jG'KcD'aL!*"a!6q3"!#3"eF
-!VJ$U!G%"!!!!#eB!!&b4!!!!,J!#!!!!!J!#!*!S!J`!!J"3!!%!!3!"!!%!N2m
-!&#G$6d4&*b!R4%&835FJ*e"*3e3R!*$Z#J!%!*!+!3!!!#Nc!!!S-`!!!V)#hUc
-8*kS!!!!F!AS!!R"bC@B!'!!DF&CPFJ!!!8C69&)M!!!"8J5`!"!!!!!'!*!%3Li
-!(3!!!"3!N!3a%J!N!!!!5!#3"'SC!#N!!!#F!*!%9lJ!1!!!!,3!N!3JIJ")!!!
-!dJ#3"(%@!&8!!!X'!*!%EjJ!A!!!(ji!N!3+1J"T!!!IU!#3"(4#!(8!!"r!!*!
-%C[B!KJ!!(mi!N!3lkJ#4!!!Ii!#3"(c'!*d!!##U!*!%5P!!V!!!)1B!N!36#`#
-l!!!JpJ#3"'+S!-)!!#,8!*!%$qd!dJ!!)`i!N!4-P!$L!!!M(`#3""ca!1i!!#-
-h!*!%)S3!r`!!)d8!N!30XJ%+!!!N$3#3"#8#!4)!!#8P!*!%8&!"(J!!*H-!N!3
-mf`%V!!!Q&3#3"FMrr`!!+#8!N"!EJ2rr!!!!PJ#3"!p3FQpUC@0d)&CPFR0TEfi
--8(*[DQ9MG#"0DA0M"N9NDA4[FJ4'Efjd$P"bEfTPBh3J4AKdFQ&c$d0eFh4[E5"
-,CAPhEh*NF`a"Bf0PFh-J8'&dD(-'9'&bCf9d$%*eD@aN)%9iG(*KF`Xf1%XJ3fp
-NC8GPEK!f1%XJ4'PcBA0cC@eLE'9b#MBi5b"-D@jVCA),0MK,)&"bEfTPBh313bp
-$+bXJ3fpYF'PXCA)13bp$+bXJ9f&bEQPZCh-'3dC00MK,$e"KFf0KE#"$Efe`D@a
-PFJp3BA0MB@`J9f&bEQPZCh-,8&"$)%0[C'9(C@i38&"$)%4TFf&cFf9YBQaPFJT
-38%-J6'PZDf9b"e"33b"348B,8&"$)&"bEfTPBh3-8&"$3A0Y)&"KEQ9X$&*PHL"
-$Efe`D@aPFVA(:
diff --git a/Mac/Unsupported/twit/TwitCore.py b/Mac/Unsupported/twit/TwitCore.py
deleted file mode 100644 (file)
index 8cd8c0e..0000000
+++ /dev/null
@@ -1,549 +0,0 @@
-# Window-interface-independent part of twit
-import sys
-import types
-import bdb
-import types
-import os
-
-SIMPLE_TYPES=(
-       types.NoneType,
-       types.IntType,
-       types.LongType,
-       types.FloatType,
-       types.ComplexType,
-       types.StringType
-)
-
-# XXXX Mac-specific
-ICON_NORMAL=500
-ICON_RETURN=503
-ICON_CALL=504
-ICON_ZERO=505
-ICON_DEAD=506
-
-class DebuggerStuff(bdb.Bdb):
-
-       def __init__(self, parent):
-               bdb.Bdb.__init__(self)
-               self.parent = parent
-               self.exception_info = (None, None)
-               self.reason = 'Not running'
-               self.icon = ICON_NORMAL
-               self.reset()
-               
-       def reset(self):
-               bdb.Bdb.reset(self)
-               self.forget()
-       
-       def forget(self):
-               self.lineno = None
-               self.stack = []
-               self.curindex = 0
-               self.curframe = None
-               
-       def run(self, cmd, locals, globals):
-               self.reason = 'Running'
-               bdb.Bdb.run(self, cmd, locals, globals)
-               print 'RETURN from run'
-               self.reason = 'Not running'
-       
-       def setup(self, f, t):
-               self.forget()
-               self.stack, self.curindex = self.get_stack(f, t)
-               self.curframe = self.stack[self.curindex][0]
-               
-       def interaction(self, frame, traceback):
-               self.setup(frame, traceback)
-               self.parent.interact()
-               self.exception_info = (None, None)
-
-#      def user_call(self, frame, argument_list):
-#              self.reason = 'Calling'
-#              self.icon = ICON_CALL
-#              self.interaction(frame, None)
-                       
-       def user_line(self, frame):
-               self.reason = 'Stopped'
-               self.icon = ICON_NORMAL
-               self.interaction(frame, None)
-               
-       def user_return(self, frame, return_value):
-               self.reason = 'Returning'
-               self.icon = ICON_RETURN
-               self.interaction(frame, None)
-                               
-       def user_exception(self, frame, (exc_type, exc_value, exc_traceback)):
-               self.reason = 'Exception occurred'
-               self.icon = ICON_DEAD
-               self.parent.setstate('tb')
-               self.exception_info = (exc_type, exc_value)
-               self.interaction(frame, exc_traceback)
-
-       def getexception(self):
-               tp, value = self.exception_info
-               if tp <> None and type(tp) <> type(''):
-                       tp = tp.__name__
-               if value <> None and type(value) <> type(''):
-                       value = `value`
-               return tp, value
-               
-       def getstacktrace(self):
-               names, locations = [], []
-               for frame, lineno in self.stack:
-                       name = frame.f_code.co_name
-                       if not name:
-                               name = "<lambda>"
-                       elif name == '?': 
-                               name = "<not a function>"
-                       else:
-                               name = name + '()'
-                       names.append(name)
-                       
-                       if lineno == -1:
-                               lineno = getframelineno(frame)
-                               
-                       modname = getframemodname(frame)
-                       if not modname: modname = "<unknown>"   
-
-                       locations.append("%s:%d" % (modname, lineno))
-               return names, locations
-               
-       def getframe(self, number):
-               if number < 0 or number >= len(self.stack):
-                       return None
-               return self.stack[number][0]
-
-       def getframevars(self, number, show_complex=1, show_system=1):
-               frame = self.getframe(number)
-               if not frame:
-                       return [], []
-               return getvarsfromdict(frame.f_locals, show_complex, show_system)
-               
-       def getframevar(self, number, var):
-               frame = self.getframe(number)
-               return frame.f_locals[var]
-
-       def getframefilepos(self, frameno):
-               if frameno == None or frameno < 0 or frameno >= len(self.stack):
-                       return None, None, None
-               frame, line = self.stack[frameno]
-               if line == -1:
-                       line = getframelineno(frame)
-               modname = getframemodname(frame)
-               filename = frame.f_code.co_filename
-               return filename, modname, line
-
-       def getprogramstate(self):
-               return self.reason
-       
-class Application:
-       """Base code for the application"""
-       
-       def mi_init(self, sessiontype, arg):
-               self.dbg = DebuggerStuff(self)
-               self.run_dialog = self.new_stack_browser(self)
-               self.run_dialog.open()
-               self.module_dialog = None
-               self.initial_cmd = None
-               self.cur_string_name = None
-               if sessiontype == 'tb':
-                       while arg.tb_next <> None:
-                               arg = arg.tb_next
-                       self.dbg.setup(arg.tb_frame, arg)
-                       self.run_dialog.setup()
-               elif sessiontype == 'run':
-                       self.initial_cmd = arg
-                       
-       def breaks_changed(self, filename):
-               self.run_dialog.breaks_changed(filename)
-               if self.module_dialog:
-                       self.module_dialog.breaks_changed(filename)
-       
-       def to_debugger(self):
-               cmd = self.initial_cmd
-               self.initial_cmd = None
-               self.setstate('run')
-               self.switch_to_app()
-               apply(self.dbg.run, cmd)
-               self.setstate('none')
-               self.switch_to_dbg()
-               self.run_dialog.update_views()
-               if self.module_dialog:
-                       self.module_dialog.update_views()
-               
-       def interact(self):
-               # Interact with user. First, display correct info
-               self.switch_to_dbg()
-               self.run_dialog.update_views()
-               if self.module_dialog:
-                       self.module_dialog.update_views()
-               
-               # Next, go into mainloop
-               self.one_mainloop()
-               
-               # Finally (before we start the debuggee again) show state
-               self.switch_to_app()
-               self.run_dialog.show_it_running()
-               
-       def quit_bdb(self):
-               self.dbg.set_quit()
-               
-       def run(self):
-               cmd = self.AskString('Statement to execute:')
-               self.runstring(cmd)
-               
-       def runfile(self, path):
-               dir, file = os.path.split(path)
-               try:
-                       os.chdir(dir)
-               except os.error, arg:
-                       self.Message("%s: %s"%(dir, arg))
-                       return
-               ns = {'__name__':'__main__', '__file__':path}
-               cmd = "execfile('%s')"%file
-               self.runstring(cmd, ns, ns)
-               
-       def runstring(self, cmd, globals={}, locals={}):
-               self.cur_string_name = '<string: "%s">'%cmd
-               try:
-                       cmd = compile(cmd, self.cur_string_name, 'exec')
-               except SyntaxError, arg:
-                       self.Message('Syntax error: %s'%`arg`)
-                       return
-               self.initial_cmd = (cmd, globals, locals)
-               self.exit_mainloop()
-
-       def cont(self):
-               self.dbg.set_continue()
-               self.exit_mainloop()
-                               
-       def step(self, frame):
-               self.dbg.set_next(frame)
-               self.exit_mainloop()
-               
-       def step_in(self):
-               self.dbg.set_step()
-               self.exit_mainloop()
-               
-       def step_out(self, frame):
-               self.dbg.set_return(frame)
-               self.exit_mainloop()
-               
-       def kill(self):
-               self.dbg.set_quit()
-               self.exit_mainloop()
-               
-       def quit(self):
-               self.do_quit()
-               
-       def browse(self, module):
-               if not self.module_dialog:
-                       self.module_dialog = self.new_module_browser(self)
-                       self.module_dialog.open(module)
-               else:
-                       self.module_dialog.focus(module)
-       
-       def browse_var(self, var):
-               b = self.new_var_browser(self, var)
-               
-class StackBrowser:
-       """Base code for stack browser"""
-       def mi_open(self):
-               """Setup initial data structures"""
-               self.cur_stackitem = None
-               self.cur_source = None
-               self.cur_modname = None
-               self.cur_line = None
-               self.show_complex = 1
-               self.show_system = 0
-               self.setup()
-
-       # create_items(self) should create self.modules, self.vars and self.source
-       
-       def setup(self):
-               self.parent.SetWatch()
-               """Fill the various widgets with values"""
-               name, value = self.parent.dbg.getexception()
-               self.setexception(name, value)
-               self.setprogramstate(self.parent.dbg.getprogramstate())
-               
-               names, locations = self.parent.dbg.getstacktrace()
-               self.stack_setcontent(names, locations)
-               self.cur_stackitem = len(names)-1
-               self.stack_select(self.cur_stackitem)
-               self.setup_frame()
-               
-       def setup_frame(self):
-               """Setup frame-dependent widget data"""
-               self.parent.SetWatch()
-               self.cont_varnames, self.cont_varvalues = \
-                       self.parent.dbg.getframevars(self.cur_stackitem, 
-                       self.show_complex, self.show_system)
-               self.setvars()
-               self.set_var_buttons()
-       
-               msg = ""
-               if self.cur_stackitem == None:
-                       self.cur_source = None
-                       self.cur_modname = None
-                       self.cur_line = None
-                       msg = "No stackframe selected"
-               else:
-                       self.cur_source, self.cur_modname, optnextline = \
-                               self.parent.dbg.getframefilepos(self.cur_stackitem)
-                       if optnextline >= 0:
-                               self.cur_line = optnextline
-                       if self.cur_source == '<string>':
-                               self.cur_source = None
-                               msg = "Executing from unknown <string>"
-                       elif type(self.cur_source) == types.StringType and \
-                                               self.cur_source[:8] == '<string:':
-                               msg = "Executing from "+self.cur_source
-                               self.cur_source = None
-                               
-               self.setsource(msg)
-               if not self.cur_line:
-                       self.source_setline(1, ICON_ZERO)
-               else:
-                       self.source_setline(self.cur_line, self.parent.dbg.icon)
-               self.breaks_changed(self.cur_source)
-               
-               
-               self.parent.SetCursor()
-               
-       # setsource(msg) should display cur_source+content, or msg if None
-       
-       def show_it_running(self):
-               self.setprogramstate("Running")
-
-       def update_views(self):
-               self.setup()
-
-       def click_stack(self, number, *dummy):
-               if number == self.cur_stackitem: return
-               self.cur_stackitem = number
-               self.stack_select(self.cur_stackitem)
-               self.setup_frame()
-                               
-       def click_var(self, var, *dummy):
-               v = self.parent.dbg.getframevar(self.cur_stackitem, var)
-               self.parent.browse_var(v)
-               
-       def click_source(self, lineno, inborder):
-               if not inborder:
-                       self.source_select(lineno)
-                       self.cur_line = lineno
-               if lineno == None or not self.cur_source or not inborder:
-                       return
-               if self.parent.dbg.get_break(self.cur_source, lineno):
-                       self.parent.dbg.clear_break(self.cur_source, lineno)
-               else:
-                       self.parent.dbg.set_break(self.cur_source, lineno)
-               self.parent.breaks_changed(self.cur_source)
-               
-       def breaks_changed(self, filename):
-               if filename == self.cur_source:
-                       list = self.parent.dbg.get_file_breaks(filename)
-                       self.source_setbreaks(list)
-               
-       def click_quit(self):
-               self.parent.quit()
-               
-       def click_run(self):
-               self.parent.run()
-               
-       def click_continue(self):
-               self.parent.cont()
-               
-       def click_step(self):
-               if self.cur_stackitem <> None:
-                       frame = self.parent.dbg.getframe(self.cur_stackitem)
-                       self.parent.step(frame)
-               else:
-                       self.parent.step_in()
-               
-       def click_step_in(self):
-               self.parent.step_in()
-               
-       def click_step_out(self):
-               if self.cur_stackitem <> None:
-                       frame = self.parent.dbg.getframe(self.cur_stackitem)
-                       self.parent.step_out(frame)
-               else:
-                       self.parent.step_in()
-                       
-       def click_kill(self):
-               self.parent.kill()
-               
-       def click_browse(self):
-               self.parent.browse(self.cur_modname)
-               
-       def click_edit(self):
-               lino = self.cur_line
-               if not lino:
-                       lino = 1
-               if self.cur_source:
-                       self.parent.edit(self.cur_source, lino)
-
-class ModuleBrowser:
-       """Base code for a module-browser"""
-
-       def mi_open(self, module):
-               """Setup initial data structures"""
-               self.cur_module = module
-               self.cur_source = None
-               self.cur_line = None
-               self.cont_modules = []
-               self.value_windows = []
-               self.setup()
-
-       # create_items(self) should create self.modules, self.vars and self.source
-       
-       def setup(self):
-               """Fill the various widgets with values"""
-               self.parent.SetWatch()
-               modnames = getmodulenames()
-               if not self.cur_module in modnames:
-                       self.cur_module = None
-               if modnames <> self.cont_modules:
-                       self.cont_modules = modnames
-                       self.setmodulenames()
-               if self.cur_module:
-                       self.module_select(self.cont_modules.index(self.cur_module))
-               else:
-                       self.module_select(None)
-               self.setup_module()
-               
-       def setup_module(self):
-               """Setup module-dependent widget data"""
-               self.parent.SetWatch()
-               if not self.cur_module:
-                       self.cont_varnames = []
-                       self.cont_varvalues = []
-               else:
-                       self.cont_varnames, self.cont_varvalues = getmodulevars(self.cur_module)
-               self.setvars()
-                       
-               msg = ""
-               if not self.cur_module:
-                       self.cur_source = None
-                       msg = "No module selected"
-               else:
-                       m = sys.modules[self.cur_module]
-                       try:
-                               self.cur_source = m.__file__
-                       except AttributeError:
-                               self.cur_source = None
-                               msg = "Not a python module"
-               self.cur_lineno = 0     
-               self.setsource(msg)
-               self.source_select(self.cur_line)
-               self.breaks_changed(self.cur_source)
-               
-               self.parent.SetCursor()
-
-       # setsource(msg) should display cur_source+content, or msg if None
-       
-       def update_views(self):
-               self.setup_module()
-       
-       def click_module(self, module, *dummy):
-               if not module or module == self.cur_module: return
-               self.focus(module)
-               
-       def focus(self, module):
-               self.cur_module = module
-               self.setup()
-               
-       def click_var(self, var, *dummy):
-               if not var: return
-               m = sys.modules[self.cur_module]
-               dict = m.__dict__
-               self.parent.browse_var(dict[var])
-                               
-       def click_source(self, lineno, inborder):
-               if not inborder:
-                       self.source_select(lineno)
-                       self.cur_lineno = lineno
-               if lineno == None or not self.cur_source or not inborder:
-                       return
-               if self.parent.dbg.get_break(self.cur_source, lineno):
-                       self.parent.dbg.clear_break(self.cur_source, lineno)
-               else:
-                       self.parent.dbg.set_break(self.cur_source, lineno)
-               self.parent.breaks_changed(self.cur_source)
-               
-       def breaks_changed(self, filename):
-               if filename == self.cur_source:
-                       list = self.parent.dbg.get_file_breaks(filename)
-                       self.source_setbreaks(list)
-               
-       def click_edit(self):
-               lino = self.cur_lineno
-               if not lino:
-                       lino = 1
-               if self.cur_source:
-                       self.parent.edit(self.cur_source, lino)
-               
-                       
-def getmodulenames():
-       """Return a list of all current modules, sorted"""
-       list = sys.modules.keys()[:]
-       list.sort()
-       return list
-       
-def getmodulevars(name):
-       """For given module return lists with names and values"""
-       m = sys.modules[name]
-       try:
-               dict = m.__dict__
-       except AttributeError:
-               dict = {}
-       return getvarsfromdict(dict)
-       
-def getvarsfromdict(dict, show_complex=1, show_system=1):
-       allnames = dict.keys()[:]
-       allnames.sort()
-       names = []
-       for n in allnames:
-               if not show_complex:
-                       if not type(dict[n]) in SIMPLE_TYPES:
-                               continue
-               if not show_system:
-                       if n[:2] == '__' and n[-2:] == '__':
-                               continue
-               names.append(n)
-       values = []
-       for n in names:
-               v = pretty(dict[n])
-               values.append(v)
-       return names, values
-       
-def pretty(var):
-       t = type(var)
-       if t == types.FunctionType: return '<function>'
-       if t == types.ClassType: return '<class>'
-       return `var`
-       
-def getframelineno(frame):
-       """Given a frame return the line number"""
-       return getcodelineno(frame.f_code)
-       
-def getfunclineno(func):
-       """Given a function return the line number"""
-       return getcodelineno(func.func_code)
-       
-def getcodelineno(cobj):
-       """Given a code object return the line number"""
-       code = cobj.co_code
-       lineno = -1
-       if ord(code[0]) == 127: # SET_LINENO instruction
-               lineno = ord(code[1]) | (ord(code[2]) << 8)
-       return lineno
-
-def getframemodname(frame):
-       """Given a frame return the module name"""
-       globals = frame.f_globals
-       if globals.has_key('__name__'):
-               return globals['__name__']
-       return None
diff --git a/Mac/Unsupported/twit/mac_widgets.py b/Mac/Unsupported/twit/mac_widgets.py
deleted file mode 100644 (file)
index d52748b..0000000
+++ /dev/null
@@ -1,317 +0,0 @@
-from FrameWork import *
-import Win
-import Qd
-import Controls
-import Ctl
-import TE
-import List
-import os
-import string
-import macfs
-
-SCROLLBAR=16
-MARGIN=2
-ICONSIZE=16
-TEXTWIDTH=4096 # More-or-less random value
-
-TEXTFONT=4
-TEXTSIZE=9
-
-# Resource numbers
-PIC_CURRENT=500
-PIC_BREAK=501
-
-picture_cache={}
-
-class MT_TextWidget:
-       def __init__(self, wid, r):
-               self.wid = wid
-               self.rect = r
-               left, top, right, bottom = r
-               self.terect = left+MARGIN+ICONSIZE, top+MARGIN, \
-                               right-(MARGIN+SCROLLBAR), bottom-(MARGIN+SCROLLBAR)
-               dr = self.terect[0], self.terect[1], TEXTWIDTH, self.terect[3]
-               Qd.SetPort(wid)
-               Qd.TextFont(TEXTFONT)
-               Qd.TextSize(TEXTSIZE)
-               self.ted = TE.TENew(dr, self.terect)
-               self.ted.TEAutoView(1)
-               self.activate(1)
-               
-               rect = right-SCROLLBAR, top, right, bottom-SCROLLBAR+1
-               self.bary = Ctl.NewControl(self.wid, rect, "", 1, 0, 0, 0, 16, 0)
-               rect = left, bottom-SCROLLBAR, right-SCROLLBAR+1, bottom
-               self.barx = Ctl.NewControl(self.wid, rect, "", 1, 0, 0, 0, 16, 0)
-               
-               self.have_data = 0
-               self.line_index = []
-               
-       def close(self):
-               del self.barx
-               del self.bary
-               del self.ted
-               
-       def scrollbars(self):
-               pass
-               
-       def setcontent(self, file):
-               self.line_index = []
-               if file == None:
-                       data = ''
-                       self.have_data = 0
-               else:
-                       try:
-                               fp = open(file, 'rb') # NOTE the binary
-                               data = fp.read()
-                               self.have_data = 1
-                       except IOError, arg:
-                               data = 'Cannot open file:\r'+`arg`
-                               self.have_data = 0
-               if len(data) > 32767:
-                       self.have_data = 0
-                       data = 'File too big'
-               self.ted.TESetText(data)
-               if self.have_data:
-                       cur = 0
-                       while 1:
-                               self.line_index.append(cur)
-                               try:
-                                       cur = string.index(data, '\r', cur+1)
-                               except ValueError:
-                                       break
-                       self.line_index.append(len(data))
-               self.wid.InvalWindowRect(self.rect)
-               self.ted.TESetSelect(0,0)
-               self.ted.TECalText()
-               self.ted.TESelView()
-               self.setscrollbars()
-               
-       def setscrollbars(self):
-               docleft, doctop, docright, docbot = self.ted.destRect
-               winleft, wintop, winright, winbot = self.ted.viewRect
-               docbot = self.ted.nLines*self.ted.lineHeight + doctop
-               self.setbar(self.barx, docleft, docright, winleft, winright)
-               self.setbar(self.bary, doctop, docbot, wintop, winbot)
-               
-       def setbar(self, bar, minmin, maxmax, curmin, curmax):
-               if maxmax-minmin > 32767 or (curmin <= minmin and curmax >= maxmax):
-                       bar.SetControlMinimum(0)
-                       bar.SetControlMaximum(0)
-                       bar.SetControlValue(0)
-                       return
-               bar.SetControlMinimum(minmin)
-               bar.SetControlMaximum(maxmax-(curmax-curmin))
-               bar.SetControlValue(curmin)
-
-       def update(self, rgn):
-               Qd.EraseRect(self.terect)
-               Qd.FrameRect(self.rect)
-               self.ted.TEUpdate(self.terect)
-               
-       def activate(self, onoff):
-               if onoff:
-                       self.ted.TEActivate()
-               else:
-                       self.ted.TEDeactivate()
-
-       def select(self, line):
-               if line == None or line <= 0 or not self.have_data:
-                       self.ted.TESetSelect(0,0)
-               else:
-                       line = line - 1
-                       if line > len(self.line_index)-1: line = len(self.line_index)-1
-                       if line == 1:
-                               self.ted.TESetSelect(0, self.line_index[1])
-                       else:
-                               self.ted.TESetSelect(self.line_index[line]+1, self.line_index[line+1])
-               self.setscrollbars()
-               
-       def click(self, where, modifiers):
-               # First check scrollbars
-               ctltype, control = Ctl.FindControl(where, self.wid)
-               if ctltype and control:
-                       partcode = control.TrackControl(where)
-                       if partcode:
-                               self.controlhit(control, partcode)
-                       return None, 0
-               off = self.ted.TEGetOffset(where)
-               inborder = where[0] < self.terect[0]
-               l, t, r, b = self.terect
-               if l <= where[0] <= r and t <= where[1] <= b or inborder:
-                       return self.offsettoline(off), inborder
-               return None, 0  # In the grow box or something.
-               
-       def offsettoline(self, offset):
-               for i in range(len(self.line_index)):
-                       if offset < self.line_index[i]:
-                               return i   # Not i-1: 1-based line numbers in files
-               return None
-
-       def controlhit(self, control, partcode):
-               if partcode <> Controls.inThumb:
-                       if control == self.barx:
-                               if partcode == Controls.inUpButton:
-                                       delta = -10
-                               if partcode == Controls.inDownButton:
-                                       delta = 10
-                               if partcode == Controls.inPageUp:
-                                       delta = 10-(self.terect[2]-self.terect[0])
-                               if partcode == Controls.inPageDown:
-                                       delta = (self.terect[2]-self.terect[0])-10
-                               old = control.GetControlValue()
-                               control.SetControlValue(old+delta)
-                       if control == self.bary:
-                               if partcode == Controls.inUpButton:
-                                       delta = -self.ted.lineHeight
-                               if partcode == Controls.inDownButton:
-                                       delta = self.ted.lineHeight
-                               if partcode == Controls.inPageUp:
-                                       delta = self.ted.lineHeight-(self.terect[3]-self.terect[1])
-                               if partcode == Controls.inPageDown:
-                                       delta = (self.terect[3]-self.terect[1])-self.ted.lineHeight
-                               old = control.GetControlValue()
-                               control.SetControlValue(old+delta)
-               newx = self.barx.GetControlValue()
-               newy = self.bary.GetControlValue()
-               oldx = self.ted.viewRect[0]
-               oldy = self.ted.viewRect[1]
-               self.ted.TEPinScroll(oldx-newx, oldy-newy)
-               self.setscrollbars() # XXXX Bibbert, maar hoe anders?
-                       
-class MT_IconTextWidget(MT_TextWidget):
-       def __init__(self, wid, r):
-               MT_TextWidget.__init__(self, wid, r)
-               self.breakpointlist = []
-               self.curline = None
-               self.iconrect = (self.rect[0]+1, self.rect[1]+1, 
-                               self.terect[0]-1, self.rect[3]-SCROLLBAR)
-               self.curlinerange = (self.terect[1]+self.ted.lineHeight,
-                               self.terect[3]-2*self.ted.lineHeight)
-               self.piccurrent = PIC_CURRENT
-               
-       def setbreaks(self, list):
-               self.breakpointlist = list[:]
-               Qd.SetPort(self.wid)
-               self.wid.InvalWindowRect(self.iconrect)
-               
-       def setcurline(self, line, pic=PIC_CURRENT):
-               self.curline = line
-               self.piccurrent = pic
-               Qd.SetPort(self.wid)
-               self.showline(line)
-
-       def showline(self, line):
-               if line <= 0: line = 1
-               if line >= len(self.line_index): line = len(self.line_index)-1
-               if line < 0: return
-               off = self.line_index[line]
-               x, y = self.ted.TEGetPoint(off)
-               if self.curlinerange[0] <= y <= self.curlinerange[1]:
-                       return # It is in view
-               middle = (self.curlinerange[0]+self.curlinerange[1])/2
-               self.ted.TEPinScroll(0, middle-y) # Of andersom?
-               self.setscrollbars()
-               
-       def setscrollbars(self):
-               MT_TextWidget.setscrollbars(self)
-               self.wid.InvalWindowRect(self.iconrect)
-                               
-       def update(self, rgn):
-               MT_TextWidget.update(self, rgn)
-               self.drawallicons()
-               
-       def drawallicons(self):
-               Qd.EraseRect(self.iconrect)
-               Qd.MoveTo(self.iconrect[2], self.iconrect[1])
-               Qd.LineTo(self.iconrect[2], self.iconrect[3])
-               topoffset = self.ted.TEGetOffset((self.terect[0], self.terect[1]))
-               botoffset = self.ted.TEGetOffset((self.terect[0], self.terect[3]))
-               topline = self.offsettoline(topoffset)
-               botline = self.offsettoline(botoffset)
-               if topline == None: topline = 1 # ???
-               if botline == None: botline = len(self.line_index)
-               for i in self.breakpointlist:
-                       if topline <= i <= botline:
-                               self.draw1icon(i, PIC_BREAK)
-               if self.curline <> None and topline <= self.curline <= botline:
-                       self.draw1icon(self.curline, self.piccurrent)
-                       
-       def draw1icon(self, line, which):
-               offset = self.line_index[line]
-               botx, boty = self.ted.TEGetPoint(offset)
-               rect = self.rect[0]+2, boty-self.ted.lineHeight, \
-                       self.rect[0]+ICONSIZE-2, boty
-               if not picture_cache.has_key(which):
-                       picture_cache[which] = Qd.GetPicture(which)
-               self.drawicon(rect, picture_cache[which])
-               
-       def drawicon(self, rect, which):
-               Qd.DrawPicture(which, rect)
-
-class MT_IndexList:
-       def __init__(self, wid, rect, width):
-               # wid is the window (dialog) where our list is going to be in
-               # rect is it's item rectangle (as in dialog item)
-               self.rect = rect
-               rect2 = rect[0]+1, rect[1]+1, rect[2]-16, rect[3]-1
-               self.list = List.LNew(rect2, (0, 0, width, 0), (0,0), 0, wid,
-                                       0, 1, 0, 1)
-               self.wid = wid
-               self.width = width
-       
-       def setcontent(self, *content):
-               self.list.LDelRow(0, 1)
-               self.list.LSetDrawingMode(0)
-               self.list.LAddRow(len(content[0]), 0)
-               for x in range(len(content)):
-                       column = content[x]
-                       for y in range(len(column)):
-                               self.list.LSetCell(column[y], (x, y))
-               self.list.LSetDrawingMode(1)
-               self.wid.InvalWindowRect(self.rect)
-
-       def deselectall(self):
-               while 1:
-                       ok, pt = self.list.LGetSelect(1, (0,0))
-                       if not ok: return
-                       self.list.LSetSelect(0, pt)
-                       
-       def select(self, num):
-               self.deselectall()
-               if num < 0:
-                       return
-               for i in range(self.width):
-                       self.list.LSetSelect(1, (i, num))
-                       
-       def click(self, where, modifiers):
-               is_double = self.list.LClick(where, modifiers)
-               ok, (x, y) = self.list.LGetSelect(1, (0, 0))
-               if ok:
-                       return y, is_double
-               else:
-                       return None, is_double
-                       
-       # draw a frame around the list, List Manager doesn't do that
-       def drawframe(self):
-               Qd.SetPort(self.wid)
-               Qd.FrameRect(self.rect)
-               
-       def update(self, rgn):
-               self.drawframe()
-               self.list.LUpdate(rgn)
-               
-       def activate(self, onoff):
-               self.list.LActivate(onoff)
-               
-class MT_AnyList(MT_IndexList):
-
-       def click(self, where, modifiers):
-               is_double = self.list.LClick(where, modifiers)
-               ok, (x, y) = self.list.LGetSelect(1, (0, 0))
-               if ok:
-                       self.select(y)
-                       field0 = self.list.LGetCell(1000,(0,y))
-               else:
-                       field0 = None
-               return field0, is_double
-       
diff --git a/Mac/Unsupported/twit/mactwit_app.py b/Mac/Unsupported/twit/mactwit_app.py
deleted file mode 100644 (file)
index 8c568df..0000000
+++ /dev/null
@@ -1,267 +0,0 @@
-import FrameWork
-import MiniAEFrame
-import EasyDialogs
-import AE
-import AppleEvents
-import Res
-import sys
-import Qd
-import Evt
-import Events
-import Dlg
-import Win
-import Menu
-import TwitCore
-import mactwit_mod
-import mactwit_stack
-import mactwit_browser
-import mactwit_edit
-import macfs
-import string
-
-# Resource-id (for checking existence)
-ID_MODULES=500
-
-ID_ABOUT=502
-
-_arrow = Qd.qd.arrow
-_watch = Qd.GetCursor(4).data
-
-class Twit(FrameWork.Application, TwitCore.Application, MiniAEFrame.AEServer):
-       """The twit main class - mac-dependent part"""
-
-       def __init__(self, sessiontype, arg=None):
-               # First init menus, etc.
-               self.app_menu_bar = Menu.GetMenuBar()
-               FrameWork.Application.__init__(self)
-               MiniAEFrame.AEServer.__init__(self)
-               AE.AESetInteractionAllowed(AppleEvents.kAEInteractWithAll)
-               self.installaehandler('aevt', 'odoc', self.ae_open_doc)
-               self.installaehandler('aevt', 'quit', self.do_quit)
-               self.installaehandler('pyth', 'EXEC', self.do_bbpyexec) # BBpy execute event
-
-               self.dbg_menu_bar = Menu.GetMenuBar()
-               self.setstate(sessiontype)
-               self._quitting = 0
-               self.real_quit = 0
-               self.window_aware = 1
-
-               # Next create our dialogs
-               self.mi_init(sessiontype, arg)
-               while 1:
-                       if self.real_quit:
-                               break
-                       if self.initial_cmd:
-                               self.to_debugger()      # Will get to mainloop via debugger
-                       else:
-                               self.one_mainloop()     # Else do it ourselves.
-                               
-       def switch_to_app(self):
-               if not self.window_aware:
-                       return
-               self.dbg_menu_bar = Menu.GetMenuBar()
-               Menu.SetMenuBar(self.app_menu_bar)
-               Menu.DrawMenuBar()
-               
-       def switch_to_dbg(self):
-               if not self.window_aware:
-                       return
-               self.app_menu_bar = Menu.GetMenuBar()
-               Menu.SetMenuBar(self.dbg_menu_bar)
-               Menu.DrawMenuBar()
-               self.run_dialog.force_redraw()
-               if self.module_dialog:
-                       self.module_dialog.force_redraw()
-
-       def makeusermenus(self):
-               self.filemenu = m = FrameWork.Menu(self.menubar, "Debug")
-               self._openitem = FrameWork.MenuItem(m, "Run File...", "O", self.do_open)
-               self._runitem = FrameWork.MenuItem(m, "Run String...", "R", self.do_run)
-               FrameWork.Separator(m)
-               self._awareitem = FrameWork.MenuItem(m, "Window-aware", "", self.do_aware)
-               self._awareitem.check(1)
-               FrameWork.Separator(m)
-               self._quititem = FrameWork.MenuItem(m, "Quit", "Q", self.do_quit)
-               
-               self.controlmenu = m = FrameWork.Menu(self.menubar, "Control")
-               self._stepitem = FrameWork.MenuItem(m, "Step Next", "N", self.do_step)
-               self._stepinitem = FrameWork.MenuItem(m, "Step In", "S", self.do_stepin)
-               self._stepoutitem = FrameWork.MenuItem(m, "Step Out", "U", self.do_stepout)
-               self._continueitem = FrameWork.MenuItem(m, "Continue", "G", self.do_continue)
-               FrameWork.Separator(m)
-               self._killitem = FrameWork.MenuItem(m, "Kill", "K", self.do_kill)
-               
-       def setstate(self, state):
-               self.state = state
-               if state == 'run':
-                       self._stepitem.enable(1)
-                       self._stepoutitem.enable(1)
-                       self._stepinitem.enable(1)
-                       self._continueitem.enable(1)
-                       self._killitem.enable(1)
-               else:
-                       self._stepitem.enable(0)
-                       self._stepoutitem.enable(0)
-                       self._stepinitem.enable(0)
-                       self._continueitem.enable(0)
-                       self._killitem.enable(0)
-                       
-       def asknewsession(self):
-               if self.state == 'none':
-                       return 1
-               if EasyDialogs.AskYesNoCancel("Abort current debug session?") == 1:
-                       self.quit_bdb()
-                       return 1
-               return 0
-
-       def do_about(self, id, item, window, event):
-               import time
-               d = Dlg.GetNewDialog(ID_ABOUT, -1)
-               if not d:
-                       return
-               w = d.GetDialogWindow()
-               port = w.GetWindowPort()
-               l, t, r, b = port.portRect
-               sl, st, sr, sb = Qd.qd.screenBits.bounds
-               x = ((sr-sl) - (r-l)) / 2
-               y = ((sb-st-16) - (b-t)) / 5
-               w.MoveWindow(x, y, 0)
-               w.ShowWindow()
-               d.DrawDialog()
-               
-               tp, h, rect = d.GetDialogItem(2)
-               x0, y0, x1, y1 = rect
-               ybot = y0 + 32
-               
-               rgn = Qd.NewRgn()
-               Qd.SetPort(d)
-               ok, evt = self.getevent(Events.mDownMask|Events.keyDownMask, 1)
-               if ok: return
-               (what, message, when, where, modifiers) = event
-               delta_t = 128
-               nexttime = when+delta_t
-               while ybot < y1:
-                       # Do the animation, if it is time
-                       if when > nexttime:
-                               Qd.ScrollRect((x0, y0, x1, ybot), 0, 1, rgn)
-                               y0 = y0 + 1
-                               ybot = ybot + 1
-                               # And update next time
-                               delta_t = int(delta_t*0.6)-1
-                               if delta_t < 0:
-                                       delta_t = 0
-                               nexttime = when + delta_t
-                       # Check for an event.
-                       ok, evt = self.getevent(Events.mDownMask|Events.keyDownMask, 0)
-                       if ok: return
-                       (what, message, when, where, modifiers) = evt
-               while 1:
-                       ok, evt = self.getevent(Events.mDownMask|Events.keyDownMask, -1)
-                       if ok: return
-                       
-       def do_open(self, *args):
-               if not self.asknewsession():
-                       return
-               fss, ok = macfs.StandardGetFile('TEXT')
-               if not ok: return
-               self.runfile(fss.as_pathname())
-               
-       def ae_open_doc(self, object=None, **args):
-               if not object: return
-               if self.state <> 'none':
-                       if AE.AEInteractWithUser(AppleEvents.kAEDefaultTimeout) == 0:
-                               if not self.asknewsession():
-                                       return
-               if type(object) == type([]):
-                       object = object[0]
-               fss, changed = object.Resolve()
-               self.runfile(fss.as_pathname())
-               
-       def do_bbpyexec(self, object=None, NAME=None, **args):
-               if type(object) <> type(''):
-                       if AE.AEInteractWithUser(AppleEvents.kAEDefaultTimeout) == 0:
-                               EasyDialogs.Message('EXEC AppleEvent arg should be a string')
-                       return
-               if self.state <> 'none':
-                       if AE.AEInteractWithUser(AppleEvents.kAEDefaultTimeout) == 0:
-                               if not self.asknewsession():
-                                       return
-               stuff = string.splitfields(object, '\r')
-               stuff = string.joinfields(stuff, '\n')
-               self.runstring(stuff)
-                       
-       def do_run(self, *args):
-               if not self.asknewsession():
-                       return
-               self.run()
-               
-       def do_aware(self, *args):
-               self.window_aware = not self.window_aware
-               self._awareitem.check(self.window_aware)
-               
-       def do_quit(self, *args):
-               self._quit()                    # Signal FrameWork.Application to stop
-               self.real_quit = 1
-               self.quit_bdb()                 # Tell debugger to quit.
-
-       def do_step(self, *args):
-               self.run_dialog.click_step()
-               
-       def do_stepin(self, *args):
-               self.run_dialog.click_step_in()
-               
-       def do_stepout(self, *args):
-               self.run_dialog.click_step_out()
-               
-       def do_continue(self, *args):
-               self.run_dialog.click_continue()
-               
-       def do_kill(self, *args):
-               self.run_dialog.click_kill()
-                                       
-       def exit_mainloop(self):
-               self._quit()                    # Signal FrameWork.Application to stop
-               self.real_quit = 0
-               
-       def one_mainloop(self):
-               self.quitting = 0
-               self.mainloop()
-
-       def SetCursor(self):
-               Qd.SetCursor(_arrow)
-       
-       def SetWatch(self):
-               Qd.SetCursor(_watch)
-               
-       def AskString(self, *args):
-               return apply(EasyDialogs.AskString, args)
-               
-       def Message(self, *args):
-               return apply(EasyDialogs.Message, args)
-
-       def new_module_browser(self, parent):
-               return mactwit_mod.ModuleBrowser(parent)
-               
-       def new_stack_browser(self, parent):
-               return mactwit_stack.StackBrowser(parent)
-               
-       def new_var_browser(self, parent, var):
-               return mactwit_browser.VarBrowser(parent).open(var)
-       
-       def edit(self, file, line):
-               return mactwit_edit.edit(file, line)
-       
-               
-def Initialize():
-       try:
-               # if this doesn't raise an error, we are an applet containing the 
-               # necessary resources or we have been initialized already
-               # so we don't have to bother opening the resource file
-               dummy = Res.GetResource('DLOG', ID_MODULES)
-       except Res.Error:
-               try:
-                       Res.FSpOpenResFile("Twit.rsrc", 1)
-               except Res.Error, arg:
-                       EasyDialogs.Message("Cannot open Twit.rsrc: "+arg[1])
-                       sys.exit(1)
-
diff --git a/Mac/Unsupported/twit/mactwit_browser.py b/Mac/Unsupported/twit/mactwit_browser.py
deleted file mode 100644 (file)
index 070de43..0000000
+++ /dev/null
@@ -1,429 +0,0 @@
-"""A simple Mac-only browse utility to peek at the inner data structures of Python."""
-# Minor modifications by Jack to facilitate incorporation in twit.
-
-# june 1996
-# Written by Just van Rossum <just@knoware.nl>, please send comments/improvements.
-# Loosely based on Jack Jansens's PICTbrowse.py, but depends on his fabulous FrameWork.py
-# XXX Some parts are *very* poorly solved. Will fix. Guido has to check if all the
-# XXX "python-peeking" is done correctly. I kindof reverse-engineered it ;-)
-
-# disclaimer: although I happen to be the brother of Python's father, programming is
-# not what I've been trained to do. So don't be surprised if you find anything that's not 
-# as nice as it could be...
-
-# XXX to do:
-# Arrow key support
-# Copy & Paste? 
-# MAIN_TEXT item should not contain (type); should be below or something. 
-# MAIN_TEXT item should check if a string is binary or not: convert to '/000' style
-# or convert newlines. 
-
-version = "1.0"
-
-import FrameWork
-import EasyDialogs
-import Dlg
-import Res
-import Qd
-import List
-import sys
-from Types import *
-from QuickDraw import *
-import string
-import time
-import os
-
-# The initial object to start browsing with. Can be anything, but 'sys' makes kindof sense.
-start_object = sys
-
-# Resource definitions
-ID_MAIN = 503
-NUM_LISTS = 4  # the number of lists used. could be changed, but the dlg item numbers should be consistent
-MAIN_TITLE = 3 # this is only the first text item, the other three ID's should be 5, 7 and 9
-MAIN_LIST = 4  # this is only the first list, the other three ID's should be 6, 8 and 10
-MAIN_TEXT = 11
-MAIN_LEFT = 1
-MAIN_RIGHT = 2
-MAIN_RESET = 12
-MAIN_CLOSE = 13
-MAIN_LINE = 14
-
-def Initialize():
-       # this bit ensures that this module will also work as an applet if the resources are
-       # in the resource fork of the applet
-       # stolen from Jack, so it should work(?!;-)
-       try:
-               # if this doesn't raise an error, we are an applet containing the necessary resources
-               # so we don't have to bother opening the resource file
-               dummy = Res.GetResource('DLOG', ID_MAIN)
-       except Res.Error:
-               savewd = os.getcwd()
-               ourparentdir = os.path.split(openresfile.func_code.co_filename)[0]
-               os.chdir(ourparentdir)          
-               try:
-                       Res.FSpOpenResFile("mactwit_browse.rsrc", 1)
-               except Res.Error, arg:
-                       EasyDialogs.Message("Cannot open mactwit_browse.rsrc: "+arg[1])
-                       sys.exit(1)
-               os.chdir(savewd)
-
-def main():
-       Initialize()
-       PythonBrowse()
-
-# this is all there is to it to make an application. 
-class PythonBrowse(FrameWork.Application):
-       def __init__(self):
-               FrameWork.Application.__init__(self)
-               VarBrowser(self).open(start_object)
-               self.mainloop()
-       
-       def do_about(self, id, item, window, event):
-               EasyDialogs.Message(self.__class__.__name__ + " version " + version + "\rby Just van Rossum")
-       
-       def quit(self, *args):
-               raise self
-
-class MyList:
-       def __init__(self, wid, rect, itemnum):
-               # wid is the window (dialog) where our list is going to be in
-               # rect is it's item rectangle (as in dialog item)
-               # itemnum is the itemnumber in the dialog
-               self.rect = rect
-               rect2 = rect[0]+1, rect[1]+1, rect[2]-16, rect[3]-1             # Scroll bar space, that's 15 + 1, Jack!
-               self.list = List.LNew(rect2, (0, 0, 1, 0), (0,0), 0, wid,
-                                       0, 1, 0, 1)
-               self.wid = wid
-               self.active = 0
-               self.itemnum = itemnum
-       
-       def setcontent(self, content, title = ""):
-               # first, gather some stuff
-               keylist = []
-               valuelist = []
-               thetype = type(content)
-               if thetype == DictType:
-                       keylist = content.keys()
-                       keylist.sort()
-                       for key in keylist:
-                               valuelist.append(content[key])
-               elif thetype == ListType:
-                       keylist = valuelist = content
-               elif thetype == TupleType:
-                       
-                       keylist = valuelist = []
-                       for i in content:
-                               keylist.append(i)
-               else:
-                       # XXX help me! is all this correct? is there more I should consider???
-                       # XXX is this a sensible way to do it in the first place????
-                       # XXX I'm not familiar enough with Python's guts to be sure. GUIDOOOOO!!!
-                       if hasattr(content, "__dict__"):
-                               keylist = keylist + content.__dict__.keys()
-                       if hasattr(content, "__methods__"):
-                               keylist = keylist + content.__methods__
-                       if hasattr(content, "__members__"):
-                               keylist = keylist + content.__members__
-                       if hasattr(content, "__class__"):
-                               keylist.append("__class__")
-                       if hasattr(content, "__bases__"):
-                               keylist.append("__bases__")
-                       if hasattr(content, "__name__"):
-                               title = content.__name__
-                               if "__name__" not in keylist:
-                                       keylist.append("__name__")
-                       keylist.sort()
-                       for key in keylist:
-                               valuelist.append(getattr(content, key))
-               if content <> None:
-                       title = title + "\r" + cleantype(content)
-               # now make that list!
-               tp, h, rect = self.wid.GetDialogItem(self.itemnum - 1)
-               Dlg.SetDialogItemText(h, title[:255])
-               self.list.LDelRow(0, 1)
-               self.list.LSetDrawingMode(0)
-               self.list.LAddRow(len(keylist), 0)
-               for i in range(len(keylist)):
-                       self.list.LSetCell(str(keylist[i]), (0, i))
-               self.list.LSetDrawingMode(1)
-               self.list.LUpdate(self.wid.GetWindowPort().visRgn)
-               self.content = content
-               self.keylist = keylist
-               self.valuelist = valuelist
-               self.title = title
-       
-       # draw a frame around the list, List Manager doesn't do that
-       def drawframe(self):
-               Qd.SetPort(self.wid)
-               Qd.FrameRect(self.rect)
-               rect2 = Qd.InsetRect(self.rect, -3, -3)
-               save = Qd.GetPenState()
-               Qd.PenSize(2, 2)
-               if self.active:
-                       Qd.PenPat(Qd.qd.black)
-               else:
-                       Qd.PenPat(Qd.qd.white)
-               # draw (or erase) an extra frame to indicate this is the acive list (or not)
-               Qd.FrameRect(rect2)
-               Qd.SetPenState(save)
-               
-               
-
-class VarBrowser(FrameWork.DialogWindow):
-       def open(self, start_object, title = ""):
-               FrameWork.DialogWindow.open(self, ID_MAIN)
-               if title <> "":
-                       windowtitle = self.wid.GetWTitle()
-                       self.wid.SetWTitle(windowtitle + " >> " + title)
-               else:
-                       if hasattr(start_object, "__name__"):
-                               windowtitle = self.wid.GetWTitle()
-                               self.wid.SetWTitle(windowtitle + " >> " + str(getattr(start_object, "__name__")) )
-                               
-               self.SetPort()
-               Qd.TextFont(3)
-               Qd.TextSize(9)
-               self.lists = []
-               self.listitems = []
-               for i in range(NUM_LISTS):
-                       self.listitems.append(MAIN_LIST + 2 * i)        # dlg item numbers... have to be consistent
-               for i in self.listitems:
-                       tp, h, rect = self.wid.GetDialogItem(i)
-                       list = MyList(self.wid, rect, i)
-                       self.lists.append(list)
-               self.leftover = []
-               self.rightover = []
-               self.setup(start_object, title)
-               
-       def close(self):
-               self.lists = []
-               self.listitems = []
-               self.do_postclose()
-       
-       def setup(self, start_object, title = ""):
-               # here we set the starting point for our expedition
-               self.start = start_object
-               self.lists[0].setcontent(start_object, title)
-               for list in self.lists[1:]:
-                       list.setcontent(None)
-               
-       def do_listhit(self, event, item):
-               (what, message, when, where, modifiers) = event
-               Qd.SetPort(self.wid)
-               where = Qd.GlobalToLocal(where)
-               for list in self.lists:
-                       list.active = 0
-               list = self.lists[self.listitems.index(item)]
-               list.active = 1
-               for l in self.lists:
-                       l.drawframe()
-               
-               point = (0,0)
-               ok, point = list.list.LGetSelect(1, point)
-               if ok:
-                       oldsel = point[1]
-               else:
-                       oldsel = -1
-               # This should be: list.list.LClick(where, modifiers)
-               # Since the selFlags field of the list is not accessible from Python I have to do it like this.
-               # The effect is that you can't select more items by using shift or command.
-               list.list.LClick(where, 0)
-               
-               index = self.listitems.index(item) + 1
-               point = (0,0)
-               ok, point = list.list.LGetSelect(1, point)
-               if oldsel == point[1]:
-                       return  # selection didn't change, do nothing.
-               if not ok:
-                       for i in range(index, len(self.listitems)):
-                               self.lists[i].setcontent(None)
-                       self.rightover = []
-                       return
-                       
-               if point[1] >= len(list.keylist):
-                       return          # XXX is this still necessary? is ok really true?
-               key = str(list.keylist[point[1]])
-               value = list.valuelist[point[1]]
-               
-               self.settextitem("")
-               thetype = type(value)
-               if thetype == ListType or                               \
-                               thetype == TupleType or                 \
-                               thetype == DictType or                  \
-                               hasattr(value, "__dict__") or           \
-                               hasattr(value, "__methods__") or        \
-                               hasattr(value, "__members__"):  # XXX or, or... again: did I miss something?
-                       if index >= len(self.listitems):
-                               # we've reached the right side of our dialog. move everything to the left
-                               # (by pushing the rightbutton...)
-                               self.do_rightbutton(1)
-                               index = index - 1
-                       newlist = self.lists[index]
-                       newlist.setcontent(value, key)
-               else:
-                       index = index - 1
-                       self.settextitem( str(value) + "\r" + cleantype(value))
-               for i in range(index + 1, len(self.listitems)):
-                       self.lists[i].setcontent(None)
-               self.rightover = []
-       
-       # helper to set the big text item at the bottom of the dialog.
-       def settextitem(self, text):
-               tp, h, rect = self.wid.GetDialogItem(MAIN_TEXT)
-               Dlg.SetDialogItemText(h, text[:255])
-       
-       def do_rawupdate(self, window, event):
-               Qd.SetPort(self.wid)
-               iType, iHandle, iRect = window.GetDialogItem(MAIN_LINE)
-               Qd.FrameRect(iRect)
-               for list in self.lists:
-                       Qd.FrameRect(list.rect)
-                       if list.active:
-                               # see MyList.drawframe
-                               rect2 = Qd.InsetRect(list.rect, -3, -3)
-                               save = Qd.GetPenState()
-                               Qd.PenSize(2, 2)
-                               Qd.FrameRect(rect2)
-                               Qd.SetPenState(save)
-               for list in self.lists:
-                       list.list.LUpdate(self.wid.GetWindowPort().visRgn)
-               
-       def do_activate(self, activate, event):
-               for list in self.lists:
-                       list.list.LActivate(activate)
-               
-       # scroll everything one 'unit' to the left
-       # XXX I don't like the way this works. Too many 'manual' assignments
-       def do_rightbutton(self, force = 0):
-               if not force and self.rightover == []:
-                       return
-               self.scroll(-1)
-               point = (0, 0)
-               ok, point = self.lists[0].list.LGetSelect(1, point)
-               self.leftover.append((point, self.lists[0].content, self.lists[0].title, self.lists[0].active))
-               for i in range(len(self.lists)-1):
-                       point = (0, 0)
-                       ok, point = self.lists[i+1].list.LGetSelect(1, point)
-                       self.lists[i].setcontent(self.lists[i+1].content, self.lists[i+1].title)
-                       self.lists[i].list.LSetSelect(ok, point)
-                       self.lists[i].list.LAutoScroll()
-                       self.lists[i].active = self.lists[i+1].active
-                       self.lists[i].drawframe()
-               if len(self.rightover) > 0:
-                       point, content, title, active = self.rightover[-1]
-                       self.lists[-1].setcontent(content, title)
-                       self.lists[-1].list.LSetSelect(1, point)
-                       self.lists[-1].list.LAutoScroll()
-                       self.lists[-1].active = active
-                       self.lists[-1].drawframe()
-                       del self.rightover[-1]
-               else:
-                       self.lists[-1].setcontent(None)
-                       self.lists[-1].active = 0
-               for list in self.lists:
-                       list.drawframe()
-       
-       # scroll everything one 'unit' to the right
-       def do_leftbutton(self):
-               if self.leftover == []:
-                       return
-               self.scroll(1)
-               if self.lists[-1].content <> None:
-                       point = (0, 0)
-                       ok, point = self.lists[-1].list.LGetSelect(1, point)
-                       self.rightover.append((point, self.lists[-1].content, self.lists[-1].title, self.lists[-1].active ))
-               for i in range(len(self.lists)-1, 0, -1):
-                       point = (0, 0)
-                       ok, point = self.lists[i-1].list.LGetSelect(1, point)
-                       self.lists[i].setcontent(self.lists[i-1].content, self.lists[i-1].title)
-                       self.lists[i].list.LSetSelect(ok, point)
-                       self.lists[i].list.LAutoScroll()
-                       self.lists[i].active = self.lists[i-1].active
-                       self.lists[i].drawframe()
-               if len(self.leftover) > 0:
-                       point, content, title, active = self.leftover[-1]
-                       self.lists[0].setcontent(content, title)
-                       self.lists[0].list.LSetSelect(1, point)
-                       self.lists[0].list.LAutoScroll()
-                       self.lists[0].active = active
-                       self.lists[0].drawframe()
-                       del self.leftover[-1]
-               else:
-                       self.lists[0].setcontent(None)
-                       self.lists[0].active = 0
-       
-       # create some visual feedback when 'scrolling' the lists to the left or to the right
-       def scroll(self, leftright):    # leftright should be 1 or -1
-               # first, build a region containing all list rectangles
-               myregion = Qd.NewRgn()
-               mylastregion = Qd.NewRgn()
-               for list in self.lists:
-                       AddRect2Rgn(list.rect, myregion)
-                       AddRect2Rgn(list.rect, mylastregion)
-               # set the pen, but save it's state first
-               self.SetPort()
-               save = Qd.GetPenState()
-               Qd.PenPat(Qd.qd.gray)
-               Qd.PenMode(srcXor)
-               # how far do we have to scroll?
-               distance = self.lists[1].rect[0] - self.lists[0].rect[0]
-               step = 30
-               lasttime = time.clock() # for delay
-               # do it
-               for i in range(0, distance, step):
-                       if i <> 0:
-                               Qd.FrameRgn(mylastregion)       # erase last region
-                               Qd.OffsetRgn(mylastregion, step * leftright, 0)
-                       # draw gray region
-                       Qd.FrameRgn(myregion)
-                       Qd.OffsetRgn(myregion, step * leftright, 0)
-                       while time.clock() - lasttime < 0.05:
-                               pass    # delay
-                       lasttime = time.clock()
-               # clean up after your dog
-               Qd.FrameRgn(mylastregion)
-               Qd.SetPenState(save)
-       
-       def reset(self):
-               for list in self.lists:
-                       point = (0,0)
-                       ok, point = list.list.LGetSelect(1, point)
-                       if ok:
-                               sel = list.keylist[point[1]]
-                       list.setcontent(list.content, list.title)
-                       if ok:
-                               list.list.LSetSelect(1, (0, list.keylist.index(sel)))
-                               list.list.LAutoScroll()
-       
-       def do_itemhit(self, item, event):
-               if item in self.listitems:
-                       self.do_listhit(event, item)
-               elif item == MAIN_LEFT:
-                       self.do_leftbutton()
-               elif item == MAIN_RIGHT:
-                       self.do_rightbutton()
-               elif item == MAIN_CLOSE:
-                       self.close()
-               elif item == MAIN_RESET:
-                       self.reset()
-
-# helper function that returns a short string containing the type of an arbitrary object
-# eg: cleantype("wat is dit nu weer?") -> '(string)'
-def cleantype(obj):
-       # type() typically returns something like: <type 'string'>
-       items = string.split(str(type(obj)), "'")
-       if len(items) == 3:
-               return '(' + items[1] + ')'
-       else:
-               # just in case, I don't know.
-               return str(type(obj))
-       
-# helper for VarBrowser.scroll
-def AddRect2Rgn(theRect, theRgn):
-       rRgn = Qd.NewRgn()
-       Qd.RectRgn(rRgn, theRect)
-       Qd.UnionRgn(rRgn, theRgn, theRgn)
-
-
-if __name__ == "__main__":
-       main()
diff --git a/Mac/Unsupported/twit/mactwit_edit.py b/Mac/Unsupported/twit/mactwit_edit.py
deleted file mode 100644 (file)
index ace253d..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-"""Edit a file using the MetroWerks editor. Modify to suit your needs"""
-import MacOS
-import aetools
-import Metrowerks_Shell_Suite
-import Required_Suite
-_talker = None
-class MWShell(aetools.TalkTo, 
-                               Metrowerks_Shell_Suite.Metrowerks_Shell_Suite,
-                               Required_Suite.Required_Suite):
-       pass
-def edit(file, line):
-       global _talker
-       if _talker == None:
-               _talker = MWShell('CWIE', start=1)
-       try:
-               _talker.open(file)
-               _talker.Goto_Line(line)
-       except "(MacOS.Error, aetools.Error)":
-               pass
-       
diff --git a/Mac/Unsupported/twit/mactwit_mod.py b/Mac/Unsupported/twit/mactwit_mod.py
deleted file mode 100644 (file)
index d4ce17d..0000000
+++ /dev/null
@@ -1,114 +0,0 @@
-# A stab at a python debugger
-import Res
-import Qd
-import Dlg
-import Win
-import FrameWork
-import EasyDialogs
-import sys
-import TwitCore
-from mac_widgets import MT_AnyList, MT_IconTextWidget
-
-# Our dialogs
-ID_MODULES=500
-I_MODULES_TITLE=1
-I_MODULES=2
-I_VARS_TITLE=3
-I_VARS=4
-I_SOURCE_TITLE=5
-I_SOURCE=6
-I_RULER=7
-I_EDIT=8
-
-class ModuleBrowser(FrameWork.DialogWindow, TwitCore.ModuleBrowser):
-       """The module-browser dialog - mac-dependent part"""
-       def open(self, module):
-               FrameWork.DialogWindow.open(self, ID_MODULES)
-               self.SetPort()
-               Qd.TextFont(3)
-               Qd.TextSize(9)
-
-               tp, h, rect = self.wid.GetDialogItem(I_MODULES)
-               self.modules = MT_AnyList(self.wid, rect, 1)
-               tp, h, rect = self.wid.GetDialogItem(I_VARS)
-               self.vars = MT_AnyList(self.wid, rect, 2)
-               tp, h, rect = self.wid.GetDialogItem(I_SOURCE)
-               self.source = MT_IconTextWidget(self.wid, rect)
-
-               self.mi_open(module)
-               
-       def setsource(self, msg):
-               tp, h, rect = self.wid.GetDialogItem(I_SOURCE_TITLE)
-               if self.cur_source:
-                       Dlg.SetDialogItemText(h, self.cur_source)
-               else:
-                       Dlg.SetDialogItemText(h, msg)
-               self.source.setcontent(self.cur_source)
-
-       def source_setbreaks(self, list):
-               self.source.setbreaks(list)
-               
-       def source_setline(self, lineno, icon):
-               self.source.setcurline(lineno, icon)
-               
-       def source_select(self, lineno):
-               self.source.select(lineno)
-
-       def setmodulenames(self):
-               self.modules.setcontent(self.cont_modules)
-
-       def module_select(self, number):
-               self.modules.select(number)
-
-       def setvars(self):
-               self.vars.setcontent(self.cont_varnames, self.cont_varvalues)
-                               
-       def do_itemhit(self, item, event):
-               (what, message, when, where, modifiers) = event
-               Qd.SetPort(self.wid)
-               where = Qd.GlobalToLocal(where)
-               
-               if item == I_MODULES:
-                       new_module, double = self.modules.click(where, 0)
-                       self.click_module(new_module)
-               elif item == I_VARS:
-                       new_var, double = self.vars.click(where, 0)
-                       if double:
-                               self.click_var(new_var)
-               elif item == I_SOURCE:
-                       lineno, inborder = self.source.click(where, 0)
-                       if lineno <> None and lineno >= 0:
-                               self.click_source(lineno, inborder)
-               elif item == I_EDIT:
-                       self.click_edit()
-       
-       def do_rawupdate(self, window, event):
-               Qd.SetPort(self.wid)
-               rgn = self.wid.GetWindowPort().visRgn
-               tp, h, rect = self.wid.GetDialogItem(I_RULER)
-               Qd.MoveTo(rect[0], rect[1])
-               Qd.LineTo(rect[2], rect[1])
-               self.modules.update(rgn)
-               self.vars.update(rgn)
-               self.source.update(rgn)
-               
-       def force_redraw(self):
-               Qd.SetPort(self.wid)
-               self.wid.InvalWindowRgn(self.wid.GetWindowPort().visRgn)
-               
-       def do_activate(self, activate, event):
-               self.modules.activate(activate)
-               self.vars.activate(activate)
-               self.source.activate(activate)
-               
-       def close(self):
-               self.parent.module_dialog = None
-               self.source.close()
-               del self.modules
-               del self.vars
-               del self.source
-               self.do_postclose()
-
-if __name__ == '__main__':
-       main()
-       
diff --git a/Mac/Unsupported/twit/mactwit_stack.py b/Mac/Unsupported/twit/mactwit_stack.py
deleted file mode 100644 (file)
index cba6b14..0000000
+++ /dev/null
@@ -1,159 +0,0 @@
-# A stab at a python debugger
-import Res
-import Qd
-import Dlg
-import Win
-import FrameWork
-import EasyDialogs
-import sys
-import TwitCore
-from mac_widgets import MT_AnyList, MT_IndexList, MT_IconTextWidget
-
-# Our dialogs
-ID_STACK=501
-I_STACK_TITLE=1
-I_STACK=2
-I_VARS_TITLE=3
-I_VARS=4
-I_SOURCE_TITLE=5
-I_SOURCE=6
-I_EXC_TITLE=7
-I_EXC=8
-I_EXCVALUE_TITLE=9
-I_EXCVALUE=10
-I_BROWSE=11
-I_RULER1=12
-I_RULER2=13
-I_STATE_TITLE=14
-I_STATE=15
-I_SHOW_COMPLEX=16
-I_SHOW_SYSTEM=17
-I_EDIT=18
-
-class StackBrowser(FrameWork.DialogWindow, TwitCore.StackBrowser):
-       """The stack-browser dialog - mac-dependent part"""
-       def open(self):
-               FrameWork.DialogWindow.open(self, ID_STACK)
-               self.SetPort()
-               Qd.TextFont(3)
-               Qd.TextSize(9)
-
-               tp, h, rect = self.wid.GetDialogItem(I_STACK)
-               self.stack = MT_IndexList(self.wid, rect, 2)
-               tp, h, rect = self.wid.GetDialogItem(I_VARS)
-               self.vars = MT_AnyList(self.wid, rect, 2)
-               tp, h, rect = self.wid.GetDialogItem(I_SOURCE)
-               self.source = MT_IconTextWidget(self.wid, rect)
-
-               self.mi_open()
-               
-       def setsource(self, msg):
-               tp, h, rect = self.wid.GetDialogItem(I_SOURCE_TITLE)
-               if self.cur_source:
-                       Dlg.SetDialogItemText(h, self.cur_source)
-               else:
-                       Dlg.SetDialogItemText(h, msg)
-               self.source.setcontent(self.cur_source)
-               
-       def source_setbreaks(self, list):
-               self.source.setbreaks(list)
-               
-       def source_setline(self, lineno, icon):
-               self.source.setcurline(lineno, icon)
-               
-       def source_select(self, lineno):
-               self.source.select(lineno)
-
-       def stack_setcontent(self, names, locations):
-               self.stack.setcontent(names, locations)
-
-       def stack_select(self, number):
-               self.stack.select(number)
-               
-       def setvars(self):
-               self.vars.setcontent(self.cont_varnames, self.cont_varvalues)
-               
-       def setexception(self, name, value):
-               if name == None:
-                       self.wid.HideDialogItem(I_EXC)
-                       self.wid.HideDialogItem(I_EXC_TITLE)
-                       value = None
-               else:
-                       self.wid.ShowDialogItem(I_EXC)
-                       self.wid.ShowDialogItem(I_EXC_TITLE)
-                       tp, h, rect = self.wid.GetDialogItem(I_EXC)
-                       Dlg.SetDialogItemText(h, name)
-               if value == None:
-                       self.wid.HideDialogItem(I_EXCVALUE)
-                       self.wid.HideDialogItem(I_EXCVALUE_TITLE)
-               else:
-                       self.wid.ShowDialogItem(I_EXCVALUE)
-                       self.wid.ShowDialogItem(I_EXCVALUE_TITLE)
-                       tp, h, rect = self.wid.GetDialogItem(I_EXCVALUE)
-                       Dlg.SetDialogItemText(h, value)
-               
-       def setprogramstate(self, msg):
-               tp, h, rect = self.wid.GetDialogItem(I_STATE)
-               Dlg.SetDialogItemText(h, msg)
-               
-       def do_itemhit(self, item, event):
-               (what, message, when, where, modifiers) = event
-               Qd.SetPort(self.wid)
-               where = Qd.GlobalToLocal(where)
-                               
-               if item == I_STACK:
-                       new_stackitem, double = self.stack.click(where, 0)
-                       self.click_stack(new_stackitem)
-               elif item == I_VARS:
-                       new_var, double = self.vars.click(where, 0)
-                       if double:
-                               self.click_var(new_var)
-               elif item == I_SOURCE:
-                       lineno, inborder = self.source.click(where, 0)
-                       if lineno <> None and lineno >= 0:
-                               self.click_source(lineno, inborder)
-               elif item == I_BROWSE:
-                       self.click_browse()
-               elif item == I_SHOW_COMPLEX:
-                       self.show_complex = not self.show_complex
-                       self.setup_frame()
-               elif item == I_SHOW_SYSTEM:
-                       self.show_system = not self.show_system
-                       self.setup_frame()
-               elif item == I_EDIT:
-                       self.click_edit()
-                       
-       def set_var_buttons(self):
-               tp, h, rect = self.wid.GetDialogItem(I_SHOW_COMPLEX)
-               h.as_Control().SetControlValue(self.show_complex)
-               tp, h, rect = self.wid.GetDialogItem(I_SHOW_SYSTEM)
-               h.as_Control().SetControlValue(self.show_system)
-       
-       def do_rawupdate(self, window, event):
-               Qd.SetPort(self.wid)
-               rgn = self.wid.GetWindowPort().visRgn
-               tp, h, rect = self.wid.GetDialogItem(I_RULER1)
-               Qd.MoveTo(rect[0], rect[1])
-               Qd.LineTo(rect[2], rect[1])
-               tp, h, rect = self.wid.GetDialogItem(I_RULER2)
-               Qd.MoveTo(rect[0], rect[1])
-               Qd.LineTo(rect[2], rect[1])
-               self.stack.update(rgn)
-               self.vars.update(rgn)
-               self.source.update(rgn)
-
-       def force_redraw(self):
-               Qd.SetPort(self.wid)
-               self.wid.InvalWindowRgn(self.wid.GetWindowPort().visRgn)
-               
-       def do_activate(self, activate, event):
-               self.stack.activate(activate)
-               self.vars.activate(activate)
-               self.source.activate(activate)
-                               
-       def close(self):
-               self.source.close()
-               del self.stack
-               del self.vars
-               del self.source
-               self.do_postclose()
diff --git a/Mac/Unsupported/twit/twit.py b/Mac/Unsupported/twit/twit.py
deleted file mode 100644 (file)
index 2cc3f41..0000000
+++ /dev/null
@@ -1,59 +0,0 @@
-"""twit - The Window-Independent Tracer.
-
-Interface:
-twit.main()                                            Enter debugger in inactive interactive state
-twit.run(stmt, globals, locals)        Enter debugger and start running stmt
-twit.post_mortem(traceback)            Enter debugger in post-mortem mode on traceback
-twit.pm()                                              Enter debugger in pm-mode on sys.last_traceback
-
-main program: nothing but a bit of glue to put it all together.
-
-Jack Jansen, CWI, August 1996."""
-
-import os
-import sys
-
-# Add our directory to path, if needed
-dirname = os.path.split(__file__)[0]
-if not dirname in sys.path:
-       sys.path.append(dirname)
-
-if os.name == 'mac':
-       import MacOS
-       MacOS.splash(502)       # Try to show the splash screen
-       import mactwit_app; twit_app = mactwit_app
-else:
-       try:
-               import _tkinter
-               have_tk = 1
-       except ImportError:
-               have_tk = 0
-       if have_tk:
-               import tktwit_app; twit_app = tktwit_app
-       else:
-               print 'Please implementent machine-dependent code and try again:-)'
-               sys.exit(1)
-       
-import sys
-       
-def main():
-       twit_app.Initialize()
-       if os.name == 'mac':
-               MacOS.splash()
-       twit_app.Twit('none', None)
-       
-def run(statement, globals=None, locals=None):
-       twit_app.Initialize()
-       twit_app.Twit('run', (statement, globals, locals))
-
-def post_mortem(t):
-       Initialize()
-       twit_app.Twit('pm', t)
-       
-def pm():
-       post_mortem(sys.last_traceback)
-       
-if __name__ == '__main__':
-       main()
-       
-       
diff --git a/Mac/Unsupported/twit/twit.rsrc b/Mac/Unsupported/twit/twit.rsrc
deleted file mode 100644 (file)
index a659719..0000000
Binary files a/Mac/Unsupported/twit/twit.rsrc and /dev/null differ
diff --git a/Mac/Unsupported/twit/twittest.py b/Mac/Unsupported/twit/twittest.py
deleted file mode 100644 (file)
index 10d3693..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
-# Test program
-
-def foo(arg1, arg2):
-       bar(arg1+arg2)
-       bar(arg1-arg2)
-       foo(arg1+1, arg2-1)
-       
-def bar(arg):
-       rv = 10/arg
-       print rv
-       
-foo(0,10)
-
diff --git a/Mac/_checkversion.py b/Mac/_checkversion.py
deleted file mode 100644 (file)
index 5c017f4..0000000
+++ /dev/null
@@ -1,16 +0,0 @@
-"""This file (which is sourced, not imported) checks the version of the
-"versioncheck" package. It is also an example of how to format your own
-_checkversion.py file"""
-
-import pyversioncheck
-
-_PACKAGE="MacPython"
-_VERSION="2.1b2"
-_URL="http://www.cwi.nl/~jack/macpythonversion.txt"
-
-try:
-       _myverbose=VERBOSE
-except NameError:
-       _myverbose=1
-       
-pyversioncheck.versioncheck(_PACKAGE, _URL, _VERSION, verbose=_myverbose)
diff --git a/Mac/errno_unix.h b/Mac/errno_unix.h
deleted file mode 100644 (file)
index 00fbe5a..0000000
+++ /dev/null
@@ -1,18 +0,0 @@
-
-#define ENOTDIR                (-120)
-#define EACCES         (-54)
-#define EEXIST         (-48)
-#define EBUSY          (-47)
-#define EROFS          (-44)
-#define ENOENT         (-43)
-#define ENFILE         (-42)
-#define        EIO                     (-36)
-#define ENOSPC         (-34)
-
-#define ESRCH          3
-#define EINTR          4
-#define EBADF          9
-#define ENODEV         19
-#define EINVAL         22
-#define EMFILE         24
-
diff --git a/Mac/fopenRF.c b/Mac/fopenRF.c
deleted file mode 100644 (file)
index 04f192e..0000000
+++ /dev/null
@@ -1,336 +0,0 @@
-
-/*
- *  fopen.c
- *
- *  Copyright (c) 1991 Symantec Corporation.  All rights reserved.
- *
- */
-
-#include <MacHeaders>
-
-#include "stdio.h"
-#include "errno.h"
-#include "string.h"
-#include "ansi_private.h"
-
-extern long _ftype, _fcreator;
-
-#define fcbVPtr(fcb)           (* (VCB **) (fcb + 20))
-#define fcbDirID(fcb)          (* (long *) (fcb + 58))
-#define fcbCName(fcb)          (fcb + 62)
-
-static void setfiletype(StringPtr, int);
-static void stdio_exit(void);
-static int fileio(FILE *, int);
-static int close(FILE *);
-static void replace(unsigned char *, size_t, int, int);
-
-FILE *freopenRF();
-FILE *__openRF();
-
-FILE *
-fopenRF(const char *filename, const char *mode)
-{
-       return(freopenRF(filename, mode, __getfile()));
-}
-
-
-FILE *
-freopenRF(const char *filename, const char *mode, FILE *fp)
-{
-       int omode, oflag;
-       
-               /*  interpret "rwa"  */
-       
-       if (mode[0] == 'r') {
-               omode = fsRdPerm;
-               oflag = 0;
-       }
-       else if (mode[0] == 'w') {
-               omode = fsWrPerm;
-               oflag = F_CREAT+F_TRUNC;
-       }
-       else if (mode[0] == 'a') {
-               omode = fsWrPerm;
-               oflag = F_CREAT+F_APPEND;
-       }
-       else {
-               errno = EINVAL;
-               return(NULL);
-       }
-               
-               /*  interpret "b+"  */
-               
-       if (mode[1] == 'b') {
-               oflag |= F_BINARY;
-               if (mode[2] == '+')
-                       omode = fsRdWrPerm;
-       }
-       else if (mode[1] == '+') {
-               omode = fsRdWrPerm;
-               if (mode[2] == 'b')
-                       oflag |= F_BINARY;
-       }
-       
-               /*  open the file  */
-               
-       return(__openRF(filename, omode, oflag, fp));
-}
-
-
-FILE *
-__openRF(const char *filename, int omode, int oflag, FILE *fp)
-{
-       IOParam pb;
-       char pname[FILENAME_MAX];
-
-       if (fp == NULL)
-               return(NULL);
-       fclose(fp);
-       
-               /*  set up pb  */
-       
-       pb.ioNamePtr = __c2p(filename, pname);
-       pb.ioVRefNum = 0;
-       pb.ioVersNum = 0;
-       pb.ioPermssn = omode;
-       pb.ioMisc = 0;
-
-               /*  create file  */
-
-       if (oflag & F_CREAT) {
-               PBCreateSync((ParmBlkPtr)&pb);
-               if (pb.ioResult == noErr)
-                       oflag &= ~F_TRUNC;
-               else if (pb.ioResult == dupFNErr && !(oflag & F_EXCL))
-                       oflag &= ~F_CREAT;
-               else {
-                       errno = pb.ioResult;
-                       return(NULL);
-               }
-       }
-       
-               /*  open file  */
-               
-       PBOpenRFSync((ParmBlkPtr)&pb);
-       if (pb.ioResult) {
-               errno = pb.ioResult;
-               if (oflag & F_CREAT)
-                       PBDeleteSync((ParmBlkPtr)&pb);
-               return(NULL);
-       }
-       fp->refnum = pb.ioRefNum;
-       
-               /*  get/set file length  */
-               
-       if (oflag & F_TRUNC)
-               PBSetEOFSync((ParmBlkPtr)&pb);
-       else if (!(oflag & F_CREAT))
-               PBGetEOFSync((ParmBlkPtr)&pb);
-       fp->len = (fpos_t) pb.ioMisc;
-               
-               /*  initialize rest of FILE structure  */
-               
-       if (oflag & F_APPEND) {
-               fp->append = 1;
-               fp->pos = fp->len;
-       }
-       if (oflag & F_BINARY)
-               fp->binary = 1;
-       setvbuf(fp, NULL, _IOFBF, BUFSIZ);
-       fp->proc = fileio;
-
-               /*  set file type  */
-
-       if (oflag & (F_CREAT|F_TRUNC))
-               setfiletype(pb.ioNamePtr, oflag);
-               
-               /*  done  */
-               
-       __atexit_stdio(stdio_exit);
-       return(fp);
-}
-
-
-/*
- *  setfiletype - set type/creator of new file
- *
- */
-
-static void
-setfiletype(StringPtr name, int oflag)
-{
-       FileParam pb;
-       
-       pb.ioNamePtr = name;
-       pb.ioVRefNum = 0;
-       pb.ioFVersNum = 0;
-       pb.ioFDirIndex = 0;
-       if (PBGetFInfoSync((ParmBlkPtr)&pb) == noErr) {
-               if (oflag & F_BINARY)
-                       pb.ioFlFndrInfo.fdType = _ftype;
-               else
-                       pb.ioFlFndrInfo.fdType = 'TEXT';
-               pb.ioFlFndrInfo.fdCreator = _fcreator;
-               PBSetFInfoSync((ParmBlkPtr)&pb);
-       }
-}
-
-
-/*
- *  stdio_exit - stdio shutdown routine
- *
- */
-
-static void
-stdio_exit(void)
-{
-       register FILE *fp;
-       int n;
-       
-       for (fp = &__file[0], n = FOPEN_MAX; n--; fp++)
-               fclose(fp);
-}
-
-
-/*
- *  fileio - I/O handler proc for files and devices
- *
- */
-
-static int
-fileio(FILE *fp, int i)
-{
-       IOParam pb;
-       
-       pb.ioRefNum = fp->refnum;
-       switch (i) {
-       
-                               /*  read  */
-                       
-               case 0:
-                       pb.ioBuffer = (Ptr) fp->ptr;
-                       pb.ioReqCount = fp->cnt;
-                       pb.ioPosMode = fp->refnum > 0 ? fsFromStart : fsAtMark;
-                       pb.ioPosOffset = fp->pos - fp->cnt;
-                       PBReadSync((ParmBlkPtr)&pb);
-                       if (pb.ioResult == eofErr) {
-                               fp->pos = pb.ioPosOffset;
-                               if (fp->cnt = pb.ioActCount)
-                                       pb.ioResult = 0;
-                               else {
-                                       fp->eof = 1;
-                                       return(EOF);
-                               }
-                       }
-                       if (!pb.ioResult && !fp->binary)
-                               replace(fp->ptr, fp->cnt, '\r', '\n');
-                       break;
-                       
-                               /*  write  */
-
-               case 1:
-                       pb.ioBuffer = (Ptr) fp->ptr;
-                       pb.ioReqCount = fp->cnt;
-                       pb.ioPosMode = fp->refnum > 0 ? fsFromStart : fsAtMark;
-                       if ((pb.ioPosOffset = fp->pos - fp->cnt) > fp->len) {
-                               pb.ioMisc = (Ptr) pb.ioPosOffset;
-                               if (PBSetEOFSync((ParmBlkPtr)&pb) != noErr)
-                                       break;
-                       }
-                       if (!fp->binary)
-                               replace(fp->ptr, fp->cnt, '\n', '\r');
-                       PBWriteSync((ParmBlkPtr)&pb);
-                       if (!pb.ioResult && pb.ioPosOffset > fp->len)
-                               fp->len = pb.ioPosOffset;
-                       break;
-                       
-                               /*  close  */
-
-               case 2:
-                       pb.ioResult = close(fp);
-                       break;
-       }
-       
-               /*  done  */
-               
-       if (pb.ioResult) {
-               if (i < 2) {
-                       fp->pos -= fp->cnt;
-                       fp->cnt = 0;
-               }
-               fp->err = 1;
-               errno = pb.ioResult;
-               return(EOF);
-       }
-       return(0);
-}
-
-
-static int
-close(FILE *fp)
-{
-       HFileParam pb;
-       Str255 buf;
-       register char *fcb = FCBSPtr + fp->refnum;
-       VCB *vcb = fcbVPtr(fcb);
-       register char *s;
-       enum { none, MFS, HFS } del = none;
-       
-       pb.ioVRefNum = vcb->vcbVRefNum;
-       if (fp->remove) {
-               pb.ioNamePtr = buf;
-               pb.ioFVersNum = 0;
-       
-                       /*  close temporary file - HFS  */
-                       
-               if (vcb->vcbSigWord == 0x4244) {
-                       pb.ioDirID = fcbDirID(fcb);
-                       s = fcbCName(fcb);
-                       memcpy(buf, s, Length(s) + 1);
-                       del = HFS;
-               }
-               
-                       /*  close temporary file - MFS  */
-                       
-               else if (vcb->vcbSigWord == 0xD2D7) {
-                       for (pb.ioFDirIndex = 1; PBGetFInfoSync((ParmBlkPtr)&pb) == noErr; pb.ioFDirIndex++) {
-                               if (pb.ioFRefNum == fp->refnum) {
-                                       del = MFS;
-                                       break;
-                               }
-                       }
-               }
-       }
-       
-               /*  close file and flush volume buffer  */
-       
-       pb.ioFRefNum = fp->refnum;
-       if (PBCloseSync((ParmBlkPtr)&pb) == noErr) {
-               if (del == MFS)
-                       PBDeleteSync((ParmBlkPtr)&pb);
-               else if (del == HFS)
-                       PBHDeleteSync((HParmBlkPtr)&pb);
-               pb.ioNamePtr = 0;
-               PBFlushVolSync((ParmBlkPtr)&pb);
-       }
-       return(pb.ioResult);
-}
-
-
-/*
- *  replace - routine for doing CR/LF conversion
- *
- */
-
-static void
-replace(register unsigned char *s, register size_t n, register int c1, register int c2)
-{
-#pragma options(honor_register)
-       register unsigned char *t;
-       
-       for (; n && (t = memchr(s, c1, n)); s = t) {
-               *t++ = c2;
-               n -= t - s;
-       }
-}
diff --git a/Mac/mkapplet.py b/Mac/mkapplet.py
deleted file mode 100644 (file)
index 99486d4..0000000
+++ /dev/null
@@ -1,257 +0,0 @@
-"""Create an applet from a Python script.
-
-This puts up a dialog asking for a Python source file ('TEXT').
-The output is a file with the same name but its ".py" suffix dropped.
-It is created by copying an applet template and then adding a 'PYC '
-resource named __main__ containing the compiled, marshalled script.
-"""
-
-import sys
-sys.stdout = sys.stderr
-
-import string
-import os
-import marshal
-import imp
-import macfs
-import MacOS
-from Res import *
-
-# .pyc file (and 'PYC ' resource magic number)
-MAGIC = imp.get_magic()
-
-# Template file (searched on sys.path)
-TEMPLATE = "PythonApplet"
-
-# Specification of our resource
-RESTYPE = 'PYC '
-RESNAME = '__main__'
-
-# A resource with this name sets the "owner" (creator) of the destination
-OWNERNAME = "owner resource"
-
-# OpenResFile mode parameters
-READ = 1
-WRITE = 2
-
-def main():
-       
-       # Find the template
-       # (there's no point in proceeding if we can't find it)
-       
-       for p in sys.path:
-               template = os.path.join(p, TEMPLATE)
-               try:
-                       tmpl = open(template, "rb")
-                       tmpl.close()
-                       break
-               except IOError:
-                       continue
-       else:
-               die("Template %s not found" % `template`)
-               return
-       
-       # Ask for source text if not specified in sys.argv[1:]
-       
-       if not sys.argv[1:]:
-               srcfss, ok = macfs.StandardGetFile('TEXT')
-               if not ok:
-                       return
-               filename = srcfss.as_pathname()
-               tp, tf = os.path.split(filename)
-               if tf[-3:] == '.py':
-                       tf = tf[:-3]
-               else:
-                       tf = tf + '.applet'
-               dstfss, ok = macfs.StandardPutFile('Save application as:', tf)
-               if not ok: return
-               process(template, filename, dstfss.as_pathname())
-       else:
-               
-               # Loop over all files to be processed
-               for filename in sys.argv[1:]:
-                       process(template, filename, '')
-
-undefs = ('????', '    ', '\0\0\0\0', 'BINA')
-
-def process(template, filename, output):
-       
-       print "Processing", `filename`, "..."
-       
-       # Read the source and compile it
-       # (there's no point overwriting the destination if it has a syntax error)
-       
-       fp = open(filename)
-       text = fp.read()
-       fp.close()
-       try:
-               code = compile(text, filename, "exec")
-       except (SyntaxError, EOFError):
-               die("Syntax error in script %s" % `filename`)
-               return
-       
-       # Set the destination file name
-       
-       if string.lower(filename[-3:]) == ".py":
-               destname = filename[:-3]
-               rsrcname = destname + '.rsrc'
-       else:
-               destname = filename + ".applet"
-               rsrcname = filename + '.rsrc'
-       
-       if output:
-               destname = output
-       # Copy the data from the template (creating the file as well)
-       
-       tmpl = open(template, "rb")
-       dest = open(destname, "wb")
-       data = tmpl.read()
-       if data:
-               dest.write(data)
-       dest.close()
-       tmpl.close()
-       
-       # Copy the creator of the template to the destination
-       # unless it already got one.  Set type to APPL
-       
-       tctor, ttype = MacOS.GetCreatorAndType(template)
-       ctor, type = MacOS.GetCreatorAndType(destname)
-       if type in undefs: type = 'APPL'
-       if ctor in undefs: ctor = tctor
-       
-       # Open the output resource fork
-       
-       try:
-               output = FSpOpenResFile(destname, WRITE)
-       except MacOS.Error:
-               print "Creating resource fork..."
-               CreateResFile(destname)
-               output = FSpOpenResFile(destname, WRITE)
-       
-       # Copy the resources from the template
-       
-       input = FSpOpenResFile(template, READ)
-       newctor = copyres(input, output)
-       CloseResFile(input)
-       if newctor: ctor = newctor
-       
-       # Copy the resources from the target specific resource template, if any
-       
-       try:
-               input = FSpOpenResFile(rsrcname, READ)
-       except MacOS.Error:
-               pass
-       else:
-               newctor = copyres(input, output)
-               CloseResFile(input)
-               if newctor: ctor = newctor
-       
-       # Now set the creator and type of the destination
-       
-       MacOS.SetCreatorAndType(destname, ctor, type)
-       
-       # Make sure we're manipulating the output resource file now
-       
-       UseResFile(output)
-       
-       # Delete any existing 'PYC 'resource named __main__
-       
-       try:
-               res = Get1NamedResource(RESTYPE, RESNAME)
-               res.RmveResource()
-       except Error:
-               pass
-       
-       # Create the raw data for the resource from the code object
-       
-       data = marshal.dumps(code)
-       del code
-       data = (MAGIC + '\0\0\0\0') + data
-       
-       # Create the resource and write it
-       
-       id = 0
-       while id < 128:
-               id = Unique1ID(RESTYPE)
-       res = Resource(data)
-       res.AddResource(RESTYPE, id, RESNAME)
-       res.WriteResource()
-       res.ReleaseResource()
-       
-       # Close the output file
-       
-       CloseResFile(output)
-       
-       # Give positive feedback
-       
-       message("Applet %s created." % `destname`)
-
-
-# Copy resources between two resource file descriptors.
-# Exception: don't copy a __main__ resource.
-# If a resource's name is "owner resource", its type is returned
-# (so the caller can use it to set the destination's creator)
-
-def copyres(input, output):
-       ctor = None
-       UseResFile(input)
-       ntypes = Count1Types()
-       for itype in range(1, 1+ntypes):
-               type = Get1IndType(itype)
-               nresources = Count1Resources(type)
-               for ires in range(1, 1+nresources):
-                       res = Get1IndResource(type, ires)
-                       id, type, name = res.GetResInfo()
-                       lcname = string.lower(name)
-                       if (type, lcname) == (RESTYPE, RESNAME):
-                               continue # Don't copy __main__ from template
-                       if lcname == OWNERNAME: ctor = type
-                       size = res.SizeResource()
-                       attrs = res.GetResAttrs()
-                       print id, type, name, size, hex(attrs)
-                       res.LoadResource()
-                       res.DetachResource()
-                       UseResFile(output)
-                       try:
-                               res2 = Get1Resource(type, id)
-                       except MacOS.Error:
-                               res2 = None
-                       if res2:
-                               print "Overwriting..."
-                               res2.RmveResource()
-                       res.AddResource(type, id, name)
-                       res.WriteResource()
-                       attrs = attrs | res.GetResAttrs()
-                       print "New attrs =", hex(attrs)
-                       res.SetResAttrs(attrs)
-                       UseResFile(input)
-       return ctor
-
-
-# Show a message and exit
-
-def die(str):
-       message(str)
-       sys.exit(1)
-
-
-# Show a message
-
-def message(str, id = 256):
-       from Dlg import *
-       d = GetNewDialog(id, -1)
-       if not d:
-               print "Error:", `str`
-               print "DLOG id =", id, "not found."
-               return
-       tp, h, rect = d.GetDItem(2)
-       SetIText(h, str)
-       while 1:
-               n = ModalDialog(None)
-               if n == 1: break
-       del d
-
-
-if __name__ == '__main__':
-       main()
-
diff --git a/Mac/mwerks/mwerks_applet_config.h b/Mac/mwerks/mwerks_applet_config.h
deleted file mode 100644 (file)
index fc332f8..0000000
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
-** Configuration file for standalone 68k/ppc Python.
-**
-** Note: enabling the switches below is not enough to enable the
-** specific features, you may also need different sets of sources.
-*/
-
-#define USE_GUSI               /* Stdio implemented with GUSI */
-#define USE_MSL                        /* Use Mw Standard Library (as opposed to Plaugher C libraries) */
-#define USE_TOOLBOX            /* Include toolbox modules in core Python */
-#define USE_QT                 /* Include quicktime modules in core Python */
-#define USE_WASTE              /* Include waste module in core Python */
-#define USE_MACSPEECH          /* Include macspeech module in core Python */
-#define USE_IMG                        /* Include img modules in core Python */
-#define USE_MACCTB             /* Include ctb module in core Python */
-/* #define USE_STDWIN          /* Include stdwin module in core Python */
-/* #define USE_MACTCP          /* Include mactcp (*not* socket) modules in core */
-#define USE_TK                 /* Include _tkinter module in core Python */
-#define MAC_TCL                        /* This *must* be on if USE_TK is on */
-/* #define USE_MAC_SHARED_LIBRARY      /* Enable code to add shared-library resources */
-#define USE_MAC_APPLET_SUPPORT /* Enable code to run a PYC resource */
-/* #define USE_MALLOC_DEBUG                    /* Enable range checking and other malloc debugging */
-#define USE_GDBM               /* Include the gdbm module */
-#define USE_ZLIB               /* Include the zlib module */
-#define USE_APPEARANCE /* Enable Appearance support */
-
-#define USE_MSL_MALLOC /* Disable private malloc. Also disables next two defines */
-#ifndef USE_MSL_MALLOC
-/* #define USE_MALLOC_DEBUG                    /* Enable range checking and other malloc debugging */
-#ifdef __powerc
-#define USE_CACHE_ALIGNED 8            /* Align on 32-byte boundaries for 604 */
-#endif
-#endif
-
-#ifdef USE_MSL
-#define MSL_USE_PRECOMPILED_HEADERS 0  /* Don't use precomp headers: we include our own */
-#include <ansi_prefix.mac.h>
-#endif
diff --git a/Mac/mwerks/mwerks_carbonNOGUSI_config.h b/Mac/mwerks/mwerks_carbonNOGUSI_config.h
deleted file mode 100644 (file)
index 62ca906..0000000
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
-** Configuration file for small standalone 68k/ppc Python.
-**
-** Note: enabling the switches below is not enough to enable the
-** specific features, you may also need different sets of sources.
-*/
-#define ACCESSOR_CALLS_ARE_FUNCTIONS 1
-#define OPAQUE_TOOLBOX_STRUCTS 1
-#define TARGET_API_MAC_CARBON 1
-#define TARGET_API_MAC_CARBON_NOTYET 1 /* Things we should do eventually, but not now */
-
-#define USE_ARGV0_CHDIR                /* Workaround for OSXDP4: change dir to argv[0] dir */
-/* #define USE_GUSI2           /* Stdio implemented with GUSI 2 */
-/* # define USE_GUSI1  /* Stdio implemented with GUSI 1 */
-#define USE_MSL                        /* Use Mw Standard Library (as opposed to Plaugher C libraries) */
-#define USE_TOOLBOX            /* Include toolbox modules in core Python */
-/* #define USE_CORE_TOOLBOX            /* Include minimal set of toolbox modules in core Python */
-#define USE_QT                 /* Include quicktime modules in core Python */
-/* #define USE_WASTE           /* Include waste module in core Python */
-/* #define USE_MACSPEECH               /* Include macspeech module in core Python */
-/* #define USE_IMG             /* Include img modules in core Python */
-/* #define USE_MACCTB          /* Include ctb module in core Python */
-/* #define USE_STDWIN          /* Include stdwin module in core Python */
-/* #define USE_MACTCP          /* Include mactcp (*not* socket) modules in core */
-/* #define USE_TK                      /* Include _tkinter module in core Python */
-/* #define MAC_TCL                     /* This *must* be on if USE_TK is on */
-/* #define USE_MAC_SHARED_LIBRARY      /* Enable code to add shared-library resources */
-/* #define USE_MAC_APPLET_SUPPORT      /* Enable code to run a PYC resource */
-/* #define HAVE_DYNAMIC_LOADING                /* Enable dynamically loaded modules */
-/* #define USE_GDBM            /* Include the gdbm module */
-/* #define USE_ZLIB            /* Include the zlib module */
-#define USE_APPEARANCE /* Enable Appearance support */
-
-#define USE_MSL_MALLOC /* Disable private malloc. Also disables next two defines */
-#ifndef USE_MSL_MALLOC
-/* #define USE_MALLOC_DEBUG                    /* Enable range checking and other malloc debugging */
-#ifdef __powerc
-#define USE_CACHE_ALIGNED 8            /* Align on 32-byte boundaries for 604 */
-#endif
-#endif
-
-#ifdef USE_MSL
-#define MSL_USE_PRECOMPILED_HEADERS 0  /* Don't use precomp headers: we include our own */
-#include <ansi_prefix.mac.h>
-#endif
diff --git a/Mac/mwerks/mwerks_carbon_config.h b/Mac/mwerks/mwerks_carbon_config.h
deleted file mode 100644 (file)
index 5c59922..0000000
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
-** Configuration file for small standalone 68k/ppc Python.
-**
-** Note: enabling the switches below is not enough to enable the
-** specific features, you may also need different sets of sources.
-*/
-#define ACCESSOR_CALLS_ARE_FUNCTIONS 1
-#define OPAQUE_TOOLBOX_STRUCTS 1
-#define TARGET_API_MAC_CARBON 1
-#define TARGET_API_MAC_CARBON_NOTYET 1 /* Things we should do eventually, but not now */
-
-#define USE_ARGV0_CHDIR                /* Workaround for OSXDP4: change dir to argv[0] dir */
-#define USE_GUSI2              /* Stdio implemented with GUSI 2 */
-/* # define USE_GUSI1  /* Stdio implemented with GUSI 1 */
-#define USE_MSL                        /* Use Mw Standard Library (as opposed to Plaugher C libraries) */
-#define USE_TOOLBOX            /* Include toolbox modules in core Python */
-/* #define USE_CORE_TOOLBOX            /* Include minimal set of toolbox modules in core Python */
-#define USE_QT                 /* Include quicktime modules in core Python */
-/* #define USE_WASTE           /* Include waste module in core Python */
-/* #define USE_MACSPEECH               /* Include macspeech module in core Python */
-/* #define USE_IMG             /* Include img modules in core Python */
-/* #define USE_MACCTB          /* Include ctb module in core Python */
-/* #define USE_STDWIN          /* Include stdwin module in core Python */
-/* #define USE_MACTCP          /* Include mactcp (*not* socket) modules in core */
-/* #define USE_TK                      /* Include _tkinter module in core Python */
-/* #define MAC_TCL                     /* This *must* be on if USE_TK is on */
-/* #define USE_MAC_SHARED_LIBRARY      /* Enable code to add shared-library resources */
-/* #define USE_MAC_APPLET_SUPPORT      /* Enable code to run a PYC resource */
-/* #define HAVE_DYNAMIC_LOADING                /* Enable dynamically loaded modules */
-/* #define USE_GDBM            /* Include the gdbm module */
-/* #define USE_ZLIB            /* Include the zlib module */
-#define USE_APPEARANCE /* Enable Appearance support */
-
-#define USE_MSL_MALLOC /* Disable private malloc. Also disables next two defines */
-#ifndef USE_MSL_MALLOC
-/* #define USE_MALLOC_DEBUG                    /* Enable range checking and other malloc debugging */
-#ifdef __powerc
-#define USE_CACHE_ALIGNED 8            /* Align on 32-byte boundaries for 604 */
-#endif
-#endif
-
-#ifdef USE_MSL
-#define MSL_USE_PRECOMPILED_HEADERS 0  /* Don't use precomp headers: we include our own */
-#include <ansi_prefix.mac.h>
-#endif
diff --git a/Mac/mwerks/mwerks_carbongusi_config.h b/Mac/mwerks/mwerks_carbongusi_config.h
deleted file mode 100644 (file)
index e14d953..0000000
+++ /dev/null
@@ -1,44 +0,0 @@
-/*
-** Configuration file for small standalone 68k/ppc Python.
-**
-** Note: enabling the switches below is not enough to enable the
-** specific features, you may also need different sets of sources.
-*/
-#define ACCESSOR_CALLS_ARE_FUNCTIONS 1
-#define OPAQUE_TOOLBOX_STRUCTS 1
-#define TARGET_API_MAC_CARBON 1
-#define TARGET_API_MAC_CARBON_NOTYET 1 /* Things we should do eventually, but not now */
-
-#define USE_GUSI2              /* Stdio implemented with GUSI 2 */
-/* # define USE_GUSI1  /* Stdio implemented with GUSI 1 */
-#define USE_MSL                        /* Use Mw Standard Library (as opposed to Plaugher C libraries) */
-#define USE_TOOLBOX            /* Include toolbox modules in core Python */
-/* #define USE_CORE_TOOLBOX            /* Include minimal set of toolbox modules in core Python */
-#define USE_QT                 /* Include quicktime modules in core Python */
-/* #define USE_WASTE           /* Include waste module in core Python */
-/* #define USE_MACSPEECH               /* Include macspeech module in core Python */
-/* #define USE_IMG             /* Include img modules in core Python */
-/* #define USE_MACCTB          /* Include ctb module in core Python */
-/* #define USE_STDWIN          /* Include stdwin module in core Python */
-/* #define USE_MACTCP          /* Include mactcp (*not* socket) modules in core */
-/* #define USE_TK                      /* Include _tkinter module in core Python */
-/* #define MAC_TCL                     /* This *must* be on if USE_TK is on */
-/* #define USE_MAC_SHARED_LIBRARY      /* Enable code to add shared-library resources */
-/* #define USE_MAC_APPLET_SUPPORT      /* Enable code to run a PYC resource */
-/* #define HAVE_DYNAMIC_LOADING                /* Enable dynamically loaded modules */
-/* #define USE_GDBM            /* Include the gdbm module */
-/* #define USE_ZLIB            /* Include the zlib module */
-#define USE_APPEARANCE /* Enable Appearance support */
-
-#define USE_MSL_MALLOC /* Disable private malloc. Also disables next two defines */
-#ifndef USE_MSL_MALLOC
-/* #define USE_MALLOC_DEBUG                    /* Enable range checking and other malloc debugging */
-#ifdef __powerc
-#define USE_CACHE_ALIGNED 8            /* Align on 32-byte boundaries for 604 */
-#endif
-#endif
-
-#ifdef USE_MSL
-#define MSL_USE_PRECOMPILED_HEADERS 0  /* Don't use precomp headers: we include our own */
-#include <ansi_prefix.mac.h>
-#endif
diff --git a/Mac/mwerks/mwerks_carbonplugin_config.h b/Mac/mwerks/mwerks_carbonplugin_config.h
deleted file mode 100644 (file)
index 0d5429a..0000000
+++ /dev/null
@@ -1,19 +0,0 @@
-/*
-** Config file for dynamically-loaded ppc/cfm68k plugin modules.
-*/
-#define ACCESSOR_CALLS_ARE_FUNCTIONS 1
-#define OPAQUE_TOOLBOX_STRUCTS 1
-#define TARGET_API_MAC_CARBON 1
-#define TARGET_API_MAC_CARBON_NOTYET 1 /* Things we should do eventually, but not now */
-
-/* #define USE_GUSI1           /* Stdio implemented with GUSI */
-#define USE_GUSI2              /* Stdio implemented with GUSI */
-#if defined(USE_GUSI1) || defined(USE_GUSI2)
-#define USE_GUSI
-#endif
-#define WITH_THREAD            /* Use thread support (needs GUSI 2, not GUSI 1) */
-#define USE_MSL                        /* Use MSL libraries */
-#ifdef USE_MSL
-#define MSL_USE_PRECOMPILED_HEADERS 0  /* Don't use precomp headers: we include our own */
-#include <ansi_prefix.mac.h>
-#endif
diff --git a/Mac/mwerks/mwerks_config.h b/Mac/mwerks/mwerks_config.h
deleted file mode 100644 (file)
index e2697a7..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-#define HAVE_CONFIG_H
-#define USE_STDWIN
\ No newline at end of file
diff --git a/Mac/mwerks/mwerks_nonshared_config.h b/Mac/mwerks/mwerks_nonshared_config.h
deleted file mode 100644 (file)
index 413d241..0000000
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
-** Configuration file for standalone 68k/ppc Python.
-**
-** Note: enabling the switches below is not enough to enable the
-** specific features, you may also need different sets of sources.
-*/
-
-/* #define USE_GUSI1           /* Stdio implemented with GUSI */
-#define USE_GUSI2              /* Stdio implemented with GUSI 2 */
-#if defined(USE_GUSI1) || defined(USE_GUSI2)
-#define USE_GUSI
-#endif
-#define USE_MSL                        /* Use Mw Standard Library (as opposed to Plaugher C libraries) */
-#define USE_TOOLBOX            /* Include toolbox modules in core Python */
-#define USE_QT                 /* Include quicktime modules in core Python */
-#define USE_WASTE              /* Include waste module in core Python */
-#define USE_MACSPEECH          /* Include macspeech module in core Python */
-#define USE_IMG                        /* Include img modules in core Python */
-#define USE_MACCTB             /* Include ctb module in core Python */
-#define USE_TK                 /* Include _tkinter module in core Python */
-#define MAC_TCL                        /* This *must* be on if USE_TK is on */
-/* #define USE_MAC_SHARED_LIBRARY      /* Enable code to add shared-library resources */
-/* #define USE_MAC_APPLET_SUPPORT      /* Enable code to run a PYC resource */
-/* #define HAVE_DYNAMIC_LOADING                /* Enable dynamically loaded modules */
-#define USE_GDBM               /* Include the gdbm module */
-#define USE_ZLIB               /* Include the zlib module */
-#define USE_IC                 /* Include Internet Config module */
-#define USE_PYEXPAT            /* Include Pyexpat module */
-#define USE_APPEARANCE /* Enable Appearance support */
-#define USE_MSL_MALLOC /* Disable private malloc. Also disables next two defines */
-#ifndef USE_MSL_MALLOC
-/* #define USE_MALLOC_DEBUG                    /* Enable range checking and other malloc debugging */
-#ifdef __powerc
-#define USE_CACHE_ALIGNED 8            /* Align on 32-byte boundaries for 604 */
-#endif
-#endif
-
-#ifdef USE_MSL
-#define MSL_USE_PRECOMPILED_HEADERS 0  /* Don't use precomp headers: we include our own */
-#include <ansi_prefix.mac.h>
-#endif
-/* Missing declarations. Should these go to pyport.h? */
-#ifdef USE_GUSI2
-#include <stdio.h>
-extern int fileno(FILE *);
-#endif
diff --git a/Mac/mwerks/mwerks_nscarbon_config.h b/Mac/mwerks/mwerks_nscarbon_config.h
deleted file mode 100644 (file)
index 6a4307a..0000000
+++ /dev/null
@@ -1,51 +0,0 @@
-/*
-** Configuration file for standalone 68k/ppc Python.
-**
-** Note: enabling the switches below is not enough to enable the
-** specific features, you may also need different sets of sources.
-*/
-#define ACCESSOR_CALLS_ARE_FUNCTIONS 1
-#define OPAQUE_TOOLBOX_STRUCTS 1
-#define TARGET_API_MAC_CARBON 1
-#define TARGET_API_MAC_CARBON_NOTYET 1 /* Things we should do eventually, but not now */
-
-#define USE_ARGV0_CHDIR                /* Workaround for OSXDP4: change dir to argv[0] dir */
-#define USE_GUSI2              /* Stdio implemented with GUSI 2 */
-#if defined(USE_GUSI1) || defined(USE_GUSI2)
-#define USE_GUSI
-#endif
-/* #define WITH_THREAD         /* Use thread support (needs GUSI 2, not GUSI 1) */
-#define USE_MSL                        /* Use Mw Standard Library (as opposed to Plaugher C libraries) */
-#define USE_TOOLBOX            /* Include toolbox modules in core Python */
-#define USE_QT                 /* Include quicktime modules in core Python */
-#define USE_WASTE              /* Include waste module in core Python */
-/* #define USE_MACSPEECH               /* Include macspeech module in core Python */
-#define USE_IMG                        /* Include img modules in core Python */
-/* #define USE_MACCTB          /* Include ctb module in core Python */
-/* #define USE_TK                      /* Include _tkinter module in core Python */
-/* #define MAC_TCL                     /* This *must* be on if USE_TK is on */
-/* #define USE_MAC_SHARED_LIBRARY      /* Enable code to add shared-library resources */
-/* #define USE_MAC_APPLET_SUPPORT      /* Enable code to run a PYC resource */
-/* #define HAVE_DYNAMIC_LOADING                /* Enable dynamically loaded modules */
-#define USE_GDBM               /* Include the gdbm module */
-#define USE_ZLIB               /* Include the zlib module */
-#define USE_IC                 /* Include Internet Config module */
-#define USE_PYEXPAT            /* Include Pyexpat module */
-#define USE_APPEARANCE /* Enable Appearance support */
-#define USE_MSL_MALLOC /* Disable private malloc. Also disables next two defines */
-#ifndef USE_MSL_MALLOC
-/* #define USE_MALLOC_DEBUG                    /* Enable range checking and other malloc debugging */
-#ifdef __powerc
-#define USE_CACHE_ALIGNED 8            /* Align on 32-byte boundaries for 604 */
-#endif
-#endif
-
-#ifdef USE_MSL
-#define MSL_USE_PRECOMPILED_HEADERS 0  /* Don't use precomp headers: we include our own */
-#include <ansi_prefix.mac.h>
-#endif
-/* Missing declarations. Should these go to pyport.h? */
-#ifdef USE_GUSI2
-#include <stdio.h>
-extern int fileno(FILE *);
-#endif
diff --git a/Mac/mwerks/mwerks_plugin_config.h b/Mac/mwerks/mwerks_plugin_config.h
deleted file mode 100644 (file)
index 785883a..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
-/*
-** Config file for dynamically-loaded ppc/cfm68k plugin modules.
-*/
-
-/* #define USE_GUSI1           /* Stdio implemented with GUSI */
-#define USE_GUSI2              /* Stdio implemented with GUSI */
-#if defined(USE_GUSI1) || defined(USE_GUSI2)
-#define USE_GUSI
-#endif
-#define WITH_THREAD            /* Use thread support (needs GUSI 2, not GUSI 1) */
-#define USE_MSL                        /* Use MSL libraries */
-#ifdef USE_MSL
-#define MSL_USE_PRECOMPILED_HEADERS 0  /* Don't use precomp headers: we include our own */
-#include <ansi_prefix.mac.h>
-#endif
diff --git a/Mac/mwerks/mwerks_shared_config.h b/Mac/mwerks/mwerks_shared_config.h
deleted file mode 100644 (file)
index 36272a4..0000000
+++ /dev/null
@@ -1,47 +0,0 @@
-/*
-** Configuration file for dynamically loaded cfm68k/ppc PythonCore,
-** interpreter and Applet.
-**
-** Note: enabling the switches below is not enough to enable the
-** specific features, you may also need different sets of sources.
-*/
-
-/* #define USE_GUSI1           /* Stdio implemented with GUSI */
-#define USE_GUSI2              /* Stdio implemented with GUSI */
-#define WITH_THREAD            /* Use thread support (needs GUSI 2, not GUSI 1) */
-#define USE_MSL                        /* Use Mw Standard Library (as opposed to Plaugher C libraries) */
-#define USE_CORE_TOOLBOX       /* Include core toolbox modules (Dlg,Ctl,Menu,Win,Res,Qd) */
-/* #define USE_TOOLBOX         /* Include all toolbox modules in core Python */
-/* #define USE_QT              /* Include quicktime modules in core Python */
-/* #define USE_WASTE           /* Include waste module in core Python */
-/* #define USE_MACSPEECH       /* Include macspeech module in core Python */
-/* #define USE_IMG             /* Include img modules in core Python */
-/* #define USE_MACCTB          /* Include ctb module in core Python */
-/* #define USE_STDWIN          /* Include stdwin module in core Python */
-/* #define USE_MACTCP          /* Include mactcp (*not* socket) modules in core */
-/* #define USE_TK              /* Include _tkinter module in core Python */
-/* #define MAC_TCL             /* This *must* be on if USE_TK is on */
-#define USE_MAC_SHARED_LIBRARY         /* Enable code to add shared-library resources */
-#define USE_MAC_APPLET_SUPPORT         /* Enable code to run a PYC resource */
-#define HAVE_DYNAMIC_LOADING           /* Enable dynamically loaded modules */
-/* #define USE_GDBM            /* Include the gdbm module */
-/* #define USE_ZLIB            /* Include the zlib module */
-#define USE_APPEARANCE /* Enable Appearance support */
-
-#define USE_MSL_MALLOC /* Disable private malloc. Also disables next two defines */
-#ifndef USE_MSL_MALLOC
-/* #define USE_MALLOC_DEBUG                    /* Enable range checking and other malloc debugging */
-#ifdef __powerc
-#define USE_CACHE_ALIGNED 8            /* Align on 32-byte boundaries for 604 */
-#endif
-#endif
-
-#ifdef USE_MSL
-#define MSL_USE_PRECOMPILED_HEADERS 0  /* Don't use precomp headers: we include our own */
-#include <ansi_prefix.mac.h>
-#endif
-/* Missing declarations. Should these go to pyport.h? */
-#ifdef USE_GUSI2
-#include <stdio.h>
-extern int fileno(FILE *);
-#endif
diff --git a/Mac/mwerks/mwerks_shcarbon_config.h b/Mac/mwerks/mwerks_shcarbon_config.h
deleted file mode 100644 (file)
index 75ffeef..0000000
+++ /dev/null
@@ -1,52 +0,0 @@
-/*
-** Configuration file for dynamically loaded cfm68k/ppc PythonCore,
-** interpreter and Applet.
-**
-** Note: enabling the switches below is not enough to enable the
-** specific features, you may also need different sets of sources.
-*/
-#define ACCESSOR_CALLS_ARE_FUNCTIONS 1
-#define OPAQUE_TOOLBOX_STRUCTS 1
-#define TARGET_API_MAC_CARBON 1
-#define TARGET_API_MAC_CARBON_NOTYET 1 /* Things we should do eventually, but not now */
-
-#define USE_ARGV0_CHDIR                /* Workaround for OSXDP4: change dir to argv[0] dir */
-#define USE_GUSI2              /* Stdio implemented with GUSI 2 */
-/* # define USE_GUSI1  /* Stdio implemented with GUSI 1 */
-#define WITH_THREAD            /* Use thread support (needs GUSI 2, not GUSI 1) */
-#define USE_MSL                        /* Use Mw Standard Library (as opposed to Plaugher C libraries) */
-#define USE_CORE_TOOLBOX       /* Include core toolbox modules (Dlg,Ctl,Menu,Win,Res,Qd) */
-/* #define USE_TOOLBOX         /* Include all toolbox modules in core Python */
-/* #define USE_QT              /* Include quicktime modules in core Python */
-/* #define USE_WASTE           /* Include waste module in core Python */
-/* #define USE_MACSPEECH       /* Include macspeech module in core Python */
-/* #define USE_IMG             /* Include img modules in core Python */
-/* #define USE_MACCTB          /* Include ctb module in core Python */
-/* #define USE_STDWIN          /* Include stdwin module in core Python */
-/* #define USE_MACTCP          /* Include mactcp (*not* socket) modules in core */
-/* #define USE_TK              /* Include _tkinter module in core Python */
-/* #define MAC_TCL             /* This *must* be on if USE_TK is on */
-#define USE_MAC_SHARED_LIBRARY         /* Enable code to add shared-library resources */
-#define USE_MAC_APPLET_SUPPORT         /* Enable code to run a PYC resource */
-#define HAVE_DYNAMIC_LOADING           /* Enable dynamically loaded modules */
-/* #define USE_GDBM            /* Include the gdbm module */
-/* #define USE_ZLIB            /* Include the zlib module */
-#define USE_APPEARANCE /* Enable Appearance support */
-
-#define USE_MSL_MALLOC /* Disable private malloc. Also disables next two defines */
-#ifndef USE_MSL_MALLOC
-/* #define USE_MALLOC_DEBUG                    /* Enable range checking and other malloc debugging */
-#ifdef __powerc
-#define USE_CACHE_ALIGNED 8            /* Align on 32-byte boundaries for 604 */
-#endif
-#endif
-
-#ifdef USE_MSL
-#define MSL_USE_PRECOMPILED_HEADERS 0  /* Don't use precomp headers: we include our own */
-#include <ansi_prefix.mac.h>
-#endif
-/* Missing declarations. Should these go to pyport.h? */
-#ifdef USE_GUSI2
-#include <stdio.h>
-extern int fileno(FILE *);
-#endif
diff --git a/Mac/mwerks/mwerks_shlib_config.h b/Mac/mwerks/mwerks_shlib_config.h
deleted file mode 100644 (file)
index 5f060ad..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-#define HAVE_CONFIG_H
-#define USE_STDWIN
-#define USE_MAC_SHARED_LIBRARY
diff --git a/Mac/mwerks/mwerks_small_config.h b/Mac/mwerks/mwerks_small_config.h
deleted file mode 100644 (file)
index 99d552f..0000000
+++ /dev/null
@@ -1,44 +0,0 @@
-/*
-** Configuration file for small standalone 68k/ppc Python.
-**
-** Note: enabling the switches below is not enough to enable the
-** specific features, you may also need different sets of sources.
-*/
-
-#define USE_GUSI2              /* Stdio implemented with GUSI 2 */
-/* # define USE_GUSI1  /* Stdio implemented with GUSI 1 */
-#define USE_MSL                        /* Use Mw Standard Library (as opposed to Plaugher C libraries) */
-#define USE_TOOLBOX            /* Include toolbox modules in core Python */
-#define USE_QT                 /* Include quicktime modules in core Python */
-/* #define USE_WASTE           /* Include waste module in core Python */
-#define USE_MACSPEECH          /* Include macspeech module in core Python */
-/* #define USE_IMG             /* Include img modules in core Python */
-#define USE_MACCTB             /* Include ctb module in core Python */
-/* #define USE_STDWIN          /* Include stdwin module in core Python */
-/* #define USE_MACTCP          /* Include mactcp (*not* socket) modules in core */
-/* #define USE_TK                      /* Include _tkinter module in core Python */
-/* #define MAC_TCL                     /* This *must* be on if USE_TK is on */
-/* #define USE_MAC_SHARED_LIBRARY      /* Enable code to add shared-library resources */
-/* #define USE_MAC_APPLET_SUPPORT      /* Enable code to run a PYC resource */
-/* #define HAVE_DYNAMIC_LOADING                /* Enable dynamically loaded modules */
-/* #define USE_GDBM            /* Include the gdbm module */
-/* #define USE_ZLIB            /* Include the zlib module */
-#define USE_APPEARANCE /* Enable Appearance support */
-
-#define USE_MSL_MALLOC /* Disable private malloc. Also disables next two defines */
-#ifndef USE_MSL_MALLOC
-/* #define USE_MALLOC_DEBUG                    /* Enable range checking and other malloc debugging */
-#ifdef __powerc
-#define USE_CACHE_ALIGNED 8            /* Align on 32-byte boundaries for 604 */
-#endif
-#endif
-
-#ifdef USE_MSL
-#define MSL_USE_PRECOMPILED_HEADERS 0  /* Don't use precomp headers: we include our own */
-#include <ansi_prefix.mac.h>
-#endif
-/* Missing declarations. Should these go to pyport.h? */
-#ifdef USE_GUSI2
-#include <stdio.h>
-extern int fileno(FILE *);
-#endif
diff --git a/Mac/mwerks/mwerks_thrcarbonsm_config.h b/Mac/mwerks/mwerks_thrcarbonsm_config.h
deleted file mode 100644 (file)
index 1e1e723..0000000
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
-** Configuration file for small standalone 68k/ppc Python.
-**
-** Note: enabling the switches below is not enough to enable the
-** specific features, you may also need different sets of sources.
-*/
-#define ACCESSOR_CALLS_ARE_FUNCTIONS 1
-#define OPAQUE_TOOLBOX_STRUCTS 1
-#define TARGET_API_MAC_CARBON 1
-#define TARGET_API_MAC_CARBON_NOTYET 1 /* Things we should do eventually, but not now */
-
-#define USE_ARGV0_CHDIR                /* Workaround for OSXDP4: change dir to argv[0] dir */
-#define USE_GUSI2              /* Stdio implemented with GUSI 2 */
-/* # define USE_GUSI1  /* Stdio implemented with GUSI 1 */
-#define WITH_THREAD            /* Use thread support (needs GUSI 2, not GUSI 1) */
-#define USE_MSL                        /* Use Mw Standard Library (as opposed to Plaugher C libraries) */
-#define USE_TOOLBOX            /* Include toolbox modules in core Python */
-/* #define USE_CORE_TOOLBOX            /* Include minimal set of toolbox modules in core Python */
-#define USE_QT                 /* Include quicktime modules in core Python */
-/* #define USE_WASTE           /* Include waste module in core Python */
-/* #define USE_MACSPEECH               /* Include macspeech module in core Python */
-/* #define USE_IMG             /* Include img modules in core Python */
-/* #define USE_MACCTB          /* Include ctb module in core Python */
-/* #define USE_STDWIN          /* Include stdwin module in core Python */
-/* #define USE_MACTCP          /* Include mactcp (*not* socket) modules in core */
-/* #define USE_TK                      /* Include _tkinter module in core Python */
-/* #define MAC_TCL                     /* This *must* be on if USE_TK is on */
-/* #define USE_MAC_SHARED_LIBRARY      /* Enable code to add shared-library resources */
-/* #define USE_MAC_APPLET_SUPPORT      /* Enable code to run a PYC resource */
-/* #define HAVE_DYNAMIC_LOADING                /* Enable dynamically loaded modules */
-/* #define USE_GDBM            /* Include the gdbm module */
-/* #define USE_ZLIB            /* Include the zlib module */
-#define USE_APPEARANCE /* Enable Appearance support */
-
-#define USE_MSL_MALLOC /* Disable private malloc. Also disables next two defines */
-#ifndef USE_MSL_MALLOC
-/* #define USE_MALLOC_DEBUG                    /* Enable range checking and other malloc debugging */
-#ifdef __powerc
-#define USE_CACHE_ALIGNED 8            /* Align on 32-byte boundaries for 604 */
-#endif
-#endif
-
-#ifdef USE_MSL
-#define MSL_USE_PRECOMPILED_HEADERS 0  /* Don't use precomp headers: we include our own */
-#include <ansi_prefix.mac.h>
-#endif
diff --git a/Mac/mwerks/mwerks_threadsmall_config.h b/Mac/mwerks/mwerks_threadsmall_config.h
deleted file mode 100644 (file)
index 223039e..0000000
+++ /dev/null
@@ -1,40 +0,0 @@
-/*
-** Configuration file for small standalone 68k/ppc Python.
-**
-** Note: enabling the switches below is not enough to enable the
-** specific features, you may also need different sets of sources.
-*/
-
-#define USE_GUSI2              /* Stdio implemented with GUSI 2 */
-/* # define USE_GUSI1  /* Stdio implemented with GUSI 1 */
-#define WITH_THREAD            /* Use thread support (needs GUSI 2, not GUSI 1) */
-#define USE_MSL                        /* Use Mw Standard Library (as opposed to Plaugher C libraries) */
-#define USE_TOOLBOX            /* Include toolbox modules in core Python */
-#define USE_QT                 /* Include quicktime modules in core Python */
-/* #define USE_WASTE           /* Include waste module in core Python */
-#define USE_MACSPEECH          /* Include macspeech module in core Python */
-/* #define USE_IMG             /* Include img modules in core Python */
-#define USE_MACCTB             /* Include ctb module in core Python */
-/* #define USE_STDWIN          /* Include stdwin module in core Python */
-/* #define USE_MACTCP          /* Include mactcp (*not* socket) modules in core */
-/* #define USE_TK                      /* Include _tkinter module in core Python */
-/* #define MAC_TCL                     /* This *must* be on if USE_TK is on */
-/* #define USE_MAC_SHARED_LIBRARY      /* Enable code to add shared-library resources */
-/* #define USE_MAC_APPLET_SUPPORT      /* Enable code to run a PYC resource */
-/* #define HAVE_DYNAMIC_LOADING                /* Enable dynamically loaded modules */
-/* #define USE_GDBM            /* Include the gdbm module */
-/* #define USE_ZLIB            /* Include the zlib module */
-#define USE_APPEARANCE /* Enable Appearance support */
-
-#define USE_MSL_MALLOC /* Disable private malloc. Also disables next two defines */
-#ifndef USE_MSL_MALLOC
-/* #define USE_MALLOC_DEBUG                    /* Enable range checking and other malloc debugging */
-#ifdef __powerc
-#define USE_CACHE_ALIGNED 8            /* Align on 32-byte boundaries for 604 */
-#endif
-#endif
-
-#ifdef USE_MSL
-#define MSL_USE_PRECOMPILED_HEADERS 0  /* Don't use precomp headers: we include our own */
-#include <ansi_prefix.mac.h>
-#endif
diff --git a/Mac/mwerks/mwerks_tkplugin_config.h b/Mac/mwerks/mwerks_tkplugin_config.h
deleted file mode 100644 (file)
index f13d9ab..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-/*
-** Special config-file for _tkinter plugin.
-*/
-
-#define USE_GUSI2              /* Stdio implemented with GUSI 2 */
-/* #define USE_GUSI1   /* Stdio implemented with GUSI 1.X */
-#if defined(USE_GUSI1) || defined(USE_GUSI2)
-#define USE_GUSI
-#endif
-#define WITH_THREAD            /* Use thread support (needs GUSI 2, not GUSI 1) */
-#define USE_TK                 /* Include _tkinter module in core Python */
-#define MAC_TCL                        /* This *must* be on if USE_TK is on */
diff --git a/Mac/mwerksglue.c b/Mac/mwerksglue.c
deleted file mode 100644 (file)
index 37e3a81..0000000
+++ /dev/null
@@ -1,43 +0,0 @@
-/*
-** Glue code for MetroWerks CodeWarrior, which misses
-** unix-like routines for file-access.
-*/
-
-#ifdef __MWERKS__
-#include <Types.h>
-#include <Files.h>
-#include <Strings.h>
-
-#include <stdio.h>
-#include <errno.h>
-
-int
-fileno(fp)
-       FILE *fp;
-{
-       if (fp==stdin) return 0;
-       else if (fp==stdout) return 1;
-       else if (fp==stderr) return 2;
-       else return 3;
-}
-
-int
-isatty(fd)
-       int fd;
-{
-       return (fd >= 0 && fd <= 2);
-}
-
-int
-unlink(old)
-       char *old;
-{
-       OSErr err;
-       
-       if ((err=FSDelete(c2pstr(old), 0)) == noErr)
-               return 0;
-       errno= err;
-       return -1;
-}
-
-#endif /* __MWERKS__ */
\ No newline at end of file
diff --git a/Mac/scripts/errors.txt b/Mac/scripts/errors.txt
deleted file mode 100644 (file)
index 3a7435d..0000000
+++ /dev/null
@@ -1,1789 +0,0 @@
--32768 svTempDisable   svTempDisable
--32640 svDisabled      Reserve range -32640 to -32768 for Apple temp disables.
--32615 fontNotOutlineErr       bitmap font passed to routine that does outlines only
--30788 kURL68kNotSupportedError        kURL68kNotSupportedError
--30787 kURLAccessNotAvailableError     kURLAccessNotAvailableError
--30786 kURLInvalidConfigurationError   kURLInvalidConfigurationError
--30785 kURLExtensionFailureError       kURLExtensionFailureError
--30783 kURLFileEmptyError      kURLFileEmptyError
--30781 kURLInvalidCallError    kURLInvalidCallError
--30780 kURLUnsettablePropertyError     kURLUnsettablePropertyError
--30779 kURLPropertyBufferTooSmallError kURLPropertyBufferTooSmallError
--30778 kURLUnknownPropertyError        kURLUnknownPropertyError
--30777 kURLPropertyNotYetKnownError    kURLPropertyNotYetKnownError
--30776 kURLAuthenticationError kURLAuthenticationError
--30775 kURLServerBusyError     kURLServerBusyError
--30774 kURLUnsupportedSchemeError      kURLUnsupportedSchemeError
--30773 kURLInvalidURLError     kURLInvalidURLError
--30772 kURLDestinationExistsError      kURLDestinationExistsError
--30771 kURLProgressAlreadyDisplayedError       kURLProgressAlreadyDisplayedError
--30770 kURLInvalidURLReferenceError    kURLInvalidURLReferenceError
--30599 controlHandleInvalidErr controlHandleInvalidErr
--30597 controlInvalidDataVersionErr    controlInvalidDataVersionErr
--30596 errItemNotControl       errItemNotControl
--30595 errCantEmbedRoot        errCantEmbedRoot
--30594 errCantEmbedIntoSelf    errCantEmbedIntoSelf
--30593 errWindowRegionCodeInvalid      errWindowRegionCodeInvalid
--30592 errControlHiddenOrDisabled      errControlHiddenOrDisabled
--30591 errDataSizeMismatch     errDataSizeMismatch
--30590 errControlIsNotEmbedder errControlIsNotEmbedder
--30589 errControlsAlreadyExist errControlsAlreadyExist
--30588 errInvalidPartCode      errInvalidPartCode
--30587 errRootAlreadyExists    errRootAlreadyExists
--30586 errNoRootControl        errNoRootControl
--30585 errCouldntSetFocus      errCouldntSetFocus
--30584 errUnknownControl       errUnknownControl
--30583 errWindowDoesntSupportFocus     errWindowDoesntSupportFocus
--30582 errControlDoesntSupportFocus    errControlDoesntSupportFocus
--30581 errDataNotSupported     errDataNotSupported
--30580 errMessageNotSupported  errMessageNotSupported
--30567 themeMonitorDepthNotSupportedErr        theme not supported at monitor depth
--30566 themeScriptFontNotFoundErr      theme font requested for uninstalled script system
--30565 themeBadCursorIndexErr  themeBadCursorIndexErr
--30564 themeHasNoAccentsErr    themeHasNoAccentsErr
--30563 themeBadTextColorErr    themeBadTextColorErr
--30562 themeProcessNotRegisteredErr    themeProcessNotRegisteredErr
--30561 themeProcessRegisteredErr       themeProcessRegisteredErr
--30560 themeInvalidBrushErr    pattern index invalid
--30555 qtvrUninitialized       qtvrUninitialized
--30554 qtvrLibraryLoadErr      qtvrLibraryLoadErr
--30553 streamingNodeNotReadyErr        streamingNodeNotReadyErr
--30552 noMemoryNodeFailedInitialize    noMemoryNodeFailedInitialize
--30551 invalidHotSpotIDErr     invalidHotSpotIDErr
--30550 invalidNodeFormatErr    invalidNodeFormatErr
--30549 limitReachedErr limitReachedErr
--30548 settingNotSupportedByNodeErr    settingNotSupportedByNodeErr
--30547 propertyNotSupportedByNodeErr   propertyNotSupportedByNodeErr
--30546 timeNotInViewErr        timeNotInViewErr
--30545 invalidViewStateErr     invalidViewStateErr
--30544 invalidNodeIDErr        invalidNodeIDErr
--30543 selectorNotSupportedByNodeErr   selectorNotSupportedByNodeErr
--30542 callNotSupportedByNodeErr       callNotSupportedByNodeErr
--30541 constraintReachedErr    constraintReachedErr
--30540 notAQTVRMovieErr        notAQTVRMovieErr
--30532 kFBCnoSuchHit   kFBCnoSuchHit
--30531 kFBCbadSearchSession    kFBCbadSearchSession
--30530 kFBCindexDiskIOFailed   kFBCindexDiskIOFailed
--30529 kFBCsummarizationCanceled       kFBCsummarizationCanceled
--30528 kFBCbadIndexFileVersion kFBCbadIndexFileVersion
--30527 kFBCanalysisNotAvailable        kFBCanalysisNotAvailable
--30526 kFBCillegalSessionChange        tried to add/remove vols to a session
--30525 kFBCsomeFilesNotIndexed kFBCsomeFilesNotIndexed
--30524 kFBCsearchFailed        kFBCsearchFailed
--30523 kFBCindexNotAvailable   kFBCindexNotAvailable
--30522 kFBCindexFileDestroyed  kFBCindexFileDestroyed
--30521 kFBCaccessCanceled      kFBCaccessCanceled
--30520 kFBCindexingCanceled    kFBCindexingCanceled
--30519 kFBCnoSearchSession     kFBCnoSearchSession
--30518 kFBCindexNotFound       kFBCindexNotFound
--30517 kFBCflushFailed kFBCflushFailed
--30516 kFBCaddDocFailed        kFBCaddDocFailed
--30515 kFBCaccessorStoreFailed kFBCaccessorStoreFailed
--30514 kFBCindexCreationFailed couldn't create index
--30513 kFBCmergingFailed       couldn't merge index files
--30512 kFBCtokenizationFailed  couldn't read from document or query
--30511 kFBCmoveFailed  V-Twin exception caught
--30510 kFBCdeletionFailed      V-Twin exception caught
--30509 kFBCcommitFailed        V-Twin exception caught
--30508 kFBCindexingFailed      V-Twin exception caught
--30507 kFBCvalidationFailed    V-Twin exception caught
--30506 kFBCcompactionFailed    V-Twin exception caught
--30505 kFBCbadIndexFile        bad FSSpec, or bad data in file
--30504 kFBCfileNotIndexed      kFBCfileNotIndexed
--30503 kFBCbadParam    kFBCbadParam
--30502 kFBCallocFailed probably low memory
--30501 kFBCnoIndexesFound      kFBCnoIndexesFound
--30500 kFBCvTwinExceptionErr   no telling what it was
--30450 kDSpStereoContextErr    kDSpStereoContextErr
--30449 kDSpInternalErr kDSpInternalErr
--30448 kDSpConfirmSwitchWarning        kDSpConfirmSwitchWarning
--30447 kDSpFrameRateNotReadyErr        kDSpFrameRateNotReadyErr
--30446 kDSpContextNotFoundErr  kDSpContextNotFoundErr
--30445 kDSpContextNotReservedErr       kDSpContextNotReservedErr
--30444 kDSpContextAlreadyReservedErr   kDSpContextAlreadyReservedErr
--30443 kDSpInvalidAttributesErr        kDSpInvalidAttributesErr
--30442 kDSpInvalidContextErr   kDSpInvalidContextErr
--30441 kDSpSystemSWTooOldErr   kDSpSystemSWTooOldErr
--30440 kDSpNotInitializedErr   kDSpNotInitializedErr
--30429 kISpListBusyErr kISpListBusyErr
--30428 kISpDeviceActiveErr     kISpDeviceActiveErr
--30427 kISpSystemActiveErr     kISpSystemActiveErr
--30426 kISpDeviceInactiveErr   kISpDeviceInactiveErr
--30425 kISpSystemInactiveErr   kISpSystemInactiveErr
--30424 kISpElementNotInListErr kISpElementNotInListErr
--30423 kISpElementInListErr    kISpElementInListErr
--30422 kISpBufferToSmallErr    kISpBufferToSmallErr
--30421 kISpSystemListErr       kISpSystemListErr
--30420 kISpInternalErr kISpInternalErr
--30399 kNSpJoinFailedErr       kNSpJoinFailedErr
--30398 kNSpCantBlockErr        kNSpCantBlockErr
--30397 kNSpMessageTooBigErr    kNSpMessageTooBigErr
--30396 kNSpSendFailedErr       kNSpSendFailedErr
--30395 kNSpConnectFailedErr    kNSpConnectFailedErr
--30394 kNSpGameTerminatedErr   kNSpGameTerminatedErr
--30393 kNSpTimeoutErr  kNSpTimeoutErr
--30392 kNSpInvalidProtocolListErr      kNSpInvalidProtocolListErr
--30391 kNSpInvalidProtocolRefErr       kNSpInvalidProtocolRefErr
--30390 kNSpInvalidDefinitionErr        kNSpInvalidDefinitionErr
--30389 kNSpAddPlayerFailedErr  kNSpAddPlayerFailedErr
--30388 kNSpCreateGroupFailedErr        kNSpCreateGroupFailedErr
--30387 kNSpNoHostVolunteersErr kNSpNoHostVolunteersErr
--30386 kNSpNoGroupsErr kNSpNoGroupsErr
--30385 kNSpNoPlayersErr        kNSpNoPlayersErr
--30384 kNSpInvalidGroupIDErr   kNSpInvalidGroupIDErr
--30383 kNSpInvalidPlayerIDErr  kNSpInvalidPlayerIDErr
--30382 kNSpNameRequiredErr     kNSpNameRequiredErr
--30381 kNSpFeatureNotImplementedErr    kNSpFeatureNotImplementedErr
--30380 kNSpAddressInUseErr     kNSpAddressInUseErr
--30379 kNSpRemovePlayerFailedErr       kNSpRemovePlayerFailedErr
--30378 kNSpFreeQExhaustedErr   kNSpFreeQExhaustedErr
--30377 kNSpInvalidAddressErr   kNSpInvalidAddressErr
--30376 kNSpNotAdvertisingErr   kNSpNotAdvertisingErr
--30374 kNSpAlreadyAdvertisingErr       kNSpAlreadyAdvertisingErr
--30373 kNSpMemAllocationErr    kNSpMemAllocationErr
--30371 kNSpOTVersionTooOldErr  kNSpOTVersionTooOldErr
--30370 kNSpOTNotPresentErr     kNSpOTNotPresentErr
--30369 kNSpInvalidParameterErr kNSpInvalidParameterErr
--30367 kNSpInvalidGameRefErr   kNSpInvalidGameRefErr
--30366 kNSpProtocolNotAvailableErr     kNSpProtocolNotAvailableErr
--30365 kNSpHostFailedErr       kNSpHostFailedErr
--30364 kNSpPipeFullErr kNSpPipeFullErr
--30362 kNSpTopologyNotSupportedErr     kNSpTopologyNotSupportedErr
--30361 kNSpAlreadyInitializedErr       kNSpAlreadyInitializedErr
--30360 kNSpInitializationFailedErr     kNSpInitializationFailedErr
--30344 kSSpScaleToZeroErr      kSSpScaleToZeroErr
--30343 kSSpParallelUpVectorErr kSSpParallelUpVectorErr
--30342 kSSpCantInstallErr      kSSpCantInstallErr
--30341 kSSpVersionErr  kSSpVersionErr
--30340 kSSpInternalErr kSSpInternalErr
--30049 kALMInternalErr kALMInternalErr
--30048 kALMGroupNotFoundErr    kALMGroupNotFoundErr
--30047 kALMNoSuchModuleErr     kALMNoSuchModuleErr
--30046 kALMModuleCommunicationErr      kALMModuleCommunicationErr
--30045 kALMDuplicateModuleErr  kALMDuplicateModuleErr
--30044 kALMInstallationErr     kALMInstallationErr
--30043 kALMDeferSwitchErr      kALMDeferSwitchErr
--30042 kALMRebootFlagsLevelErr kALMRebootFlagsLevelErr
--30029 kLocalesDefaultDisplayStatus    Requested display locale unavailable, used default
--30002 kLocalesTableFormatErr  kLocalesTableFormatErr
--30001 kLocalesBufferTooSmallErr       kLocalesBufferTooSmallErr
--29589 kFNSNameNotFoundErr     The name with the requested paramters was not found
--29587 kFNSBadFlattenedSizeErr flattened size didn't match input or was too small
--29586 kFNSInsufficientDataErr insufficient data for the operation
--29585 kFNSMismatchErr reference didn't match or wasn't found in profile
--29584 kFNSDuplicateReferenceErr       the ref. being added is already in the profile
--29583 kFNSBadProfileVersionErr        profile version is out of known range
--29582 kFNSInvalidProfileErr   profile is NULL or otherwise bad
--29581 kFNSBadReferenceVersionErr      ref. version is out of known range
--29580 kFNSInvalidReferenceErr ref. was NULL or otherwise bad
--29507 kCollateInvalidCollationRef     kCollateInvalidCollationRef
--29506 kCollateBufferTooSmall  kCollateBufferTooSmall
--29505 kCollateInvalidChar     kCollateInvalidChar
--29504 kCollatePatternNotFoundErr      kCollatePatternNotFoundErr
--29503 kCollateUnicodeConvertFailedErr kCollateUnicodeConvertFailedErr
--29502 kCollateMissingUnicodeTableErr  kCollateMissingUnicodeTableErr
--29501 kCollateInvalidOptions  kCollateInvalidOptions
--29500 kCollateAttributesNotFoundErr   kCollateAttributesNotFoundErr
--29299 kMPInvalidIDErr kMPInvalidIDErr
--29298 kMPInsufficientResourcesErr     kMPInsufficientResourcesErr
--29297 kMPTaskAbortedErr       kMPTaskAbortedErr
--29296 kMPTimeoutErr   kMPTimeoutErr
--29295 kMPDeletedErr   kMPDeletedErr
--29293 kMPBlueBlockingErr      kMPBlueBlockingErr
--29292 kMPTaskStoppedErr       A convention used with MPThrowException.
--29291 kMPTaskBlockedErr       kMPTaskBlockedErr
--29290 kMPTaskCreatedErr       kMPTaskCreatedErr
--29289 kMPProcessTerminatedErr kMPProcessTerminatedErr
--29288 kMPProcessCreatedErr    kMPProcessCreatedErr
--29276 kMPPrivilegedErr        kMPPrivilegedErr
--29275 kMPIterationEndErr      kMPIterationEndErr
--25341 kUCTextBreakLocatorMissingType  Unicode text break error
--25340 kUCOutputBufferTooSmall Output buffer too small for Unicode string result
--25318 errKCCreateChainFailed  errKCCreateChainFailed
--25317 errKCDataNotModifiable  errKCDataNotModifiable
--25316 errKCDataNotAvailable   errKCDataNotAvailable
--25315 errKCInteractionRequired        errKCInteractionRequired
--25314 errKCNoPolicyModule     errKCNoPolicyModule
--25313 errKCNoCertificateModule        errKCNoCertificateModule
--25312 errKCNoStorageModule    errKCNoStorageModule
--25311 errKCKeySizeNotAllowed  errKCKeySizeNotAllowed
--25310 errKCWrongKCVersion     errKCWrongKCVersion
--25309 errKCReadOnlyAttr       errKCReadOnlyAttr
--25308 errKCInteractionNotAllowed      errKCInteractionNotAllowed
--25307 errKCNoDefaultKeychain  errKCNoDefaultKeychain
--25306 errKCNoSuchClass        errKCNoSuchClass
--25305 errKCInvalidSearchRef   errKCInvalidSearchRef
--25304 errKCInvalidItemRef     errKCInvalidItemRef
--25303 errKCNoSuchAttr errKCNoSuchAttr
--25302 errKCDataTooLarge       errKCDataTooLarge
--25301 errKCBufferTooSmall     errKCBufferTooSmall
--25300 errKCItemNotFound       errKCItemNotFound
--25299 errKCDuplicateItem      errKCDuplicateItem
--25298 errKCInvalidCallback    errKCInvalidCallback
--25297 errKCDuplicateCallback  errKCDuplicateCallback
--25296 errKCDuplicateKeychain  errKCDuplicateKeychain
--25295 errKCInvalidKeychain    errKCInvalidKeychain
--25294 errKCNoSuchKeychain     errKCNoSuchKeychain
--25293 errKCAuthFailed errKCAuthFailed
--25292 errKCReadOnly   errKCReadOnly
--25291 errKCNotAvailable       errKCNotAvailable
--25280 printerStatusOpCodeNotSupportedErr      printerStatusOpCodeNotSupportedErr
--22016 kTXNATSUIIsNotInstalledErr      kTXNATSUIIsNotInstalledErr
--22015 kTXNDataTypeNotAllowedErr       kTXNDataTypeNotAllowedErr
--22014 kTXNCopyNotAllowedInEchoModeErr kTXNCopyNotAllowedInEchoModeErr
--22013 kTXNCannotTurnTSMOffWhenUsingUnicodeErr kTXNCannotTurnTSMOffWhenUsingUnicodeErr
--22012 kTXNAlreadyInitializedErr       kTXNAlreadyInitializedErr
--22011 kTXNInvalidRunIndex     kTXNInvalidRunIndex
--22010 kTXNSomeOrAllTagsInvalidForRunErr       kTXNSomeOrAllTagsInvalidForRunErr
--22009 kTXNAttributeTagInvalidForRunErr        dataValue is set to this per invalid tag
--22008 kTXNNoMatchErr  kTXNNoMatchErr
--22007 kTXNRunIndexOutofBoundsErr      kTXNRunIndexOutofBoundsErr
--22006 kTXNCannotSetAutoIndentErr      kTXNCannotSetAutoIndentErr
--22005 kTXNBadDefaultFileTypeWarning   kTXNBadDefaultFileTypeWarning
--22004 kTXNUserCanceledOperationErr    kTXNUserCanceledOperationErr
--22003 kTXNIllegalToCrossDataBoundariesErr     kTXNIllegalToCrossDataBoundariesErr
--22002 kTXNInvalidFrameIDErr   kTXNInvalidFrameIDErr
--22001 kTXNCannotAddFrameErr   kTXNCannotAddFrameErr
--22000 kTXNEndIterationErr     kTXNEndIterationErr
--20002 invalidIndexErr The recordIndex parameter is not valid.
--20001 recordDataTooBigErr     The record data is bigger than buffer size (1024 bytes).
--20000 unknownInsertModeErr    There is no such an insert mode.
--13950 kHIDBaseError   kHIDBaseError
--13949 kHIDNullStateErr        kHIDNullStateErr
--13948 kHIDBufferTooSmallErr   kHIDBufferTooSmallErr
--13947 kHIDValueOutOfRangeErr  kHIDValueOutOfRangeErr
--13946 kHIDUsageNotFoundErr    kHIDUsageNotFoundErr
--13945 kHIDNotValueArrayErr    kHIDNotValueArrayErr
--13944 kHIDInvalidPreparsedDataErr     kHIDInvalidPreparsedDataErr
--13943 kHIDIncompatibleReportErr       kHIDIncompatibleReportErr
--13942 kHIDBadLogPhysValuesErr kHIDBadLogPhysValuesErr
--13941 kHIDInvalidReportTypeErr        kHIDInvalidReportTypeErr
--13940 kHIDInvalidReportLengthErr      kHIDInvalidReportLengthErr
--13939 kHIDNullPointerErr      kHIDNullPointerErr
--13938 kHIDBadParameterErr     kHIDBadParameterErr
--13937 kHIDNotEnoughMemoryErr  kHIDNotEnoughMemoryErr
--13936 kHIDEndOfDescriptorErr  kHIDEndOfDescriptorErr
--13935 kHIDUsagePageZeroErr    kHIDUsagePageZeroErr
--13934 kHIDBadLogicalMinimumErr        kHIDBadLogicalMinimumErr
--13933 kHIDBadLogicalMaximumErr        kHIDBadLogicalMaximumErr
--13932 kHIDInvertedLogicalRangeErr     kHIDInvertedLogicalRangeErr
--13931 kHIDInvertedPhysicalRangeErr    kHIDInvertedPhysicalRangeErr
--13930 kHIDUnmatchedUsageRangeErr      kHIDUnmatchedUsageRangeErr
--13929 kHIDInvertedUsageRangeErr       kHIDInvertedUsageRangeErr
--13928 kHIDUnmatchedStringRangeErr     kHIDUnmatchedStringRangeErr
--13927 kHIDUnmatchedDesignatorRangeErr kHIDUnmatchedDesignatorRangeErr
--13926 kHIDReportSizeZeroErr   kHIDReportSizeZeroErr
--13925 kHIDReportCountZeroErr  kHIDReportCountZeroErr
--13924 kHIDReportIDZeroErr     kHIDReportIDZeroErr
--13923 kHIDInvalidRangePageErr kHIDInvalidRangePageErr
--13910 kHIDDeviceNotReady      The device is still initializing, try again later
--13909 kHIDVersionIncompatibleErr      kHIDVersionIncompatibleErr
--13887 debuggingNoMatchErr     debugging component or option not found at this index
--13886 debuggingNoCallbackErr  debugging component has no callback
--13885 debuggingInvalidNameErr componentName or optionName is invalid (NULL)
--13884 debuggingInvalidOptionErr       optionSelectorNum is not registered
--13883 debuggingInvalidSignatureErr    componentSignature not registered
--13882 debuggingDuplicateOptionErr     optionSelectorNum already registered
--13881 debuggingDuplicateSignatureErr  componentSignature already registered
--13880 debuggingExecutionContextErr    routine cannot be called at this time
--13020 kNoSuchPowerSource      kNoSuchPowerSource
--13014 kProcessorTempRoutineRequiresMPLib2     kProcessorTempRoutineRequiresMPLib2
--13013 kCantReportProcessorTemperatureErr      kCantReportProcessorTemperatureErr
--13010 kPowerMgtRequestDenied  kPowerMgtRequestDenied
--13009 kPowerMgtMessageNotHandled      kPowerMgtMessageNotHandled
--13008 kPowerHandlerNotFoundForProcErr kPowerHandlerNotFoundForProcErr
--13007 kPowerHandlerNotFoundForDeviceErr       kPowerHandlerNotFoundForDeviceErr
--13006 kPowerHandlerExistsForDeviceErr kPowerHandlerExistsForDeviceErr
--13005 pmRecvEndErr    during receive, pmgr did not finish hs configured for this connection
--13004 pmRecvStartErr  during receive, pmgr did not start hs
--13003 pmSendEndErr    during send, pmgr did not finish hs
--13002 pmSendStartErr  during send, pmgr did not start hs
--13001 pmReplyTOErr    Timed out waiting for reply
--13000 pmBusyErr       Power Mgr never ready to start handshake
--11005 pictureDataErr  the picture data was invalid
--11004 colorsRequestedErr      the number of colors requested was illegal
--11003 cantLoadPickMethodErr   unable to load the custom pick proc
--11002 pictInfoVerbErr the passed verb was invalid
--11001 pictInfoIDErr   the internal consistancy check for the PictInfoID is wrong
--11000 pictInfoVersionErr      wrong version of the PictInfo structure
--10116 telNotEnoughdspBW       not enough real-time for allocation
--10115 telBadSampleRate        incompatible sample rate
--10114 telBadSWErr     Software not installed properly
--10113 telDetAlreadyOn detection is already turned on
--10112 telAutoAnsNotOn autoAnswer in not turned on
--10111 telValidateFailed       telValidate failed
--10110 telBadProcID    invalid procID
--10109 telDeviceNotFound       device not found
--10108 telBadCodeResource      code resource not found
--10107 telInitFailed   initialization failed
--10106 telNoCommFolder Communications/Extensions \9f not found
--10103 telUnknownErr   unable to set config
--10102 telNoSuchTool   unable to find tool with name specified
--10091 telBadFunction  bad msgCode specified
--10090 telPBErr        parameter block error, bad format
--10082 telCANotDeflectable     CA not "deflectable"
--10081 telCANotRejectable      CA not "rejectable"
--10080 telCANotAcceptable      CA not "acceptable"
--10072 telTermNotOpen  terminal not opened via TELOpenTerm
--10071 telStillNeeded  terminal driver still needed by someone else
--10070 telAlreadyOpen  terminal already open
--10064 telNoCallbackRef        no call back reference was specified, but is required
--10063 telDisplayModeNotSupp   display mode not supported by tool
--10062 telBadDisplayMode       bad display mode specified
--10061 telFwdTypeNotSupp       forward type not supported by tool
--10060 telDNTypeNotSupp        DN type not supported by tool
--10059 telBadRate      bad rate specified
--10058 telBadBearerType        bad bearerType specified
--10057 telBadSelect    unable to select or deselect DN
--10056 telBadParkID    bad park id specified
--10055 telBadPickupGroupID     bad pickup group ID specified
--10054 telBadFwdType   bad fwdType specified
--10053 telBadFeatureID bad feature ID specified
--10052 telBadIntercomID        bad intercom ID specified
--10051 telBadPageID    bad page ID specified
--10050 telBadDNType    DN type invalid
--10047 telConfLimitExceeded    attempt to exceed switch conference limits
--10046 telCBErr        call back feature not set previously
--10045 telTransferRej  transfer request rejected
--10044 telTransferErr  transfer not prepared
--10043 telConfRej      conference request was rejected
--10042 telConfErr      conference was not prepared
--10041 telConfNoLimit  no limit was specified but required
--10040 telConfLimitErr limit specified is too high for this configuration
--10033 telFeatNotSupp  feature program call not supported by this tool
--10032 telFeatActive   feature already active
--10031 telFeatNotAvail feature subscribed but not available
--10030 telFeatNotSub   feature not subscribed
--10025 errAEPropertiesClash    illegal combination of properties settings for Set Data, make new, or duplicate
--10024 errAECantPutThatThere   in make new, duplicate, etc. class can't be an element of container
--10023 errAENotAnEnumMember    enumerated value in SetData is not allowed for this property
--10022 telIntExtNotSupp        internal external type not supported by this tool
--10021 telBadIntExt    bad internal external error
--10020 telStateNotSupp device state not supported by tool
--10019 telBadStateErr  bad device state specified
--10018 telIndexNotSupp index not supported by this tool
--10017 telBadIndex     bad index specified
--10016 telAPattNotSupp alerting pattern not supported by tool
--10015 telBadAPattErr  bad alerting pattern specified
--10014 telVTypeNotSupp volume type not supported by this tool
--10013 telBadVTypeErr  bad volume type error
--10012 telBadLevelErr  bad volume level setting
--10011 telHTypeNotSupp hook type not supported by this tool
--10010 telBadHTypeErr  bad hook type specified
--10009 errAECantSupplyType     errAECantSupplyType
--10008 telNoOpenErr    unable to open terminal
--10007 telNoMemErr     no memory to allocate handle
--10006 errOSACantAssign        Signaled when an object cannot be set in a container.
--10005 telBadProcErr   bad msgProc specified
--10004 telBadHandErr   bad handle specified
--10003 OSAIllegalAssign        Signaled when an object can never be set in a container
--10002 telBadDNErr     TELDNHandle not found or invalid
--10001 telBadTermErr   invalid TELHandle or handle not found
--10000 errAEEventFailed        errAEEventFailed
--9999  cannotMoveAttachedController    cannotMoveAttachedController
--9998  controllerHasFixedHeight        controllerHasFixedHeight
--9997  cannotSetWidthOfAttachedController      cannotSetWidthOfAttachedController
--9996  controllerBoundsNotExact        controllerBoundsNotExact
--9995  editingNotAllowed       editingNotAllowed
--9994  badControllerHeight     badControllerHeight
--9408  deviceCantMeetRequest   deviceCantMeetRequest
--9407  seqGrabInfoNotAvailable seqGrabInfoNotAvailable
--9406  badSGChannel    badSGChannel
--9405  couldntGetRequiredComponent     couldntGetRequiredComponent
--9404  notEnoughDiskSpaceToGrab        notEnoughDiskSpaceToGrab
--9403  notEnoughMemoryToGrab   notEnoughMemoryToGrab
--9402  cantDoThatInCurrentMode cantDoThatInCurrentMode
--9401  grabTimeComplete        grabTimeComplete
--9400  noDeviceForChannel      noDeviceForChannel
--9109  kNoCardBusCISErr        No valid CIS exists for this CardBus card
--9108  kNotZVCapableErr        This socket does not support Zoomed Video
--9107  kCardPowerOffErr        Power to the card has been turned off
--9106  kAttemptDupCardEntryErr The Enabler was asked to create a duplicate card entry
--9105  kAlreadySavedStateErr   The state has been saved on previous call
--9104  kTooManyIOWindowsErr    device requested more than one I/O window
--9103  kNotReadyErr    PC Card failed to go ready
--9102  kClientRequestDenied    CS Clients should return this code inorder to
--9101  kNoCompatibleNameErr    There is no compatible driver name for this device
--9100  kNoEnablerForCardErr    No Enablers were found that can support the card
--9099  kNoCardEnablersFoundErr No Enablers were found
--9098  kUnsupportedCardErr     Card not supported by generic enabler
--9097  kNoClientTableErr       The client table has not be initialized yet
--9096  kNoMoreInterruptSlotsErr        All internal Interrupt slots are in use
--9095  kNoMoreTimerClientsErr  All timer callbacks are in use
--9094  kNoIOWindowRequestedErr Request I/O window before calling configuration
--9093  kBadCustomIFIDErr       Custom interface ID is invalid
--9092  kBadTupleDataErr        Data in tuple is invalid
--9091  kInvalidCSClientErr     Card Services ClientID is not registered
--9090  kUnsupportedVsErr       Unsupported Voltage Sense
--9089  kInvalidDeviceNumber    kInvalidDeviceNumber
--9088  kPostCardEventErr       _PCCSLPostCardEvent failed and dropped an event
--9087  kCantConfigureCardErr   kCantConfigureCardErr
--9086  kPassCallToChainErr     kPassCallToChainErr
--9085  kCardBusCardErr kCardBusCardErr
--9084  k16BitCardErr   k16BitCardErr
--9083  kBadDeviceErr   kBadDeviceErr
--9082  kBadLinkErr     kBadLinkErr
--9081  kInvalidRegEntryErr     kInvalidRegEntryErr
--9080  kNoCardSevicesSocketsErr        kNoCardSevicesSocketsErr
--9079  kOutOfResourceErr       Card Services has exhausted the resource
--9078  kNoMoreItemsErr there are no more of the requested item
--9077  kInUseErr       requested resource is being used by a client
--9076  kConfigurationLockedErr a configuration has already been locked
--9075  kWriteProtectedErr      media is write-protected
--9074  kBusyErr        unable to process request at this time - try later
--9073  kUnsupportedModeErr     mode is not supported
--9072  kUnsupportedFunctionErr function is not supported by this implementation
--9071  kNoCardErr      no PC card in the socket
--9070  kGeneralFailureErr      an undefined error has occurred
--9069  kWriteFailureErr        unable to complete write request
--9068  kReadFailureErr unable to complete read request
--9067  kBadSpeedErr    specified speed is unavailable
--9066  kBadCISErr      CIS on card is invalid
--9065  kBadHandleErr   clientHandle is invalid
--9064  kBadArgsErr     values in argument packet are invalid
--9063  kBadArgLengthErr        ArgLength argument is invalid
--9062  kBadWindowErr   specified window is invalid
--9061  kBadVppErr      specified Vpp1 or Vpp2 power level index is invalid
--9060  kBadVccErr      specified Vcc power level index is invalid
--9059  kBadTypeErr     specified window or interface type is invalid
--9058  kBadSocketErr   specified logical or physical socket number is invalid
--9057  kBadSizeErr     specified size is invalid
--9056  kBadPageErr     specified page is invalid
--9055  kBadOffsetErr   specified PC card memory array offset is invalid
--9054  kBadIRQErr      specified IRQ level is invalid
--9053  kBadEDCErr      specified EDC generator specified is invalid
--9052  kBadBaseErr     specified base system memory address is invalid
--9051  kBadAttributeErr        specified attributes field value is invalid
--9050  kBadAdapterErr  invalid adapter number
--8992  codecOffscreenFailedPleaseRetryErr      codecOffscreenFailedPleaseRetryErr
--8991  lockPortBitsWrongGDeviceErr     lockPortBitsWrongGDeviceErr
--8990  directXObjectAlreadyExists      directXObjectAlreadyExists
--8989  codecDroppedFrameErr    returned from ImageCodecDrawBand
--8988  codecOffscreenFailedErr codecOffscreenFailedErr
--8987  codecNeedAccessKeyErr   codec needs password in order to decompress
--8986  codecParameterDialogConfirm     codecParameterDialogConfirm
--8985  lockPortBitsSurfaceLostErr      lockPortBitsSurfaceLostErr
--8984  lockPortBitsBadPortErr  lockPortBitsBadPortErr
--8983  lockPortBitsWindowClippedErr    lockPortBitsWindowClippedErr
--8982  lockPortBitsWindowResizedErr    lockPortBitsWindowResizedErr
--8981  lockPortBitsWindowMovedErr      lockPortBitsWindowMovedErr
--8980  lockPortBitsBadSurfaceErr       lockPortBitsBadSurfaceErr
--8979  codecNeedToFlushChainErr        codecNeedToFlushChainErr
--8978  codecDisabledErr        codec disabled itself -- pass codecFlagReenable to reset
--8977  codecNoMemoryPleaseWaitErr      codecNoMemoryPleaseWaitErr
--8976  codecNothingToBlitErr   codecNothingToBlitErr
--8975  codecCantQueueErr       codecCantQueueErr
--8974  codecCantWhenErr        codecCantWhenErr
--8973  codecOpenErr    codecOpenErr
--8972  codecConditionErr       codecConditionErr
--8971  codecExtensionNotFoundErr       codecExtensionNotFoundErr
--8970  codecDataVersErr        codecDataVersErr
--8969  codecBadDataErr codecBadDataErr
--8968  codecWouldOffscreenErr  codecWouldOffscreenErr
--8967  codecAbortErr   codecAbortErr
--8966  codecSpoolErr   codecSpoolErr
--8965  codecImageBufErr        codecImageBufErr
--8964  codecScreenBufErr       codecScreenBufErr
--8963  codecSizeErr    codecSizeErr
--8962  codecUnimpErr   codecUnimpErr
--8961  noCodecErr      noCodecErr
--8960  codecErr        codecErr
--8852  kIllegalClockValueErr   kIllegalClockValueErr
--8851  kUTCOverflowErr kUTCOverflowErr
--8850  kUTCUnderflowErr        kUTCUnderflowErr
--8809  kATSULastErr    The last ATSUI error code.
--8808  kATSULineBreakInWord    This is not an error code but is returned by ATSUBreakLine to
--8807  kATSUCoordinateOverflowErr      Used to indicate the coordinates provided to an ATSUI routine caused
--8806  kATSUNoFontScalerAvailableErr   Used when no font scaler is available for the font passed
--8805  kATSUNoFontCmapAvailableErr     Used when no CMAP table can be accessed or synthesized for the
--8804  kATSULowLevelErr        Used when an error was encountered within the low level ATS
--8803  kATSUQuickDrawTextErr   Used when QuickDraw Text encounters an error rendering or measuring
--8802  kATSUNoStyleRunsAssignedErr     Used when an attempt was made to measure, highlight or draw
--8801  kATSUNotSetErr  Used when the client attempts to retrieve an attribute,
--8800  kATSUInvalidCacheErr    Used when an attempt was made to read in style data
--8799  kATSUInvalidAttributeTagErr     Used when an attempt was made to use a tag value that
--8798  kATSUInvalidAttributeSizeErr    Used when an attempt was made to use an attribute with a
--8797  kATSUInvalidAttributeValueErr   Used when an attempt was made to use an attribute with
--8796  kATSUInvalidFontErr     Used when an attempt was made to use an invalid font ID.
--8795  kATSUNoCorrespondingFontErr     This value is retrned by font ID conversion
--8794  kATSUFontsNotMatched    This value is returned by ATSUMatchFontsToText()
--8793  kATSUFontsMatched       This is not an error code but is returned by
--8792  kATSUInvalidTextRangeErr        An attempt was made to extract information
--8791  kATSUInvalidStyleErr    An attempt was made to use a ATSUStyle which
--8790  kATSUInvalidTextLayoutErr       An attempt was made to use a ATSUTextLayout
--8785  kTECOutputBufferFullStatus      output buffer has no room for conversion of next input text element (partial conversion)
--8784  kTECNeedFlushStatus     kTECNeedFlushStatus
--8783  kTECUsedFallbacksStatus kTECUsedFallbacksStatus
--8771  kTECItemUnavailableErr  item (e.g. name) not available for specified region (& encoding if relevant)
--8770  kTECGlobalsUnavailableErr       globals have already been deallocated (premature TERM)
--8769  unicodeChecksumErr      unicodeChecksumErr
--8768  unicodeNoTableErr       unicodeNoTableErr
--8767  unicodeVariantErr       unicodeVariantErr
--8766  unicodeFallbacksErr     unicodeFallbacksErr
--8765  unicodePartConvertErr   unicodePartConvertErr
--8764  unicodeBufErr   unicodeBufErr
--8763  unicodeCharErr  unicodeCharErr
--8762  unicodeElementErr       unicodeElementErr
--8761  unicodeNotFoundErr      unicodeNotFoundErr
--8760  unicodeTableFormatErr   unicodeTableFormatErr
--8759  unicodeDirectionErr     unicodeDirectionErr
--8758  unicodeContextualErr    unicodeContextualErr
--8757  unicodeTextEncodingDataErr      unicodeTextEncodingDataErr
--8756  kTECDirectionErr        direction stack overflow, etc.
--8755  kTECIncompleteElementErr        text element may be incomplete or is too long for internal buffers
--8754  kTECUnmappableElementErr        kTECUnmappableElementErr
--8753  kTECPartialCharErr      input buffer ends in the middle of a multibyte character, conversion stopped
--8752  kTECBadTextRunErr       kTECBadTextRunErr
--8751  kTECArrayFullErr        supplied name buffer or TextRun, TextEncoding, or UnicodeMapping array is too small
--8750  kTECBufferBelowMinimumSizeErr   output buffer too small to allow processing of first input text element
--8749  kTECNoConversionPathErr kTECNoConversionPathErr
--8748  kTECCorruptConverterErr invalid converter object reference
--8747  kTECTableFormatErr      kTECTableFormatErr
--8746  kTECTableChecksumErr    kTECTableChecksumErr
--8745  kTECMissingTableErr     kTECMissingTableErr
--8740  kTextUndefinedElementErr        text conversion errors
--8739  kTextMalformedInputErr  in DBCS, for example, high byte followed by invalid low byte
--8738  kTextUnsupportedEncodingErr     specified encoding not supported for this operation
--7127  dcmBufferOverflowErr    data is larger than buffer size
--7126  dcmIterationCompleteErr no more item in iterator
--7124  dcmBadFeatureErr        invalid AccessMethod feature
--7122  dcmNoAccessMethodErr    no such AccessMethod
--7121  dcmProtectedErr need keyword to use dictionary
--7119  dcmBadPropertyErr       no such property exist
--7118  dcmBadFindMethodErr     no such find method supported
--7117  dcmBadDataSizeErr       too big data size
--7116  dcmTooManyKeyErr        too many key field
--7115  dcmBadKeyErr    bad key information
--7113  dcmNoFieldErr   no such field exist
--7112  dcmBadFieldTypeErr      no such field type supported
--7111  dcmBadFieldInfoErr      incomplete information
--7110  dcmNecessaryFieldErr    lack required/identify field
--7109  dcmDupRecordErr same record already exist
--7108  dcmNoRecordErr  no such record
--7107  dcmBlockFullErr dictionary block full
--7105  dcmDictionaryBusyErr    dictionary is busy
--7104  dcmDictionaryNotOpenErr dictionary not opened
--7103  dcmPermissionErr        invalid permission
--7102  dcmBadDictionaryErr     invalid dictionary
--7101  dcmNotDictionaryErr     not dictionary
--7100  dcmParamErr     bad parameter
--7000  laEngineNotFoundErr     can't find the engine
--6999  laPropertyErr   Error in properties
--6998  kUSBUnknownDeviceErr    device ref not recognised
--6997  laPropertyIsReadOnlyErr the property is read only
--6996  laPropertyUnknownErr    the property is unknown to this environment
--6995  laPropertyValueErr      Invalid property value
--6994  laDictionaryTooManyErr  too many dictionaries
--6993  laDictionaryUnknownErr  can't use this dictionary with this environment
--6992  laDictionaryNotOpenedErr        the dictionary is not opened
--6991  laTextOverFlowErr       text is too long
--6990  laFailAnalysisErr       analysis failed
--6989  laNoMoreMorphemeErr     nothing to read
--6988  laInvalidPathErr        path is not correct
--6987  kUSBNotHandled  Notification was not handled   (same as NotFound)
--6986  laEnvironmentNotFoundErr        can't fint the specified environment
--6985  laEnvironmentBusyErr    specified environment is used
--6984  laTooSmallBufferErr     output buffer is too small to store any result
--6983  kUSBFlagsError  Unused flags not zeroed
--6982  kUSBAbortedError        Pipe aborted
--6981  kUSBNoBandwidthError    Not enough bandwidth available
--6980  kUSBPipeIdleError       Pipe is Idle, it will not accept transactions
--6979  kUSBPipeStalledError    Pipe has stalled, error needs to be cleared
--6978  kUSBUnknownInterfaceErr Interface ref not recognised
--6977  kUSBDeviceBusy  Device is already being configured
--6976  kUSBDevicePowerProblem  Device has a power problem
--6975  kUSBInvalidBuffer       bad buffer, usually nil
--6974  kUSBDeviceSuspended     Device is suspended
--6973  kUSBDeviceNotSuspended  device is not suspended for resume
--6972  kUSBDeviceDisconnected  Disconnected during suspend or reset
--6971  kUSBTimedOut    Transaction timed out.
--6970  kUSBQueueAborted        Pipe zero stall cleared.
--6969  kUSBPortDisabled        The port you are attached to is disabled, use USBDeviceReset.
--6950  kUSBBadDispatchTable    Improper driver dispatch table
--6949  kUSBUnknownNotification Notification type not defined
--6948  kUSBQueueFull   Internal queue maxxed
--6916  kUSBLinkErr     kUSBLinkErr
--6915  kUSBCRCErr      Pipe stall, bad CRC
--6914  kUSBBitstufErr  Pipe stall, bitstuffing
--6913  kUSBDataToggleErr       Pipe stall, Bad data toggle
--6912  kUSBEndpointStallErr    Device didn't understand
--6911  kUSBNotRespondingErr    Pipe stall, No device, device hung
--6910  kUSBPIDCheckErr Pipe stall, PID CRC error
--6909  kUSBWrongPIDErr Pipe stall, Bad or wrong PID
--6908  kUSBOverRunErr  Packet too large or more data than buffer
--6907  kUSBUnderRunErr Less data than buffer
--6906  kUSBRes1Err     kUSBRes1Err
--6905  kUSBRes2Err     kUSBRes2Err
--6904  kUSBBufOvrRunErr        Host hardware failure on data in, PCI busy?
--6903  kUSBBufUnderRunErr      Host hardware failure on data out, PCI busy?
--6902  kUSBNotSent1Err Transaction not sent
--6901  kUSBNotSent2Err Transaction not sent
--6232  kDMFoundErr     Did not proceed because we found an item
--6231  kDMMainDisplayCannotMoveErr     Trying to move main display (or a display mirrored to it)
--6230  kDMDisplayAlreadyInstalledErr   Attempt to add an already installed display.
--6229  kDMDisplayNotFoundErr   Could not find item (will someday remove).
--6228  kDMDriverNotDisplayMgrAwareErr  Video Driver does not support display manager.
--6227  kDMSWNotInitializedErr  Required software not initialized (eg windowmanager or display mgr).
--6226  kSysSWTooOld    Missing critical pieces of System Software.
--6225  kDMMirroringNotOn       Returned by all calls that need mirroring to be on to do their thing.
--6224  kDMCantBlock    Mirroring is already on, can¹t Block now (call DMUnMirror() first).
--6223  kDMMirroringBlocked     DMBlockMirroring() has been called.
--6222  kDMWrongNumberOfDisplays        Can only handle 2 displays for now.
--6221  kDMMirroringOnAlready   Returned by all calls that need mirroring to be off to do their thing.
--6220  kDMGenErr       Unexpected Error
--6150  kQTSSUnknownErr kQTSSUnknownErr
--5753  collectionVersionErr    collectionVersionErr
--5752  collectionIndexRangeErr collectionIndexRangeErr
--5751  collectionItemNotFoundErr       collectionItemNotFoundErr
--5750  collectionItemLockedErr collectionItemLockedErr
--5699  kNavMissingKindStringErr        kNavMissingKindStringErr
--5698  kNavInvalidCustomControlMessageErr      kNavInvalidCustomControlMessageErr
--5697  kNavCustomControlMessageFailedErr       kNavCustomControlMessageFailedErr
--5696  kNavInvalidSystemConfigErr      kNavInvalidSystemConfigErr
--5640  dialogNoTimeoutErr      dialogNoTimeoutErr
--5623  menuInvalidErr  menu is invalid
--5622  menuItemNotFoundErr     specified menu item wasn't found
--5621  menuUsesSystemDefErr    GetMenuDefinition failed because the menu uses the system MDEF
--5620  menuNotFoundErr specified menu or menu ID wasn't found
--5610  errWindowNotFound       returned from FindWindowOfClass
--5609  errFloatingWindowsNotInitialized        called HideFloatingWindows or ShowFloatingWindows without calling InitFloatingWindows
--5608  errWindowsAlreadyInitialized    tried to call InitFloatingWindows twice, or called InitWindows and then floating windows
--5607  errUserWantsToDragWindow        if returned from TrackWindowProxyDrag, you should call DragWindow on the window
--5606  errCorruptWindowDescription     tried to load a corrupt window description (size or version fields incorrect)
--5605  errUnrecognizedWindowClass      tried to create a window with a bad WindowClass
--5604  errWindowPropertyNotFound       tried to get a nonexistent property
--5603  errInvalidWindowProperty        tried to access a property tag with private creator
--5602  errWindowDoesNotHaveProxy       tried to do something requiring a proxy to a window which doesn¹t have a proxy
--5601  errUnsupportedWindowAttributesForClass  tried to create a window with WindowAttributes not supported by the WindowClass
--5600  errInvalidWindowPtr     tried to pass a bad WindowRef argument
--5553  gestaltLocationErr      gestalt function ptr wasn't in sysheap
--5552  gestaltDupSelectorErr   tried to add an entry that already existed
--5551  gestaltUndefSelectorErr undefined selector was passed to Gestalt
--5550  gestaltUnknownErr       value returned if Gestalt doesn't know the answer
--5502  envVersTooBig   Version bigger than call can handle
--5501  envBadVers      Version non-positive
--5500  envNotPresent   returned by glue.
--5421  qtsAddressBusyErr       qtsAddressBusyErr
--5420  qtsConnectionFailedErr  qtsConnectionFailedErr
--5408  qtsTimeoutErr   qtsTimeoutErr
--5407  qtsUnknownValueErr      qtsUnknownValueErr
--5406  qtsTooMuchDataErr       qtsTooMuchDataErr
--5405  qtsUnsupportedFeatureErr        qtsUnsupportedFeatureErr
--5404  qtsUnsupportedRateErr   qtsUnsupportedRateErr
--5403  qtsUnsupportedDataTypeErr       qtsUnsupportedDataTypeErr
--5402  qtsBadDataErr   something is wrong with the data
--5401  qtsBadStateErr  qtsBadStateErr
--5400  qtsBadSelectorErr       qtsBadSelectorErr
--5388  errIAEndOfTextRun       errIAEndOfTextRun
--5387  errIATextExtractionErr  errIATextExtractionErr
--5386  errIAInvalidDocument    errIAInvalidDocument
--5385  errIACanceled   errIACanceled
--5384  errIABufferTooSmall     errIABufferTooSmall
--5383  errIANoMoreItems        errIANoMoreItems
--5382  errIAParamErr   errIAParamErr
--5381  errIAAllocationErr      errIAAllocationErr
--5380  errIAUnknownErr errIAUnknownErr
--5362  hrUnableToResizeHandleErr       hrUnableToResizeHandleErr
--5361  hrMiscellaneousExceptionErr     hrMiscellaneousExceptionErr
--5360  hrHTMLRenderingLibNotInstalledErr       hrHTMLRenderingLibNotInstalledErr
--5253  errCannotUndo   errCannotUndo
--5252  errNonContiuousAttribute        errNonContiuousAttribute
--5251  errUnknownElement       errUnknownElement
--5250  errReadOnlyText errReadOnlyText
--5249  errEmptyScrap   errEmptyScrap
--5248  errNoHiliteText errNoHiliteText
--5247  errOffsetNotOnElementBounday    errOffsetNotOnElementBounday
--5246  errInvalidRange errInvalidRange
--5245  errIteratorReachedEnd   errIteratorReachedEnd
--5244  errEngineNotFound       errEngineNotFound
--5243  errAlreadyInImagingMode errAlreadyInImagingMode
--5242  errNotInImagingMode     errNotInImagingMode
--5241  errMarginWilllNotFit    errMarginWilllNotFit
--5240  errUnknownAttributeTag  errUnknownAttributeTag
--5063  afpSameNodeErr  An Attempt was made to connect to a file server running on the same machine
--5062  afpAlreadyMounted       The volume is already mounted
--5061  afpCantMountMoreSrvre   The Maximum number of server connections has been reached
--5060  afpBadDirIDType afpBadDirIDType
--5048  afpCallNotAllowed       The server knows what you wanted to do, but won't let you do it just now
--5047  afpAlreadyLoggedInErr   User has been authenticated but is already logged in from another machine (and that's not allowed on this server)
--5046  afpPwdPolicyErr Password does not conform to servers password policy
--5045  afpPwdNeedsChangeErr    The password needs to be changed
--5044  afpInsideTrashErr       The folder being shared is inside the trash folder OR the shared folder is being moved into the trash folder
--5043  afpInsideSharedErr      The folder being shared is inside a shared folder OR the folder contains a shared folder and is being moved into a shared folder
--5042  afpPwdExpiredErr        The password being used is too old: this requires the user to change the password before log-in can continue
--5041  afpPwdTooShortErr       The password being set is too short: there is a minimum length that must be met or exceeded
--5040  afpPwdSameErr   Someone tried to change their password to the same password on a mantadory password change
--5039  afpBadIDErr     afpBadIDErr
--5038  afpSameObjectErr        afpSameObjectErr
--5037  afpCatalogChanged       afpCatalogChanged
--5036  afpDiffVolErr   afpDiffVolErr
--5035  afpIDExists     afpIDExists
--5034  afpIDNotFound   afpIDNotFound
--5033  afpContainsSharedErr    the folder being shared contains a shared folder
--5032  afpObjectLocked Object is M/R/D/W inhibited
--5031  afpVolLocked    Volume is Read-Only
--5030  afpIconTypeError        Icon size specified different from existing icon size
--5029  afpDirNotFound  Unknown directory specified
--5028  afpCantRename   AFPRename cannot rename volume
--5027  afpServerGoingDown      Server is shutting down
--5026  afpTooManyFilesOpen     Maximum open file count reached
--5025  afpObjectTypeErr        File/Directory specified where Directory/File expected
--5024  afpCallNotSupported     Unsupported AFP call was made
--5023  afpUserNotAuth  No AFPLogin call has successfully been made for this session
--5022  afpSessClosed   Session closed
--5021  afpRangeOverlap Some or all of range already locked by same user
--5020  afpRangeNotLocked       Tried to unlock range that was not locked by user
--5019  afpParmErr      A specified parameter was out of allowable range
--5018  afpObjectNotFound       Specified file or directory does not exist
--5017  afpObjectExists Specified destination file or directory already exists
--5016  afpNoServer     Server not responding
--5015  afpNoMoreLocks  Maximum lock limit reached
--5014  afpMiscErr      Unexpected error encountered during execution
--5013  afpLockErr      Some or all of requested range is locked by another user
--5012  afpItemNotFound Unknown UserName/UserID or missing comment/APPL entry
--5011  afpFlatVol      Cannot create directory on specified volume
--5010  afpFileBusy     Cannot delete an open file
--5009  afpEofError     Read beyond logical end-of-file
--5008  afpDiskFull     Insufficient free space on volume for operation
--5007  afpDirNotEmpty  Cannot delete non-empty directory
--5006  afpDenyConflict Specified open/deny modes conflict with current open modes
--5005  afpCantMove     Move destination is offspring of source, or root was specified
--5004  afpBitmapErr    Bitmap contained bits undefined for call
--5003  afpBadVersNum   Unknown AFP protocol version number specified
--5002  afpBadUAM       Unknown user authentication method specified
--5001  afpAuthContinue Further information required to complete AFPLogin call
--5000  afpAccessDenied Insufficient access privileges for operation
--4999  illegalScrapFlavorSizeErr       illegalScrapFlavorSizeErr
--4998  illegalScrapFlavorTypeErr       illegalScrapFlavorTypeErr
--4997  illegalScrapFlavorFlagsErr      illegalScrapFlavorFlagsErr
--4996  scrapFlavorSizeMismatchErr      scrapFlavorSizeMismatchErr
--4995  scrapFlavorFlagsMismatchErr     scrapFlavorFlagsMismatchErr
--4994  nilScrapFlavorDataErr   nilScrapFlavorDataErr
--4993  noScrapPromiseKeeperErr noScrapPromiseKeeperErr
--4992  scrapPromiseNotKeptErr  scrapPromiseNotKeptErr
--4991  processStateIncorrectErr        processStateIncorrectErr
--4990  badScrapRefErr  badScrapRefErr
--4989  duplicateScrapFlavorErr duplicateScrapFlavorErr
--4988  internalScrapErr        internalScrapErr
--4960  coreFoundationUnknownErr        coreFoundationUnknownErr
--4276  badRoutingSizeErr       badRoutingSizeErr
--4275  routingNotFoundErr      routingNotFoundErr
--4274  duplicateRoutingErr     duplicateRoutingErr
--4273  invalidFolderTypeErr    invalidFolderTypeErr
--4272  noMoreFolderDescErr     noMoreFolderDescErr
--4271  duplicateFolderDescErr  duplicateFolderDescErr
--4270  badFolderDescErr        badFolderDescErr
--4217  cmCantGamutCheckError   Gammut checking not supported by this ColorWorld
--4216  cmNamedColorNotFound    NamedColor not found
--4215  cmCantCopyModifiedV1Profile     Illegal to copy version 1 profiles that have been modified
--4214  cmRangeOverFlow Color conversion warning that some output color values over/underflowed and were clipped
--4213  cmInvalidProfileComment Bad Profile comment during drawpicture
--4212  cmNoGDevicesError       Begin/End Matching -- no gdevices available
--4211  cmInvalidDstMap Destination pix/bit map was invalid
--4210  cmInvalidSrcMap Source pix/bit map was invalid
--4209  cmInvalidColorSpace     Profile colorspace does not match bitmap type
--4208  cmErrIncompatibleProfile        Other ColorSync Errors
--4207  cmSearchError   cmSearchError
--4206  cmInvalidSearch Bad Search Handle
--4205  cmInvalidProfileLocation        Operation not supported for this profile location
--4204  cmInvalidProfile        A Profile must contain a 'cs1 ' tag to be valid
--4203  cmFatalProfileErr       cmFatalProfileErr
--4202  cmCantDeleteElement     cmCantDeleteElement
--4201  cmIndexRangeErr Tag index out of range
--4200  kNSLInitializationFailed        UNABLE TO INITIALIZE THE MANAGER!!!!! DO NOT CONTINUE!!!!
--4199  kNSLNotInitialized      kNSLNotInitialized
--4198  kNSLInsufficientSysVer  kNSLInsufficientSysVer
--4197  kNSLInsufficientOTVer   kNSLInsufficientOTVer
--4196  kNSLNoElementsInList    kNSLNoElementsInList
--4195  kNSLBadReferenceErr     kNSLBadReferenceErr
--4194  kNSLBadServiceTypeErr   kNSLBadServiceTypeErr
--4193  kNSLBadDataTypeErr      kNSLBadDataTypeErr
--4192  kNSLBadNetConnection    kNSLBadNetConnection
--4191  kNSLNoSupportForService kNSLNoSupportForService
--4190  kNSLInvalidPluginSpec   kNSLInvalidPluginSpec
--4189  kNSLRequestBufferAlreadyInList  kNSLRequestBufferAlreadyInList
--4188  kNSLNoContextAvailable  (ContinueLookup function ptr invalid)
--4187  kNSLBufferTooSmallForData       (Client buffer too small for data from plugin)
--4186  kNSLCannotContinueLookup        (Can't continue lookup; error or bad state)
--4185  kNSLBadClientInfoPtr    (nil ClientAsyncInfoPtr; no reference available)
--4184  kNSLNullListPtr (client is trying to add items to a nil list)
--4183  kNSLBadProtocolTypeErr  (client is trying to add a null protocol type)
--4182  kNSLPluginLoadFailed    (manager unable to load one of the plugins)
--4181  kNSLNoPluginsFound      (manager didn't find any valid plugins to load)
--4180  kNSLSearchAlreadyInProgress     (you can only have one ongoing search per clientRef)
--4179  kNSLNoPluginsForSearch  (no plugins will respond to search request; bad protocol(s)?)
--4178  kNSLNullNeighborhoodPtr (client passed a null neighborhood ptr)
--4177  kNSLSomePluginsFailedToLoad     (one or more plugins failed to load, but at least one did load; this error isn't fatal)
--4176  kNSLErrNullPtrError     kNSLErrNullPtrError
--4175  kNSLNotImplementedYet   kNSLNotImplementedYet
--4174  kNSLUILibraryNotAvailable       The NSL UI Library needs to be in the Extensions Folder
--4173  kNSLNoCarbonLib kNSLNoCarbonLib
--4172  kNSLBadURLSyntax        URL contains illegal characters
--4171  kNSLSchedulerError      A custom thread routine encountered an error
--4170  kNSL68kContextNotSupported      no 68k allowed
--4009  noHelpForItem   noHelpForItem
--4008  badProfileError badProfileError
--4007  colorSyncNotInstalled   colorSyncNotInstalled
--4006  pickerCantLive  pickerCantLive
--4005  cantLoadPackage cantLoadPackage
--4004  cantCreatePickerWindow  cantCreatePickerWindow
--4003  cantLoadPicker  cantLoadPicker
--4002  pickerResourceError     pickerResourceError
--4001  requiredFlagsDontMatch  requiredFlagsDontMatch
--4000  firstPickerError        firstPickerError
--3285  kOTPortLostConnection   
--3284  kOTUserRequestedErr     
--3283  kOTConfigurationChangedErr      
--3282  kOTBadConfigurationErr  
--3281  kOTPortWasEjectedErr    
--3280  kOTPortHasDiedErr       
--3279  kOTClientNotInittedErr  
--3278  kENOMSGErr      
--3277  kESRCHErr       
--3276  kEINPROGRESSErr 
--3275  kENODATAErr     
--3274  kENOSTRErr      
--3273  kECANCELErr     
--3272  kEBADMSGErr     
--3271  kENOSRErr       
--3270  kETIMEErr       
--3269  kEPROTOErr      \80\80\80 fill out missing codes \80\80\80
--3264  kEHOSTUNREACHErr        No route to host
--3263  kEHOSTDOWNErr   Host is down
--3260  kECONNREFUSEDErr        Connection refused
--3259  kETIMEDOUTErr   Connection timed out
--3258  kETOOMANYREFSErr        Too many references: can't splice
--3257  kESHUTDOWNErr   Can't send after socket shutdown
--3256  kENOTCONNErr    Socket is not connected
--3255  kEISCONNErr     Socket is already connected
--3254  kENOBUFSErr     No buffer space available
--3253  kECONNRESETErr  Connection reset by peer
--3252  kECONNABORTEDErr        Software caused connection abort
--3251  kENETRESETErr   Network dropped connection on reset
--3250  kENETUNREACHErr Network is unreachable
--3249  kENETDOWNErr    Network is down
--3248  kEADDRNOTAVAILErr       Can't assign requested address
--3247  kEADDRINUSEErr  Address already in use
--3244  kEOPNOTSUPPErr  Operation not supported on socket
--3243  kESOCKTNOSUPPORTErr     Socket type not supported
--3242  kEPROTONOSUPPORTErr     Protocol not supported
--3241  kENOPROTOOPTErr Protocol not available
--3240  kEPROTOTYPEErr  Protocol wrong type for socket
--3239  kEMSGSIZEErr    Message too long
--3238  kEDESTADDRREQErr        Destination address required
--3237  kENOTSOCKErr    Socket operation on non-socket
--3236  kEALREADYErr    
--3234  kEWOULDBLOCKErr Call would block, so was aborted
--3233  kERANGEErr      Message size too large for STREAM
--3231  kEPIPEErr       Broken pipe
--3224  kENOTTYErr      Not a character device
--3221  kEINVALErr      Invalid argument
--3218  kENODEVErr      No such device
--3216  kOTDuplicateFoundErr    OT generic duplicate found error
--3215  kEBUSYErr       Device or resource busy
--3213  kEFAULTErr      Bad address
--3212  kEACCESErr      Permission denied
--3211  kOTOutOfMemoryErr       OT ran out of memory, may be a temporary
--3210  kEAGAINErr      Try operation again later
--3208  kEBADFErr       Bad file number
--3205  kENXIOErr       No such device or address
--3204  kEIOErr I/O error
--3203  kEINTRErr       Interrupted system service
--3202  kENORSRCErr     No such resource
--3201  kOTNotFoundErr  OT generic not found error
--3200  kEPERMErr       Permission denied
--3180  kOTCanceledErr  XTI2OSStatus(TCANCELED) The command was cancelled
--3179  kOTBadSyncErr   XTI2OSStatus(TBADSYNC) A synchronous call at interrupt time
--3178  kOTProtocolErr  XTI2OSStatus(TPROTO) An unspecified provider error occurred
--3177  kOTQFullErr     XTI2OSStatus(TQFULL)
--3176  kOTResAddressErr        XTI2OSStatus(TRESADDR)
--3175  kOTResQLenErr   XTI2OSStatus(TRESQLEN)
--3174  kOTProviderMismatchErr  XTI2OSStatus(TPROVMISMATCH) Tried to accept on incompatible endpoint
--3173  kOTIndOutErr    XTI2OSStatus(TINDOUT) Accept failed because of pending listen
--3172  kOTAddressBusyErr       XTI2OSStatus(TADDRBUSY) Address requested is already in use
--3171  kOTBadQLenErr   XTI2OSStatus(TBADQLEN) A Bind to an in-use addr with qlen > 0
--3170  kOTBadNameErr   XTI2OSStatus(TBADNAME) A bad endpoint name was supplied
--3169  kOTNoStructureTypeErr   XTI2OSStatus(TNOSTRUCTYPE) Bad structure type requested for OTAlloc
--3168  kOTStateChangeErr       XTI2OSStatus(TSTATECHNG) State is changing - try again later
--3167  kOTNotSupportedErr      XTI2OSStatus(TNOTSUPPORT) Command is not supported
--3166  kOTNoReleaseErr XTI2OSStatus(TNOREL) No orderly release indication available
--3165  kOTBadFlagErr   XTI2OSStatus(TBADFLAG) A Bad flag value was supplied
--3164  kOTNoUDErrErr   XTI2OSStatus(TNOUDERR) No Unit Data Error indication available
--3163  kOTNoDisconnectErr      XTI2OSStatus(TNODIS) No disconnect indication available
--3162  kOTNoDataErr    XTI2OSStatus(TNODATA) No data available for reading
--3161  kOTFlowErr      XTI2OSStatus(TFLOW) Provider is flow-controlled
--3160  kOTBufferOverflowErr    XTI2OSStatus(TBUFOVFLW) Passed buffer not big enough
--3159  kOTBadDataErr   XTI2OSStatus(TBADDATA) An illegal amount of data was specified
--3158  kOTLookErr      XTI2OSStatus(TLOOK) An event occurred - call Look()
--3157  kOTSysErrorErr  XTI2OSStatus(TSYSERR) A system error occurred
--3156  kOTBadSequenceErr       XTI2OSStatus(TBADSEQ) Sequence specified does not exist
--3155  kOTOutStateErr  XTI2OSStatus(TOUTSTATE) Call issued in wrong state
--3154  kOTNoAddressErr XTI2OSStatus(TNOADDR) No address was specified
--3153  kOTBadReferenceErr      XTI2OSStatus(TBADF) Bad provider reference
--3152  kOTAccessErr    XTI2OSStatus(TACCES) Missing access permission
--3151  kOTBadOptionErr XTI2OSStatus(TBADOPT) A Bad option was specified
--3150  kOTBadAddressErr        XTI2OSStatus(TBADADDR) A Bad address was specified
--3109  sktClosedErr    sktClosedErr
--3108  recNotFnd       recNotFnd
--3107  atpBadRsp       atpBadRsp
--3106  atpLenErr       atpLenErr
--3105  readQErr        readQErr
--3104  extractErr      extractErr
--3103  ckSumErr        ckSumErr
--3102  noMPPErr        noMPPErr
--3101  buf2SmallErr    buf2SmallErr
--3032  noPrefAppErr    noPrefAppErr
--3031  badTranslationSpecErr   badTranslationSpecErr
--3030  noTranslationPathErr    noTranslationPathErr
--3026  couldNotParseSourceFileErr      Source document does not contain source type
--3025  invalidTranslationPathErr       Source type to destination type not a valid path
--3004  unresolvedComponentDLLErr       unresolvedComponentDLLErr
--3003  componentDontRegister   componentDontRegister
--3002  componentNotCaptured    componentNotCaptured
--3001  validInstancesExist     validInstancesExist
--3000  invalidComponentID      invalidComponentID
--2899  cfragLastErrCode        The last value in the range of CFM errors.
--2831  cfragOutputLengthErr    An output parameter is too small to hold the value.
--2830  cfragAbortClosureErr    Used by notification handlers to abort a closure.
--2829  cfragClosureIDErr       The closure ID was not valid.
--2828  cfragContainerIDErr     The fragment container ID was not valid.
--2827  cfragNoRegistrationErr  The registration name was not found.
--2826  cfragNotClosureErr      The closure ID was actually a connection ID.
--2825  cfragFileSizeErr        A file was too large to be mapped.
--2824  cfragFragmentUsageErr   A semantic error in usage of the fragment.
--2823  cfragArchitectureErr    A fragment has an unacceptable architecture.
--2822  cfragNoApplicationErr   No application member found in the cfrg resource.
--2821  cfragInitFunctionErr    A fragment's initialization routine returned an error.
--2820  cfragFragmentCorruptErr A fragment's container was corrupt (known format).
--2819  cfragCFMInternalErr     An internal inconstistancy has been detected.
--2818  cfragCFMStartupErr      Internal error during CFM initialization.
--2817  cfragLibConnErr 
--2816  cfragInitAtBootErr      A boot library has an initialization function.  (System 7 only)
--2815  cfragInitLoopErr        Circularity in required initialization order.
--2814  cfragImportTooNewErr    An import library was too new for a client.
--2813  cfragImportTooOldErr    An import library was too old for a client.
--2812  cfragInitOrderErr       
--2811  cfragNoIDsErr   No more CFM IDs for contexts, connections, etc.
--2810  cfragNoClientMemErr     Out of memory for fragment mapping or section instances.
--2809  cfragNoPrivateMemErr    Out of memory for internal bookkeeping.
--2808  cfragNoPositionErr      The registration insertion point was not found.
--2807  cfragUnresolvedErr      A fragment had "hard" unresolved imports.
--2806  cfragFragmentFormatErr  A fragment's container format is unknown.
--2805  cfragDupRegistrationErr The registration name was already in use.
--2804  cfragNoLibraryErr       The named library was not found.
--2803  cfragNoSectionErr       The specified section was not found.
--2802  cfragNoSymbolErr        The specified symbol was not found.
--2801  cfragConnectionIDErr    The connection ID was not valid.
--2800  cfragFirstErrCode       The first value in the range of CFM errors.
--2780  errASInconsistentNames  English errors:
--2763  errASNoResultReturned   The range -2780 thru -2799 is reserved for dialect specific error codes. (Error codes from different dialects may overlap.)
--2762  errASParameterNotForEvent       errASParameterNotForEvent
--2761  errASIllegalFormalParameter     errASIllegalFormalParameter
--2760  errASTerminologyNestingTooDeep  errASTerminologyNestingTooDeep
--2755  OSAControlFlowError     Signaled when illegal control flow occurs in an application (no catcher for throw, non-lexical loop exit, etc.)
--2754  OSAInconsistentDeclarations     Signaled when a variable is declared inconsistently in the same scope, such as both local and global
--2753  OSAUndefinedVariable    Signaled when a variable is accessed that has no value
--2752  OSADuplicateHandler     Signaled when more than one handler is defined with the same name in a scope where the language doesn't allow it
--2751  OSADuplicateProperty    Signaled when a formal parameter, local variable, or instance variable is specified more than once.
--2750  OSADuplicateParameter   Signaled when a formal parameter, local variable, or instance variable is specified more than once
--2742  OSATokenTooLong Signaled when a name or number is too long to be parsed
--2741  OSASyntaxTypeError      Signaled when another form of syntax was expected. (e.g. "expected a <type> but found <this>")
--2740  OSASyntaxError  Signaled when a syntax error occurs. (e.g. "Syntax error" or "<this> can't go after <that>")
--2721  errASCantCompareMoreThan32k     Parser/Compiler errors:
--2720  errASCantConsiderAndIgnore      errASCantConsiderAndIgnore
--2710  errOSACantCreate        errOSACantCreate
--2709  errOSACantGetTerminology        errOSACantGetTerminology
--2708  errOSADataBlockTooLarge Signaled when an intrinsic limitation is exceeded for the size of a value or data structure.
--2707  errOSAInternalTableOverflow     Signaled when a runtime internal data structure overflows
--2706  errOSAStackOverflow     Signaled when the runtime stack overflows
--2705  errOSACorruptTerminology        Signaled when an application's terminology resource is not readable
--2704  errOSAAppNotHighLevelEventAware Signaled when an application can't respond to AppleEvents
--2703  errOSACantLaunch        Signaled when application can't be launched or when it is remote and program linking is not enabled
--2702  errOSANumericOverflow   Signaled when integer or real value is too large to be represented
--2701  errOSADivideByZero      Signaled when there is an attempt to divide by zero
--2700  errOSAGeneralError      Signaled by user scripts or applications when no actual error code is to be returned.
--2582  noIconDataAvailableErr  The necessary icon data is not available
--2581  noSuchIconErr   The requested icon could not be found
--2580  invalidIconRefErr       The icon ref is not valid
--2557  nrCallNotSupported      This call is not available or supported on this machine
--2556  nrTransactionAborted    transaction was aborted
--2555  nrExitedIteratorScope   outer scope of iterator was exited
--2554  nrIterationDone iteration operation is done
--2553  nrPropertyAlreadyExists property already exists
--2552  nrInvalidEntryIterationOp       invalid entry iteration operation
--2551  nrPathBufferTooSmall    buffer for path is too small
--2550  nrPathNotFound  a path component lookup failed
--2549  nrResultCodeBase        nrResultCodeBase
--2548  nrOverrunErr    nrOverrunErr
--2547  nrNotModifiedErr        nrNotModifiedErr
--2546  nrTypeMismatchErr       nrTypeMismatchErr
--2545  nrPowerSwitchAbortErr   nrPowerSwitchAbortErr
--2544  nrPowerErr      nrPowerErr
--2543  nrDataTruncatedErr      nrDataTruncatedErr
--2542  nrNotSlotDeviceErr      nrNotSlotDeviceErr
--2541  nrNameErr       nrNameErr
--2540  nrNotCreatedErr nrNotCreatedErr
--2539  nrNotFoundErr   nrNotFoundErr
--2538  nrInvalidNodeErr        nrInvalidNodeErr
--2537  nrNotEnoughMemoryErr    nrNotEnoughMemoryErr
--2536  nrLockedErr     nrLockedErr
--2526  mmInternalError mmInternalError
--2524  tsmDefaultIsNotInputMethodErr   Current Input source is KCHR or uchr, not Input Method  (GetDefaultInputMethod)
--2523  tsmNoStem       No stem exists for the token
--2522  tsmNoMoreTokens No more tokens are available for the source text
--2521  tsmNoHandler    No Callback Handler exists for callback
--2520  tsmInvalidContext       Invalid TSMContext specified in call
--2519  tsmUnknownErr   any other errors
--2518  tsmUnsupportedTypeErr   unSupported interface type error
--2517  tsmScriptHasNoIMErr     script has no imput method or is using old IM
--2516  tsmInputMethodIsOldErr  returned by GetDefaultInputMethod
--2515  tsmComponentAlreadyOpenErr      text service already opened for the document
--2514  tsmTSNotOpenErr text service is not open
--2513  tsmTSHasNoMenuErr       the text service has no menu
--2512  tsmUseInputWindowErr    not TSM aware because we are using input window
--2511  tsmDocumentOpenErr      there are open documents
--2510  tsmTextServiceNotFoundErr       no text service found
--2509  tsmCantOpenComponentErr can¹t open the component
--2508  tsmNoOpenTSErr  no open text service
--2507  tsmDocNotActiveErr      document is NOT active
--2506  tsmTSMDocBusyErr        document is still active
--2505  tsmInvalidDocIDErr      invalid TSM documentation id
--2504  tsmNeverRegisteredErr   app never registered error (not TSM aware)
--2503  tsmAlreadyRegisteredErr want to register again error
--2502  tsmNotAnAppErr  not an application error
--2501  tsmInputMethodNotFoundErr       tsmInputMethodNotFoundErr
--2500  tsmUnsupScriptLanguageErr       tsmUnsupScriptLanguageErr
--2499  kernelUnrecoverableErr  kernelUnrecoverableErr
--2422  kernelReturnValueErr    kernelReturnValueErr
--2421  kernelAlreadyFreeErr    kernelAlreadyFreeErr
--2419  kernelIDErr     kernelIDErr
--2418  kernelExceptionErr      kernelExceptionErr
--2417  kernelTerminatedErr     kernelTerminatedErr
--2416  kernelInUseErr  kernelInUseErr
--2415  kernelTimeoutErr        kernelTimeoutErr
--2414  kernelAsyncReceiveLimitErr      kernelAsyncReceiveLimitErr
--2413  kernelAsyncSendLimitErr kernelAsyncSendLimitErr
--2412  kernelAttributeErr      kernelAttributeErr
--2411  kernelExecutionLevelErr kernelExecutionLevelErr
--2410  kernelDeletePermissionErr       kernelDeletePermissionErr
--2409  kernelExecutePermissionErr      kernelExecutePermissionErr
--2408  kernelReadPermissionErr kernelReadPermissionErr
--2407  kernelWritePermissionErr        kernelWritePermissionErr
--2406  kernelObjectExistsErr   kernelObjectExistsErr
--2405  kernelUnsupportedErr    kernelUnsupportedErr
--2404  kernelPrivilegeErr      kernelPrivilegeErr
--2403  kernelOptionsErr        kernelOptionsErr
--2402  kernelCanceledErr       kernelCanceledErr
--2401  kernelIncompleteErr     kernelIncompleteErr
--2209  badCallOrderErr Usually due to a status call being called prior to being setup first
--2208  noDMAErr        Can¹t do DMA digitizing (i.e. can't go to requested dest
--2207  badDepthErr     Can¹t digitize into this depth
--2206  notExactSizeErr Can¹t do exact size requested
--2205  noMoreKeyColorsErr      all key indexes in use
--2204  notExactMatrixErr       warning of bad matrix, digitizer did its best
--2203  matrixErr       bad matrix, digitizer did nothing
--2202  qtParamErr      bad input parameter (out of range, etc)
--2201  digiUnimpErr    feature unimplemented
--2157  qtActionNotHandledErr   qtActionNotHandledErr
--2149  notEnoughDataErr        notEnoughDataErr
--2148  urlDataHFTPURLErr       urlDataHFTPURLErr
--2147  urlDataHFTPServerDisconnectedErr        urlDataHFTPServerDisconnectedErr
--2146  urlDataHFTPNoPasswordErr        urlDataHFTPNoPasswordErr
--2145  urlDataHFTPNeedPasswordErr      urlDataHFTPNeedPasswordErr
--2144  urlDataHFTPBadNameListErr       urlDataHFTPBadNameListErr
--2143  urlDataHFTPNoNetDriverErr       urlDataHFTPNoNetDriverErr
--2142  urlDataHFTPFilenameErr  urlDataHFTPFilenameErr
--2141  urlDataHFTPPermissionsErr       urlDataHFTPPermissionsErr
--2140  urlDataHFTPQuotaErr     urlDataHFTPQuotaErr
--2139  urlDataHFTPNoDirectoryErr       urlDataHFTPNoDirectoryErr
--2138  urlDataHFTPDataConnectionErr    urlDataHFTPDataConnectionErr
--2137  urlDataHFTPServerErr    urlDataHFTPServerErr
--2136  urlDataHFTPBadPasswordErr       urlDataHFTPBadPasswordErr
--2135  urlDataHFTPBadUserErr   urlDataHFTPBadUserErr
--2134  urlDataHFTPShutdownErr  urlDataHFTPShutdownErr
--2133  urlDataHFTPProtocolErr  urlDataHFTPProtocolErr
--2132  urlDataHHTTPRedirectErr urlDataHHTTPRedirectErr
--2131  urlDataHHTTPURLErr      urlDataHHTTPURLErr
--2130  urlDataHHTTPNoNetDriverErr      urlDataHHTTPNoNetDriverErr
--2129  urlDataHHTTPProtocolErr urlDataHHTTPProtocolErr
--2127  qtNetworkAlreadyAllocatedErr    qtNetworkAlreadyAllocatedErr
--2126  notAllowedToSaveMovieErr        notAllowedToSaveMovieErr
--2125  fileOffsetTooBigErr     fileOffsetTooBigErr
--2124  ASDEntryNotFoundErr     ASDEntryNotFoundErr
--2123  ASDBadForkErr   ASDBadForkErr
--2122  ASDBadHeaderErr ASDBadHeaderErr
--2121  AAPNotFoundErr  AAPNotFoundErr
--2120  AAPNotCreatedErr        AAPNotCreatedErr
--2119  qfcbNotCreatedErr       qfcbNotCreatedErr
--2118  qfcbNotFoundErr qfcbNotFoundErr
--2117  wackBadMetaDataErr      wackBadMetaDataErr
--2116  wackForkNotFoundErr     wackForkNotFoundErr
--2115  wackBadFileErr  wackBadFileErr
--2114  unknownFormatErr        unknownFormatErr
--2113  pathNotVerifiedErr      pathNotVerifiedErr
--2112  noPathMappingErr        noPathMappingErr
--2111  emptyPathErr    emptyPathErr
--2110  pathTooLongErr  pathTooLongErr
--2109  cannotBeLeafAtomErr     cannotBeLeafAtomErr
--2108  invalidAtomTypeErr      invalidAtomTypeErr
--2107  invalidAtomContainerErr invalidAtomContainerErr
--2106  invalidAtomErr  invalidAtomErr
--2105  duplicateAtomTypeAndIDErr       duplicateAtomTypeAndIDErr
--2104  atomIndexInvalidErr     atomIndexInvalidErr
--2103  atomsNotOfSameTypeErr   atomsNotOfSameTypeErr
--2102  notLeafAtomErr  notLeafAtomErr
--2101  cannotFindAtomErr       cannotFindAtomErr
--2097  unsupportedProcessorErr unsupportedProcessorErr
--2096  unsupportedOSErr        unsupportedOSErr
--2095  qtmlUninitialized       qtmlUninitialized
--2094  qtmlDllEntryNotFoundErr Windows specific errors (when qtml is loading)
--2093  qtmlDllLoadErr  Windows specific errors (when qtml is loading)
--2092  componentDllEntryNotFoundErr    Windows specific errors (when component is loading)
--2091  componentDllLoadErr     Windows specific errors (when component is loading)
--2090  videoOutputInUseErr     videoOutputInUseErr
--2089  noExportProcAvailableErr        noExportProcAvailableErr
--2087  tuneParseOSErr  tuneParseOSErr
--2086  tunePlayerFullOSErr     tunePlayerFullOSErr
--2085  noteChannelNotAllocatedOSErr    noteChannelNotAllocatedOSErr
--2084  illegalNoteChannelOSErr illegalNoteChannelOSErr
--2083  synthesizerOSErr        synthesizerOSErr
--2082  synthesizerNotRespondingOSErr   synthesizerNotRespondingOSErr
--2081  midiManagerAbsentOSErr  midiManagerAbsentOSErr
--2080  illegalControllerOSErr  illegalControllerOSErr
--2079  illegalInstrumentOSErr  illegalInstrumentOSErr
--2078  illegalKnobValueOSErr   illegalKnobValueOSErr
--2077  illegalKnobOSErr        illegalKnobOSErr
--2076  illegalChannelOSErr     illegalChannelOSErr
--2075  illegalPartOSErr        illegalPartOSErr
--2074  illegalVoiceAllocationOSErr     illegalVoiceAllocationOSErr
--2073  cantReceiveFromSynthesizerOSErr cantReceiveFromSynthesizerOSErr
--2072  cantSendToSynthesizerOSErr      cantSendToSynthesizerOSErr
--2071  notImplementedMusicOSErr        notImplementedMusicOSErr
--2070  internalComponentErr    internalComponentErr
--2069  invalidSpriteIDErr      invalidSpriteIDErr
--2068  invalidImageIndexErr    invalidImageIndexErr
--2067  invalidSpriteIndexErr   invalidSpriteIndexErr
--2066  gWorldsNotSameDepthAndSizeErr   gWorldsNotSameDepthAndSizeErr
--2065  invalidSpritePropertyErr        invalidSpritePropertyErr
--2064  invalidSpriteWorldPropertyErr   invalidSpriteWorldPropertyErr
--2063  missingRequiredParameterErr     missingRequiredParameterErr
--2062  movieTextNotFoundErr    movieTextNotFoundErr
--2061  sourceNotFoundErr       sourceNotFoundErr
--2060  noSourceTreeFoundErr    noSourceTreeFoundErr
--2059  samplesAlreadyInMediaErr        samplesAlreadyInMediaErr
--2058  auxiliaryExportDataUnavailable  auxiliaryExportDataUnavailable
--2057  unsupportedAuxiliaryImportData  unsupportedAuxiliaryImportData
--2056  soundSupportNotAvailableErr     QT for Windows error
--2055  noSoundTrackInMovieErr  QT for Windows error
--2054  noVideoTrackInMovieErr  QT for Windows error
--2053  featureUnsupported      featureUnsupported
--2052  couldNotUseAnExistingSample     couldNotUseAnExistingSample
--2051  noDefaultDataRef        noDefaultDataRef
--2050  badDataRefIndex badDataRefIndex
--2049  invalidDataRefContainer invalidDataRefContainer
--2048  noMovieFound    noMovieFound
--2047  dataNoDataRef   dataNoDataRef
--2046  endOfDataReached        endOfDataReached
--2045  dataAlreadyClosed       dataAlreadyClosed
--2044  dataAlreadyOpenForWrite dataAlreadyOpenForWrite
--2043  dataNotOpenForWrite     dataNotOpenForWrite
--2042  dataNotOpenForRead      dataNotOpenForRead
--2041  invalidSampleDescription        invalidSampleDescription
--2040  invalidChunkCache       invalidChunkCache
--2039  invalidSampleDescIndex  invalidSampleDescIndex
--2038  invalidChunkNum invalidChunkNum
--2037  invalidSampleNum        invalidSampleNum
--2036  invalidRect     invalidRect
--2035  cantEnableTrack cantEnableTrack
--2034  internalQuickTimeError  internalQuickTimeError
--2033  badEditIndex    badEditIndex
--2032  timeNotInMedia  timeNotInMedia
--2031  timeNotInTrack  timeNotInTrack
--2030  trackNotInMovie trackNotInMovie
--2029  trackIDNotFound trackIDNotFound
--2028  badTrackIndex   badTrackIndex
--2027  maxSizeToGrowTooSmall   maxSizeToGrowTooSmall
--2026  userDataItemNotFound    userDataItemNotFound
--2025  staleEditState  staleEditState
--2024  nonMatchingEditState    nonMatchingEditState
--2023  invalidEditState        invalidEditState
--2022  cantCreateSingleForkFile        happens when file already exists
--2021  wfFileNotFound  wfFileNotFound
--2020  movieToolboxUninitialized       movieToolboxUninitialized
--2019  progressProcAborted     progressProcAborted
--2018  mediaTypesDontMatch     mediaTypesDontMatch
--2017  badEditList     badEditList
--2016  cantPutPublicMovieAtom  cantPutPublicMovieAtom
--2015  invalidTime     invalidTime
--2014  invalidDuration invalidDuration
--2013  invalidHandler  invalidHandler
--2012  invalidDataRef  invalidDataRef
--2011  invalidSampleTable      invalidSampleTable
--2010  invalidMovie    invalidMovie
--2009  invalidTrack    invalidTrack
--2008  invalidMedia    invalidMedia
--2007  noDataHandler   noDataHandler
--2006  noMediaHandler  noMediaHandler
--2005  badComponentType        badComponentType
--2004  cantOpenHandler cantOpenHandler
--2003  cantFindHandler cantFindHandler
--2002  badPublicMovieAtom      badPublicMovieAtom
--2001  badImageDescription     badImageDescription
--2000  couldNotResolveDataRef  couldNotResolveDataRef
--1861  badImageErr     bad translucent image PixMap
--1860  badImageRgnErr  bad translucent image region
--1859  noSuitableDisplaysErr   no displays support translucency
--1858  unsupportedForPlatformErr       call is for PowerPC only
--1857  dragNotAcceptedErr      drag was not accepted by receiver
--1856  handlerNotFoundErr      handler not found
--1855  duplicateHandlerErr     handler already exists
--1854  cantGetFlavorErr        error while trying to get flavor data
--1853  duplicateFlavorErr      flavor type already exists
--1852  badDragFlavorErr        unknown flavor type
--1851  badDragItemErr  unknown drag item reference
--1850  badDragRefErr   unknown drag reference
--1813  errEndOfBody    errEndOfBody
--1812  errEndOfDocument        errEndOfDocument
--1811  errTopOfBody    errTopOfBody
--1810  errTopOfDocument        errTopOfDocument
--1801  errOffsetIsOutsideOfView        errOffsetIsOutsideOfView
--1800  errOffsetInvalid        errOffsetInvalid
--1762  errOSACantOpenComponent Can't connect to scripting system with that ID
--1761  errOSAComponentMismatch Parameters are from 2 different components
--1759  errOSADataFormatTooNew  errOSADataFormatTooNew
--1758  errOSADataFormatObsolete        errOSADataFormatObsolete
--1757  errOSANoSuchDialect     errOSANoSuchDialect
--1756  errOSASourceNotAvailable        errOSASourceNotAvailable
--1754  errOSABadSelector       errOSABadSelector
--1753  errOSAScriptError       errOSAScriptError
--1752  errOSABadStorageType    errOSABadStorageType
--1751  errOSAInvalidID errOSAInvalidID
--1750  errOSASystemError       errOSASystemError
--1739  errAEDescIsNull attempting to perform an invalid operation on a null descriptor
--1738  errAEStreamAlreadyConverted     attempt to convert a stream that has already been converted
--1737  errAEStreamBadNesting   nesting violation while streaming
--1736  errAEDuplicateHandler   attempt to install handler in table for identical class and id (1.1 or greater)
--1735  errAEEventFiltered      event has been filtered, and should not be propogated (1.1 or greater)
--1734  errAEReceiveEscapeCurrent       break out of only lowest level of AEReceive (1.1 or greater)
--1733  errAEReceiveTerminate   break out of all levels of AEReceive to the topmost (1.1 or greater)
--1732  errAERecordingIsAlreadyOn       available only in version 1.0.1 or greater
--1731  errAEUnknownObjectType  available only in version 1.0.1 or greater
--1730  errAEEmptyListContainer Attempt to pass empty list as container to accessor
--1729  errAENegativeCount      CountProc returned negative value
--1728  errAENoSuchObject       e.g.,: specifier asked for the 3rd, but there are only 2. Basically, this indicates a run-time resolution error.
--1727  errAENotAnObjSpec       Param to AEResolve not of type 'obj '
--1726  errAEBadTestKey Test is neither typeLogicalDescriptor nor typeCompDescriptor
--1725  errAENoSuchLogical      Something other than AND, OR, or NOT
--1723  errAEAccessorNotFound   Accessor proc matching wantClass and containerType or wildcards not found
--1721  errAEWrongNumberArgs    Logical op kAENOT used with other than 1 term
--1720  errAEImpossibleRange    A range like 3rd to 2nd, or 1st to all.
--1719  errAEIllegalIndex       index is out of range in a put operation
--1718  errAEReplyNotArrived    the contents of the reply you are accessing have not arrived yet
--1717  errAEHandlerNotFound    no handler in the dispatch tables fits the parameters to AEGetEventHandler or AEGetCoercionHandler
--1716  errAEUnknownAddressType the target address type is not known
--1715  errAEParamMissed        a required parameter was not accessed
--1714  errAENotASpecialFunction        there is no special function for/with this keyword
--1713  errAENoUserInteraction  no user interaction is allowed
--1712  errAETimeout    the AppleEvent timed out
--1711  errAEWaitCanceled       in AESend, the user cancelled out of wait loop for reply or receipt
--1710  errAEUnknownSendMode    mode wasn't NoReply, WaitReply, or QueueReply or Interaction level is unknown
--1709  errAEReplyNotValid      AEResetTimer was passed an invalid reply parameter
--1708  errAEEventNotHandled    the AppleEvent was not handled by any handler
--1707  errAENotAppleEvent      the event is not in AppleEvent format
--1706  errAENewerVersion       need newer version of the AppleEvent manager
--1705  errAEBadListItem        the specified list item does not exist
--1704  errAENotAEDesc  errAENotAEDesc
--1703  errAEWrongDataType      errAEWrongDataType
--1702  errAECorruptData        errAECorruptData
--1701  errAEDescNotFound       errAEDescNotFound
--1700  errAECoercionFail       bad parameter data or unable to coerce the data supplied
--1424  errFSIteratorNotSupported       The iterator's flags or container are not supported by this call
--1423  errFSIteratorNotFound   Passed FSIterator is not an open iterator
--1422  errFSBadIteratorFlags   Flags passed to FSOpenIterator are bad
--1421  errFSForkExists Named fork already exists.
--1420  errFSRefsDifferent      FSCompareFSRefs; refs are for different objects
--1419  errFSBadSearchParams    Something wrong with CatalogSearch searchParams
--1418  errFSBadItemCount       maximumItems was zero
--1417  errFSNoMoreItems        Iteration ran out of items to return
--1413  errFSBadAllocFlags      Invalid bits set in allocationFlags
--1412  errFSBadPosMode Newline bits set in positionMode
--1411  errFSMissingName        A Unicode name parameter was NULL or nameLength parameter was zero
--1410  errFSNameTooLong        File/fork name is too long to create/rename
--1409  errFSForkNotFound       Named fork does not exist
--1407  errFSNotAFolder Expected a folder, got a file
--1406  errFSMissingCatInfo     A CatalogInfo parameter was NULL
--1405  errFSBadInfoBitmap      A CatalogInfoBitmap or VolumeInfoBitmap has reserved or invalid bits set
--1404  errFSBadForkRef A ForkRefNum parameter was bad
--1403  errFSBadBuffer  A buffer parameter was bad
--1402  errFSBadForkName        Fork name parameter is bad
--1401  errFSBadFSRef   FSRef parameter is bad
--1400  errFSUnknownCall        selector is not recognized by this filesystem
--1327  badFCBErr       FCBRecPtr is not valid
--1311  volVMBusyErr    can't eject because volume is in use by VM
--1310  fsDataTooBigErr file or volume is too big for system
--1309  fileBoundsErr   file's EOF, offset, mark or size is too big
--1308  notARemountErr  when _Mount allows only remounts and doesn't get one
--1307  badFidErr       file id is dangling or doesn't match with the file number
--1306  sameFileErr     can't exchange a file with itself
--1305  desktopDamagedErr       desktop database files are corrupted
--1304  catChangedErr   the catalog has been modified
--1303  diffVolErr      files on different volumes
--1302  notAFileErr     directory specified
--1301  fidExists       file id already exists
--1300  fidNotFound     no file thread exists.
--1280  errRefNum       bad connection refNum
--1279  errAborted      control call was aborted
--1278  errState        bad connection state for this operation
--1277  errOpening      open connection request failed
--1276  errAttention    attention message too long
--1275  errFwdReset     read terminated by forward reset
--1274  errDSPQueueSize DSP Read/Write Queue Too small
--1273  errOpenDenied   open connection request was denied
--1105  reqAborted      reqAborted
--1104  noDataArea      noDataArea
--1103  noSendResp      noSendResp
--1102  cbNotFound      cbNotFound
--1101  noRelErr        noRelErr
--1100  badBuffNum      badBuffNum
--1099  badATPSkt       badATPSkt
--1098  tooManySkts     tooManySkts
--1097  tooManyReqs     tooManyReqs
--1096  reqFailed       reqFailed
--1075  aspNoAck        No ack on attention request (server err)
--1074  aspTooMany      Too many clients (server error)
--1073  aspSizeErr      Command block too big
--1072  aspSessClosed   Session closed
--1071  aspServerBusy   Server cannot open another session
--1070  aspParamErr     Parameter error
--1069  aspNoServers    No servers at that address
--1068  aspNoMoreSess   No more sessions on server
--1067  aspBufTooSmall  Buffer too small
--1066  aspBadVersNum   Server cannot support this ASP version
--1029  nbpNISErr       Error trying to open the NIS
--1028  nbpNotFound     Name not found on remove
--1027  nbpDuplicate    Duplicate name exists already
--1026  nbpConfDiff     Name confirmed at different socket
--1025  nbpNoConfirm    nbpNoConfirm
--1024  nbpBuffOvr      Buffer overflow in LookupName
--1000  noMaskFoundErr  Icon Utilties Error
--985   kFMFontContainerAccessErr       kFMFontContainerAccessErr
--984   kFMFontTableAccessErr   kFMFontTableAccessErr
--983   kFMIterationScopeModifiedErr    kFMIterationScopeModifiedErr
--982   kFMInvalidFontErr       kFMInvalidFontErr
--981   kFMInvalidFontFamilyErr kFMInvalidFontFamilyErr
--980   kFMIterationCompleted   kFMIterationCompleted
--932   guestNotAllowedErr      destination port requires authentication
--931   badLocNameErr   location name malformed
--930   badServiceMethodErr     illegal service type, or not supported
--928   noUserRecErr    Invalid user reference number
--927   authFailErr     unable to authenticate user at destination
--926   noInformErr     PPCStart failed because destination did not have inform pending
--925   networkErr      An error has occurred in the network, not too likely
--924   noUserRefErr    unable to create a new userRefNum
--923   notLoggedInErr  The default userRefNum does not yet exist
--922   noDefaultUserErr        user hasn't typed in owners name in Network Setup Control Pannel
--919   badPortNameErr  PPCPortRec malformed
--917   sessClosedErr   session was closed
--916   portClosedErr   port was closed
--915   noResponseErr   unable to contact destination
--914   noToolboxNameErr        A system resource is missing, not too likely
--913   noMachineNameErr        user hasn't named his Macintosh in the Network Setup Control Panel
--912   userRejectErr   Destination rejected the session request
--911   noUserNameErr   user name unknown on destination machine
--910   portNameExistsErr       port is already open (perhaps in another app)
--909   badReqErr       bad parameter or invalid state for operation
--908   noSessionErr    Invalid session reference number
--907   sessTableErr    Out of session tables, try again later
--906   destPortErr     Port does not exist at destination
--905   localOnlyErr    Network activity is currently disabled
--904   noGlobalsErr    The system is hosed, better re-boot
--903   noPortErr       Unable to open port or bad portRefNum.  If you're calling
--902   nameTypeErr     Invalid or inappropriate locationKindSelector in locationName
--900   notInitErr      PPCToolBox not initialized
--876   appVersionTooOld        The application's creator and version are incompatible with the current version of Mac OS.
--875   wrongApplicationPlatform        The application could not launch because the required platform is not available
--863   hmCloseViewActive       Returned from HMRemoveBalloon if CloseView was active
--862   hmNoBalloonUp   Returned from HMRemoveBalloon if no balloon was visible when call was made
--861   hmOperationUnsupported  Returned from HMShowBalloon call if bad method passed to routine
--859   hmUnknownHelpType       Returned if help msg record contained a bad type
--858   hmWrongVersion  Returned if help mgr resource was the wrong version
--857   hmSkippedBalloon        Returned from calls if helpmsg specified a skip balloon
--855   hmHelpManagerNotInited  Returned from HMGetHelpMenuHandle if help menu not setup
--854   hmSameAsLastBalloon     Returned from HMShowMenuBalloon if menu & item is same as last time
--853   hmBalloonAborted        Returned if mouse was moving or mouse wasn't in window port rect
--850   hmHelpDisabled  Show Balloons mode was off, call to routine ignored
--813   rcDBPackNotInited       attempt to call other routine before InitDBPack
--812   rcDBWrongVersion        incompatible versions
--811   rcDBNoHandler   no app handler for specified data type
--810   rcDBBadAsyncPB  tried to kill a bad pb
--809   rcDBAsyncNotSupp        ddev does not support async calls
--808   rcDBBadDDEV     bad ddev specified on DBInit
--807   rcDBBadSessNum  bad session number for DBGetConnInfo
--806   rcDBBadSessID   rcDBBadSessID
--805   rcDBExec        rcDBExec
--804   rcDBBreak       rcDBBreak
--803   rcDBBadType     rcDBBadType
--802   rcDBError       rcDBError
--801   rcDBValue       rcDBValue
--800   rcDBNull        rcDBNull
--626   noMMUErr        no MMU present
--625   cannotDeferErr  unable to defer additional functions
--624   interruptsMaskedErr     don¹t call with interrupts masked
--623   notLockedErr    specified range of memory is not locked
--622   cannotMakeContiguousErr cannot make specified range contiguous
--621   notHeldErr      specified range of memory is not held
--620   notEnoughMemoryErr      insufficient physical memory
--619   threadProtocolErr       threadProtocolErr
--618   threadNotFoundErr       threadNotFoundErr
--617   threadTooManyReqsErr    threadTooManyReqsErr
--610   noUserInteractionAllowed        no user interaction allowed
--609   connectionInvalid       connectionInvalid
--608   noOutstandingHLE        noOutstandingHLE
--607   bufferIsSmall   error returns from Post and Accept
--606   appIsDaemon     app is BG-only, and launch flags disallow this
--605   appMemFullErr   application SIZE not big enough for launch
--604   hardwareConfigErr       hardware configuration not correct for call
--603   protocolErr     app made module calls in improper order
--602   appModeErr      memory mode is 32-bit, but app not 32-bit clean
--601   memFragErr      not enough room to launch app w/special requirements
--600   procNotFound    no eligible process with specified descriptor
--503   driverHardwareGoneErr   disk driver's hardware was disconnected
--502   hwParamErr      bad selector for _HWPriv
--501   teScrapSizeErr  scrap item too big for text edit record
--500   rgnTooBigErr    rgnTooBigErr
--492   exUserBreak     user debugger break; execute debugger commands on stack
--491   strUserBreak    user debugger break; display string on stack
--490   userBreak       user debugger break
--463   notThePublisherWrn      not the first registered publisher for that container
--462   containerAlreadyOpenWrn container already opened by this section
--461   containerNotFoundWrn    could not find editionContainer at this time
--460   multiplePublisherWrn    A Publisher is already registered for that container
--454   badSubPartErr   can not use sub parts in this release
--453   badEditionFileErr       edition file is corrupt
--452   notRegisteredSectionErr not a registered SectionRecord
--451   badSectionErr   not a valid SectionRecord
--450   editionMgrInitErr       edition manager not inited by this app
--438   fsmUnknownFSMMessageErr unknown message passed to FSM
--437   fsmNoAlternateStackErr  no alternate stack for HFS CI
--436   fsmBadFSDVersionErr     FSM version incompatible with FSD
--435   fsmDuplicateFSIDErr     FSID already exists on InstallFS
--434   fsmBadFSDLenErr FSD size incompatible with current FSM vers
--433   fsmBadFFSNameErr        Name length not 1 <= length <= 31
--432   fsmBusyFFSErr   File system is busy, cannot be removed
--431   fsmFFSNotFoundErr       Foreign File system does not exist - new Pack2 could return this error too
--417   btKeyAttrErr    There is no such a key attribute.
--416   btKeyLenErr     Maximum key length is too long or equal to zero.
--415   btRecNotFnd     Record cannot be found.
--414   btDupRecErr     Record already exists.
--413   btNoSpace       Can't allocate disk space.
--410   notBTree        The file is not a dictionary.
--400   gcrOnMFMErr     gcr format on high density media error
--360   slotNumErr      invalid slot # error
--351   smRecNotFnd     Record not found in the SRT.
--350   smSRTOvrFlErr   SRT over flow.
--349   smNoGoodOpens   No opens were successfull in the loop.
--348   smOffsetErr     Offset was too big (temporary error
--347   smByteLanesErr  NumByteLanes was determined to be zero.
--346   smBadsPtrErr    Bad pointer was passed to sCalcsPointer
--345   smsGetDrvrErr   Error occurred during _sGetDriver.
--344   smNoMoresRsrcs  No more sResources
--343   smDisDrvrNamErr Error occurred during _sDisDrvrName.
--342   smGetDrvrNamErr Error occurred during _sGetDrvrName.
--341   smCkStatusErr   Status of slot = fail.
--340   smBlkMoveErr    _BlockMove error
--339   smNewPErr       _NewPtr error
--338   smSelOOBErr     Selector out of bounds error
--337   smSlotOOBErr    Slot out of bounds error
--336   smNilsBlockErr  Nil sBlock error (Dont allocate and try to use a nil sBlock)
--335   smsPointerNil   LPointer is nil From sOffsetData. If this error occurs; check sInfo rec for more information.
--334   smCPUErr        Code revision is wrong
--333   smCodeRevErr    Code revision is wrong
--332   smReservedErr   Reserved field not zero
--331   smBadsList      Bad sList: Id1 < Id2 < Id3 ...format is not followed.
--330   smBadRefId      Reference Id not found in List
--320   smBusErrTO      BusError time out.
--319   smBadBoardId    BoardId was wrong; re-init the PRAM record.
--318   smReservedSlot  slot is reserved, VM should not use this address space.
--317   smInitTblVErr   An error occurred while trying to initialize the Slot Resource Table.
--316   smInitStatVErr  The InitStatusV field was negative after primary or secondary init.
--315   smNoBoardId     No Board Id.
--314   smGetPRErr      Error occurred during _sGetPRAMRec (See SIMStatus).
--313   smNoBoardSRsrc  No Board sResource.
--312   smDisposePErr   _DisposePointer error
--311   smFHBlkDispErr  Error occurred during _sDisposePtr (Dispose of FHeader block).
--310   smFHBlockRdErr  Error occurred during _sGetFHeader.
--309   smBLFieldBad    ByteLanes field was bad.
--308   smUnExBusErr    Unexpected BusError
--307   smResrvErr      Fatal reserved error. Resreved field <> 0.
--306   smNosInfoArray  No sInfoArray. Memory Mgr error.
--305   smDisabledSlot  This slot is disabled (-305 use to be smLWTstBad)
--304   smNoDir Directory offset is Nil
--303   smRevisionErr   Wrong revison level
--302   smFormatErr     FHeader Format is not Apple's
--301   smCRCFail       CRC check failed for declaration data
--300   smEmptySlot     No card in slot
--299   nmTypErr        Notification Manager:wrong queue type
--293   smPriInitErr    Error; Cards could not be initialized.
--292   smPRAMInitErr   Error; Slot Resource Table could not be initialized.
--291   smSRTInitErr    Error; Slot Resource Table could not be initialized.
--290   smSDMInitErr    Error; SDM could not be initialized.
--261   midiInvalidCmdErr       command not supported for port type
--260   midiDupIDErr    duplicate client ID
--259   midiNameLenErr  name supplied is longer than 31 characters
--258   midiWriteErr    MIDIWritePacket couldn't write to all connected ports
--257   midiNoConErr    no connection exists between specified ports
--256   midiVConnectRmvd        pending virtual connection removed
--255   midiVConnectMade        pending virtual connection resolved
--254   midiVConnectErr pending virtual connection created
--253   midiTooManyConsErr      too many connections made
--252   midiTooManyPortsErr     too many ports already installed in the system
--251   midiNoPortErr   no port with that ID found
--250   midiNoClientErr no client with that ID found
--247   badInputText    badInputText
--246   badDictFormat   badDictFormat
--245   incompatibleVoice       incompatibleVoice
--244   voiceNotFound   voiceNotFound
--243   bufTooSmall     bufTooSmall
--242   synthNotReady   synthNotReady
--241   synthOpenFailed synthOpenFailed
--240   noSynthFound    noSynthFound
--232   siUnknownQuality        invalid quality selector (returned by driver)
--231   siUnknownInfoType       invalid info type selector (returned by driver)
--230   siInputDeviceErr        input device hardware failure
--229   siBadRefNum     invalid input device reference number
--228   siBadDeviceName input device could not be opened
--227   siDeviceBusyErr input device already in use
--226   siInvalidSampleSize     invalid sample size
--225   siInvalidSampleRate     invalid sample rate
--224   siHardDriveTooSlow      hard drive too slow to record to disk
--223   siInvalidCompression    invalid compression type
--222   siNoBufferSpecified     returned by synchronous SPBRecord if nil buffer passed
--221   siBadSoundInDevice      invalid index passed to SoundInGetIndexedDevice
--220   siNoSoundInHardware     no Sound Input hardware
--213   siVBRCompressionNotSupported    vbr audio compression not supported for this operation
--212   noMoreRealTime  not enough CPU cycles left to add another task
--211   channelNotBusy  channelNotBusy
--210   buffersTooSmall can not operate in the memory allowed
--209   channelBusy     the Channel is being used for a PFD already
--208   badFileFormat   was not type AIFF or was of bad format,corrupt
--207   notEnoughBufferSpace    could not allocate enough memory
--206   badFormat       Sound Manager Error Returns
--205   badChannel      Sound Manager Error Returns
--204   resProblem      Sound Manager Error Returns
--203   queueFull       Sound Manager Error Returns
--201   notEnoughHardwareErr    Sound Manager Error Returns
--200   noHardwareErr   Sound Manager Error Returns
--199   mapReadErr      map inconsistent with operation
--198   resAttrErr      attribute inconsistent with operation
--197   rmvRefFailed    RmveReference failed
--196   rmvResFailed    RmveResource failed
--195   addRefFailed    AddReference failed
--194   addResFailed    AddResource failed
--193   resFNotFound    Resource file not found
--192   resNotFound     Resource not found
--190   inputOutOfBounds        Offset of Count out of bounds
--189   writingPastEnd  Writing past end of file
--188   resourceInMemory        Resource already in memory
--186   CantDecompress  resource bent ("the bends") - can't decompress a compressed resource
--185   badExtResource  extended resource has a bad format.
--182   cmNoCurrentProfile      Responder error
--181   cmUnsupportedDataType   Responder error
--180   cmCantDeleteProfile     Responder error
--179   cmCantXYZ       CMM cant handle XYZ space
--178   cmCantConcatenateError  Profile can't be concatenated
--177   cmProfilesIdentical     Profiles the same
--176   cmProfileNotFound       Responder error
--175   cmMethodNotFound        CMM not present
--171   cmMethodError   cmMethodError
--170   cmProfileError  cmProfileError
--157   cDepthErr       invalid pixel depth
--156   cResErr invalid resolution for MakeITable
--155   cDevErr invalid type of graphics device
--154   cProtectErr     colorTable entry protection violation
--153   cRangeErr       range error on colorTable request
--152   cNoMemErr       failed to allocate memory for structure
--151   cTempMemErr     failed to allocate memory for temporary structures
--150   cMatchErr       Color2Index failed to find an index
--149   insufficientStackErr    insufficientStackErr
--148   pixMapTooDeepErr        pixMapTooDeepErr
--147   rgnOverflowErr  rgnOverflowErr
--145   noMemForPictPlaybackErr noMemForPictPlaybackErr
--128   userCanceledErr userCanceledErr
--127   hMenuFindErr    could not find HMenu's parent in MenuKey (wrong error code - obsolete)
--126   mBarNFnd        system error code for MBDF not found
--125   updPixMemErr    insufficient memory to update a pixmap
--124   volGoneErr      Server volume has been disconnected.
--123   wrgVolTypErr    Wrong volume type error [operation not supported for MFS]
--122   badMovErr       Move into offspring error
--121   tmwdoErr        No free WDCB available
--120   dirNFErr        Directory not found
--117   memLockedErr    trying to move a locked block (MoveHHi)
--116   memSCErr        Size Check failed
--115   memBCErr        Block Check failed
--114   memPCErr        Pointer Check failed
--113   memAZErr        Address in zone check failed
--112   memPurErr       trying to purge a locked or non-purgeable block
--111   memWZErr        WhichZone failed (applied to free block)
--110   memAdrErr       address was odd; or out of range
--109   nilHandleErr    Master Pointer was NIL in HandleZone or other
--108   memFullErr      Not enough room in heap zone
--102   noTypeErr       No object of that type in scrap
--100   noScrapErr      No scrap exists error
--99    memROZWarn      soft error in ROZ
--98    portNotCf       driver Open error code (parameter RAM not configured for this connection)
--97    portInUse       driver Open error code (port is in use)
--96    portNotPwr      serial port not currently powered
--95    excessCollsns   excessive collisions on write
--94    lapProtErr      error in attaching/detaching protocol
--93    noBridgeErr     no network bridge for non-local send
--92    eLenErr Length error ddpLenErr
--91    eMultiErr       Multicast address error ddpSktErr
--90    breakRecd       Break received (SCC)
--89    rcvrErr SCC receiver error (framing; parity; OR)
--88    prInitErr       InitUtil found the parameter ram uninitialized
--87    prWrErr parameter ram written didn't read-verify
--86    clkWrErr        time written did not verify
--85    clkRdErr        unable to read same clock value twice
--84    verErr  track failed to verify
--83    fmt2Err can't get enough sync
--82    fmt1Err can't find sector 0 after track format
--81    sectNFErr       sector number never found on a track
--80    seekErr track number wrong on address mark
--79    spdAdjErr       unable to correctly adjust disk speed
--78    twoSideErr      tried to read 2nd side on a 1-sided drive
--77    initIWMErr      unable to initialize IWM
--76    tk0BadErr       track 0 detect doesn't change
--75    cantStepErr     step handshake failed
--74    wrUnderrun      write underrun occurred
--73    badDBtSlp       bad data mark bit slip nibbles
--72    badDCksum       bad data mark checksum
--71    noDtaMkErr      couldn't find a data mark header
--70    badBtSlpErr     bad addr mark bit slip nibbles
--69    badCksmErr      addr mark checksum didn't check
--68    dataVerErr      read verify compare failed
--67    noAdrMkErr      couldn't find valid addr mark
--66    noNybErr        couldn't find 5 nybbles in 200 tries
--65    offLinErr       r/w requested for an off-line drive
--64    fontDecError    error during font declaration
--61    wrPermErr       write permissions error
--60    badMDBErr       bad master directory block
--59    fsRnErr file system internal error:during rename the old entry was deleted but could not be restored.
--58    extFSErr        volume in question belongs to an external fs
--57    noMacDskErr     not a mac diskette (sig bytes are wrong)
--56    nsDrvErr        no such drive (tried to mount a bad drive num)
--55    volOnLinErr     drive volume already on-line at MountVol
--54    permErr permissions error (on file open)
--53    volOffLinErr    volume not on line error (was Ejected)
--52    gfpErr  get file position error
--51    rfNumErr        refnum error
--50    paramErr        error in user parameter list
--49    opWrErr file already open with with write permission
--48    dupFNErr        duplicate filename (rename)
--47    fBsyErr File is busy (delete)
--46    vLckdErr        volume is locked
--45    fLckdErr        file is locked
--44    wPrErr  diskette is write protected.
--43    fnfErr  File not found
--42    tmfoErr too many files open
--41    mFulErr memory full (open) or file won't fit (load)
--40    posErr  tried to position to before start of file (r/w)
--39    eofErr  End of file
--38    fnOpnErr        File not open
--37    bdNamErr        there may be no bad names in the final system!
--36    ioErr   I/O error (bummers)
--35    nsvErr  no such volume
--34    dskFulErr       disk full
--33    dirFulErr       Directory full
--30    dceExtErr       dce extension error
--29    unitTblFullErr  unit table has no more entries
--28    notOpenErr      Couldn't rd/wr/ctl/sts cause driver not opened
--27    iIOAbortErr     IO abort error (Printing Manager)
--26    dInstErr        DrvrInstall couldn't find driver in resources
--25    dRemovErr       tried to remove an open driver
--24    closErr I/O System Errors
--23    openErr I/O System Errors
--22    unitEmptyErr    I/O System Errors
--21    badUnitErr      I/O System Errors
--20    writErr I/O System Errors
--19    readErr I/O System Errors
--18    statusErr       I/O System Errors
--17    controlErr      I/O System Errors
--13    dsExtensionsDisabled    say Â³Extensions Disabled²
--12    dsHD20Installed say Â³HD20 Startup²
--11    dsDisassemblerInstalled say Â³Disassembler Installed²
--10    dsMacsBugInstalled      say Â³MacsBug Installed²
--8     seNoDB  no debugger installed to handle debugger command
--5     SlpTypeErr      invalid queue element
--4     unimpErr        unimplemented core routine
--3     corErr  core routine number out of range
--2     dsNoExtsDisassembler    not a SysErr, just a placeholder
--1     qErr    queue element not found during deletion
-0      tsmComponentNoErr       component result = no error
-1      EPERM   Operation not permitted
-2      ENOENT  No such file or directory
-3      ESRCH   No such process
-4      EINTR   Interrupted system call
-5      EIO     Input/output error
-6      ENXIO   Device not configured
-7      E2BIG   Argument list too long
-8      ENOEXEC Exec format error
-9      EBADF   Bad file descriptor
-10     ECHILD  No child processes
-11     EDEADLK Resource deadlock avoided
-12     ENOMEM  Cannot allocate memory
-13     EACCES  Permission denied
-14     EFAULT  Bad address
-15     ECANCELED       Operation cancelled
-16     EBUSY   Device busy
-17     EEXIST  File exists
-18     EXDEV   Cross-device link
-19     ENODEV  Operation not supported by device
-20     ENOTDIR Not a directory
-21     EISDIR  Is a directory
-22     EINVAL  Invalid argument
-23     ENFILE  Too many open files in system
-24     EMFILE  Too many open files
-25     ENOTTY  Inappropriate ioctl for device
-27     EFBIG   File too large
-28     ENOSPC  No space left on device
-29     ESPIPE  Illegal seek
-30     EROFS   Read-only file system
-31     EMLINK  Too many links
-32     EPIPE   Broken pipe
-33     EDOM    Numerical argument out of domain
-34     ERANGE  Result too large
-35     EAGAIN  Resource temporarily unavailable
-36     EINPROGRESS     Operation now in progress
-37     EALREADY        Operation already in progress
-38     ENOTSOCK        Socket operation on non-socket
-39     EDESTADDRREQ    Destination address required
-40     EMSGSIZE        Message too long
-41     EPROTOTYPE      Protocol wrong type for socket
-42     ENOPROTOOPT     Protocol not available
-43     EPROTONOSUPPORT Protocol not supported
-44     ESOCKTNOSUPPORT Socket type not supported
-45     EOPNOTSUPP      Operation not supported
-46     EPFNOSUPPORT    Protocol family not supported
-47     EAFNOSUPPORT    Address family not supported by protocol family
-48     EADDRINUSE      Address already in use
-49     EADDRNOTAVAIL   Can't assign requested address
-50     ENETDOWN        Network is down
-51     ENETUNREACH     Network is unreachable
-52     ENETRESET       Network dropped connection on reset
-53     ECONNABORTED    Software caused connection abort
-54     ECONNRESET      Connection reset by peer
-55     ENOBUFS No buffer space available
-56     EISCONN Socket is already connected
-57     ENOTCONN        Socket is not connected
-58     ESHUTDOWN       Can't send after socket shutdown
-59     ETOOMANYREFS    Too many references: can't splice
-60     ETIMEDOUT       Operation timed out
-61     ECONNREFUSED    Connection refused
-62     ELOOP   Too many levels of symbolic links
-63     ENAMETOOLONG    File name too long
-64     EHOSTDOWN       Host is down
-65     EHOSTUNREACH    No route to host
-66     ENOTEMPTY       Directory not empty
-67     ELOOK   Internal mapping for kOTLookErr, don't return to client
-77     ENOLCK  No locks available
-78     ENOSYS  Function not implemented
diff --git a/Mac/scripts/fullbuild.py b/Mac/scripts/fullbuild.py
deleted file mode 100644 (file)
index 0500286..0000000
+++ /dev/null
@@ -1,373 +0,0 @@
-#
-# fullbuild creates everything that needs to be created before a
-# distribution can be made, and puts it all in the right place.
-#
-# It expects the projects to be in the places where Jack likes them:
-# in directories named like 'build.mac'. That is fixable,
-# however.
-#
-# NOTE: You should proably make a copy of python with which to execute this
-# script, rebuilding running programs does not work...
-
-MACBUILDNO=":Mac:Include:macbuildno.h"
-
-import os
-import sys
-import macfs
-import MacOS
-import EasyDialogs
-import re
-import string
-
-import aetools
-import AppleEvents
-
-OLDAESUPPORT = 0
-
-if OLDAESUPPORT:
-       from Metrowerks_Shell_Suite import Metrowerks_Shell_Suite
-       from CodeWarrior_suite import CodeWarrior_suite
-       from Metrowerks_Standard_Suite import Metrowerks_Standard_Suite
-       from Required_Suite import Required_Suite
-else:
-       import CodeWarrior
-
-import Res
-import Dlg
-
-import buildtools
-import cfmfile
-
-# Dialog resource. Note that the item numbers should correspond
-# to those in the DITL resource. Also note that the order is important:
-# things are built in this order, so there should be no forward dependencies.
-DIALOG_ID = 512
-
-I_OK=1
-I_CANCEL=2
-# label 3
-I_PPC_EXTLIBS=4
-I_GEN_PROJECTS=5
-I_GEN_PROJECTS_FORCE=6
-I_GEN_IMGPROJECTS=7
-I_GEN_IMGPROJECTS_FORCE=8
-I_INC_BUILDNO=9
-# label 10
-I_PPC_CORE=11
-I_PPC_PLUGINS=12
-I_PPC_EXTENSIONS=13
-# label 14
-I_CARBON_CORE=15
-I_CARBON_PLUGINS=16
-I_CARBON_EXTENSIONS=17
-I_INTERPRETER=18
-# label 19
-I_PPC_FULL=20
-I_PPC_SMALL=21
-# label 22
-I_CARBON_FULL=23
-I_CARBON_SMALL=24
-# label 25
-I_APPLETS=26
-
-N_BUTTONS=27
-
-if OLDAESUPPORT:
-       class MwShell(Metrowerks_Shell_Suite, CodeWarrior_suite, Metrowerks_Standard_Suite,
-                                       Required_Suite, aetools.TalkTo):
-               pass
-else:
-       MwShell = CodeWarrior.CodeWarrior
-
-RUNNING=[]
-
-def buildmwproject(top, creator, projects):
-       """Build projects with an MW compiler"""
-       mgr = MwShell(creator, start=1)
-       mgr.send_timeout = AppleEvents.kNoTimeOut
-       
-       failed = []
-       for file in projects:
-               if type(file) == type(()):
-                       file, target = file
-               else:
-                       target = ''
-               file = os.path.join(top, file)
-               try:
-                       fss = macfs.FSSpec(file)
-               except MacOS.Error:
-                       print '** file not found:', file
-                       continue
-               print 'Building', file, target
-               try:
-                       mgr.open(fss)
-               except aetools.Error, detail:
-                       print '**', detail, file
-                       continue
-               if target:
-                       try:
-                               mgr.Set_Current_Target(target)
-                       except aetools.Error, arg:
-                               print '**', file, target, 'Cannot select:', arg
-               try:
-                       mgr.Make_Project()
-               except aetools.Error, arg:
-                       print '**', file, target, 'Failed:', arg
-                       failed.append(fss)
-               mgr.Close_Project()
-       if failed:
-               print 'Open failed projects and exit?',
-               rv = sys.stdin.readline()
-               if rv[0] in ('y', 'Y'):
-                       for fss in failed:
-                               mgr.open(fss)
-                       sys.exit(0)
-##     mgr.quit()
-       
-def buildapplet(top, dummy, list):
-       """Create python applets"""
-       for src, dst, tmpl in list:
-               template = buildtools.findtemplate(tmpl)
-               if src[-3:] != '.py':
-                       raise 'Should end in .py', src
-               base = os.path.basename(src)
-               src = os.path.join(top, src)
-               dst = os.path.join(top, dst)
-               try:
-                       os.unlink(dst)
-               except os.error:
-                       pass
-               print 'Building applet', dst
-               try:
-                       buildtools.process(template, src, dst, 1)
-               except buildtools.BuildError, arg:
-                       print '**', dst, arg
-               
-def buildprojectfile(top, arg, list):
-       """Create CodeWarrior project files with a script"""
-       for folder, module, routine in list:
-               print "Generating project files with", module
-               sys.path.insert(0, os.path.join(top, folder))
-               m = __import__(module)
-               r = getattr(m, routine)
-               r(arg)
-               del sys.path[0]
-               
-def buildfat(top, dummy, list):
-       """Build fat binaries"""
-       for dst, src1, src2 in list:
-               dst = os.path.join(top, dst)
-               src1 = os.path.join(top, src1)
-               src2 = os.path.join(top, src2)
-               print 'Building fat binary', dst
-               cfmfile.mergecfmfiles((src1, src2), dst)
-               
-def buildcopy(top, dummy, list):
-       import macostools
-       for src, dst in list:
-               src = os.path.join(top, src)
-               dst = os.path.join(top, dst)
-               macostools.copy(src, dst, forcetype="APPL")
-               
-def handle_dialog(filename):
-       """Handle selection dialog, return list of selected items"""
-       d = Dlg.GetNewDialog(DIALOG_ID, -1)
-       d.SetDialogDefaultItem(I_OK)
-       d.SetDialogCancelItem(I_CANCEL)
-       results = [0]*N_BUTTONS
-       while 1:
-               n = Dlg.ModalDialog(None)
-               if n == I_OK:
-                       break
-               if n == I_CANCEL:
-                       return []
-               if n == I_INC_BUILDNO:
-                       incbuildno(filename)
-                       continue
-               if n < len(results):
-                       results[n] = (not results[n])
-                       ctl = d.GetDialogItemAsControl(n)
-                       ctl.SetControlValue(results[n])
-       rv = []
-       for i in range(len(results)):
-               if results[i]:
-                       rv.append(i)
-       return rv
-
-#
-# The build instructions. Entries are (routine, arg, list-of-files)
-# XXXX We could also include the builds for stdwin and such here...
-BUILD_DICT = {
-I_GEN_PROJECTS : (buildprojectfile, 0, [
-       (":Mac:scripts", "genpluginprojects", "genallprojects")
-       ]),
-       
-I_GEN_PROJECTS_FORCE : (buildprojectfile, 1, [
-       (":Mac:scripts", "genpluginprojects", "genallprojects")
-       ]),
-       
-I_GEN_IMGPROJECTS : (buildprojectfile, 0, [
-       (":Extensions:img:Mac", "genimgprojects", "genallprojects")
-       ]),
-       
-I_GEN_IMGPROJECTS_FORCE : (buildprojectfile, 1, [
-       (":Extensions:img:Mac", "genimgprojects", "genallprojects")
-       ]),
-       
-I_INTERPRETER : (buildcopy, None, [
-               ("PythonInterpreterCarbon", "PythonInterpreter"),
-       ]),
-
-I_PPC_CORE : (buildmwproject, "CWIE", [
-               (":Mac:Build:PythonCore.mcp", "PythonCore"),
-               (":Mac:Build:PythonInterpreter.mcp", "PythonInterpreterClassic"),
-       ]),
-
-I_CARBON_CORE : (buildmwproject, "CWIE", [
-               (":Mac:Build:PythonCore.mcp", "PythonCoreCarbon"),
-               (":Mac:Build:PythonInterpreter.mcp", "PythonInterpreterCarbon"),
-       ]),
-
-I_PPC_EXTLIBS : (buildmwproject, "CWIE", [
-##     (":Mac:Build:buildlibs.mcp", "buildlibs ppc plus tcl/tk"),
-       (":Mac:Build:buildlibs.mcp", "buildlibs ppc"),
-       ]),
-       
-I_PPC_PLUGINS : (buildmwproject, "CWIE", [
-       (":Mac:Build:_weakref.mcp", "_weakref.ppc"),
-       (":Mac:Build:_symtable.mcp", "_symtable.ppc"),
-       (":Mac:Build:_testcapi.mcp", "_testcapi.ppc"),
-       (":Mac:Build:pyexpat.mcp", "pyexpat.ppc"),
-       (":Mac:Build:calldll.mcp", "calldll.ppc"),
-       (":Mac:Build:ctb.mcp", "ctb.ppc"),
-       (":Mac:Build:gdbm.mcp", "gdbm.ppc"),
-       (":Mac:Build:icglue.mcp", "icglue.ppc"),
-       (":Mac:Build:macspeech.mcp", "macspeech.ppc"),
-       (":Mac:Build:waste.mcp", "waste.ppc"),
-       (":Mac:Build:zlib.mcp", "zlib.ppc"),
-##     (":Mac:Build:_tkinter.mcp", "_tkinter.ppc"),
-       (":Extensions:Imaging:_tkinter.mcp", "_tkinter.ppc"),
-       (":Mac:Build:ColorPicker.mcp", "ColorPicker.ppc"),
-       (":Mac:Build:Printing.mcp", "Printing.ppc"),
-       (":Mac:Build:App.mcp", "App.ppc"),
-       (":Mac:Build:Cm.mcp", "Cm.ppc"),
-       (":Mac:Build:Fm.mcp", "Fm.ppc"),
-       (":Mac:Build:Help.mcp", "Help.ppc"),
-       (":Mac:Build:Icn.mcp", "Icn.ppc"),
-       (":Mac:Build:List.mcp", "List.ppc"),
-       (":Mac:Build:Qdoffs.mcp", "Qdoffs.ppc"),
-       (":Mac:Build:Qt.mcp", "Qt.ppc"),
-       (":Mac:Build:Scrap.mcp", "Scrap.ppc"),
-       (":Mac:Build:Snd.mcp", "Snd.ppc"),
-       (":Mac:Build:Sndihooks.mcp", "Sndihooks.ppc"),
-       (":Mac:Build:TE.mcp", "TE.ppc"),
-       ]),
-
-I_CARBON_PLUGINS :  (buildmwproject, "CWIE", [
-       (":Mac:Build:_weakref.carbon.mcp", "_weakref.carbon"),
-       (":Mac:Build:_symtable.carbon.mcp", "_symtable.carbon"),
-       (":Mac:Build:_testcapi.carbon.mcp", "_testcapi.carbon"),
-       (":Mac:Build:pyexpat.carbon.mcp", "pyexpat.carbon"),
-       (":Mac:Build:calldll.carbon.mcp", "calldll.carbon"),
-       (":Mac:Build:gdbm.carbon.mcp", "gdbm.carbon"),
-       (":Mac:Build:icglue.carbon.mcp", "icglue.carbon"),
-       (":Mac:Build:waste.carbon.mcp", "waste.carbon"),
-       (":Mac:Build:zlib.carbon.mcp", "zlib.carbon"),
-       (":Mac:Build:_dummy_tkinter.mcp", "_tkinter.carbon"),
-##     (":Extensions:Imaging:_tkinter.carbon.mcp", "_tkinter.carbon"),
-       (":Mac:Build:ColorPicker.carbon.mcp", "ColorPicker.carbon"),
-       (":Mac:Build:App.carbon.mcp", "App.carbon"),
-       (":Mac:Build:Cm.carbon.mcp", "Cm.carbon"),
-       (":Mac:Build:Fm.carbon.mcp", "Fm.carbon"),
-       (":Mac:Build:Icn.carbon.mcp", "Icn.carbon"),
-       (":Mac:Build:List.carbon.mcp", "List.carbon"),
-       (":Mac:Build:Qdoffs.carbon.mcp", "Qdoffs.carbon"),
-       (":Mac:Build:Qt.carbon.mcp", "Qt.carbon"),
-       (":Mac:Build:Scrap.carbon.mcp", "Scrap.carbon"),
-       (":Mac:Build:Snd.carbon.mcp", "Snd.carbon"),
-       (":Mac:Build:Sndihooks.carbon.mcp", "Sndihooks.carbon"),
-       (":Mac:Build:TE.carbon.mcp", "TE.carbon"),
-       ]),
-
-I_PPC_FULL : (buildmwproject, "CWIE", [
-               (":Mac:Build:PythonStandalone.mcp", "PythonStandalone"),
-       ]),
-
-I_PPC_SMALL : (buildmwproject, "CWIE", [
-               (":Mac:Build:PythonStandSmall.mcp", "PythonStandSmall"),
-       ]),
-
-I_CARBON_FULL : (buildmwproject, "CWIE", [
-               (":Mac:Build:PythonStandalone.mcp", "PythonCarbonStandalone"),
-       ]),
-
-I_CARBON_SMALL : (buildmwproject, "CWIE", [
-               (":Mac:Build:PythonStandSmall.mcp", "PythonStandSmallCarbon"),
-       ]),
-
-I_PPC_EXTENSIONS : (buildmwproject, "CWIE", [
-               (":Extensions:Imaging:_imaging.mcp", "_imaging.ppc"),
-##             (":Extensions:Imaging:_tkinter.mcp", "_tkinter.ppc"),
-               (":Extensions:img:Mac:imgmodules.mcp", "imgmodules.ppc"),
-       ]),
-
-I_CARBON_EXTENSIONS : (buildmwproject, "CWIE", [
-               (":Extensions:Imaging:_imaging.mcp", "_imaging.carbon"),
-##             (":Extensions:Imaging:_tkinter.mcp", "_tkinter.carbon"),
-               (":Extensions:img:Mac:imgmodules.mcp", "imgmodules.carbon"),
-       ]),
-       
-I_APPLETS : (buildapplet, None, [
-               (":Mac:scripts:EditPythonPrefs.py", "EditPythonPrefs", None),
-               (":Mac:scripts:BuildApplet.py", "BuildApplet", None),
-               (":Mac:scripts:BuildApplication.py", "BuildApplication", None),
-               (":Mac:scripts:ConfigurePython.py", "ConfigurePython", None),
-               (":Mac:scripts:ConfigurePython.py", "ConfigurePythonCarbon", "PythonInterpreterCarbon"),
-               (":Mac:scripts:ConfigurePython.py", "ConfigurePythonClassic", "PythonInterpreterClassic"),
-               (":Mac:Tools:IDE:PythonIDE.py", "Python IDE", None),
-               (":Mac:Tools:CGI:PythonCGISlave.py", ":Mac:Tools:CGI:PythonCGISlave", None),
-               (":Mac:Tools:CGI:BuildCGIApplet.py", ":Mac:Tools:CGI:BuildCGIApplet", None),
-       ]),
-}
-
-def incbuildno(filename):
-       fp = open(filename)
-       line = fp.readline()
-       fp.close()
-       
-       pat = re.compile('#define BUILD ([0-9]+)')
-       m = pat.search(line)
-       if not m or not m.group(1):
-               raise 'Incorrect macbuildno.h line', line
-       buildno = m.group(1)
-       new = string.atoi(buildno) + 1
-       fp = open(filename, 'w')
-       fp.write('#define BUILD %d\n'%new)
-       fp.close()
-                               
-def main():
-       try:
-               h = Res.FSpOpenResFile('fullbuild.rsrc', 1)
-       except Res.Error:
-               pass    # Assume we already have acces to our own resource
-
-       dir, ok = macfs.GetDirectory('Python source folder:')
-       if not ok:
-               sys.exit(0)
-       dir = dir.as_pathname()
-       
-       todo = handle_dialog(os.path.join(dir, MACBUILDNO))
-               
-       instructions = []
-       for i in todo:
-               instructions.append(BUILD_DICT[i])
-               
-       for routine, arg, list in instructions:
-               routine(dir, arg, list)
-               
-       if todo:
-               print "All done!"
-       
-if __name__ == '__main__':
-       main()
-       
diff --git a/Mac/scripts/genpluginprojects.py b/Mac/scripts/genpluginprojects.py
deleted file mode 100644 (file)
index 679e034..0000000
+++ /dev/null
@@ -1,187 +0,0 @@
-import mkcwproject
-import sys
-import os
-import string
-
-PROJECTDIR = os.path.join(sys.prefix, ":Mac:Build")
-MODULEDIRS = [ # Relative to projectdirs
-       "::Modules:%s",
-       "::Modules",
-       ":::Modules",
-]
-
-# Global variable to control forced rebuild (otherwise the project is only rebuilt
-# when it is changed)
-FORCEREBUILD=0
-
-def relpath(base, path):
-       """Turn abs path into path relative to another. Only works for 2 abs paths
-       both pointing to folders"""
-       if not os.path.isabs(base) or not os.path.isabs(path):
-               raise 'Absolute paths only'
-       if base[-1] == ':':
-               base = base[:-1]
-       basefields = string.split(base, os.sep)
-       pathfields = string.split(path, os.sep)
-       commonfields = len(os.path.commonprefix((basefields, pathfields)))
-       basefields = basefields[commonfields:]
-       pathfields = pathfields[commonfields:]
-       pathfields = ['']*(len(basefields)+1) + pathfields
-       rv = string.join(pathfields, os.sep)
-       return rv
-
-def genpluginproject(architecture, module,
-               project=None, projectdir=None,
-               sources=[], sourcedirs=[],
-               libraries=[], extradirs=[],
-               extraexportsymbols=[]):
-       if architecture == "all":
-               # For the time being we generate two project files. Not as nice as
-               # a single multitarget project, but easier to implement for now.
-               genpluginproject("ppc", module, project, projectdir, sources, sourcedirs,
-                               libraries, extradirs, extraexportsymbols)
-               genpluginproject("carbon", module, project, projectdir, sources, sourcedirs,
-                               libraries, extradirs, extraexportsymbols)
-               return
-       templatename = "template-%s" % architecture
-       targetname = "%s.%s" % (module, architecture)
-       dllname = "%s.%s.slb" % (module, architecture)
-       if not project:
-               if architecture != "ppc":
-                       project = "%s.%s.mcp"%(module, architecture)
-               else:
-                       project = "%s.mcp"%module
-       if not projectdir:
-               projectdir = PROJECTDIR
-       if not sources:
-               sources = [module + 'module.c']
-       if not sourcedirs:
-               for moduledir in MODULEDIRS:
-                       if '%' in moduledir:
-                               moduledir = moduledir % module
-                       fn = os.path.join(projectdir, os.path.join(moduledir, sources[0]))
-                       if os.path.exists(fn):
-                               moduledir, sourcefile = os.path.split(fn)
-                               sourcedirs = [relpath(projectdir, moduledir)]
-                               sources[0] = sourcefile
-                               break
-               else:
-                       print "Warning: %s: sourcefile not found: %s"%(module, sources[0])
-                       sourcedirs = []
-       if architecture == "carbon":
-               prefixname = "mwerks_carbonplugin_config.h"
-       else:
-               prefixname = "mwerks_plugin_config.h"
-       dict = {
-               "sysprefix" : relpath(projectdir, sys.prefix),
-               "sources" : sources,
-               "extrasearchdirs" : sourcedirs + extradirs,
-               "libraries": libraries,
-               "mac_outputdir" : "::Plugins",
-               "extraexportsymbols" : extraexportsymbols,
-               "mac_targetname" : targetname,
-               "mac_dllname" : dllname,
-               "prefixname" : prefixname,
-       }
-       mkcwproject.mkproject(os.path.join(projectdir, project), module, dict, 
-                       force=FORCEREBUILD, templatename=templatename)
-
-def    genallprojects(force=0):
-       global FORCEREBUILD
-       FORCEREBUILD = force
-       # Standard Python modules
-       genpluginproject("all", "pyexpat", 
-               sources=["pyexpat.c"], 
-               libraries=["libexpat.ppc.lib"], 
-               extradirs=["::::expat:*"])
-       genpluginproject("all", "zlib", 
-               libraries=["zlib.ppc.Lib"], 
-               extradirs=["::::imglibs:zlib:mac", "::::imglibs:zlib"])
-       genpluginproject("all", "gdbm", 
-               libraries=["gdbm.ppc.gusi.lib"], 
-               extradirs=["::::gdbm:mac", "::::gdbm"])
-       genpluginproject("all", "_weakref", sources=["_weakref.c"])
-       genpluginproject("all", "_symtable", sources=["symtablemodule.c"])
-       genpluginproject("all", "_testcapi")
-       
-       # bgen-generated Toolbox modules
-       genpluginproject("ppc", "App", libraries=["AppearanceLib"])
-       genpluginproject("carbon", "App")
-       genpluginproject("ppc", "Cm",
-               libraries=["QuickTimeLib"],
-               extraexportsymbols=[
-                       "CmpObj_New",
-                       "CmpObj_Convert",
-                       "CmpInstObj_New",
-                       "CmpInstObj_Convert",
-               ])
-       genpluginproject("carbon", "Cm",
-               extraexportsymbols=[
-                       "CmpObj_New",
-                       "CmpObj_Convert",
-                       "CmpInstObj_New",
-                       "CmpInstObj_Convert",
-               ])
-       genpluginproject("all", "Fm")
-       genpluginproject("ppc", "Help")
-       genpluginproject("ppc", "Icn", libraries=["IconServicesLib"])
-       genpluginproject("carbon", "Icn")
-       genpluginproject("all", "List")
-       genpluginproject("ppc", "Qt", libraries=["QuickTimeLib", "Cm.ppc.slb", "Qdoffs.ppc.slb"], 
-                       extradirs=["::Plugins"])
-       genpluginproject("carbon", "Qt", libraries=["Cm.carbon.slb", "Qdoffs.carbon.slb"],
-                       extradirs=["::Plugins"])
-       genpluginproject("all", "Qdoffs",
-               extraexportsymbols=["GWorldObj_New", "GWorldObj_Convert"])
-       genpluginproject("all", "Scrap")
-       genpluginproject("ppc", "Snd", libraries=["SoundLib"])
-       genpluginproject("carbon", "Snd")
-       genpluginproject("all", "Sndihooks", sources=[":snd:Sndihooks.c"])
-       genpluginproject("ppc", "TE", libraries=["DragLib"])
-       genpluginproject("carbon", "TE")
-       
-       # Other Mac modules
-       genpluginproject("all", "calldll", sources=["calldll.c"])
-       genpluginproject("all", "ColorPicker")
-       genpluginproject("ppc", "Printing")
-       genpluginproject("ppc", "waste",
-               sources=[
-                       "wastemodule.c",
-                       'WEAccessors.c', 'WEBirthDeath.c', 'WEDebug.c',
-                       'WEDrawing.c', 'WEFontTables.c', 'WEHighLevelEditing.c',
-                       'WEICGlue.c', 'WEInlineInput.c', 'WELineLayout.c', 'WELongCoords.c',
-                       'WELowLevelEditing.c', 'WEMouse.c', 'WEObjects.c', 'WEScraps.c',
-                       'WESelecting.c', 'WESelectors.c', 'WEUserSelectors.c', 'WEUtilities.c',
-                       'WEObjectHandlers.c',
-                       'WETabs.c',
-                       'WETabHooks.c'],
-               libraries=['DragLib'],
-               extradirs=[
-                       '::::Waste 1.3 Distribution:*',
-                       '::::ICProgKit1.4:APIs']
-               )
-       # This is a hack, combining parts of Waste 2.0 with parts of 1.3
-       genpluginproject("carbon", "waste",
-               sources=[
-                       "wastemodule.c",
-                       "WEObjectHandlers.c",
-                       "WETabs.c", "WETabHooks.c"],
-               libraries=["WASTE.Carbon.lib"],
-               extradirs=[
-                       '{Compiler}:MacOS Support:(Third Party Support):Waste 2.0 Distribution:C_C++ Headers',
-                       '{Compiler}:MacOS Support:(Third Party Support):Waste 2.0 Distribution:Static Libraries',
-                       '::::Waste 1.3 Distribution:Extras:Sample Object Handlers',
-                       '::::Waste 1.3 Distribution:Extras:Waste Tabs 1.3.2']
-               )
-       genpluginproject("ppc", "ctb")
-       genpluginproject("ppc", "icglue", sources=["icgluemodule.c"], 
-               libraries=["ICGlueCFM-PPC.lib"], 
-               extradirs=["::::ICProgKit1.4:APIs"])
-       genpluginproject("carbon", "icglue", sources=["icgluemodule.c"], 
-               extradirs=["::::ICProgKit1.4:APIs"])
-       genpluginproject("ppc", "macspeech", libraries=["SpeechLib"])
-
-if __name__ == '__main__':
-       genallprojects()
-       
-       
diff --git a/Mac/tclmods/tclMacNotify.c b/Mac/tclmods/tclMacNotify.c
deleted file mode 100644 (file)
index 3d2695c..0000000
+++ /dev/null
@@ -1,451 +0,0 @@
-/* 
- * tclMacNotify.c --
- *
- *     This file contains Macintosh-specific procedures for the notifier,
- *     which is the lowest-level part of the Tcl event loop.  This file
- *     works together with ../generic/tclNotify.c.
- *
- * Copyright (c) 1995-1996 Sun Microsystems, Inc.
- *
- * See the file "license.terms" for information on usage and redistribution
- * of this file, and for a DISCLAIMER OF ALL WARRANTIES.
- *
- * SCCS: @(#) tclMacNotify.c 1.36 97/05/07 19:09:29
- */
-
-#ifdef USE_GUSI
-/* Move this include up otherwise tclPort.h tried to redefine signals */
-#include <sys/signal.h>
-#endif
-#include "tclInt.h"
-#include "tclPort.h"
-#include "tclMac.h"
-#include "tclMacInt.h"
-#include <signal.h>
-#include <Events.h>
-#include <LowMem.h>
-#include <Processes.h>
-#include <Timer.h>
-
-
-/* 
- * This is necessary to work around a bug in Apple's Universal header files
- * for the CFM68K libraries.
- */
-
-#ifdef __CFM68K__
-#undef GetEventQueue
-extern pascal QHdrPtr GetEventQueue(void)
- THREEWORDINLINE(0x2EBC, 0x0000, 0x014A);
-#pragma import list GetEventQueue
-#define GetEvQHdr() GetEventQueue()
-#endif
-
-/*
- * The follwing static indicates whether this module has been initialized.
- */
-
-static int initialized = 0;
-
-/*
- * The following structure contains the state information for the
- * notifier module.
- */
-
-static struct {
-    int timerActive;           /* 1 if timer is running. */
-    Tcl_Time timer;            /* Time when next timer event is expected. */
-    int flags;                 /* OR'ed set of flags defined below. */
-    Point lastMousePosition;   /* Last known mouse location. */
-    RgnHandle utilityRgn;      /* Region used as the mouse region for
-                                * WaitNextEvent and the update region when
-                                * checking for events. */   
-    Tcl_MacConvertEventPtr eventProcPtr;
-                               /* This pointer holds the address of the
-                                * function that will handle all incoming
-                                * Macintosh events. */
-} notifier;
-
-/*
- * The following defines are used in the flags field of the notifier struct.
- */
-
-#define NOTIFY_IDLE    (1<<1)  /* Tcl_ServiceIdle should be called. */
-#define NOTIFY_TIMER   (1<<2)  /* Tcl_ServiceTimer should be called. */
-
-/*
- * Prototypes for procedures that are referenced only in this file:
- */
-
-static int             HandleMacEvents _ANSI_ARGS_((void));
-static void            InitNotifier _ANSI_ARGS_((void));
-static void            NotifierExitHandler _ANSI_ARGS_((
-                           ClientData clientData));
-\f
-/*
-** Routine to determine whether Tk is the "main event handler" at the moment or
-** something else (MacPython, IDE) is.
-** Currently we only check that the frontmost window is Tk based, it may be better
-** to also check whether we're inside a Tk mainloop().
-*/
-static int
-TkIsTheBoss(void)
-{
-    WindowRef windowRef;
-
-    windowRef = FrontWindow();
-    if ( windowRef && !TkMacGetXWindow(windowRef) ) {
-       return 0;
-    }
-}
-/*
- *----------------------------------------------------------------------
- *
- * InitNotifier --
- *
- *     Initializes the notifier structure.
- *
- * Results:
- *     None.
- *
- * Side effects:
- *     Creates a new exit handler.
- *
- *----------------------------------------------------------------------
- */
-
-static void
-InitNotifier(void)
-{
-    initialized = 1;
-    memset(&notifier, 0, sizeof(notifier));
-    Tcl_CreateExitHandler(NotifierExitHandler, NULL);
-}
-\f
-/*
- *----------------------------------------------------------------------
- *
- * NotifierExitHandler --
- *
- *     This function is called to cleanup the notifier state before
- *     Tcl is unloaded.
- *
- * Results:
- *     None.
- *
- * Side effects:
- *     None.
- *
- *----------------------------------------------------------------------
- */
-
-static void
-NotifierExitHandler(
-    ClientData clientData)     /* Not used. */
-{
-    initialized = 0;
-}
-\f
-/*
- *----------------------------------------------------------------------
- *
- * HandleMacEvents --
- *
- *     This function checks for events from the Macintosh event queue.
- *
- * Results:
- *     Returns 1 if event found, 0 otherwise.
- *
- * Side effects:
- *     Pulls events off of the Mac event queue and then calls
- *     convertEventProc.
- *
- *----------------------------------------------------------------------
- */
-
-static int
-HandleMacEvents(void)
-{
-    EventRecord theEvent;
-    int eventFound = 0, needsUpdate = 0;
-    Point currentMouse;
-    WindowRef windowRef;
-    Rect mouseRect;
-
-    if ( !TkIsTheBoss() )
-       return 0;
-    /*
-     * Check for mouse moved events.  These events aren't placed on the
-     * system event queue unless we call WaitNextEvent.
-     */
-
-    GetGlobalMouse(&currentMouse);
-    if ((notifier.eventProcPtr != NULL) &&
-           !EqualPt(currentMouse, notifier.lastMousePosition)) {
-       notifier.lastMousePosition = currentMouse;
-       theEvent.what = nullEvent;
-       if ((*notifier.eventProcPtr)(&theEvent) == true) {
-           eventFound = 1;
-       }
-    }
-
-    /*
-     * Check for update events.  Since update events aren't generated
-     * until we call GetNextEvent, we may need to force a call to
-     * GetNextEvent, even if the queue is empty.
-     */
-
-    for (windowRef = FrontWindow(); windowRef != NULL;
-           windowRef = GetNextWindow(windowRef)) {
-       GetWindowUpdateRgn(windowRef, notifier.utilityRgn);
-       if (!EmptyRgn(notifier.utilityRgn)) {
-           needsUpdate = 1;
-           break;
-       }
-    }
-    
-    /*
-     * Process events from the OS event queue.
-     */
-
-    while (needsUpdate || (GetEvQHdr()->qHead != NULL)) {
-       /* Give Python command-. handling a chance */
-       PyMac_DoYield(0, 0);
-       
-       GetGlobalMouse(&currentMouse);
-       SetRect(&mouseRect, currentMouse.h, currentMouse.v,
-               currentMouse.h + 1, currentMouse.v + 1);
-       RectRgn(notifier.utilityRgn, &mouseRect);
-       WaitNextEvent(everyEvent, &theEvent, 5, notifier.utilityRgn);
-       needsUpdate = 0;
-       if ((notifier.eventProcPtr != NULL)
-               && ((*notifier.eventProcPtr)(&theEvent) == true)) {
-           eventFound = 1;
-       }
-    }
-    
-    return eventFound;
-}
-\f
-/*
- *----------------------------------------------------------------------
- *
- * Tcl_SetTimer --
- *
- *     This procedure sets the current notifier timer value.  The
- *     notifier will ensure that Tcl_ServiceAll() is called after
- *     the specified interval, even if no events have occurred.
- *
- * Results:
- *     None.
- *
- * Side effects:
- *     Replaces any previous timer.
- *
- *----------------------------------------------------------------------
- */
-
-void
-Tcl_SetTimer(
-    Tcl_Time *timePtr)         /* New value for interval timer. */
-{
-    if (!timePtr) {
-       notifier.timerActive = 0;
-    } else {
-       /*
-        * Compute when the timer should fire.
-        */
-       
-       TclpGetTime(&notifier.timer);
-       notifier.timer.sec += timePtr->sec;
-       notifier.timer.usec += timePtr->usec;
-       if (notifier.timer.usec >= 1000000) {
-           notifier.timer.usec -= 1000000;
-           notifier.timer.sec += 1;
-       }
-       notifier.timerActive = 1;
-    }
-}
-\f
-/*
- *----------------------------------------------------------------------
- *
- * Tcl_WaitForEvent --
- *
- *     This function is called by Tcl_DoOneEvent to wait for new
- *     events on the message queue.  If the block time is 0, then
- *     Tcl_WaitForEvent just polls the event queue without blocking.
- *
- * Results:
- *     Always returns 0.
- *
- * Side effects:
- *     None.
- *
- *----------------------------------------------------------------------
- */
-
-int
-Tcl_WaitForEvent(
-    Tcl_Time *timePtr)         /* Maximum block time. */
-{
-    int found;
-    EventRecord macEvent;
-    long sleepTime = 5;
-    long ms;
-    Point currentMouse;
-    void * timerToken;
-    Rect mouseRect;
-
-    /*
-     * Compute the next timeout value.
-     */
-
-    if (!timePtr) {
-       ms = INT_MAX;
-    } else {
-       ms = (timePtr->sec * 1000) + (timePtr->usec / 1000);
-    }
-    timerToken = TclMacStartTimer((long) ms);
-   
-    /*
-     * Poll the Mac event sources.  This loop repeats until something
-     * happens: a timeout, a socket event, mouse motion, or some other
-     * window event.  Note that we don't call WaitNextEvent if another
-     * event is found to avoid context switches.  This effectively gives
-     * events coming in via WaitNextEvent a slightly lower priority.
-     */
-
-    found = 0;
-    if (notifier.utilityRgn == NULL) {
-       notifier.utilityRgn = NewRgn();
-    }
-
-    while (!found) {
-       /*
-        * Check for generated and queued events.
-        */
-
-       if (HandleMacEvents()) {
-           found = 1;
-       }
-
-       /*
-        * Check for time out.
-        */
-
-       if (!found && TclMacTimerExpired(timerToken)) {
-           found = 1;
-       }
-       
-       /*
-        * Mod by Jack: poll for select() events. Code is in TclSelectNotify.c
-        */
-       {
-           int Tcl_PollSelectEvent(void);
-           if (!found && Tcl_PollSelectEvent())
-               found = 1;
-       }
-
-       if ( !TkIsTheBoss() )
-               found = 1;
-       /*
-        * Check for window events.  We may receive a NULL event for
-        * various reasons. 1) the timer has expired, 2) a mouse moved
-        * event is occuring or 3) the os is giving us time for idle
-        * events.  Note that we aren't sharing the processor very
-        * well here.  We really ought to do a better job of calling
-        * WaitNextEvent for time slicing purposes.
-        */
-
-       if (!found) {
-           /*
-            * Set up mouse region so we will wake if the mouse is moved.
-            * We do this by defining the smallest possible region around
-            * the current mouse position.
-            */
-
-           GetGlobalMouse(&currentMouse);
-           SetRect(&mouseRect, currentMouse.h, currentMouse.v,
-                   currentMouse.h + 1, currentMouse.v + 1);
-           RectRgn(notifier.utilityRgn, &mouseRect);
-       
-           WaitNextEvent(everyEvent, &macEvent, sleepTime,
-                   notifier.utilityRgn);
-
-           if (notifier.eventProcPtr != NULL) {
-               if ((*notifier.eventProcPtr)(&macEvent) == true) {
-                   found = 1;
-               }
-           }
-       }
-    }
-    TclMacRemoveTimer(timerToken);
-    return 0;
-}
-\f
-/*
- *----------------------------------------------------------------------
- *
- * Tcl_Sleep --
- *
- *     Delay execution for the specified number of milliseconds.  This
- *     is not a very good call to make.  It will block the system -
- *     you will not even be able to switch applications.
- *
- * Results:
- *     None.
- *
- * Side effects:
- *     Time passes.
- *
- *----------------------------------------------------------------------
- */
-
-void
-Tcl_Sleep(
-    int ms)                    /* Number of milliseconds to sleep. */
-{
-    EventRecord dummy;
-    void *timerToken;
-    
-    if (ms <= 0) {
-       return;
-    }
-    
-    timerToken = TclMacStartTimer((long) ms);
-    while (1) {
-       WaitNextEvent(0, &dummy, (ms / 16.66) + 1, NULL);
-       
-       if (TclMacTimerExpired(timerToken)) {
-           break;
-       }
-    }
-    TclMacRemoveTimer(timerToken);
-}
-\f
-/*
- *----------------------------------------------------------------------
- *
- * Tcl_MacSetEventProc --
- *
- *     This function sets the event handling procedure for the 
- *     application.  This function will be passed all incoming Mac
- *     events.  This function usually controls the console or some
- *     other entity like Tk.
- *
- * Results:
- *     None.
- *
- * Side effects:
- *     Changes the event handling function.
- *
- *----------------------------------------------------------------------
- */
-
-void
-Tcl_MacSetEventProc(
-    Tcl_MacConvertEventPtr procPtr)
-{
-    notifier.eventProcPtr = procPtr;
-}
diff --git a/Python/pythonmain.c b/Python/pythonmain.c
deleted file mode 100644 (file)
index 000a3d7..0000000
+++ /dev/null
@@ -1,211 +0,0 @@
-/***********************************************************
-Copyright 1991-1995 by Stichting Mathematisch Centrum, Amsterdam,
-The Netherlands.
-
-                        All Rights Reserved
-
-Permission to use, copy, modify, and distribute this software and its 
-documentation for any purpose and without fee is hereby granted, 
-provided that the above copyright notice appear in all copies and that
-both that copyright notice and this permission notice appear in 
-supporting documentation, and that the names of Stichting Mathematisch
-Centrum or CWI not be used in advertising or publicity pertaining to
-distribution of the software without specific, written prior permission.
-
-STICHTING MATHEMATISCH CENTRUM DISCLAIMS ALL WARRANTIES WITH REGARD TO
-THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
-FITNESS, IN NO EVENT SHALL STICHTING MATHEMATISCH CENTRUM BE LIABLE
-FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
-WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
-ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
-OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
-
-******************************************************************/
-
-/* Python interpreter main program */
-
-#include "allobjects.h"
-
-extern int debugging; /* Needed in parser.c, declared in pythonrun.c */
-extern int verbose; /* Needed in import.c, declared in pythonrun.c */
-extern int suppress_print; /* Needed in ceval.c, declared in pythonrun.c */
-
-/* Interface to getopt(): */
-extern int optind;
-extern char *optarg;
-extern int getopt(); /* PROTO((int, char **, char *)); -- not standardized */
-
-extern char *getenv();
-
-extern char *getversion();
-extern char *getcopyright();
-
-int
-realmain(argc, argv)
-       int argc;
-       char **argv;
-{
-       int c;
-       int sts;
-       char *command = NULL;
-       char *filename = NULL;
-       FILE *fp = stdin;
-       char *p;
-       int inspect = 0;
-       int unbuffered = 0;
-
-       if ((p = getenv("PYTHONDEBUG")) && *p != '\0')
-               debugging = 1;
-       if ((p = getenv("PYTHONSUPPRESS")) && *p != '\0')
-               suppress_print = 1;
-       if ((p = getenv("PYTHONVERBOSE")) && *p != '\0')
-               verbose = 1;
-       if ((p = getenv("PYTHONINSPECT")) && *p != '\0')
-               inspect = 1;
-       if ((p = getenv("PYTHONUNBUFFERED")) && *p != '\0')
-               unbuffered = 1;
-
-#ifdef macintosh
-       PyMac_InteractiveOptions(&inspect, &verbose, &suppress_print, &unbuffered, &debugging);
-#endif
-
-       while ((c = getopt(argc, argv, "c:disuv")) != EOF) {
-               if (c == 'c') {
-                       /* -c is the last option; following arguments
-                          that look like options are left for the
-                          the command to interpret. */
-                       command = malloc(strlen(optarg) + 2);
-                       if (command == NULL)
-                               fatal("not enough memory to copy -c argument");
-                       strcpy(command, optarg);
-                       strcat(command, "\n");
-                       break;
-               }
-               
-               switch (c) {
-
-               case 'd':
-                       debugging++;
-                       break;
-
-               case 'i':
-                       inspect++;
-                       break;
-
-               case 's':
-                       suppress_print++;
-                       break;
-
-               case 'u':
-                       unbuffered++;
-                       break;
-
-               case 'v':
-                       verbose++;
-                       break;
-
-               /* This space reserved for other options */
-
-               default:
-                       fprintf(stderr,
-"usage: %s [-d] [-i] [-s] [-u ] [-v] [-c cmd | file | -] [arg] ...\n",
-                               argv[0]);
-#if !(defined(__CFM68K__) && defined(__MWERKS__))
-                       /* Mwerks cfm68k linker doesn't like these... */
-                       fprintf(stderr, "\
-\n\
-Options and arguments (and corresponding environment variables):\n\
--d     : debug output from parser (also PYTHONDEBUG=x)\n\
--i     : inspect interactively after running script (also PYTHONINSPECT=x)\n\
--s     : suppress the printing of top level expressions (also PYTHONSUPPRESS=x)\n\
--u     : unbuffered stdout and stderr (also PYTHONUNBUFFERED=x)\n\
--v     : verbose (trace import statements) (also PYTHONVERBOSE=x)\n\
--c cmd : program passed in as string (terminates option list)\n\
-");
-                       /* ANSI does not allow strings > 512 chars
-                          and MPW doesn't like it either -- so split it! */
-                       fprintf(stderr, "\
-file   : program read from script file\n\
--      : program read from stdin (default; interactive mode if a tty)\n\
-arg ...: arguments passed to program in sys.argv[1:]\n\
-\n\
-Other environment variables:\n\
-PYTHONSTARTUP: file executed on interactive startup (no default)\n\
-PYTHONPATH   : colon-separated list of directories prefixed to the\n\
-               default module search path.  The result is sys.path.\n\
-");
-#endif /* !cfm68k || !mwerks */
-                       exit(2);
-                       /*NOTREACHED*/
-
-               }
-       }
-
-       if (unbuffered) {
-#ifndef MPW
-               setbuf(stdout, (char *)NULL);
-               setbuf(stderr, (char *)NULL);
-#else
-               /* On MPW (3.2) unbuffered seems to hang */
-               setvbuf(stdout, (char *)NULL, _IOLBF, BUFSIZ);
-               setvbuf(stderr, (char *)NULL, _IOLBF, BUFSIZ);
-#endif
-       }
-
-       if (command == NULL && optind < argc && strcmp(argv[optind], "-") != 0)
-               filename = argv[optind];
-
-       if (verbose ||
-           command == NULL && filename == NULL && isatty((int)fileno(fp)))
-               fprintf(stderr, "Python %s\n%s\n",
-                       getversion(), getcopyright());
-       
-       if (filename != NULL) {
-               if ((fp = fopen(filename, "r")) == NULL) {
-                       fprintf(stderr, "%s: can't open file '%s'\n",
-                               argv[0], filename);
-                       exit(2);
-               }
-       }
-       
-       initall();
-       
-       if (command != NULL) {
-               /* Backup optind and force sys.argv[0] = '-c' */
-               optind--;
-               argv[optind] = "-c";
-       }
-
-       setpythonargv(argc-optind, argv+optind);
-
-       if (command) {
-               sts = run_command(command) != 0;
-       }
-       else {
-               if (filename == NULL && isatty((int)fileno(fp))) {
-                       char *startup = getenv("PYTHONSTARTUP");
-#ifdef macintosh
-                       if (startup == NULL)
-                               startup = "PythonStartup";
-#endif
-                       if (startup != NULL && startup[0] != '\0') {
-                               FILE *fp = fopen(startup, "r");
-                               if (fp != NULL) {
-                                       (void) run_script(fp, startup);
-                                       err_clear();
-                                       fclose(fp);
-                               }
-                       }
-               }
-               sts = run(fp, filename == NULL ? "<stdin>" : filename) != 0;
-               if (filename != NULL)
-                       fclose(fp);
-       }
-
-       if (inspect && isatty((int)fileno(stdin)) &&
-           (filename != NULL || command != NULL))
-               sts = run(stdin, "<stdin>") != 0;
-
-       goaway(sts);
-       /*NOTREACHED*/
-}