Bug 1265272 - Import macholib 1.7; r?ted,gerv draft
authorMike Shal <mshal@mozilla.com>
Thu, 21 Apr 2016 11:46:07 -0400
changeset 356900 0c0d2c0948924f2c8da088785f98e490f54d6b69
parent 356899 30bd385a87950a8fd70eb0166acb63da59785e4f
child 356901 95a086071ff05dc522170a7a1cd631eb82bba69a
push id16636
push userbmo:mshal@mozilla.com
push dateWed, 27 Apr 2016 13:28:00 +0000
reviewersted, gerv
bugs1265272
milestone48.0a1
Bug 1265272 - Import macholib 1.7; r?ted,gerv MozReview-Commit-ID: 1bPUuRQF2lQ
python/macholib/MANIFEST.in
python/macholib/PKG-INFO
python/macholib/README.txt
python/macholib/doc/MachO.rst
python/macholib/doc/MachoOGraph.rst
python/macholib/doc/MachoOStandalone.rst
python/macholib/doc/Makefile
python/macholib/doc/SymbolTable.rst
python/macholib/doc/_build/doctrees/MachO.doctree
python/macholib/doc/_build/doctrees/MachoOGraph.doctree
python/macholib/doc/_build/doctrees/MachoOStandalone.doctree
python/macholib/doc/_build/doctrees/SymbolTable.doctree
python/macholib/doc/_build/doctrees/changelog.doctree
python/macholib/doc/_build/doctrees/dyld.doctree
python/macholib/doc/_build/doctrees/dylib.doctree
python/macholib/doc/_build/doctrees/environment.pickle
python/macholib/doc/_build/doctrees/framework.doctree
python/macholib/doc/_build/doctrees/index.doctree
python/macholib/doc/_build/doctrees/license.doctree
python/macholib/doc/_build/doctrees/macho_o.doctree
python/macholib/doc/_build/doctrees/ptypes.doctree
python/macholib/doc/_build/doctrees/scripts.doctree
python/macholib/doc/_build/html/.buildinfo
python/macholib/doc/_build/html/MachO.html
python/macholib/doc/_build/html/MachoOGraph.html
python/macholib/doc/_build/html/MachoOStandalone.html
python/macholib/doc/_build/html/SymbolTable.html
python/macholib/doc/_build/html/_sources/MachO.txt
python/macholib/doc/_build/html/_sources/MachoOGraph.txt
python/macholib/doc/_build/html/_sources/MachoOStandalone.txt
python/macholib/doc/_build/html/_sources/SymbolTable.txt
python/macholib/doc/_build/html/_sources/changelog.txt
python/macholib/doc/_build/html/_sources/dyld.txt
python/macholib/doc/_build/html/_sources/dylib.txt
python/macholib/doc/_build/html/_sources/framework.txt
python/macholib/doc/_build/html/_sources/index.txt
python/macholib/doc/_build/html/_sources/license.txt
python/macholib/doc/_build/html/_sources/macho_o.txt
python/macholib/doc/_build/html/_sources/ptypes.txt
python/macholib/doc/_build/html/_sources/scripts.txt
python/macholib/doc/_build/html/_static/ajax-loader.gif
python/macholib/doc/_build/html/_static/basic.css
python/macholib/doc/_build/html/_static/comment-bright.png
python/macholib/doc/_build/html/_static/comment-close.png
python/macholib/doc/_build/html/_static/comment.png
python/macholib/doc/_build/html/_static/doctools.js
python/macholib/doc/_build/html/_static/down-pressed.png
python/macholib/doc/_build/html/_static/down.png
python/macholib/doc/_build/html/_static/file.png
python/macholib/doc/_build/html/_static/jquery.js
python/macholib/doc/_build/html/_static/minus.png
python/macholib/doc/_build/html/_static/nature.css
python/macholib/doc/_build/html/_static/plus.png
python/macholib/doc/_build/html/_static/pygments.css
python/macholib/doc/_build/html/_static/searchtools.js
python/macholib/doc/_build/html/_static/underscore.js
python/macholib/doc/_build/html/_static/up-pressed.png
python/macholib/doc/_build/html/_static/up.png
python/macholib/doc/_build/html/_static/websupport.js
python/macholib/doc/_build/html/changelog.html
python/macholib/doc/_build/html/dyld.html
python/macholib/doc/_build/html/dylib.html
python/macholib/doc/_build/html/framework.html
python/macholib/doc/_build/html/genindex.html
python/macholib/doc/_build/html/index.html
python/macholib/doc/_build/html/license.html
python/macholib/doc/_build/html/macho_o.html
python/macholib/doc/_build/html/objects.inv
python/macholib/doc/_build/html/ptypes.html
python/macholib/doc/_build/html/py-modindex.html
python/macholib/doc/_build/html/scripts.html
python/macholib/doc/_build/html/search.html
python/macholib/doc/_build/html/searchindex.js
python/macholib/doc/changelog.rst
python/macholib/doc/conf.py
python/macholib/doc/dyld.rst
python/macholib/doc/dylib.rst
python/macholib/doc/framework.rst
python/macholib/doc/index.rst
python/macholib/doc/license.rst
python/macholib/doc/macho_o.rst
python/macholib/doc/ptypes.rst
python/macholib/doc/scripts.rst
python/macholib/macholib.egg-info/PKG-INFO
python/macholib/macholib.egg-info/SOURCES.txt
python/macholib/macholib.egg-info/dependency_links.txt
python/macholib/macholib.egg-info/entry_points.txt
python/macholib/macholib.egg-info/requires.txt
python/macholib/macholib.egg-info/top_level.txt
python/macholib/macholib.egg-info/zip-safe
python/macholib/macholib/MachO.py
python/macholib/macholib/MachOGraph.py
python/macholib/macholib/MachOStandalone.py
python/macholib/macholib/SymbolTable.py
python/macholib/macholib/__init__.py
python/macholib/macholib/__main__.py
python/macholib/macholib/_cmdline.py
python/macholib/macholib/dyld.py
python/macholib/macholib/dylib.py
python/macholib/macholib/framework.py
python/macholib/macholib/itergraphreport.py
python/macholib/macholib/mach_o.py
python/macholib/macholib/macho_dump.py
python/macholib/macholib/macho_find.py
python/macholib/macholib/macho_standalone.py
python/macholib/macholib/ptypes.py
python/macholib/macholib/util.py
python/macholib/macholib_tests/__init__.py
python/macholib/macholib_tests/binaries/src/build.py
python/macholib/macholib_tests/test_MachO.py
python/macholib/macholib_tests/test_MachOGraph.py
python/macholib/macholib_tests/test_MachOStandalone.py
python/macholib/macholib_tests/test_SymbolTable.py
python/macholib/macholib_tests/test_command_line.py
python/macholib/macholib_tests/test_dyld.py
python/macholib/macholib_tests/test_dylib.py
python/macholib/macholib_tests/test_framework.py
python/macholib/macholib_tests/test_itergraphreport.py
python/macholib/macholib_tests/test_mach_o.py
python/macholib/macholib_tests/test_ptypes.py
python/macholib/setup.cfg
python/macholib/setup.py
new file mode 100644
--- /dev/null
+++ b/python/macholib/MANIFEST.in
@@ -0,0 +1,8 @@
+include *.txt MANIFEST.in *.py
+graft doc
+graft doc/_static
+graft doc/_templates
+graft macholib_tests
+global-exclude .DS_Store
+global-exclude *.pyc
+global-exclude *.so
new file mode 100644
--- /dev/null
+++ b/python/macholib/PKG-INFO
@@ -0,0 +1,275 @@
+Metadata-Version: 1.1
+Name: macholib
+Version: 1.7
+Summary: Mach-O header analysis and editing
+Home-page: http://bitbucket.org/ronaldoussoren/macholib
+Author: Ronald Oussoren
+Author-email: ronaldoussoren@mac.com
+License: MIT
+Download-URL: http://pypi.python.org/pypi/macholib
+Description: macholib can be used to analyze and edit Mach-O headers, the executable
+        format used by Mac OS X.
+        
+        It's typically used as a dependency analysis tool, and also to rewrite dylib
+        references in Mach-O headers to be @executable_path relative.
+        
+        Though this tool targets a platform specific file format, it is pure python
+        code that is platform and endian independent.
+        
+        
+        Release history
+        ===============
+        
+        macholib 1.7
+        ------------
+        
+        * Added support for ARM64, LC_ENCRYPTION_INFO_64 and LC_LINKER_OPTION
+        
+          Patch by Matthias Ringwald.
+        
+        * Load commands now have a "describe" method that returns more information
+          about the command.
+        
+          Patch by David Dorsey.
+        
+        * The MAGIC value in the header was always represented in the native
+          byte order, instead of as the value read from the binary.
+        
+          Patch by David Dorsey.
+        
+        * Added various new constants to "macholib.mach_o".
+        
+          Patch by David Dorsey.
+        
+        macholib 1.6.1
+        --------------
+        
+        * ?
+        
+        macholib 1.6
+        ------------
+        
+        * Add support for '@loader_path' link command in
+          macholib.dyld:
+        
+          - Added function ``macholib.dyld.dyld_loader_search``
+        
+          - This function is used by ``macholib.dyld.dyld_find``,
+            and that function now has an new (optional) argument
+            with the path to the loader.
+        
+        * Also add support for '@loader_path' to macholib.MachoGraph,
+          using the newly added '@loader_path' support in the
+          dyld module.
+        
+          Due to this suppport the *macho_standalone* tool can
+          now rewrite binaries that contain an '@loader_path' load
+          command.
+        
+        
+        macholib 1.5.2
+        --------------
+        
+        * Issue #93: Show the name of the affected file in the exception message
+          for Mach-O headers that are too large to relocate.
+        
+        
+        macholib 1.5.1
+        --------------
+        
+        * There were no 'classifiers' in the package metadata due to
+          a bug in setup.py.
+        
+        macholib 1.5
+        --------------
+        
+        macholib 1.5 is a minor feature release
+        
+        * No longer use 2to3 to provide Python 3 support
+        
+          As a side-effect of this macholib no longer supports
+          Python 2.5 and earlier.
+        
+        * Adds suppport for some new macho load commands
+        
+        * Fix for py3k problem in macho_standalone.py
+        
+          Patch by Guanqun Lu.
+        
+        * Fix for some issues in macho_dump.py
+        
+          Patch by Nam Nguyen
+        
+        * Issue #10: Fix for LC_DATA_IN_CODE linker commands, without
+          this fix py2app cannot build application bundles when
+          the source binaries have been compiled with Xcode 4.5.
+        
+        * Issue #6: Fix for LC_ENCRYPTION_INFO linker commands
+        
+        * Use the mach header information to print the cpu type of a
+          binary, instead of trying to deduce that from pointer width
+          and endianness.
+        
+          Changed the code because of issue #6, in which a user tries to
+          dump a iOS binary which results in bogus output in the previous
+          releases.
+        
+        * The mapping ``macholib.macho_dump.ARCH_MAP`` is undocumented
+          and no longer used by macholib itself. It will be removed
+          in the next release.
+        
+        
+        * The command-line tools ``macho_find``, ``macho_dump`` and
+          ``macho_standalone`` are deprecated. Use "python -mmacholib"
+          instead. That is::
+        
+           $ python -mmacholib dump /usr/bin/grep
+        
+           $ python -mmacholib find ~
+        
+           $ python -mmacholib standalone myapp.app
+        
+          This makes it clearer which version of the tools are used.
+        
+        macholib 1.4.3
+        --------------
+        
+        macholib 1.4.3 is a minor feature release
+        
+        * Added strings for 'x86_64' and 'ppc64' to
+          macholib.mach_o.CPU_TYPE_NAMES.
+        
+        * macho_find and macho_dump were broken in the 1.4.2 release
+        
+        * added 'macholib.util.NOT_SYSTEM_FILES', a list of
+          files that aren't system path's even though they are
+          located in system locations.
+        
+          Needed to work around a bug in PySide (see issue #32 in the
+          py2app tracker)
+        
+        
+        
+        macholib 1.4.2
+        --------------
+        
+        macholib 1.4.2 is a minor bugfix release
+        
+        * The support for new load commands that was added in 1.4.1
+          contained a typo that caused problems on OSX 10.7 (Lion).
+        
+        macholib 1.4.1
+        --------------
+        
+        macholib 1.4.1 is a minor feature release
+        
+        Features:
+        
+        - Add support for a number of new MachO load commands that were added
+          during the lifetime of OSX 10.6: ``LC_LOAD_UPWARD_DYLIB``,
+          ``LC_VERSION_MIN_MACOSX``, ``LC_VERSION_MIN_IPHONEOS`` and
+          ``LC_FUNCTION_STARTS``.
+        
+        macholib 1.4
+        -------------
+        
+        macholib 1.4 is a feature release
+        
+        Features:
+        
+        - Documentation is now generated using `sphinx <http://pypi.python.org/pypi/sphinx>`_
+          and can be viewed at <http://packages.python.org/macholib>.
+        
+        - The repository has moved to bitbucket
+        
+        - There now is a testsuite
+        
+        - Private functionality inside modules was renamed to
+          a name starting with an underscore.
+        
+          .. note:: if this change affects your code you are relying on undefined
+             implementation features, please stop using private functions.
+        
+        - The basic packable types in ``macholib.ptypes`` were renamed to better
+          represent the corresponding C type. The table below lists the old
+          an new names (the old names are still available, but are deprecated and
+          will be removed in a future release).
+        
+          +--------------+--------------+
+          | **Old name** | **New name** |
+          +==============+==============+
+          | p_byte       | p_int8       |
+          +--------------+--------------+
+          | p_ubyte      | p_uint8      |
+          +--------------+--------------+
+          | p_short      | p_int16      |
+          +--------------+--------------+
+          | p_ushort     | p_uint16     |
+          +--------------+--------------+
+          | p_int        | p_int32      |
+          +--------------+--------------+
+          | p_uint       | p_uint32     |
+          +--------------+--------------+
+          | p_long       | p_int32      |
+          +--------------+--------------+
+          | p_ulong      | p_uint32     |
+          +--------------+--------------+
+          | p_longlong   | p_int64      |
+          +--------------+--------------+
+          | p_ulonglong  | p_uint64     |
+          +--------------+--------------+
+        
+          ``Macholib.ptypes.p_ptr`` is no longer present as it had an unclear
+          definition and isn't actually used in the codebase.
+        
+        
+        Bug fixes:
+        
+        - The semantics of ``dyld.dyld_default_search`` were changed a bit,
+          it now first searches the framework path (if appropriate) and then
+          the linker path, irrespective of the value of the ``DYLD_FALLBACK*``
+          environment variables.
+        
+          Previous versions would change the search order when those variables
+          was set, which is odd and doesn't correspond with the documented
+          behaviour of the system dyld.
+        
+        - It is once again possible to install using python2.5
+        
+        - The source distribution includes all files, this was broken
+          due to the switch to mercurial (which confused setuptools)
+        
+        macholib 1.3
+        ------------
+        
+        macholib 1.3 is a feature release.
+        
+        Features:
+        
+        - Experimental Python 3.x support
+        
+          This version contains lightly tested support for Python 3.
+        
+        macholib 1.2.2
+        --------------
+        
+        macholib 1.2.2 is a bugfix release.
+        
+        Bug fixes:
+        
+        - Macholib should work better with 64-bit code
+          (patch by Marc-Antoine Parent)
+        
+Keywords: Mach-O,,dyld
+Platform: any
+Classifier: Intended Audience :: Developers
+Classifier: License :: OSI Approved :: MIT License
+Classifier: Programming Language :: Python
+Classifier: Programming Language :: Python :: 2
+Classifier: Programming Language :: Python :: 2.7
+Classifier: Programming Language :: Python :: 3
+Classifier: Programming Language :: Python :: 3.3
+Classifier: Programming Language :: Python :: 3.4
+Classifier: Operating System :: MacOS :: MacOS X
+Classifier: Topic :: Software Development :: Libraries :: Python Modules
+Classifier: Topic :: Software Development :: Build Tools
new file mode 100644
--- /dev/null
+++ b/python/macholib/README.txt
@@ -0,0 +1,8 @@
+macholib can be used to analyze and edit Mach-O headers, the executable
+format used by Mac OS X.
+
+It's typically used as a dependency analysis tool, and also to rewrite dylib
+references in Mach-O headers to be @executable_path relative.
+
+Though this tool targets a platform specific file format, it is pure python
+code that is platform and endian independent.
new file mode 100644
--- /dev/null
+++ b/python/macholib/doc/MachO.rst
@@ -0,0 +1,19 @@
+:mod:`macholib.MachO` --- Utilities for reading and writing Mach-O headers
+==========================================================================
+
+.. module:: macholib.MachO
+   :synopsis: Utilities for reading and writing Mach-O headers
+
+This module defines a class :class:`Macho`, which enables reading
+and writing the Mach-O header of an executable file or dynamic
+library on MacOS X.
+
+.. class:: MachO(filename)
+
+   Creates a MachO object by reading the Mach-O headers from
+   *filename*.
+
+   The *filename* should refer to an existing file in Mach-O
+   format, and can refer to fat (universal) binaries.
+
+.. note:: more information will be added later
new file mode 100644
--- /dev/null
+++ b/python/macholib/doc/MachoOGraph.rst
@@ -0,0 +1,14 @@
+:mod:`macholib.MachoGraph` --- Graph data structure of Mach-O dependencies
+===============================================================================
+
+.. module:: macholib.MachOGraph
+   :synopsis: Graph data structure of Mach-O dependencies
+
+This module defines the class :class:`MachOGraph` which represents the
+direct and indirect dependencies of one or more  Mach-O files on 
+other (library) files.
+
+.. class:: MachOGraph(...)
+
+   To be discussed.
+
new file mode 100644
--- /dev/null
+++ b/python/macholib/doc/MachoOStandalone.rst
@@ -0,0 +1,13 @@
+:mod:`macholib.MachOStandalone` --- Create standalone application bundles
+==========================================================================
+
+.. module:: macholib.MachOStandalone
+   :synopsis: Create standalone application bundles
+
+This module defines class :class:`MachOStandalone` which locates
+all Mach-O files in a directory (assumed to be the root of an
+application or plugin bundle) and then copies all non-system 
+dependencies for the located files into the bundle.
+
+.. class:: MachOStandalone(base[, dest[, graph[, env[, executable_path]]]])
+
new file mode 100644
--- /dev/null
+++ b/python/macholib/doc/Makefile
@@ -0,0 +1,130 @@
+# Makefile for Sphinx documentation
+#
+
+# You can set these variables from the command line.
+SPHINXOPTS    =
+SPHINXBUILD   = sphinx-build
+PAPER         =
+BUILDDIR      = _build
+
+# Internal variables.
+PAPEROPT_a4     = -D latex_paper_size=a4
+PAPEROPT_letter = -D latex_paper_size=letter
+ALLSPHINXOPTS   = -d $(BUILDDIR)/doctrees $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) .
+
+.PHONY: help clean html dirhtml singlehtml pickle json htmlhelp qthelp devhelp epub latex latexpdf text man changes linkcheck doctest
+
+help:
+	@echo "Please use \`make <target>' where <target> is one of"
+	@echo "  html       to make standalone HTML files"
+	@echo "  dirhtml    to make HTML files named index.html in directories"
+	@echo "  singlehtml to make a single large HTML file"
+	@echo "  pickle     to make pickle files"
+	@echo "  json       to make JSON files"
+	@echo "  htmlhelp   to make HTML files and a HTML help project"
+	@echo "  qthelp     to make HTML files and a qthelp project"
+	@echo "  devhelp    to make HTML files and a Devhelp project"
+	@echo "  epub       to make an epub"
+	@echo "  latex      to make LaTeX files, you can set PAPER=a4 or PAPER=letter"
+	@echo "  latexpdf   to make LaTeX files and run them through pdflatex"
+	@echo "  text       to make text files"
+	@echo "  man        to make manual pages"
+	@echo "  changes    to make an overview of all changed/added/deprecated items"
+	@echo "  linkcheck  to check all external links for integrity"
+	@echo "  doctest    to run all doctests embedded in the documentation (if enabled)"
+
+clean:
+	-rm -rf $(BUILDDIR)/*
+
+html:
+	$(SPHINXBUILD) -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html
+	@echo
+	@echo "Build finished. The HTML pages are in $(BUILDDIR)/html."
+
+dirhtml:
+	$(SPHINXBUILD) -b dirhtml $(ALLSPHINXOPTS) $(BUILDDIR)/dirhtml
+	@echo
+	@echo "Build finished. The HTML pages are in $(BUILDDIR)/dirhtml."
+
+singlehtml:
+	$(SPHINXBUILD) -b singlehtml $(ALLSPHINXOPTS) $(BUILDDIR)/singlehtml
+	@echo
+	@echo "Build finished. The HTML page is in $(BUILDDIR)/singlehtml."
+
+pickle:
+	$(SPHINXBUILD) -b pickle $(ALLSPHINXOPTS) $(BUILDDIR)/pickle
+	@echo
+	@echo "Build finished; now you can process the pickle files."
+
+json:
+	$(SPHINXBUILD) -b json $(ALLSPHINXOPTS) $(BUILDDIR)/json
+	@echo
+	@echo "Build finished; now you can process the JSON files."
+
+htmlhelp:
+	$(SPHINXBUILD) -b htmlhelp $(ALLSPHINXOPTS) $(BUILDDIR)/htmlhelp
+	@echo
+	@echo "Build finished; now you can run HTML Help Workshop with the" \
+	      ".hhp project file in $(BUILDDIR)/htmlhelp."
+
+qthelp:
+	$(SPHINXBUILD) -b qthelp $(ALLSPHINXOPTS) $(BUILDDIR)/qthelp
+	@echo
+	@echo "Build finished; now you can run "qcollectiongenerator" with the" \
+	      ".qhcp project file in $(BUILDDIR)/qthelp, like this:"
+	@echo "# qcollectiongenerator $(BUILDDIR)/qthelp/macholib.qhcp"
+	@echo "To view the help file:"
+	@echo "# assistant -collectionFile $(BUILDDIR)/qthelp/macholib.qhc"
+
+devhelp:
+	$(SPHINXBUILD) -b devhelp $(ALLSPHINXOPTS) $(BUILDDIR)/devhelp
+	@echo
+	@echo "Build finished."
+	@echo "To view the help file:"
+	@echo "# mkdir -p $$HOME/.local/share/devhelp/macholib"
+	@echo "# ln -s $(BUILDDIR)/devhelp $$HOME/.local/share/devhelp/macholib"
+	@echo "# devhelp"
+
+epub:
+	$(SPHINXBUILD) -b epub $(ALLSPHINXOPTS) $(BUILDDIR)/epub
+	@echo
+	@echo "Build finished. The epub file is in $(BUILDDIR)/epub."
+
+latex:
+	$(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex
+	@echo
+	@echo "Build finished; the LaTeX files are in $(BUILDDIR)/latex."
+	@echo "Run \`make' in that directory to run these through (pdf)latex" \
+	      "(use \`make latexpdf' here to do that automatically)."
+
+latexpdf:
+	$(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex
+	@echo "Running LaTeX files through pdflatex..."
+	make -C $(BUILDDIR)/latex all-pdf
+	@echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex."
+
+text:
+	$(SPHINXBUILD) -b text $(ALLSPHINXOPTS) $(BUILDDIR)/text
+	@echo
+	@echo "Build finished. The text files are in $(BUILDDIR)/text."
+
+man:
+	$(SPHINXBUILD) -b man $(ALLSPHINXOPTS) $(BUILDDIR)/man
+	@echo
+	@echo "Build finished. The manual pages are in $(BUILDDIR)/man."
+
+changes:
+	$(SPHINXBUILD) -b changes $(ALLSPHINXOPTS) $(BUILDDIR)/changes
+	@echo
+	@echo "The overview file is in $(BUILDDIR)/changes."
+
+linkcheck:
+	$(SPHINXBUILD) -b linkcheck $(ALLSPHINXOPTS) $(BUILDDIR)/linkcheck
+	@echo
+	@echo "Link check complete; look for any errors in the above output " \
+	      "or in $(BUILDDIR)/linkcheck/output.txt."
+
+doctest:
+	$(SPHINXBUILD) -b doctest $(ALLSPHINXOPTS) $(BUILDDIR)/doctest
+	@echo "Testing of doctests in the sources finished, look at the " \
+	      "results in $(BUILDDIR)/doctest/output.txt."
new file mode 100644
--- /dev/null
+++ b/python/macholib/doc/SymbolTable.rst
@@ -0,0 +1,24 @@
+:mod:`macholib.SymbolTable` --- Class to read the symbol table from a Mach-O header
+===================================================================================
+
+.. module:: macholib.SymbolTable
+   :synopsis: Class to read the symbol table from a Mach-O header
+
+This module is deprecated because it is not by the author
+and likely contains bugs. It also does not work for 64-bit binaries.
+
+.. class:: SymbolTable(macho[, openfile])
+
+   Reads the SymbolTable for the given Mach-O object.
+
+   The option argument *openfile* specifies the 
+   function to use to open the file, defaulting to
+   the builtin :func:`open` function.
+
+   .. warning:: As far as we know this class is not used
+      by any user of the modulegraph package, and the code
+      has not been updated after the initial implementation.
+
+      The end result of this is that the code does not
+      support 64-bit code at all and likely doesn't work
+      properly for 32-bit code as well.
new file mode 100644
index 0000000000000000000000000000000000000000..0aed18b429014b2f2414005157116cfabf7fca81
GIT binary patch
literal 7229
zc$~di2Y4LS5te1?PC84nC0p3wwip|qj88{122l){YJ*Ji!cmU%-tIfSwfA;!-tJmb
zl1*>|iIqwcNDt{DJ*1HyQb;E~A(iw(8tJ_;^WN_1?sS&(!3W=G>)SGK=AVDcn|*g<
zr)ha+7}$<K>UtLQGjv;JZjgZmBL|=}f`wVV*EOmvn65D&x+3V#7PfbEbW{zKdyZWm
zl^0qrm(xg(9oWp*DxS~;Gc4Pk&<xkoCIvpnYm&`*8pl^m_>dYeENfJCDPHVSe<6J^
z)Cc{r><4y$iaobvv5F5p5%lT<HADEURAs(zOdzUE5f<qKW+((AFZo_5Oa^`9dd6a=
zCk$E*{p0$O5e8nx^8(ikSji6z5x~IC1$vtNvn?MMN3bNzQ~I_9QBGdu>W<~mv0Us}
z4js$Ij^&hNxx}$Sp62OL?=iXUSO^M+im<emYM+^eECb7s>EQ^DK&FK;8N*+$cjzhf
z6Fq_zyi-rb&yQ?XBUnv@u5IE?297FhMMCqsk0|oOa}CGJUnac0Xv)vmroHlBGsh?L
ziGO+2l~=3_KY*1tAAnU6tS;;6z?dLbV2z%Ral%?XV+4V)%VB_=YY`ls)qAY4Mshx^
zE9z;}F?=7dk16UsWy9PjC}Qi2`a&XiLlKV67KSO_o)tPQ*Bo}($OoC;t(0YpFv3$t
zsCPNG%V5*aPP7zfCLG5*Ir6zV+sXuHih~^Fkj~Kv@>#yTumjDFp}ny^&DQqFgw+q5
zuq2$@RZrOC`3gSFkL0WP8ogVZgA+J1ablLQEAnHCe0`B`DDrGE<cOKaNKeX|evRAi
z)Tm)u3TlnHWUDlV6lLIKM7$+}QwZ_!p%BAXG(H*|?`u>5rxJ$KvU(bCs7?zD70dF$
zq#;}wo59?|mxh>N0i0eKm{WH0z2#L6+bwkB+uAgoLB3%47U3H<Rda094rXFUvqe26
z7npEnp&R8@5YN(kYSUvf4`AE4-itRX+Hm$bak7B;IHxsm7z8E^Cj;jq5!)j;4~gJg
z$*J>WV&Q_U-X(p#ke^XVNqjlf3>UEm&R6g)r2pbp{kz!|HnbgWyoQ~a@|Q$#DO%J!
zP{H=FY#_hs7!r)*eOTr@3R`gP!%Lc7XyUR6E~n@|d@WZ{^usa>%X5;+b}crQfh&=`
z-4W=CEA>Q`@8K%q^XjaM>1-6!SW*IU6rqsCCWDqSSl1Mm&!I}osz{C;x`y?R0IoGK
z&f{_FBiNQuU`I11gi+%exDN4NA3>3LxfNCJ=C-dXy&Cp<EPP)xG?`19N~y6uWX9XG
zS)1gx$u;I0We25V`ZA651)McgsCgCSS7TEQ0ns|GV&flV-<rm*W1E<UWnqYE&2wqx
zt}C^|XakMCb?9&dQCVtN^Xa7K_hd0=RvpGGFfcXB5tu~5;e-*&^_Yp&E360@EunmF
zW(F!GrVw-47A6|n0@bM$=VLSc^m^HPZEBy-Tl@S>eiq+0&d+XFQnn%jN!ZJ&p!Y@K
zP(fD+PBkfLH_I>NywIacS#=DrxtJ}|Q9~Z<Kmm|25rLoN_&!;#yk4byQS!0N4hRrV
z7{PuD#$#(*Wdn8tPGvtC!Bk7xb6M}x^VIv}vizFD+N5=BS(RqCt2M`Sgr}*lAKy~f
ztxX93n;Cclf{7w{VrviTqSx>wf^;J$r0c1kbYMnLsl0<H$C)<=FU~BKyzrFS^o5&n
z96*Kg`OW;M24wKmxtlGCmV6rrnjjQ7AUq909*kgyqP95kKTD+3^f7|4qZsx;^HO*^
zIq(eP6rRb`hMtNyw`Xy?5i~rTUiMT%$B{$Sa~gKYTl8+_!*g-K>#o=|cRg>0N@gf=
z;rWMf!EkYKHPp;_EBbI-1TP>TQVB2ABM!#U7q={d7ZUatwQE{+!!O1PnpFlb!R&r%
z1TRa1d7G@VLtw)@bTtDnM_{){@QQ@omf^kuVPE4ycqPGm)x7Xtjquv2gx4U>*GBNV
z1n2GZ;8Y-Ak09@e;0@H4ZfStjTbF@15}r5Bi|5S^t!Wp$1yQ^;g103o?wAJ!Z6)|g
z#e`$~IGMa1;oKR)JCdadoT0hG@J_<@u6c32`!Gf`@E$aHR|M~+AW;WSa-Vd+Z?5hY
z{7%yQe)P9d8a{w7e=vd%CAjZW!_z>sIry+-qTS>o1x?Ql<QL~h5Y^ogd^AxPH6=<c
z1|K7kAD@?iPh>d_7xzT)N%HV~#Jn9_aUge7)$OpW;Af3ip03YcbNVulX2PpxHYM(E
zqU60h?yhnK_*6R-{RxUs(+Dv3h-|}Wkm1ip@Hukhk*PxL_sku~ShdCt-}W=`c_i%K
z2);m;GH7YmZSwSs?ULdi^72cqN%3Wb{FMm4nndwll@vXRDfpV)sTbgyQ55}p1m7T=
z@?L?YU5(;*Uj*NzSB{*Fm^KSZ^SKu~mPW&g&;n2GpI9EmfZRQ8H)bJ&^L5n-Hp|)C
zM7jE!iV<j8{Bqup92w4tR<>P(cE&kj{#Ls%FG<4uZ3=T&3=zJAE`2wG?-B0gA?mvi
zT_T3>kKp_58U8^#hVLT-KWt_AM`+{65&R@!_<l76DPC`&FN{Z(9{4HR|5*e-Cr2KA
zbBaBd{A<l%I?KtxFOb^@BKRdiS}#9O1X)$qaQD+DZO75dOvBd0EX^^fFa4@<Kp{Qw
zYl_5g+Jw74Ui?;O=7SOZj`j}H@IYg#{JvePETx5iz}WoX$o_~7|0#k$CpI3G9aJ?@
zgQBi43WVYMqy@$QGOqX6&$Z;C%U>h-o8E($>OAG|5&T16;!ju0o>NLBefVb){-qB#
zor=lT|1QFR^kpsL>eYXX@ISp5KL#XtUvyyI7R3VmOAP6K$srt_+lWqlJgyJbq1I3A
z#6r2O3;z<znkUd}(JjS$Y)hTZi4@-NT%h+i0`x^%F72VE{Rs|<P4wckNMz{E5}Yq>
zfvvHmjy!y^NG|J>7JU{_Zu+7hZyS!0uu;+;V`Z)~oRE&z2JpQn7E8TLNLC-J(?JJZ
z=;c0N3@V&U1)VlpC5zGF40BD)UNIzn>Jt?c7x=6c3P&s@5G#2Q)W-7p!1K_u&4S9P
zCnoYds5*JEj3j!IH<QV8v|+qIs1MXwtt1Num80$>r0xM9=lL3Lk5xJy^Tl%cv_J67
z28b(2VK<Hb)8a@;onyEYA;zLa2Z!P)de+HYu~J&LXp;$yYE7()@yi&M9JZf1Vm0}T
zu|`j+#$^P=8Y!6JhLeb`C9!V3KgOrd28Bj){Dg6R6-L|>C3MA;Ct2#2V`Fge@@N@F
za=^!h9PK+uhFB;4uvj^q5XVT1OIWqcC}XDagNrj3i1qk<MqllPK`jgprGEn{N)a?O
z5XVYJ=$z9HtEDMQRk2Y8b+HvzYo&Sy`y#98#hjrcj)g~*@Bp2)kuB8AjH=iqWrrzj
z)CMW|r2zLqS>(sbRK$0=4ac8siOqC7h;1{V><>aeW-+H&OyT%bu_wgnY|Jsa_uIZ5
zctYfrA=B}UeI<t9Qx475f=R}Ym&vmlS5%vdS*20QuMx2)NYWNEcfUAMDpQWvd=^^h
zWz`WU#dJ^AJj`Po3q`nw<BOA3krR7<SeA#PF)Lf7&PD3rnmWQhaf*UZ<<OAGTb0F@
zh>25Wu*0B|J5`)U*O^!q715Z|WV=mEPM7H`m*nuXO`JjZi%XX6(}#5_Ch<(Uwig>s
z4N=%r;w%!QiZjZkN!tpz*haMX=mX73D$bUW^xYRAq;u#x9sk@Q&ZWDp5A)<*Y?nB(
zQ3Y%&pjyVD1mZjyx!wtez0{yMpRb&jp_z@q1*%5<DmKj$gtALsD7o*W)T{TMi^#~@
zxbI9(PL9^51Ma!9?^tYq9)%J5#j^7JX*V#YO5C2{4*n0s4tm_>cu2xdx?I)Fd`o#<
zf+BlmSq)J4F3nPXsq8eiCC24jq@gioc1hSPRm)%wlPwKH67YHhxl9#c97|bPzPOya
zyMBbMGTX%%$X!7l!&u@9$>SnnOx7P=8SgEU%KCn=n{<a|eYkb+QyY>_i#p`b8R9Cr
zDO^pP0#D-?+aQh-8|VBYAvd3lpy_txfVf7kxmK=eJ|9UbNpT%*q*^4dmon>Uh!913
zw$Y%|xNh68de%X8%FuKk6JiB6{#YjWeQ|>{SRw^$P!tvKnN>^*<6o5!gHoyY&Th1Z
V+%e0tQBv&CX;bR6@NZZieF&30h8O?<
new file mode 100644
index 0000000000000000000000000000000000000000..7ed6394270057e710a5e6cdbd097b9516ce68af2
GIT binary patch
literal 6109
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
new file mode 100644
index 0000000000000000000000000000000000000000..f19f00e8eac673a32b810e8bbf74e69265ae6736
GIT binary patch
literal 7099
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
Uyg_j$<qn-LDSNx||FAsqU)3UkqW}N^
new file mode 100644
index 0000000000000000000000000000000000000000..0ff1c997c864d6ec1851eabd0e160e9708edd4ee
GIT binary patch
literal 8138
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
RU6Sw6Xi)kD{*Fom{{ho4%|-wK
new file mode 100644
index 0000000000000000000000000000000000000000..ffb3f138ab217e837c3b30db6d4f341ae99ab7b6
GIT binary patch
literal 45133
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
SP7-3qdB)M+$}*T*RsKIQmP=m%
new file mode 100644
index 0000000000000000000000000000000000000000..1692b98346c6ee632197c4568afc9ba4db87ba4f
GIT binary patch
literal 42349
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
new file mode 100644
index 0000000000000000000000000000000000000000..0c501fc6b9f8d97deb7431ef956c689bbf1a7615
GIT binary patch
literal 9129
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
FKLM2xvB&@b
new file mode 100644
index 0000000000000000000000000000000000000000..126177dfdfdc1f9115f581848a5b607bffa96c4e
GIT binary patch
literal 1281784
zc$~C-3!EfZRsLjNJBEmWh>=GK?+}tE**u65A^YA9`xtg6$q*i$>h9|9%2Zc%pQ@h6
z3Wx}Zh=_=Yh=_;?h=_=Yh=_=Y2#AP?h=_=Qh=_=Yi2VQe+<VXIdfckMcV_nYOJ;gz
zr@wQ$>ejvI`JHFXUe->A{UF+E_|ZlHaWwFw^umMVAnY8;{9<%LJeqylXzsFG_I1K;
z5c<hzp58c4gYd$m;&+iZ@NbEN(cz#i-m&oT9~mvSo6VNMN`t7`yfE>_ulGIq*=I*f
zty}IBM5zx7qKWV9G=peE$ckZm^c_zdU3l3oi^J`-A4j9RJZ*H*WosAC%*-Td=f-%L
z2I80B`LxkpFI$@xzr6Cu=({dkTNJOB)!*N3ZBG2KzwxNi-Pf)Yuli{^yz!Bb?8NP)
zp&%PE^d31*f~fb%_Mj66k>BX2gYZG(2L*rSk+lmDIvw3Z$v8Cn?#udj>)(Ct2dV+X
zpamXmKQaZcT>_N9yz&si-c!LI9DR?1-Km}j3GiMD@XY9YcL#We054X6H;=w=cYrq&
z;Jp>#Eu;JF4)7KNysrXW9o=s)Zp|veUZP-c8{L0*dfrBWmny(pM-SK?;H?DsKn3{t
z(Svpe_;><*umW5eJ!E%)D+KsZ1$cJ!u-yTkB|!bCuZ<qQJHRypyj%fxMvvGXV21#&
zP=LMBm3y%odj#81u-(xk73_iOu;VC5Q$I<I$n^Uwy99of0&kD5-aGI%f$vw~t<g1m
z2i_v^YZdrlblvW5-+%zGSAgN@Q3~+LbZy)5U?`3~FAR&QlYhA~Bmp-l0nzCDm4F|#
zSRcW_4@wt9{r1X;fNxa5!RQBecPRn_e6#}WkA84(H0=}cV-)as^w`~LIwruI6ks|!
zpa5^)gC*7pl6Jh|!<8vXIjE#;j1KM1_1GZb!wPsbI<mKGZbSl(DgndMvGZ_!h9u><
zl9G&0?8VNP5bVtg7DkWT3s@l7lL~fgbZU2taEky>uYCu;xKdn`1TE7u3ir`F#3dYp
zUtYV5gdZp3nzy{fA3a_PI5_=!Btcrj$KPepNX%JjG+%k<%xFcyU%yiWk}b&9wTq<Y
zK`)BI7YheQw^%Rqnp>FxBvH3!FA{#j(QSKmk?<vnSyOB0n$Z(>w|1@}z}uzYa^;nM
zKOByps6fAerwa!`2>3~B-<7@ggSaye{n3+^gyVa1`4uJ!e9Blp2E*+e2fje-JZ;px
zZ0+9SH(P_S(TN9*K@bJ_{dC;%8)+<lJ-S1wb9%ZuMG&c2H8LsXtvx`zIKF!7<gy3i
zW;QY}`(D%u{bt8+hohEKWO=$GD0rv=P=~45q)L13d&G-D5(uQm;lK;yUZWjHDa7HZ
zqr~4dUA%t36m7&JasFCEUwfr(((t#2UfS4V^^b%;y7q^Kj>o0CFzPBjZlA8la9hFg
zeXy588ur${PrT@OsgK8EBRv;H-MBGM+i|y>`01#xlsP(G8OD&>R3eh#VC^2_MG!Yu
z{jK!GnS){zY=G}|Mt4qq{z#&Dvy@c^AtCE)55i9ubh~(uR{YV}kJ|nzFKze5RT+(g
z_IeXM@l=gMCH0KO=hSHGV@`)AT?T94Enc+8;)W!R%^>Q;n~gs1AfrghevF0Pq28@F
zgfbF|ir2nZyb$ZLCpM~vzT@J;2)jfaTtg-9&~$NxAmvrSk<8KB-NcJ-I>gIybalBQ
z{yvCCU~M(%w@O(>7!s1mz04nYLD(4hN#gbV#wq=M-QP||sS<Z`y0|=ulv<5T^2ciz
zXP*{)(Fl@w)A!dq-u7t2`dqDeSPFn7c2h2$VK5Z;d(|HdL;SOLJlq~_S=++u-BO$Z
zh$L;VJy^Ur3f{oKEr#{RN?Yt^q2IYpt+Gzs^xA2#A>KARr$nE%xU&eiiEvW94La%b
zLu+>zFT7+sYWKyC)(yl~GK`0#r&>QU{9Y-$ghYa#wstS^LOTqr;u|!E5JYLy-)fJZ
zZtXf}Jq|M%3H)Js5~b;SV;SNeh{e|Oppm2=q@!opdpN1Ss74@?^&|2C7Uy6v@WRF+
zaYl*lvVpFO2Yxe+Q!i`|yx!=UO71C(^{cVe@|^}udi<#T%t=4=w;Jke&rijlt^3jF
zSxWX}Ei6U(PAS<4Mbe%vcfmHUur?Y_Nuz_iv`}vxrK9I4dB<#=y$OQadCia{_s8U#
z#T&8;zP}Opn~hd0-WomE`e4i5)f@=P_;I--h^sF5$rGmzEMKcP+~-+eM|!t9L(5Pk
z>nGMO#k)30hn>dCsnz8bA2#HQj@x3fHT8ZudcL)DtDw{koPtU^{G?hraeLiQ8~U5D
zwIXpFMlZ0o+w>ciWD^#N`zdKRi1pkJdfJ#g>uu(KMl+*39KBEpU$t3A`0lLLYJpD*
z{j}VkT1ltVYRIo~>rSDsI`m#-eE}4J6mG^Mc|WsuA6&zJ82KqKi&gnbD%JGGeSy)7
zmCzFwtC>;Mnyv;V=|8)6e?I1We&h=~Du%`}ezghcTfRhTuwr}GPmnUFeI-2U@^jMm
zT?xct>93tSd3O1bUa5v(f!_;~)Q4t(UO+Nbn?$oaj?`{3dZ|+RX*TXKq6-TihV4Y5
zORe`t5&CdHFCF%daNxp5JB)>K_%fy8ev2c3cK^w{3HBG%(<&_CPD6ejqrvE7s&Vvk
z`+Z)%Up=fQD3bPzYmd-QR^n}Grw`O&6s2UX`cX$aL8n(nuTVNP?L6KrDtlU%qDaSI
zl7?eTJaGrb|7~G8L$ft(ZAarlOI(y!+CRbk{8nI*#9x+<ov;EhPuy7b0CU55NDh1{
z@>TXRAdR7(-YP(n`z!KfDw+fXZ)@~w>pNd-T?i<W^{djZ5h}=kI6V%-Rq&!D^wilL
z>VFx%#@enSEGc;^FzNAYa(DIsyzPei+J$(Kq{8Owjb3YgZ`E6sood7)d9Pc$uXr(r
zP`q=0<1CsWNh%GX#7D~{hSBS-V@w1i<<?=6^k0`w7<Ah=?BCB`lK4Zf(}7TIJEJ#P
zFD(rsMOOoo;NOrBkx9jLd+3kesKg%LgO7}OB=tAtQD}}Z32WO=M{lyWeC*;@5|zaN
zma_EX#=-5>Pfnac{WiRC?2q28#NOx>C@G?lnBQKz1aE4HwtMKOa#y2Q^t;hptRsb4
zAa!?Zkx7f+kq3V~OyxytoRI-feO2(jjHRXdR%<7pk)#e&a7l^ZU3&;BA(r8|6T}^V
zqaj{5<qu8qQ_vRnzS#OBKTJk%Q>xrzp-Ki%X=5XRbo#xu`xSi(^;qJup2odi=#SoR
zzoQ%diy|P&{(X6plpjwFRy5Odqjy+8clD3E#v`$Ru=X&+v3>*~20CfGo^UYbZ$|G_
zN<49oj`RvKq}v~^T_Ii!#$g(0hXo^J11~}=HfdlSQaIyV+l?kat?yC_-Z5RlBCHBC
zJIEp}|41H7XyyvfQT$<RJCv&(5Ae~utur$Op!6`Jk;Fe<yC=Hbp_e3$W-}SL<V!zk
zHb?KVj-e!J2lrocwhdq;?oXtLpA7;G$4S4L#A9gtqxafNG)ELNU?lNRjVEtkcra*e
zr~V)ry>D+$-Yh0b|1)V<x6bWv9K3zMG{4Yy!pLtjdcSqd2;Z+vND~mr`g7^^7nj}R
z$NtzC7ba~+@unA~qYqg7zgEk-h)>#lP&(wBNiP7uOHZj<{PdJIyP>#WqYqgJ@)->k
zv4AFB{$lM>nKf{rm0&_HJskAJZ96bd`^R}>Nrz1zw+*qkr~M}QBfm5Hu+p!+!{y;9
zj&%M@UAQSWvls?mI{JuG<58}U;{<}B|4JGtc#@osQ@<6*>-r=aebl~UAbTJcU`Wni
z%g{6zMy!f2hcMrRdjh1#!~zx;#gWn23r8PQf*)^jjdOJtHsGYr->Afyc1{lK?-5>_
zFgWLrK5m~2FnK#AK$82n(q+fn5F}nGe7?~ql%yMWaw|0kf&ZO6G4h!u^zgi`?XA%#
zt@qRFG!=o7z`vKfOxp{E)9eY$kY0#w4+g^F>vz2EWdG<>)(#v)DdAIqNsWJy8|yil
z$o0`E#V~q9Z783%PBon47?%-=g#F{%!!!HG@zvF3X<IC-T`*Qpaw4AJWGI|XfAkq^
z8`HRBOcg+S{gb*En7%)O@fDei@rB!+#NvPm^sh#rwGRAAC>=4c2PGB$dF>j*p)-u*
zuu=TwGX4^8W)NXE>T^n~-X5Jp79vUK&&!P<ld%-en=s>BV_`yX_~Gaa*5+|V1~iXH
zV*kbPsJ25$<5rxGzPJaEDuI!}f0edfIoC7X9(~C=#4#mrG)YAM+uB`mC3LQ9;Q!+x
zItQaKPpygKn=Ia>Zfp*L(EnWqj?n1$Q{nzleZ*?!HD317SDd^Gh2^XF%h&8%)QTak
z{zH~T=xBVi8H7nc=%&JU{_0d)U6?LDU;zSVmc4;^-1Idrqmi`#R6*KtORsRTyoY`y
zR(=?czGl5<Gw)Z2iV2TI{ui4HE9rKKX){cCjD@B0^_`gt1sIa^-}0lOW6~ZB8=U~~
z8~DQ*($P1p9}RlHdLB(+B=3J@h$xEGGkf}Uc@y}ib+(aEq|_QnlKsC@cF}CW1fDqj
zn!+|5eal*QttFCyB-#HbO)^8^E(`})2qQL4<;EnVZ(Ez?Q(}T8Xj10?$q<Rk>a_b9
z+esUT^mpMtrqFD{jQCq?Me<OYoKXe3Rs=2(-=$+(jFo$x4*m?Ytc67lPHpsEBa-Af
zl#C8)vOP$>miU9CI^!cf^)MFqFM)X$Z*hh*l6typa7l>;RO0HHDP?a_=WyIcV>DBf
z28*oOlc#HDU;Jj0McVE|ZDppUk1jAC^Q-ceFpZnS@ZRuYiM6tLgeEZRhE<`G{O>^d
zxouypD0KS8YQ2yJ?`r2~K$3YElzD$`>j|_IQ5)o8<b`Onb|?f57qJ2sv26{;_FfGz
zDe|4D$am?jTBTiO3<B=Tf@|ux&0b9bibQ=Eiuw)`g|`Ck#zHI%3WJbLp&{HI;jhGv
zI7m`##Y`G)-3lO_k3;lIsI=bnxBT{4K1Og4R-vZalOZ4J4JQE$Cqbm<ccYqEoze}Z
z7vJa#Tdx^<V*k1)t773ucJ&%7!H}TuK|%X)CldSPFdo9a82(ykKUF~x^!Fn4LyMt+
zvwkA1b=(k-Y+<_F?;I6dwXg}`VwP-CDNqv+sFXm8eIF`jOneW9={DS(_1I<Z8_`JS
zeNg6o3}=n7r_r&J=gobcHn6($CWA^E+z&NS<%#We@h8jj8#Fp&;rm{~k}ce44WLUD
zOJF4M{wVMvGn3Q+7D-4`pn)|I>XleCC-GGB;Zjy%&CZHPNR5|E4b+Mu<sN{_-EZQU
zp<go;+dkGOW7xdsrG0VGJ&={M2ooDzG&3wI@gP*<vPxq}92R0L?lg6TIrJlVu+2W?
zY!{UUk%kXJ4bk`!2Xn4)Mf`l|*a`J39SNuSW+GG3_*YG#*;pPcXoA2)S@}&16E|*`
zi)!{j3;JXaqaAkO4`SGsiM2GwEH+%`@-XDLz!DgVdpOye<#MiW07B^HEY!l|sVxta
zcqI1`D7R4X?X`qU1Xr-Yo!5LzBocKcin>H&;a^}t>yWC~Lkm=w?m@%FSRpJaxgMDG
zcqDz~c7GhLi$#uKr6F+@OSZ_xt9Pr1xd23xu0~0B&4mIY;kd(on+0SM35X_90Jw(i
zPw*RO{hq&dM*W%a<KbGCXHl~Xdgm_Vkf`hEe9Xt0g2BM=#OrW9OS6b0RfnxK90`3C
z*}A8KfqxsCh0w^nlx5PbxU&s6uy~8|hJirXR0vXqDd42c_uE;C!o+Aw15VvCxbb{h
zi3LHV<`2*{qh#-?;~5WJY=5fPC4on?Vvn=9W~MZ91u|*!gQy9{IS<A0df>~XoPHU`
z;>mlA%kI`zZ`7r?COi`RSQLA4_5$edcw4bd7H(p}7BMpOCoe#f>;tr;C!<jO+ck|t
zVtL2V==!NRU&9a%x<n5ML|Kw%M3Q`nEV-hJ;?}@n7wfh51NSEW-w~Afz?mtP*6Kk!
z>SD$_)>>x^e&HA@)tLH_q9KrZb`m(w3f6>+ck+}LC6S^hXr&AxmR9<*{tn})jVtA5
zmz6>w%KSDXlH|wHPM+@?@VAEJsOQ5;m#4C(3qj+N)Kg?za};W2d(eu*RrwnC4<s;x
z(=K*EMR>~uOlq7V>zYaiRH?SM3LCer96O=SNW5|0a0tt+kwuw=u_|Gj2-5BG<PPet
z)U$p&hEC&{pB@eTuyY98RNySDW6{-VXmvG#k^(EJz{BOr7~+a<9Nvyjik)?3-0cQi
zCk7Zb7itIcg)AL{RaVC$!%47uwOGm^?QTKsuz0m9wjBf9>T-3g0_I#c2De?H<Fl%-
z`w$X1h_g>c780GKl7DTjL8e2z4wN)_0v+w<UPmu!s!C(Hot3btqOk6zWPH-+iL{3m
z3!cYOAOnU^a@k923aB+6$$c`)eeleb`oc{QBD@$+*+~q+zP?b4A>Eo}lIL5LTEf1C
zJ6IEoLa*v}C&VIgUiMO813zUZ#m1*!CI`1yz20fuU0bYxMVme$@+FuCPdc?}S>$c|
zG#<BQqce0^4T}QCYG;7~NwANCA65)5;_iY$Rq+jfOpb~LbxQIsK-Xn&uZb>Jiy+l{
zsM-T?Z|_S#ISxCjdYP@}u4ey(zLQ<vpKS2ckV%(-3^yt=IpnqbzHr?$VG`_njmIh6
z>Ec)!D_E+*NuTu#bQXu%7(lixY)cnM9y6hn#cm>aC_<9(0qyFlE-q!0wGsK7&1C4c
zaSw@H%#sO`3XRkNlNK?ZZ8~Rqpwq$9qm#n4RMoT1CJb4Jo%LoIFiHFf#a}ZsHS32@
zIclEE`vL1^(URqo_cKW&jgwN8#cL(vBBgs1WszVcYfMqWTtZ*wT{c{H^y=b(Z1QE3
z3}te?gfY8CM=)B9-O%eLu*H%s^1w!y&WKA|Y?G5vpc@e8sxMBmb1n{LHF<$TBbh%$
zpS)OFl*Y}Z9guPJRF_X)Te6hHB`uyt9zs<;>FGF?F|whe3rXPVE;g`T&1z8wDfh#)
zRqB&)=tW}fF3Yd|pwsaqc!tYXm4nG1v1MRV;YTje8N9mGia36b`d*3|yl1jLPp~(?
zY*RQBIi%i?qIy{C<^|n$Lw=EEtFSJ18F-e<^D5u0>`?<234AsRe9+9af;8Fb3D05q
z7Bvz(u1b@#NWUMWof4BeLDC75J7a7telDwG5$Z4JbSFq8=*P)>lnWZah(l(GZd@Zn
zgM6z8$Ht!UK(R#Od8~s45y|AKu@*q8{RA211)>B@>^$G*#IT5WWD`3-d4bM)R6XBk
zy+Ax=@B$Z8&u-^X$fU?mp(5BkFc7+G`{RWy^cstk1K+2P4MrgFpQb=--aSFnQ@o0Y
zDZI!j+F9xFOb|)*&lL7S?GZ$1vie<N=JeskE+%8OlaYZW;Xg}HR3{L|0_OE(pAWob
z=TB4~i3I%|3c~D-fh3?R#i?o2K>Ze8$~p}#bh4){uoF)o<mc&j6{9TeIJ$G(!??-I
zT&&yL$PHtX^k29@hsN2w69!)r25ny$j4!uYqSFn=2_i}TMGDpoC3{d~8T>TeUItk;
zFSbuS%VZhRD_jn24W^8#dSFuImuT}FjD^+HP+!MUD4r;ICCj!b)l%=&757CblJ?6N
z*w<1eeGhz0VzuB^tjPJOrJ4vLHGhT7gkpk2CWv0m+T655<2nmRGJmz?vxt=>mf&ml
z#%GaWB<t7cHq`rAX^?JbeYw}V7;6r`TtN<L`8qNgDjQ^1wxjkb^@BRDU+-c;xi#Y!
zWs#P@eu2(o=9u321-!xKl&j&6;}<0OH)z37A4Es?4Z<5);7*z;6bQ-qO^Sb1RYym-
zOTNh^4CGLH9c4Dm-=eS~aTT5v-<6Gjs2_wKc(coOHnJZU5J~cH(+$q{4@+VrNl6B8
zaoG+k+L0%4B=vWSVYqD5YNj7FiXwRHuETKE;H1y*k~uf&%}D#gp}-R4R9w9T-sW;0
z46Pn{IFkE&bUdpR$g2Db;|TeV;O#CBTPdBA!y<XVkMb^`=CH}vSQ(3v0(b|j(K&y9
zTTUct`v(+=$y9TmKu*>mY4-u%$%-AYxIPutp%Xlk`iCSnh%w)uA!iM6y3D&=%!Ukq
zNg0X+{?P?GkHOC^wQ{d)C*rZCr7M}L;N33AR0%P+CDh3w<^K2rT|737rNg&;X89Vd
z4@%)ZE+)Tzx3b*|NF?e{F0ig&2%>g4?)c44013R86*&*}3t35|=$}$h6iEQ_qaY1n
zqwj|?ywByCrMIgMvxr5~{*27E9Op^u^_qPzf%m&CM>Bnjh9Y@?PRo&dkdfhs`;b*g
zf7|z9h}OafSiVKNwW7zl2A`DrAVn2az_M|a6AQxS5l$JV%YAW9e#j+2s<Ei2yat!l
z_zOCxOWa;TgnXg!VJCa2mMu&nlH|X<fI{QN-d^3bC~NlMBQCeY%0$fJlQw@v+VE53
zC8;7%XOl%34<B`k#}bro#Hj%$HU65^*h0RoR^ygv=(X3yo5u1*Gah=v7l)6r8Wu(C
z8cH2mb+Dww-;nJfDSBfNc5ILgHJx^X8H10z`1g#WqOTR0B>Zo4%R(M%r|?yt8U;S#
z5^S45O%_BIGU@Sm7w8;sMV)^qZi+i9+>H)=l6A4*!Ln!}m_U;<e@`}TK1zvw(c@Sw
z<4>^$7CHEuuqOeM+<&0m0qM%dU36MInKS=t__R~JHN$;o03)IQNG4?N01;bP(A|d5
zut1yEoyy}#p^?OYx<DsvOQ#6;Gs9<HE^+m-RBVujf2L2H4K|3g8FSn4IhRjc8M@GD
zB=PfP0A=GoGJy027H3gCUlBmchL8S*mTji@Qc`fYy{PSn@I{tq5!J13=gdHo<bS<@
zs_%@fMx!J+=fjs+yhRJL180&%Cr$p1j2*xpz{c4l_%&%_oXzXNmtCG8g`i9O%U~q&
z-zg4LvWm~f*dY`3aK~ec)IpHKS6Gdw?3oE(C5+Vk58hjHTTn!G0`OHA%cEvfV?>ht
zpD6i}rVDg>^$1Sf%(xEXjMi!O6NlkzE{>z+WvUlRD*qR)XI&zHDi$Y4DBQfWzKrd6
z9_Mev*I7M_YDGf{z6q2R`0opJ?g>LZx;pY3EYF?0icv_w|Il-i&)9T)5U=2yE*oKW
z{zsva$p5`SCo-~KM`tw^kLoA-mW!cN*~yf{B<cUhfyjcL93;)ii{RTX2TrZwtpG{x
z|0BbuqStDODKeFBnwcdPEa;wW`nV?8q|F7h*}n6wiGepe>)-|&TEe$V7Tw&e&h00?
zK`1SOW6bk9j@F}iGipkoK%CPsKkINd5TIJx)6q$zg;`@8R%^Z2!G!uE>tGR~t6uaP
zj)d-;ttiaN&5D4fSqHz<eg*|;@g1{zLo?>R)Gy(}S%(d6YBEjzk`%bhtUi7?<${zZ
zsc@QG!j5S+;UX4Z)2cl^k&{Oy>EB5=f$g+YhmU6auT)*wU0rU1+5R)(k`~`JtL<JB
z@v>?ahP%1kgQ;xJ3Y6sEofg5wm|OA1+1*F~P!BbNd$?SKN+Yp^OFDcv>VP~8GN!)D
z(=X^pb4ompCRzD=vV!Z=6~qaH_$S$n{7xm)NBEvuot&N&r%ql;=G1`)!s>u~x$Nha
zg|9|z(&c+mm#eKWCwl(0(k`BLu&#D~9Wx?H>F=A>;m>RZfG>A}d$UqCA$hBc0zdow
z--mX7qU{(*UEwC4^PBh++}GvsD>8uOph)2TW_9*)GG!yeT*xIhXUydD`CF1jaWa4>
z4@c7OKdZB0rd6X`UHxWDJe=!rDQjTS#$d51^YEn617>w*)KoAl%gDvX2oGdkEaGZY
z>u?E{ba>FLj;poR$*6PHVtL3R8e+9Qc-Fz(ERZu-V3P2M%<39~TKa0rm?!;lDr|=c
z9?BYdd*mb6$|G$bR(c`>6})c3Wqb2P5*|r>INh8wt#;_O{4jybXC0yyQ<%CHB*}gR
zox>`#t~RH}arI5y$&vWjSFm)8fM*UTle0G=lM+{=5=dw}?6exo;(r)N&|s++<%L6H
ztjHh``Xgyam|oxmSJ~L!J1rj~g{~%rYV36^almrH{j88h!rs;y(BP!cHM2S&L=gfU
zb;1cu$$ESeV|3TDE*8z#^)U#u1XAcaejp01NL}$Z+1qsetb>PI)7wOVB>7SFI3Tx!
z+TxJPVO73T!?@rEr=6N{l>ACq(%}2)c+Qbv2OY7eVi5X97VbJ1u!Kbte_&R3yVZ8b
zi;E@RE$r6_9?d#fG(tKy;ZMYndOt|s(z#$L-Rs+fAq^eEp|bE8R>vY(M<7y@3Ph6p
z*jXK}pjCUcaONM`YWs4C2;Agi-Wp4aDzQnM1Eh_4fQcF{DMy&VL6=R#W;#j+oYXml
z>RdWwCSa4%2Klqt$Pc?*o9WbRS!`0~$ZVl|bts-|{C@b%DH-EjNySq((1eCZUDj_A
zG1tXfCx&!8HmgH@h2pV+x9+PZdN}T4d({=BO)yFN2{OLHABv|9zu+slnMGOzQ004d
z@IQ+}LLNtZRzCVI7E&5`A)K@^n=GQ~8jqx&qP=>Eg)d2CMSfLF6?rOrKY`OuVVoTK
zMI|W7KV$sV&6SmtjU)+Sd2c>7;gQtG&r)BwoQu%#ky=@oGo5ug9Q6BjOuUFi;#Md~
z%9G~2D2{?Qthy|q^1M2QLQ-y-)unV+HMR0lgIievi^S2+3wWh4((^XD8f?qMR*c@$
z8Y@$iB$)0QC^VAx1X|#eS;><b$vP2oyNfYWIfA(eOBy_pT-ViLtC0p<hg59<zQpKa
zD-cfK5T4}Xort$8>2;7K|H-quip`#xA0Hlg3TxEbqqR{lko0ZRp*WCD`&ff1me48r
z!%_8v;tYp7SVNoIqAZ$HZwfvs<jv}YY~{FZb;A?+%a%Cpp~afrwu==tMGEQHuDZd-
zXHi&+oj}@Kojt$7^#Vy>f0pV83!JF3r=aVSHL0ao&9)8n=o*z9SPxKmKRLaE*6Xb}
z`0L>I<0VN)-z9!x*DzZrkJJrlj|}35uCY<4)19o3MYlnwU?&SgLe@(`ns)4iY{Uxp
zCP+hgBym8eJ(*lQ7Y?VoK;&}T8%?+z9!ZTkM>*le9F2n%hAhvbUZ#Rz6M;z3h&GBT
zM7M`m4>Ml_tMH_~T3;2SNXZ11MEY*oLpnf?qm-4f7*<?pLPY?A9&>6k=yqk;M6;fp
z(uIP61h25+l$z8~Iy_W^OImD_ahET$!5?7DB`{xEuY*63v~4=AR6z!6r^+#I_LM8p
zRR55`ITwd=f~KRx_28t<577e#enVay%^iwOU{MF2>h|&Jvm2mD;L|AVHPI0F-iemr
z;{t=Hvt*kZ%c>7=f+kIVm|VnS{yL($U+@eU7qK=c&X^?qM`m>yV1Yt45+@owljT}e
ziPiA2A{Yt$QL<}I(Lfz9e3nfh);-p!{(=;FHl600-3Kp`uuvMlbTFP{W7G52QsxTE
zp^?ZRLy^dOu_9a2Gx<XOQrL7s(&r5Cb6u=4)#je-xVDl)%KiAPE>kguDSP5CasNpD
z2$OK|JSPiwdKk2TPdfbsCF;#nl9g%keAZ>p#xLj0jh~#YD46O58^U;i7r2C@YoAU9
zNOFIQ%pCHYv5Q8wq`?bWqy;T=$^T{?lJwIQ1TJ#aO-^C4b10T`Y`}#VvHZQ7wp$^I
zH2fLbBo(g!K4FK2Pq8YSUDaHX7qd<lBMv4oq>UMs<o_(ip^L5Aogis@(1Dk@#Gz}O
zy)`09{<&FQH9et^0UtM3c&W=GFwxK`91`^Nbcrc2zPwGLaY@)Q+=iFAoI}Q7dkK@I
z{{jVZ1)L1}9*)~O&Kt2~+wAIr9xrD_EOPgRs2({Bc+%+?>4YdWD~RPePT&<T{$5@0
zgM=fQzeEpxu7Y1$yRUS)-{ww$tkL_+w6_|I)>Iw>UgZ=*omL5#n;HwhLeXh<yN2<m
z@Znx<V|7gT;UpNz`c=A>rh&)s8W;1jc6Kt!`!zDF^7nenOXC5&*2T7{SveAoB)*O$
z=5DyZ6(nf_uV;y_<Mj$iB<<JfdN#32+V6=6`}pIIJfU$&p2%--c{B(?iZsEI%-^8I
za59d(apS-(O*u}h=ckd3L?!S>my=kbs0erkAW8mB@=i*VY_Y}_-sJLeYX{>Z90~m`
z6nfc=p<CdT90ii4!t?+M+TYB2Sg=}Hwh2_oA|-!&nnkM`p4g&&%lWZr^HNB;-yyeN
zRfINfIeQZ4QHsCEZ%thg0dIAQqHCy3p=kvyDe=4XTypjUdDV0c+S^>7%W@uNf<)4O
zkG!iD*@b)JOoLyDyS9N5J9xW`p`^NbDIiykN(%h`tWzDPSZ};G-objE*E-CMNK*O_
z$i~7Q?@&Bw#WeHaovf3^NVMF>nS~)ae@I7eX~eg%{+nsMiI(KMTy9VO;P445Y4At0
zx&^6@X=eqK?3zx3;(hOSvG}byeGHOF(?6!&zKy8_*~XCwqg>p#2B3rB!+Ttw+boI>
z&X{3I{-4b1I<0z^MC8JQ_qql{cSOh-q?4=jr(`DP8DKFF@jjP4a1EPmCJFIp<Qf=w
zJzH^#HqHB8oNz0`Pz6jX{Q2xmejtskY0NUu>T1akup&DhNK=7KntYJWkQ}|B9u?K}
zx8OrAzF;+B;RKOH{{`(+Sx;V;Q-9cHpE3pnvSrkNN#5?HkKrtq=rz3dXdDRt>mx3X
zU}bMa4wGd6mBA}OPUes9l~<7AWd7?}T~$>@)xeY9;bSb`f}Yoj4x%_s9{y%l7sM()
zM?75<__)grHqk;#7!vWf^gx#=GKanovdHoiEYM~Icpd8|L6Y#l%bvEk1)ZKR>$=2s
z_~edH+bj&p`TJR2zaT7DRn~R@dU9N!j`9hYCWTMABy|``MN(>TNr```T4I^*L`kh5
z!>9LriIrrKR{u!JpQ^-^nsGSV51(<#e^}+b2%2>HCre$fhR>caU6=ympK0UE)kKZa
zB^Ae^IO#v<<Y877Sxo>*@aH)RG$|w>bQ)A2gC+4_unEOXtxnH_lK6j_)m_$duTU)0
zUu1dCUDgv667a9&1@T7Q4dWO(!G_q{zhrY>PT$%mh$QvjXa_KLC35r4mtE}0sm+eX
z=9_<?Emn;M>QjHkCJJQHPm=q@|3M2_6YeZ4x*bWjBdx=)x-4J=gHI8V1pg;3;7xDC
zZ`>xnG-ZSrA2G2>dV>VM<|10cNWqnWB>KN7I+N{%Qcb7Weerb`Yf+q0*;~bUB=x_^
zmn+thOZ}2$6Ki|F;o{5HR;OoBnYn;APNAAiA00b=%PM$L5_-z53H3j~H(fSPLep(_
z_0UXd!1)ma#}N+y{+5fyXu+G5nFjuUbSKP3g~Ao?`S5KQn|w-{qC{j`1N!7S^3?{u
zO2<R7{$}PJ45=Do*9jzZ7|fBG?uU_|;^Vn0Uy(&IJLh7iGl;UP%$Q7SFsHM{(;7Ok
zpMIY8u$YkK-ZPTvu3wldwIu6#IkNp0H;x{7!#*ssO1o)EHexg3!JLk@*vF+LohmG`
zZmshj2$KSt8)44Q5=-F1x$|U+@uq&4x#F>jRyEQi%<ajssnD1fVXhFEV-5)!V%4Mw
za}Jw%Ju}4wl_?SCW=wQV;7huuyUkfRzf;S<6d02r(C(3+>A2#jD!2>xm~%L<tA|7~
zATuA#>3WJ%m5>i<7{NW~91iT-sw0WVYz1>VpeLCC`(E0RFPictp6=v`izo12tb#=W
z65}bSa4I@e7SI+N3(Ilb3B)ShXo%O%L9m6h<^7GI?bB9%F>7SeewhVS%YM29<|Lqn
zDE544H`G`0-1$Rnb-1_7LR9Znp+y52a}vyH(@~EYBTHJ9C&<a%_jNf#4O7d?kjzgo
zN8P3-BLj<jFPXFOyId@nOoi|L=X4cfdHjUpu1SJk<b`l4>tGRGoif)V3(PD9bQMfx
zbCRj;fiCBzeMw%HnC(Gx+FLVN{P;*k5yp2P>|)c@dJ&AtR0XKO6*J{BD7kM(6DE)K
zU^w(UY9IkTloh(e!lSaOg{l+BL<MuYWUKbk##0sib^>j<jMcQryt-{56Ddq;FsC!G
zG@n<E<fYCEEC|Kv)R(hP7O^+u++QOu(;LiHmbIUV#QRs`F(~zqMC}+u(r^W9v}a}Q
z6{48_U`}Vy%|V*3I5V(bw;9Wp+yojn2Z2i%s3?J%6X<xVP2l+{T9<H@%YkX19#rT|
zoiImD(1q0~f1uSU`SbR(J{I+<Q&)QlpUD$Yqoo;1rrp3fW^gSFzRopjMi@+lFz1{~
z*Ta_Kde-8+r_!}Z=1?FXqB!eUEPZYuLKbSc!NrHD9V1+XW;TU6-8*IOYxg4@aMYBg
zX~|Ih?{}IW2t)ry*32T;ZPP(tC5cHGP|>TVJZgvit|yELeeI8^#)wC|>{r&$ok<ik
zGR)1;OwabZFlTOw)C)DZ7#_n4-DIJVf=~s6CO9TznA6pvM&czovQBX?p}Pk+u?`jk
z0d1I_3Idpvfi4Bdfsd>3uVfg3gD!rIIj)?=W9|hyTZ!imAI#iP7A!-8!!Bp5kw4Ff
z%cKhwXeq^s&>HCYt#L2(H~bKex)_erVo-T(CRredG8u)!w!5ZrNH~Hq=HdLd*b?Bl
ziz7=IYD+c(GQGl_sa99!<8Nk>JFeBuCgdN7l8^~$GwI3mTn*W4>Mi@Wm18FgTQj<x
z;&{PMy_2kq#b{*`pp0gBY0S^SewCh`EuI@ZXvD_oN4JX42d7yrn~HhEH0~lIQ!|iL
zWokad6{LO-%Pt3yMPJ(ln&}$oQBAf7DINihmF+<*4p-%C85I!6Kb&>(?iflf&^lnI
zaiGXYc{E4gZ?8AU(U{M^RhP%Le(XmPoB1B*bS{v?+vz!E-f46M#;q>rM@6)J0>{)1
zbGo(C1Ms#R>T4<qKVXd|S`>e)ck1ka5sIlB$a1Eg^cGbTN>2+hamju9b{EUpxKG!h
zGnE5b&UIb4>hOP(ORV0tu~&*<eg_J=PJDB!zfQcta5LzneRzsX<j3Uhmmrz0fozIe
zYri$_O3wZ}TrP{7L!m`5YeO*>qv?Ho=9_A{T$4J+Aiqd6)u!Mdo<z$K_mFh6g?n4-
z5254oq~s2@A`~+!P{hTBiWa&q2ik6lZ<&aJwvgNeGL-=8yPWpMNoKi`$N||E<0!x;
zG#rzy!gp||OZ+wOUY5X^PJuQD`OhcNN%7igu;Cwyqa?=W7H?DdF36!Cx|~!JPM?-j
zfSG3jRe8vaVr6d+hK)`D_)Yg`X%46+wr64+Smfg66QnZpZSa|gfu4$>-8gZmG4O_X
zStWB}3@~IRENb`z9S=7lF&hJ=z9yY|s?il#l0|u(so^iz)|!w7Z>)RG@Q<b}c26p5
z%QU28IxkJ(@<bJ|H9NsZfClD<%RRRU#~1LKjDd`l!bu`rk`T6BHp0q7389#cfy5Pi
z17oqw&)K9rCt=c>PQ!SzsDFr7Ss050p%sXm;zvDk;y%^o!{xV_0u*yC&<0aAZvJGD
zq(??$vA;c?h1-lMwVGwm;7qtciO+T@{-V)rCgYZTsVvqeJi{i@TbW|6KxM)OGCOK0
zT78vS@VoF#R>h*x)s_L4;hB?x{FEbJvVB<WfN?M3Gy9-8v&G*dErW}1;0vgZhLQ@^
zVlyejoURSdFx9Bd?>R2pYz5~{ZvXqSxtTl>h2n3_Wxby3Vw~4!y~^lJyg;cOjy6on
zcG0IC>WkIX!0<emT(CKwQ7?h%7br7pXwOhtc6h#%MPSqSp@5lufmA4Xx;R{>7sf5I
zXS~2AL0juSPe7T2fx_99%^@2>5(or%p-VKuuJ1%cGfM;QTSU0880UNav^7ps;TOEf
z#W*ao_ZPsJcwtU=p;ohYcwsnU?nvOpti`Ps7s8erBrk+%8OVh!rn%EtM%#NJ*2hb1
zwsWiGc?Ol~8R+277oQ9^u#x$tE;ppQl0||sO#?XxrAf%}G8g->a-cFZGSIcn4KOT3
zcVF&uZL7y3n&Y~^Ncr0;;_RlnKv>y?<@B%(uW-q7Theovq%c<l*{!wiy)NK+rOT%6
z7C^`s@cc4u6ZtZ%V_etuDwlA0bzRr7VqMp-P~f86S}C904!oKr?@h<1f@O{eI?y#S
z1Jdu~sTPB*dcl|Q8kf&rWO^_FGT#HIAXJ}6v2WzHF1a8>-$+H<$m__6pD-8VM%jed
z+qeuCJctsFNgq(!BgE@N$4+FzC;F#C^rRCvm(Q%M!W&o<3sQo1FDS-p9Aq(31ntRm
zwq-}$ypi>>;Z7_Zl7;~{ze&M$9>UE7xN-D$$J<WmU*JtH=48c)?@Dy$ji7xy=Mb%o
zvFfSW4Aj7vH@iHEHGWnemRTW41(U-qY%H0jeTz$i(!!C~xJ>>)IrZtIIhsk|1HaQ$
z%O2ipvtoBT1|%<wNg`<LEbyO9CiJ|`CFWa4sZtuy^LrHCQsXgB9ha@&D(9TQ+g(hU
z(yWa<7;{9BQLTo<=n9fXwu4HK=6Z)qCO?lRwU{P=2_R6T>t_s1#D$+nIA}L%tjL6@
znz}1#B3REmE!Xl?Mq(?$Oe{fXet|O|;;n6Ooc7^eF3Hw97JfoxLJ9KEN=*@wzbQ7#
zD1~>s*of0wEeMrqA~?^S9qxiWS5yo29w&3BVp>cFkO?9vss(W?PIcwXS$vJ#5zWq!
z-`?vIv&_P&8s=&EObRilyErAmEg(TSypKg&3{omk<VpnQfS?O)Xawwrv6sU8UDnu?
z)<TKM+z+%vX=7+zJ`7}7f50U=YA~&GXiV}zCPaVWwHwDz9XQnJ`&*r$heS0Wa*2>i
z04dJ^#l#LIZW61X^i6))DM4)r`<FT<|B|+gLVZiuPul{}hmW}2%DRdfLS%Lalzi>X
z)Dr8-&UXUIW5?3$hmW#aeTx;ggHmgwSZ0f$t<K1^GYrQGe2f*`DN%0;lUX53ramO&
zmiYSdy)pF_8WTj2Yg@&*)sr>fin!?$F1c}gQm>2%rj8&Fq`n?q929=sRt&ree3I3(
zDd%*ne9uW@;)&9&3dC_PF7c=K=2j^*W|*LyDdL6Y+1G`L&8J<?B7#)=mkmBMOwd_`
zRn36YDYoD<EZTi;JEJgd1RV<fI8DU=m{X7*L6XKp_$-UM$>LLL1obHma7+(T+ySza
z&Ly)pd~Vk}KnasMA}CK#IcP)rf-Mg;XUrE^7YjlW+hHDg8B8ECH)CQ*l#Pz@I(*UP
zc2oyKH5`*lkOig#Q!8U(w!rp@NLh`zIG2Unfib%;IYsBoF|TT9=9)ldE}s?*q@&o!
zN^tlxYjyix#{_eNn2UlUWcpJb^}TcqD%l{eG$8T$S6mjb;Yt}WnVe!ym(XP9Y@j={
zCAP+|+F0o}gF7@J^HR*|rm|wwKrhoY0AF(nht&2WWMP@0f<i=<v#h-^=tcN`__|BN
z*LGAk!!vmWC-%fOY$rN7sf+Z~oV;(i1ROLB7yB3?nYV)T@1@bfs>S=8E~2MRBhK}C
z|8Fs0M4N3G_X4r8HL<7STf5E|8Bm$5f;LL=h@AC%{+6Cjk%*nG-G^_x*!r147iB2s
zr=ZAmVK9Mk@P?QTn3;F!Qm7tupz)ZSVqUMXXgp|PGW?KwGLhBp&T$XfzGmkgb{c|F
z-NaRx%uX?{i!4mt*xh&>b+X;w^YacS(e!TbB0h6d%<Ifu&NCCo$~r8v1{Oi-3KtK7
zn0jJf?>O~m#L)LUu*9-0Vr-6w5DH*+iFtB5rDKH~1b&n5eh`W4bm6?k5s)c8AG0HG
z24pIUd3^*Jvi*EU!bL3IA{;%nihyyMVS-j<IgmdPPf#Bt`TIFha95WVIW198#%I!r
zdF?tB3pC}+A>ao<ny^H6ufp9}E2}|3Rn?zHaAu{L*S?dgkPN-Cc)rFE!aZ2H%>c1n
znI(fT1I4@!K%3i$F+QA(yWL<5?m6#ZH(GQkPoSBWVqW+E8ix)Zz->j(zQtVhHr#98
z!Dh6dZdek;EEV(Gk(1t#ns;{b{Ei*D2?`TV%<FcY>TxwP&UbGXYLPs18HSUM``w3@
zpX`tp|BLToEF8-Fx_o4Ovs(Ij6egXR*G52zcwU|cm&{v)3HX!N(AZ~>g!|9W7&xxc
z(z}$!?U>^_W8FPqe#S6|pyQ{WFmE2nqINuoKp`<_1WC&~io!7v(jLsxc2#~O!I&dr
z-jX8%nXM1UZOID?4`og6I6r~QoH*u)m^bA{+VOCkawC_y9Jy7wkqjX7KcHls)hFZl
z81IJ5UH0$7o<Sf?>_DbOf!-xZbl&g^m(Nwh7ejzd)-X@TbY^HzCjdR-6dF#~vuX;^
z1dzEHNN#Cm`q(22SGgGRwJTlXG2z1e%#_K@xRKJ?Cf6YBXI1umGIL27(=g0aT%&Lm
zGu_zNvR*bcK6SUI+>(9WypBa?YK?_`1K2U1!1XTMc}3+iqcP6{8MQijc1tu==`&f+
z8z*W~?hW$}uB;&?XGCRs1zH{TRS$hHX?BGHCKbAo6{@Mv+evLjRtnQ9(6T7?rebPA
z4a0b}ixXPg@5-3Wlt8N@pF&p;89ass-(+K1R%YZC91|s&&%;2NAM0?_-kgULj5!eI
zbwmaKP-O?W-yp$OmsT%=gD%UEfOO8G5|#N7=q~5jGUW@L%8W1Iu!{mU9Gp2+ra~ZZ
z!c6{wD^pSHz)@DiqJhGOSY(3DTnO_z#!B4&ay(44?}HD=U7`%7ApsL0=0D&oZ%SSc
zf@qw;%`V&S^o*zkWmW`wz>00Hl11~R%L7*1C7b2QJjHuT5;j&=PAazoD-h8#OZuMJ
zEl)cIG7|lHs{xtVfbK1qBZ>#I*$qIf$Yqvk(SlkkYh)Z|E|{OvvUNCU>z1vvE>Quy
zmMsQn1_SaDjrBm2==rLPyKYlzREnJ6LXowO9wc~XoC-((5H@)+=|L=i2e-OhnT}~n
zVKq228_et0t@1t<2q%~VN^7i&4T0d44KM@Dln1n4%oTTdHV(aQ$q;lqt71_IZ(Y-u
zk-($}^tj|&4KOAj!INB$!s@;S3C4T|1#@H79}GhzZcfInBn?tbG(BaP=7s^2`3&ZD
zw?y>?YAdG^!_<JD{~fH2MP-E3ttd!hZUfq}v*a0FhzF91qvdi_DwsG3j2R8+aBeGy
z@}zqE$yny4@SFY(bXdAYn{zvxbDDz8WCvs_6^-k0G~ws(x}2AF7JCMiDGcUy^~}@=
zU@~swzjenU^jRSbvW1<+8z<730f8bHGOZGWk5h4nnkpLn_6FSP@*pwFBxhs5WIhB6
z)t4GN)!9rj7uA;<vLa7#Ff;0hE*j)8LjtYm^4Zyr$5Bc@B@nq7o72waJT?;}Q2wAQ
zxGDp%*e-z+?_tOqS#$>4M{sjOm_&hg!+Jtau~#jRTVc>X(E(uf&I|WvMif&pppuyA
zRb}1Cle2ti(&?gpF7&!k3s6&%okne8F0tN;#buR})V%B5#odJl%;P}8b2(hRu`0jf
z=$Z`|<5ay_1%C55%*{X#XqKsNSx?6})l(4~p24xj!YwK)Dv9u_;F-XI;xScYz9c*7
zITu}=rif*ULw^W$xl6_e#Cz~m7Hv@oUUL32SO000yvRodkgdQ^`tWoYx2rnHpy8Oa
zfgAuuw<aHd{ZhtUntmjQz(2z!i>t`mbemZ%E|WKK{I|eChh(}z3eR+j!`5-yDLm$9
zpaowa0~@T1<E#(QvPmBAB*v!jnW}+2p=v8ooFiLkkim0UC5sASCqt7&FslPShm!(E
zUAQPbYMFn=IQ?^7+@Z?K$TBcfI?!^Z@-RxxG$hxLkGB{7)#thBVXQkd12cgGB}xn>
z3fRjC&u0Y=Tbv!!svZ!Mi5tk&*XD8a5H9XU5H&kt2rqDni5raV92%1~ki!?m!gAS4
zbyIud`|I#Rmm?_C8(+X-E{5U_Hr4-~UV#_w`UabUnVx|*q+BVGT(N)){lzZVxuUR$
z(U^6CR+VYchwlyGB~EFuDU(A4Ad@Z3Q`ur}72xyVY>m5JVPn43WkFXjtPCU*FR<`z
zf#Yo|R-|esU*;sds%A0^$z%+4pUGD!P~yGZ<%%1Foo3d%U!;6OCKn}hL0+-}uW<3#
zD-v4-#+(ZD3=ibsd71K0<JPutN8pt%i#eY{E~7DBLNQ>Dr;3bqC-ACW1<WTv%#c7)
zGV&Bw4y+v^4o3WY{sCU?;=OTkK-LSX#Adz(awTcV8xH2kO?jg^4X<$ts~YFWRY5a<
z!n`gRz(x;@bq(RQEY!JRfI*li!JI#Dhmgj89K!4OCVx(NOqf8YM7byrAMs6bpkQ4d
zyum5-G^N}xi_DA&WV7cd%IQCYH@fT|btCFDAaf(I*g|1+(hs^RyvgON*A`k!JSIRO
zsi_CD+-%hYY}^nQim+MW%`Q?2Lb;<RJmx&0<3SVIFKZfmHS0_6KW}k49t_<0Wk@DF
zpc6TNJAx!uSq*rri|D#L%#ci7fTDBrx+A}bgatN-!}Nv@3C2_fbQ<NR>FWBxw>yRO
zt48zY%K?AC^x+^zHimcX&4-g<%t1gg&*F(Jj>wa;b?==nH?j7RCrIWG;Pq2Tx(>Xp
z=D_R0yI8bELvU>xS0gfi0DWo`rH3Tje78$P+=3@0OS}2U^tsCsPjQKE8Nz#9F8Q<|
zs)S_v06KjuJUMOm3m@XWE~l@JlgQ9a96*Tyn<_*7Zg`(dVqnKLjanMB5Re5`HJElB
z(a_uXyI4?GLvI<Ii3vF4SFF695SV|!$-}NG<}DGJe~?yCF(%0LAk8S=^nw&V<Pv_d
z3Og1>Fp&WTg{IBu5$pQHtd&K2+-U&NWM%*5ysmm4#?s|jKC^sH!^45ZA7SYhrO5i-
z>M$-KF|`5hCB@OrxEQ^53LkaZLu-dYYeXg{pbx3;iu&3W7B_s%#eq>g7*b#nh)D?O
z07io#5L+7-S0Q`0*jC`<E(fp%P<B-rjClx*@r}vT^@%-*Z<HRazaz8V$jm8;GLgR;
zKIszNnNIo1z|12+CS|SwKIkBSZ+BZ*51a5QCu7!FP@lzPP60BZ6D&mvy4sLw>N4j~
zyZ8$Q*USXSqydybnpjA3x;=cx<~Cc{TM~^K1UQ(VDe%Sb;3M4+eAX$7RaG%O0b~{d
zI>QVU&FUzWWfPbI`JBrcHjVx{kIk$CsErLzniSIP1VGh{Uts0-oF}a)i)jW>*@w-P
zNBb<tVbI>jL%|Coab%`rh?+<|z&ct`AWWI@Qz3)d2<CNrC&hop;-br;VeloF;BzUC
z#5hbffRe5=9Q?AfqLd-TUwXq~xZRYM5AbEyCfFluz)CKY5Sa6a!l&Kv#U1;~-sBH8
z98(WalrKwnoP=_sz*k-Fj)^u|;V|O>M=*6xPja3&q)qxY7WIP`m)?*coM17z0NJ3~
z5zENXhP!$j`;Qa&x{D23F||1l$wUI=IaKn6pyeumGvOuq2CHLHGGoh2QkKJf1N30#
zSBTh{;hU_9MZ10VViQozFfgy{F;|1FMjC9<lvVLk?`2IS4Ez=gwkTf`?^RN3F_~dt
zUN@AYl`KU0KH15unb$H*DA(k-S(Q8N%y5P2D;)Wnjq>T@n3jNSR%($P#z`tWEoT-S
z+7U~gmIT8*1Pjy<p;9b|@LNMy3(PJ!SgeM8O%{x)2Nv`KU?bqv;iFkr_ipI*5}0Sv
zHteTH<HCf?TmuWbHz!-ea@H3os<4D|Lmg#xd-IyB9tDf6l0|t|WuZ*H5GE*a*6(Uq
zI{*4z&13}&R6CsEUlt~%u#@4!1&2+%ipyDHF-3v%<+uheI{%mB8fGtW)^9)D_5AC%
zpNR|>YRk`)O!@iUSgpM*KTpc#=XXb)kV3DHzZ2gl*$rH@a$*S85}5j6K_7-m-)rFi
z6I#oAE;!gh@~v`F7jc-_03{*SW2w9q9sSPPIQ3HTYgBc@<9${<8|Zt%y%rpdRLinj
z3%SgCu%KgW=YnA%85|n?O1wcbe6-iG6ZK+N)FO&CL8G`%EjUvoEKtE?Hm0mA&Bf7A
z5$4mvHcH^$tdRwINKMST0-vc87IbbzW?P40kg9gq`?7e8z?va%%Sg<Yu%Ju2hMJO(
zsQFYhyP1d^n!qJ2)`G%|kW@gg2A0_q7G}(ZIypK>RS|wEYqA%FI%NUOw6IWF;yjtS
zDem6k)x&zB!vk5hJu7jp5XA%y3l&+dW;2K++t-5^9GsKdtQJ8sR|Cqv|HSq?A)H@n
zje6k`WdQ2BorkgtmSYVIc3>4S6EV>9n`vXsyetHLE^|2xP>t+SU?YK98WyxCo~g$X
zH*wPs+ws7M%NHCx@rv@E2^@1b(9>*c!@$lvtSN*mT+HL??Hz>6JPr#~!ImYm5O<7N
z5F0GtrjWOS7-NFRJPzcIa7Yr}))cp!CS2v>jbzIM3}DRQKzl^#Fw9POA9%x)aZgp<
z!G2c5g22J@<gF6M1P%+jSacGq^*iIX-;~^t*Rn<yL4M<f$)GW31Ko;Zuoja;*Skop
z4gF>kM315~q_(tE<;HGsu`2BAMsvBb?<XH8+dmgX*nkT+E;s~6Dq8Ur6q7M5=&(e6
z?AME;c#K^wkG9zbcM@GD2~5*K8`5Mvr)&VuCz>9^>R1G9Od~(bn9SLL3S60Su9k7g
z!eMDl9~h^7gX?pxaMy2QjVz*QM*qr64ii1lWir)Npe-OH-3MJxQj1~@0%o!Y(xOxW
zCQQ@jXzWGlcmRi8Y{B}%vJ5QqJuFb|x4GrA8xOtF*oUJoXP8ARr^aQbhXqP)OG~w}
zBENc_4jgxRc=M)k0g9O($ci(}YxG*^INj{>VXfvsN?fLTSkRq@Rg?je0Cjjup7#ly
zbTPs0I0<qBm<@u?tvm&#x?ynI<rJwVv{YzJ0<kb-<{(EJu4WSSB3O3Wt7?}&V=^xU
z1%hfxn&ifUBXCnJmOJZWP`EQf<%BU|#DdQ4Mv*c`PoEanXykA9ARZ4BSY@3oa=V0~
zaw0}RriY+2HTP#*GNf^<i+xuub1NICxNSkV`l*2}eiED$|Hy)_wYcDgnJ*H8X&va}
z2y<F4eN8cp!~AY{2^VFkiVHZ*)_|h$W*9nA4Zq?hRJk_foI0X^O5jPX+P1}mXWtR)
zs0R~6khfu=_)j7)f~T;)JFTuPATlQeg|Vv30mLmxy&l}bDp(X5T2>k;Xy$&PcoAFW
zYA8m_=CPPw+mV}z(I#WFs%Knlh?Ph2IE4=DU@<n-zB4^9g?S)K7eag*aUr^Ub0H)c
zQ$A1#q(EYqjavse)S%D8Em{!j=<$lkOzA+uhDq&}G>K(?H-S4{Hb+w-R|brU9LV7+
zQTrr55*~%|rZ`R1G{TVO?}m533ZB^;C?<|xnhM(_4PjPzDMr+E9A^dVUJv2hR@8_U
zirz)6;~f@u-L}GIr_fa#lRS`}+3t^{^~NFjRrXX4Ss#n)LiKKC>=l5Rvw^HklP7@m
zUjQs|Z)(A#Oh!6cm@$(`VwI~VkxZTB*O5q0K$$&(3_EkJEfPv?uy~7dFo!zc44>2{
zYH^=pWK8TjK}ZAe64-JvFsq_tc}(U}Ad7k!U|N9rj^u<PIOi53<HUjqjM);hVVP_>
z`Vn-2$thNxa!+;1X<F61mxVCT!h$ZXDMiz;L$xP%x=BQB-B(8tJl$oBungW+i(__%
z1zna`dhhAgBO88{o{W3^8IdR987_GUOEt}+n7M(DpQ6Pyj5oz)f2K>kx7Gracud@Y
zQZK@%sdHTe|3`-kp5<hpi+8DqCj-G8477Glb13ix&P=&@4okJ*PoF;JB9G4W3v^h}
z9Kf^jW@FvoPT;vNK?&nXL4snE1xjUSX4qjLp!ohgo7-tK6HnnWodS84c?wpJem&pC
ztE}O4Ek?b5l0Iq95gd)hlk@@>X;F+)?NlNb(<m(HieRLI_EY?uRryNZb6s#2`Mo#|
zWMhn+65hgq#|vFN{Rz6NNp}>+ObiqmDyJq-#<Ey3NAmO{R&mXK2d~e78pJR?1DX0k
z+{m&~yqLAP&SIfV*eDE46hBLQuQ~IFc7|-E5_@=4*89E0<qWe+FP4NbVFSevavlFs
zr#<MvOI=oOC3}FxVu}XibF$U%0K9B(o)g4kPKE_t=~rMvSydb<Ueffp{5HJYB_v);
zv62U7iUzjWjJBPydD3loh0EseU^z;3=5C<7UEa;$l`fXsl&z7e8^~fd(Pt=E>{Tpw
z4;VQlBy%||=<=>9?0wSSd9}-~vm=tgtgZ8_oEgZps>##hHLS-jn%=T!#jnv5m!n0M
zvR>=*#8p$QW~IHZls-qEQ7?!RaaO<HCWvM;L68uc#eq)!0x$HY2N6zCdxOiVUq>{p
z0hzRcZX-2<;E5<N?HgI5MTvB&pM+qTrGdhe#X_h~kjP?;H@So-YfGy%A~QA6l`Uq?
zb)VUrU9N0x8b04=_S>{koeO1m&tM41p(l;=x41ka=XlMQk(isICi*+V=<i$iGWt8p
zM1OyGAyXh$U7C;noUZ1Fx3Mm5JM(Bq%>WsROzp5xYW-^uhT`knZIWmfro2RBUI$uu
zB{DZv!uJlBV`CaWT&`&E4=5sUCiL&I(F^Z%3HI0w3z%Rt?ZbkuOY3O9@xyT&)1GI?
zQKVXNV-S{|qUVKoxr9hNCOY#vcqW8kM?J?oBK|n^+CIG7WlN|dGSPs{1VKkjzO$!?
z^XuU~F2+lBn~(%!{s#(lrG2z%B)PYICD}UP>+&%t2+ET(05a191vv}1<S5S81~~`-
z-sckJth>({Q08x-&2UBXnV&e*;1}x2d%w$*r%2JsKdOLavIa8PYD*+_I_v|ihD8B^
zQw?T5DfU4!VM}xmSh<9y(eNRc<Drf~f)JUjfpbIIuq=*^Q!!adg@e?8A7%|~dX*}|
zy=7eHXrMJwAkz{*ZAb0#5I*AaFx0Sf5g;=*EKo_4p`}U&=#jhhqb%K`m}qLJ7Qr%i
z1DPV7mT>I)4gF0v>VC|{g4S<T&tVCR2^?tG(Y;9Piu6IU=6B%ZHfJp_wQ^@u4vi@s
z==Mtc6Z!ClaUhHUHMr=M51(+6nzv@lXw2b2A2jd2_tGF07VRfl<W0MZ1}He@Yapwl
zFhx$>b1ch(Pq_q{Yo^j^JSJ<PkJ=dz#8nwI=(}7*pLY4E^iH*k3~<cUz<Wm_EFetL
zNTm^FpBsFJ#ak4!TLm5p5}3^aHM(pj!>4rS)CnxtkahX;&sAf`VH(Q#Sys)0701l0
zG(`k6J}k`8q_l2VdbY@@F3i<ax;|YF;0fahOEH@R{3U$OB}_-Sy8P8v2y;NN7oVj<
zllSinPGS2hR<-Pn`WF=TomorY9|`;Xi#D6xbUPohn2~`F*CGd5+l%4|i*?{jE}6_)
zUNgpImIg9pJwJ`(FlnrM;reRaP?1vjvdd;b5GosE!ee#?GVn_AbTk8+p?7W@zT$GC
zO$*aAEK@B|K)%SIq3NRJ(14Byou(%oM)<1B1~G-9!zh7y8R#6Mrx&Z?h0DAmOc8tu
zUvn|EjQc?WktrHzvo!l<vO`mjWBod7U{Qo+<MJ^y^EL2UQ7m*Gi8c8Rr?aBAZhACX
zlK-=yn{!K#j4((&@SACzdZDBl{HBY~TmLu~v6-NOHii6vZtWk-=B;nJYzj3)zcZLj
z&OpKXT$!<+gCh?0m348{ecR>vtf^kk!!q;2!c3m*uX0?;!R^%7jNUVg4w=0j%|@9B
zW9o**QpK3|Vx(6xyXfGQn<~aKU`*bySZY$i<=j-Xui{m%DItORMT^aAT9Znh1m<&C
ztZi^_HpP=3r2ar0q>DB>(RHzIaL-6!4u?fue2^=DEDVbgMn{nJVaY|QDFv2B2~6BT
zN)^q<n}wTzv1gUHlG9i&Ty!w8tZdV=5N3Ely(Gc4j}`qG;Jb*$yAxa!2op3c>ab$D
zBUS8(vLm&lzTcIl+Hg(R_PXYgnTug@#xQnINEmeBZZ6MkbxufvG0(!HK3!|WF5=0%
z2Mf38sdI|y3<IWDSkz&}9K~Kc4#$HC?#T*Rq!!F%eF}*w7HC(fYFaswoQ~7eapc3j
zTt2*AM+}2AX~JSLh94y3me`UmUbOJ=r`z@ljY$y}wWX^zEH$XTaa?`#hC}R8xVOt<
z&*5aYLK8BRAdnI=|AP;N&H#1zCERz>!LBT1l#GZ>jIdbM3dH`+C5yZDZ%UX<iLj`v
zb#X5EmOQ^EujD+(OIf%@AbIj$op3gTGWo%xF22a;P!DvxA=+JfPlgAw3KpTun%ryw
zm)Q*#i>3T%@HOGVHv8Q41uwyv&0tYG=|nx(>P1c2eFP6>aTfXDB7+^nFk1l$$_}y+
zE>(LSE@MGEAu?nfCLmbUrf5~j0^cDc6<A2$3WXJrz~!uiMX!ccV8kGW*$NhQ4jy-5
zvEBJC;b=BeuLW1QT=U#!o`qpT0y;Fayn?N9nhHCi;d0SU{DcaJISA;vH8)~-n{X8i
zv<Xer_hJY<<|3eVrO6C$#RKiAOt9@|i55{N125tPiWvpyATCbm@I8QQUCfZWaUcF<
z0`hf>x@xkn*FxO-6&afd#j#0k9oMrq7RAukZ5<|2%tSz^RxU#$-<arU18!igED~{5
zNuL}f^A4~noI)d%<<~dv!W1SDCK@34PJk&1tUZ48&fyt^=>o__tSxbnuVps%F)aHI
zJI{G16%{OwIR(fvtXm?=h`osww1~M_FF%RR+ySLy5@)M7;o#mJlM;*>0>}ZZHd{~7
z<kZ6~-=Zqg)+jzvn2LI2Q5RWEA;?t38%JFOEjwf5%u#b3BMrsH9fy8brR`72A9M~M
z#!)kALoiI?IBRG@shmSp`-6oHrX5(+(K2HpEFRlI2X1D4ETUx=^|cC?i3d=Ht7o#&
z?8AQ76Mlb=6dD7q(sJ-SO+^r$z)4ojVn9Y^WZP02GZIkHtQZg#_UzSH!D*MHy*9uq
z@tBl=%$J<A+Kt=e1eRH(MVFx2>y<!EK|l|9H4`Jx9X-pk_j2xNRs<6c&{93(CEJRo
zIl;2W9y)9XaV%HVhE*qbQ~-4}kW{7yndt`>brSScFz|KNa^|JX6see%c+rYG+i<Ik
zH9Zhey2Vv$WGjW)3dmv2*L05~;n?Go-x8;|i^Ez|C!WD%GJ~SKJjoRhbH?qvc9%<-
z%x^%RM6UZ4!~IWkc|fY#Xfpx+C({;Co>vw|>+lqpEnv$0Gl9oc1B*Jdlnby&+6%aY
zg<6!dR0Qjze0R4;Mr@HTN6uYT(?DA;_p^?IXM)KT11SD3+KLrdLfWw%7pJgn$7&cR
z3ZNyEt-i-;0MK=bBv#e&BNFojnBAof+1A$I8+U0V+tL=$B4tNak5F#nPjIJ;Ls;^8
zvrtS1u&9fnt7l2K)%>ZZ*g0h7UC2s2aSu-qgCwR0DA~z@95)y3jh!51$IZpG8<xsN
zgXFO158?=hEcTeiPBEnjl~B3ae^HlX)<tFFA!Zg502f2uI_9I%nE-%xFoUVnf|OOb
zY4?^B$9=|RHc+@xr9e5i6^@fWY_MpH!t46(Ap<;j{x9mfoNgEkR}PJvzP|-qE~is|
zOUnUqgFip`+{V{jJ-LFB)wDT;b1s+J+!dIC;~sxnY~^vO+r9@lDs?~o6Fk-Ba!;Ga
zT7u{H{zdA#QG}J^sL|s+qgWD^Kb_UEsCqR_3oQb2vp$_Ft#kVu2XEg$nY8!}m(vU1
zt)jaH81A^whIu5bGdy#5VIB#>t@X5y@`nsD`aH{J9aW!M1?rw>FX{@<T*Xg>{4XIg
zZ#~E5o>i9+F(9|qQ;yR_ZmW}!vd!|jtbj!Y(RAM23^aG$Q<5)B^@*IR&vOY=S5Ss#
z*iwIj5<HWW<WL-S0$FAm#W=C-fLOE7cX6pI&nN>j_uiM2nn?H6gcs~lQd6RF?>)us
zYRf~gQ4n5elhNHl?FoW&b3H|dJm{(NvIEeQrL8&vj_CzY{|a8j8d(s}GooGu)A6~f
z9+kRsW-5~`j?+`ZaFQ6jn6<lo=hw?Z5I5$NIWg%$69;0fC)&NlCcJLZ);59Uo_ji2
zxZg>BnaqNIsY_(PqJ=6C$^G~AkxP9~V*7@d**q}Qw`7IJP587kntRNW@nGNqZp|-u
z*(fZ!*BF`m@KKX1W-15zE_0a>Mu?Hw6N`Xe!D?CZQA``|YZSvB`Zh_bLwygYi~4}X
zKa`|;<#|a`nM84SKk6!{a2klakYG(*e&L$Kt6Yve3r?^JG`ISbb4(3A1KCm>VFVUl
z?Xs$k?Liqd?%=0=*Fdf)e8&wR(k2dLOSf@gz-wF#)@j_0C3tT2Cxa_jiiHdu_(9;c
zE@7qW(k{Z|mVa_ni3KRr{vq~aBv*L7OOVINEL6he)_*cWswkPI*#d8HNkP~!Jxf^T
z0YD`lHdB>ATH{-X8x_Va-pJ~Bc6*9b4yh!Mc?2lJGG(rJn;!ZE-o%>Lj1VoB6}!w3
zpU7g)0SX%$=CiK{L;L~W>=O8xI`v(nGWh^0P;Gv~TU-{DwN=ZE1axK^<_QX8rWK?E
zZ-^$-Tb%+xHB$<+sLW1~51@8}o_Lnuw%Y)zgke&FMcs-rmD3Kl9eBHqg=iONsTIU5
z1Z2pT-gQuhn#Hg9ZT)y0c8<z$&^uVo)}E<ZCy=QN7Ioo}-nEw1o+Wpz*0xym@J`mu
zrh}%u50(&_sDN%{Z5b|6P{F%g(tb{rz9fR#3drIWezRnV*TmK;-tlgiFnxw1yM)9n
z1$+jNTe=jnu^bQmNO)~R-g{gu`wWEc7dJpMTLEoarN1H$Kp)=A(k*H&r%GpBrY@jM
zeJ&VElkN6k$juV)K9_h8A*ecA102&8P`rm35W9g)d^HuV*85!+d<Cas4w1<UC=P%T
z>c$Cirh&|A`10it{0YU?2UrKo;Z>7z{#szBD4=UlKH9oy_<hLb8caJZyBX8(FDM|5
zJ9`RVlpuL4e0b*p=^PN#576feV!aLe9X-)ZuB?x^q%JdDeFiKh9w4K(NK=IO6Ps)j
z_^69fTT6Y!m`pi9o2hBqA4ZDt$K)u)1Dy8<A7f2+H%p^R08<kbQz4oa3;aR6;fqI8
zd=B`yi$zk$wUtF>rULT1>gH(<aByqjci<B)hm6z6P7=Xf28-0wWTskIpG6J;hELi=
z1*fhXGdS}ckXK~tHk2o%w4y)dvN26>V`O0FJt!N}I@g%^sZL>jdQS}LA}q5Y(AH5*
z@c|AQ_2Dxv>44gtp#o&C12P<o-p^$IqI4z2YU&)3e!Rd5;j^xO;Z$#{Rvxn-EY28M
zIkBq-KIgKxR`YQ5GkfdjDg2q)f^}h%%BFt7rJBL8pJ&0C(}41eb;B?yT=PYjWVZFF
zjY72MUu%3kIh#^3fhF*zz4Gz0sLX*t4@f)NXo&wev)r8VCVbiDULb}tU5sGNfIz!=
z$;mk-o?Y0^=hnZ%8dywGvvj5ma+n-}qYrupn{H;6Nd(ns247{Bj#})SronDyP$oe@
z`S+bEk7Lc9vR`xAHETz*nvU83q8r4yl#L(>kU{yt%IdB9B_$!@>n=$pM${(mbbKa8
zAcMQs{gb0YzTpyXb@DE=qeA|NPq#_co%By6k=CGv;j?eLtdy!!z5*!oB+wymc+~N&
zsx%e8<zlDSZ66a%=1QP=L+KzE+Dg;(+fJW<%IU5_nI?grlx&zjTLCN!jA!;aJSmmY
z{~|0iAneoiV3RsX@uds1EcH<qZl|G|5>c4*V4q(3hG;k%>rH<v^`iunRr4&@qE%#C
zq&<(#L<h!?+=j(H_{dx)y$^-p?1jywC$qe223S*54&1hK>_mZN0L#VvXd?h|6_!|)
zJEp5b5~Mae5y!*^`}EV0&%rjEDh1nY!iD=B9>u!6?gW$B3-%SOHO0xY;e|;U;E8n+
zOWsMfW)_P13{W5@Y7HaT4jnt8elA=z9>o?!Da6T8t+UKnxVy5N&$L*+_G968st_|K
z?9*0~?q*a){*89uZ?B8p0q(|nTcp+u-H`=6CQjHlQ#C)nz|A6unj_WqJy?@Hn;%~x
ziU}1^$;(aFT%P}2{aQ}bfqSx+7L7MMVq4EhV=e~TM#YDa4fDrN-?FM>O?a~#VWj^B
z?&Y$L5}Z_PDmGIwWbbV`hlgJdjsw}FNm;{-S*!Cw{cMoPL=O9OdOZ;<RCw9=bsVaO
zFu3<V2M<vJr~{{r#heW+FH2FUDKPK5&%q<9<h#o=VBU`eX1kS-Z29f6*c>i#5m?pw
ztihO?VIOr`XG;uZxx%F`*R#4@AzQ5QfPFJL{?_ae-=r_Rya&1%NmjFg5tca^_UU?7
zeFrAog%4)A7U>tmy)01|J_JQQa;8i!G>qf0QT*jH{?Z!`!)<t|%d=(0G&Dsbb2;qe
z{FGQCjkCB=8c8#d{A6&M%i2>2Iz?3mV@`*C+HYyAz<cu$ra<KrfoWjLh;q4$rP9s>
z@T)PIuz~DHB!z7SX*2Yrp0M?=a9RtwtU(@$85`)KE^q?$dtM3+mkV1%Fo0mp+rYbs
z?65y|T+-<4!Gu>iJ=Vo;{Tvq4HSE*9gcY1}w?zIHnlyfAMH9sDXC*8;gROY$N-~(<
z0hPP7XbpG#P%H~Y`Iq?ZIO-&Dt;=CsV-*{)nfhTLwJ8(jwv0)kJ11M#0As<|yR3N=
zjdvN7=^XayO1a4((#fk~Jj8M~Va>n|tb#?QT;+^Y6Essh?9*}3s(Ribh^I-jUEav*
zSj186%7ruVOb0>B*x-WtlB}&+@Nyr`dRZiPrg^zW5zHmA&#ICc!velM;Sno=$FPEX
zT*+Jz#AFits8!5J{_2UN_9j-zCW>rBDeFy+-2-%p<y(9;$Jap?ebaQ&H66owVy{EA
z+ZNb%Wueev7HLuQS;yU*tp+;64t{}oYc%$v6ib+ovRIqK?K(0qf@B5=`m{NIB27tg
z+~w#rGacpmCQi`iO(o1kOCg+?1HzLCTEdo<l)N{)>{!O?=qhODcPPi3WG~do-Nu`;
ztx%`-&1A-OntN>8YR`bvEZBBTr%eZsMrXbTau9N9G&y2<*~OBmPRV5_D?gr`Q4WT2
z*_oFRH<643wR=HxLu}=6*2R=C#@MFHVCIH;S2_DyEFy^G6jslxt89?S{0_7etIB?C
z=frPRHjEMJTU|B@4MW8-W=LjlATy)5n*cUCBZW&dLUye+*1#g~U%O4^ftkl)-^^s<
zXMLmrH|yJ7qCvZgYh*U_C(@BsI@|_H51zy-*-ZDDa#{*NW`3YxS<x{ZcoAA$Nn=Iq
z5U11+YJwv?g>|tY9I|pvtA#OFM0MmbGfef6<T^b)#<UdNvG<Y33Q^22L7Vo(;MEyt
zJhhu>>4ESCWJ<8*V#-!p)>ZIKIYGNNCcsys0P7JN34VtTD`3%lnM<VSaF}@lC0%E`
zkPgOU@sM^_#M3(Li}MG%tW9t}*Hlq1lUa~`QBl$)XYhnxFM+;`ePL5A#n8-iu}{}w
zRJ;LAZaM4lPFBUDKg~uJLS_OC+LAWC4Zm@l_@X95skvLB%dsyJ)M;zLVm1pDc#jza
zpF#wYOMs-FO@Y0sc%RPLn#fy_MOHT44P88yX_PR8%A^)_KIhuG^{BZ+eQ|#PT;c%L
zE#g^BCa|Cbx;Pi(W>5Kc!x-tqAaz;wQ$}v&p_$fVU#V#tO|K?w*mzDBP16#MnJWqb
zXdOMnrWZv9u;p^zR)^ylkhv`A;l@A4Yf>)h5NlLyRp(qDZUU1UOhIOX3kpHy0%<E_
z3>k@QB@1rhsV;H&n)qBEmI*EB@ypFwEGDU+&N^5$3DnGQtVmS<@V?q!xvaIO#_&9Y
z^*JBCawU08jzN!VX<BF}#$81qCFt@$(<x*(We{l&nt3#6m(ICwidXtsF1vKKFPLMO
zel}U}!pQFiJ-w#SdYieQ6JO`-pTjCx%xGv!h-|r)l@MmxAp0syNui9g=eoo|D#$Hz
zT@^phF|{$I$UxcmhVq%huv{D=ox<~6JUI=cT!bn}=GGtsi3$d@K5|D9PByU%2cGY;
z{*1MVRnW|@QN3*hNxbR%>m6?!Ua*(j#srsXH}>gbH$~Z{SI|-4?@(8?G?HG(T38g<
z=b)q}wct#-F*(F5CeW+VGcR(vB36^_a|367hR)PN--I~pPx>2v2rp*&7HvOuofw43
zyczp+tx;jZql%=%OI!@qs%eo5iy1TaQI&G;xCg%j-li~CU&<ma>Tjye2f|~v3=-Rq
z(?tBwQ_=wogtp*iE>;U+D5Jp$$dnoTbYGR^wnl<gNs|3?7U$eol>=fv40@(=RIVzu
zj%84)G#FmtVh@|?VT+i|c0otmgf1ma`au`%kXPDVTnqjc0%X<-O6k<mUL1)!+DagL
zjaRWc7G>zx^cp2O%xFQUPtltSk|xem5_`g{UG7V*hsK!9Zb46Yah)oY>@_ZrTkX2f
znOwhS&LSng2kkz*c8{`13Xa(;=#w_Z9squ?vAli!aYvpYE=}qQp|5xOqy!;_8u6I5
zf<9@{W$oZ3pf|WAuj(A&PG<DaZ&3285D*YfvRI4WAb~f!eAdbU1LHC21eufdnN43;
zTfK?3sA*>0N$S+kS77}XIlyvj#OG<l3&-NvelsgzGf%a=%TAz}Pl8-OBb#|BymVp7
zzs1G%vmi-VuuLeyk5(*s#7>++t52AFa+SZ;#dgj#T$PZRIf71>DiZ!9qp=sl+g$Px
zcI^HVnAs)BQacw6RSi^wU-_AFl5cmhp(j|>oL&RXL=qf!D)T6G;xU>{?{IM@rcg5|
zNT!7#uSp*|E2|B9KHllF*t3>$35tmz$Xj5hO<X0+wmAgk+k|&H*~VrDPXjKKKG2?H
zEXq58Sy)}dBv~2W?Q*u;7ylLIFh>Mxcg++FWCc&g!>SG!do{@pd5=r7%-RmAkjCT^
zoLDTmYU8wx-_!9>{QY}fqG;2cz$`LTOzfjpm~x}#I9iY5&8R6B1X7H=k9DzWg_+XC
zna5`GiENgv>eAkl_(x;#gI;ua^)S5OC2ekf`*Jdvp@O`Z97p@4-t7Y}W<~|$d#Tdx
zgH;L6_N3zKB=%e&L!Z}f`@<AIwC4%VYGF)WLAgUS1-P(?c|HPsnDyJs85LO(%yfZT
z$;n7zL;NQWcK8Sjzsll~A_Je^&U_YR{pp(Yvwk~<PUD!LBCCjS^5LT{(E>x2dkK-r
zENB@*w|&F@{aKcEnO6Ili`l6$RE@I{kI5=1@?UJZ71w=?1bRU?kl~7tyX;xD&AbI<
zCas{QRyQM87sGslmD%$tyh;KyR**qB4A6XC^#?<wTxrN2armT5SXm(`tH1!poD>w&
zEJT;ErKsEWCB=;jTz$&L9IFdlm7tlJg1o*`J&V@~w&2q)OR~N`2Jx7TV&6;^v0W;R
zm&4+KfzP-kKc|_*gvzWGbc~zIV3m6`@S<(_tczVfwZ3)&%zP8H8yQSj#n<>bm)&TJ
zF`T1n{QN%Mi!u;8Z8g+aylU_Tm*|>$pFVr?K+HI?PnR`U4LA_)a@ZV=1EC^dml%A}
z<(#pap->dT+!N%HmaVRdG4~}Gk93+bSF+^(jUK^C{6N*ut3dvjU3MT-Fd_rSyc1+R
z7R`mpFz}{oI)|^gm}yofNl6A1PEbNLw|S#etzW7QzDYAv;H#{g1tIa2Goo4y^HGp1
zkE5kjX>{hq#p*xVoA@=CQ*;8QE>#^eb5hWHDHPM__40L>ExWEbC%<I=n+&qSz#A&I
zv2U=X{T7n&ZAuIQFnt8A#^RZg#@LSR_prFk-xBu&zUku1)SgErY$lT+D-GlJE9o|l
zis<_Tzo|H@;ae`xV=f6$24ngNql1E+d*bj26ZrNXI4F$9tPzwpE3yjW-YtFyGfNIf
zPc2WOMr5vtrHX74eu-k3Wx>16CMiIsk66;CUXp~3m6elf18B5^p*SL7o~7D^I}^RG
zOi)Y^v7}oSXsR@hv1)?Y{vm=z7H1J^EX}9RATd+Kk`DEp3Zme^5m{2vIB-O7Y5|V=
z3`5V?_BAXmxoqqL(o<uSl^#|ym=6LqL;75KPlCit(`~qr<vY{oW?-20VM*uDXcIf=
zwYEdmM|{ze!xL-V5hq|w`mm%Qo?-?`T&d>3>%m=J9-i8qltyF*h9w=Yr=<Yn$lvfn
zxEo8fXagxND2>8|3rke$P|lDg<5nc6zQ8?}TnwWri8qF2J_UMw3iFb@v9KHN>2gzR
zhA$x)^CB#1Pnim^R}QQl*}`B6n(tx{)u%GtYsuk^XCk_6X?F!Ob0RFw6emxKBQu3o
z5D7@QnC0KJ(+{74V{(HfZ3~wZS(8}Vy;-zHaK0`#RtlKihfal@&D;<UNf&>D`#L>Q
z)mAtoGUovbrm4qrOvRZ~Cy+S>v(b{ZqS5z~qvF6GgAbRm8W#2Q<|!C8@Jx$9M^!Op
zi{%4wsmuMZ%>aj)POAqj&D4*hUPZS>C9EFE8tmCP>Ipj2CD2n)Jl2(^``{%9OSjfc
z$XU7%S(+(KHthRb%_cn5X2+Rch9SY2^I)m6yCh3ClL$9uJ4yY)i4I)GYMd8dn~W%?
zNgySyXA8mQtYl3o<SqvoF^vKp6WJlNIC%$)Qm<e|EK0B{2G(jUW>cV5nJ<~b0-?~`
zhK9?tSzUpp;h0fDppGw-+vB-VR<sX>$R#0@j*_V2swD>>;T&%WW;7;NAY)@v&Mux_
z@i6SSk!DdGFVUDOVM#~B+Ht7Mq>@GlBRSMSeXWbZkwwwvgl1SKN1ziZ*S;V&he);f
zUhm?URQE$LAd@02O(_yMk(`cGxPis*S&@JQW<~_Eq4S(6(zv|Q#W|{^U&&gSKY-G3
zwxX=MU0q$y1Y+>VLeL&h?k1kvO>ul9zt^K#Ba6nZmH@>+$%cP+CYSjT$Urv6Y-lX+
zV_a^TO)#i1h4-=KhA{O;p_J(+mow5t<zX&mIzW4Fel$Qg0CANLy6k{;lLjOlvm7kx
z+70qpu$8BUb+T}n1zL0zmOLNEVRnPkrU(8I$0#1%n@vxlF`of_t^!STIE3RahgTit
zbjYEX6H7W4U)yaU?9ry~IDng335${t$F7Eq940wH1(BAem{XKfkRj*=SUNju_OUzU
zq>~j|m$5XUGa~{$>1IA$d^X|)PP@2-sKRunU4_g%2&l$GXR>WL7|R5)K}>pP+Uhs`
zAcbXC$RdYQ*^W~uf;khGbT-dK>JZAR131gtSY-32Q$;9LrbQrUX+o5HWCNKrWKGkm
z%c)(-ygLD8f&<zEgSeq<|L~7h%fqcK)FOwLDI_ccF`)rnW7@UoVl;gUBfy%=2Q6)b
zWk4n|AcMD@%<71T@OBrm)3Rfo$#eI_tXp0;+pX*S9e5IJVNp7>i$QWIj5!RJbmF2+
z!Fg(RnJfq&2md|A#vv+Y@~7~87KAWm0T~6%n1+vwupAU=S^{^t7zHK<wmcrQ5TM*g
z7@b+<oK>&HX)C!%sfw@Vdf%qIvz5Y_oM34tKa;}rUP-l(9nc3IR`rg(SG6RL`3-2_
zHy2Og!9~4l(&X&2mKI4->l&@180Ie^m#I8~L^eqDUBZP^hni%2BmxT4^suN+vSUcX
zt2=G1&xw)dZ%K!D;w0wbn2~^7v|`{IJ!TJti-2r<5VCNa-oLtlcn+6o3dlh&4o>1p
z-;vApuARkH9QPfQol0cbNd2LDZ-*|aoFb<-!!R)c<*}-qR;uk#kw{?SyPNq`C4d<V
zC^}vuL5ciL;T&!w-CgQ(|EH0wOmLa2fOhtwcob4>jKr_#m=1BAcLEzOG4i2~eyV~s
zGa~aA&{2n&p=|PBUCwa_cGUEa1h!ZQiyS?{sj%!cY$h`xYbYPi7Ms*)ES?uhe07f1
zuo$>d6C=-pGKB$MjUsiMYU-P?x2?caU9LtgEnEqk*$l`*$ty1G1>w!Kg(=@0bgqM^
zyM)eau16l0$qbfsK^<=+$LZ+6kZq!$D0qfbK*YE|8G)IsfS%IH;lZ3c4X-^K2jIgq
zU7pg)L#c$zGzGLv=YuHtMfzC@Jj=you8hh|0GY6WBp0h)+VOC^>9rDgj?4K_TR=mQ
z%t$~dq@igbK^8Dc5(Uq7x%ShV5hl3IRe)MtJu{`F#77cVZ=mLXAr=M{pU0Y640yKh
zCo#!las$+MX-2o+4dWp^pOv`I;_{Sx?gR$270_W(n9|w}aMZG}XJ6owLa!M4N?^=R
zfI=^tQG+nW#+_^i;)!{oOMtFC2a|A^cYp%b6Nfp)zH!V?zsN;Y+3_YE<`$s6)lkoi
z^<x0zVG1vH*;}WT2{SCS3@puLr%#J@gxmryHkWDow1i<=0e0~VPx&B-#tFRC#bK=7
zH6$Lh3Xln(DN7h`cHm_$_pqY8LEtcn0E%hMOv_)Y_^cf66v<us<*ddNtJT;^60<0Y
zX$WZh&ev|E@70nM{ooZY_FZ)~_ym#p2PlM=&q4|(AG^0->5^Nl&S@$%rXS$EZSIf6
zZZ7uCSGnv>)e<EbGYODmL8D1dkHauGn*=S2t`~+aahc%Ntb)ZfH{<A&T6|_0poqM=
zPP*+0>n3bwOR`_Xidj?uIFw|UMKK=%dHMO_OI(`sT9;*6H_oY8n)5meeppOuL2}F2
zyM}0XJ{TrLcKPeHuyhC5%6Kpk0!~EArNd4Am@oq%9t!7j8{WW5T2v4j8qDh9ndX4D
z^b)t0WJ`LZ%PpJ6)|Dkm`pqR>D2~TWJ03?VyoqI9zmu~{f-qY_7XF;rLPL1-?%*W|
zGZc_#S<NB`Z*j?G*mBb`KLG_%D>o6$SH|OXI8K}GJ{p-Ryp=V&ZLhYfvJ|E?Ad{$g
zw&zMi-{xWx)tU^Z($L={XCs$R%>96L)Nf}cEJ(1X<SvWgOlUx6b~&2V@mu2_yu-!i
zniimvkW6Pl&aQ3%J)q{xV59GZ#`2vmaS%gSsR@)R4#?{--ZKmmw7swyU>9f#?{e|_
zYZpTvm{|_k<5p$(`Wr58O{@8Cm+el!UF{GRh)iKXD=|m&6m)RPad*3^PZoF&%il3|
zR1uRY31|UkrxXJ64Y$T=8b|P67hB3S@-PF&^aFIoP1)I&I2GW1E}wXM#uqV}ZGbJu
ze3c#=)9`+lyQ_-7C^KL6&*^+GGRn$bGK#V70l7CiO;6Ym@B!AqqIG!+XRT2JQw%KW
zT8VsNo6OS4Xh5?$2&9E4_JI$%X;oV~XOzH%0u+L=E3m@&KZTAz%sO_a>$vlpu8c_L
z8=!~C5M`42<&QXRAXDO2*(CB`(Q#^;E0v`2P}&?HbqSkIpI1e=Oii$)J0I9v^~4)w
zwIU`ak+~UvNZ@0vhZP^Qam2M5n&}G26E$r8E%>-icF*=CX)!SYS$(Clw@DA)CtQy4
zx=OlIBi`T9CoWDTmz4vbbos=!1J1KG0)J033q%F7HWfbQa$;1o9!M}|8sH~P)=@T&
z7N&H;r=5c03WSV!6Cjff(9JFPpx}~}hsI}Ip6<G?7D8mA0XjNr=cmXpD$b_*EbDPT
z27nZ#F$n?ccxlC1t{J>lO7e3q$t>%EKRL4D&!aL|%+xjGsNUJbaa)d4Tg9S>FR)@3
zMGuxuIb|_SXh0zwbKRc)Sh89{Q!ste#X+;H4lGMyPJ<=g$3q(ceV;rbT*v<<oBg~W
zZ>F(%Z>ff6dINgy^Yl1}LZsxtn9Y}6p8IOP9R_5Q1F{lJ4VB&&e8nZAS>K-NF|Eme
zkS}0pHur^zq$}6I>T;G(Yhs_^GEV_&@qI;)1ntPSoa*35@HLlseif1J1do{smUQ8C
zCJryVaK6s+EUF<Z0{Yn&od2fNtB{Qv{D0ow21v53N)Icu2v1j6{|X_D5h7R?%?_j7
zVVIpABNk8pOwaUecTaCuGlOSYa$aS=s><oie93v4-Bm3D5eQ?95Jngy0uu-$j97wT
zS&T3uFhT@@5oTEyAxvP52m%ubV}vn*Fd~rex%Zy${oVKSo~ptTP@Pp%^_`n9?>+bY
zeuotc{S49~I;&gqS{4Ze1rkaN`eXESjmOdL+ku2YBsMu2(qu}%(0qPNI35fhXb5ic
zb#cv7!`=KswpG~A%;<QTMw!vvyYx$}W<z12EU9hm5C{STUM@4(Y}~xFclyygE!9At
zrq^iYkRmz8f9)z^YcQZIFld%@Y<<KxM9IG>eo*fk$@=%-ca@%ib)*p{jRmWFG+LS9
zIymGFk1WrV#c*Vv-}Rn(-M8QL&3B_g>MD)c@OUCt8o>rohIFkBF*3l4aL8Xz?S!F{
z8KWm*SrMV~Xg*Sb2Xn%qM&mOk*s?)q>nd+Kq_F?nd3Z{Yphr054||QY%Pf;K!K;T9
zhrNpg%;AAC;ZU2;Q#5<8Y2I^}&(mo3K60qFR=C!UdU|)Bx&Z)m6w5iVTH#h<pj$ZP
zOEfrDz=ks&$12n%8iE0q1$heAKj$y~d@-|o_P*)$5oJ?0Js(c!{zYO;oW+!b{U;$m
zqOqe011Lm*fZ>q0Btnyv_~sybG8Pk&3yGM|WKqG#Am_43IGr6OW>=RJSx-5nu%=oQ
zSq)q;F&y%NPU(}dE98;Cu4yc%ryf!`=#93EIvmIt<apjlH#R7{VTW(H)*D+wz;FF&
znzvrUaf+!G7laIl8f7+oYAjde(;<3KWj2BX3I@3oTJuqhssB&(42X_M>cl0x01o<v
zL%!I#TKl*d4e6PO6xLox9i_nn@xq~%Dgl=G7EJ=IXB|>_;GKR;D*@K8%g0`|P^ZIm
zhn{^%VaT_bx(o!ag+me)O6RWd$+rXc7c<L=`W)2_R8_WNNKh}xM_ifyJm(_GTQ!?I
zJVkn5s*L>2L*84#wOHo&yA8r3Vr`*2Ho))qTv1vD?U)Y{35(h78l@FrF{{FX8bOTC
z8{C$gZuTBA|31tk0M3r=XJF8Jb|irLk2&?Qh=>Xsf%M8N0w3H7hgPZtxYn8m8!Q{#
zZi3VuSkGPwa9fZ;r*Oy@yz$-~+F_=)D*Dbt3Xiq9%L^nhDID^dp*bbSvN^+S63JHT
zqW`%w$&GPlzoWY}I>iCH-LM=R%nEXw)wK{0ZSHT5vt&+pV;K>N>Q2>GfP!J+kWW-^
z)`G<RYPQI?U84ovgEhp=uxsnz2tk8n;m}HW@~59-?O0!5pfRhu2A`Bs!Mt$D2gcCP
zX9L$Zq(m>&TyLS?zyb?Y35R@qxo+@X&Ug@K&(YZRvupGs&DFldnyiC^GJ#j~o53K5
z&GF0Wog~-N%cH?H^ZH(m-w_+&Xb}d6g+o5LQMp!<;gC*if*ax6$-sbCK|UNYj_$wo
z;;L;VcGp?W*$CQQZO|ZIIOGd;y9(-0&F9>HTAl=P4l8?f`O2az_nU%1*}&_(ZDmPP
z$G+yQiS-&Ez#1b`+k4IIR78UEK@6QT;l*M)AC2ijjiD1H&agP(ZeU56*2Y@cPHVfM
zF&YCs4FUv0hWce9;qa;X(svc>m-c;`G(o|{Al6lgM8fh?T-I2vOL-~EWE8(Iy1Q}b
zO%l2SvHMMG7&MS8G~z_g;Iv<TKhxFy#)%q`AXzx%3xL~tH7{~0^M%pWcY{8Rl|)pz
z#C3yKC4i9Okd#E%9$n63c{b=JSV#;jLf2>E071r3-vFh~3VL+k8=!;+9tQCT2l@4$
z`M-~x@wuRvYK}Jly}PO#Kwwmmh*O|1hAaCsqL)ErL|xgkUK@uA;)Fxe!d9IlW>2B*
z)G)?WN{?X$F+%~m29#BS!J{C{XxowJlCk+`L$i#yt!{zAl2G5_vN!w=AMSgHR{=qI
zAnw|d23XqExNDl$T96y?O8#2ZJ@0IWZLBEy6<_jJ9;gt+qz%QljfZY)8pghEz|A#z
z94kFQ7RjI}Fer%PDp!{J2qcX)dL&e$>VZI%AQ824py2n?-BOsqSQIu0G1Yj#twD$&
zHmDOM07Ple4y5o&W=D}R(>VX7baev>1PXFz7UAvnfsOADgG^DRNhq{N(7Qx{LqU#q
zJIRRUnWMQTGNd9gvH0Lqkn5&NL`3Oq%*y_{%8*>bZsb8hsvx_xmX$BBH(zX+pU{qG
zmv&|Ro7f;#kjO;a>~C8KdsDNJ__^ZcirBv?t}m#m%wDqDrdO!)`VEFF4+GwWL%v+a
zwZFNq+&1z`ja&3``)5{A4F}u^lE$j#V@LUYcDDEMoH1)&rHS}-WqHe}U`5~+Fmb0V
z9$?m?%V&H&!I}HdyYFk|1e9(u$r|-Hc_KISi@h34%p>d`D~WH1*`Qg^u(uU}U_o4x
zkhe5R&02=^8qK*~>Vi2?&@9LYTCb+*_sxZ8Y|Kf&Pp{Q{pq({3B~*|t$kr`LC0)1A
z>tZ~B2#U%|o6mnK*||U|yHWDoiDR3@3@*K16T(|oCtm{xZNeenVGuLtn9o8{Q1XVD
zP~P5$Dp!PohyhXmx!Ke_<#1%r(;N2@^{*g-d_m4dg{UnVk4xNdZ_>ExZQO4aNU$=n
z^m~?mD#Rh9Nh&Pf%rex^9D(7Rv9^wKsl9wS?J~jhAdk+s-CWGf1|0VuvK^4?u5R-!
z8qd>(qot3q4HFa(;%n8~*9Y5~-TQBa=!hDij&^vD2igY~yCwlUW@BZ`^=+E#FA%Tu
zIAD2@9PcRWowlR{>CltjvFGqSdb=hATB;=ofr0bkkgut-mp@ll%(9X3^ky^j*yr>P
zO_rl-NYt@F-XLCkYaVEm?csN7oYvS36C;DkK`y6)smS=*L#rsvGcpE{(X8*nD$Xxo
zMJoeR0~gc|hkOx#_py}Y=#T%qv8WEF;k_LHsvOWkh?``7Yz@-hL-xNHEx!H_Jj>mC
zG@(Ucx_dQB0vI90EnperCLbEd-RBE#A)@zctZ{*}OInHz?gw#RM}yw^GyDsD-fiCB
zn62;A++ib63LioO<AZ3zg73@NBgR7UX4U&OQKuFHu`(by9OP}*c@XUgsSiNvz56ic
z1P&Aphhl1UGiGX`G^Gz>5eHtQD>6XhfS7OP{uoUM+w>ug?rgt{7z?BhZ5bVD_clB2
z!v~hpDL}#cAPK!FhK)0p)Z!zWPeaY(ai+|9@sCAQHL}R=3N$~ev<!X}OY0ymQs%3J
zl0XR&HeW{5+?=!Vls<Ma=8NEg1)`DJoM*HCwy_E5<NM2O3Jypf<P%89F+}uE(U$EC
z^Saz}5iT}-E}1@|xhsI_8s(xSfC56Is#TtXQ8t*5>6046s-5(}f`RfOEYQ`med=HY
zR%+S)nOJhrq!-VgLm5APTC=snnz@VzT8BfvV5kUio|>5pbKp)Y&tx5E*^E8|@i7HM
zZL!l3H0T{9+wAp*t5mjjpYS_i4SO3{-#`S(gG2<IgL8}?O<50Y&gpZSM-VZSr+^0E
zgRCP!4Kqll*_72eeIDyL0LB@>f&)Ts#PUQN>hm}B1xViea2y8(W(NtBhfIF9(Kunq
zKIs=V24I9cQNjkFLpcl9!L$y3t1n?q5#>00pmeV@UH!Ru8|5m@E2(kv&BiK%iSBzI
z@4;a``Z87-(K6gx?72(~SRTZtZ_i8!nbTJ^cZVwXQ6qBtm$IdY8^&ed?)iUgV*jfe
zBhUY#J4+2L5Iaa5KyF#lxzb4SHBI$G<Ib+3f!aZGqunl|<yGpt;K0|hjsqTER}up5
z2l3X0j9W$$+TZG1Qf~T&CX`%d^=?N66T~53w1wbr#zgYpjM)Io1Iby5LH=JgKZ?y{
zI@s--kIwkPy>tA{{qD8<5q;|*K8htmz!M=+?r^{TVtQ?w-IyAWX)va5Yx0wE{rqKo
zut&7#CvT+bwPCVL-#N(qqz45tMBTpL!pN=f?#sRg4p<+=zV1+7ZaRh=a`8Ql^496d
zk{Iwk9P)k9%Z~S)HUBu7ZY_99@b_cx!M*8`iXiYlNS*<wk8krn{UF9FUw)J=7+4)d
znOFHc7xO{3xyiTK4>fs)E=o{9g4Y4gdX2?&l1%xrbMyFgaM69!v)v)|qnNZ0Oyn5K
z)OKNDgE-`SFqYJQ+o>f#)@<lKm6(^OnfyPEAe;Z!_Ri$=ll=$TDu5t}2<kIqZ)aQq
z#sp{d(*x3HWl+#Yh%43TPo5-njs5nYY2J8O!?OnjgM{pbw#vIx<4Km!T@CBcv51JK
z_qf8o5<Dm-<OI(XvbMq1gg6*w%dIySoAe8fTPYweLl8y;&4hdmH%Bx3dykH0mUO|^
z{~FVreyLF&f+9`-K}c{$9P;fB^>FB9w3CvAL%9fKWmWMhERD9-;lVAjD!pkPENxd7
zQ+mRx!pn{)fHTlwj98V*;>tN1Scc~(Lj1k^JC=hoz4KpK^`AydkrH1yo8x3FrzdIN
zeoXxnpg{t$>LWh&;!xwrln1)pf|W#+-F8-;R)N6=vD$LIm9jL(!@S<#*fk$2_wZ)4
zx_Z#pTe~puN38lPE!$|vF%#QPoD!|ADtyOk{<w|>x`<V;GD>M*-%4(bp=7X4M^_cj
zV<3rKK?C{2s`uLECNW27$LLl6jSHJhjK#Q3$00wabxjal2y7WR=pt5Emhp_Qm*Oxd
zH5x1~L$ThBzWl{if2UVR4A{2AY?i#-SYJ<GRjBj!sRboSFhsEMLo0qXhHX)Q3WV*6
z4ZPBx{+CxnJ>uJ=VM<S3RX9N5E<DBo-NS02q|A+BD@w|qwyKB&EE(?BC@K4oS6Awj
z{4N*+5<`=ouK5sKO9sl2Ab(h0X`dgP40swTJwx->mopDKRIokB%~wk|4F}mZdgf|`
z_Y{%4VlWUstVUF5&$yE;wft$%!Ws^?Lc0(F@`qI)1Zk%S>GNE=d9p#z#;T&)_hact
z1Rop`tG?P#MTPaieW%XSbFjkA2wkv${w)>?eu-6ITV;7D@_ezuZt<-ewGrU6@Hn8B
zkdG@+JXt1)WDd&PG&j_;%FG%#h$lpe<mQ+Sd-m&sAC8+XLbq$oNQdE85QGEm1WRq7
z6fE|ZODs`OV=V2NW7P=*1%;^h;1soKy2YFvcW89n^4V+-71R@}-UGGjaNAf}_C?>m
zv<cV#jcs%IhRpwar^a#sV4-ch;XzU%o26Da-=Ai7aQ9uB&C*_m@8Lj2vD(t)XRJ;H
z!G?6V#?0?-@~Z%YkwWgADl3rL;e%^*kII;B=NPhRV4hg@6;9P;yC2a00*%P_)O~d@
z``-|e)2XXAyL9R5<sO$U56mfkq2}`y1S>NH2et{Z+1rcmj2h>Gzw{!FMvSfK^WdPH
zkk1)$RP#&ucr-|jL3b|}&=F!;9+@o=!5-0OPP%3W>jKm112ZQ}sNj_lkFA+ynBTOe
z_-7$LqMUkJ=E7luNJ5ldtMQZDZ#T@xM&~qUOssKL;Da<m9*A|dZIH@#mfJ9uo$K`g
z77`KqEKmynJpc+4h*c@*D~-7r<;mRmi4Q_<MEOF?#0&=oA_&>^+u1xf|406j7E`*Q
z(KG_!YF3+Q;DnG*eA(1obA0F$R`Ae1LpT9+utdlcFV&qI4`h(gkS=R{inbzF4+drk
zF$FK0^YDn9AYFR7IbP)3GH2t8X3I|uh@VJpm#`ck)Df^bT58%{V4=UAj%RdLWphN8
z%$4B5Cm~D9C+-Sazi6(IbbFj}s@nW!)*o#e(<vPq8{lEhJ`q57DK19`k%U-5Wp&OJ
z>gHYL=8kv?77<b4HnSW;&Fi7S1CPY2PsTH|a_>Cz<Rydo=z3~j&M39jK+OEkEMImY
z;-gqe#H4i#>npq>1%Pm(ZY&EEh7|7ZWJE9Bx3L^R1r3GREsas&$zV(`)7UNDlf{!F
z*WZ_&+4a15IxTCk$28&axR1g^gM<Rhk$@y3lQt$fOm=f5?KU)Lw<Y-54i7>K+@Q4v
zNfd()H8HBrp38bYXey_)S+i#)Z))~LX9-|g>Xz8Dp%|8<UhF%=o3=H!?D7Cv1spsR
zt1F${b&kjHam~q$;I69>`CThcNl`bNXA|3SIh-$MM*H=pcYlnP?04i<iv-Y3NSqit
zcR0FkEOn#4r!ne#xrr}$pp=m35Gvxdcd_~GHs_A8W~Q=mmluiF@WDGFS~D4K4tn-W
zY34m?vO@Nc-R2BnflflqOc!6ay)|fYn`>+=4^RqLSHQp*A?b#RQRKaOIv&$?h`BRD
z<?x?5eIo$if{++iAlPPhTSm;awvmhz8=ctEDBNYSyaqfNA><+sFef?p##jY6HOGA!
zACsVh3PO^yQgdr3y7_=BcSIPwkH;&%LKCeC7W0OIK^3toE!^8lkN-a$ZE;z_D^<xR
z^LOrzS3p1$Ay*93W35jur>pIybyhXKN|lHxb8R)jKnx)X__o54OPMc9c{QX*6q?5s
zr3f}?9e6R%Ux}>`mEOsW`02a`>wBzyefy~tt%w5?gs8k~vd3&7E@OGE#?x(29XT{m
zKggl1k9Tt+`TK~Bb^JQbq3j$QS3(6HgqQ)Y0ou6Z+{t;FEZKH%=Eu3cUb6&`<Z6~X
zP{9DPT5k&S|2m$SH)wpO&d64UFy`+{+OBgV7f<q;GyfC45zB~Z5sa%6uFC-RgDkB(
zD*-yvH^m&6eJ4TcRHT1z)mJ+$DL0`vYb>|D6tsZ%L9zjI4{+p6_P%W=u*~3Z!FnS4
z<%9Q25Et|hVn5D?8@<b(TGjf+^j1y6a3+P;4ID5&i1zTD6nyRZmyhRu;5WTZ6Nn5D
zU4%fv1|cW6rsK?>;{52_HGWiw%5-pGgMgtpnxrFh5phXd&wWGhP#KC2z!{27Fpxor
ziY!>Ec>@%4PK-}8q<3npmR7p!CNQWV<ZajUgFNKmU7E|OGuv1ib@1QGacW`Xwo~P=
z(Yql#f&?Ru=i4EJ+hNr=wG<NzjKNLsf!v7EJ%OnQ1_LAwu$%%0r1WxF-SJ*ctY)cg
zT80KigPf`Q<?Xt1->10^JB@)#W9}bGfV*%~(=i`BW@&)PjymcHuU7!U(jbbGZx*JF
z;Bk{o5!R;<XpV8UvZ4V7f`(OJBkg$1c+;I8S%yb*1~?A)K}`;;0FkRRgb4};mVL*{
zvI$vshH}F3yp;TytPf#PgSfk0Hzuno5i|}Gt}>cobF}46mi1&at^9!X{D*b1Wd7^2
zakNwbm>nc$ST79cXbvZ<=_8t$VP~zmK!UbGR7A(@TX#Y~s&THO=jv8Y>;JeK)x*TD
z?`S$0FNP_zWYNd4vIFj6stE$6gE-oolEEC0rfE(e$2!zpX;maJI*2AI0!+SbgFXRS
z5oENXNR<ZyN5iVGZ**N}&I9i~;Qs0Nr(6l}NzIK|!725#g^<D9APz#PK*y3u-5AZc
z`^I7(E{xeppVC<1%S(Wo62R{u*GP@W(tJyw*68#uQcUwLm>oo(or%(OUtJ!TKBLKm
zyT9}a$T}3*8^j=L?>OY~o1fKW8dd#_rNNv3v&4+uZ~JcW-WmU|+dX|ZYn48y@m;Hc
zr4@C`0KJ0*zUqBLqul0JJ|AODz-sGiL~?+jbdYl?ZK*zAoX<J!z+uH*`hrGwqtCSo
z2!aQ>8~8yOv=VvteeMJBLvQJeI$PPIA=%f341Nb*3dd;nLd|O3>;aE26q44QzJwLO
zGD24$AWv*yG2n<0SLmkm940d|hs0$v=*ya8e-j2=019*uEbf*SPpru8WM9#^9syFt
zQqS1G3<n)u$q{|^V1kYg4crZ42-lP6e6uH%($^q0qFJyr9q$pr->~Y-TKMD+CNpE_
z5dY(o7Mlz6X|tiTFpK!QCI>2buo1e!LD(Ql!#}QBGBs|?W&2g~j^9un*)mS~g9spl
zvq6$Y6|?tBa-;IS3s~p$O^qsFVr#d^0L6oZm+D?R7r~}GY#k2iTbf|n67Ro+3mykC
zA>l?EJz-3&Z^sxD%Y9M{27(5$sycEU<<{QsXsoK}EJ~oe_y6F9{Z3e^2Y%Ef`~EIg
zIz3P&9wQvA5S4VRo$UU-eWY8<Gu{97s_$N$Wws*c@<W%OZ;O}d`x;Nf|Fw&`){sEU
zu<E<^8he-XaZ_`8<_VX%4Er4GpdV<q$g<NBk^l;aRSl2ADLa?&hgjUNlt<xId0gSY
zk-KMRd24#>_UmvlnR$AgA8GEMDm_jZ5eyCzf{DryPVInmSIqchEa?yT?l#BC0;hvm
zII|I34p&oi&bZ;)#vp%!^+Xh3H~{y6npog+z(tr}@A2#tUkGYTMSaTpryA?IlClm1
zg2-Xj_nh8HuBW|6%oh+ZOnte@&orVfjB8740|b+UM3#&4O6FMkdCUWjsN^qEto%E1
z*V=djucZs4Y>jEZ$mti5zn>!ZR(w!5$o*av1NqWmZrYn9WSnmLrRIKbEjMc5g2F)@
z_!)1<JA0S;pXc{%%h1YU%|3U3FUq@y1%`&hQi2koQAmcvbH>kQ<MRoJ6-M83f`$Sa
z{0xU%vN=5Z?}>*MR)1$Ur!@NSFC6ywuhp2A7w$=rqwcN-2pAU*`?N)Xp!a!q&@B)Z
zk+xVy`1`y&z^`yvYJ0PuBjG>)5TA25HhT52;`T4m2sDsDlW^DvH!9)5JekaHjE3`V
zTGM=REx|^hfiB^&k1hmCtlXfA)cAL!*_@6-d_;0;S@l*08XOApDZ6Y|@5NUx@FDZf
zzH}T5xHsb1P*KPhgacE;Vc#<>sSHnw<hI1LM2a*&n+<Hwz=dpJ8O={(K^;RV>e&;4
zucS|+Wr9lKuuoPr^XNV^|K!68Q>QyKUro#ZrNdsahq!zE&*&+T9#PV>lo81P3|tF`
zy_whKDj26zbHzSY^WK-RA6P_iFC6y10Mmgm&xtw4ZZgHwAo6!q+Mt30f(6k8<^ELj
z5lFl1(={idrQNlF1G$1oty4j!c1jdI<FLX`>g1MmfZ$Y+yMswJ=A*e0^~}BB9RLA?
z!eMU#$`C-y=VM+lr-2)<^DNEttj`o|z=0s)aH-L(ZFID;)A^*)v$2GTuzvJlYL5<n
z1Tj#!QOi9u?#sGrUu`XnpXE3cpQBOr1(rKOozS2>5LJ(1LB_&O=cyYMM7L_Ly3pvM
zG8z~VSY|KQi(OAA$!t3_=Gtvo%*L<MlZ8MqB*=Me^a8znkr|bEyXHK0Hy2qza3mZK
zq`i{a%rYWC=HAm@4hnn+ay+Zu;cTmzSGN844hW5z8Qt1&UV;SG0Smvi5^y=2ZYJjA
zs#FY(^8N-F`KLp=6Km<9nOz!l=@tUk1G(n{-K?Cupu05p+_L`IK`H<D+u}eprYa1!
z>265fAI%Mef#cw?uLm(7k~PFHEym-kluYw+;`(Z){=d*Y5Fb$iA#hgyQf%-a@M?a`
zyf)TXCH`3d-g2PZmv%NYy#Q;AsHZVMZ^l8D5<#CJr-&=ixUly6D81pCyhr098T0vt
z8Yihz(H6u5iGpmEDg&3B9sDBAR%xg6s!Rv|PY?TYj0&~GMmF4~do@0NJ52;*fgV9F
zs%C<ii(XEv9%^^Oxm4S7M(oUTq}W!yp4E7rZ87I^!RvkENfgXmS6y3^`K3#|sn0=V
zM2&ANomUkUR0raIO1u1IG#&B3+#lbYXER&c&&T8etRjNgs*YCa$Zrz?0))dpkJ#2M
zZhzS4CTV(5W46V$q8I4kNRT5|9%DV=u|LLCx_}kzaUQk@0zHBRJt~dq1LwNaC5@%r
z-skS&K!6~Yay=`-Wy-AclL6Ch^G|ZRj3q?GFPCIJ0{9?FkRw>)QE(-AS2Q+I8zn=f
z;%*(s-Ipm|HR{0F@<dlv$Gwz_ts{Ze;IK3gR;h=sI#Qw}?~f)nqs@F>^swexcTyV#
z@j-0Bi~4IT%_+USKNnM(l#vdl!R;kjS4?uWYh-VW1aKdSc5K!j%y#=+9RH}sI9*cC
z;2=S6aJZhGcF~QO#$2k)69|>S#vdN`DVlnvsy`iUZN5x%4|JBl7NDRskmu|PMX#iT
zjD}1idfrpTKBkK4G$~3Oh@dYJ(e+i1%(ZOuyc?R2xbuw*BzOu$c4(rpRW?JF@3U-3
za#`u5;$GHfl@3R_4fkwnY`3<-rydL}1&7h>Ql*zTW6bc3r;c!u)ixwYP0wwktSDoG
zmq65CxD3)4&xo3NT;uFT*IHJEfUZCuO+6(sT}(ENwLcgqc}`=jXup%I%CI0OkTrDi
zPt#PhhG<%A&=p8{+1wMH-0q#X_l4QL{^DSZZKeq?3y=?ew4#EXAaL`$>OVS&o4->1
zm&3h)p?u$U+Ygx=O+|B!(rY!nONgK+5GSfSL4&)8uWQbI*Eo)0q33QK_Nnkng+1+P
zY}bxbeXtNnz=Z1p%>Qqc$^w`{mTqd|ij^vZ02-JFf(|K{htMky#vx@a@C(TKXfoT4
z^2~Qszfz?pmJsFv7W4y$eQ$21zOV8P6GrFsDl8+0?5De&un7-l0*Tf%#+qEZYPbG{
z45LW5(z*Q+$EE4jSl)2?@**dxbc+OkfrPt^G@H&pn+-UlUm}O}|Ak(o33myc`y`iP
zgPMR>b9lw^4-4_!Ya#a@?b$5BfQmp|*z$}Z-qzgF@;Z&i3G$W|U|=4QAa-?frByqx
z*PP1sDVSx=^LHeU(Ily2ZQ+Tk%tNO)Xg<$n1XxvUkPj4AR>4bj#<}^@m!H!cHA$XM
z%A-0om<D(q&kY^S>bxPxAmx5WZ^E)3JFr99E)H}9jn6MIVPTgEBi?)fpI-|$m<Gfs
zsFZGSwY$yEy+w0eTIxUq4738UL(1`9eo%H~##=QfCLB8!EYJ(U<10*~EgRf6j=Aw$
zb9$S`^=Y%VDv)3nXbbAjdAd2h{lJ2{77x?{a&teP8;l3nAG#!6HhheI56?R^Z`uM`
z!5xqw8W7{C@w;C1J2kPr4$)Py|3IE~nPhUB-te52@6rfu<E#W6$OT0EV@!9-b5`dI
zn$o*9MrU*0H-JDOARjA3@%6xj|D{qVJGAXR8iz%IT&Aua6$Aqkvc2hYivwvi;)oKx
zS95l2ElV{lun4fgV=LA41p8(0(>&X@>_o{G`y;u@nsqrm3L+Uzc@Mo`W9=>}_bFgO
zBp`8;e0!Yk^xRk5q&m;8rBnKVDkN_I+F40KIPeLG#{|X!TU7bMy?aa*AW#R$Cn@_|
zQp+ELpon^=#wn?#lmDciz~J7V<c2Mqp%3pTfl&fNAHQ5Iv^luv&N~ryF$QTiVf%zW
zqVcLdij~@ih&Fyvv0MtY<HqRX)o?MRk7^=Y#h>~k62wH;{$byNU@1U~Atdr`trL><
zM?bX;U?0;Ytv3uD|4KP$t(Axl{=>c?r@Q~(i?$@IHp~8TEcg%F7rYmyfx09x07%rZ
zNq2$xRnDe{bt^xC<vkJ?A6rhU(Ubzl0J&bPv-6BgWZ6|diM2%32z3qP^MK$8kS7xE
z2pDGlp>>i{_I&A6SVaVdM^wu}RR9PA#EPG%<7qnQ8|A8fWgjokTiETVTx><3#)=~P
zKMOQx<ShXQeSqXt!f#>3r{Xi3t1IfsFf1qqkjt$ULfP$|(PuTmu=cVlhX&>VQT5dt
zvrXf2Y}4m75<4o^EE+fg4*PU{7YlEab89qxUb7KZG`~&&_yQ25YxWm_m;4JFn{Zjz
zLY<fVPk99#xlt4p4SlV--AMFBEN>hYc-mJjQ$;lB2IM*|xmD%-A$>^|9&d5f%81|q
zkdSW0h2^LteHk*f)BGwpX#YR#+Yf5dx+{z6G%XSCraLp2pH6pp9vy!`U%^T`ItODS
zgUe-sPe5*)YAN58)62;&eN|%$w^s&wI4}yxVG2x3O7eWPH8n=y*EEWB=@2G?1+~Co
zUtU)~dFFTh0=}*>?K)30FhL|BPd!gr|Mbk~G#;ZDn!cfOKpcdR(+1!`93Xc`jUQ*2
zZY;Lwn;My2bUPLfoB)S?eR_Cs2s<vbgy!@uO$;t>D2ZT$8bBiS;T&#mD<LgY4SgG{
zi6};i&Jvd-fI>hLlN&eh?45q}&SD<WcQnCz{%hy0)nLE~(3Xm}6)OIR^xXqXMVDdG
z&@Z~b`OA(*<a-+3zeIe6M&w`1X{!eZTu$rzn&4n(u%VK~`ak8F=Zg*BDd1X6d3lq?
zl+C-8egNUW7je`JBzN39kkRRX*jHi|l!NZFzD(K9ZZF?8Dq>>xsu4DPfZNx9h!sUJ
zhP2WecFI6^znGRa6~aX|^dpUF*`<&e4PE^#ktw-a=1mN<1y{=aSaT90##lI5bnDB0
zEO&3sll+<+!1xo*8*k|a0~$K^5q%o;&Yxj2Q`^<|Q^>k2!hZL8hYAGR^5u4ElJOeL
z=4YDs)J^SM*e?Gsi)7CDdN<B2Gnan-hnMXSlUd&~)6vhdqOFKiAJYRAAr<ZY5~Let
zJwJTh)ua3ZtBPooD>WUKLC~*%*eCTxO&MEgrzlxsrn>&-IN73KYIIOg0k$BcYhR3S
zpKg7aZRRt!8g6AxQ-IUV+!j#i*<bU~-O0jS20izcjpJlG<jegDYYIch{k8wNLvU!&
zU-POA4QpHJ+;>UR6CpAtJsoI%E3nX>zvk^%_dDloUmUl97TLBZttsx)hSUHediUkM
zRuYir#!bv^dW+@*ZOLUiC^YS}xYZTcO-lJ}Jet!gq(lU>o9(0y1#S9k-bj^dwzJ-M
z^@(L)+(v5<8bR3|ERzcZqjP`FU)3&?T?)SXmtL>*$;DymC>HdR*mzHcp(#!bn)%mi
zMx>NESLzv$ukF`}48fwef32lae3s3uGk;RG>AQ?MkBI*KHLt@eofh2QM^9c;*y_QC
z4TeECJ`3X8I4%fp{+_dW9LzQM4LxN|ajoq=^k0>VHhy0EZ>}sGM8Pu&ed>yyiuFeF
zRqtsQMM)wW|JS@bh#C%_v{9?!u$4IUG^{ZqwA@l4(gqHK0A3Cgg=OXzT?|LrFumS0
zulx2J<4av14bt8;o7#?2dit8eNH0UWOnZzBkO-{##6V~o81LTAac0c3tv<IU&@-^G
zn8d*HabtA>pcq*5p?Ji4&aj^F(}>y8$my9_OU!hta0ID=3K9ajG|K7xD``H<rnzO`
z^%dvO(p(y?bplOba1yMo)R_3)W}o!?^lZr97ZX1K!8)+!1N80G!yDOxxB4zU2WyDv
z@>8)JiwH0f$cYZq4|5Nw5FFo%MMVdAA_$I462MR(cV?|qI`4C>;XGRmw$mZqrrD?+
z{nr&#kPg5yt=3Rk%k=g&g<sZHkyW-$|GHS<&4P8V>!copMpQ&Ct%2{Ctnl9wt2j8;
z(mEV>KzKyYQ^c&yvg`3YdE-(wvB7;a{bag(!~AYacS5$h0jB{5N`bYNB^(%hg}XpZ
zpG!EL9;3UkmILR&2nqxdf#}VFv&s8s&Kk92NrCzs3m#S1w?$5OV|_71u_gPy8yEBh
zqQY7!1jYqFf#&{?<0lw52ns}bwRTye?f(Uu<wUk{);R$F1~2FKl_rPQeRlYmxsI~2
zqi?k@+)wF+SlMH7#@tf+tS)ijE2vxM+oNIXDv@5aAIlst;3<%+wn`Yt$rid-<KnlI
z56()w+o#ri*;9ogaD8F!VxO})4WSVkst(%05+?WxSop0g;R!S#m6uuTsky|?Vlf>x
zJh~#8uq5yt$md?^tl`=gI;Z(G+Pidyr8xTi2)NYLo(s4#&HDq88k59|QK`TNlY!hY
z)ti5E-8?SynjXXwB61n+mW1GeuVBr`D`69kCU(N{g&6x`xrOP_Kv*DevK|pIm;E%E
z(xn))HY&v606|)?77Ss}7IS{Imo=tR`=fPe;3SZcPou-(w7s*;k1#mU28gd<6)#=B
zipXY)uqaR&gd7Y%>g(!(IT+PZUoWnj@^$OK?BhJFH{~Pzi-6Pfi0qC^eAN7!@et?q
z5{+rs7Hsukpek5fsnZQ}bJe3U$}Q%h7w_#4<is^8knL2YmumKY7ol=_G}0f6B^b`%
z^OLZ(0WVXj)u`G4!3J4@xM^)f`&Vg^(qkHvG>*WZaY0)ki)cwAZZNSVZD@SOh}5J-
z1$)6-vyH|U6L{(Z&F#`zomJ&6V5z@e@=#AF8@ppUii;Uv!~N@{d}K)su!abJo}kCt
zfeuy!F}*}ro~wnXXj|jM2D8(3NDvyxXV9okw~FR*P5P>{)V-`~u1S!fG2e4&wvFcW
zcTWo)!g`y?wNkOTM%zYP&{U&L+s!u%1{Q)fpDb21_?|IaV=JRwnqfiP2X^Z&7Yq7=
zastc`pQQaIz^daWbGdFq5m@7(^po*uYie^~bItLKi0@X=!DX=KOI_nr>|9RVUrg<Q
zcH@j($1)>IUH6&YuZjjif?VEq{76BNfQ3aQ_-ivv8srEPnGde@6i2H(p*(vhH#Nz^
z_(xI`0}2Ik&U~K!%&F71I%zbgSL`$8UqFFDp)E6+CzG`Q@<lS8FDCTL1ItX7VL_q5
zYv740H}WmlodWZ^G{M(sfl|HitFWR7HX7hs%PLw3I2B~Ggjj^KsnNPjm^Mr;%MZO8
zD~sTHSV~e<hX-kbY!a?nW3Hc3K3z<VD>9(hXs&>&erte%6+xV>?w%o6zQQkG8<V@(
zOIs2|fK5RRj(X`b$JT9&)ax{{p6+sJ!348HBdPv?9b(jXY|A;le*a1JDk4Z0VCxvy
zizDg}IqzhPvc)W?H)u44MCpT2AW~p~cdm3Zc;7c2o?)+P-L;1JV?}SoY9i(zMH705
zg@JHEqE6*bl_BTi&23-~l|guuDp20l0aL*RkAk>{wQ)c*N-cl%n>F@m`*a}>2f~DU
z2uLhQ%9s^|-m>oyP!$lY31SCx^N4X*>{qh4TTXA)L=_!?bAFmw;7nNaHF_N_XyfGO
zF1=0T1jo0xF*Z09L<faVkZrblyT%ddI*;Yfs{d9Z%?%6r5u0Nhvco7>TgnE+JFtw1
zHkn9kyhRqM7S?>B{`Mpp^d7i)>P&Aq+Tt3lcVaOS-9z@TU2?yM19F8m-|!er)mZKe
z`+ZLD((H(cG*Af}qziHiN10_f@l~cUX5Xzj5T$C>02a6xBq-DzT4G1*^u7P{9-Y?f
z8irEF1p$Mc1#9!#(8Wc5WrG)X7~y+0dE^46Fr)*ZU}L~ZtorOlRmuA_H*!Z5pixfp
zNAmnz=2ERM25kP*`>}wCn&GI4R~{K84Qsx@$FKO5t2n!0tO)R?en4Xr1)f3x6KoCg
z99qI=o4(%egPMI95sureR@D9R+KO-|)&@Kz(`n}WIzOZd33iW-C{V%lAUa?pA94`_
zfAukB%U|(f&He8%TvbC54wMfp^|u19ZKcRS25oGi?UX)(<wVpI>dP9M62TO~E519l
z;@bDNV<Y#oP%*iOK8l4ueozaK5)8J9HQyQ27NyDOyXIE>nC9F^#(yj_C?v4oeAx@n
zAuRdKAJ;gBjT)LN7}y}hH*RBa=hnTUoA8m-C$NGD3hg+C_%c3tAjA@=S8Gm2JKSIG
zsx`Tu>XRC0eQ7ah9UcS`^1&1(SQoOvHFJZHQ=WJ9DNRJYwW_NO2@(hirE%nv(>89#
z)2AU&&74yK0=t9UIF;6J*HUYKt<RzG&uILPaIbg;5WEg7dyU`XcGBbj+Zw3PLRv(3
z7XOudb0r9nIKZ9>40Ey#r=L^VGs`DLmD^AM`P#A?wer{`o+gpcc$WI-v8G??oF)ha
z*@JBLDlZ15gX>&RMqkk6!P<E?1P=@kk`k$2%XU=a7d2|H<Bl&6O8hg~@Zt?s`4ssm
z(w8*bBADlDf`XGl-fy{=>tZ$>ZSK;SHLgWlUzo!JF+-<C$%W>9`pSV?lok_A3oO1E
zXg<1`(pMpE4+G5&0QeLnO4JB$aCO6!9fq%I-dK0QL@+_6fE&BieQtB`?AYb>b=8d>
zYGp6LK%lVZn`GK<RDSf6#e9*B$Gd#tj~DsqdfK<q2l@t9lpNFz-X#wN459|RgTrhL
zc;Wrwh;sTSmV3bLSanHYZIFCmV9qQ5O|mdziFYu4OBID!GDEhC4dMpb-M$^tyRNLs
zeAy0tTNR*gG*~tfLC_!>3Y5)II$R964CgzV;B=7ZQlP-nAkJQ+tlzwnUV-mw6mn;;
zKmiJhhBaS^VJqFY6XTcji@ts7`Ja6;bxz;YSe*bY3hBGy!QCJM+0s+9@oCo9-;ep&
zmsdg+h~REm^W9iC(&QQ+rbo=bznAXvWO}nv%{#Jmtk=?A^B;5ifyN^cNSDWp!3UKC
zuZr21W#kQa1{tq(G&p4r%>$^Tp3fXBU;nN<o<~2#+9J5?f`fG;q=3*tGHjjgc=oj`
z()y7`6YsVCuaE~C2uT>1s3QD08ROY|eLz3fB#he_C>pR}fe<BIZag(wxJ(z5FE)54
z-A^=1wza7>hz)*-HK}f_{zcEW8~#)i<mp;KuiRPqZ{=*~i)pgxoqBQKen>rY*N^FE
z8UxS)xND_}1-=N_*C0&bU$V1tey$1QH;ESn2LunI%EK0apH(mYLZix;yAc)?<PUOb
z=J~j{zJ6gH6H{ktO2)UE(=SzCOzyR2D;~%mSn_YLbf;L?=f?Yn-*q+}j3vvuazvpK
zqO+{6^1vE##D8F64#xh=7o#~n0c(p0_C|3#T3m2Q9P#_JR*avS>*<L{6vv^Xus<s*
z;{L*sKnH8d8WWa*CqeXnI#`>)pp!VVQk}>qo`!SY$Gdb3R<PHJY;{O*ONi_MWt>q}
z$(UA;C>*DyG;|gdyc0*fLn`zTc7Ek{lAqyjEdC~^wId205#*d`f`V`2$Vz=k;XJeR
z(T+muo`)1VBydL@Y2j_)<})^Pjvvuj@LjwO9ubTYM||sw^_uOaU~8V~BqT=khSi+!
z0tWODM|{E}o6Vhr_>c`Td-u>!O=A^p)YHtFn|9vlld+75h7N!`16C&r1QSPm>tkEL
z{W#f3$F80KDMu7Weq=j;0T12?*@%Pf#q?V5jQwh@fTu!!M2y${wbObvAh13hS!p3<
zvt-uH(rC{7(;)RANZCrrV0$<s6}|TUwi^EF5UQ`}1qw(TM6V6DM!j>RbUa))28Yl1
z+9UpqBMOs_QQUKFfdegrobzhb(L9rUK%<S6o~b$K9dS$`f{y{3oGqi>$;7w=qd|W-
z+Vt)pJxis@8xJ^y2@(dmO8sp+OQy!lyllU+t<7nt*_`OvSVBbgbOoz?m$#sUo#Dtz
zmG`S={M&g^TtxL8%{Gs5D+C#g47`#%R>DoBv&DQpTaZgKF@-`hFl$;jPFymfTd}lA
zT9}w-(k_W0Y&hcmpn{Of{PNTqb2;6nvBE;+Rs|O58IH7cUhs_H+aYhiofifT^bAK<
z0@PuAihb}ar=IFIZs}$#BZ8no9&gnwwZsb7=nl=>Z8vfq8b}$A_*Qm_XIN^2?tsSc
z(4AOHM74Y{Y!V{|Bo0S>!$X%3a~Wx@^HZb17nS1FyRhDf$#>CiQ<q2(I`G<mbLk;B
zx?$b&fSw=H-5Q%mf4WPeK=*LOS2ysVJC_9I>B)4kZ9a~Ttts83aqtAnyE+}XAbF6J
zSFz1UQ|<&jof<1Cr59)}sdjt6j0sK$c?R`%hI!Ucr(41x_Cn1w=xmdy;DW6|G(a_w
zu$bPUWJWK7@Q9##OH9H+fwV!K>LOUfrFJ&xb1$UrDd;0OAZ$2ND_yaLzkOkgq0<nz
zm(rCg7<d}Qm=8Fc=JOaQWUT+KakgR1+Orz#W2q}!LkBCv5g$5tMVEXgT%F}*;}8yZ
zjjEY%`*~Y^qw>#TO%d(e1*ETCkB|WV2C@7@EIzD6?2dRqv-y{^0|_qZ8@hC5o$JE&
z+&=iL(3L?^AbSuSK45M#CkkD_k|N^bQC2L&g8hNTA6+R*VO)zYU4qnz&bdZ0i~|AF
zgKUP-&`aZ5xM38RA@M@Y-i(;1DbS#QIO1!(+F8y#t?Cu5C4yH^MWa?FTU{47DpaML
z^F+9-nj30)<!@dZ4)<d0Jj=S*@0)9EZm!YP9HzlFCVPPFj!M_ogkK9P2p(ipv~_4-
z9ZihcquKmXjo%Cl$_EJv*3uYxX<F!`nrLWyW+ZRU4E+PSD~r@9<=dmpxq0zYNZl9J
z2LQnWA@@ZaMZ%?Qem+0%KQelm<{ZRvFjNG95u#+Oc}n}UMuG5WCDSz@i`k4N%^W7m
zuc3kr;)pLi*mNQEb5}1Lt!_I3H#9cVW+@!sfCBA<L=2pka2)}?2i!mXzHg{BAKp+C
z4y=Hclu#=?_#lq>uD}|9h}p5TET>J48P!Tg;=n-oAdfpCN_Knh>wvX3ZEIrT?hk#X
zPz?zL52EF2a|#CLSn|*(dR*gucTGMJM6f)_gKZuKT1;sibHroMmH`CSgNUt>`45Ne
zRMJ!xiEN(@;NZabAl{C1KN?!MzsX@tnrYOzhmsQFc33bs@FH&UK}lQEOOW^5dkI38
zYkG6ZY!u3MvKX7M^O!J7gsQe^;AD^lsl+!Pnx)f}&W_0Zc1EsB^}0qS2BRhcR4^*Q
zy=t_M*oh81ntjySiBcZbuq&FOoZ7M@;^?ME5w~T@EEHH1L^aIJZ8Xn0Z9V77bTseV
zAJ8i_s=<#8@G`@QpimG$63hZtJ?CCc=QeZWo6lZ}MMMx#hG`30!9k~h1V+<a*ht6O
z4SJQvRg3aMEH3yG<a4jIj@U`MuhxVO!YwG}S-O8)9)0`RD6lEN2BHs=O*s#+DgWn4
zQOz+={I&Z?QO)aP#QzKN^V~QYdnSw)px0?MWOXEsV1U>_j5rQ~b5O{3o<3q;%vfQM
z%xC#}O@19PzOA|i6zm3anz{dDotvDbaLv*$<n#tjyt~p(5<mmRf#jkJgU1>C_Nz~1
zBsb`d8eJVSqe7_QEs(ouFd6pFnExAFYi?fCn>1U9|JWVYDhjv>WRKdUyo;B-83LZa
zTtF?YUkQW!*K#boYp8D|G^Mx1MAr6Fq0Q*vCO~ScWLeHLAGUp~#wu<xQw0p{1fqoN
z^le+|-0k4EX?)R6MmT{48-aMjVfF%^)=F>J7;jOe2n-8i0`ZF4ZY_?U@O|(OO&&Gs
zKJ>_7AK;ZdXJyH7h-_oA>0Fj~VnGqSLb~Y?5CXyi*_E~Yd^%4CV|tgyChJP~TR89%
z$leHC;*x5Ax8_5MG7oBL_J1g`+^8Ni+f4NytSN%HV(<NI<sPg5zHOC*q8^XCmDuX`
z8uYyfzRFfvAUqIft&NS<_4~h1lfY1Ly;eH^|4596nlo)|R7tkJUlRiDa?lG*&>kQF
z*ldqUchbSaxSAi(*euI>ZagS>4@7>wfM7Vf&V1-h4)#Hf{LZR`0u+P?BERCV%*?Gc
zw?;E}o_t6nzugI{fP(Ho)LEsJA@?l5AJ$y5ZFLcOmF4$;IO2OIT89N>i}`F(OsD;b
zCS?{kj-V<5lm>F`G*d{Y=EhLiF#E>dRTt9f)_j{jiiQ1W%NG`xstU;gW5E$$HCQ%b
zY%lZ2u#kwV!4_Mn+`s%!jx?H(=Cnx7?lrGI9^;ZnL|cFeRsu2PZ;oc82~YCw;gzSL
zur->W(4?sfEGxbn8dL;g3ANOHxgkx-7JX84>Bdx)2{K3s#IK-qM!hTig<n07J_X4U
z)x7qPUE6LI28;tNrfcTa*p3tPMY5mP<RoH?WJ>}-P#_*jOR&sFQT!G48BL5PCK6Wy
z2Wi0(-_dMGDn7n2|9n=Jq;1Y+WDsx`$gXRdp2%)D7rW5sG`lWlE~6lWzd-V0#*mpO
z%zVXJMDqceWBYlH4_|%9O*9Y?$SqXiGoGe5%>Q!wg2t$Br$_d1U>^`A*9fZ*w&{zS
zi?1_AUzD!=nFy>`@H5fImo$&Hvmc<uvhn9351L!2Y(?~!55R*KFmMjY9R)qVInEN!
zr+y{oLtK7scsP&@NXRKL=_2RZ8DG@|keAKQ$V<aB{#Q|%4QjoM=_I3F&_Gxp<7*mI
zA(Fx`AO{o$lDsI0W{e3swDd2%WbpEZ(Q@>4O+dMoz@~u<$^x-$>k+h4eepLmpH6#B
zu32ULzq4?TxH<Nxmt4GX<?<On;xq6gO1IcgBa}+eH?gv5gqpL6F2`LNIJ-CDpe5ip
z!AV%7t}B0GzCUySdH18*pwb*fUH$oJZhrDDypb&80Az#ayV!?xP#PTZy}x1mYtv}U
zzB%m+gYj*R&l_dkmC!+RAeKe<7*+mD`VJNpS&+7;iLEROya-|l*WE`Bm?o4;+s=2f
zvWP~-PQSDY40;4n=CjP+qL&}K{QMr7Z|HlP8Ug>;&LOQKf%X8=&t{m^{Ae^a*5db7
zsf#7CR}TsT1WDP~Z&Npg=m!uT(K_6DJ6A>x{a<n{+5$D^{_|sheyDMR6`>$V0Hs0w
zMwLBc?!TKUW%Q$c->5Z2kQB(J^>}Vj9$bIu(pkrS+N0!#@Sy%!6M(lsR&)m>_z74%
z^YV6QD44j}Mf&I`SWCxH;=N=+3K^g)IO1#d8vFuf-twPn@&nzp1p)H%e=GF}weAyh
zXAQH(oPMS`Bpux>9uF)Al9(<E(e1W1hvMfNC%9S9?qR@T(4Cj&Ab}4U<@AeRNnW}v
z0>lQAld9XJN#1v58NbvViB1z&AVF;)C$d>e$$U1`X*$kn<*263u&X>1m>?-Qy1cW`
zUJXw;s_=+oJNwG_!>=6`t!UikIhQZ;i{3oT$XLPVE`H)s&4(Z$?o$Xug0|pjEk0kG
zNpEg5W8u(~G#^1HX&o>@R&Z1<M#nQJ@sZsgw?WV?M-{GlfVQp*2bO}P^-8aiS)V!Z
zt4AZe<cRT$77ernM@y9-#2MiktwGS9DnA?wcn6O9a0*v4T*~I@MwVUcF{j)P9fhEX
z&~2q8q6!4!fuk!;a=IO19nb0bQH9eVB&RFDKsmrNZ(Hdmr%U{gJSE*ptRsS^DV~z9
zDg|T(qDNTHxOK#QPEXe85dri4aGl8DA~@<JGQ@eP-j)0KEA=TIXUUMBqWN$ff{*Gp
z!N4_eG?ZZS6kvTj#EG7IRAE`SCzvXrU?4c^&8kk`U84m!I!H|P|1_*7q7_v~?^_ZB
zYJ#IasJjWO`=?_8>Y(mso!b7d$l0&w_l;-y49&;gSu9Zaj(_#2x0WWu-|q4Mx6>Uz
zx#5`*7g5G%|I{k#It~a3MAO)i9NP}ez_Dc>HgT4Xo^@2=C)A!|5E0}9M+41FZk7wz
zr13?zIj3hs{C=C6>d@dFDAr*NDLw?;SbxPO@-Q>vIao(T*_lW3OK3+0;lNREvWD4~
znBacHn9_Et`>j|=47EuNnNt}ad;+3w+PY89Pw6(zBZ=#2IghyPbB{{svtICIIqYrA
zEZvS3#DqSV6jBwqU>uP9ro4?Fa`W<-@{n2J+3Thr))B*x(X~kf=-?nY>WfY4PM)Js
z@opa7p?M~q&SM1^v;^`@d?NuSA?3+t%H(|cd^G23k2|rBh^SVeL!k{A+yh6Y$PY2>
ztM*lIl%E=p%oTQ*<~nQ*j8{Ry9w6t#a)@W<A}V`-wl|UPKB{r!f#W`lR#;F2h}vqN
zrD1kvoF-EqMRt#7H!M4&1umEY!q?(7%VzX~1G*L&3|s(51EEYS?S+uGk5Fb=)bFyW
zyO+k1I8;uHDLZ~u_Tv{}K^;^udu2ZkNd$9%JR>(N!+m``8%^n6jgw->Zn*W-fj}G}
z-gL7S#ih$mLtsQGsk61Ek`_C2)R!K0j+3<de6XEPQaX!uL_}TV2UZpmz#<^GR>Lp$
z%5=6npmQ3%)ah&&pr8xj1swKH@F;il2p)jIi1=F53-&M|0}$T_0T1`(rtR{4Q1g+u
z1W-zNXzpjBp-~L&^KI>xzkuZ&)F_5-fnWoW%Nh(6=N8j}m|LEEBBx8LOEOGt5dsEb
zfP{S-qhPt4nJ%k7tj^K0j0buExthY^(PTbP2HSK6!Xrw3qGPWP9JByOeXYiJlDo1-
z^RJA+yBZUPLX<!NY?Pph1}*?O9W~zaY0f>P4{Jnru%KHs5CDietnbPP&4%PH;xzX>
z$*=W?nek;_f>m@7^Q#U;izLtk$cCuZ5j*`Q<;jm~?4_>q<O(cE0>o57_;8v{Id8=z
z0g${ek^lgLBtT?V3YhXS4~u`9#yo1ThO%Jj{%3j5T<I#k%q`axJ*GK)(Z!bz99#f$
z_zGj%&WX3fpEfkAr`0$I9w-4==9<6%@*Bx)z%!nPnvhBJ0u&rH`itw)NW2WW5HKCm
zrYeolnalBz==c|#t4XHq*txf3_A=gUCp&kAnR_H=WzoksPIftA__)Tr2($w_7&QCK
z!>tg5xv-7p0;aL%;kI*)l_1gaFR?JA-qW3)|7th&c9vbEsU}V0{@Oj-ARJo$B{O7@
ztiyFS8(5~9#gvOInc`rk$qWgM+fQwn==GP|qfu09PP8v;$xrWIO}3ba{L(s+#+dFd
zTMbJ9QGkS;%M%^$V-7;k@0WRALh^xnnqz4Z>D<<#5nUocD<IcAZ)4+{89yc4>6u&F
z+z@lRj&($I*jG+O9SS4@;#h>O9*z^`v;(mh5745r*q{}VlwOIHWjZ!W@}|bOY+-j{
zAW#a3p4%MT67$|LO^lg)-S`N7{+?c;xj#3@5|IvqflUBe(ptHXb7x<vxwAUUhbr#u
z-$Gu|g_?NQg#BVJl2<`w%<OLW_oX|sj0J`OaZRMNe=trH;=av3r#<=`<`1vs^lFXD
zX|M$ZF~J;gbfr2%<aDyJJC^<Comxw`O|Q{x>EI)8#Rg-5tmaHM-5hQCEaa8sM&*0k
zpz~U+CZc0vVE??#pRrT`I0j@%`Ie*ST)!XmoGud4A7m5OoAf%(0}?oQDJ{bW9f73Q
zY_qv7rhGl5>L<XJOC<k}q`4{{m1UfHgJ$QqduL_lnZGLstzN-4p3)mN>ZG$AZj7t-
zzY<fXYFcqwka?BO=JY02a;?=^D-c03&?=gPD{QsB`M^YbL=X^&p$NYyow}Zrx5SuF
z%iSyw2YvzBL-}?(zMl5h%|DxtTIa2rd)WWEH`r=WpcY_ZN6T-{+<oS)y)9<@EPrbj
z3{(P=YN>nMmC<wNG`?M9kwy9QH3^^=ko&PziF<y!ne|5bFuhLiQ2BH%mAwTXXaumA
z>)ch>UGo{eQ<tOeV8il=U<qK+zg{vy&m@EG)YvMeO8JY)4nMA(-lfR`2CdHybZ`h9
z^+h^e{MTpQOlAqJyc-LP;8lnw*{%u!y?{J1WG=3c@)399om#*8uz%@iM$>yVxoiOX
zr0G(4a0xUbKSe$Edk-e^(<s0GM`Ewn{dvBR`qOlasbSv-;SmY+&L}|%6?^~^3u<W=
zM2j-LAIpd+v54tI1T@$I#9JyE`?>j~TrJxNG(pi8*8ylC1Q1o#h@4vTz7J|V`OZLW
znY{0h#cu25BC%J~hp>Q%*^4@^lk$D_Cr5pITZ!Pk^s;75epqvn@IuPgZHxqv2Q+L1
zTm5Jb<VOz1M(}W;1Sq@f7-_!kqKNd-J-h35DD?O@%mg>5`C|uTCR7GA{}cI$J2%Bv
zI^UekbNaX@M55bwUIcgm<fdvX_TeIzGp?67Uter+RQMBEUCh+asFI?l6wm|6y-?C4
zp7Mo0sqsEqbdtvc2Y`gbrSkH!|Ca-NpVH{SYUySZ4Rio3@i&%vw*I!v>C+lBLFwI!
z5O4y(rW0xxqgTz<y_wDj+mmFvOP|q1dBbcmHAwXTOO#iF6`r<AA|IdCxPpzyM->dD
z0FB7f1NJw4(bnhoA6Y8nfdHVa_RI#^;vw%F2{}ge&+l37)uGV;FIG<%+uj#6A8ZtX
zAE*F=*<R1X|HXsJ_Erh`|Lka~0kz8#y0lJT(xlu}W>yh0|8oh|aN25YsV%+?v3sJn
z7?-In{)J>J8Zm$kjxq9G`W4l&?FuUhBsc;@n{_y=HfzQ64RiV`7822_uXTzGIp7gM
z>ZtNQCdsvw)iQlebHdx7i{ODFK*Uz8kv#PUrSx@;E(@DB00Sd{1Y8O};8C70m<r?@
z8kG{J7WPnJ0FV>byx;Tf%v|p&&(pJmB<Y(f2YiY3P)A2Mzhpp$T%&9DsW`LWQU#kT
z2dxH$c6)iylD1&GZ^RR$=-Zl{Yd!k`81&I2(j>RZ#k1#XF>_0l^c{%ZbAw(O89npz
zbPIy1S$4yG{ceo<j-acuXy}YTiqd}>$-})-ZY<A(e7SL@#`hpPqDZTC)=v`{P4h>k
zwWnsv4HuJ{C(!;r)}U_fX$3{oyrkO7j4&Gu9v11^GJl}aT`deVB|NmvON64+a%8vQ
zhZ<*DX_=NBf`21kn>~-L&s<*hM-U%TTO2sqKthW=3p!F3bS>S@>BpKJYKt5OLMyyn
z4&}zOywBg*JLxByAV^D}S^<Y1cQNfHs_Dr^?1W=WJoZzKjSvi!)*;c`E(ba^vd5@B
zo7$(JLH_=V;%m6*beHoSzDE1JqkkR~cZ|H3`=u@X@5D$7xWmKYRkLC4d-)<U{?RU%
zjnXeP3C*Scc2fYl-$kvL+!Z$O=$D$K)#mt&OT@ANo+UB)V>@NMzh(P&D$&X@MVF$A
znZ7Iro$$w`9=B5KELo%{98>IyuHxxhCh6B$EVJo02xF`x(f2>@GYy!d=AtKJDIKI3
zQTfnT8R(2Z=Dmtw(~JF-o`lszM9O1YY04kUe|XHhjibzR;(J;N>tNC?#}qob#7$8L
zLQniLAFbQufoitr>zsep8;>R<-Z#^1GMXlHqp4PpDb8ns=&Zd60qC7S=G8`b>xukm
zEoNDJ>22{pLdQKXiy4&KYZdH;a`c$OLW?YdC|@hb<k;3*<Q%Qg@nZ`6sI%p+LMwFQ
zm@m}1IGT=5-DjIOd#CR6^j%B<ypb3cdJ@uON@NUF;=(3w1)bPvyg%kGwN@rx{~zed
zSWHANDURgV{|B_*^IC2XgaN=Q&WBDo#U-Bm6s+s91BwQ8i9^%=F>j7kF7A;zfb-Gj
zZhw%C7n3PH^_apO3flrTNHp!szO4sWrb8Y8@U&wJ`>!ijW8u(=f6U*&Vyu;0rfe~#
zn<FiL^V2mtE@%yQ3qTA1F-ggmiCWy93I3O7U@;Lr2p#+{RakWO<EC?+To3bScYiuR
zV?Q;ne4uA)HbbB}tO<!mf4O<wykURT`PuoGUh&z7N6*sS|865xC=(-OfCylzb`c8k
zXCJ(Fsd0z@hMd@|qa9;P?U<X%9P}Z->^sMDK`A{)bz(<e*>^#L2|!M4b-sz8HAuHY
za6}Nhby|u?L$Cia?<NLzFpmzs4MJm>;+CC>($vuB9`o_7a)W8gvpwndV+y~ZrB&4;
zp_l)dPlcd~G8t!Ey^Ya)lFX>5d9J~h%n}+J_GK^0Ek7||%FI-33ez1LjT1B;La=Dp
zKekeE7CkZ=n*ZLj{G{BWuQ6>a_f8cE9r@yA)CXL1z{?c`=X`k@kJbG~PIqAm5&7OF
zW3*ePpl4ssR<(vBox1AoyEV6Adr63gLz})Rx6UAxd75+&<R5&HYpc+3|H&~Qov0f$
z?$B%+1xYW!QX*1SQPxrcj#hrT3!6GZ+~F5u88HJpmMET@OZ>a=#B1*Aee=<DmtLeX
z={wzDi-+EPyy@C+P0g47%vk?)FC@pb`gBPKCi?Y{`N&*VYf&;BWsc74v_{pp>%jsM
zE&KAuK^JJ-6SmwiXWKb`RwFw^Kv+jaQ@+S<Wox8!kR6fN(C|Q_FaMbD%eR4ApOSt6
zQq_I=B^dPOAM@=}!dc+xtUZx)?~(QU&wC@xmMF|-^dRI%)B*)*5tfNS`~ESXVrUXF
zS(Qx}Gy$FnnkS2jW_-DbgE33bX+oE<gae>TDR9w>f6SLdb#R9A!JW?g<`<?m>~$GS
zir}o)(UaChp>>~E`PWxMvvZg!+`ZzqJ>zc9cdw**HZ~tOUD3GLaU*m(#G$)i4A**l
z)naOc%U3nw)Xsh_2Z$bjF{+AkL(H3hI7Vhf{bGII{3Ei51M>_9$uyhV5!^3Pxvxvc
zBmfp|{KtISs_1y<>FSR{Xh*GFME87Yl=>eW^Z9};9_GT4O5cL_(wKX>kd^Mt$QgsV
z_<<EXH0nb?Rctv*hm_nf-_Xl6TdCbR1Ry&0Web;EglE|defp{pO}OK@fJ0|KOMPDH
zlzVy`XF5!aIRNv7=9kUm9PL~*+MMfqHn5;H{-kdsI8!?6(K6B7j{r`SfP7?(-6_ZG
zhnkCI8LhdXqVfNjFI(Q8B!k`q7f+p$t9%n;BNztkU%S$>8V<Vr5e67-4tn-W?hG4y
zFKk0v%*Yr1YZnCwfuX-&4!0CCnuB93qsJjCVytna7}8>(vp?kSzdRq^Olf=o?!HAr
zC%+^#mbpbP+cky!gD-s*A!zr916I3aEQ5xdiaXPIKAksL0g8tIV=E=5)Ol+BJ%YHs
zF{LsHy7tB4HKrjadU~f9BjXEB&zFfpY%puCiRKBK%dahgMwh<qxJt0xTnX3dy5_)!
zgYJxj{`_Oou`9Gp>${VUY<$(ec7*WEU6D>{N8?<#a6YwxqfK8DXHq&U^GVEcEZ3yo
z)FjS=HK}1>bn#1Sm5lkB%m>>Kx!XRUB~yBZCjLaJ)Sfhe(7k`mmkM@vDY&%mD>X?6
zT^mFt-TSwAO?Ry<Wf9y?jA_t!wvcU^w=VIku*#%;m3!h449WvTz%gGAC{gqKFTFUJ
z?R&MxZ4SocTadvNAZk2{I)q-M38Cq!Nx&FzOu9mw6qzpPR8$AiYq6$?9>=8&oOO6G
z2DH1l=48Hjc4nO9Ilb;6UEBf}L;-TMIlt3!ru*UG92aG!|9X9-WxM1jwj+a5K!RM&
z!4#H1HK#XdZ28Vf7Y-2g0^+ok>uk*(OmEa&uc2aH0|HKgMzUsplZz^afALKRkgTa7
zf>A(JdC{z%&hxR+c*X^MbBxr8_IDtHOyHO=$>d%H?m(Un%?+5-TQmk^v#X&%0*io{
z3gsCI&gXoq##9K-TB!J%e?OdtNX+e-ZEn)r4kiuZ;lL%pLZ7=*W*A=|5Qoi%kN9~#
z_S=nw`lu{<JC+jBLeWY!zElp_1!RX+OB*b)6TL(8fwvS%SR}9th@J=x*LF46@6=>@
zm(A<0R9yc9Nk&#DJ~%EtdY8t#YaJiqz(5-y+uP;JdKWXZS;n@w`rQy0(YN4IYU1_O
zpuhnjE<oFq;O&h1#8U#_qp^h}M-U4*+W$o@7r`~xQt;lGq;Ev1uF_KQk0eA;*5AgA
zSkU_*E@Bo<=oVlUboYy`JFN1%6+UM_-AOn&pVRv_4|&)@9v1*dhkq@AX4I>BP?zmj
zZt|cHXd;spkg{^C!=l??#BXQw-25Ni4(7Sp7KRUMu0;WHA(}8ETK*-u)R-s0Loc}S
zl0KvfNiCaFAgE~YmkYAgcs#i_qz`K@t(FF6gM)^BG3}bv-0TLAvPDiG(df%gwr_z%
z`@U$eQqi|-9-@!N1fQ1`kUK0i@3XYuT3H$$O{c?ZZ1iJTO9$oqeqy6_iJ$-|yGd<)
zE%x-XIYJ-TxJl7`Fu(@^z%gGBawAQyv19s(`S;;uyhynx-?)1Q-uA3q=bxEh$mtVU
zSwz*Dz`BfNtPFJjOT;EjXUnsfWR~qGv8sobuPTZxw}cLQ0I|@zp7H(Z{5&`A`4}~Q
z3M-4KpNak?Yf?ZbP~K(LWF103)`PdtpFWMXMRZog<pcv_Kqw$LK!qLI{ML<hJjje=
z^cl?!(9XA9Ac9UnJhH(2OJ?W#Y)r~(xj`>@U=)C#TT1n~!q>5VTJ$-UpBv5{l>xyj
zAi>4Z^zdnB>yWv;`16|hZp2{n0vdb+k`eOdCs(-c<n&@b&!+ct^$B0r^aWKcy;;)|
z0tMp$FJNuOmvzWEpf76f-auVPZSc>Z9rKj~OZX#gGi~Ntp}&MBL{Pk|nJP<?z&s!Z
z0&NcNx%1B6Df8shJijo?3zEDqV^I;MO&-U2Hm#UoCI}~R*+Osu->)1@0vCW_C6HrS
z{k_F>o-GF3oI3uhM)9;uE)YREAg1Rm%SSubI4xdrQ*};X)0m#cA3G<u4Heu25(YIp
z!A){}$ZiS0O`PA$qXaDxfhG(JK<8;KhX*x*=;E^9#LMSDG`j2?8f!7+gB4gHC=g#>
za-O*_uNh6vCHPH^bKOXvmZ88uAmO8(A+dUT@pP69uGwSB-u$;T;Uf>>ZrczXm<S{^
zGqFr4#$?WB>C}_gd|PFL7rZI~ED#ciyy1qMvElyN9Pvcf?`Yy9{x6+!ZGwS!;Fzy_
zDyoV-zoCnAT+YU$!ESHEQ7QL_85d6F^j)2rZK+?5kOam8iSsuLT$7ytxygI;dzv`^
zvclN{7lZ{8-(lpjpO#u;M=_?Oi_p{eH70<dIk$TWG{_4?2{ye*ZVtbe?$Qr53b@lR
z^@t!a5C=!HN3+FvY_muYU9^)a+|WlKZRVi^^h2!W595sDGHfMNwNw^Z4de+0CUtvC
zrXOjZQ1|TbDkIbXeQYH(A8wp4Ht5HiW85(xj={iqAo_ol^-f#HiFD|@a4muNPc*8k
z)Xf{f0^Nc5k!=KY7mUebd*bP*nm}9}yB)y6fFRd{%*1hXz>T)EBgTKGaYlkOb}D$F
zJP@gsfcrez>TfVz_|G+uJsi9jED#-tBCOR!aM>28t=#0ZUuYCzXRSpA7qkYlh!$<-
z@<+eagg#@GU?rXO?+yCm*3!(kWIWqWXyy2xYs*V8;4L`5(nkDD=@vcVxMEi=A$~S^
zpe<mjadZCWeB00yv5teE^JgW1vf%hi!TV;ct~8ZGn5(7NJ<ICyBrGbTh`Yc`9fo}k
z#osLoga*gGGZgAL<aUQ!u%w7~x6b~>Qj5bOc_yvHeVGEsX~I=3AR?j`IXW2VAT>Dd
zU9;MFFk{C%B}QvlMnuHAYvLFn!CY{>UMfB2>hPn-BNXBCl+(CW7=G+{t)-|`!9C@~
z*qDwVSNPq_s=^&6I0}xh)QD~elbLy=Cyz&5?#th(1p^Dgaqn*qk}<cOQ}2wt*i92+
zgEg1`L{C1h@HYYI4D;piAR{<l?*uS55U1YFBX|l{u&+)40D@HDxVLf2lWR+X&ZlaW
zaoZ%^W|;FoI__PvaxXEZ?0~2Aw3vO3g5+>tvd03A!11n%O0y9;{xligOo#OJ;|jYf
zqN1`44)y?f>T>esa`1-LGh#mNPE}F`1Z9B8ZHy{#@w#VfKJCuY2Nn-x0mn<(h_1#Q
zjt|S6foEYYFN?eBv|T_YVIU8XyRPaKm~)iQ(_}EFXCGJiHXUvT5J44i+y{QD4TzL-
zz>c01qX4^HsuCE;0gijWyX_8KH_yo4ueU;a1Sd?~{VLdC4LB~b_h759GktH<-1CY?
z;)(_Q+~Yp<TvlL?foo&2H8yHxOt)*Uz&52=#RRj!ai1<;LT%(|u(%FrG_ZradohOL
zo>-LXqQFQXR*9{$>zS=({>kZ%eOV<HEbtD9F&J(^?Ax#=2e!;bc_+k2w4p|KIhI9$
zp+GDMP=uG9D)-Qmtu1oXIquTz-7o=pJ32TCctuRg5+I^-Zbw3M_I+)-_il|*vyA7e
z0T0RoarSESHH`ahaOoZ_;@;(p=or`G;6O_tA5BUB?959eEBj1+>}#rDpm`3h>a7hP
z3<a%MzMDGq!h^f=D?^8VSL6;yo0~R1JmTn+B}Yprr59=B3Wir3AwZB5h}`PMhv}O4
zYUFm@r1e>vr$m1TnflBh8dK#oWXG_iL=XU4Sg;cuuQfb0XoC9A+B%D6?6u*c1sPlg
za`u`n?dB$;bDC=`qD_8QaQEMTe5E|J-SZ;#&iH@({q*HVS3jUJwW~-aT^$Aok%2se
zDyJo-voXi?9#n1r4w6g{2#x}AaOzGkHxXaZL`*teXoCh`0@?WC2(umMd`V;9cSo$t
z)0`iYXDq2kV^PewugX?s(`Ai6*GOAdu)r)JhI)D6>zq%5S?6Ffq$`@wwQYiI2@os+
zjS$6fblq&_s|ORJuwY;Yka$3qaLcN&haoQ_72L|*RaRS%zy!CM)N?k4>dP~{Ih4~&
zG%BN!oeg4w4?yCxO~36zHn3gxM(te~P18$@$%b(dAH`Z8Jtzk;C<rtH^3mHV?riJi
zH%9YqdMVbir|yvg3H$-A$BBoM(aR3zI58H81LUoh2M*mB(qj;{_qtz$1Ev5`ie>(O
z;n&#ED8<%k05x)rf!xIxjgEfA*6#F5FO%WW=az?>tB7p?R|w=5uml_p|Hpl)TV0D2
zUu0ABoBb)%*KA@f5q-3s*FzN;d;p?Xd?i$wyJ%apxdK&H0k)zMi(BQlJ?@$R*(>33
zh<RSbTa<T)zXu7xai24XK`a>;M;R$5F`MJ=Cp6ZCl^U=WgL|nk@CV2)3_F+R8tB{R
zKbm535w+CO&MWXi8X&fLwJ2=M_8{)=&`e_{v=^BP9=HOK_d`AARX14t@oY3D(!|zU
zD?CexAQ51>OnqFhN?O<#LX$Apcm-X>P8C?N2T1;?QUE+G4V<~I$se`X6c3wIW^TyU
zDlIq<E#_R2y`9?iX7;=O(E4#~p3sga^%-pPSt0?{0<sfJ7e?8PyQ$fUEf-M0iu;>l
z>lAaqgzs%?+zI2uk8^s3=JN=R7HdF)TR^gG&EK6QWFA;fuhiJDUBW#eC<Knz``5_W
zq2}wWVy@qakvJ9&z5mU`B{%rK`hXIbrPkiRE#6PrEj^PhxWP$ibzY;nS3CXPDlj_v
zC5B(WhVz%xoL;Mmbame942M>Imic`1+Ljnxy?VLClFZ-w*(Svd=;^SJ7|iRiq|FFR
z(jfA$l!=-5AQbKWFhVMgrs?%$Ot05CH?2LZ423@a<Gzuy9Dyfe4$vDk)_YqlpOMhG
z&!U()v9s)*%YSn}R_%>gLPTe@vb??|2TlLHKs(kioqNK>H(>?(v3>%A*8bzA#-3)0
z$x9G2c1fK#Lv%mRi&GV})TDt3Kr8~T3cHle(~T^<)=Q_Hu<e`sf^)}aAHGH7?N%zy
zS~0;8aC~JsHDcbNMtmz)^w>f9ydB~|G9dP=P$fBzB$-pNm|E^;W7fY-6VVKkFts3q
zd4N~K;{cXW!jscL^mZ&LqNPnuJnyA|azNZ$-T~|LUFNddHhZzZFqrSq=$Xo1sv&`L
zKtinbF;<qfdodpO&3~YGYK+>>=~!i0P!EV574RgJ8{V~k7nTswGS%%;0u)RHHBYA8
z(#=z8-woL@Ot3MH;-vw#|4_0_O^0wdzmRRA(RMPL(|fRzhz7=3zq26*GzDT|)=JAZ
zjc0booG0_KyjP>#y2{lGOwblIbAJ7+7uI_-%I5t6y>I_HzY-is3`9wV47Ev?&+XWF
zbKSmQlZuTp154<jFp!NIn5aFN@6ZP{_WiOE-3Acc1#+|9m*l&SKs(2T<<klE#>qxH
zrVm1VL`g?#poSjGE};_}Tn4fQ17&~tXlt4d=|h?=xU7`WVS>p(5(E+)%*I1`$yDa_
zVNJ9l7;dZ~g4{q%%|dsNjU}*{(MKRMqKZ0j1vnVc7$BG`ollmB)3tJcR1?Mvbx{>q
zATl@}Rhh!tpzo0_7aV;IYdPS`l!hoU81PbWcg7XX2DVheUfgE0?(FvR-F%)-dXv;h
zAFi8ilgxPz%g2@Z1dl9cRkR>58i*@i;*Q|J5q&~qDzvds%t~BH|C1<%z!bOAl)g`D
ztheR!;hMAg{%JVw=t!KhYxJpui8~4&s0QknA@fSet?9gwPiw;e-M4cC9Hat)B+GC_
z^qB)lvKSmN2()_^1>?b`bvCDdpLqyR?^?FQ&mO#I(IF1J1IK+4Vz@1ry;t9Z{yEK!
z71Q!tV1tT4@-sKmjSb3fShvwALCZKswz0H7O>fZWHA^XBxd>e+Hn<3oGx4K%Cpmoq
zVk0P@!UKH^dci+E?hB#|70b%L@A_xVD@!%U%c3vFoQ-Ary9FGq1QHFZB#PbeurFz%
zL2Wtb%8al-msou0%vx*x%bJfkULTZA^nbyNxGm&8Tudh!?IL=%oh`=0b9Of5S2V$r
zNGGCI8b}Gm$um~pbdXVs9CBKWMEt78&jgSwNoa=!Ie|D7`NZkG^@~R7aRaT{OjG)r
z=H3tp7rhGMfs#NDA*boboX(li*Y|!13ltCxh>_YL=1O;F{8Yc83P3F(`*N6I8j#zl
zV2vMSvt9b8<_(6p=NSd`0&?MVkGx%(ZJ$qfhNCSG&wNYc1p&j#3j%^+faTs{UZ2ed
z9N)Tp#s_Zd-*XYR3;6Wsqq#W%-^PlD5iUtKaE4zwW~3DfmIB!fp6ip%Tz0H784UZK
zm<$b~^)=?uIvS`7Sn6*twd(n@G>#@$y20XR+vU4h)5gKt_ALUzTp+<OR7V>NFk>p#
zbif9O&4AMPG)gI4bRB>Nalvt4ZQb2VnapNP-1L2{C9<7mPmP;S80ZY-p7Z2GXPm*o
z+SRcj(GOH!aFfocfe1DOaXAul$%@`7+OlNW-u!ZR`wulKIY9YJwhmy>6^Kb!4;Ywh
zkcZLqN7L&}2>T<=Iyxf}RbWsTh$5^s#H=rv=)i1q`myG7=xDJ4A~+0W3)Baa<cp2D
zC6xS$Ce7VB<3u1qW>A0l;UVty(|teuFfdpQ#JH?*0PONt`Wa+v$5vK>z+E7|rVF3<
zUVP;O+qt&t(Omu9mH2bb1NShch<pGNGzMa+@vo0<t3UEzITr=6BKn0UBrZVi&TU5p
zhk<<Lb;1MA9)R&6r(bG94c$}<Rb&tu$OTbUM1WSrvWgH_1gxA;*jJ${izX&W4o-N_
zwk?O0Z!hM<?8cOyfJH<UeZ}Xf1RwkdC#2K{O`5)j(U})dJfYZ@t?bEVNbnn+5HlB5
zT4oCmu9^KiPR)YpNt%zLweqWi3HE{$J{#Y5UDzM?uT9O9>YLxm=@u*|f;BYmN~+5M
z$$>nWdJ9i7c=^IuO0;@HaV>N<1$jiU8OZLOS?06eWur>wyO+rl0$bh;4yldIK3Y4W
zIH?}Z<tdgRgWTZ6N_dLtDDV3*Tt_wgW7!z4>JYADC+a=-ex7x|PsdM0cqhxtlmG~t
zgA+be)fP0Bi}B<MMHC`3AX~c||KbUsMW}XFxv1!qPbfT&jvlQ_81yfl@Qx>P4bBvN
z3WP;uM?xu!isAQ{PxxA_YH0Xcx;smT^i<6oYY#L#G;kW6@V9T1^=vU8WSg7JsQ0uJ
z3YTOVnHpe0b8sTcCGl+6Pe1Yhhf7kW!~QELq!!mRk4?;R<bRoD%-tUBQa?j;C)S~`
zs8)RNA;|6EO{;Usbg*04S2N<VcD8(@KTGob#*m(gg+)}x28_3*62O@tYH_eN>YW><
z<Kg-|BVPyMs0*KkwZx=L42;{tZFnF-kONxEFVJL2&xW|Y=P9VD!TpUBVN(&T8B^oW
zq(gd+<^qc2<8a6zLO9_~#bjg9J9YZZ#dMx9Rmx&x!1IW<v+SC=3~tq!M~vhwf(}S<
zAIK-&R>qyvZJG-(sx%xn$a7DuR4LwkRfmrc->%tXT~#6u4>SjI?KC<Dc6X=;nGtLk
zo$Uuj@4;`0_1g%Gx~uLE&Bwbe(ptIio+r1xYtATU#@=6^9&29SsZlL;uu}U+s{{}i
zobVNzlx<{lUrKs~UvsWP>LrtDe>0sAw&^a7L0pD(MO-m5Kwu!-!ddk_Zsme8e79y>
zcz}|NPyquwft>v=N<_K`k`H2-H*mpLAZ|dTN6*;K3!2gkH0DZs$Dcz3ApuKeQjN~~
zVV8P*p=N6;E0il~$={V@N@?#(x|Qzu$&6g;!3Cx-!a`!&(~2pN0W1&|h(!_zZ<x!P
z2LN%{<X+7lSQa)Za6wxjen{!Eyq=AQ+yrx4^QK!aUXKNi0(s6=Lme@RvoWqugymlk
zLfj{EtL({``f^Tl-L$hY*GInGf5JCF)n{!^Mmxsx^0PKMl4RV|oCfp&))7%RymX>x
zixf~4oRBbmeTYoolVU%pxt+S_()6p`*uN*br&dCf&W)+SY@8P~JE5Z{M*u-rAewhH
znOPnS%-ywRT@yDf<&x%&Gm;dOw?cxmfaTw{(mf&Nz8&+|(_}1V@tZ<Ub{Xq>EFvlr
zJ1V7399R!d_|l#_kJZH0%R8b`DV{eEdz3Sq+!ZV~iP$|cyjh*{K$ReeZVAaWbFuNa
zbQSB2;6L9BowY~;!NLh&foJPuIE-%x`{eX6RuWNi5-7DPpun!sh%?b}bltVyz2sox
zOaKI<0`8R3%mH)p7%fDPs+_sN>;i`aZUhOpxcGF>|C0;`>1<9f)z~loPn`o7Km$v{
z3E%NoZ&cti4&Qq4G6;@nJ?QLyC_urPAeytukK%&hk7?}HcCwYqfRIE?_k!==5&b`y
zxSYBBxxD`ko!!<lQJ_Ntcorm{443;Hm!)&mk?%X(eV)#_v3014X|}lYE!f~$kbPg>
zKHP>#n;KiHeJkcA({1a7?@8*6gW1=-EofVFckDIn2613vkP})W$+l&9wi^C%tm)ne
z->QXk8*rd!kR#fl2er*a9E75=CbZE>ISNeBF0lCDT=v26-^s*#nqoDPL-+O+5-mvt
zCBq5dOVl|Ho)e9eIn6Z3S~qXrNdRMm#4bWLdcFzH7%_7qtSDkM$MW*O5;RC0M8o*X
zle5N)AIvk_bp$%xelyFaY(~sA0mDE|ODi&{93*lXj4|6#iyhB#9SgY<Z_g|bVnYDv
z9Yo)m%cI25WyykeH1~Yz5~|^VuR$!P*>IzG+5DdtQ`@qA6LKQT24@nYsG)$KL9SNh
zc9^Kj`0UPi$>|juH!+kes^Wo{LG~C(yV++4aktBIGkrI`Qge&75Q4X0gQ-CjwmBLX
z`CRz$#TJi^qgP=85j`TMKu7}#R1Fe^c0t7Q7*1h_el=u9)ag`UO3}#xFgP6K9oI&(
zWLw!{POs5iQC$;WEF3r+PWWyuYz@m=GvB7yLS95=P-u^NATTwEq%v{9Vl*7n>olKb
z8wCL)fm=ah`l3HrTi8K&cB0_xHK#`)D*C8`2aW~#_^PA49rp{pL6vfC9SrW!z_lPZ
zd?n0!A+zl#JQkI|&CgLbk?<?M5$kw3!X;>r<#q`H(*mN)-kW&HX8q)X@rmy@X;Q*L
zCnW?6ItB?Yh5EVKm83UoVk}Er#2FGa3$hREZS1yQi{7HK#amnAr{xh*|BY;j)`-Qr
zu{I=P!M-}Z6|0CCqNR(D)MbHBLA<z52EujQJ$QadZ^H@?Z1!zH3@8?Oad)mP9aufu
znr6iA*dyCU3%ChMZ^ud_2xay%vpOIY><hR(V7*w^na!7+-l5U4O*^PS0{ueS>+4|D
zIG4Ka(syD35hO2rVD9j8z|0`3r;(hT%=;K7|1QmqzAWom0tP*UC?9L&ZzuDfebKis
zXIypoZjJi~l)`ZcV1k}O5<6UdWdL0e&_6LTY;$^#M*VsyA0X*~1rfsu>9ecViO)0p
zw6-W2_uV-0_iAj)&KmRvHi#KySA>ZIef0BvSV%N2a|8=vH6Hp$;zKn`M=e_vXUB*W
z0Poj0mdmPAE6`wSkWc6w$B`b%=vwd8%-B@}OR4QPSISZ2oIZfXL@-C#ir^azXBV>+
z9Sjce=Bk;rjOO$~RY<WTEteIo34e?X&}7&<WB$+nE>9;Jx<R7!A(iDe@k#d<H1IPZ
zMpqe8VwB35KCFtqw@o`?C~z`JuDi1#)m4IgB<4fjL%VCGDC8f9^RJU#8f|Txo%YcK
z%D)OANE|{=2oIy7j~#>)!bl)t5M5KI=M`nZO>kU}N*~u~-&WS&IxHv_cn!C&EbDGt
zOwH~zTDw0<2F7&$M9fvam!`I=9I!KpB@r_=a5SY)YQjqDxr7C6>OT#;<CL<+O`kd-
zcih2&ssVYVlv#Fqvur#r5}BV?<&hkM(+mML&@z<l#w*E<Qs9dVPCm0oyRm@;dWI8i
zZQoTkC-aal(<n0+*Die)i#WKp?^bD`W)SDC#wqGYQhiQy6}1wSR!36(bNMLhW&5-7
zBB#%5c3fu{0K<W4;e=EoI&<y}|6>#xe@kD`yvcxVSOx?00t-B`Ql$a0<G|>Pnv1WE
z3B*EyR{?2-AP0so3GoygUxN6{%f-h~Y*gSuzHq|Vs6#<sALS!<Mo+C@eb~R8QJN8F
zFu#m7{eH|R;1T_2upA#`400-$_@BmrJev({Zx4M1OH&M}(>S{&Vc=p2>tt8qNMAi5
zo$TO1zJM%Vuqk?yOn2#PnnZg<r!|9uhCxnf-OZVp%kb-(E1}bAniMzR|0c$1wW@5K
z<a7FlCTP`Op~hICVraW)2fWR`d0-dqptO<xl|0l6TdDDwm}T)>noBRtd+LzD#~{-D
zMV#83c#;iAo4fRFjgk%A>SZvHDM%)#aJwFHg=oXfj&d`PVqm<mYxEtBv)k&^g~36x
zAXjO=*zj?}-ev9p>0KKc8{@m00Bi}uJ3RqN&?Ja&Te!l-D|Uvtcw&o^**1Mo<=eJ7
z+AZjyOppiB7*vrAM?3U=O=6;Z@CD<620_BD^+0WDq@E28Z0yd{oPMB*)I|k^gL1%>
zAiim9_bB&H_P5jVjDD#3kRp3ifey}uvT8t=JI{7A+UQ4nRt+^IFe4xkVAf!4!*%n|
zrgz1EtkJdp@7<wjV1W-oq8-KbuA3vC70+(tVm_dsXbxlBK(GoV=nzEB*W1T!(Br3?
z_uAfyUXFVFTM05$OL6DfVz6yq)6X==t-Z8Y@IZke_Cj+Q0h?r8D@i|x=!nMVuJHzf
z2nqxi-V3=`SIs9gypr)4)9F@&@aq>?P(<NRq>I%l5sV44D<qzAI@#DA%TT0WYA*j^
zc%%#mas;t<yTcWgpvcO}h>G~V1Vut2k^kVN&l@y{4Eo;HCtx{IQTwH{3#(nKzjiWs
zayVFP+asQM@<2|G;DIRNq<0O=F*R-r?bDM^DqO?1@SKGLGXe_}b~82&jkk3Rr0j{^
z%%OnY;H2+|MqCzb8F@09-53pxpRo#wG39@OSZ@;(90wxbKXi8eXGUvqM3zrRIyC2g
z?WDqS34D?vP%s;uTnVt&xhc8hoQ`TXQ9Em$;DOQLq!00ytF<jD@Nvzj8>;y((*d85
zy(+(uZ)Z39{EALOPDCevT@GNtP;hc3me17ji&~mddNLOASiE<x<1;OZ1G&LTZ*W&w
zSsL?D=8G9U1q+M_<1V3n2?+ob!pTw<Z1oMDpUxKZ^=v_|@bmIw!+0&{hxAk|t%I>y
z_v~6kfji;k%CcG7tg~&>jGlH<VFgFd(gr%H6i)i|Maa1^O4aO9V-7zZONmIJM|e#F
z47vn)E}fx!rv&L4n&%Rq80c3z5dNyHC_H?3p7nF1o94DqpPq>oMYIk_5BROf0AIq%
zO3kRJePs)ALDqA5mPXyS(a08fU`r4se{(dm3BN~2vr;zk*&3+=VdVz#K%T%-xi0Z+
zlWp?M{pa0}np#1KCv67jIat~>!qbVQx{MSK?gcqz6%TPVG!J;Rx!dPljXChQo>cf`
zVW+bO3GRiHK29VPweP?5;>tknss9gj8`cm}h!7ms-3ARN202-6uDUI+^GW&Jv7Crl
zeOx4<1P_`9u@UV~^i>plw-E~z&@!C#!H;kPAupDc(;XW17L%SRql2yCq+}<gG8-k@
z6Qh^6*~ic2ztNpoQcQLtTn65O55fjs)NikJ_p0*vN%Lapnn%y3gRwNL-i1|0^nXS-
ztG3DmnS(e{$!K%XvtRP^e8s!5tccLP{d2c{gJ>XhkOLhq{;?BET-obA5FZoxjj1du
zz`^Vw=VvlWW}av71(5svh<k|t&Rs)50D;5FV4EAIgX{D{2-#Pg8)Jc*p=?KX_nm>Q
z0ju~Gc2kulg45xo4?)$t(^!)y13RniUXAD1+45F^g3aONO4}^+qG;3T+sl;AQkw75
zX)NZzW|;>Cf&YOQcxyER#06WK*=EyWk16s-$#`^AlD9dXjWOkx#(z3xfF$CiZ_SSz
zFUf=T%%95`-*Z^#*78TW_o0?msUVsV|F6<3a3#&n9n-s!<m-z8Cj~YaV|qZNe>xfw
zLf~MQkT_c1n6y!UCh&exV_J3ErveFP2~kfKJ8Z|Y?p}b@J+toalv#H#p7ec+>>lL1
zlL-^!4odTe`+fxMC5;u=9CX<M4PJ?pD`f)UqB(-CjTw&xqRX0?S7*ZoFu@Rkm|L({
zdec0;oUUkMr!g(q78bM*V$u!$C}`sq*nPT~I?iI|<mlU|6<yVwfnjLQbUQdm9^^>2
zvtw<J`7)o<!+Li$nt{v903QTmgD#1E&3vGXR7S$kOR$oABR-;LPP_^SLI@W6T&wjr
zH*Els_mSDd7k%F?f0(u_Fy+}eT(y+bqcMShd`2GF>-}gc;E_1#`%8b{uHSv-_OX{@
z6%l=`?#<gZ)Nnu^A--03qqbwedKqL#bO`OaDZIji)h|A&uG|Tqe<yfkKB>pB&W=8z
zy`*R=Vn9V9uDdh^${R7ijYuhNXmm}m*DwSN+KH2;RP`gHq1jpR^l1pu+EjH73A_?=
zn^u@ud;Pw12l{>5)M)k&cGnUnSSBQ_FSKqpqB2isw5<uZH`w6>20Rfbeb-E4v@7>{
zO39p6YUbv%)pYc@=A9-vT6Q`x!5VRLC4x`Gn*260GuB4>_jEi(9LOcaycuOS`Qxj7
zZ7zSRQC6j*;TjIOA;hHE8IsNACB``;JK?XtnGhwrG}D-I9>%@tHb_uFh(p~OBjy<v
zq_M5y!_TE*7WqkE&R=lToOSUV*Cc#78;=INmf<y<_l-Z6-AIQt*Z5YgBsj|jfgVDX
z5}29Hd0C{x(RHICu46GBg%8WQo(e>eK#1jMY(y99vQaMY9c(f6<Cu0d+897$dbYuW
z9D<kdyrmxxYaIW``bNPgBja7(#KIyf+*O}ZKpJQ!B!yYYr>5KEj9#INpS0#?84KhR
z5)<fT!(^T*Uyl9CnCrZFCMwd+LJa68>V8Z447yy#tM=`;G%&$FA<~<b8C<}SZqDh|
zkRCz68By`!aX~&I7FQ?Notx`w&at_7&DYmxwymC7uPP0c6>`$+e|y>2fwD4wttMC=
zwXzaAC@sWVmu9~irQ<A{(d#rhf=0`rM**9~NngI%Nvr8yot$2;apH8;ogxE_7f2Qa
zxYAhhc&@b3W<R?|Z_p(CBgok50zir(X6h`<M>{q~Q@pZOWpC7kK8wHg^+aJ%a9+sm
zSMA1h8stqXwc6I%S<xJSkL592y)8g8KF!?56zR<x>pxJ+1SF7Ihyh+nK$wR>Z_${0
zEr|?+0}cy`%|=et&FQUJKqPVI9%uJriGQD$_**5TFduQ3ug~!I9$CNtd@Wq+O}n>g
zRvNSsBPD^&LX>4-V*F_8=gYhutBM$jwQLT(pn{j;<Vt7~3D@l>LwbiM3D!|bXwkq;
zfpBPO0K%5_=BMd2qj##pq04706wu(II9ac^#)|=erFUsOmt_M{EF{P$B*a$A*PQ3N
z>`}fkzDDnc;E2kMw){_l2i6IB_D$yZd79AK?8fvA&w!x!XrBEtQuzurxF>?~3Rj_S
zzRYjZdk-jHQNje(gxrm-8^woLMoj4TK20J$awC@T!8(DQ1SRG^ziPh{hq8C*{a8Xo
zg{}L0w;LKzV3uHMcEZV)V}M`39}MuG;n3)hF?|4%BZ|lb%f0tbU@%I^6=`$Gtl(`2
z3Vl#xrPVUgKmm<}2$8^&f2<#Zkh}K~ovJ?2KRH?I(rl|s;QV6IL`ffp{0P3U=;DW}
z5YSA>_OcO_p8J~a%$a!hBbx2y{?b?L)S<v3QBE>916Taz^kQVo)|~bAQ7j>%4n!R&
zYsdrVgj~TcIpT<edk?sO`kX*D9?r)!+OPst%DV)i!AAkNNr)r-zkPF9xGZ#Hmho|o
zB@m{gXrh9R;-oK#DgW+pMAGc>2?&oM{b&_l0D@qm{hb><>EHP$5AdA>6;u+EgX<uB
z^<3ef(xe2VnPjWf;s2~;Vbg5ja#U<jI)^*AjA)i4^kQmc4s-gnMvD}va$KT>fRI8S
zR$#L4AX}K@=5PI+KBIY9OUDLR!9iFd_G>-i&)uf<Sxus{vwnc#z&#<xL)-YAE6K<#
z(N1-l(dRVAL)>_tGCtTT<Uy2&dV!nd^D6xwnh#bdCi!1PUDT+@Wk$;vGzM%3m3eJM
z%b%WH2@jc=W!bpbhzi*sCNuh?=5mP&ICaVc!G&Cc;Zkw712?kaZa+1efv3dMm$1%=
z?%wE<^oAU;T}V2uZKqwz=I5vMWsM0Kw}mY*_$|a0D3sA@^CZ(`+OsQ8=_{I;(Emr<
zw}44@RppKtAcP2*>3I*a2qA=!o`gvVG4e=HclAss{i3U9G6bY^y6SXyWvZ(x>ztbI
z4i6ELi-?Gbh=_m)h=7QIh=_oQfQX1(L@sg>5D*ZNi-=q<;@xXM*4pP;>vXr@2b1oq
zKL0vrpS{;!uYc`A4VMI^t`%-3d#4-N+O&Qco`X+T2@B<%l;B}e(~3)MwPIeEKpPBJ
zu6nb#u3nZY2>nzQ9Y4GkVXhGBY2l_t{&Z^g%(3*Jt`fx+PgaXg-7cKfs?4Q9GscF7
z_#ey#!e=T4?97EOhL*yjZWk_SOvx;4h@mWy&q_ie!&74hjrv@;^krF_dEJKhb0l8S
zeo@}S-tWcxdAACiCfc|(KA|4MoXe|^v4Af~(t{KZ@?w@nh}00nxo6zdRHv%HNCF>O
zY3b#pslViVXXWL(OL!D+uNT9YNqp<S!6nHPNv$#R!*WWIp9{C(E4vexGicQP!o348
z(Shf?eXWX%oR=-}4tD!zm(%py<C&=c*Q>1M!d82UVE?~d;+1On#X5M>lKC+@v9%bi
zV)S^n0pF;S0x7Kq$`?Q_ES!2JmIanp5YwU$nri{ytg`DC&^PjcskeoD;iR0R!LrhH
z-y*ps9dCwfIt@mREnM6&ODw?<w<VWsMeyw^p7t=#N&=c1UAQ@zIDEF>Q+vX9s?5RS
zgKQCtx?DJSiM#Pkw1ZA>m3#7_GrHD};k#9~)52aq1?bfN!uc*mJS$t-HNcLQ@VzR&
zi;TzR<5OD<XMtt(({i}FwF%#^;!Bk3JB>%pEu0lrTH&Mj$R&GDzz?dVZ{<})z6@%E
z;Ra<nYPFV+>3{9w(yhMs?5*J28VnP>%!Q-g7JF@iG<7VgTFqU!2Z<CE#uuD#ia^xJ
zVy`X6&hN==j!f#9j-D5g>_w@uDQNrbi=aLidtG88l|H*`5OibA-rkGuMUoXN%g8xM
zYJ0Jl>!fr|%H-m_n<Oi7e@RC*E+p}SU|4RYOAada#n@|2(xM8BcC-|9+R8+~sLC6u
zRK(##P_K-ld-9p`I*5GnuHREy1hvoDYd7&sr+J-xh?b4pc0aly!EsN+df5BO)KFuu
ztxe*SC#?NR<fsSit)M=0PO?bhQI8Fje4jn`e9C68zXg}<tzawWoJ@%z)LFv~u(R*h
z)jx@K+X+@97$K2@!mC`nF&CFwW;kV#jw3tG0sE^cgVNBngQVUVd#$CieE0EVCvHDJ
z$u#GKBveq;ftMTApT?mE7kl?)4$f*K4e>C^+2+AnO^<hYWN+Hw-0Wd?<>=mBF*r3C
zwWio>!v=soJC7~Y@n10d^HP#02!@*L?M{}4qP7!zZ8ASyLT<{@YkMo$m4)T#i8AyD
z?X^jQOkc0rMSY5_*FM>(#>?m?1UwO853vGS)P2J3W~nT=E<`b>AGhFgy07i?y|S>>
zio(4a(=`_FUf;61Q9LQ_3KA}eXfT9Pka>vII%2PNc=(8GzYTn3Nk<V}S!IJLI6ONS
znVLwrmykMSA&i4=SGRxbb>XTiCPmrN4L&Nhj@WDIOhb4){a~XDSJR!8w2s&oO$gzs
zb;Mp*_>(P>x~m&>;aHW4F|6nc5vixdUR$WgVJdBa_Tbtox;7i^GAPt3!tI{<cCSlp
zAKzQS=M-DjsoeH;C4;T3=^k9an}dyr)Z}6B9<M`)(StWs8Rnc0AqfrlD7Ux}2bY22
zVn=;tC((<&vC86dKw4l4Dm8I%Tepk2xgIPxRe8=#+%DB><tI?ekGO%1^~SEukVjW>
z2y@2L0Z|tR($;CyS8v>pt)#7o7}Ng#{Wv#6y<Abdt5972>1L8FC`BvIKlzx{jbZPe
zy#Csz^B0_`;^mhpW&=kJ7M#qaNrQzMK?^1%_SjJS$beDTgmQg^j1P=#PyV;)Ba2RL
z5S%*+z2#nPYo-?PXS9szbO1FHrzD#Zjf970#$yOP^+9k-q#i_DCVm&8FT4us{!f@%
zdbp*Eoe(OZmIczcQi4n!5nSXa(a6A_{V+|^x7}DddGx~!O2Zx~MG4}m2xcqAIYepa
zDKd-Z@CL5kQyd7jdB`R8y{;NwihKBT1oKr4X<1OTNES6t*lTMwtp}&JJ7w13OYDI@
zz{C6k3v_FOG<n)BEC8j>343ieW#~bprtE)_?nQ76c*Ubk6XpJ=oia;CdzZ}-9cSn^
zc9bhyP8`T_+g=;h&)VSjR1s%}!&#CqNZbyw?^D>+IAO1i6lY7nSK2E*xSei6P`Njx
zmK*`89RkX|uQLj)vGXJnCg6MLm;_1d<|mzMOdpcd#Usq(-bMf|cybjzQF`=_hf2K;
z-0VuSd@Q-<jw)MaA!R7ZunF?#GiLDzeOTU|`E1arQ^DRn+{Ly$Q*Ejzb=MGR(Y*+o
z8SN-P?n$M72NV?cdx`sjJPep%pU)M#O+ikvxJ`KuG_^m-L<vu&-2AnjM+r~m`}b|P
zHx%!Av%PKzcUCbVq`N61Q)dLH4v?V+VZVcC?sm4X4m=oYYv4l8`a5iT0Nw3}oC$<l
z8MuIJb8XN)cWhk$YrMvO6$8jzZdP3yi8>cJ11M>y2ZMMGi6Pp(f-2j2iSh4)Qn!L^
z9HJcsal8fb&f*XTh1w0Em>c$#lOpPy>S4P<$24m+Hqp58f6mj*EDygKF+rkOAT=y-
zJA8TH4Lpx%lWtMSZ`@Xg5AVF9Ef+_3&bnHJSgCV&m8FpJ_zehkA8_%@e2+@E_R=+B
zPbHy(5&^NtM)=g9z-icYlQHc4t}|^<ucBc~`<6LKYCeFn@4d(LZ&P2wGf33+m35AR
zpw0p=O+hu9XkeMcr=MA6r!T1ZBs6LyfC5n!XQ=(D-*uO&=vYG&T1|(l5DznfXVGnS
z1Us3itAJ26wHR<ae?g;DbfA{iYCZ?grhDDBE~*4hZ3djCaGjKA2c1r$mGZ!KX?{)>
zUm&+jb0IdhBXAQc<-VL-ZNYP^q@hY&A%#Uf2HY-|&Sm0=*#o<uS7jF~O^`AubrW#%
zT?HN{%rM@=3~_jV75TYkeOXZICxG&?F9$~Sj!oGE=G*5({iE`q^~720ZKwqq2b-pr
z_XTuAf+7VCY~F%g1hpS<1`Q=iJJDKu1)G7rkZz)+C}4Qf)!|Ve0&<s<G!C_Pl<oea
zDk`mn6r$0nBY~UpbW_~W=*1G(clc9g`WgM|UR!mMIWab9>C(IiUQ)&DE;)kM0aDL^
zy|!p7-3&zkLd`(5)%sGp2SG*a&~77H0n|mnx#_Udyz%()V`FNQRLXq19qD#Zrmpm5
zRo0;eGI7*mQ0ggwH-I?^S$o`0PZJ)(C1i!W*1RvL`&$<T&$iu~H%~V8BXCAJnh9-O
z-;t?3f>&12-C2{v$D$4d&ZNp~n$jBdkHf2~yfHy176heE1TN*WgonL_tH<WIPTg96
zf_k&zW*ZgMtE(h?9EcWOfJlu8_S({k(jHW%*lANA8T4AZ6#*-&Vy`Pt4mBrm7Ded-
z)D_FGt73guTi|{b^Y1uym(!5XuAbLdF~5iO_)9K|H|*V$JR+$0Kw|4G!5gcD=(l<J
zv6V$_4BQZ*HMRjkU)SE>rhe#a6Ef(-o2o1)g0b1l0#Isju-7sTvq!1VaIvQ{78?V-
zsll7+W(21wNl$Ih6-E6K$X3hg>S$-tTPo#QhjfZePNTOv@uwE49fkMfN*K1_Z6sb$
zOo(#*WnPR+JrO9ymg>=uPUYLH*hZxt|2_Zm51nn4AShroWDVX?C3aoRcF<td#=sez
ziG$g&lMcMIN+dA%d^d!lZUs(9W+owSxrxIw-$jB2%t_%)PYa=D2F^GuKFe#x_9lmS
zS8+~-2ZcFsYHi>`MP$nMnz*^XSMu(M+r=7;`WCoXQkM5#*KhHCRkp24dG&R_$I_qq
zX^j$Xt~;_@eLmZO_tV`4|2?}$QXaK3aBF8hYUAn}A3Jdj6@9k_AD}xDRIJ*|jR&2E
zq8<h)4BHl#@>0;z(nZc6s`A3*ycdU0O$?ll&W{Ri1f6s6;VRi2aljFwskMPy#D4je
zx7IM|Ym2eqBUKi0VQp7FIQ2YmrgA!6xgKmTtp}^{(JH2LX#&(DQvU)!-!ed>13tF1
ze2WI5_5+mNO`ezF4*%Bw`FN%5ZpkSOJ}Pw{pf$%?Hrwy!6IDE}qKsX#)y?0ETzB>Q
z)g1Wbf1m5F1yC!3w2sU>qeuOHQiZ{%==ScA>qzO5KpAn=n82Acsp2-|o_xBBIa5|C
z=W$T}-nqz8b1iHg)Bg^P{f}X|<p@4gCCXz^%vvY_q&@^Lj+V{6wp;L7N$^gZ%Wc!9
z@DJ{B?~D}2EseR^x+#C8qSDV*5v)<P&>}o)J+RkRu%xRrP3-*(Rh-LVg`WxL%Rjn^
zi*IRS=^T8qN*XlJUPTn@KHx0>)Cnj$O84a|Gq>b86+a^PPkU{>Wnt!^-Bow`l`0O8
zEF*!q)KkFC;uK3jhjHO+B>d(btylv`Jq9RN;iC7!df37c{*3aUkq!-CujFOsW(3lh
z)N=r(;~@YpsfgSAM0-^&wy{CHMr~k~Ow)a1>H2FQ0pFk-5;RlK&0R{wQ2znE$6<{M
z&#rg;QyRZn#fcK<;gdqBF@dv9^BctI_95OezTcu-6C42~ZbOrjLX8aEz1g6&R}{3;
zhA3Xg1}n-{G|m3t+jMV|0^)4UyBwZc8o0&2j!jN`y-ws`NX@0bLpLL#8WEJSY08kP
z*#T{r+0LKFs`+jeMLw*VXu^*9ziteuv`*`JqwQ@<CfI=QRk0@X3ik3)sgHrPrOFR|
zNFOipeYz(>0ZFCfB?^v~_)qtqa5Gk78p`De)~)fS3*UcG#iOt&l%&i<q^<^KLBL)=
zP+J-78QH}kpuwc}1|!y$GQ)Iirl)37=h&T*Yw&Q7kqY*l8GIMy&jqAb2P4*#YGM!M
zW9v#KUof(5Pl`aOXTivxqQ1_iRPUrIr-FNpRPdf<Re%<nS{RI2m&)%A+wQi)O}LPR
z3ySCpy3A@MYF02}9mssD{Gc1RJ8;oR1sg|1!PmIdoM6Q62uwdj!)VEbWYtePCX3f$
z?Fd{vBJk^m@f%A7P=5lvt!svC^0Sty>F@OS8>yg;#5;YCB<f(`)+Bie$V4z+g8uIV
zMk?5eIZj6sj@lQDSS83jUgdPQ+Byoe5wv5tgyc%{HAUp$Bq((^K<P*KB#)FC#}=oU
zGf=k2xo|6jkt(aT^i-KNH1#)d(?s6i(l{;q>DC0NC-1PMX2P>MFk(Hn1iJ{0i-UAa
zf(%1GNy#%P4vkpf#n(RAQ#{%T`fzxpg3nf<${ZN=M{qMTQFmlWALDE7P798XR4|{4
zOPM@K>X+a&sr$qAcDGFz47y6SoP$eAynvmT21?vU4m$NxaQlZVOx3l2T6fk+zM$(x
zrofeOsE5Lc&6$=e)<Kta_hlr%q;P8+x|>B%=Y)bu9>V3jG092JLq@FC%niiG`pW5P
zYGsZ6!_Y5+D@H1K4u!4Ba*(NA!pNRf+s(G=4RR$(-cj4lcA`1R!$xccNO8MdW4$fe
zuiz@W4Z$gWmHP4~1yRccr<OCB#|6ESc2{xYI5)r5TTrTAEop$O=|%-DD}~9<a*@<h
zVZ>JYyO6}#a->h5KM_RjW<gW}nF&h}-W9gs7~Q#`(myu_QcWN=WXMdtPOrPFrrx!?
zGxZD_^<^0GNHXon<W!DVS<~5^iiM$e3nMlFw!Vgj>ts(KdZ6YSvyrYJso>rj7_(&;
zAyUJI%wU3g2kPG&c4sgR8g*ZATQslpl}@h*ruOqj$z~}~9Sli57o5fFb$Pzc6p5R7
z^-Wc*gPfMpJ{YxN7_m{iAsN+ppyqn_d>eXQcr@LIAZk}7ZR-i4-VGzR)Iir8Mruxm
zT6I3Qiqn@<xkyOVtihQ{d1VmVHoduunKZPr!Z$w0-2CQ4)Rm>*+kg`!QdCZj2Lqsm
zOSXCnj~X?&m+r@T=at{B_Se?TD(HiMmj>#Ym-_Zon5gp73xmn!La42STY>3Bay{<#
zVX}(jR+^VaIBMU3GO<ZW`ius%_D)IOgcDkN=0jrnO`+5W@5xsBt6PkE9h+5M)(aSJ
zsphv8Rru#XQ@4f@%Yn&>i>g2F_SSn4#@HZly2`x_3%Mqssh5NEW%GFZ%J6M!%Vf4n
z7-o1s0EbKc99$SCW4>U|@l|DnCW^x5s~B`bJ1I{Pb#QREXDf2>Z?T5_*h#FDTwhmW
zkYSIMBdiTupxYDV4RQ*8%HgS{!-%C07nAT%8^dCiyQ#$SLwM@r;HHuJa~nAFt2UIe
z183-71RSaal6Ncl*wo#@y{oc=C(-;djV{j89SM?mRnNC1G1TnAjgp&w-ljb1C~I&#
z-IJiH9!+F_R_DP|;|Hhplf*Ekrm#EilO(1dDZfIRnL(pQ5KjFzbh6i@SlAy85o2i?
zIpI&1`01qbG@#Gp5Qw1e5F@s5A-!QKd$FzF<Q-Mg38g!r0i+%g&MqiCp}DcuZO)iq
zjx9`MLDMqb%aeC0VplAT8cU2=eq1RBg8G`6!q^twsGu~xBHbb>ih4;nMVM`ljasVH
zGf@jzsj{p}dv5!%)I~y}4|Kb_=1o*3yrw>U8njWcb~)y^PIudAC@hUdrxzz5aYMsY
z&fh69dzzy`zm1zK+Z+XW)YQQlyz^T~yjnV0UtDTT-Cl=|BztA#;VEKHSOSFFIyl#1
zeruxLjF%c=JcV@{U6N69{D+aD+Xq`2J_faR;OD@OkezUIX?!hItD-N7DH<6~bD<NH
zz@fGd&N!XlS{QVfJY#Mej~)k!MQo%gRkO9$UR`tIa^R?!0}8#E#}6Mof|z7oS9$a_
z0`+j<*E7?@ay2`2=Se_Gg_IGnuCH?<d=zT9Fk%zK>JEZ9Ttsr*;?zuCPnMaf+0%=4
z*pwuO?Gq)AgDu9So(gVT<@I3FMruvm*of8DD}xT)Ey)O#F0w2rbzE?6?fh25hE<j(
z1G`$L7V9(cR7upvNOyr5Cq5sMnk(@9nZ{_9dA(1U&mW9&(F!L7>Yv~u`tw_h%HCT#
z6-1L^5Dy@PXGkJnMh2RSPDTobx+(AwX5aUzxzh{qO!*KFpFxO7eHB>0)XxVUR6qLA
zU3ivUPvXJcPFezl8XvH7ne6m}cxfD44o^ZDqFRM#lc<u4Wg}_@FL$zXu&BAgh%LBP
zQ>fEc^GEp;Q(dJll->Ir5?9jv(@sacmgZs#h*}r$5H1ez6!nvK8+fi<&%}5k%@QAl
zIu^J9tlf(mJ&56XB;k1F%?tsk9RUy5(qwBY^7J)4Uq02Nt;mT;!%*V^=l`>6F}1bI
z;ISXnqh_F-w-=Dyl4FEQbyhww^%%fAx!lZr0GzYfp-=tT?cLUn*Cy@h8s_*9cp=?Q
z36aFyO}L4tqH>5#f=_J-SmkJagqJjwJFyhQi{$Siqt+OPnh!V!z}#Kk-Sdn-Xf1*l
z%N0)k^QIB00|5(eY(+~87$UkYfbN_<^x-8WxP&s4nQnPd)Of&oebz>p31KzVBNE<q
z99}93^A=be2_)(%;B0c5h-Mzvbsk4egM~1Nl!5#*Np7-egv*erw}8v1_@*+Z@YaLA
zHNIaif6Il&cLI?b0`OZ-nCUlK!LO9tlVw)_jY+A$$+lRI)j6rp-FTJU786*qlm3|-
zzlGv2Vii3bZosQa+#@P$Xmvet|Jjtq#WmM#4gkUyyjDJY^OvbZA`U+<7JS^X?iMPl
z`lcDY*GWPo#e<hbBa%MrJY2>)ht!C%3K?E6-$7H#z(XNEzRP|oLq6#D@$gXVY}rZq
zM!74xZUD$J$ipLsJ#Vf!;@ZS)v{$=9CxSQ02Q>fv`Dnzc=K;k(IT5s6+g^CHB*9lE
z&jTZVJX_)8xH63u{ua3v?k{gfApSeg$fPqeb7H&!Z<9Yzsb_;=M0ZDtKf)Wv=|0-j
z@OBb)edV3PKoGk<<@cHqd&ds^-o%Lgk!M7p9?@UcH<i|ccUCYW(&~s|h|He0d|d$K
zT|2UTQz4K);q`N3D-Or71`RiRjM=_h{`#?M%`0fjf)V$eH}EpU4c@zx4ZIAQi0M2J
z=Nd~<x39EHyaMl&`!A+HH>PWyTn~uY=KL0o;#x9+b9jFR%U@qe3fPAsnmDUpxAc;3
z;0Jab3Cwi`Kgg?LsvE@tMibP|s@wwjP=y$pu3WeBQaHo{=l5k_uWn%bVfp(ioF{(2
z+P_3G_cqR2eX||IM@YbE6%P%sC8{=CPN;#K%Fbzm=J{i@QC)@%AC=?;Sfe+6m7WJk
zWNpt^cj2Ciu%i{p$K;`b!qAb$BJy^2KfzUK=lsWayq_=_k+s=)Gh<-~;1lu?OU{7S
zlZV0QKb7@fKe;PUm2_4Aj@8EOV0}4+rNtg5o#0b)wb9iVI#~%AqE7RJ+3@RFtEH^)
znV_k>o=?l?M{X$B!y@i<PCyr*9)B6@w(xiO%q|3UQ<y}cW_86oyV<-yD<9Z=10k__
z|HFta)t%Qy`BI~|5;yu7`um)G_vRv$Gzw9qd3Bq3oqq1#02z>9kZZ=Az#jt<DLR#p
zaa!byJIKeRw8xiNgz{#TX12!Lm*vJG71t&qhyl%kK79kXBBA0d@<3na32yah6JN~)
zCye=PLI@`*IPtYz2u|c86Wf_h;F(Y%wzRkWb@_{0*H_VUCJZ7pv)&jF`q9AHl{PC4
z-;gWBrn#DwZw8F$$s?93x1=`L=2A3Rhi_JKg1jUhArQ5gm96tNO|tA;aucS&XHBHc
z{w?_o-EbAYy`yJP2*masv0T4I5XTSAT0i_dB(bF8YFKb6i%V=@9!s;M;j}rUT!Zh*
zLyt&MwTu8~So=^!?#<to?Q?!_S9ay(!~H*2x60HHqGr3jWa_6{@O^o(A=hz8pb;mR
z&H5>Qh9$1`nP9cuG}}4+KpyHdhhUPGod-vJTok+4w?3x2^LXR}c3a)EPy8ZtEf9tx
z{_VbE``FU-;2!&S$v(D#M8Vz1_OWrS#u`hF#f7QalW+ma92)=2b<qfk2)X+b@joxz
zIj3Bid+ig?pdrE2IreAny^pekW+)cIRpq~hptlaVaG%)3%Nf=L7SV6_QDl53fM_k~
zn0O)PN)~%)$G}A-b!cRK-9WHj%|#^I?LIOfCT*>Z-uf=yCsyRH#)ixx4~J;9`;zr9
z4VR3+-#)R^kxdz<^6&TOXHoCA9UG(iI(UG5R%R8ck3^i;eUu=#dUm1RT*E?^0KyZ!
zUI#8Akwb$Awvs8Sw^MjTcil(UI0YHZU%`m{A&bHl28k%GENdc+nt-p<*fp?!pLnNe
z;ic_9R^&S)FbPI{)P0#04Q?m5wOb*kbl~7VvEDA(og5soQ}@{%i7^lE8uVf~yiaU9
z=U5mBK}=MhkXFGN>-^|Gu}71uCKCqw19>u<;=Cnu;)DK0E00U%$|J2N^AU+-y00v^
z$mV-(-_FhVTx6o4vU;(5=7cF6y^JJp&-tH7l#4!?=O`&TbuYGMNCcP5SAC(<^zevX
z$~!K`-!P|K-$V{*JBBOdTVQ@P&qpH~DG#SEpgD<=VT>_fDYs-GT(PYAL@kbkA`U6f
zUS|VD=2f?Bu;?oJpyt~YNj##4?xRXIWd~>zJ!-FZ!xrw5`2U$8ItN$Fji`2)O~pb$
zVtMW(ui7LTaL+xqPwd*{q$#}J_L_Zc1oP<@x>8R4nesQUl`C++nkpBJD4F{xfO9hJ
z`hlY3@;!bvr0J3bAyy`@1s&i~cIxRU)NL8y`U*BnI#A@{5DAkFLAQl?+cMlBUwH)^
zl7~iAOny9T37i~v{@{)Bm$uqOF01Ffq``=S$<Js=lS@+(#u3`9gWe#5o8%%5uZogc
zSui4CvPtiP7biIq@@Tolf=I~8OeEwn{E)tyJ=y6kW77Mva?7GjYg;&?S9%t2Ppcst
zWxTn9#hWgiav;Q`%y}}51a*25mW7_!g(qV;B2)5{*=aQuEy5s#3HfH5YxEiz;zaV!
zko1EagJsQ6he`R)Q07-VJR(N!qgbH5v57XoDH1j`7MS~R3WGS1Jb;OUVz`B53@-&O
zt4t<#qqA<6WqNjMc6^~e3DfeIq_*%TDnxHjbuh$P^nwBI4qVoKR_-YmK20k3K8NCt
z6d9cMtiySdTf#1>U~MK(G<-a7b99$ex-Hj2h2Tfg^G^9~xf(3W>2Eu<i}IZ=cQU4m
zc~7$-t7gvh+O2t{3CcZ{9A#xuh!Dsomy1eZYddpKI!}q-%2^UQlpIhH>d1l;>yM|a
z+k}aUbGzKOE!fY~e4HnGcDu8Em0Hyf@RQ`$Ly0AA(TLs0{z+2BS#Rjca-n4kGwBp9
zvAVQ>Hr8#y9ddP<D{73%fx$kmJ2BIDJm_>_S-y|vt^ougeqF&z18D8aO5@X(IdDsv
z*NL%3LxgD5$LD4zV1-0(KbxDvBx)Rrf1t6^r>2b!ukLVhtsO1uPHXxjSfe{AY5b6N
z4@w~24YV_pMfntP=ME>!6dUd5IBKO=3I2nj*ZL-O<O@6<21!8?;f_t&Y}^jI^8IgE
z43Ow|d2x>QUJLp=k8`YZEbcCjTj`Xo+jc<yo-%3Q)Rq&mi#ijo_h9QxJKXSVL}Iz^
znshyK;fRChiM0vGlZm3+^KzTAAc1)@ujqDzjoFM7t;@t<Q?8p!U2=^^bUdD*6y;^V
z{BF6gRTMJL_~%dI1+Lj;xEF81Q!7L^()=`yKomP(065Sm2JKEucVu|Fd^hliF9AYC
zJJymJzTtJpiN*K~5?Rs%Sy1bnKqU?yKWJjG;hFLcsqCc@;g01{8IZ0idY0T5N$)}l
zAR^sy#ET+3@N5z?l#Y-W86tX}7er)BTH7k)y>2sz;W_dUc!_Q9ArjjzCrg6OLc$oH
zyDM1|14gtv7B>c~OQ*Zoomt2K;CXUWJpj^LDHLMhvCV}QK@;t$89)o3FJH%AS&@f8
zygS5ykUzcM;RhVzw;RC=NM^~=KttTQB5)$#v7<a5cC>8`FO<*Crn-j0Q1*JF(6JLh
z+&AZ4y-2>6b2)S=|LRxvQ4zwpwISG(d$HUaX(r8)3>I<cc#@1`J+fWYFOgdbi85vn
zgSc`T151BxqKoiS`6DGwge(@Z<x=LOn!5AQ(`R?ROm1T3F_0|`vElZWRlYGT@8u+Q
zcPig9w7ggBqvC_4m$!gDe!5sm@=AFUq|9w3K;p;oVB5c>(B7-$yHBpjbWHEJG7g@z
z(qFwp2QOuzzlH_bf*~}>x`RHvRxT*F@W|p2GmhU|wwA@x<K%AK@bZ`>M~<yL^lt6K
zf4zKn(0v)*^AQ43<Gd7s?G7>)joTmLjTKS^`K?A6j7V`j6>-z`tZI1E_SSt0hRARn
zqT%X5WP4fv<IQrnr?A+N;fNE*JA)&`aNXZq<bH8JuO?IV_f{{!y%nL(QD(+@<$}L$
zdscb^glKUYD?L@=+rZ-?;q4@HC~sd{I;??-Jm)sSCBNtr-XT|D>6)Vi5RvHEd^WXD
zNH=>Y3E4)!1&?C(#|*9)qs|e(OAek{&3<0^Pgo=3;MF(7<~)Qe?M-;M++t1pY>YxQ
zIo5}I%QeBL2&=c+K}S7o3*IYVTbUg^3rDm#UeR8Os4f`8zz4jqf@5D)a7t)IlH)iA
zS%ZGP0lZ(XBy&wmAB-q-Y_phZ#uLhIP-b<swh;Dlhu144f)B_e_&Ft#`JhCf<It2X
zve#xKd`Lc*a!d6!3Nhzce<c`F@L{=>LW&e^1%Ju0U_Wz#BTmVXkI1+1l4OVvNfbNY
z@wC70#f3g9-w<+L|7=v~uUQzm)7CTpScToE$TLs6<bSh|l7xl>q|}8yVQZ}0vUBv~
za+@|wD#`&QavkTmYz+hsJiY{7fNOo)Psl_3xpfsen8dteJ!to5ZH08b4gZt!XV2a6
z(||<5+eeHFGvUw9Ok=U-Lb#Gt5TBAq&T^Jf0V*-{vN6xGh{{Mmz2lfCgAqlKXSW)Z
zyTdN?us$PK7+%06g+g3Bo?CWrF#j>z!))(_K5+N5^0}3}-{fEtM~`C}rsm938lRIJ
zJUPW{S(Wj5mbG+xc4~ZXqQ0~^H$8V-eF458*BPmon1&*%9&7yD!r+{;EbI&XqTFlS
zFc&&e2^`|<u^i0R5$h7Zy!~)%0*GjP9MRJ07qm&gB9CZg(l?$d`qhjttxObbwF_U{
zp)YN5h?M8Mfw=Ph<M80?@=1`RM0_aX=<&-jCbBa1vB?^IL+-X@?Q9D|v^;jjsO+gR
zSk{p+_@?}s3M!}^6fyO93~BC9HD*uG)EB14;al6*hFLJ;?0JR-CxCTG_1oKXrBg6O
z;A8vA>1K-a+AdJ=9l8BfpzhO<MB8I!>=hKavN`pU@>V1Gu3Q-x7Ad4KiOk0e(rWIp
zR?Dbu_#TNJT8fmr2M`kR_&C(7O`x$zo2TC=IYX%u87s;_5N|IN4^0*PTg&MOyATh}
zMJ6U+zS1#AiNK!yJ6Adeil}`1X}RcTL+XZR2kY211n#k4yj(Ipix`G@d;2M7hjst9
z!Ndjo#VR|WKalJ#anJo3<I9Y;?v8Y?{W~?j7>ww8``L@4CJM$b#d9Cxpc})5BzHJ_
zuAnVL5|NmD`>FocWl8+}&P60wz;MmYx#VPd?#n~$1>nqUI0F}x$l*noMZr9aMclpp
z6dl5Bp`irbZ@<`<NM#%K^+eg*pROe~CF<~i{bCJPUhGbsz5N`9no5L)F4-@((Gy{)
zsk~^=UKDdRtuk~KH=BlehVA$x^<hps&k?$XCv0yO%H$BWZ$E7v2`g2(RIp#J;mQnN
z1x3uh{S>IpRI8Y+{S=;+d~m;bt1c~oVMrqR?N4TRaef_^&)-aT*PB&G_S3$oOLrZ?
zZ@<`JOs20q5aRcth=*zsSvH<owK_LLjleD?;U!1oO6h(%0*L*$pVQ5Hdz<d{&JFs8
zCS8-S-<*xoLn4YFt39V2)ueZt_A>d-QlM!WjM#qrDb%=lJJtu;mwUN<%gltwJRD;8
z@dlRTflr6$!wy^_-@u0Y^cs<veyo2DX{`~N_P$q=#Gy(24Drok5XEml#i}u_XeO86
z#`7wYH8dWTm#54C62*^AD{XOlA+W3Erd7sp%?7?kS)Xz*AS>w@N!o5xp`@&9_@Q)p
zoUZp951MNsTq}R5OqCtO5TB2?eRC27W}J?bi0X}h{EX9ep4H2|Ej*zIuCJgu3K?Lt
zo}PLn%c8C!%JzwSEx4hI+9+&6V!(*P$9A?^4muxmqkP~p>&ef-{5YeV$k}|LRMJiR
z#eP^$@C_k|oySwz%LQrU8y+oJd<8kBw%;S}F|5(Ou$&7`Ja*f@LKciTc{~#+cd!ul
zL*)nEEH`@!(+~!VxOwawXvQ;6%jtGEw0&q!$dz7}0Fnbp>^z<z)_Xy7XF{&db3Gu>
z<f-#><<zmlq}=BjUKLA}JeG-1Jr6xRAZ~Kd>C6Z58k~~9ymTTt1w|A+6j<{gGF3v@
zaP<YZknEC!)T)&yHc}-9x9+D5GdGF#LhsY^sZ`Q+HXDMUVZ%M?e<x2ym?iPst%J@%
zCB`4Wd27ooglcDWfv$PEmdG`Xd@y48dAqsC??uZL7Ub@A8CQ7RQ-ckDLf76yr!&X8
ztqEoNEy|xTzgLI{Mtr~2);`|rZ^4-zZ0!g@EI(H3KJmkvLuci?dl7{sX%9VtEm+!U
z^p1PG+y~3ut^8g0iM(;xdI9$~;Yo7)F1PT&0TG9fr-N;9ZqltmN3-6ZEMMz|9n*b4
zV)3yfYYvt%zRn%;eIw^^nuMPdumrr1g)oYH5W=#2{PG{j0uhyu-KnC$2(;uHOCD|^
zir@Y{g-2jLipV1?bPGE^0_#y}?#L=DFfUEBIJG!khc)?DS)B3FP(<lNY4_RVh#hEc
z+(|;N873q}>+tN1bBsF^u4~+mTt%&G7MRBg^P$%>8(S(RV7B%yiQ9hZU>-2B`8XtL
zJI%YUX#EPFTu#IKRA02aIFMn>qqTDhAP;=z7FlZ)BJ{Byrm}D4Fe%qa{wxL6;|N0p
zzFenaqCP$~Gd2z9cf)D0U_{-^3sK|FytykOYHwTK;&n?tg`-~HT_LVt<e#J{m`~xj
zOiq}nz6nnynKy6CxJtqig)h0TaU`F<lXdM4;7{>_qMrC>AA5#;66UwoPi$pB%|4c$
zq-T2o&y??#xfA^?2Rnaee>xkQWiZvdEqE4*+<rDR7nxXltU7cx!$OEbkPx0Nf7VPz
zgvB889*2=LId^!DeA*Ao-xFhx4TK~=1)I;<MhVZA$6L!7FN{e1z0#eBoXY3z^3Id?
zD1U*MzTdoJVr+5DG{bm4-N4v3$31~Zv_IC~x~kgRZYE^|FOVzLOnr6&iD-R1dkvp*
zD#8=p;e{2PkOF3=K_ZeL`v(}Z(@|R+NPm%hlT8KwJQQO1d9EpjqLmFu-OpYukIrR6
z+8z#(`}R}P41?^t+~XzkRi78A_v<}=4dJgSHPaKP+q{%SH+Iit&pYMj*K>^L#kte-
z^YsOI+0Kn;3q>?Qlx7c4nF-omc)5HlOb@XJAX*<=Er~z?yi&dsmc$c?!pBaXcG1rS
zok1AEtK{+MjF)d9h`7h03a+YsHNg)}-lk~CiEaEfo&l83BI}g&Yb!*T%2LvPGWxf9
zepw?B^DpMPUMJT}xz%EXL_9sus}Jw8)SL}?y?hQ}sZ!u+KM#i3dOX#zS20Im-YAd2
zEUODCB<X_?L63*cu4X;TFzCndCV9xYP&W`75%oNQUb`ioqI$DjV0rT<KTY-fJR7}4
zmfCHU)6-OM0Nx_slZz8$j7MZWHfBvgTywMDM#6@3IWr-3pO^Iq!%W$RF=gMr`=)Fo
zVaontHgDl4x8AYiyhTom>yOwWq1H@hslT&=2~yPLDY4Z5m{*|<$#!G4A4Kpj`6|qb
z>lzT^^6~R<;y@>c-!0!7OL7o?iugUwR$TJk<<ql^3uEKA!h7YuY0CM|gCi~<uLbX2
zy-#k!74xBpxySE`X&$JQ-(MlrnnxA!H1eObne8q8`CeNqxev&9wPHPD!HAZ}mbN3*
z>7o0OeCYCNdH&G-1zXwt2JvL~bMRrgpI8!$(O5*!b9*OG7>reXL>{j$CiZ$Ui@!?k
zGh@xW25ktZk;?N?xk;aKh&&u(;d#~oGpgZZa$~K4lugV#UOt+XV&=fdx4(QCh4^*J
zXTW_FJ(Ew!x2x32ycU7zbG%*Ux07@nIubav$*8DHWr|71Gu=iM#(N<&F(~&b`TWZb
zO*kN;%W?PxozCPLn4hjP0Ta$^?%9`r&)Wy)o`Pk^{DRNO1*OXO5;(+^<5_|)_>3vs
zfzNJlrh5>?gyU6f+SYg^p3lkOP)`4wEQROu8IM6XEz>P<z92Uva$DdK5)t8eI*^@#
zp`0hw#}?p=@|~m5XmMb~h)YEnUBLUxJBTo*0^R?_&*UGVVTvcdA~#%$&*DgwO?;In
zpQ|lJ3+ZceJ1p0^^KGMl_Pl!+-Pa5D>+-o*m?rR7?7wgnNS8i0>WlCVx%ZtZomSTq
z5sqKHeZqM>2N=F7-!5{;Nuv<`jTNagUZ$cmL8sk<Z^@TVff;0xi1^0ZO*eefD5rYL
zU;K8J7@((j5-3D_<43YnkXjgjr^4IMo6G42#{a>ZCtYX@-<4Zj!-{r^(Z;iSu3?Xo
zkI}mOUIo*bclQJa5!qM<-o{vW%RbNd<ztukJOo69Hg5~!Bc$L5+czH*KtxyLN#_C!
z%H+di4fY%mzo6nEg~1}O+5swUupPeL*(PJ%)|?ual}>L1?m>cwCQovDhUXv>gY7`F
zvZ#@$EV|%;cs*xJlk+Nz?s*`+(8eMw>s|+Tw$L09k=PE<4&`-tFr94S!UN(Rs<2sv
zfg;-4fmGoEX^@LZ)^-XH()#1R2NI>w`sl<>xR_*AErm7!#7pD%qf6LNhTRa_P4uPj
zSK%?zmGBHhB((!nf9X1iDdW9ECwe@9qz#Ql6f`9B;fSzyfFj@8pw@QsB?rWNZ`vUD
z?c=>XbZ(`)(@;hZh;6)LwUIgtW#554=_3{Wb|CxZnkt7Yl-mU406*Y3o4Pu6cTlb;
z3aCOBiRfi0>tI?d`Wo>ti5wbREYOHK+VIGMyehA;>DkjWa8#}`imSXd6tU2FDeF}-
z)mS<?4wsUg>V2Ix0&&S$wfk)UiLirNl$!jN74;1;NJJ*%v2(0Nwch8Ux48wE$;YmM
z0O_EJNXC<qs!Q!ga=Bbl<rb+Xw~>b&;3%B!My`+RzCtc#J-?~Be`xnZy?t>jG6#z`
z;#O}E!<7fbhHfeh<Dn354COp{kC*Z($q!#elIMp>F3bT9PYyqvH%>P)r-Dcg4qPp_
z2nvSS01>6^0NJTaOfyz?>M;^D)QwECl|2yRlA#dOu&I>!3D=U)q4g-0D5b<TJFv$;
z=ew_T=5e`d$vK6y&wBDYerLK_t9qq&@m()hE16t-0*RPr2iWGHR1?V_mwH1bYjMzw
z2N2TS^ni$A#%6f37}zxav=zoTlGL4582g~aLSu`F>9g3n$Byhx@(nLP*5RWOHSIt;
zlbGtuY031DCgHo&GC9*C<T1SAqvn{!b_r%-Su}Vo-NMkeFZtRii%A?dwxyDZKoico
zS#FD#=M@tntuYjOC^6&cSWWxNPsqK#!p3R|L?X2DT=Ng5qeE9GNbu0Kc-bL$=|flR
zyvx~KlsQgkdJ-lp==!{*mIESo8><Z)q}SyWr{tPGH`4EyPfW3cnJiJn!qr>k7Ef8V
zqgTIrD^F5=#w>2`r@IieBaGF<Gzr`$i6sR{gf+GzeYTYiz0As$QW<wE8Go7MC!K37
zwX_Gf6!(^l+Yj^dC(R`orvZth#^wPZ-;Gs(3nXyc$AkD)fDJEFppACSPM|3di*i#h
zYx+ABBBZh5iU}PmR5~MnnslL(k3-Zno*&Nh_EhItx#wHp#%C4h6L@+oO^3nxa3O3C
z)Jr}eYBtyHJ6Q-hfW%j0|HiXz)sNjCJW0L`N-brLMyxdyXnL+vj~^WqQjV*#YBze&
zir~p|O`X>>D2+$dH4c>6R)w1}+#wG#<@7q_?$tp?ae8Iq%R5w@+4}IN7q_rkhKB8n
z(5eu($j?_al6?_EerLIDpY<lRBA=l{`$+p6(&_;!gvS?rCdi*MYjUe1HDwAAiM7TG
z)P#|Y#RqVwT(9K>qbv$>*m!5xiOH#Mgp{Zb$rzf4&g3=?1TonTWQqnGiK4--e9aZl
znrzWv59QYU{U=K!F;s>=-N3H#<I_C4yI8F^)MPW~t=txz3kUtl7Jz&NvNw>$BfcBI
zTD4EB@lm(B-iKIj8|H5K4v6?}tjTqyzTZXqynJ`eRQ%_3j^1D+U%MdT200%X3z_IO
zVN>o?7Wg$;P-4IFlX?j?6Mwi{9w9DC&Lu()Phra@>2$(V<-=O$yb|Ayz4e@~ewvsc
zHR0*<ksaPD(1H>zj;E?_DAQP)o|`=h&yYu0(k*EW0@304%_Yh_CdQrs&y>Hp(vlH{
zMdUd5=9Va*wh$su2A(B<bADPbjYH%&_Vcp`tDc%Wy#UXaZ%@OIYDGjM#kuWi$>rAU
zBR;2s+06;M6bez{SaDhsRVNH0N5^{Z_M+}tBqG1@Jn`C&7+T8n<i>Yd50eBr<rh%i
zVSkCEjclB7*P!?L@;6x6pf`a?R5#z(K+|AqRT<wd<@Ex&<(Ok-_)x@kV||vinBj%;
zI6|S>O++^~hpFYX<H*8`<PTNQz1l$$-;K>-(+^E)o{72BC#LK0;tHEzwyzrD5Z#S+
zq-Q<COXNB--~J@N8xNe?jfje5JkOU_&|6&koxvdro2QT6F_O1I&{tkNyiD%>l^jZG
z(TK%%fRcmSMm4$Wm&?a4W925Y)vsV9mol(ANAGs*SIUE)1%2mzIO4XkJ!CVnzB4lu
zMCagDa=|%?-839=-Z<i!IB~<q+2GakcUW?Mhl|=-p|8oNwx+}GYP<%o-EnHm01*R@
zHKWUz;`TRp;+FdOBD_w%5fr3f8H{Lf{A^U^XmsQ2<$GLVy<|c`zJWECqrAE{mv5A-
z$0GJ@s=?*&9-!(>&B?%CXm27Zf(nroam#Cf_IruArkO?<hBN_5c=Hb9nrT2H!FleE
zR@9!Be2aV@=4kw^ntUtAKm3~f###?zI)LeI@=Q)ioqqz8m~kBRq(FKr+=REwO}v6|
ze2Wh@{6p3y$waeF+q^@r!AkSi$(+p}@q$Yx6XBimmspyWB-$I#(_}ZfvBvn+6ue8W
zDocCQX*6QN@zYsN?#TY{mcP23{UAm5e-E1sUL~LP{ogBBCWS?TN%#Lx+1ufa+;kAP
zyN|GQ<$dx+Uzp<a0f`dFbJQz8nx2}ipIE4m-3srQ&(Y#)CW0f997h1%R5o_Y2jtdR
z!IDT=FCS#%$oUNGefSUw8Cueu?{{#B=r0cJaSe5r#^U;BJBAMv`p^bkULB6Tnh0<_
zK<@oD`W=P-5%~ZW%ma->3^=w2Xr46On}d(a?SZ06M_@#R^ES8aIV<onxyYf1wh%Rr
zH?~BH-TbLB__%y6msRU2C}PQ_;?85rTJN^t6FZ1I8wjGw@ti{+WUSSKPga<7$)*hI
zY9hX|YE7~P;8Su-t(<Q_#5dM=$vpPVpcA+Ioh|sZJaSx?7k7BXg5!1NGWF3~dnJa?
zki6}6N;5FTfy?L}%&2}=zIL<xgY2=i|G+}*#)3jVCs%H{o0BKt^K4I>KILo=enCE5
z*>>j{Yw#c0mNrbKForM6ZRsr2i4Us!60dz79K%vPd!8(OS^hpUK{gMEsBX?xUZO5+
zSU*<ZjKi*`Kz>EOm-;>33gC$HmPrSt`X0LTGU02xkPa%qCUP848B{IvN^RlMJ(zF*
zx_rtcoTDTRk>gldd8NO2h{`wQR&H?(v3G>Zzj7$Tz6Lx18H0f{u36tV<;GcVv%WMS
zG3Z!Z8E&QPQTZ)-STRe`Om(RIH(ntpr>0HCwhbY}x3{-K(l|t)<E_!EvxTq^@E!Tn
z<nH+hLbN%yXI*8;)OxT=e39?U*I+@Ri4RBYxdT)Nq0i+C<K`NCPd?!bj`u<sBG2)I
zam?LwO1>|jgC#-ytZVY0JO^z7iuFi-Ah(<fYgv-M$bWIH(OL5oVaKDH?Kvnm3JSb~
z1RhcA4kq^q{6}~BS4;aIB(ie$GmS-5x`TGNGv(5)_R0!ea8PU==2ToG1Tp6hQsO0>
z=9-zBJ-t|mdy%xEftBH@GlNNNx`Ro+1(OQl!h_=VP{K_l9v#0lwlVEIxoG<@EsaHV
zx`VU}_|z5*TSr^nW__~>7ax>w?*&X5500322WkB!TD!vi<ilCgA(nV{2dO3~%NpQf
zfCrG!p{+NDlMym?0Y7?>>_GHQG<E+Hl6Y-J*TyI9?>)FDdk&J%vKToiR-ePBOyZID
z9VE4#45FD}4D6Rrn$nn@fg=juK?<+t6xG|VUkByyQdFy-Z25KQ;GWD`p6zCAbFhaG
ziZ_p(9IOvTlssN1Cg_ZfD7q^>I7*_1#szai*A|7Scr3+r<1>M)OAm^z&Z4${iOAKD
z9i#v?-3StRYX`-)QvTC;B;E(H3Z0?DHmx~v8Oa&y@~;;h+nKZ@9?bJ05sB)wyI};E
zleq0hniz~2c?Zebw8j68u(JYJ$VV`jL4Y7c$MZ$3Ybvqw+u_P8BGNszEeJ934rcRb
zX3AY9e?^7)v&5WxIE!*s0cxK*qfEuC<r`{Y<icVR$u6U!JW}OYx22W;F}a~q(ikv-
zN&LHm6g|;}$1@?UhHxzj9GW-JlrC!oV%70<w?#RA<l(sd)#a4;<isAX<NeLXaqwCB
zKv}q6zR%=_g_3YYx;t2q0Xn@n`G_0f1`@in43I`623}^C+71$MBZ=E~@u1(j=*M|+
zdudF#iKGk-uob03iB)%y!l0?<6m9`LTJG_bHoHho{>QLYVxRp~5P2NJ$I4$^?noxk
zh&{(Ej^luEvwX$nM-quA$FIw4$qOgsy11~fFVW#Vo5ogXdoj@o`5snK?wyT{)_I1Q
z^9VC#Fq3krnZpf>ieOH%Vc<2-Hiy`pl3Q-YeYg{c*i5la<vNJzBaGk{`K!xoL#9E9
z6?ZTZq0ue!U|Q}%<%cjd3^Cw%)VR#sE~r_#YRWGcPcEf7whmonL#vB<`2!UMNPI2v
zc%JTFvdf+KvaoHFEel4JH;x`q46)vg1`xtx1$Q?u6lq|H^v3SIUFT!^jO7WcyMr@w
zk1$tpqydQthoUbuqdGo~t^Ll*=Q)HcP2>oAZ_a=a=`Ce<*jA*rtoZgF*c}NZBD)<-
z*Q8>Q-ue(vlB<fsTyD~d_(>LrjVqLsaa#c0IYaz@vV4uD8ek-Fh}wp-9!46Yv`2+~
z;5+CJ&TLPg2!s$hj+crbLBbT^^7fWW3WjKLylp!>DF$fCt)P5ci)%eYei9u@@uD&-
z@)?vHmC43qR{3dks?ZoAYjPtblWa^FA#FB@UA_QcsL2*YaHrg^D#$)~Xhd}5{nI9+
z7fepOBcBJkIqii+PJ5kqP+j`0chD}0sC*iPzjgLF@P`o|J&XHtXn%8Y*AqeQV4_-L
zzSjpJ<f_#Y>T2SkvAJn&ZM_4>a$TNlu>1S(fJ6DFhuoQVxM7YkRXf1ypf`x%Jjol%
zp-B35MTo>m<AAWMru2Agi#==DY?Az;$2k_%Xy%|2Esdvz?mVD$G~6u@=N0rXP$)!1
zW4Ads6$?+T5Yr!?*(F+9D)wO3($jYkdq}LNpJF9Mwg^_j+P=llko%NMb?3G&_VI{`
z#%kQ^kNIBIj@wExKT{qY%~eDWh*)SmFEC<;t*+r&^3lu2+z^47XI@m4dxnfpk2M<b
z><UrQqV6LaiMVDc>_L72CCj%}Lmese<~byLw)(^$0#2kfo;f)@33#r2J03#0AX-{B
zfW%RzGw{3}2ar58qNcHC%g<sM^7Qjb_V&+#%L68oTK3WDSlLJ10590_qkCvXRC9AX
zaS(?&)#HV7f3ECQkHncCznr6q#@7O{n&?Hlp@|rem}~4M_%^N4vM;WXs3|ax6Uz2i
zQP^dP*Qm5(u#q@X-ENjIA=%U0e5XawM0I23#XV*0VKgt@cH|}vMPxVjqI1@`Rv9mo
zZ=gd|hOah$gWoVQkEjRP%jL<6A{JA+>)0ze-s1Ivz8+pF-w#SVN?%XBH!mXWax{~H
zt=iIEf?p*!_zJT=2}EMPu~A~uP@41nYPp}6m&)=P&#%cC2(#g8pbdoA?$AJRKtywM
z27>KK2)!1(j$~}7#0DXV(w6av@o<{g%fk<aIWq5Tnm2HogR^zI&D0y^ldd@L=Qo=A
zT~-?E2I9aEYQIUom@=h8DJ-J5p*Yj|lB$Uor)FF=(fGn#qdq=2I{|N&@4$s+N_oIU
zc=O()p~Ybrk+;a-V<ElHYa;U2gOumw<jC4=FP_3VwjOrlumx`;nG@TJreq<B=*H71
zS&s&9mrtYe$~L0AIZ;b~wK}Gc-yxqw#pgB|EMmEF(8Ktz{Vh;;7{fc|4tSb_NgzaU
z<H4gYbS7Z*F8SaU_OnX_j{d~6S-ei@W4fN;-E#F<)KY!SuPJyBKbLJD?@})Bm4}S-
zdeEnmE`Q2%KT&jM4o<T!_WR^>zod@Mha_$rKc-7>*fUb!FCWl?JW2AT)IVoCH`$%m
zgfTxLH-gHW-6lerALJ$AILb!chvZLJM0QRH`U~D4ywr_3miNQkHY(FlM14bPrq!(D
zOSU^54p8ApwA4HNh&=L?&%(?@C0-ocD&C*#da{qoN4HR}UsCqh97yzbO!%05C6;Ww
zM1k|;(pW-wYqz)2C1%LS<qA5d94~=IG&nYy6YbePA=l4^J>G~3$3wStV$kli^s0nU
z%0oe3;}8#l7;!lhe{pVN>g3cSd}`+t-$D^7j^~_nxa|1~@M-yWQ{cK;B;vubtfhLl
z<(--gpV?maC<Q}IIL~v^TddY*0H2ln71?dtU=R<E)jXTgx*+Ita#JqXtg<-7hdW4B
zGnr$iF=O!s`6?<svf9gD{3E|7?Gk&I`4{EyDdSmZjq)#XP^`fB*3~9omT%Sqciyi#
z`KR1X#;mok?8YXOSZiN((~`+`=#9hI<k^LMiXNg68IH3HTor3J@|mCsJ@~rZE+{Ip
z_27samvrQ3Oik)HcH+p-BuY~M^&r(4SpR#n)9Zn4%=%6FD#-QaJuKqE@d{5C2Ew=G
zn{jD{A(7#R#p4?kkN@`W$KxC6c>KS6Ucv2XH24bOJMw^S=4j+J7}4i=6{cH8!gu8n
z>ER71i8;pt6GWJepby`ZtM5WWjlv-Y9os-jlK6aYL+wc4mk(zd<6MIgd5%qV*DBIj
zcR#2SWXNqfnK1AED_40o=EuhCu;<V&C{GPVe7Qs9*5PYC**+h3>BY_jadS<X=l3A7
z+hCUz!V-t>5ElZum=-y)7aS75$-)3x+LgWMAvTz>T@&<HAz0VVq3?BQdj?Yyh6r?r
zNY~NPVP?Hwct~tH=bb;6Sm*aS#5@*Lcwo)*i{uZJTfdMr(C>R_PwLcb-6!kfLt+Cx
zRjJiTcFOt@9xUoPZx-174v8)1!tV8nC3b(Fah!~?KfwbIiTAw1#E$)mxNwK|q)#3m
zcR~3}<P*H)#Pwu!e(xbNZr%CsiQ}k84vDpY{%P`ghf?o5ls4UM<v8p=v@_G);t(P3
z(4KVPJN<Uev1142<5`d~Vld*rvBKb!)XhRZEZ4}zhq5P@^N~Y&`hR-vw)z4b-3|S(
zp@;;>Qzg0g*<LD_%BM=%PMU0~@?(d{k;F<Y%7@iR*wD02s+cRC0DI6ODsaP28~O+!
zxQyTh2WEQ8-2o8&Ei==d?znu1Gd-m@9>Vj^=@#6}@L8^q>%;;rWs!*fc8K!787I~r
zA9&><v5Qmc6DQ9Qd>GI7<eZrUxJv$%WwURNbjQP!GmrA=S8sdfrSs^cY*6`iEA~hx
zo7O%?;&#G?OJEWgj<;!#tOwT~5<6F=tUuz!<rr=1y&9wK_%0Z24vbiF{N^;10uNPg
zcSE?IWDTcqrP&x3gBWm!C~lJMqLJir-9QqjhDjXKog<ge^(bBs?ig5%X2v*8Z<K4}
z;zMN}8gb*2R;qWZ=1tqSQnP1j{=^~j*t`O|$<wpri&Jy6@M!szDXhkGV8o1L!`RMX
z+llwFa>F=RO(*;CJ}ze|G@So(^DZofM#_H~<DpFC&1@3xgj{4v5-yp38|VGhs#c|)
zC*(>qS39#>t|NTSSDLAV11Y;PNiw(J_o@J!7;_na$_A)T?a-e}hNq@@qe$*negN(k
z5;-(RTebn_#Nlpb!_Vg<jN4yeTE5wr&>I{a@#-?Wqu+$gHnW)BNw}d9miTtOdXfzd
zO~Q3v{@msL5ff?G$Fq)bY8YKpw1*;CknhbICYKLH%sXDJT5srt#$p9O9WSD}>kx=;
z#|FmIWDo}(J;-ooTX6snfjD)Cs33gl>_mNhp*{&`<ts0bRcB#{SI6U{%>W(wxn1rY
zWb6n(=JP~9jA5w2w#m<v<gdAz&nZr}`T0ptPr0o^ca(dwTu|Yj<9C%?;_<>@-n>#~
zG29`4CHXNy4MPk#w(gvTdrPm~g=M*v0z(;Li2lY?m+qjx2`%|}l{^YJ1q*qxC)KdB
z^k7Bq!k20EF;-}+{8V0lEm)K9&IK*HhzNIxa$mW`Mz~YHO9{D>#D_bSV0@t>>yWUj
zj4w}#t-JY_Xvo=yE`e_|XNV}oggZpZJ4aShv#l?W5fqc2c(UEaF#<b7#+IXAXMpK{
z`Ml1ZY7U5Ka=b|A8cXM+ZXf6U3dC|RJ-5n|kcceD=AhsGe>#Y4EjJx2aGpdDEh{ZK
zRv-&Z%sGxV>Tn%?kF}^#9IW?YQ|^xC2LBRhM3iIyk4}Gdeev&>&z;;;BvYO7pTdfY
zL&>MRix4!=!BgcAR}z@EXvCIdtCJ4F8Sey9WRG}%Itd+q5LofCIvyhN=vc5_siqM(
z#x&w!8J;13+FYk8fkresUNGh`azoUFXUZ2$(Xr+RiAZ#w(V=Ur7Q)qbgeu@!@(nbn
zM9aYtpDw#iV;^I9_Kvq{gdrjwt2Aw1dExfw$OUDrv}~yT=UC88vZ*LMSN@6$s!CG@
zM?cTOr4*^lX8^(TNbb-|$a1Qfk4kJgj`3>eL3g=wC0NG&dA@ur&#ffSLJ~*L3*b=$
zJ7wa%Kptc&=z_-v-Y>C9Y|RQAaDAcN>MFEQl5y5w=A9wa;Oa(rkvs-7tXtNNM1{*{
z1Mv8@vBfcX@s6_r7KxZ}B~SM#c**WP-J^)@#wyGnE$7-izqG=d&pDwk)!zBnQ_7`*
z0nrs5*nQa!lncWUuPtMk(SZmr-=SfaJ_+F!9MZ@P@O8)GmGZr9*z3CPII-JMrfq$5
zW~wo@2(OYm92tYbKoEV6hfY@scm*1-mcOG!4zH10pz#{^Y?4RVowO(7y;dF#DmxMH
zWb#D3-{$AjO0yB1cU^s6x4q{}!4SKR7Zq)^rib9`<x{X|$4+z)d_!qq@1zOry>XWV
zdnXftz2D_kz-bnx*BXlpQ?n=GO(cA5nDCOc4dD?3j>A>Dh0MwNBD|SIRX^`ST~C}g
zR>HPOR6VfkAOvqAAw%m_atls9EaJDJKy$>hcf1vPNV>6ywO-#wf`=wA3y;i7VG_fQ
zZ3JCX)d}JiHO=7dB(idaxx*l48!vgT*U`t4xs%-F^Q5r;$HOC%8~a-B?-ql0XB}(d
z;GOb!Ss;_Ji0{U3q<@m|bPpMCayPQ*L}J7tz8h;9`-<I}6YrJ_%AG2yGbi4|0To9i
z?8We2`Q*se(F%h|ZY;pC;Iv)vKKaI$L!|R<f<NPz;`Qt?Rc`N>+i->5e-c%0f1aJ`
z#y7w&3(9GM5A1lRC-8{N#)EjG*K=*TJ|xc%EUT+%A`k*G*u0QTn~5EE^?q1BikZec
zxd%%8r59y4MT^#@_=tSkWeXpZzQkW;t!--faU*<m$JRE35m7B`ZQB9-*bc4j<mmkk
z%CS8VTo+q&H?9=s<MK&Z&=og<N0c=lQr^6&(Cia(v#!JzNEe;`El(AkPr8Iqhpay-
zcX88`l0b;Z#wx@)9+Vvalw95BIWXx&`2Q-ImXCr@@7}Z|C-Cn%mEp1B;WP5_E2PvD
zi48@h&Qzhs0=8MfXXO^o@MZ<cJ_Y~4aY!bndEJ^nC->EgXl~hV&7V(3vGx7wJ_>WQ
zi>KfVJBwl`(TMEEYhkXj6hzH-dnt%}EAT~mBqldmz)(bYV;w{HlZ?}Uxk6OA=m~RU
z_5Z~4RaeKgO`+*m<OV~+TxAI2wxNJje+}=n9`3L4HF+XLatu(Wzs5haWo~UVv#o!f
z<PJ@k<yv@&t^Hqkp1R_Og;4k4z{VQikna@5#czy93^*3*_Aoqz%&y08%BO4YcF0gf
zfXn*i<GpTE`Q+c)u}^M*hycgBCK<@F=hb{$z6+Mdg_7sh{5vm4pWfs(E&Pr=#$41Y
zECorFw`9TvGo|xe*PVm!?lj@zkcjHWFHt+08s$_^x#i!JFNln*N+?8g<3JH5x0JcR
zj1)Kd_FIxEGhjq<V~=5mSgBK8>?o?#UN?px$Y)G$%pnO!jJG^njSSK~hj+tPOB<#?
zbeMug#!X8yWbQ#ihdSgrE?+J`=7$f{l;H>rns{)*VX@g(6v;sxqPHEUnu#S_KXtFe
z;z^lTKb0(>y7ysPWV$`SJF?@#!(xXh)8apMT*rM5(~PkBRXn>%|D>k=Me>)Eo2&J(
zh}?FVO?TaKL-%HGoQ8`Ji*<5->kbP<EH|Ea)I11l_&Pn^8UKFr$zIrth~bFub~q>I
zrK9<FjXmJ7cxx@@yfGf}-VUd!9Sh-l(C)U>OT6T;SS9B-w01~DdgGBzHpjzKwg!yI
zN4C7zo`xgR8!u|xHpw09x}W52tNT*wVAlhgkyHxJ7KI$#;Ybn^(cM^BvXA^`42R{q
zs<<EhCX?NG-BBYlEIoju@^x3((QMqSwtnE@bbi9G0v}g*r?kPPBy@L9(KE2bdc#||
z)W3yP%K&>9HM)yiw|y76$V84S9SfVQxonrmBAKgs@L`G(a&v#UT)s^e9}z(0IaYdJ
zgcQ}WHAAncU|19dTp5mdbh%=2J)bx|IayzTD|bOG!x4*)cT7{Utq(hFsh^_yCR}w`
z?8W31fBR5Gq&r+x&VoIP^+I16bl_?dyu)%9AC;(fhspbP719`OJ0_n+1$EY5xa}HN
zP`U-5GP&9-ZRL$#OHzi$q%wW{90-x=4wIQrdyS<k9k1}_ingsJUFo{RX|9bO<8(J-
zxSnJWjVYAAyfiTJ?bwi<Yb=eeDBU;NgL7~L$sJC{<jA@YL0me1drM~mudUdPa$D7J
zE9PSmeU6`EO8YgIaB-7-f;6#Sk?C^`LgcwT-$B<yJbLH8gI^Hw7#2h{K4WD(R{l77
zT)>2Z@i^B0&IW0<;AZ(d$+u%#w4lb=7F?<${dgg44j^iu50NYbCrHxJ<Djy8TMi(x
z<UFU+GkBbzHz8lkMYdDQ)vF)2u@=7oeRI&SZ^mI41E(-4x9p1w+I>9Y$nkdLlqOc#
z^x8N!aEgR(_w+mlBf1<LExD(S=yLE|Nbu0Wz2pQFzY_dbRwbCj;}+%9@@bpO17=#2
z&m1PA4K^PR<EXs~vxGnVSe}G7G}jaDjql&Cm+@W*%@F40j!N#bGcZJSO9cnUBJI$?
z!VZE17K7+*hpCdnDlxA>cu~H_a`j=hNci+&N*HC2J-3GI8Tq^$ew2FBjJ+-EyPK%1
z%i^EivG1P1Ba$3Hw#~F=neexh=;8hA^K!R^9QY@)B2AhSy08YGL~?g_o`yyvIvrb+
zw?WYF>sIs|@Z<^spiG?A10phA((^$TqYU&rcINpQ6e80dPUjeH{h^($%ktqXC~Aze
zImV`E%$YyK;A;de`IF@e(<sEO<9CFQJ=WE^Ygm!1u)NW;FvO?J4BuF!w*~7ruF0*3
z;*(B1K%&|4%wWC(+)2`g*3INI9*9cEkCmhnx)bK)v!aZcm^x^Vg_^G3x@8Kh>uweI
zhLdYKP(-?8Uy7suW+?mexN%7)Au*_TIRnh6&f0+p`(Y3RRM3%yWLzJS*m%4aY}P?P
zWGvrk^D-Cy!wuMEz)+g*`MBPXx8QsQ*Tz%62@qn~vEFb7g?^4rx!%Y(OZ+F<@=_vG
zvpOYm_s&ux28D=pJn4vQXW0u+mFuQl%3hMa@U+ZmnTD57-{EK_I$i!$!VFzCX6Q4v
zYlf~S%+R0qy=CJYYPRw-<vxFod+D>4e}>IN8bmt6=vngJJojy+4=?&z_Lq|dIPh$_
zV_sIsL!3BXi(0i41NJ%cwV2r-(rnkCV{J`m9>yL?^11RYqTmF@I7^cJd46Bskv6t3
z*Yo6_WXbtB$qrq=;0a_q)bb*pUtvQkGHH{{h+p&^N9yQ<*7FPGbFsKJkY_ai5<i!B
z=&~i&zEJ*Lh37XX8MVKx5C@w15XG&V!tVL=YQuby`tWJ+D=5sY@+T~wnwy<CJu|Pg
zWdmL;nLvX`4dgY=^;W0dwNGr&N0Vs8Riibizn+?_&yLScAm!sF64z*$IL0HY8fkm|
z2aBf`>SGfV^%JL0!b>H#;V_9FAhFhH1Ji%;gyXlu%Oulhm?#BAd^OVgW|Z~wyj(JE
zhQ2WWNnSx_iy7V7#(aHz5nd@-=tEzX0V9f9QdDDcY+>>AJiKZ*L|HImtQ~eNApPz9
z*y1U8HOVQ-%MO!+NW@m7y;FZRH@`SFgVoHh-Hlb{(1@c(-iZEse5_HQyA@t1F`<Wv
zGFZe>OAg(sxtTh=em8~=k%*p_)DiWw_3_h-V<)ET@W$QH5sXJ<wB+17Q(rhS*Qmpr
zc4O{YFk+x3r^TtU#;HcVJ^^pujcMV~h?ADoeKTXz({tl$F)TLVExV!nJV0WlCEwlb
z-04Prp)s{shqvv<yJI|Jp;5@qs4u0FZ(C5`pLoJz9ee1)+evOoZhWX#Ov4gGE%`og
z8(UC{?PLSqu^aExp%E=DIk=~1O<Gw^pLg!Y;4&WZ(vnYyV}C;F19;bNJe@-$W}3E9
z?x}uh-h}4KyR~`p9&Mg@4Ztud3-6^HsNMh!0f<B9g>iHduttBM+`q}GBlhwCjP1!K
z91bPE-R%!zc)#49%$!W-0}+3W-9Sx`($Db$`6y-hRsK_akVgp{#Dq)JQ?qsWkUZFx
z$dC~Nk;K@|G+!>%7f&zD!iVM2k*olNLBuc~9!=cU!}AgO@MM_3{_y-2f?Ia|WYCF1
z_$VO{ZF}YO=giea`{J0<Qix?zX6Afs`|(o`hB#lItLkbJ_27J5K0ynM8~s80pZo@N
zo=6M%g!~O;5=}n%-||q|7PA`ulX7=Ew@<Av;_o<kuvDL&Sel!3HA0_~2M?0*<s=Rf
zx!5x_GkJWees;V*uRHI4TK-nDOTq&p4i_&y*9laQ+-KyIte~N&KX(5crQF+$-E6NL
z!e<Ho*f98RuS@D%UrgjIp1D+oq3`{3^6*-IEr);WpZ69a?j&{*eqjfTkYR{_#X>C8
zMnA|G<<mEpuH!$)mom{J|KQFDzP!U|Q38z^SG;C8B(ERsEAj|ONp#<Tz^|tFsBvYS
z!q;}PM<D`Hst(&S+wr-j$<u0UsV_}TVILH=D8DZ8v+^cG7K_MLJaU{r(IfW_`J~8A
z!uVtMudI`Gshbw?O}S3a)XMqb|HpeFI$fdBza=-Vaxxx1{=YfZwPY1TBZfgUhHp#U
zQClsRJ@eQ@B92trJQ+80>pMF!PsS6o>pxhR%|lNOQ*77CcjfCOo6t@`5gCe~hT2h}
zr0>Z!T2WUEPs;zJIDroPYYE>c3D*uEuSC|sNB&QqR=RVb!Ty1KS|xNoLlD2ovr{mU
zpyBr%k=rThOoR{qLr2&QrIEjf96Xbt^TB`k2<5fR9AmTLf+OOWo1Ll|qv4)MXbLsL
zyYz`o`a$k>L~ID9kACuTh`Mxy=^A#;SjXVPBjO!CZ{;OjgZmue#Hl-gN<Yp;N949v
z(MeYR^W66c?eaGNpv7E#M6S^Dk{G^-A2~vc!&HN73HLi9UK}|E<v#xXkI=HF4e0?#
z#LGI>;@3z1Q63yy+@--Ukq=I8g_tj5?-8~_7hw>>$Puv>n()%_V&W9>h@1?q>$G1!
zBC8>JP404H5goyB2&NG*Wzz|k!_L#-AVTXJh5;t#!YCeHS5tgF=!}M&0b1U0h@_X4
zw{_af5Wv<o4#nI=5vG1ICxWQmtl3XuIE)XD?J3dz51<|Ox}$M#blIF&GOAuR9HBcY
zi7~o6!2(Eg7lnXlFGu@}zOBW*TD%t4^k0m&yEXMEH8e@oGC6w0y5w$U!UO4MhPvc<
zjky(fwN|TB_LrL4SL0r@*NNd$r=o&bEym?R9F7LfW*9~AV<hh8VsQ{EGaXZdNJk9R
z1P<*aOT+0tU*m%)?ya})R*Swye^4`j5JT;VE%HV4a<mhk57p~iUk+Qk*~o+Fc1l>>
zq0abX(2g!Nx045{-~Ab7&el$;Z)?-|ZLRLUjo~u9pL?mlS?%<egAP1cvN`a8M7qRs
zDT>$Kv@kgO5f{~4H^0^*th8PayJ|cxM~OH^di}VMwV9)9y^T@+CFr)4Z!#Jp!zqG?
z(EU7q_~djT=1wH|y88K4Z=>eEui5Ww=KC0~z}r1)Wt*!;`_RL;seUqf-3T5^w^<Us
zrqv7`_2Y5-(n?@;t>~%6#d%Hlns;B<O#WEi+?8&Nj|cH+Gw3u29leSkCYjdinjW-+
z4w`YG^spBkO2X;KKaJtc+PuEJ7DTn6Hco#K!&PoyFdnWOmWRvt1>ZGJfM|N3ag~+S
zZmVWETj$&11`ov5N37q+<~6;WQM!rYy;xGlc@|9znV^sP4vsmSak&$8&y8X*J%Vc_
zs+Ct$C){kSVP6WmL1!y!+ZE*jY5^zk_nQ7ahHGgCD2=*KBLj~(B5<!rsmCp?knPJ)
zAZeS6f7O~hhU4yi>+3YBK;1K3C$Ytfr4o=<)>HNu9^>ne*qB>ic}(5oqbnV?vYS1e
zz8!cZ$u3C)I@t!mNX`M%LMGJ*wQ=)7Z7PZeINmqlEnJ5CslH)cCF)JAj=JD#q#@ef
zLD+&v(H)hXtK{ye>5av3Y_rpt?`!n^)iwHq7;bbEGTiKg(i`{(@Z)q#B{2}5klv*>
zGsGWg>^lD*!%a?N8$)!R&S-PJ1wTO&OI+htJ5nmA-H9+vxvmyD9U<yLY4dN&{Em-p
zEXn95ZC%*EtJ&*oE5UlZvlYXm-PRvP3Pict?G?4eu!#CG5@(C%YGk+kG>kUm$Gs0?
zc<d3I>g@NT*xr|pUW^*80gofeB?L|$5^XrOD6U?Bs&_KnapzOt*Ua}Z-0VCk)b8!>
zS_o|&NQE)UE27;(JLa@%lTiBYPx0?DoNz*0VN=_xv1VRHFkVGL*^8Z0P9SMh<F+20
z!#T0hj@N4Tix?)HmU6QQn;UFGUE-J8ORmwEB<G_3NE=q(Y_vP04Xws7=@c`)$Wf)v
z*5M=xFG&IO%g^r3Nj$wfPS8hDUk#3$i8cJL-R*UHt7;LPI$|rG*26d$MI#obB*V|Q
zp=|a+-%KQP7lfpTe@t1Ec!x?^(-$$^;@<sw(C#evHfcw`waUA<7hADOB#k~}KCAWI
zHZkpNY#qHHjd}xUh9rDOvih9x&GpW)DA+uP6N<cz98|qwOyL&|{W<Shv+ib;2<@~5
zt@F4vT4-><oWxM0RbUY8G{}L|%4p1fP#c?{iecV`8jxD4_7r6ct9AT%5?c}z)qi@8
zxz6rO9)_NH<NAY|?E=0|E6^;47#7^a-*Eltayzze(kLibM7@cIWHWLPzqHZrLTEjm
z43?e<Mo6t;*FX%5zIp7_#!4SfOXeRbJY}b_xt>Hi`yg!%>R)TRtU#**WLeh6lnz`|
zs{wE1jN2J;V|NqrHhDmiBlsSGeytda;K_E@y=`-wEA1|Nl~0h2GwXL_@t`^6KeEBn
z9?47(!kW@`6ZXTJ%OtBixZSB-b=&Hy<-zJI-og_l6OMw)(6j!vkD+(*3HMt~lg5?6
zC;7YDdZ26p^-sGQ!B1}ECG!J&NczRi@b57^`H1E5*^c{Yq&2siolxCvY<lFu5{aK2
z8eK|u?k@(_ZgYdau8pg&m99S-z;dt}DqFQ<JM_hH2j1e3v7M^k6gvE)(OLjXS(sJT
zR%TE@_gT`Apu|Wm0@l&5N%LjRd|9I}V_0_ghnwnXpd&+OcU1=EN_%s3!<<_NO}f95
zlYt91>k?d@XdLTk4<jb?Q5#G*)$EyRwJXuGG}kFBO1=N^VKKC5jp6fKBNReO+@!?w
zu{b*LNjAia3y)!3GYpjdzAACBO6+$Bq}|vP=9e0#p8~sn*IafYQnS6krdB#_oNb98
z?H<wCU=*6lplKNm_bF?zJDrP%m+6QMxbS8K=c+_18NdZvGJtw)>-LuzI%KjfuLaQ>
zJ@|T+cWbV-dvpTFC@^IiEeDbJ#9fq%yj<wTdjA;3$^#px0_as)pUT`@)njfhwl6&w
zSP$}o{RRu}PMObR=sOi2t#v{++U}BA%{0T;sMaKb!niyD;9Rr~<Zr^L4g#zM$}x$m
zxb!QUAwn_XG#EuBHA@s~Q|^lx;<S$f>c47D!eGZfibc}Pdcpi0!+Dg41(XA&W}2`e
z33+oSKz-xV0P08mSf}x)0ftwVk|pi2=^o2!K7Et{ZpK>@f6oaFVAYGMrl8JViCPp^
zwd`83ybR&_woxUuE3M*mf2&mI-Oda`C&BuW@D#})7lz<HB)ud1(RclMt%-fQ^q%-s
zXN{`C34`@fW7LnDnF3F%qTckmZgzR)q3L^R=r0!Z=XTc7q<^||$;>W_d6=J)1WQY{
z5S@EDs?};-L%T4ljgF3Dy5;KHiY_csKgRG3mkQH6q_(!;rzNS!qD@vq=pAv&b5>(`
zrc<X_y`dD(s*;ZF?tZ3<IyKiCX-OPC#ADhCz!cNE`Y#$mO+5U#x2lHtSrn5Fn&;x4
zOT7K8#2WT;Ebb?}f%;flhn`TMxExpArQM!Q20z-8)<*arl86&or1mP$B+WAso<o8H
z7_}82@N-pEwYrdNuRRp~>TJ<St!=}f&vm-mIpVZ8|9lmtlIznK?8?t`)5umZy8Y-E
zB%_&A`<R5$#dfwBvSx_8yhxw#`xfWItz~1*M(~SO^DD~0Qmf*8$Zykw(`)C}aI1F0
zeh|Y8+-tSw>gY;v7yJ@QEvb@Ie|U|($Zmv;VB3G_K$ZHRGjk`$9v{OCUDT2${HRIp
zxpni)lDJ9Xx+y@_b7`z*I<@ffd6A2<Q`$~>r7OzUiKEfwFy08mE@t#}Nc&glzUGEc
zyn+m2A-az8jk|Aa_S>5MHij3w_oP%SrS^YSqD`|2bq_+XaT<-6ppYNNX$V{JYm#Zt
z+a=ESp0X7D6s>~M<~LeH>SsSW`%-6&X56PWY{dQRl08!5j3L_DhnBcts7>*Ytlt&G
z%ka)H#vOL-y@uha{h4gk-=O<DEsO1i2y@JXw6nEXhSmpl^BHT3m%F`YB^Y%0eqK?<
zfK>Mb{U${r5=a_*5<g*?uXK)RPYo8OTz^xd`<+_sD&r`2i@`(D;^y!J7WXRmh{l1i
zcLu*zWj9X*@e(*%^_Zh^u~tEU#j;=REH_P78dWzo+FWhh9T8qrW$RJbS@Ssu%2?An
z(~T2QePOdqF}&7|c4R^<qv%S*Z%g7@8*4!vb;FHojvu?uEp^5)thoAo?f8w4ys0);
zb6)wPPPD$x`Qz(&KBacxoSONaDh4ZEZui_YnwFu@z(ik=HSz0@*!m&0eT)Xy(jPq^
zjVi?%sCB6f=Qq%OlvFa|w$$e^v76!rm|C~priM)!9{NqR+ACJ0kq&kjnxX)@G<sYN
zZ*+T^jZw9`X48+uQT+k@Zk0enPS7h2X!F(XLt}l%@FurpaKm4QcDNGv1^~Y&Su%x@
zNy5<^<O%$(wy1us^;YyyHDWa$0kmq<=Kf=Nvzxjr9nK}g?@O!+a;~kr<s;|}0EK={
zG+6ncZI=YAt#o2|3q{KUFOc)rD!JE;fm&cFzRlUDK^TQ_KI96JKd6#r!J@h#T*2vN
zqtGchW3$v7`a{-HZ+DR^bo64ih$C;X|4@?kb9X=hT-}z!)8V@*`#I<TV|a%f11bO;
zHC_|^QI)O8_qx(Z+NhcAK`nF*ENjN+wF}WKa$L4*`Ra=)9rR9T%41-kyMV$UOFZA)
z>;Qvkm$pv7#_%q;_`-fqSsZRI{7IFm7lj>a+mV3LwFvc=@;C9BO;z0@v{zTvjF|74
zjPRBEiihzGdAEBxCO8_lMh!<Ng7;JjbfrS8X)x^<8@dnPg<6j8FKXz@#qeIdjSIA;
zA2#7nCH6vD!5^aN`H1Eu{^Hw{?{jY)Yi!WW)`yft@Mn^JlZ^Jrnd?4=HdFDVD<7sb
zO|V*{Z(?}Ad&GVaMeyf4eMCf|N5o(JNBn>b(xY<L@;+Eezvt%Lw8Z<{2dFiiH1%j7
zLU9k_y{*&Jb78c#)eY9$O{^0;=cRZ4g6?I0TRUAjyxsz)&7ailpI~L$IX~6&;Ul&-
zPY2CLG5S5~f`5NmB?asU-LhDQ_JtqUPGEq2+<Y9vN1Tt=>aCL+_^T=*67&?*#V+x_
zo+t*i%iAopur@I_6T?TH?lIQms2NQ7Yl)uoti?xKW6cMld1!uB)3JFjSXImVV-&@<
zXQsGE{ToTnDDSwH6p+hb=!4Bzt9{&QHSOd@VF1lFHGh@T`JWQOMc$$Zq-WU-_IKan
zN}GqOWugD1Hn099hEF(6gJ+m@*wpyjDm!oTTDSlCpXm|SAKg@A)8msarfQ1Zv2F(b
zPV)4HRbC8aO8s;Y+orwa8W#NM!g90Keafw{yW4%U3-I&*uPU|=U2kq83zssvKJ5f^
zQ4%_pY7dU!?<H=5tkB6}+F+gerFKPa(JylP%n@6t-BpfNsFr>g&;1*9v;%ECMex6?
zq|?Z-GB;EPth@iu`hQ?v6%ro2@`%qmcaDuZmu&inD(+mNiI|&k`kY%EaoFjG9G>`m
z7020J%dSWQN~168k61H&0mVK@D}Gm)5RC@Q>YJb$C-;GWq&pFm`Fn6~GZ=!e?}E!C
zqS~1KtJGHUMK@5JE$|K0FI5S0sB3AIk~kR~^~+9YH+9;|<z^%JCy9e<3bbs_S1pp>
zxn=c#SE`i&JbT5SWNyrTVd}N8tq4Xr+pAYTEQYVRXbWz2F0)9J=Brf{N@nLw!<kLR
ze#lejYw68wG*-90(u04lGG+6(GYe%Fg#MA`e%(bGb%4YYGH`Ug*aiGcm56f+$P2&Z
zqZ{_WS5UV)XtzRJ?f(sDYdV5D{Hw%^&m*<F-*j*X?TIu=Xgb)!YJhLLh;S5a@>HhT
z@PDdoudbTX#K7|K^t5Y?oux&>ujX5BZJLAz-NC<AnGxEp-{`?PKR1$4VkRlVV!uru
z%tlwOmo@d;bTaSXB`#ZGIwT3EXZoD`sJ38Id*7jm<2q7=Y}D^RD*3PKO43C>jK*!u
zEY5SJ@4N0rqeFte#%OQFhDFt`0{^$lFhl4Ra}Ja#+BG4far*}`e9xK8?e(C4J-yxk
zS4H#UrS!N79F06RGd6!czuE6QzW~E_ZIgI_|CEGD3SX;-q~nj{{JRMhDA!0E>pwVR
zOF#mpkt6u8Y94B)tV^S4yfOSKhCN3uiMAj1N3VP2b?`$+1!UK(>tQd~bsiX_RzKfV
zGXe6*9B_wRFhjsl_Pb>V-2<g#{a-U^u7xXV+S%=fUh5Cj?UWE5bNO;bkY>E`%gM!g
zTg$}n`T{o|?gs98w9<&Ds!p8DL+t-uT|18_7?~iLrMKS8Np+-$dy~|mRAy$xJD$VU
zT2bTACLmxWsi8k<IF`DisgDUAs7?2p=VG|<sNF@)2(nXfpQ8fbBsu&xX_5p=xdRs+
zb*Xw+z-r3P?|W3Rh;6yKz0$ty1da}S%-gsY9iQV0p0EbP=C-ek;o_s#&{itQa1&_m
z{m9V@hIT60mO;}p#@(kp;qG_Tdd1d1S9%X~TOq*xNqkB3diIO#^`3j2M$~)eg8fB1
z$mS2!T|D5ZwHNG>KoR^XNgv+D!aqjH0cbRPqL31BiJM_;cAEno_8t}J(cA+aQb;<a
zKG$j03<cC<b&ni%&Znh9cn15vqk`SJlvm+d?P!tdWYpMlZxGkmfPY*J`;XfE7#g=k
z_r@-0G~W&!6*$6$26HZ^e&u+^SZh`(rJ1156Yt<rNBFQIgV9Lc!y$>fBXXoyHS443
zS3!}8#v%(nj6!jks1{DwA<+;VIa<L=%&o0U;Au0(RoCfn_*RY{^(wEdZv+oKDlnRg
z2_F_ltMX~{a}1Zd>9?+Y3R`XJp7+P9JTG5wor4UX7BizhPFE4uj(ThhccelD4<hkZ
z*%pMMb=QL1|CF6J&{o=Iq~W9UqbuvNN!dp5V3H`PT~ycF$&~=n`OFFR0(3YPH#gJt
z-Ee9szZ=8lPPdXr=f?dZRhE6K-XaZF5bnI<s15a@<BTb>a}hjLGQA3R6o%0uaARBP
z-!+@p>?`VL91p6Zr)abG-o0eRm2UMLV&?fCvLfMObbk^8P@C-tpX6z<v{^T0f6=$#
znH@1)<>W)y=jHHl$$Vtrp>O5-7#egzec*Baos~&tT&rPMGa1le2s`THDw?;TG%SUw
zH@lPcSq(pn;h5V7UEO!oUhM{*2(FQAgQXSZ7D?-#hWR;$YmeGov(`>(V~9qBNU7)m
zXX7JCW=WwQy=}B?Bi%@C0DiS;3RSCIGdZ!XXM|>dLw^&)@uRjrt=(_JbtL`a0*9?{
zYuVKgXCJo5a{g^#L@Ay1bu30@|7kXiHw@D^hU<Mr--q^jJm>k5l@xu3%4}h@sXcFg
zuAK?g-!6BoWv@epCKFyG^@x1|$iawA^5anwQ$Lg8G#Be&@=QCzcD6w`><!ddZz=0;
zT`e|4bI=9WH<EQ{i~QinB@4a0IM97&HhcREs~DvDAGOsrv_@K?DONKc5d1_H=dNJc
zB_Z{eGhsfmepU>RcH4mNR)RHCgZ?NgM0gC{fP~O)I=%2D@S)7<m=LyXamzS<H#+Fo
z##}`IvF<J~Yus+O<Iy{NhIaWl$vPa?{3DI3*Wr}?P&Wao*>7UF*;xZ>8YwT{*iI3Q
z(R~QYQN5YS5Zc_-bzw&N*2albaf0?@Wvh0TDMm_vT=EhM&0Zf$>wYwJS@%ykg{xm!
z&s0rsDVM)aQg4<hfV|wh2WNLXB-4j?-`%@OsU)51Zs3<OOghCEt+wH06~!01Dn#{z
z;fkD`s!c6Soh9~i4eN{ATDP1!Y9n*bH?jYPL09cVFjd9a%=L8=cv{j#ueqo`S<s&_
zv;LN&wyr{{<xRMi1dj@$2<i&QTWW7=XW_K^A@6yooi4R(MVP5FgOkh{3vu?rdzkMy
zM|?+3kWp&=>RJ!3u629Lf|_*}jH4y2ueVlUu8M`1%WgmzJ#;fO6O%E_yJzf%v2Mul
zc#<F}$FmpNw50h(52@*y6UH^<8JaR$tr`}N+LVsFo#kM8t7ADc(2y*e(x>y`^yr<y
z4`$2<F)TW_VMV>|n4938mIQ_<cCW9sb%+U^WV!sAqn28QVN$)b!EF*<R9@s{q4etD
zt~ZH|5wp)a(MG!%22@A;y~sAlpkmi(RBhw%1iGunw)e?W3EHF5k&6Jr8vm77JFEWc
zaWUNPw75GI%P{<ua(QAEEsj;XoNh=#X_LVnvNdBqV}<@CXUph_^CPZ(B>W^vE;$^}
zi&)>_MXc5JXCJu7hOE^uH`SD7hdmjvZ<$NS$MEEo`)po6EJ>oH9HGNL9<E(c0!TxT
z%}=qR7{eVdY7j(Q-6j&E?HnFG4ndW`q`ThA&7kRb?>=@}p4zhM4%uAm)l5-q49iZZ
zuRw1dn$_as*_DDQ#I-fmBff*$LTOj+q4G7;#RI)7W7eq$z)Ql`C<2YPI?9O(>7E3v
zj+`1cfegJrjJdyap?vpuNS|D<;orru;#3)$3Yr|NFM(Cb%PaS>8O@X!J6`R)`7nkx
zw`nM2H0X4;pj}O`<=Oids)!JDr`rx&RC1&q_MF76<t!PN%5cQPN7Cay;eAls!culF
zEnas-#|}k%u?5JeZb;-BYOPBgj*@0ZSx9Y@akCMObLg+BnO4{37f_lm*Hn&aYjk~8
zITI2mthg7XkEL}cHh`SBAI_|LI<xPlgX<M=R}~wAdIc~S2ee6@NuGg=?)Gi$-S(?=
zmVQ*l-%CZ^@*xdT(SD_yU-I3=&KfqlXVd_W8g&-IfNo}5U@K|}gJ1yc-jxS!>~#Ij
z*_r8u`SCOZ;5^<L_EI(N5@CaGWoR#3bA_X{<IjeWqkpW;D4%fEF33%%fAIZ<FdDRi
zKBkqns-*N1?>-5nhjv<jG-f{G2fW)QJA5}?JD<eHd<xx0N!y#@zJCJLcK)%=hKPIl
zRJR0my=YUHFX<K+5j;(zpNc9^eI#u~P<yqSsgW8O@1cesF;e-RitG+LoqkWN_6UAT
zqM8c}34ADRM$Dd`o;Ho8bO`(z&i@58sJvv;Pge;zCX`PKNuw{A&v*tr)5Tnw&#MF2
z+`{;0=mttU;TE<qE`rswuI|3H4U9cz$+MjKxEgl#`!u)kkm6f#e`w_D+KDOrJ%*ok
z3Z@CY2#Zg#h9jhgM9-E4l?&^7b1_Zl3hx^|&xxQN!~bw0H`f`|{D)1}=g>`UkI<F|
z)Jx7*m;+m{Kj(%S=iw?&^XE#;o}oc5i>Avor_3)p+KQ(%)a<vlj&AdfHrUTQ9T@4}
z`lIGls0f}{W%4KE1W6<f-q0V_%pp_i`(L1#6JDm=o6$`Oy6VoJU&TktY23k3I-Y%Y
z0e`go&tJ@_+`y2rl+$C$j4#*)m74}N2B`k9*0o)K)e!uWOMYR&=qUCBj^Kq=Qp?Gw
zXB0iT@jyHDPt}g6TMbj#>6e|@^`P$*-HYTo&Lq#7F>Lq9ejlHbRNSw)+zLf*)ITm#
z^5QBkT7Dde(M&5G^*hB$e$`EEV*^kVsF#q~lA4k7CQwO4y{8!Kg8DxFniJmF&N2mQ
zURotcW3IKfT>{60=Ay%2cYCKUPIT|~WmTeW*&0VbY^-Y>>D~UuQOglvZb6$`xLVUc
zf|rx{+3mR#CE$j+$!%jB=HnP%;j9_ke#I+hc_rP?&;#4~DvGrx!L%-MU0rgjY=4st
zi_Ne(N{$%3s>&?T7dx{efumDfWXl066}9TsP9Ap8x1rayp|s!f<NIidITiovO7VT&
zs<k(W)xYd!dvIFqSOt&#X)nj2ZsIj=L11Zpn~C?YtuhqmT9;e%agtHX-*##zuUztV
zRn$(xs>`dC#3`6pB>6kepX>zd%dH@S*GnF>q%76qn7SGBa}00bQ8m$sXf42P?2T1M
zH6B1rrD+Kqokms@djQcOss*}Y3*GlY6yh6hQbtq%bqv4joVMfF>FoKNBuR~IM+coF
z*PCYZT(`H;30tc!Ec|;;f*B5YvqZZM9o6KZ{yxfhppK51ys4dP{a&Zt+@g8(77~4{
zbmnq>Oc}DyliCFBxc-BA{XI{vw>lG6cb%{xcLqQdptniv>VkVKz|>|Su4!{iw**j&
z2FvzKZD2NgqtyM<6w_>k%e7@tR=4)E{=h|@)T=OQ!O`A%OjLy%@b)Tk9>1t9i)FG3
z?qhvtR!7J1htB41y0`ca5-d20Okd*`ihWtShLhgRAGv32j&6XmhLom=dMoip03p0n
zV%lPFk8~k?21=JfVEvkIT#J1@)&gk#gw9N0qZuq`-l_$*9Z>sxh}D&U?D7)n214*I
zNw`DMiAcw_xCzme*MumBKOyS`laxURYcV5ucNImI@-jReJ>(7ZL2b-cd8+sE9+y>a
zg&lY=2`eeAD~rb~5Q^=ppZ(bGpSqcayW*XZ+T`CSd9?D~6>;<?-w4iYnt-b<YSl1H
zX%-p&Q4D|Pw!A*{%nA<luxTR3`>Sku7Jx#EX*6wVkMr*_{JAqQxZc-n?jNY)Ll#sH
zo9+GnyuGs;{GfZe&0rZmM6v`mLhDhR^qsocJkr<+hW-m@L6WPn=G>P5Puq6~$Z=G8
zi=1-~l3D?5V~=e~wq*+rSZO6&pq18I$u@9@n4Rg}9W*;Le%&K!P0sPi#~ta81Maxv
z$Z(`19XaQmbB;&OU%gn>Jw3D47T+JXwyURKRaaNNdhz!@P={4jt1U{4JgYMonac7(
z-J<yJEzG%8Hua%ecJM-lvobAG{xBdR!B+RKANG4>0X|aiK&|qEI5HgMBEG?dZIEJV
z{AkHJxdlFUQqIXO1mrEw$t^n)gX|ZRgO7X7;p3*2bul5&X7>{@`mdcnQZl<pgNs8_
zlV3%jRB6R==w3gEPo1Q+(#aZ*46jzJ3FrFxwD#lfCY>I9<|O-ZWE@W)?dP+~!zr#A
zEtKg(2A_*LKKKaLkmw)>#1kSWUJ8?@&-QuUj0Q_=U+xQa_C>)`KSGOo*rTofBYsi2
zo0EDMhFzam{G}KMU&t#KJ+erLXdk9F!D>Tc>B}nOWtXF^Zkwk3X%--SrH&axh{(ZN
zO;M2{2yM!cs93NwFqp6EWYF1&M;{0Oz}I4orhdtdA{3Mel5QQy62-eYeBA^sFRALH
z_(qIgJ4X5)B}Z;mFZ5C@eL)PimGVuU9D_5Unaki?^`u*wZ3((6(qgcAMMK!-zs$E)
z;p`FcY6jnlv2?6vO%`HwDD59Er$CrAYCHa}*^c|IqX8De_i9OX^sFq+0v)y-Q<I<M
z@7wv|<e<jj=py_e#%StIOhrTzrNa4e?n3k4+5s#`a_anwg2SAa!w;1Wk~G@mX@MVI
zc~Lf`LlKWU)gF1;ZJ0BX1+0p423hjYNCbN~haW3@6uUc?&g!w?_mdb0(rRm9ge(JN
z^YJQ+0eOV~K@LB?y+i|9&Qsg1B=}j(MwsC531~44g(gs83s*%gd^q>l&vkYP_L<C6
zx=jBsW`~Rqa4!&}waV5nzgB;tOuX*|ykWc3Z?sd4%e0O1OB+E%{UjygXlPt<B~`8>
zg*TFEy5R@(D-(bu?{PRlP%8MfjU%d%*7!V1rbkTb@Idgcf*i`<++M;7-KNV{95+7!
zzqPI>BvY4j;q7rcCJv^H!>(h*K`7xI-Ob^5`odzo)rtRojD%EC`n^boe2r=VR_rRu
zY#<9o4u4Rs%<1o4Nxra;|Hqg~9|N{fL67>G^6mbs{|QGC)~|5_dy@{+E>#y}H&tUR
z{MklyCF|FWAxwsWJ^m(Zui^*$ix~zu8=2Fb*Q|}u)mga8!Yt>Ih@2ms<9yM9OOrzf
za=6M`@qghK7Tn#du8lZB#xnvz-9`CnD!H@|ZAos$q*7iF_9?EmwvbasLTDGRzP1h{
zsxC3B#3)vAs;Aj4l*(>D_j%npTw|?7BAMfoP>an0e9g5r1k5q6&;rE(2zgokz}H$U
zvD8jN#>7-;`y|~AuD!N~AXkpV86ijg?CUQcq#M4Tv>V2C)~-<~{$6K+A~(cebltVJ
zI3riG^G8;h9>sgiXd|TECi-hE4Ci_}4yqHTE?mSOyuOWNLR{FYiD)57T87g>Lk>4s
zD+25lodKDBlvUl(dXF&V$iv)gi4sx2cV|#^4&7+2oRe6c3t`CI{B>FlHa?+tc;h;2
zv0%U&Ly@d%6wSRC(RPF1U{XB)=59IMWUUC*LKALk1Br+Vtg@t8IIoDAvqIR-!p(H{
z2P;L$hnvUDKJ!9*R5~qEBAH1+A7lVq>98sSKHOrh99tZ%=Z1d5`#o+Mvm?etC|1y;
zemMGX7Tf)*xYb%s)$x_1F?E)YH@LNpV}g%kEb2%lP5L;Nkn1Z`yTRN>xuwQI12k8%
zhJ~ozw$7|n#Z?#S@nKGFj09}aYPVY}if<;^)PZyR_BM!Bt8<r~+oRO@!zciDh_tqL
zt$6+^pVw_GW2KE{i>`!qHkb+iF(16vOOFS$GKn&EeIftA8~Y1^o$Gay=DTjKlNe&_
zH;I{~F$qv3)GF#mZtzFE)6cZmjn?agv@0o4iO(s|_9W=|JTxp=z&GjfNdSFiPxt0J
z$7jLQT}4g`^knIXulo++sYTL}j^K`KBlNxTf>lV1UY|0CeaELLdtT<iBRJLin_x<o
zC}DoY;+O`SDxg739vtN~Wz3p}qpx=->uy!cXEAQ7M2Py;bRPeDr?1uY2!c7V?|O!H
z8xbQ{iEv$nnq(X#>$b7BXir!$3p$(`BdAUc3iQN6D?$KHaUdw5c-C4;OGk@`zWv!Y
zhE+Yb_?XIrMnJ?s*Of*`+M91#yQYMKU?vB~ae=Kdht4WOafxOT35Kd<QhN^D^!tlx
zNN3<28^i=lQ`NF7(xD}-mL{8nbJvQB?g7Tnv;HF7BZaag9$*|P2G+{$YsHFpd}*bT
zrQHQM-#VEP;E&#McXD?YMe)(6Ni4i{X(d@6W_fZ7Hl32pQ=m#4Gmj|4ySsu&AFO(W
zJ}I_wH@jW*l3!qZeYm{r-p4lGj+nh(<zFljqUeq}ZVMp@{1>>hvQzA&05x`(IvZb}
z_SrBKz{dVYKgVEcB|{S++%@KuT+MQ*)Yv&D7m46+-pwSczMG65mb>kxLBYzq*O90Y
zY^GzO8CCSOI2qmAhq?Yi)ygRw3s>dFns|eN<L;~_-HlfHF43a}cF46AO0DnGoj1Rd
z6B1Jf(=q3n&lpuPMV}`YD`NdlX{4|W7%Jq#ZZ(H=+7>;uC+2NejYBtjWO_Qtg+JPf
zMhx{Al1>}ZofkSJ*IuZiOuK_M2TQ=D7uk>^V)9G2vMPeq(=^>EgOu*Yfe@Tzx7*L)
z9x;5$5=rq9vC!e4q;RRIDkmETsxknH&(goA%BvVOzIA&eNNI$9G1_0?9^bB+>}5)H
z(1gH-yOuCG-gQ5t=WJlWgZ(iUxT;eoAVOV+hCiF-1NONQmyMD|``-36TSsyog?THH
zlUPD-^f?F@tA1I|RO+GK4i3g}z=*sjqDEG^ef<D_hnhKx5`UU3a01kviXi5f)L1;-
z3Wsc55h)6l-px^>#Gu)u=|9oowUW%-$3X5&tlPL)&T~!b5yPL;9+x{;sAzX762I-5
zFnS#GCM5HoGtVxwE+?cPM#YYoNz)-5M2=6{eN9BWm%hB4tp&JujKnoLDhBD$LZn>o
zg)nyPKKjl5fF)^C1F8NtMwgDm|1VM=Q#11KR0L`Fa@KcsXWlnvSB%r@%hbH~Y@6~3
z_KaT#PxN-9x{mk#Y!DHJSgKPvCXlC3fk1Wb%97qql@NV?9qoRYk73k)Y66x~qQnJ}
zEI|*s#coaBBLzW@^a5I3tH90FoMSPb?UUhVWolB9SxiG1jnJl1%8tq*T`M7F2+grz
zU0>;tGQ{7|z)SacxOo;;fN|SjS>%%SIKijLM^|Q{2lhCfgmYocLB}kSMUWp+3h!S>
zI;;$HEYJ%<gJ!A4%ZNvH@rlKv!LnQi-FTf4cc3F!uzV;T@~0NlxG<1T90@rrtE8|s
z?{9Ov<^<Y4dv%QB_@Hb-qd>81d+1NcxYkPO02X#c7YWut%3u&9js)k=R{g925h8m~
zoGyqT?z+2NS)Jd63}OZlBZNd0>1A@3kE!ril#0*FXJ}l_)=HA1uSH>^1S^Y>$DE60
z_Qzy=mU<;=E79u{v+-skRvQ@N;F2|F1wSTuehtJgZwEeKI2LnaO|XZLrA$M-q;R+3
zPCl+$6gx$+BKwJ2?p+ME&pWwUV6`YaBNwM^rMed)YfQ;6b6C-BiE$|Hd0!gqiaL%n
zd01FOkrGj#<~Glm9$@|{42C`Xe0X3C=Nkh}fA;zGX(^QU?DG+yt!Gk^53O*$K1khl
z!ye}6^hONN53b{`D;S=~P!xzWx;J8een>%iI<KHSJ+!9sbY7r5ofoG(J<PtnQ$27;
z;a<T!@`u;?_9IG6KuH2|?K+1?sEHQwjd{c9+&{98d&3@=!=Ox!fiqky2cp@OKT4S<
zMStZ1e#xU_URvOi<yjFlN|d+^tTg(bAEU=TZcJg+kBvDR#zIsId#0?RYL@&sJ&~51
zEy+DaWBB7^<Qks{(CTMRJ#zyx)bUKSB{JQCxhVzV&*2Fw3|HlrH>Div6Kxn1V*KJ$
z)|)|9)F5fSsRpCJx8u1RMzTFA#zrh67d|Mbb4Y`z&UFg`YfskCP4WhnnTDstH~^}}
z4I)7F7=9P;=I~VA!At!-bN`vz^|U%WSRNL8YmpMYn&z(@=46kjua%&E$4`dPgJ;y!
zF-NnLn2rS)@MS0}|AYDy7zf#2^O-R{dzc@5Rz6>WPB91fAImZ`CpWd0($-PT!ar%5
zxj>J4IzTPExW&uN&r(%>x#M=-vt#TSo<C+SWsO;jPN5Q%u$l0lqb$+;c^LZ^o*Ux?
zUCn32v}lTV@!vT-Pc4=6kT#FPKiAW<Mi&r~p@R<B4_$@J=U-H^GW#k#KZf&iWXkb$
zUa+4;rBfob9rx%Jrp>Eq$liX?9}K$%Kimtf<CwtN>Ny>u%1Bw(TJXiaP+uNV30cH_
zQM|LcR2hH;*=vaL1GD4TY78Xdrm<WO{~oh&yw!)F@)1WNElQHoj8Up=P6%wH7)&|5
z*v@v==2`Y`Ew|x6V)kq}9&)xAo@1FFy|6SM!Nwf^Q|$(rE%lO^BV}?H6K6{ZRBb=-
zEdQ6XLKL;!7tv$vrFFb~BQl#O#E6+zlrHeO__OV0Wlc}&gSxlqcPV@wUjEn8^hQV%
zwklV)PJAo7LaDT&;7yWB{t7+wHO!k0UayQ%kYl38+3K}^O))Z#ZzhB!m7F@eGQ0P*
z99}gd5~1gI-u>3#I?sbw{}n`{QL<e3QJNEJPR`qrsIKavU~_nlE-*?k@sM7xwV}n8
zx+_9@6^XH16?0b1Jeb3OoBj(;CtD$)>g(#*XXr7Jn3O`Hj$#voBm>{+>#@Vr*Hoa8
zS{4~&gJL=Ws`3a!`UV@)C0EKk5Yq|qJdZ=_bJ_@jlz%8dq;FJNtOY9=@b{)Veph}*
zQ&jM8_BGR=ZpsEr1w`)u(Z05xLm(M%uIX4gN6wM)AQ^A5(`4BrmcU!<NL<xM^N=1}
zNoNfDB!{;Zj1lK-gSVfAG2)zU9(4GeZ95WV45whe`zeL2dy{DMcFSj~!aM2+?&Ub8
zkkV)l>^t>%<Y2%c`tn_MH1Bf!WtkdB+i9L(sExi`-<j}td~DWxV!B@i&Bq64;kmS@
z*=u#s(n3EgWKzFZzcojd1H8|ApAg?@y>semAut`R7`yxX)YAfF>G$jDqedYDUWO0E
zSoJE>Zwpi?=*4H<eo!T9Jo+;DkaaNuQ=no2<HI6Mx<l7c`OReXVeIBK&oT+hf(o)X
z5IM2~j)Uo0BEsfJY$%7W6vJG-3yLY4v!9Was6VxnjjgQ7sme?f!knc>cQ}7^t;UT@
ziZKKs93QK*Jt`BH18TG{4~AhIAJ=_JI)0<yGmyzo#K?5?)LHU~=4lrRk;#+o1|p(_
zu#%tD{#nv%G`mhYra<UV)ni8Zw1rF-D3OGOaXiTZXs2*SGS|5x<!V+_`kNd+tpb2g
zpZH9?Kg^fP^tloOAk0_P-61C#5Fhxg+Fp-0p{H4*i+xI2`COe3F3-!<k5Z#fF6HKA
zmo?|``Lz<dMV?Bx-_=RkAaxSH5F@0Hb9|1Fqn<8u>#h@k+a#j6eo@a|ti@)D`d^CS
zjJ9*ba&DHHUs>e$%R2S$yP%lPKR=NVn_c*d^*JF-byCUmQJTa8dG+t%o0v1w!ILph
z{Lhk3SXJq(dQ51N^w;W$qViB7c9mQd8nlW_ai-}Q6$z!TbF-X&UC#^_6dTZ4TtZ}k
zI+m_NBx`{V7bBpS<RG==@J;>r8e)k$7ksPE$9E5?@6eMdMQVO~j4OHpmoC6}{#veR
zrWd-R_fU&Bt9@7bj6rb0_hR<iYJr1Bt^nkfw9{6%Y5M#3Rfz62sf_#&Vt8z5D@a?U
z@CF${Oo?{Xe)^M^*L<hPdeslj@qmXNB{ss3VnmP$DgQ);47QvWY4V<!g?_B(se=B8
z$J$R~KDE~*3rAZ8Jt|ARQ`(bVoW^|m>Ap5_Rygi{s!}NLb_-GdSuI;KMgLofM?i;I
z9t)hRX=5(G?lGP{P2;cE<>*%k0<(7ocy^p@LNP5|m+lw31R%)ZucIjj>FZ$zc}4!Z
z&)8RAYuXi^Cr!y*iC+)1>wawmxH!&Yl_H5V19BRlR!N@(ty#WKE}Pkx!*6sJjxRZ>
zEE`~~_HSd>;%Xb;(<ANUQoBs%)BJdvV)pXU6nFpc{D;T{^AvtxXBGJ8^n>WN6oA%C
z_f3RT<nV{J68xa@s8l>7NZK5ly-Zzlf2?D+s}yy|k*3(RUH&FYVs<l!KdJuWB*%OS
z{#?gXR@xazfPDe@S8@qfaY^tTAa3{<m3CDTunn<hU9<yOpS7^z0wp4E7-F^|uCh)x
z1d?VYuF-TOG&{#tZ2)zH55`cWD0(a$vJ-DjxjQ2v2v=LT#zX81xTjN@GPwG>h!b&g
z3B7<EBYR8fMk{G^iPUhs#yXLC3Mr*<O&daln|f?!Djl|*keb7_)@hJ3{{-#3oqWaH
z;^5kKK0-yOBNQnT;V`#)Q(g|&S+~Zc=wr1uxUO{_k*%apsm#w;1m$4m-!u`BPldVR
z0QLJEuD4EY1qj0p*N>UzN!~XiW8OE$_6|&4H&`bjAA^;V?0oAw!ogU`&L5#gJ<P6*
zX6WlQqsN|Py&JEK(5feRXOs|8os)|kZh{@5o?D7hBY1oFcQ2I{c2n#B;OZ|O5d>H6
zfCNE_fDD>*xY;@hfz+zP3(d>n=Id%mf|a$29TlQF&DY7Esf%;C#X6DpvlcS^v|Y$z
zfm_zuWu>f`N{U<zUhWhUV{*8aE&=xh8}V;#-B0lTj*&o>2uF62bTPeeAJyWX1w7Bt
zwQ!q|t<vViJI7MEZ7sGsrU<u@<4_}ijcTOp{dT(JP#?;M?p(GVcYEtUA`f;Hj<Z0F
zr05HwKctvjx}C$?b)wwkP=}e@MBdK4E~fLb;Z8+jV$({Yp;dW9Q}g<DB5x0eowkLG
zBy|`pJ}Kt3fJQM?WP=`D$i7=P$s6nJDSA|c_W~-OZjd#vlWS$_DH|ZgLw2)u8ez23
z=Vd34P~+93S3$!3I??OQ+lVg3MWDLVcZ^xvt2i$`ITDk1+GP%>DEsnJzZskwBeWSK
z@ei7@NE>Li(9yxln|s;QY!RtFb-CGsJFSZlP1z{xeqJ)jx)##b%Es7cGJ|%>yq_)Q
zaQZq4BN;7BW=r{ubv2Zy$py};=#Q&%W-Gt3PHZTd1v8#$LyE8%ade7Wi#3#SEp0B{
z#vIN_b>Dmq+q0Cj4mz!)?)cZzad39bv2NYd!y-x)33)+=+LM8yDQq#O-UKuj+J4_!
zXA!!Gy%<xX#Obw7!0c+j>9*<l)ou0`hlu2SP8~+3Pl@m#S0n|?0^BEUfv@*mU4yoC
zEg#tsrp~ibOh9(xozPmw&zF{V!w5-YJLaMH=u+Et=EI^Y7|3yc%*==BWo9KWQR31C
zVF^l^8#Byauucqj=)c~&9d=mP6Vhu(vs?M;G5+s6+rf<i3}Fxl+@%hCx5tBUh>#k4
zEVVTW(&?4QV#RD--gk}Rc&r%XV`8ZD1nA3I*==3bchmV~i#^;urk83!WFkP)2pjl)
zCsX=9vdPi;0Xt))zX_ZIiI7ua7O&ObI_wSfvd8#!lrYZz7B<7}S|`>YMwi2_2-7y0
z34Vo&>{O#bawuD2Z6BMzc6UJ<W4uSUU1qQ+X8W#!-B%>ZfY5>}$p9&sAFppM)0YkB
z;i5VWtl|?m8uZ?CQpf{m{V;z3a)<BLK5>v)jt&O6N6crp_jM0h^06mEZb&Ib%CQ9p
z({=|~#iC^(!A8j;0%j9$(mmG&kq?1Dyf5a=8Xy1fh2iTK4$d5A^vGbW`E$0we(UN=
zVAY?qg+j;}tNt9sswYE#a#6==9?)7^q1?v(47r@c0Tm7mx(sHm`=}W4GUl0H(u-16
zd%DcwV%^||x`YYvF&2$gz?;%cLYC?89Ol+(dM_;o;NV*XT<>vhb9Ck$vW_PN_fA-1
zl~lQ8I>Qak^1Wn6?&WY;C2|7x9d`3h!+?|El3Lm(k7uhNP>CFSbBk>`T&hcLA#GBw
zC0rK6(y9Pwlme04BNsW`OHY4wuIFsbg?n2^5vVfNetIFr`R)97BF=i(^L_L@mQT~_
z_b?6|16=<$Mwc~^33<w*BZ|bhQVM@z-%9LcAqZXiyLB3<A%I(!LwnyCK2niGTPDO}
ze-X~BkVSh$?WYuEFz7aO93baBGE2Lk4P^q}$+)P63WBt@XQe&y?M|jq^$cq#nJhkE
zNB0gFUr2?>UV_ypO_FG-xWd5l(2f!Rc*^++3kH~%3fs&s1GKhuT_Fr{3oKY4S0W5?
z3&H<$7^36Y?pR*vq;0J1E+KqpNzwNl7K<Hkg{70}cq>^!x#O)nlKpNL2}p+0;ry=d
zDC3ekTjn{!#O(XWtRmal>AcX;Y>*Lxw6J$_d$P;g{pUTZCp1^cG_P<sW;u<k-aQ7h
zYT4W!6t6DOBG8L5hL1fW3$zsRu+vHk?e4YpXvS;~PBI?ENCuVJAe>%&eb(7bI?Um6
z{j```AnsY)pioDV8A((qQRDJT+~z-KW{Nt2Yk3&5ypD|^MCK|HDt*vlrM1@`P{-<9
zd)bg%VeNH?)YdgcYwunRg-v$1IXMQ8i;J8Fi?!mNT<p%WT>QVs)fk^2C34~_RP4zU
zHp&>hGA1DdtfEI&97ST_MR@2amVxNIf9dy*2Py9k)e5*GW@$_;#S*kstjh=JcghIH
z$~*lY7^99z4(N)yfr>O336tTm_INMfgH!=)N_D43JDner@(K@*k%`N}jiYq9;EWcJ
znx<yQ+RWYekaZGgD9V~Z*tq4Ab^C5ZJ~U>Lj;|<CB1fE7i>Z>^(Y1y%@-Q3@LQ0s;
zw=IQWedY=qe&FFYvI!-4S1~A$BTnPA612@kZ;R0>hezlV9rOp=%nb9$I^u<U(!`69
z3Xz>XFuTp$Qy*nE-y9am7VrKT&>!>ZQuA1+5Af(1?V{SkKb|V#d+F^{Poqz!KXR8l
z<!3oOMx{?P-x1VtvkQ-n;i{ADfI^7E6$I#zuoh`BK}p~o9;e4NKig^!GPKUY<71@p
zv4|%{Vie!*q_Sfj1~E!@B~!C|NyBaSd{miO26K3V+8TV7Ja}Rq6VsSddzW1mchW^U
z{QWwOjiG@0C&e(Uv2p@O%%dWUHg3g7qUiW!N!9rro~&BkVy8>Ke0WN{!0Wk{K21w|
zzx&i;RV5@@ltxL9bnES@+8+)C5f$KRbxcH~!Eqfm2^tcEgeE>+mr%R2un<6hJfn_m
zfX~|2E)pWz)6^7{lh<QFKW{r7K#D=)ZFpuKmu%%)@x&<pW7;m0u*$8KuJ}it0hQpz
znEp>O=aEVMf$mnMLxE^mq2QE^gnx95)AKnzON}VwlNHZ}XWKCTiaC(yaxt`W4&=Ez
z5(IK;hY66+QO3_AZmT;)K-1^Oc(=w#$xMPo{=IymV13V1Ntv-1Nme)Hvwx0J2*%<#
z7HBb4GpENEtK0sIGM8=#3%)%+=6st}mKv$ho9=UeVM!~jHi^0MDuY(nq<(?*8xwX_
zS^2J1i~8nk6d1Bxg!+a0feVQ5FN*)b^qlk^0=?f>4Tc_5t^kYvZ^{Kiq)n+N_3tsZ
ztW`ierLq(m#_7*dl+G995O8Wj+(2JpK1LL*j6kd+#~7*}fiS2szfM9SRe{JDoyuH`
zFR8N}DpisaMH2hxQblUlWctvkJ4iusiW<vlGaCYzgLvsl8Fj}{rMI8;_mUZZFNc?@
znN4#WjxTjuOPJxH&YPFVIBzDVOO#2{(Qzp@CezlKOaX&yVua1za(IO~GVn0<3e+oO
z{IC-u*}WQtwuwMnc$Kn^a>;HA2ZC3}Xp9jBz=_&rr>qGpcZP{lJ1D6Tf0SgcCDeJ~
zH7c>AS)y12)b`VBZFmugw<ETWYNDj>O&^#k78dn;>%T*f2!l0c@VXf8GCAx_NKyA3
zTTaLUBGAq8-5g$T9!K|GCA*3%pa8s~j_GG~l@zJbs@TO%QbNUKyf=nU5jv6@&8%_x
zFde#+{7tp?^SFXkC8{(Uj_SdK&z%5SaxvY>;eS+fa)g_`&K2r+$l%Q}Cwz4@UYQmr
z<5(kw<0UN$2Yd_mk4Bj=Q^Kt_j={0T`c@mvrE!ZjA|GR<7xJcDHnUIQL2cE(O+76b
zjpS5<U|esn!|HHcS@Xo1OoInBLQ)5DkXrp9{#ONq0%q?!>X^r>;RgyJz1J(AiaESf
z4Ky0q%jPs)g7B`GQ@J8vyqX;K#AdmD{Db6>+{)qIrWznFQ@Wtv;5{)ORThrqNzn`n
zWEhDO!I^xqY@7V|>f|%p4T7LI2k^caoy02xAueA?hf72&I;`BFJka2*dB3hfbF42(
z*cp5v-rHBkM;IYS+|iu%L1^0tm38We3nB$R6vMzLtbrg_AX!rgvV&#^YmKyrTospp
zpTmdk7->R7qb)yD$NE(cbW<uEs?F9(Gyyb0yqxY6d{jMAoIlcqkHrWUt5*+9yN1H-
z{tmMfK8`&i###qA<0q`U2#hs+Lc|I87ZKSzy>E98pHyGr!Vm`npNd(;lQJxr4%d07
zKm8lH*Zs7bwL>&+^z3{l=Ddx-0cJnXx-}uTx19S3Y?ACs`hY2yIeb<HduSeK#iMk{
ze6EgiA5xHXw`#J~<-z80Mg=RMEuSyQkUb2;#r*K)0hKR=FPw}FS*AwGs4NHIt(i^>
z`dNP=PwW?kWYjO}N?C5g(cu8T6yuBYwjg{)O+olK8FS5Fk16KZns_*`<WRqlut8ro
z6`0+FEbx7$jyMuNS#Uv83+uvcaFC@EV9>e|d=*E4fN2P{_O*H@%@M1EqcIjR?d!Tb
zmfa(W*`-VI8+8nRu+Tbx>sEE{76@@z47d43_f6di%Nb^jWCEqq$RxxTzEwxXEo7jK
zp-ATQnK@ltiJ`ansNQd@T#R%YrLFm$I?_232x>HqP@~Ur(V<a6@4KqnYU~MxIr+%*
z48B)OwG9oi<496}8rCwyH-n(p@2k**;&Q72=_1AfufPvtjQASj<DOJ&R7ixNyr`&l
zqD|~#;qxy{2>hX{38Lpn;Yi1!eiS1Bj*ko|k)!a8OObES=^>Jo^eD{W*OPd@lOJ~y
z0{o=jAvUr{g%0VDJ3BorA|_3R?fO#{!c^U9WJf#fr~X+TLwQkK8X-pCWlk<QcZt1C
zC)}<<v1Fmy>2jdT&(*(^=SQ=Ah2+8iv!O%;E4$}J6fpuMSslucx=*me!rw2{FlRPw
zF74ZQ64?s;vW^Zi#wH%n<L>=+4!>F_aUpqs(CDVeoapuI7zX7(xO<SEJ3?hJdMKL6
zTPsBd_|>b#|1O8$=-NlS2NznA;Dq1C2)<)YC?Tn!W(zmu@H@Zd95qx})zAC;S_Z8p
z%p}m=R-{xQuYQLd{-FLY0!DPZ75*3_Tl-W7<!$0!7Amx?30P4M-L|DPxQkQgS1@jN
z*iBE%;ZG_8EN91BkW1yFKi84)`AI#LJQc>kpfucIXa5B|#4}2Py-ZFC%P*{1U&F~=
z1s7IDl~oQe7lmaPuCiW5p|snz!|<v$j0rKU!u#EGGK7Evk=*4Pf?WIc!rJ7}3Q7iE
zeSHndYsC3jphb?ZsU)l=nAlC!c;$&4uCZR^VszbQBPCO>xjy35sRBf)Bu6hkS1y{G
z!?o56-y=PZ0CpW;kfQ^x9W#cpw)ZkQ+KUuDzRNe}aGmvQ!kWu?fZIB_?)n-+QB}?5
zkQ%QEOpdTMalQ2t3rO+SeMs32cm4Gd{C-un*XU6XGwuqN53*0@aD(-ljFMsQ8!8BJ
z!}T@P53LvIpQlL_Wus8l`bO(5x)OcRHoG@oAHi)jx)PsM0X(EaggN5K&+AQeuleIo
z&1pAXUqg%-cb2L#4OzH1pWSTz8bz?{IE@Uk<Ziw`;vktIHW?+NJF8bY+(PG6CSRgm
z;g;6ns(wt1Wh;^(_N|{$f@O2Km9Eq#`jxv>^#W7rV>ZYn)h(n()45MBa=6WU&ECR@
z_$)^XaNC#(wFoT#poS=0gXadbzA=Z}trx`&OMK=lj68iT(35U&1BfUPr1oer{)%O#
znlhP3chkLta?3C1wd)HRJzKWIx|q#6E~975R`x(rM$eY5JE+QP;-`N7dd;{LcVX6V
z4(9tOAgMF`m5xWDM9Re+|DD5z((9cK8&B%>&Spu7U+?T49vq;d_Ew)Hw@Kf%>9knH
zJ=HJ0d3}TesPC$<7$qVc>xZhIPomeIq?k!8`P^}Rgn~5@dx>QoN*B5qKP4xmu^=eY
z&MC?lH37!^a8Iqn7pt>ryc-vd3{%IP4n<DFz{q~udJ(yu=85SZ{;0i^^&geM?OlT<
zLXykFjX_QN(h9o(&N!(Rc7acGa2Gq0sd>yvY2_I5oF<kx)>tnVK0!V?(>h%>jE<j>
zlZR1GaFt40j?Wu8OWzFAMZhfvXV*E${SMXVDY^CFu-EgtF@;Ey6TDim%wdb}BE;2n
zr=ib|uOr*i3PKyD%yp4gNI%GrU%#dR>f}Ws%umIoea`v_RW?ScP>Mx`B9jDQUg77e
z5Re{gcKe8T3+J7r5MY#OZSQthL-zVpV-DMOSG%c_SRkGK^R4R$5UqfR70IZxJ*c^1
z(|>`U(jkudj+l==;f*IEncrDO*IvJu%D%cw%#xRUtiDDd`{x;X!7cCouE~&t{sueR
z=2upWtL_HS{pkN_VBI%~w+l4cyV{8Ed!-g#ozCc`cS%iPUoU{XGb>o}&poB(F+%0{
zZYu0Z-MA6c<K1Hvu(4(6Mof>mOSPEGsLgQ-N0Wp?yVY;yFfJ<{w$p|+bEReYF|;M!
zR^p=ho-ZP{YkiQ~gsd=3ZJMs5ELPObTOLVm+Qn^tv+Y(cD~n{%Cl;K+o;s&z#cESR
zbdb!-MGhCPmk7BI7E0$@=#6%YTCJCeFS5R)3VXZ9Gj*YjB}xvYz5f0*-wvwXuU}Ix
zwj|)67Rw9wsAEhTS8S<Fm67HISTu+mzNeZIQ1zZC3%5DW_r<J?@rl?)Y80n-X&;W_
z0BDPgJ)M-9gKnbS!rj+&`yPiiqr+19Tkr~wITp3Qj>uOj%zI*-ns1jm9MG+TZ-9Xy
z4deG2%w7q@PB0-Qa<n6gfhBGL7wem6jL#r>CK&kv2V+j;fUl{fJwl0=AWDH-&pmgC
zmLs=(R|F2wvzh(HWE*4V0*7J-G1l`OP_lduEO@AmJCbR&7UytSWkjuO4wqQxtD?HN
zEs5`CteuaXwO$r2#Ufhj*`+EPEaU^@7MIo0s@#Jf9>5dfAgV*No*mpvr7m0^fSMiL
zJBB4rhA<^UzAzzP6)Jq(M_-Wf8=Pc19KhdNzgIrkl1Y)d9D5G4KIizJ6g~U9lJM(z
zMA}*G1$y0mPg3|Dp~!J4+!{JCkF1wan&a7G2ksXmkX2XM!{<3*J5L7*CT#3TE}gq@
zuhXw|GiA*a3>s!(dh^!bgvtRE%`zi2>BAG+%SZ%!OU>3!a&6{X@Ss6%*9_WqOy`3Y
zqM<=IqvSZ2f}058v71b%Qihc#KGj3I3K<lGmfPt9EZCSLk||?hM};`eL;;M^!1fo_
zOi5*WWU(~6uw=uTkm0|oh1(OPt+K~16^Caz2zu$L>7g}r2YVK5k^9#%YVp$=@=~N!
z4qrd2T#0b&sis*shVPDID;NQiPYLdxvEC^;(QH}E>eE5O*+_y%FUGGh7GipY9({KN
zn4TNiAbsVGnNvSnX@eY*gBZ@}eVqI#Udsmcq$nC~7iJN1j^-TQN~QyMXAYO^p?5T0
zIqrm_44|I1x*G0XsS)XW%0&*DislUd;GKJUj0!#uL&E#@aOKWWTUf+ysEo+UzVJ%n
z8ZyUX1iVQ#WCCIw($hblXblFf9&>!X25l~NdL8$|Ct}<>W8)5m3cFU^-^pHl&z1EO
zFNV?FS6Bz9$MJfN11A&vWi$K2khmE|_<Mk|(WaR4szBNwSVyHO?4Su$N$FJs;&`z3
z2dUxsIIGZ-MeyJ{0+kox3q)9_5Y7B>uagsEenwf(X!WCX0;zhL!$a1KE8pI!-9h$K
zoT`V~xFTXbtEZ}hEMW)eTusyc%E@||G9ZEtk+6=3Ul|SEogtkf2#JJt5bE`T8K1@f
z2xS4{_ja5T1?LPNS<42h4~y7aq{Rj9w5=q1yZ3&So^tIKEDY0X7%tbNV<e=>rDn=B
z>0_91s`0?`t7O5zejbB^!hsW{*uXX)e_6*+Gk9zrlTL|@FwAkZ*&E@m(DBw{9R=HS
zc$_X0G^wUyxO;pI`_hpVYApp+h^o|{U|ZW0R1!K$DMNN9Ke3kIC+(U~ph$;E-;<jB
zCir_>3{HSTdB`^Blj?}e)mbfNnzZt#rO~omo~*`NM1YZ3eu{M-QP$0uI0%i=v)yKg
zV~Q8UUH?@5pc0ipMZKODBXW%iYd`{pxQ5v#!qKyJ?CHASdufh`VM8Vgo)IJ6PAX$o
zB1m!3a}s)wVjrZfv~w)T*htc2XogCf7;x_XNrXZU|DYlvY6|XaA>R)~!e`deRYK!k
zB{>pB=IG9)bi;p|e^gm`>$x0+mcc*8tb<WmSRSWn_x<VdGmr^F|5)1Ql7a`FkaP^A
z-}PXBmKuVVmm1|L@Mp(}q{eoZ%os6BsyYt*IlAk!e(PwO+x~lQ9j$y!QQHDV5)9_3
z$@bp!bnl_Aln*Jq`k!M&!c`S7CdQT#`jfGKB*xl3@h|Jw_=;BsRQUWDQKbT?FeKvR
zIBk;uRm}o)1Qbe)yr9mBZ;uBD%1DtBLclB*8F?Z0kM3ZLGY-9^L7d-<Y%~$|mBxfH
zSCi(-&2noW`ep+q;or>q*Jn8a{=J?@aujMyDG}NIa*@M}&DyNEOK7L$bM-%Bluxe~
zsG(5~n-O}{jUhN8(uf?i|EXfK(_%218?9-rqwtbC=d3(x+K{J1tQ2i>f#EKpJ30K9
zDr3x{xD=rYpD(R*<c1VNu2-Zfi1`d=G9=E^Ul7K}We;<BnNEk07POa_*O77p)v!Rt
z49^l}Vt%uI{Hq*Zp)3eRvMz>2=kUsyFEK9E+0$W99bG1=!7?oiEYquu@vdZ!e;VU`
z^<RPU7AP{~UCH+K7me}0#(d(-KHBlM)^h|du6s~SOr8RJ!k2?E$N#pM<cho6)$3}>
zl%th<wZj4g^6Sm_=oF29z+>MKW8ery2un-}$<SH~4c)u=zJJ>{nlvk=hb*S^O?6K3
z$|^<{(TUsl;$f$Cl#TE~a`gY0oul7J+$DH(9l5gAgn4D2LV$SoOtY07m?ImdYw|+N
zTl7pT<kJtD`4YU<`i+c0jLFnT%CwX(n{|I_f>I7|Q`Jpfex?_ydmr9jhp|<<5l3he
zV-pZ5v_DuiLk%0aTMqxLi(deMbUD7G&f@21bwP%7h%_Sz`6c*HJxMj66W(RLMc|a_
zQ$ENAuQ(KwIjFXIW6QghmpC;uJ<%Yo0p1hCOIX36$1K20DUi>oqJHN^2QEEyAcyxF
zV_8bO$9!JQ`)V;3dR7=qfljfE()(?xBcfSjaMbZu1~P>Y)UnLd<Fd5NlsKrF=Tu=*
zbNHYNZsAtI|B;O|(2_o6<G9yfZOc{kBXuj&bSJm_h4*0<tPK3hXH0&io(fk1o)wZS
zf!lr*JHDmp5c6bo>R^Fq1~O~I$7(rp$|)M71UZpcn-c*{Yv=Isk{(-v3HiiH>ait=
z5U<CUQ9?ec$6#|v57`JlRcmhyd(EL(JBxIP_SE4c*yelvw4QwwFyCpTDQlsFkw2e_
z`2ed$;0FY04es^V$*KFBPSrgvhtKL7Y-TIHRv&CTH@3j%>gZYeybNH38fo_0tmf5(
z?B)r&o03+yL%ZnnI3h%^TXAc+4PS^6L?!_(5E-igMOPtM#23w`+-aFH>q{|G0PD2)
zn5JzR0oG$W?6`ygr|!!pL^c>l5XJVd#4vs}ote-cP@t2Q51X^tdFa7dW}3YrN;+Rv
z?k`z=BB{aG>a6gJ>_DL-5uGgE?LEsKH(%FRT}(ZC);FxTRYN-6W86{jJe?>WdERH{
zn-qx&q8Og29e%5h6giq}8jzw%K7`SY<fEOQIy5zxmg)h2+lwz)@_~FY=+600ok<SC
zF^Y6FWLKJ!xkEt`z8<)U_DW_%JK(=pXAZ)|*AY_G!IZZ8)YtDD7s=UI>zKcOfgjY7
zB&)EVMro3ugS&akZiS|iAF4n{VK=E8!;fNSU{wPdlA>UkxfEyo$2#MKe%3kBa6;E&
zDk--=sUzah;}RQRrbLsv53eaU$cJJ5)USBK{*&wt_*pHzsS-v|NYNbn$|*nB#ZAUS
zPR5|b`Iwg-ANS`ekxk){UFPtM^=pcliD)SamSYCLw7#z_W@4EnRYgLVc+(wI(|tir
zG-wHm#a!%lt|08hU#%Apwp$wT>lm$JQW4@bCp)NHT>;4IZ`A(eH>1Z^fZx_RqN}&I
zr$*iQ-5o+W{7w!1Hh%cMbv+>z&s%)N#Az^MMu@hMLWJA7mBSxYNVPKbL&*AGIQ(Ob
zj5IN~sz{J^Lu&F|^-roPt4qhQ`pr)9=NRMD1Q@Roibe4MQ9!r9sIV%A9or0Rk{a>i
z6&9i~+QL;5%}V7$ZF;O+HK}u`jTU^X)ElpsXr|4Hv_)QOxVrT-!Micp$8E&8xQH1Z
zmbv2CH4;ha+Ik+=a)fJIj}sunMl&Sv*)dfhucdQ1KO|srb)H;1iI8q9oF_#x#3OeO
z1AOvAg{SKzK}0K8E6U)y*7Jn$g;h!g3N8AARw?d!iFk?FYTF>K8Lpp1FvoFjL8d__
z6+HE&I1K94-lTE^o#Exa6Q6vl+70Wh($I2Lq{A8M)D#q=Ps9ulxWIf0ymc92hNnlB
zB?eT8?m=9tK?Z!HiIymh5FE4=>b+@FN5Cmp9Sli{>6@UYDNfe)d$UCHGN_bZ=&SO1
z88^2POh_0RYcr@O8aluda)3?w+>Bf3sz$|Mr~Z~nwBi;Tt&KnhoWre@ISf_?9caO=
zV-}P@_hf+viW}46lvcNz&*W=D^UmQmiDXz@(HS^Z7V#AQk#}3`IwI852ym|z^veDC
zcfMW7F*3oYzWrZ;V+buy6xV8^Yn5a4hTX0?b=K8+*=nawNRM7;ziTju&iX`b|I1mY
zu{i8N60>-`D(vgb2?6Tj!oz#DL_-c6v<rzkg^l&jvg%+}X{8mkkN-~e7ddQ7ib>Ju
z!)ELB$|OafPXS?)6n*{<C!!rAbWu5Pe9rP6bm=ZPTMb$EnkEQ$jM+7%66+OoF1y1T
zbSP19D@sLEZLE~V(cx@t7ke<~#V3Kj666V;n$*!(MoNhWc|xeKgn2=yC2KtJjYPD#
zrv<S4PB9DG`jy9hzh!z9tSO?5n+ds%Ak~=ycb}eU48>Aop<gh5pAj<&)iE+fN?fD4
zU$ksD5)n~tvLs&M%$Rek8hfWiipYCYki-d`r6;l+DwtsGRMfL;P5n6i-{^7S5xw#u
zGGrOzy3I14Ey~)kPh)LcPoA}f^oZ}E4b@oNHa)YLwZl0vyKj;amFZa46kmpB)N>Qb
z^R;Tb4Lr}aQZ`rroJTF?JR8e|pwLw+`HrE@)uu+PbzGu9$YHyF5L!f1KL^gQBP3ST
zIuJU<>Swej&jpD@RF709aEkvz=LF&ooPZrMa#KvXgMcW7-i@nzaM=AIITanS{Df3L
zI4y@e>)c5EAICZ0C8?oRmg1a4LW~s70fZwF&VLggT4!(Dz7_6T^U&Jv4=sG2kdo-o
z+P-xM9TOB~nH)fL1+1y(jq`awX<_M5P4Kx}A`Zl=>?n#5a>tG1esFgi;=%ZByjuEI
z&;g0uQ!NTnb%WG9J`roGG;3$W&MSY^<MUi6jb`oa9f+aS;QAQuqv=VUC7cjUzSdo(
z0c?TklN!Jl5Am~o%Z>zDO(_Cg&-Wa5W8Wy6lw-uZg!|+;WrJNx8SJq^9gaBcV&c$8
z`XJN%K5b<e0pH2t!bIYwDDJR>6+Yo28`1>BWdstZCrLe!k(e%X*jxHI=fgctYEPX{
zPw~fbav<j`C?s)8i0|%;^@mh9(jAKKbi|`MhkL3R!p8<WrX}eb_Qf!l(GiUhqUpzY
zK^B8{B=(COW|AO{n6dcw*AfA%RT)O%yM}yrOpe#rlqA~#H)OVs*i(_O8=!(vN`3(M
zak0vrbRamD>KKCSXuYw6G5W^1)1^d=c;Zf~LDJ0J6wB?x@sh)wO5H~(dff!hL$!|B
zFeRcuhf^Y`$%~tZ6U_pZ?7_xyj39M)F0o$kKE7A4tYhd#?voSC<S3lYG87e*ThtLU
zeqE~aCsFG3I4FUV!B({hRn%iGP$7vIgGlg@NC<!$ljIX|y*W;R84Pra@PPvNwr(f5
z-X^6ijM5|pOi_afnTCHNSwil2eDhQ%Puxd`RyyY}W%h4lhF0V3)GXQ}piz*?{&zT-
zwSITHTkWRel=z)`UmI6UF@uWC`bx4S`|R<z3V=OFOeDqHVsgsD{bKgZcx_SXF!qb-
z#7*6u2Jc3n59VVS;wnIKM9Bgz)NhD>OR5ju(oNbNa)ODmhISnZvlwJkAjG!!!$+vm
zbB9#-q{fBz`nj9ng*ptWGQO1P5bxd7?K4jxl$~UMpCH>7jV%e}*boNLaoP+l)tT-p
z@G_-D=h~cJIgXr&!HJAF=Wd1jTTivpapZ9-eL*MwxmyFkMY1xu)3$+7=K(O@(L~IK
zD3$2f?b--dHOcxkjer1cjbd)bvi8%@$W4xrHPDOcry?Uv36KauH9SdrQz@5#S^J5&
z0mE3o%X@A&+aexV_j9Xv9~n(p=z*5-#Td8cC*pEt9o;@w!Iq&wo&Ch+dIPVdCq$I@
zxdz{1rlKrKK+Wa(HpWxevZqyHvM?nHcECS_@Kv<LB%(<N;V|kXXlR89IA-IB2%*k~
z^CHfV1lo*Hro^To?8d2)`kO?5g9=(Rkzj$a9L#Z*KGWs-l+;i-5yN?cTzY*_!(io-
z^1FBImD)d@XfWj%6WXAr27|8T#$t^MVMgVX9<H$A#5%A`QbM_v4b$Sc-X)DWJfO&%
zw!;HYhBs~ZSe@r?XI1f(BS%PtJ#yp}sf?V%gA$1_MPu@4#g+%#5F(Pe3x?^@S}mxp
zOXUA$iQY~!tJLz4M2w<RMa%Z<L+hLd<q}+lTsA^HY(kM+K1`>8Y=&A{mluB@;NjN$
zmB9}gp+_<@8Y87pueST~JVM8ViB|4B1Fr6>v+>9nk=?=y=xJFORpdCanC{H-9Y2sq
z=|C9rWzg)U-2g%6(Ke762s}oRAsWI_s)&}sWFDit(nkY{f#9*$`#r|@9$_FT6K1$k
zpBx~@g2yFdF=pE@JU)g;O|lqs3zrCB1huff*%MR_<%l-{N6O%d)@?-E(MaH&k|9k1
z6BrSwn6qyZ0b9ZZdR0ptU94sa1Kz|K74f7x-`utH<NUP6m6eFnXr}uutWG(*YmOTI
zB7Cw=JeTu>r^GM=Kk@XronjGAJyWvkc*y$$OZ`)I)ypW^fMroVPm4JX0y)N!Fy~Mu
zMS6XW_wFx<Su8o6krnUh`uZpabo%g&BtlaTEHiHL_J_IqzZWJteOlvt@g93*=m$Cc
zgD$#xQKD&IX7EhwGr~G!TRG6sjT9$3sEQu!^MAyy%b1&KuZX$%Pqi4%7|hKQ(K6=d
z?p_IV^I3({0a8YPG*{KLPwsRm)3ejzpxhY2czI4D;s05;@8;yW)_+t`WvNaU(IB3C
z<OuzJ<VX(BD=fJM_~%+nu2O#OEO2u2g0H`Y`SOVv1j(=6a57l~5pIsUX?=c-vNAtZ
z9eacTVPzdQ0B@E3vTTU^oqm$Tza|nvX~3r>7aHR33+in3F;J=niZluA|1@;n7bc>8
zFAwwdgst@##Z0<4$>(aAEKuPZDA?lH&%f!UFT3$A3EnbU_u$`SSgU|`@xv<al_*iX
z9T{PRTRy$=#rn!lC?fF;xo-yl5p$&4*~X8mWE0RaSZiEr87tp8{HGpjZZQ28TP=02
zUt%3k2omP^)~D6bJxYyM-jp@##G}rGEAgVV=?<~~GErAb)@UV@m&OQpllNLcj*b?p
zfg>eNl0ELHiVgTO9R%hL&i79=@L#kPyu6OQEf4ETC{SX5FaMpxD@?A%ok3_Cj=335
z-7Brv2^P<>2x^ryFT2wkL#qowY{(O{+p_0_W9U^XZVIRNvBR&fa|Rape3?`!diXVo
zSPUpFlF*dkwbt1L1I5^>@PxSVphDM8!F(sj@g;=OgsJq{_pR0h6;DVKC3rO4Q1H4s
z9I!HdphS_%EQq{I63&if*HYR#T1X*qqCqpEOd`g6eSIS4EG{p_hUhock%X(NRI%at
zhM_<rK`C!kIf(0ME%7?Z;7u``a}|JpPmU7)rX`PomL%rSkU-W}=Q|nK{wI;RF;(@q
zZf~@jgN)#W-W;<oM;(L}q-b64l8YSPqLV=Or+$CXX?Oa|8NAgxJQ)yEPmqmTc!@#$
zX=|z1xttc~+Y&X0^vSFQZ?~T7nM3$-R&@DqG)9R?;C`0F|0*Z6k0+Uj?}*`qA!JP3
zr=1rladMoOMD{g%i$hGy4iY-vX~$yIwYb9~!z>zjSIp@&shU<ujn>g@*g}QK-E_ZO
zHyO)P{QmE;z9(c}a#UjQ?g0f7ujHNQkU!J<7TxB($%H@>WNI2n@;)2JUons*=%5rx
zqIY~C$@`PQ1;w!rjyrxJMqn8qsikztLoy>5$=;q54?7f>mBR;h>x*9l+!TUxzz<pX
z5lHqGPLhxqz1%@+P`BHM6U#Ii0EY#9q~3NIt?8na%0`whM+kg0DP<D{-;1KKn(#3j
zLIj#r<WgYLv=WQ%(Y6nQ;@{-(aU3E6es}UE_(aSKm~4zdI>ZB!JCKt&utj`Qh4ogu
zT)O&Gb<V$*0_&8?5Qi_<tNygEcCBSXh=QMq;X{+m;2|{%Ka;34X&+Lk1P93B<hzYX
zWn2{OuP;`L&n9Y#OEF20hqP(@koadj1Y&S=)ZpYn<Uya)?}^_UK5y?h0jq7o0!JdW
zUxV;DpQ`u;-OZ}6bUVu(3Gst3#!T--?I)l{@43%k=kO)nS_<qX>?pA3emO<}p9mH<
zLX#7+xs^D75ODAn<^CfWrtLP)sudFXs*Nkca~Ow`TI_+*C%8?*w%qu>rYobf<@_Fe
z-3Bos<;^C?Js~sW{v!UqmxB{I7Qb_aIGw(sGERP!Z13<*>*mbWyRjPE{4fRkT?oy=
z5@kFfHoedKmH?DPM|1d=E<@8B8W!OL-;R;^L!7dL>QO<FdfKh+VSSG8B%*9F<p479
zyD{gC%|d56?Wl{RM2X0Y_z@()e@`VXsW-)s!S}7(3C^yuYFB|4A0}e>kO7#UnJhqm
zIoXxN50ugNdO@*}AJ*aQ_@vpFLo!5n|NgLE$d8l<c<U6Gfx@BBQ)cInt?vjE>o}8F
zi70)916)*Ump10`6Fu8hRTPZyK?i;s^C2dxokoi!7=jl^+>ac7mPpX&Vz-}V?s@om
z%+A(dOR9xj5upp^B8UG=B;wW<zlH|lj?hdUREgjhF+44(3V@<Br>*Egvq}%7)(43|
z3Il~!xg36(1j-#Bkc6`KtC)>9KB&r5BDo(W8u2dKnVT==@N50@*>IkY3>-Y91IXYv
zHh_rG417fF*kwXwft>TLPR|+y63%Z!d46HQB~ajZF-Ney{er|aQ57*i2TF~&KK7bs
zRwRh>MRWLlBI@Q+KhNBMw)6i`hwsV5;!G$~(sITN1xNQEb>7(kLfL=(0Q{+rE>UGo
z35fZ+f<r3>pTnOM4e~}a9G7bNON{tzjwO3eLZIwgv8oY+JK1B+Ijq?rzLMihXwACH
zhKR+rinNY|EQXJ+LV5kF8-l!0#dEuwbsJq9iP0eaqEbLNsy)JgCvJ6Tc_){;A6MTX
zD_Rkf2{P{*8zSUcmf88a63nup<}t`}p~8%y=3R4x1_`i<IXg~~J-V>2wIM>D82Q9r
zVHlyP7(aA}qlj#cU3){2|2+?#bRl;d1Y&|;XG6q^GNBk<K#Puvo!F2ZqB4^UWY{mm
zz$T3bnw;}wuRC?FtCNJpSdkIolPp`;v(d%l$pxbuAxN8?y}BaLGG5H}H>ky*%R5k-
znEMxQQ0FUE)`%!kq-Zp0Bf%f12<t{@rM4Vy7=EmN7Knd0s<mOtsq!HyGVB~+oEA((
zbXr)t97=*W-XOB@;uW1igV2P%&HpAb<Iq__0wNuZlA;e{_HDOfhHL@5sqWg=Vh2+-
zhS14Z;AYnEgmU(#+Anrww*(}3lW_KBbKb3wMDOHq^9^$LFC9%+2%gM+5_kCAB8EF^
zuZ0p2MMCsVFS_UMdmXtG!P!z{4!6{qHXqS)dqLpj;Z_@JD8JPnCr^zS@XXBg9s#D$
z;nvtUE(ITi&NU4On4HblwA*Z`q5W0|wwGzr>#EeB`1TxbtCN8cb?(GzxpO9Or+E`q
zu-k2jkOHhy1oXudIZBCSK#z2{3vVUUd@qOF;~1`r`fUblV^-V*yGN&@V(~g<HX07D
z(7Eel-fv=HxdP_iNR9$@6`8Fz(T`nLNIXs&Y_K6*`68(!RGI5a@my=oVdDlBcR3fU
zk@kkm$dXdn6tm~Xm*g};Bp6Ud&g~cMNURx?Og1Z<onOhF5Dv{1l{W7X!`^tE*|Q?@
zl}K?|k84b(u+>YPcht^x#DkS(a+$*^8zMx%@o%nlH~?QRb|h1rZig0@RDnbjamJ(M
zeX8y|JSd!+lyastnh-KLErtn=J$6dev@nd=y$)ep4tLrh4p$#ujrvO0okffibNYrF
z`gb`-dkj(9(+8=60ul&{U{A4NHXhIZanagxIKy~E4;m-SBYLAe;!Is1nk0iUBKR1b
z6(g`sPPkE8ly;A>d42cePIrYs0zuMcJ$&EU#;*e1+Ob#I5+j{?U41kgvP6(%qbV{-
z*$>g$9hk<p>b$4`fhpp654P2jN#r55%@s+N;t<Xm<x;JFn}BW3Jy|X#geWwIxYT*u
zc4+xR0u$P;Kgr=d{R|wq?V<d(*O5;`D8CXR8inO(vsIe1T0%U(^KIcTzy;Rvgix%>
zYGY@?;EXy8p~ARhgE%v|+%??U`iesH9ob||hE|vq$aYIUUs_J{POI>OciEtpXVx6x
zZ(@3$9C_r(kYI_i3}Kw#T{mcgu~TeQ41a~YS#J?_A?PvbMk&ydQ>gtSPUX9+s-^DL
zM%yj#PES_Rlyy8Ie{qr*tCB3S7|rN#TUmdUgg?q*=LQKlbfgKlh`va#ogL{m=hH6i
zis3Ysl93Q>D8U91)I<~V2k5OFrj65ywUkAf40hL&%&P3JLWy)55ry`2o4Bv{=t>u3
z`-Rrmgj{>`cX3l-;}7cx9CUK6J71GIOC`BT^(v|jrvlI37;A`jNl$W*Ara0pD^{Gl
zhqBI~UXjG>-_yE`u&a$Nek4)*6P#)Lbk&P95E|hz1T!{_h$!VM=VFl_MYEKTFGft^
zU%L_QS2a^$%_IZ}4%D)BjD;GuHmkr_fOMSQAo1iTuB$u35ZBLvi(`1fDq6rOS+WnQ
zpF<&_lXG??Eev#X{8*##+;?Sgt{e{Pj${jZ<5<>MZsx5en5(m76<oeVgp>numY<d!
z%g#)w8I^-Wt54GwIQ;)(ni$DsWSX{k*aUqfhf7u;<u<tV|Hmk|k*qs1%5C~FncXFQ
z1kFiKWdttLJ>1-0w)&{I!oB`~jCw0!G>?pWYt^W8xVPG@+n68KAK;-4_o=6&+k>j7
zTLbaMX@9N3$A7Du&|sz2od<6|QD*&jb<RR2qUS>;K{^Y~7-PKqzIrSzFQ@HJ6OLH7
z5q|z<HGa~wq*ziM7hML&(fu}v?*pAti#?j*W{iR}DS^z>BE~;umxV;Kd1b>Lcbs%A
z^Z;7c{e-*`H8OQ9&LgBjU`TrlO=l!~I=$eER9{M<c0*}zP_H|iY}_m^_uG)hu(;8%
z&H@oDQ0H5%DB1#cyD8j<(Cm<>kO5sWIZ3w=EZSgZuk?N#PoCuRgM2&T+Z^oddEJuv
zanR-4V4p8^V#J6E?&6Rb`E#`FHF+*5E_04<=5T-eO2Z7Rq)^sm21jF*pb8Z40u`dW
zi&~O>)RIG2W#T3*^88_RL_=p2mg~4Cl!ok(N{YmF4i6TAvicKkPB8B)ho16-tiPQ0
zGw9b5Q~4Qnq2b>Y<jsPxJJLox5uQa1v|pL;%dOuCw1y&XI#2Zt1C2!I8k7%Z-shaf
zFoLSm8=eM{3~O!Vx`@d~u00K73`hcWfzOHd9*|&|m?D;lb$Uz}Zi;o?EMN0@jG@t=
zBlNIEt9m*`6!sGv%8@k4pj7)IeR`#iC2tHTDHA0&hZW+e_=4QP0PefxaD~3U6E7KN
z!9AJ518P}KijMt|5OL6*o&0#mZIuINNJ#p=Ahl#qJWvOM7EwG4$utTNsxuIMRK$sp
z5Unfx!+-e)t9=2r1@`7VB!*oDy*0zKt9t3N#N^c;s;&hr$eJOxi#Pu_niM|{53`=5
z^3qEQnd1pxcKRC0<+3{o-=W+Qd(eX`KU|H7R8?vz*b|SaV_emzRq80xDs+(826?0^
zH2v%ZLO(YY<o8iA?52csT%ti=!0G%{16SJEirq{uJiIrDN9zh?5kUFRV`2miNpGYF
zMYs!z2+TdjG}-!lEcUl9<Ob^HRwofJ%E#FNA^=#%u!Ks=#1||8LBxA;H9mfWBtCMS
zP61fs33c4ARZ%|$aE(zMq9>~GsUga^iy?!*ufq!}W1X20X||l@>traFE9g!RPtv2#
zZ8d=|g(t@_1zrIDDNE;(Ya)8kE^~Ow28k#faBxfpPmNJsBA_XhAW3ZKH*q`5GKlnM
z4o_3tPq0X^v>c}x!_(_1Qe#)0Cuo*zYLrCg9G;<SWLT%~AL`9SHJp1`rw?Z$tkZ`I
zhGu)_@Juyo69mrL7r;MS|Md}c&c1-K{0Kqk><e~KFb~=#OouGM2mO<J7PBSy7L;W{
z!HATk_pCbnmI#Q5HA;*4+AOyu2RT*m*(yS}oy>WR^*$``sN4KGF-KB4x@R!#cEeh4
z6@;nJ=>s#n@zxyO@_YZex-Fba)}o5x&x^77YwZbs##BAJl5!V(VTslInk%^B{~7zE
zI#70S+QQ1<Ut*-Oi3KA^iE=q8JB<B}9G<Ty5P=`$imd;yF??@)!k7^vVP|h{xcV<p
zV@iL3Ca6YRyj!*cURXzoDr7H@p-7+N0Nqnpn*a1KGJlU7G>6vyTdg+_%FO$>=crmd
zO(={uA!G~+Yx{TX4>^N`;z%TZklOO%I`3Z*+%rOvi*iY9bzq184?T94mu&L?Ge+;J
zE+r5uSTh&-8GeZ#>LQ>sIvZyx|Ce<ag`7NEW^IHd^)$!OZ9#JmFV(lD)yW_2Wigh+
z$zPfqN#nqCX0QJZ!`8b^zq@y=1N|O5QD1H+FjeH(x*c8-qqUE#=&^PCWoIbkcNaTM
z!P!R}u&YG|X)s&~D2G>WkWk}n*z0HTsyb#w_lO2?xMyi2&kcJA<`g@+71#-0tw$XB
ztXDF4O&w3FJmmf2?t=7KlG{R9$CZThVRLw`3UL_TnHt0;{C6E8ZlrRkCqxU#Lucmj
zI_;2GqG8d!zMd)zJ|d(@i1ZR!&VFLwV7<EICG9Cb9lWuQ{U9GguA*v@4($dhec-|G
z@;=(#+|SNPdi^}<aPBWAWn+fWA)>}V$l*=ORhz>_w*A8Y*w`ingG{s`D=ErXni?+R
zhH~9EtBuKT)?<wV%sMU6Yu-}NlwDSNLs|@mwLIhsmx<g{UFNN&jeY^V?W8vP1*A&K
zMt33}m&TY*TYWuQ->%zwNZ}d(8>2x?;H^Z3a48R$gEMgR&5L~{4Agjs%GH9{h?s5g
z&KM>;Hd8I2L|VAd(>Wzec#S592pf*8goGA;6Mu7fmyQg1Heho0(G1>gBZ~?nDT_El
zhBo3s*Sp&V2e~PS_o$vjX66P)mt!!f8a3V<qs&%Vs4J;4RC2;Q#@F$EpDw_5IzL>*
zx=rto(J)MvZO^NNj2|cepleMUjYbl{Lrly496q2&Y`}Rx81ts96?`1aem@lWEz!cT
zfbkm~*H33d=a}2_AGRSx1ke^DMJ7<Kh#L9G1_`ZTD@?=tci^Kj$HC~<A0af!cl0r}
z^9FJtxmvww`SBQWYZcM5NRmUF)O#BUm!B}L0&N^7Uw*QVueJndT%bg>F;X><<v(Tq
zC=RSe#N`Y=UGLy2qs|4SNQsi5T>+&{=td5o(alB^m8F-%XY2SXD#{Q!8nj-uAQjtn
zY4f@M&Pb%Tz!`)`aYjOLQfDL<?d<-fnr>$#C!pCQ^Z+$;a>0vUnzqTW2A{W)-aS?d
zF6Vp&<QQlggWPs=Lk?e1<1QuLI3d`U!xv+|%~-iCBt_k#g6o&VmsIg!TsySN8Y2If
z>sS-%dH1+5g%N6WNHSF3xRmywl-*bKXb924{T}_QjqE_&ltf^UkA<xLn#yVJ10Hn;
z+T|I1Jw}Ec3utY0II^g}Jm_>8W}AwB5_Z<GhY=`Py2`DaqiK?nf6<NR8!FavEm|wA
z`^}hhx}vadkql|wT-mm&u<o~X2RjZ-&I$N-Ot+J~BSePc&-R<g11EwLeOuo9@f~xh
z_UWMh?v;0_5&?6lhTQRcYIz$%SDgQ8Htecr6uw{6?h@Eut0_{{)In<DJTm#!si)B_
zxXWzN?c^BS^#lF#T0a)kkev+s!<cP4nKgN8<dxD&YIufgB;a2ET&Te3@FP9Mpn%E$
z<C8eV3Y54ma1oXNC(5RgucL8;&-V;|YQ0X4?{z|4MTs7%6Z^Q$DRb@4u}&LdZRB<i
zKT}Ip8IeTFcV_T&8&L$lQ54vTlBSI~BNsXRpV~{8J15Y<m!ckQpW_#Gq#DFO7`8iZ
zpB~d>&{2|%a)mdXbc;9q=lP{_Z+0rB-EL=)bu!&VzpCTFsPa;k2wM8~ZfUpt;a{8e
zF6%UMF30$rIx<JO=q=Nb{PYz4J3~~jb1Am?TU`$QZd=^GA{!w<-qGOzerLT;hz}gg
zFUOIkU0V{m_zwA!?J>_yf3JeDTUaMnoXn2LZlgKOmkbH{4>r_@1j>Sqc`Qv%7{R;K
zbaTqx8v#WAqe?=^6R1A6YJ`8P<95-f)!$d7RSf_5v+^)DEa|5COT2@b9}KNi;WlC8
z)LEEOm-!c6voSEMlkpC&vaz07y#fuK2+^lK$UKz}5{(a|dM`O#b)%dmxQNmDEN^_Z
zjS+%P)#fPDVRfIH{OewQqkLCovL<L=V`BtEh~U~LYu++o+sBvsZs8A1w7lj<S@{b<
zT0`Dl!J?1tptSq7Hb!jHaY=h)$+BJ6?xOJ94(q#LTjxhhtTeP*>vc9pC?Dgsvl2Oy
zmx4Od(oCEpWlJ3f6E6g%Uf5c9-HpQCd{9e?yIn74;v!;YYH_!UNSW(zG<S+bSNP<&
z8*Hq>L_*N{QCi|hkuZ%Q=k10Y#i%c7Ja8lH^kmAQGcjURngoPA&2@O=jpD7=;<yq<
z(`YTX;U*g+&VIkWTAYOCMx#N(BP2=olJ+B3efy>x#k9a=8%{i2&fsPnBgE55*_I(S
z63Dm+wiQ6f8=YR?%?^SgY%HZh$-i)mjWy)a%2X)%m-AEltwUHC(wN&VH;VLyI(HA(
zbSH?(yj9Ew9;?Ea$q|#-?;4TC`61kTqd1KXLV@8DY!tWISVMWK24yHxq^S^42A{8g
zTU!SG!8YsscGh`B0H1r(PL_}gk)1s-yUoA#?RDiNOggf-W^1X5iV6zfYhyk-n~))0
zG|2r?N}LLS;W0CX_8iu2Tw~bxPUunLX?>l8v_g1Nf$8QdFpY>wi5?eRy7YM3JjzB`
z*bpN`jIDv{36ZpR2(Q^ujCP6?&O-AAR=;I~?na$|fixl$aM!5=y)1=IaUY$2EXMm$
zDnwmDlGsK<?Kx~#DTX9FOCf_hY>bdxSLL<^nrtmVi=8#)a7XQbIdyAhrGE^akLhtZ
zCFZpyFp-{AH%>@})Vl+6k;AFVU{185G3*Vf<c007(_)ycF_<>k?y90jtLm^c`UQ6<
zJya=<nxZ$X|I=g6xA8&Q1!AN*?#5=03kiK0XKWM$lsln13&__SF&izA9VtoOSG-j^
z6xYx0`4!Eh;4JdIkBF}l6qLi6y51>X&+)$brk{qh>TuY!nXR;)NYh^o!vl*H8Qxpk
zcQ%8sakd_GxIf)mZb&r_*b?(8ylv7+Pl0}2BE}``U7LqB*I<bpw(5GoHB?%U+v*5e
z<@H!vjf`kqT#M)EZZOkor`H;EhZ+6{=f(&;tJfP0NQxVKwDjPv(@)RgJUs&hFObU8
zWUxKv)Q^B4WO5|7mvSYh%-y^rN%qpughK{M!RK!jmzxtTN|@6Z)cH(>Z977Xdbn(6
zUm1IPhnGyvXlVW4+4_$u6K++aD@aki!x$T-AIx2pVVh3G0S|vuPdp!|U~$C5ZPtVl
z59ow!x^n|mi@K{xr~-Z@|H9pBNvKsYO7bsDsQkAV%kHjX*>Ox@(^{BQF|vZ+DvaD`
zNavmqec~xAeu=TP(077T4m(wA^!apFN?~!>X{WF&=D1!hN3Teeroi*83$ZPSX+1rx
zgz9eVdesnCeWv)$x!#{D%CiUw*6Me2*kcD3>V!_j;$BW2-^*a7p}*xW=wnH0!d`67
z;lho9J(Ked;Uas5D`C%M8st`?!`7{ny((AYDxYs=UVpepodp{9RHj7ar=`*F&U-2w
zrO;&Sc3+)tOP+)RC8ABS&A!hW-4*i~t93$3W$&+}tnibXV&$n&n2}V*K7id|61M~i
z%y-aGmv-BfPU^uAoGeBT&RHA4#Sx5gGzei8`kMTe@Ne)S^S@!oQ;!dii*<ewjM6^I
z!I*7hF^US?6HwsX64&6r#GLYG_LZY5f|=!TDCYBz$I|qaC|Q@X)yZshX&*?hp+uv7
zT(9D=?plM4yd-8Ngz)M7oXWP96{0RxyYC9lKE{;6Wic-~Ar8$b5kI;YUL|Q*QTkpR
z*H{Jd<xbW@Z#UfAdaYMMTnTVFGIx=7yUkwOA7)|gt^26lalCm98FbT|ng2HC)bU_o
z>Z%+eMC31Ztw*rcucg1!@5ph1Th4>~T8~#Eu5inFbf|M&;g<7uU@7=y?^y>F8a9U`
z`mT!Dn00zg81831PjE?&4ecAD$0_GU3`q7)id33IQ-x#f%q@X|`y8H&&)2a<;ca8%
zRpc1KnCe^d4gV2ZCg`m6n#-LQ2EgEsgLaJ6IY#Cv(IWTxbZ0>`HIkiaemqTk6gk0;
z53Ng{>YC_s)OQ98F-r65W&);0q$Qx-^|n}02`q4BDMrv-1(d50RyLh3bSQ5!*mxZ;
z<qEiBI@oshR=9r*FPi|-NL2hzID4yXgk=hzzsQMwuJfZCC4!<<I#7{eyD`3=$wtTm
zK~CW0Cc}qa*4fu*=9}{?UFg;FZdLV7bm(B;iGR7TQ#sdLVDML%>n+5qc&@kXFvNe7
z1!--gEfQrbI?n>M!OP3G0d=549Z^aiE*b_Z-KUvuEr}z^ApdJ@Ev3eV?Bv3UDV0-x
zE*$$SO!>J6Y3Tmmkq{nTBTJo*(L_JLcu$Y3dj|o6@c2Fvv#=%{-$I8hU+mq${HwwN
zzT)Q?8U8SZE9%J%qsanF$!a@jLkMX202KfQJ%N>u2U_1TWy>o-7+CKxOCN)$B!)Si
z!-G^vvJ(&<95c(SpQNOHlul6B;X_nUMZ%Q<5f6<qD^=R`$C0GCH#|KjghM<`-8$&!
z+<LACI{OHthsPY~qdBo-$Q96J6pPtM89hSTdwaAVs8e6zk#*R6rJJotkU}IQ>Wfah
zE;uPDhes*<6PREVeI8wBaOj51nkUXg$x@TqN(8Bseca|h*ke?IZq8>2Z<#l!#6lC`
zv2}J$QzxcOhEo}&5rb*5F^9*M*<#kEEUU+#99v{6^rl?&$+5w?E~i*ML6r)`D%VMV
zV!TPEgm$j8ipr_X<{1*vji=q{mi>EOj2e2+|ET-~Pl^$}Cx!AC>Cq%`TcT|_Jb9yJ
z6b<^v9g}!U%ydtx?uk^aejr^*`VboTpQ?gQHk@a_JBgJ~t9RUvrig~ri2hvIlEc%r
zUkZq@Z~crq3p$LYD3D<kDQxkZ=pRBIM%ktH`^-8z%qS-=kz)s=<H94n_aF64D92!$
zec+#LB!8{&&M`)VXW>xL$Q{P4hkxtbJljTeuQ(<b5gT9850`=C_Cv1SPug?z({+}Y
zhZGsvaIC7AQC(ViZXK6HW(91jXi-T$HMx=u?9SFcR-0@EY0c=sv!`=-o*oWb;6&%`
zpX>PUCYDUm8A8s8B~ol={>ALiOPvKuD|vp5A!O3V6+-ki=H#M~ZuqY%N1^UWI6Uxz
zm`*2WbQ2*mMKD@R?o-_g!Qn65D3QQyUX+qH4LPdeMRoQuldurWQF3(pae16%PKAMg
zQ~wjA%yO)jhKv7uEf3xDNO`m(IXajv9Bf8o#9ypmptIauWK{6~i0OA#7!@T)r^Q~q
zO1fr*_)qoFE?_m!ZlOHsOX}=HeqPMDBeci}6Sy4dw5ALo66n#zqpR`1a74+Pz!@}f
z--&`ZWxLA9gqPa*W>z2H7^lz}+HAs*dr31<M!|P;c$uE)2>h7B%VQ3?NqQEMu^@H2
z3N@@(s1$|1AE_({uZ$5@S6v~VAa$_UU+3^D)ho=PM97wl9Z7zGSH}nycDQTRqA}FU
zNmZ{=wUVl#3GxTLHfE}AKe7_(x1*Bb^IR?p;UoX8VhmR_cPnDp>zshsS+^4aJs86b
ze=qqwAqg@YFe?-`*cTh*pxex)BKzyH_qE~TU+N$CWi{!qv<+{t(L|v8j9K|rgh`OO
zsDIqRNi#wn<eNFXQI}zeJ@Td)E-~SJ3PDFuQ1<}~Mc|SDQJH~&Vf2ehJTJUCMvfn!
zgI=abL8N|JBvWn{6o&m!zn{ZfRP4)|3n|wXF9lA#)kd^8M)36%<oFsxmrL`xn_RZM
z982*wJ<C*G+q%8M{cYO<Z?_>$h@}YhyzOGx8zn{j5n0uqAvy#}vXWK3^~@7F{I5DY
zy6IxGwSpTUCw)DGcf{DYtKsoSh|z*Mn6j*aIV=e_3#{uqLvLZ*lz(_v4AYuyVE5EW
za+&V8C_<mZ;!Uo2x2f9<p`}Km_tX(1EiI8B_UI-7MOMeCN%WH(-n&ua033k^r(VGO
ztm6n|`Eov_5TUQSufJGM-FUzDN6VGcsNn-KQsh``oF_!sJiAYjHG}wP6N^S-a4p((
z$mWoRI2CR<A5>Q5NZ6MAPz)0vRV)G$QcOOG4*0Mt3s#AjYrn%sVvc9;7M90@;EobO
zj`Lla-K&WzT4g?mkK!1vwuW%{;A7VBX{()7hPH{}FxQeDy?1(d4j)H~SH*KEgHIU2
z385(x0JCBq;Oa7rhuyn&@(#+ppR_IjJ{9v}CY&LCHizu&_q%DcS5R&~tpaYAE;k2D
z7`JVj`Dg0r7NxL}QF0RJBh4Nc^|Pwdp{MxlZRec_pR;~zdz$fiisB&$#ChlKaQz@8
zVJA-xrrjpTwUM_iOZFh3P&1inx=k`8=oX(hw-;k#WS5gJ@P!!8Flrz!5HazUFSqGB
z&EbpKDXs^(gBImpTEzbUl8qpy3L4XqFEN&=6b#a4ziGc59t{f}z{rktkil1KDSM-N
zC`EE)i`j#h?o4pkPI5Tz)V?e%shh)Bbu9974L<eZYcYau1-4C*4AmxQQDI2vSBei#
zwh$kk@O9O~yJ${i?DmF*xxzPWFcaeM#-kZj(d3%C=}O;ef|sODDZQw(xWusKiG|Vb
zNT%F&wg~rcDzn9j77WlPxHJ7*wLV<snI4d%oqSKe4%6?x?RpuW$_4C0d}=~e`A!|V
zW&+qX{-MEjbm5oncU9=*1Q02BANrrZccuML<4BS=Lg^(t@m{6>>HBKF=x2?EHerze
zzy=b5krc!Y@#DlS2%l~`Wg9bkPXey~L)A>h{yvaG@Dv%19<LwO@#9q3^~(f_FV0F~
zd2LKi?Zb{_psijinP2hHpr_^VV^v)!Wxkwu|C2f{h-}y+BH|LMpvMrUcw;2#{-^48
zO6AOG+`mtuA@DOB!vt)n)ocl6s_MJt;|Y^x61kJZ&s9MX`&^Kb^?xy1N|nWLgcNlk
z*1laqLe?)-ICO^-8GriO3HW8qp<I%ig6GL(bs=91h8ks0;pI%TrGZz!Qf@Ct=Tb96
z^iTM8O&47802V5C0?V~Ofq$c}0bk$_j|3-Mwh()>1!QPycHy@+j)U<k0uwV$VNwUA
zIPUe=iJnbja{8Ul52Pr>Af@@CWAMMXah)}OT=+}%<cCj7uDLWNJBO&9{Xth?)>=x*
znq@okkJed43=BOkl1P~ni-g+hH{zdES>h#&xy<lq>of}J%3}$58kC`=)@{L?WSw-z
zZM(+4W^Zvw%i%Bj?wZ?l#0lqUhDu@0rh19?W0IvBN|4SgLK~dgzjx2>xkG1mFdvt1
z=5Uowa&-9AoU7Uhu1pMv&&R=)rcnx}BW9M7bG1!kDdG9cx!#?Wqrdv58a&wugx{k;
zkB%xbm*~B)ApJEqiJ@~jJJtfHYoc8ouDL0KBlu8yd{Tq<Jrxp`7*Z=xj<2;z<ndr*
zHcIBJYg_jb#`UT|i1D<`JfLjDy3QuiQMR5NKoP-pH$^CkqbxEYF);(k9S}W2f4H75
zj9%WL<N!2&sDO2S8$<-|L$&Ruf-LRD{f8*=zzOJP#JRyH5gd+V^}e*t#TRreH?*-t
zSQx9vQbm`vrc3z-%3wB{8*Li#%nbSbb7wxL|L1+jTyX8)xX$7k=b5Rd%|$@@UgE?G
zcQ4U<Iow3q$wKq;2H8^Jrkf&84)^mg&DowN^+^ny0WQZ>b~J4#7Z0)0EA6P8Z4!n`
z3DSheMS~v>;O3hm4wG@I)*&T<O_T=mr{2Fmp9}{%+(LJZhU72{x#gyMT74<5r*HGk
z97J{qNjG~sCvdOaYSWq!a7>C@W^n76Q)JbOpPnGCNlLDFA7Ym^=WrW+bBqr1`s!^r
zMI5G;5k_7=MM1fo&zZyRlv%sA0GJ2dK%@5U>oDuk%pX!AdD$&0=%iF+DJ-wGR+&<>
z-A3D20Xt&drW&dzEVRzwDoS4kG0xKC_9A%1dR^m+WZMuJkPMQTBYP|&uF;Xgk=&X{
zrDxakhD~cc>TnB9d~RQDjG6MWjzFP8N09}{@4`m6(~>DYDK~8r+nxF>VY77`<?gDg
z46d|jLtAN)HjP61y~C!WevAJvApYMmW`j-8Z_5O^!i#GxI^9m$BpRc+GF!_8k_D&Q
z04CV>SzVGxN<L9(rM)Ddnsme*PP2ukuqw19a9`gkX7(pTv?wh)CZ_c&htqXqGcal1
zKk6h#IKw)e;Hz0pF%Bs*;4$%2Zpfjb%NzHh?&&kF;|YmZ%)z=QeFp>tKQ`RJXDP2#
z6CtraIJ*w-3b<u~3UwEjht6S(o(<?e=C~}%q~03Ct;S|j7m2Z-)@M@7O`p=dP2ZU|
zJ(Y{<T#>>#F=Ln<-(<wh7rIMYMCH=po^y2wRD#)<_IWYltVgO-^(r7iL}#$Yf8*^T
ztHh(d*FO&DTURkL6Y`XQQ)!?LLzM{k_mAH#hYL29Qb_d8cEm_L6H`dSiZdl_347B!
zD~q(E>Ab%?SqlxuD{vPZMvN`Ax(<7hB&}uwb(+?u9R5a6=62p5i9)@rjUfUvU9~77
zB7AF<Dra>anjW#k-c3&{{A&HSJDBetBL|HSi$EH*$_}_cNbcKB2l5nlbcawAATVMI
zb|d!AfbUI7Y1?U|h%hRRQ3ob<z)^<b540d&QxEc8x(O-J#=g&VolO{KDQAUExaYvZ
znK}O*cB>YGb2tyUsQ1Jimy;b7M2L1U{lyT-nvOGPB|EqRbK1=)Vr7`IEV-}WAGncS
zs62UqMV>tL)<v}hIDA&!1_e4CHb+e~3i|ULKQVhl?j$vn;T|U?$O#qN6Iy0DjOV)N
zhy;`NjvaGL3ih3>1S5pl%<YR4C9bg}Xs<JyB>e!%S9m@5*Ae4JGHok7p4b=0saJVD
z57>e1#I1hMaKUF|__bk}7PPb?B`sRGY`qqs!7tW5*ja84&asTcgLT#(K5BDNphJ}R
z&P>go<6ZA_`o>wmbu{(GP!HAVlAjgTxIm|v;&^zIL>ef>YU6mP+is!97cQwKZ!khZ
z=u!@eaSSs$$1c^T94<9QJni;^H@(a{j&P>%v%c#BDLMSG$xraT^pmz6OCmc343;yv
zcZ`_sjmY!EPB-^9<N__)UAv?uIXF8L;I!UHXPmPBk7F4nj~`G=2r1$R6ex)~>{xn)
zngav@<18vIh~Wh88?(Gd<Lt_GXgeJqv?;HYJv}=T{ZS4_RACwPyIp(l`_+-=vlL63
zDkt|;NUWRfv-iqgxT%s(nCqeMJRh^rM&G%D6j^D@uN|h5Y&mmV4lO-Ony{$lGNEmQ
znBc=>PUapH8;F0Ni+@U?O#|iSGEGBFA9u~inq4&eK^h7a&0K>E7h**130@qDDkRH5
zn5JMw=N47!*0Q)A&WDAiIt#wCz^+iD9k-YNrt%wDA*$IMVkTQBu=f$K5+m#VV^(~i
zPnngoNXHzQVsbrXDRf6wq-sKIsdEfJcDK$-x5xCO%Oyo+Q@w92vLR7r^u?$2Cpj!D
zpW#HTE~X7oGM3Y3dp3#*kuilZ9RtJ)le<Ei6f&W4I(a{7Cb%HGj5f$+;`E`!9&+*`
zjuHj1<<4?Sa5f|Gu7f)2h>_9Mr7=`#*92hETJf&GkSOr0v5?Dk*M^QAh?&BO+R34(
z=O$~4o*u$M&mq&@b46#+=`HkaX7W0_$35(KPl*yyzjtS_*R}cg9xCf}I$q=0u#5To
z^AZXP$LjQrN+R`JL5X^}Y-V3lYR}>LCh`A^`LEljP{u~K)PxjaRFOE2<%EqTBD0{v
zt~ib`on`y@X2LfUyP3m^YOb2e3|H7dR?QLCXNtMdoJ^oO(DEg;a_|E-NuI@EW$Si?
z3vo-O*F<c%w6}!+GDgJ%Z4eWJ5=RfUi9|^gM^KbKPNpF+Ew^{DKt$h1&~K-pO?esv
zJJTj@@duea8zNF{hX=>7!c}lBwv!gkxE9-YB(t5?QO93)2P4nnAzp(>p@olfvFnGP
zoJp@hjOg!@rUclA_OMM7EZofC;V~~e*#h6pEPa}=y@FJ$M{JTnNGt!GHG1A)@W?v;
z-zv9wC0R0K;%Kb2bhdvk3=w#g@()x8E_X+9C#MKcv=YFhZA>u<4Q1t`M2+~@#oR{V
z4uDvNj|uxHK8u<`lgh=yV^6C85;f|7ue4b~+Q+G^OI*gOeFKyL9$!n18?6l|bcj>T
z@ZUjsI1F9N;Rz~ube1K42%Z>kn&*d9TNMI)IO&x)6#qSTwIQ^sX}Vfto+I1E?v=rl
zYzX_Wv_)+kaXKd~H%@LQry`j5X<}D%gMG4j#sqH`o)WVRR&$joHL~m)lr05Z23f05
z-6U}lm6=yhi;*YBXI@oiUEO?*hEbQJRi3VPXi9n}NNk)`Un=AoF)U-U>92w;D~H-{
zQOXKa_zyNiLpNNEXYHk4NqlCl86pa25(Sx|3Yw$~&0<S{jS!mq7{Dllf2!q-7%@o;
znGz1t?hps*S=cR_W(b;Z+xhTp>vBRc@@V9cJkDAno{QVg$8-y-tm^k|(#)`+GuO9x
zj%tPTS-U-N^Znd9stP^IBPdWIRpp{)wsc0alk{LlJSnDOJx>K(+ti9(P{(uX4lWq9
zj7^tl5q-_I@yG??5y4@BRt5#0ALEOe>~AZP<Y*XbOAr{uYOCb%ui;1rM;9B+c`+9s
z-~~34yGM*<xtz~mB1Z?eXXSU&oSRt<ynUe_T&?VwPds{29k+vfQnp<{q6Gc%Z~EDB
zj98pvS>X#}%rfI&Hz388JR}6i&a4-2l1SFJ=Pv&dV}&s%y#iEwPJ-m712*!Xn<O5<
zNpby_6RcZS%<m<2R3~~|O>HGgRQ>ocwhpBp`b@Kx9GLTU{Qk?V*Hqv=7jO1UYgw=P
zQ48?$bm;v&kkK-RAz`Tc%Zh>*8f99kPV~!bt>qC`S|Ufb%)Qd)Xa5yC`}jx`<~upQ
z3T55AGRAu``D7~)q%&<wTSm^bSE<3((yTQ5`_(bbZTv)pwCE_GN;qw6AL5i_@_<&2
zdQIVI*?K;__9Tv$t>+WoGaW5k-O=Kd)qdB>{=(Rc*?c+tw<=%l4z!jBw%uMA<Hs@|
zW~ZCFhh@(d2yqC|66Td+GndNB;q`imw=ESXgEz$NyRiyiK#4y2UgTo<rICmFj33we
z8;!m6a!yXl;7u_*Zd~;WPlw3j>r!450u1Q<&J#$A&F`D*xKPR`XMq$^-^maxw!hw@
zth-GZwf>NJYaQN(4|_26A|>jU5pccd=54CiC~{Z^Z;xRotHwGhIU;^QuX6a`O_IEZ
z_(#fTDGW^~`W-PsLK$93g1f3ol8`VhHz>Nzrv079Or%P9L-3#AU3Da->Wbq^i#1FB
zJ1JHm&*9yApdiY=+jDMQeOQ6_)bSvc!TOC1hf?a5f9>~brwV+I=8+8EXPw5tXN-&2
zHF|VnQScdC)t4msB8T_ehE53{2ot_O5Yzc;>(0|-`N1x8_@Hj=X6_#KzR?fWIlB2-
zwc&(x0@8kaeOOOT3gcGqQ3ES9d?aRHj|&J7DG{jBPIXNA6qg;zq0WHih(pk6A>{H$
zRUI6xw7T=qAl_~p?_)8VyN7B;3To&arN&Tw*y2~+$CcR(HUA$zVSTO|p=}R|?53AQ
zF+>zlPMS$to<@3nD&|9Tq(=csyhMlU)9*fk+V9X!@|-05rPZMypVpO5%1f({!s2IQ
z^uY0Q3R7V_Et`txsD(cD{^oL;4Vr|y`PoovBr-m_7(RD$Qe%l6$xHmXr>)Vvm7m9f
zAWjxN1z(5}RVJHmi4g59?z9j#{Y72o8trQ?b+?Y-OEE7#F?cv6M_S!sX-KAK_vY|r
zH3bo3ZZ97R2mFeS;GS_O+(<a!7|L|e?BaVPVS!)8VO@O<`t7q6z813?CVvB@W71-0
zAvB+Vz5E3bX3Fu(<9#@q!8cC&3xwq83m{t6-keHxxL5rqc7Mj2z=UcE7MPhhkU(LL
zA7mpRe9MLvfrmN9ni|m$4eVn19jkf4Z<Ce&5HxO)AIRa`YGqZv58sJlAzu2`=R_Qp
zD;kNN9J^>NyG}nnOp_$PNZSL(e-}rBMSzeUxRHIY-ZC16ykk1FR&W{dWw?~SuM(Py
zl#OhNIL0gRgBZPY5?oA)AhAjnRTKB)R@%lVbNHc(4yvrP6$*Y-N9U^4`k9abSmn@3
zkCA7T4O$Ff^<$OQ3?G7kCVo<<?=e6V1TsPXlmfuSPmNtW*&~CW)$_ECLc1XqqPGkG
z%HiiK6(LvY7V5nHUyKlF;qYA}U~z~=dVE4?tAE2^sC!Rr*nHmGD1KRoL5X2JG>I3<
z(aPcKB7OwF(j~Pu?{D)($>7)4bp$vUJ}XCZNQ6=x@m|tMrWoipZJS#eUCi5PZ6$<|
z+m)RA-xQ1*Th4*so`g|j%Q@t*=R!E=>?jtXP^qQAkRL~2K{1nN$+0bGZpq<yIuJGQ
z{oV!=QADa>yi~K^7+2dL)GTWiL)`!1kF`{<%EBY=e{|I1A36MKlZ51$nM;<2#?WN&
zXX|s<_&zIOe#TNHZ1lqt!ltG)S&-<f(BI|o7aZN~!o$+ejfOVCn$0yF-eb<jQL^NI
z->uDwHs^4a&C2xA80Pk_nR>6fxdz({Ouc17Tr^i2bGX`O5!2mmfj5M!Z;s%5{7sIh
z^KO!kSwgj^qC}4jBy;o{o7WVeKaOXMPCs9OYsU087WzY|Smc~sd+3jAZ5EElR=0Uk
z9_5^eYg_LVLc#*P2Sns!16^p#D^VpCW!ml}cE_93ud`Y9x<*c3*9H<5LsD%8(D+Hz
z0wr+LdyTK>dKfYi+sY2oBOV0T$6jfA7!B#nJ<VQg<?z9Mn7QCY!y9a_aUci@)>5m;
zU3L{mq>;l7H_JKLOxb$0e-=<E$yeY;)?tM8Ngrp9P^P85-FUMwyF;B5XJWO%omkfM
zCe~4e4=Ptk+mM9Pzp2vi^*BLc|NcX>aI?)dn5jNVeS~DRkDG56SqKL}<vq~61h=qG
zB0y6LFJUyahg)uzAWsvS@PF;Jn>XQB)=h+gq*~<i)U?A}Z!Sjio;l0^!fmX#D;deF
zl(eVY8s}kip@j9o?KVfq@MBDk0Uhn;_M64(FgUu1+~Q1k@bcN~HqzQUQ>X;^rADb~
zkL$3<+uG*cdM2j6P?geIj*IOBthbIMfCUSXXyb`$|H)>HL+N%om@YeWZ_bJYY_Ogq
z?Aaj&5ot$BYQGydYwn{AaaXgol<u+e6tHP?gj6x{rArjG=gpf%W(bET7H&0g!yT;m
z2s6jT7cWuPQQT4IU4<|zwI<QVa7rDXT_wg9$Z4Oa>RPK9p9GJ=Y1VU0^lZe73t=6@
zo%Ad(Eso{vl1_RYPPgu(0-q)?IHsvRpRxJ>(e~wmksQ_e3+4zA!WDBL3s|e&)oN_-
z+6K&Jt)$%*)@2=D+Z;n{rX{s^W_nybvyx1VIl>hn1PCF703n1BLI@#*5JLD7LI?rE
z6(9r%cenxs2>1P~S5@EZ>h79RmuC3GyV~{k_o}O_-c|2=Wiq&=J5MRyJI>Nd9P?*%
z?<rgFR-iS4WT#b=Zcau0P^BNm`97bL0Ze|O00)s5z{#Y+OhsZ@(O{0t2;f2=qm_9l
z8wPTYW?n58VTD@us?It>9P@s)7%XrH97J9O%@ERBu9&*E6Jc1_b!*~cAAddrqEmlv
zScty_W*W}O619vG5AZQGPNzoUK*|G23iUceij+=Wb&aiEKugEU;z2BWb$8LOg5BL^
zU|5&J59)M9M_S=4!`jg)@!&G<JufN!q)E1?C=l@wh)6cW#@Vp4EPq=U5A_jYp49HL
zg#r-|BN6-e6)rTYwBxu@nV_Y&6ejZjiHEb;l@fZk#KlGh5g5~D(0jb{$-Sv=38^0C
znx5c+lwi^J*h)4a#2zQHRCQNqp0&J_q<y-?B+FmkUB0^!SAPi@&=h;xT~!}cSqg)O
znD+9t&6C>GwqPLR1Z=DA{w(8FPx{A04sU8X_g<$U6We{JMcH6!ie}@QnDNq-F708%
zLFOZ11d{HWS%MYCR~MK2xT@CEdQ0WdAZ`}606xZCv%Ws3e-?8-5}h84g$9Z9aMeso
zAYEINCui_I7s`bHOp^tWV#@YL#RwMRG>EV*<RWVeaRtjOai6$)ObKHEKrdm%wABqh
zGU5q4ogH;!k9@0TuV6zX=vc#n29YZ;ttdTdcN-1*eNp~CwJ;}EecawW2-_M5GDdJE
zRC7UF5QC9gisQ4M_OW^;HBwFn21Qi}`nu1s7Bz!LWhz_`r0zBsgNmztlru0)YRLr%
zx!1rZoLZTi)m}&?{ZTy9C-@?9wwL3Cgy2VU2oy9zy2z_S_j@+N6*;&`^H<{0K5iBR
z;nbuTEQatHqz<6qu9#XRiiD{8qz;^_(jY<7W6v|yf3?kS>r7>meieaF)<r+4-z>!d
z{u<Px;S$!WjkvW@kGoWfRV$Mc>`g|@fI(m#U(dEjOQ9~D!uAP$v|>*ymqWz}*5Os;
z5BRg^_hN$wQKD;(vsj?N0E}m|uz{nq5hZJn?_3j#SVV(w;0z$-UQ2TCnfns?CiCKq
z&qnI`De|xwLj#G}D6SmuQiWt#Upl=QL_#!uyec$gFTg-h3*Lsw3#S?8*k{W+GR%eK
za+^fa-7or1WaV$EBZ^A;7fX~-NqDJU$76U*36Dpi&_B{AA9^&Ug<+TiNl7@N^Xhkz
z_?+`Ny;%(eIUVRq(`{h|ovyn+g6vieIUoo+OM>X|O;xSXFV&>mR{XyeI&O{R){|k4
zE+E)q;UzAGP0L_PKw~)Dxumb58;hL*lfDKAVy=hwpmXK8T`{d3>FAwu+2V05uFM6?
z8pEWcTzC-s8+@u|s)VNE8g*t{>b7W8-QXkDRcMsOgVe`kPT9b8*LLJmy3uD&orX%`
zK+F@cWT8Npr~)gjizoW%3a2VINRafT^9<z_$`XY6!fo^7$t=4>PiLnh?um`j{3ea&
zUO9_U9LZC7BqjP@_cRGTNAXmAWJ>ETsCulqu+<e$W3eR)G%~rt6a+G!ex5mXUe`xm
zCsr24Gkm<Nb?dw=#Q^+orJFL%>0YTi*QiACGkwlP`X-7~P{@837B8=Dx{#yV7SHz4
zx6VzXfgtF&k!wsh5xKz6@v+<Py=eKrzXSgiOULSnE}rWXW;z$5g$9YwgJwejwrpSQ
zC!X(f#Lz#o%K$_C@8X3iA*Q;fs6o!qPvQkWYBdGWtF(v*nZL(gnCb4O+PGDhmuJNb
zSz?Lf@IrIA3>KvQ{&}V-N9VFPKq9U%omjlcN7v<HtUS2`8>9FGIE3nOShFdrs=n{V
zKE@<HXwKt6&>xbZ!|V=TH8;DoIB9&e$&)ks&pChaB|L<ntUsuUPeqTgj64kWr7pF_
zM}QsivZ1N16cn=m2(nF1d}@srY%6GnI>-KUpQZ1}vFGq0_K#umC{_!p4O+!&b%vkC
zD_HvJa<QO>vbw9K5n)d$7}K9XgQr&>uF%31uk_iBx%(1xSdjIncz-T2s?=)6*Q-pj
z7x}6(S}(0qqH2HSDf<Fr7=MPuI?^E1GMEsr_Aw>SYzo0Z#-Bs)=o+YXqV|Z2E=fG0
z{vclCquetvR!Nux7(@6AWKHu2FSBv&jCie2s9owjhhQQ5FCn{7*g&bC*ZHLDcCVGN
z5<Y)bNW9NYoj|F;>jzJ~r)ZG)*KqFm-<%R}@Npj9f=&VdZ;(LJMur-*RZLZ9Wo~9}
z8ZY-oe=F8xbJ8ChL-|`8%DCIO*ngF?FK^<J)rV?ddW*z>|E}Pjo{gir^iJPAuy?9~
zAn5OVofa%lTy>OA3*IvH(*lEx5&Q#Ew-kaL4;qa)Zi%<D)DjidnIOg>0R8_FI?>ky
zp?l?2K-V|v`s7sDX!Ctn;%z=>q>O1woy$nT!2XdPD}8>x6l|@ipTygJqG!iRJR?EW
zKf!P1?(vi|m<;49eTPr#+TDDf!65FRp+OPMtE?u@S>EY$O6trF*l>{fFF11QR|cU9
zE#Bqxfqe@t>@tggExIS_;w<s*p|~ds3$oq=zo5CPLhQIfX8OHe%6v1;pjjZ0@NX`&
zczL*^1NHX}%`5^Ea^DYcggU%VMYRqaPW*-VfRDS~l}}N}G%dL&D8zpdRvE$Qyi{T^
z4<GVzMEb|L7A!>n`+25%sPJUr1~&0wAHTcgIch-)2KJHj%yBt&{0X;fVMBbB<(H_j
zvl|8J=YjkmSjKJQ*CiFYEg%se^Koypb;cG9Wc(+#<rUqq8&+nc^;rERKJF9GUZ);b
zLUK5e^9d;3)G>m?^GP2C(8I~fIXM5tsaTU2HVl99DX&zlE5mG%AnDWiM#kDKZwBp9
ze1^sBt$IwMK*VRyGbQf0KRvxAKzz=}V7cyJx4<Cp^Z7hBY}FSA&SU4y)PEyq8<>{G
zD?#JTN-VzU<JARryW=bn<b3Hob9!t=l~g@8MFp{Bs%R>|Tt<EE8m#7FF@&!mx>z}*
z%2O&UXT(>%Qq$%+?b$I1@c##CRji<z2*Z~6nvb$@Ekp$aAzz1+X1wS2PE}LX#5a7F
zhQkkMB#8Q7+YJWu;hTGQgL9mRZ(&QBYxS&~^TfA()RBEHUl9x9{;v?eP_p`xi^O*Z
z4qr471bvsaQRhsBl0;|89r+$hDZ?4+n6eKW0{GvD{hy5EGm%^#A$6P3e-J<L(M2^4
zpd>lKAn=EUnM<PU!)izTXyBRCKoIm}yqS)mH?=E!O8q8&;^WU{0IZ-q0|~J|J<psz
z7v1Q>RlDM6Jd7)c<*OHjU|>IoYBsAH#`+gNZh>QW<P7z`5p!(998`VkX5RQFBOXO8
zZW?O_5MpmSl0Sr^Ln?93h=;c9dDaCXHybf3ELf{mCXP=Mr&`>6#6yMAgW9a62tdEZ
z2oqaq!%&Da7hfMW8iC$HkC5+k%MlNcJjF3lNH187;8#XW64>srTUid)L;Ekpt#}Y6
znjRPX`t}9KP;Nb9yi3g<omr^h2XUJb9}h`Ag|eUm7{vYRh>89Pj;2W0%OvfXDwc1{
z5=(^iKu`i*a7;cOF{+){8XcS7Zp6dUbgo$I)b#cvxe_<|pLT1mnwvclHKfOJoU$Z$
zV4;iU^^gY2s3A8z^HVX&c04?3u8I_Q8u3uceM4+OGG`Sk$@1!&byT#7bIYitUERbK
zkcq6&7IO9R;=KzCD^YiCRkP(6>|IAtHQ(&C>y_m>)O(4$jd<8m{j?4razIR4#WF=~
zrdl-I!$+|?L%gO{B7aY4Z&TYeCEbR2L)^<tNU=mp!!Sv8#AI5iqN$eHmU1ejzZ2p<
zerr&{aFLV~k{PPliA92my2=cRj{EWmhDc$tB`|e$#P})sv!e7ey9#-{sy6ceJgO4u
zmr^HE4k=7+9odJbX)0pTxn2|gjQA*jNBCodF^d&@>DojBJYsoaUiGk+?>#!=;Tx%^
zm8?7tQ&(YMU2a>u+tF>b#i6}u<K4VMhG!1zh;hU@=VBbfu@R5R&z-%=x`anYP_37o
ztx)oDNju@=ET}}ZoJp#sAk1FHH$(&0Q}W+ZuT^nAODWMdw$Q%ShGN<($-3*l%(>s1
zv~%iUPTA87S!Rj4^*$$l8B}Joj+pc$#dFJ@9l5EGvAi-AU^^aE&ogP2Ka}<*PAyF@
zug<QBi+#3%!zVE~OislH&z!K(r9^U3Jiy1->T_VD;h3okchW8l*Q@YBK1Rk>U!GZq
zmyVd@#=OEaJqyHxSzL+Z#!{-(ATu=;J0bP=O*sEhAKlqAc*utH4`V+>7h|UfjSu%x
zBaX7}!hzyt@TYK9H8t&-@Nt)2cU%(+^GxyaNNZQDYs+MWLVb$Fq|f41AnYAD;FwK{
z{a{B6(8kj&vP5M>&)6fUkxz^mYC^$RprWAqQruCk5bYYvlRS<R)P$0bNiShcM}^~_
z<}S(2uTKW8vq2(ee7=S|6>7mTAC-iTWTOS`*jLu*ud33yOn(xW^C0@LgLY3c_Y}aq
zRT>uE2$ZRv)(7yaDGEN+oR5O(U6ox#W<D#8gqjIPwaUz-SYUZaO6X6M{!ouHJr&9s
z_xUaETobivJ%}q9yhQ3Ye;r^Jiy5mUCR0rROz#gSD=zzJNIY*gTON$*s%#N-P_h)%
zqxg8Y(}`OrMci$RRiBiYBg)AGGD{T>9*W>rTW4DFR!f}r(ag?rI)lX2Q}_)ctSp5a
z;kItFD6VEfB`WFB2_TEXEK@{?nQ~(BNFUFncUdx1N_$3Wb73<UJJ@57{v||d83{}<
zErccrRjUJrCb{_Zu_Wl=zLcbnMzOk}>-6%;nOyByzym1Jb;8M5-%SK_Q{iu?L}c|l
zUoS6eK5=^wZgUorX{uP-DY>J%GP^87pXqm#L<onus3Ybuk$m#gQJoqFZuq2%GETh)
zU|uOtU-nRwn+%JHCH3i7RO+CVF_~OCV#uY%ti)W}ChH6j;ELg8J?08cvl`e<=>_Zh
zB6ZR9N-MaoXHUVHY6``_4o_B9!K5B?TxQyN4KavbMs7^zp0ei@2xSIW0zpQQ>aBy0
zxQ->4D53|1epweDQ%Uj0TY+d%|Hn#=x*}EaN0IpKQwGsW!wt#oQY80^xeuc66PcvT
z!b?y+%cWHeG&4^}40j>7E0Ag4;t}-e23KmI<x<VtSlBWyr9K5S3#Uy>o*kd~$ck<=
zD9kan?ED;k24m+Rw?{i~VKAQ*u~4R$m&pg;;N!TsyMkp?!jFe`Dl}1{gbTFOjXsBN
z{d==muuL+=R-Kd4&}l(kQY-0?;)y<6hLT2G8bZl;LNezxm+h%l)uo@}$pdD43=We?
zu{OEMQJ^m<7f<oY%(?p|87QWV!b{w)3sT6`*ILfu(|l4q=25-lZ5ZZ^j+ojbq&pX5
zp;%0-t!Nvagr4D(0dyu&9jHtz#X(w@TbC#vp?IcGSloxIr{S1Rim(Z_9nC;=Ok(NT
zK2e&hP9()*QYm&t=3p;wb%KZvB%b4AI{P0M0+X4hSVL*G`C`}-&-GbD?xOX@^vL0P
zBt*4(ugm3CUlY$~`15y%Z{uE4^E7itVSnt@k5yav0-s2;XD+E&U-)}4zR0PamcL&f
z?ogVZ_NUkpFZB6f&OBWKlX;{_ACUIb#eztly~rndmOifcVIGYcqX-i7ZC$2Yov5=z
z{T~{15c}dXnW4PD(YJ3*Rsa)AajKN&Xt`4p{l#M3h-y3HB|dqfp4ndqGP6cuy3Jvz
zrZt-^`^)@t&xMm!8;q%<BZd=^Z){L#Uh{Gv*ROBSgkBA7{unCR7{OT$W)3x8;j<1M
zCN+b`^iXJIeR5AWLi&V@BHrE+uk<mkg(3hOiV32~Ch;L(K-bm?@hTsu%za#_k(dLD
zcop80>N-u)2AtYgdxa4$hb#}t+)%9Hv<=si)OA5?Lw@Vm_<Y44O}!Y6si5hZgGGzh
z?S>Wg<h4GYM1Qh%ippfre2#E7-k^5=;&lV(2n`a`KRHBcwpGl^9m!wsbpVGuQ}ZxP
z`h+z|cACn6s+{PywE263j}GF;^}fi1F$WaN*U<~ON_RI^lTb!}Z)DLW2*tZL8BT$j
z|B3I|j+LEWTv$A&`Zm0Y1(&D>G7oFlA`8U4O%in8K8tQB9UEK~E9WIkHhi;BUZ)4y
zun#_SJVy)%(mFbqYh4;A6(6V*^ojJ(;w?O^5?vYl9MAWW!Q@YDZ~Jg%F-VfFSk&h>
zgm`P2oWQQfH5MWhL$ML8vuYDlzRhdL6_32LapXUa7#>&tU|O0Ga>8`ftL@U;S#pVj
z=TfKNMIp=z#nekxq4YgnwAP7Qta#qxGxY$0@^K+DK@{G7kaQ{&%PZoYKHhzhaOZUO
zG*dtknDA8=^n-Yp&kpZ#Cq~_BpZ2d%CAR6Ht{?CAa$@=!BCFlUdk{JpPv>~FG2N<1
zL2DWJ+KTu3SbK-_RD@*CXX>$Ls~f1)`h7k*(p{=0tQzb07rvruHuHfYd_}w4%m<OA
zn2TD`#PkUf$bX=Iw)EhKd_sbzd^iZ#6_80T^+aZhCv?!-^+zkmuQ{r3Ay(IceAp+;
zM2{<(1svvVA{NN&hvT}@+OkyJ?M-P$#YcV4txBn&ya;A{<}+VZ0<s~bclEJ>GhcvW
z)+d$~C*f2>ypQ{6dS@=r?uYk@LdGy^buPR_d~)E7p~7LVCo~Yw@KFu$DIcfQSq+e@
z1^9Gv)?~ylJ~Q~N#VIxIv)BaOP?)<Df6gl^c6TSv_ay#2iK9MKQ*kZRltccxSD&db
z@Hk2o_sG95HUTLwjH#l~Q0Y+?g6!0R{2~vmM2o?mM`Q(DrjcT$!Iv^a6<_vQX-==q
zATe7Ml5z*m;;TNA`W;;}Z<H-+F>_-4zpr^&)c(nstS|U=q(LwZ$|J)v`-V?u+BvH>
z91}~CFUZ~@VO{a^O`qgrzk4Z)_q==yFPy!y$eaRv+vkP*+<=r#|NkG<FhcE#X*#YG
z-|_JwoH4rwV(uw&@Ogu$+kAY_XK$7=q?wi<-?tJ5xOYtZ?LY9bo=(3#@38+6yVD%_
zthU<v<mg8}Q|dT50uYl@5i8kkozyG@qN8HSIs8fd#3y*}*EY(H&xBR>_iYBUwCX?e
zdH0@F=G3hJ99u<3YAR$lzpMM>#V>re%9=q?;#_ddMm=D1q}=E;Ejqc$0T1Kr?iyOC
zFuCc09$RKfb#^=Fz_7Q>lHJ<vW(Um4MB&`oGyyknesdm1iELE=1MLhjGg%Mh{X|*`
z4-~gNFsPrXaG0)oU?2B{)wv?d0hmjXZgs%V)>x@02OQH<@n-Fa2E;wgZ*#!IW7N;;
zEL#SK*{BDyTe3=7$Hk5iw>>b}mIM$}P)X3u$Sa{fL$_n}5-gIWQ@8NzR!gDVA29oz
z8iUYHPO6v$x%)e?kTRu5Krn??MLgz~l2E!*ma09d$$_{N3+i)uwzF7-9%t_8fnqE&
z(~_>`xd(<2ix3jiMGqix9d=}V*KDT!R`25T+12AZX`KgR^5_9mZAfpc>te*+SVoy@
zLwmY30MkYB8r*t{`&iw>OX0fvSmpay-SdF)653JijGR<yaMce&+{@<!nWxR3%px&=
z^nh`!RS{2m!9x0@xDU%Lan4BOF8U{S7}XP+d8GFA5_7VGAH;nJo8Al<vqTS=9I9Oa
zuxynS+@FP($f5QuDOfJn6r2Z3n)TV{bh=lJ_^6RSKA^#4Dkw}!+J{aKtsbd&9raRO
zz53cQ9<xG8=H0VCVbHBdu|89vpTr>_$D!YeMHZL2pwOO5Wsu4l^Rfk5m1Aj|BL@s;
z%NU@^so7aE&e&ympG7N1Ak6!Ov9a^Zr-Ect^%OXtB@NnB0FcZ9#XhwEQJrFbaiPyL
z=_^#>G3^tU$ST2Amgty|qU%-6Yg?j=pi`MfPq!z<Vn<x;Bg#q0H%LqcJ+LpmPJA(L
zciZZUhX=46-|NH~gPETs;T*lR#e;l&f~<#=q>K7ed<kxX)(D#Iur40#Gd=EhY8r{T
zoarhv9kc07Xr7205B1UZ{J2?SIWQ)39x#X5`6%NNanz#KuNw(IoJE%iOiM*E8GPn@
z(rB#yD2qF!JSJH9-uj~`6efH^d+_=G@=kLtZmcNnG3m3Bd(;b9cue<Xov4`XfpWj5
zSyqWILOCvcVEbPuZ1m+;L?^c5<et$D0y8pUm5oh7M`}}VH^Xwu^WF`FZK<-TOw5FB
z&SW7?O7n8R?a(8onN4QSLOErwu@iGXv0l&H@R&{MGGKgz`@+x+SpMqvMW`02p5^XZ
zi}K?QaRm!4QO@gBV~oY5OGvXCe3~5TvX8W0%|f#Y(v?E~VM}!bTOBz6uw}OcyAsZE
z)@G{$Nfl6^_Sp`*cmj;dq|3Y&nrVgG0kJLzwn7GpxtG`nrd)e27D?C;kM!CH#j0-&
z!_><I<^Z=hJJ1AKkM;?&N)ivVLDpjs>E-QI8Vgi;5G8v0m$HF{xZttScbU814O2Pr
zQ4G6WAD`tbufgn6Ehsr{M5GfnpO1|vxug^@%&I(KcsDW_v3e%Whg*%P6@ua#`oxx2
znNm+gW?RBW8fuWr7j5|1$UM2oP8n?yI`wB+7xDFBi~P>WC*sNaoeaW^$^-if-DfB>
zrlLA^4s>P@R@fCRW>A?!N#gIjZ<mX5)QmQH9FN?69DBVi$Da8Xc8orsrd6koJE$R?
zh<&`d6aXX0<1y0`KC@l0NE4Q=guKot<=(pzvH;A~OT=u}{XXg^k@$E<y)O$=KQY^q
z;}YAYQQlFP#g#am>**cY9@5!fXDT`x*&6zpN+t@~K45D3RENK2UF@*D619BvkbXP;
zG&3n-VYp`z3XA#XipQ~>GF|`Ojga!7%(BcWK$SndVGspqCk-DDmp0e2Rkypi(Ptm_
z?EstUcJT!GeCXOWr9+=5`sB`??Z2in5zv!J&QZr|%>P++(8mFpUaC*#v8)eisqQY6
zX_$pzMjgpLW#C}OK9PHB-glTK-{ENk`wp{~@9=cIi2Of^qTNpgoj^Rp=R5PGI^k~v
zF~<@L)%IUhN&Pc@G+a+t$S$gX7VMVY8xt}0vsv6;ug0>_m|lt9LfcpFWiZsA<Kw7g
zbU+HiL`sB5R$sR5j&(WkbA5c+o~_<&NTyfvgc6BQEmYz^uh388`92CL1xQJOSv)3R
z!c5T_if-3hNq-bCV5udzm&MbW0w8lQ5eD*xtjAr-UcJy~LpXP~24b2ew7OmQJ27p7
zvKRS$%f6+=fMmKQ{N0VPqdZb#{ixfv8>-eg5ij<U4HPA}7bH_FVWu-Zt2528U*hA~
z?a~a})d>5g{rzqFg;)rRWBE(<w=GFbz|7f{(@~33v@ajfrf3*uRzg*obJ<06zWWNF
zWRBx}cQJdq`zM8*QCIo1uN*jM)U}=2KgBNMA`|twP0`A$d{k49q7@5|8I^F?+h;a#
z_Gy@@ulC8l;c-2Uc`W8ok~HcpTxiL2TGdY0?Y4riVfk0>F27{wpQ0EhTOu@%VtxDZ
zf_SaZk&u;S(2p~Zl7R2CuSX-1$&)j9-`BCY5|oSGdx@mT%(JACsJnZ+avdZph;IjV
zWhg1#`g)%wW-#=6cH%MZ64no;q(sq(TT*$<bi$^1gO5~aX=(<K*_Tj2neNWwjXnyf
zXOn2=RzfrIp^mOte3MU}wa4*LrdaXs;I&9gr0$X2N#wgOsXvG}`-JfZK*@4|F>jLJ
z3|B|VZyXEp79ZEaeFv2SViF`wxaG;<=4b64y_F@FsL<}|9c3_?2MGr$A*E1JzjkRW
zzRgFo>xcC_W^tGXd0=1K7Q(&`bZTKv6*lW5Ch>L_Te2<0uJ?^*1u*>)@11MeCEnq)
zZu>R=V!9*tK66s23nr6X-s$7{_8_^~fXs(HP^_DYnz$f$hJF(7@<|T$NrmQcnJY;{
z7}>Y$wY$biem9TiQ6*N~-mcrtI?wMx42EO|jsfQkHR8QKId*4yB!|e{N~mVVpx6vL
zmGx*n7Vq;>E&OOo#Q+e~De(nVG)TWxlWv<TyDHPIvyq5f<iK7Th?Ctw)Wru_e2J@T
z(r~jBI8!gN@nE_Zq_(1dS0D1(cupf|keFTxufxH<$}GGOv*Z%}O3U)QT<h&4@IG?A
zJ&?@!sE;n_*DNHL&-f3lbA8u^86<f~W(GdSf=l#pOB6_E)45@peF+B}zG#~G|G1BX
z&91EN*A{a9pMbu_znGQ3hhm~0v`OM8eS9sa#0(y@GD#|Re(1}<M}6j}eEfQUqJOSz
z^V0_mm(U%$UNIjuL-83NQi-k)-r=#5!IV!9CgXY-x0UlsruTDR!K8kct5i}Prg~zx
zfskVQGBd5yE9c~5xMTsDx`{AKRm-cxgD<kEGB;3Us_pHggD=4aPEVdv=JuC;7Ix2*
ztO8B@EBIJz^|i`z`OnU@W4ej!t3J8VHMC^Qf-or)@0Gcu!bJUFV?mdd_)NX8yvPRq
zU&k2_eDbAuOMHVxm8hO`diD~9iI+%`!#vHjIt_IK{Y{?~xzo}Cig}jo$e0=x)oHjM
z)^U~Xx4j%0SJg`nk=d37@0P~J-tBjW;N9AQOuj56ik92*3z#MIy&)uuEIj61!fB(8
zsqPF~Xf<}k4_KOSIWA)`(-J2{QB3FAGYjgzoFDldJz7Z^Mqqv=C;rKLs9;5%*sH+j
zCtitv21u<@7LN&(By+T%7nWn&|I8;(>*tNRsrEm|q*HV7`M49V#qk;O3m%5=C9;5E
zmZf}q#cEBv6t4%Z+D>&N?8NO(<pllVr21LhWE4^tdQ07{2XZfTreTgk_if4$s-k`s
z=Zt!+V*Q}jd?^MKErGA^M%SmiH}}CW+^?QFti8o(t~hg5DkibskQ)4!qaOaGQ_nFL
z^C<E8ieb)a(`I`qti^)z#kXSdCGwa30;oJPGb~5B%GYkv+NIlb#BD}Bl>9DjUlk%V
zE=P@$ubWHZ<&GkgdLp9961N@o&>VHwCG#0PreBWkEA~{RB<<}+JtD=PVUm@ey*)1|
zyXBMWJah+^RU)z2r+<{)edvy(NJ4WXq}kJpX>X-FvCL9s%{_W6*^tcF#PR{RK^^N+
zD-ih^&-IzsOdGBo5_2|3jU(KYK4pb|5qDu3C3uwTG5y^Dz#Pp{>x6zbSPL8KcvReN
z)Wa*y*y0p~xtgQK+&4E>ZJP<w?=kA(B<e@?JJ={p(8L<g?F4ZzpO4XRPcc6el5`W(
z#jY?-=k7D=5p@-sp)w9rFrobALJoE+>Q`}JALXwfG{t?4!JJFH2NvFyQ4-Mw2KV>*
zE`{Z5P?%piy06E@97M>3t1`kOhj%fDh0nB08VnJVo9YrAb;tdv&)a5eW>XaASdN<T
zfr}|8#738bcXNz?$VVgfsL#woGPiPcU$1Ltan0zMpE~S!?QHJG(IcZKF_OQ6PW{*x
zAz9UNU-7B%9+1q=<Y`9&Q(gA3+?KA$dL%`k?_<#2DbXw<^E08DH|T0vb^phOWfYEd
zHbX(_?DNBI)nYDn9~g-lne3{V?g}~&KdI``j`^5XSE~jKjER}B;`a5E`grhS7PrS+
zEHej#mtf82lW=J=<^e2lSOkbdV&;J`PwluJwvH0FGi+TX9^~_?=22a-V8bw(6WZLg
z7F3bqgIPq0cr@Rf(2flsf+fN>D_rYtnEJPevXl~)eQpbwqA`clHEGAh!-p|x$C#Rl
z*Ww(tRnjrRqDrLN``Zjh3CD40G!d`G9aBoRL_gC%HrjmBCrYt_^oe<IWae;=?#o_D
zHq$yAG@|-Kn^Xi5gr<FzY7Z7x7LpmBqb8asr*1NCuEob?$Z(S7m5JtUzYq}2@nk<L
zOJWr>ETT-|Yd=0LQ#wZt=}RBAvWBf_!cP4pEAPu$c8RW?c{J-Zx3>speU6&)C917S
zTXC2_<x)9wJggFD3bl=h{)L^$DItT2qS)B<&GdDT^xYSH9M8;mXAGu<LKTW|JFHcf
zrsc2V3Lkv^px#6&29rP$6(-#^qxUPzD-%mAtBW)9Cl<sqiz-nBVqxeN=EP)1=;*%e
z&Fk_%ol3fDZZ=(It7Vc?_7M?5X&gQp>WR*@(NR;kkiXtzYGn%R>NF3e#5r}TyF*fN
zCXmuN?zk^ovK5FZk=pBOAMd4Sy_N=J8Y$#u4lS0uM7e&Xk16bP1ftNGQaWnRC!kRm
z&YC3JqkS})Q#k{QDWg!zcz>!57gZmt>zqb{VL~X}KSQ8Z1%UbnroiWg99-NKifN#5
z-R-Q|0%hvLy6WasW08ZBn=Mo(h+@B@ThG)^i>geQrMnt!b0^4<$55iY$JqtQiOW1u
zOn9;xHqOdfO6pT<%kt-SvEgM4_2VX+oP%Q8D10iruRrub<h4I~-4c*f0M{Z$BF?Nn
zh&jV@{HkHIr!Wo9V3<{WdALKj6Nsi)0?xG`3=%Uw^OBCoaU%>`A|6<hL1LaKB+&uL
zqKG#rI9v;axXvd}kvT@OP?*LEm1Uy9v<rUX^Foezve5j#1AoH&gM~&&#rs_!mF1A5
zVVJv#yt>Y%sd$AvdsCIO<+H2{nYkPqGd2++*f)n=88o_~bsyP|kM`<$A6X8S*_|*3
z^p%x+O-cR7d3oseLIDKRH%AR8q!2yna9;iu6vquLw8VuQB@=jgA<X;CI~2>Eokmz!
z6#+L6>`<g&O!>s((yl$V=19U$Wm5kxp6K(5vk+FmkV9n}C`?19$4Yd4SQk(BIV|em
zvxV@Oz=;C^n|XQ3MdB$w+3j8o&PzBS@>JLPo4GkkJZ)&_Zw8S`oh0>;BjMDRTDZV+
zU8E-c&)~5<dPoVVp0bz|YKLHy6qs&xq%L{po<lIkU?wOh!ga&6$%*6Q**@@&rfU*|
zX`cj7eg4c*%_;F5uj8u1S<fjZdm^ZDv^7Dm$mjY5HD!CI<l06)4`zBZ?j-U*GO|>*
zA)fDJKk={<nnPl~C!*zMw-atx)UV<NUf)VRXkLslnAiz?y1Ibqck);9La(K!9@JJO
z#b7=s^hvhrQ@n^pl&H||Q$EW4O}I2r<Vz=yPsR-yZNJ#Zhj!WoKrvsFWZiO~DdnrL
ziI=d563rU2HGJu{sxM`89yP;A2AXtiE?(y4_vt6~x3Ex{NjYk2h<aS=bvo*7nyWXL
z!l2O<FK6i`D!R*D8<v;A^h<0g+&n{pJ(bhE!e>J{@31jQ%)sQcD%8c%_3Di<Lne8p
zPjb0Oxm^*K*_p^tVUiZwl)XXQO7SX|zSn}<EFcp!VOWgHJ{~D2_0>MUxI^=680KYS
z8FP)u+|&v28ZQ~nQWFWo1j|u#s>~Ocb~<F@vNw9Y)+=@3x(?NW%2Z64P&(b(>4eG5
zf_NPZEK!|opN{G0nOg}5cU>KMk{@%z{3Kq_A}-rqMEbmvRD@$%<*1>z<QhZckGXX8
z8+Z^Us_sklpLUC3_9Zr~ty0X*z}iO3E%Qd7Z{1T-<xrWLnG2U|Rp}R8A67f!O#_C@
zjKt(j=t0$GHfV+Q(^0D)Z;3bi*#Wy(ZHmH-OnBeAC~#3kv4}c5y1?))EU854U!lM-
zgT>5DtY~hqPQT1W+fhrr)hp-ZZr9Fe%*MnQQx!>3(xF<?<5Z6NHXlWlEo`!2n2qU*
zmW~}2Zy!dqbnGaTEa9YC*QJVgu#6HVT0QPuWo~6YE2y@l+3xQgI4fwOF|8634RQE%
zRNHI@t=6fi(Gc(Q3F93sWE+f0ln_YYa(bI$B7LO*9dEtcXCG%)MGlD>k)x)rKD{1{
zx__89vhVdV@ICJvO97b;2?L)fb7it|;(b1A-aM)kU^WbMA>qB`ub(tGz<+?H4N`UK
zy88Wtqvklgc;}j#*blMn69Y_a7L;j_$OGjH15Gi&hkf!f{R$1UB>*46vV|YC+KRSO
z!2403o$2(dEHoxL!nsNd;fbhH)tqekld4_$SeY}C-3siBxJ-2{m|WEpx7rpTAK2s?
zB<4AiD5AHz8FyFB&6+R#NtS%|?vlNkeJqEWkoXSyGuCM#Vgcp+DIU~fxk2rEgloey
z^ATq_r1IueIp1e|oZXDdoU?29J`0D(PI%MR5TEn;&OKA-)+G_2haZU-Cc=xlT#)8o
zUo$Aa;FCN8kU`1JrURULjWm$H6xZdQRt*%_FZwv!eiT<r3^OC)&~PcYPCkCw$Jr>>
zgJ-gjU*QBkN?M83nzSkN^i>~?)}ug{(U=yAEV@;RXig%(=3^Qi1&!Gg$*<=QyQ;cK
z^BV&mc2zUwng3hxIg`y;bi_9Y_Bj;}Qz2pQbW(3JmXVrVDVoWbh;RFRs6vV`hsGpG
z+ihR&)YJN-@9f!aw_%v|2zA!&M)k_->dch*o==8aJ*GWe05G?4)RYut?h=)YB&tnx
zJDX73KPY29`})*QT;@MQtETP2^dk9@PukVpXDqWyeq0o!BcPuQE+`WM{S*#$?s8aN
z+Ws@2)!65%*-TaY&qqyd3irfPYCNf&(!Yye_?%O@yKH3<ndx|NU*=8{>7~Ujag&1{
zDFDZmDir1}9yH!XrZwPFu$5^$cn*s!QGUHk+rb<*lN=8gBBiNrbImyPH$OOxNGSzm
z>f=H1h4@<g>m$16=$0(7OwE>?r>3Ep_jnNcT3w^UvC6FudYIJQT`c+7<kkmsvB^TW
z)9!XAH$!#5>}?JX8k=PBn9hhdvkIx{&2D?pWAD40ktiT0FdoeDJBYSV6CnTTB<<MS
z9rW0UJsSa7h)ifaXk3+Sn?=>K@eVAsM4qg7%SO9x;~hzy{Lk(+)rwo$t99q&R(gBy
zop=zZcOOKb&QpD*FzXTDq1YE!_X{|eM>B+0yP1{&cRpxbIQH@=T2$4KcVVGrYCha9
zBfyvziT!ka)Q(iSUWI>>3;b?A>n(*)GM$J_mBfyspt#m-SL%_FzlnSJ>?k~|m0$*l
z>5>PHqq-pnQ8_7pQ9=E^d{mNpR8y905avl9G&#$b4CZPT^{coK3n+20tRK{8c_{|-
zBe5c^^I*;L7WehpnZ3@IH5Ria51KTLsbn>@DP0zOf1efTD2uhhm^g_Qm|hB@PfIk}
zbi`)`_Pl1oLS&94rWJ)FX_9pGphtjFC_pKsNDpF44WWsc5=}*hi-kDEvPwk%d1{o6
z#QeyE`_h|xsn?YlV-dbL_tN7`eLQG_`9l5LQrrp1p4g<Nah6#kg;cUm&LM}1k??ZT
zzC;Z=l@{mw?2w*4juaMCAz><$jb=kFu9KWOyU=HY;CY>aE`TvD@}McgP~DxPZE=i+
zlqkZ;_J)dhQC<Yahy>~JU~Q)%F7{da&P1!iVd5jCkT(}@*TP1%6Re2`_-MzBN5~jV
zYJ`L+Ru<KyJ08RmN)(4$>5deF35_J+-uXCpD%y~y+YWRe%o0m9F7F-a7J!-h2%jW9
zI-re^Hi39351<6yr{{4*29rsU2T@9bt1i!K_IqVwc?ER(hqL@Lr6lefG>foIk(B6N
zmC8su^-DYPnXn}$<lo&Oj+0!a@j7Csnsk~SG08*e!&gkH$s|7Rw(9C(u#-j5YzAUn
zNg4+-^A)itlkOVbb|I$Ae0?8@2AD~T2Tc_QdC`e(@_UkH_F-40G8^G`B-L0oXa$X(
zByvhk(V4vn%^ElA)ke@<s|Qu0a*G*1=|%c?MsN<D3601PoY6dmYDC?yFK5wxZmcUU
z+J<J*B1|@oD}BDIzV#f7?^7%0_2xMVOi|=uSJgK~XTxf&ZtAJFsCCIgnJ?fBcC#aJ
zqBDsRUqHqWVXL!QrDTJ+VyIuhhGudj+?dU9yB=*s9kE;{MdP>Jfz7l=ysX{>a?tD2
z-mbFXK21CP1l#z`V<h1>S2~3<9;eHwQ$LMjarr3tR@zi*wxe2UUhVfyODWBx8LfE@
zgc6rk3w@-Y-o#Cly+krFa~3hFdJR3=Ph6Q#nOQ)ONfSj-q)KB|{ZxjZs<su^V-bv6
zGbIAQFT2|$TmPTgjS$<2w?a`}qlF=AepYxFC1D{ms}a7Rd{o_Ku-=G+jtE(9pN{Z;
zlbsR3bVjJC8r?cj57))Uu>B4oGpUjNjz&}?A0T3heaZn#&#^&eLL**KDrUWs&J6nn
zfy`9L;s#Pz4L5(88_2$dxP^BPrBmLPkBZn&5$`g^fMp&ezG&3ygmesko!@3H^QH!x
zNs(~r)B%^Jr4kn1rzwP|q05S3vLq})osv(gS3q~z=7*t~JjqkNu2=Kcu$^`T%*;u=
zrF1c?^`O&jiX9f&=Qz~Ib=A1cl!OCAwWHN~l(ZYcj(FTqy)_$}8I&aVX7Xp{nBGt(
z5-o3UY<KkW&=1mQlz%P#B<+*m=;x#D{wcHgOp!cj&h7I)vv{IU`0wG2GeHtxmWIP$
z_Q^y2vNkl+Bw=IqCZ?v<B4~)G4By6P1TcM)O;ER0Q;X|qLpMPNnYokLwOf&lNtB{^
z#;|o0Lo*eUeF^z21w!JPLp3{qWnv`ctwk;E8b5pZ;T5o%E_u+LfVbmBUCmC<n<jsW
zc#fa-*)67Yh+uLhk||ML{<ZF$_uSzpQ&MzhQ(|d#+wD-)C{g)*mfNQe&rdFcGqsY$
z-a`J|jMWuOFYt33chk=rm3fx1veL67B`01uR2S8tGV2lwdA&=dB{|5Tqe@N1i~KCY
zZZDa~XF8_!x+*XB;$gq8oe%p%j-Xq$Mw}4&>m@_=C>WQ?ns63HNSAp^yJQy8%UEuo
zdff8!n}cT}C#F{^uxMSpe5liFP??;`(KETNRSJhf@rt2_u@*8DH96!kQKoq1@O3e;
znVQKSI2;b~DwbO2%7+pz4AU{8e@yE5)hwtFd7<=-W;4cr4&9z?M(Z6d?=^mY{;ppT
zz|7LbTsCUeMyReSdaa*Gx*tWZd&O0BdS(D-Rwn#l>?@NGc%7d)+3i&`;7r?uN(khW
z8|uz3?Iyi`xGEtB&m2ykZE{yth1na1sskC9iJ9<$;YsM2<Bfj1bhl+}V>2NWszHs3
z+`=~v)hz@pvoc{$LvwixFRVBFecRp4Ob(v;n%KP@yeHx<e$(uc7+{C+AMk-Q4~w_@
zy>p3lp8YSF!U>~OkL3=p>$9D=`R(HpFP(xjr!!63wl<J{db{5{mrb<gQc(Ydw0xVg
zy5b#v34>i-|E*NgKOZ#J8Y*p}%Vjph7CkK9=@-P7$%|wJFa;DEE9h=?<US8O;$6c%
z_h4Wqfg)W%7i4T#&57~5%gnRIkK|IAd_FP7WF9CqRUlWP^84RAR80j~W`IK8HXQHw
z4OQND&hvghzF|k~T&UH<2Zo&$U})xnLLJu9R-zvosxwn7v=#k#cosoNe&DrkC)670
z!(|-r-PcYQmC2u&-L^FPdUiiL+#SNe%>IP-Q{l2XvijIieSHg=>7JZ=Xa*a)af|r)
zFCq27=uG~ELTHPaMx|q$PYyMIXhSo(6ED0Ig^hYun%$=O)KHgj3d|%<#2d5>>!J9}
zP~!~^%Ct_bTpdc1H~P7udZUcX^iIrZ`k?s2P-is#-^}D>?JhR7I`|?>EWxzsqYexn
z(=y?S88UHI*&6ZXGGB0aX&F#vX=1gQ(Cw>!I-ryXl!@K`2ZtpT-iWWUxDpkry<d&6
zn4O8FNn1!oAa=wzhMF`ns7%x39YBZGYH@sX*p`u@nY0P*Ey7M$w6w|iwx8JDQ&J4g
zyiGe$NFB-V3^fvT`jFqn3v04hHED-6@jaGXf`-z2?O2e^?!*$3j=SRD{J?K+OCC$x
zq?;eY@yJ%hi60F$rI7_^b|<W3JzVFLKk*Yk!(1lvOwpO|$q6emn>w@bv*9MJ7?=s4
z9Qj!Voxd2W@8c-u+;_-G)np*OXK!+7sC(9eW&-FT-m|Sv)asg|sB;c^EvwxGXTX{A
zdB~WSuAbtX9~!13(#_27Ee@HGdMm1THpMMjR2e2hPt~BnnBaNHC<UAX-|EmX?Mm+G
z_tuBZp5%~0B8l7ht(V=RN(-9Fo`;Nimint9ZhNSNiY>3&gS1c6ui=Bq;5}}O+xe}H
z5*dM*S#Y;MWK48=Jaz}ac`Q+0nm-x4;~_(^(yOZ~cgWdLD3yLE7GCOXu7pFL!DkvL
zz9jKb#kq%u;%Id&_T-%pp*jI=3-5Bs%M&PLCf9R44DWi#7!2u$A@hE>LteUj*I=2E
znXiczB)>#0QXlaiEVBe-z4v@FAX7FWDsEL{QH|Hv#l2Y6U?)?I$lOhsB%M9e*7rWc
zHAxmUQ#$bpDK%<B@%tVcrp-@*nb=7(@21raZPQT3%(?TM`|}X48IlTe3u5Xg_NU4U
zj0{!N+WCM3uv=8>Lv^~Nesf)}hR7<@J&5lsf+#Wm#-ZVE(G;19pAfpP5+W)P8}r#X
zeF6kVWHu;_bJAT)Y9i7_aN|QY&Neg?Jr9{6flD9to;}~sn=4yanc1}$z?(BU{0sfO
zpK^MFS)b5M8;y8PS_rj<jty5cS<p-iO&5`TGHSKE9dR*BEp<%NiKWo9VMCpTsG0-!
zmSF)*7G;O1L5YzE49A02V9XZ9tR`VvMEM}Uow?hp4GT4tm!=U&vt5nb=619P`}qoG
z@`S)<(&(W~aH*=iA39V+lL9kY6iyKx*{HDR;Vf}jCqZ`La~a-ICxX>RnHa9JO_3q=
zI9^gZ8@hgSa`>Jfu$gsw$ehmW@mM*MX%;?=)A>9+lThK&i%>4_n$D#v+aOMsSya1k
z)&eloP%+=FxTB93XNJ0{0L#QvIH6%u3)*24UMDX1Gcl!#vH;G!Q+Pz{)E#(kI1$Ub
z)f{*pn`KRe!5O_-7KXc7Qe@_kLZ}r2UNIccq!{!qL73b<C~8<{VM9A%OVOD;%IU4v
zW+<XgAfd#n-=Zl&F-gIhIEpt8&&ok-n|=D1VzW~L%p+yjIt<iZ1XufQ%U#QEH7qko
z;r^L>Bk_SB$x??#56enmKItJ-`({zL)h2qhp9bEY$eMv?ercM4qZ+k!Q5|vyPN6cH
zl$Ax)!b}Il-%2Su(@CLy6;DEWEwy3is~DQuq@3d51AuVYLJQgdb;MDvxOIIfV(m+8
z_~pmSOtOv7Y|=xfHcEZ>?2%UFr$EXqEa$n_weTtO#HU1@DPx!RK&j%gzXraz;ub49
zMsxT^p23-73LRpRBNfRtX5qgK{-w=wZDZEa{34~{TsPF*YyqE1s2qu<BNU0B67`$_
zCZ8gXZ|d-*JJeH|W+pf}i-{%;rxLkm5ms-p*gh??yiIgL4wF$+_eB1!8N-gB-7Gx@
zmcYbRY&BDS8`j0+hOJx~npvr^Uz>8F82fd@@a<QM&MejRyrpT9$~O-Gyrr2<Dn9`q
zI7p--Gb!CC4mV?DK{GKGVpVShQ_}Y2;csLMp1G-q44-fVcf#8-@l*V?=`P#aC4xz+
z4yRCk^r!hPw$f!;neYB|gvRyIqzRwFVrPc&(SgfcRcx!R%?K?<p6QqUDB+$lHd9tf
ztiFz=RR_1z`rgmxA@sSL*CU<g62eSYK7)%Rv>kcQ@HI<{&eYXI)CNsu^g8uR<F@MK
z{oF&;2km(zU!@r*CuV1>CsyYtS7sLG#q)VwWg0zWAR2l+1I2t&L?KhFi`A8dMeza_
zQKFq{UW5T*{wOx}%>3f)#N>4K#O%VtQgv$P%9*KY@j{=pL0*yzk%^@EqQ__ECzh_R
zUbV0!Uc|ymG(*e_OL3Sg$|9DgCoZqbK`e?F4<v$dm>-I8VrhD1b!onO<;3jjw0H>%
zDbZszFT_S-QYh@(;=*F}`0T>u<>F;5qr|-hc^M4Dv`<XcvXs84r|RW{OjU}*Tu)0x
zb#`WcdVWE?Vn7iFhl!o|8q-&;OwUhEPgN(DPKs9!@-=KErgGwVLBHe)x$tIZuNJQw
zWZ!3?n8!(i?qqGvm8I2b?95lQxDw?6y>_Mr$b?QLy)&w)diiPb8kSh%E`+{{O`<WE
z6YdO#G%-IVUdxh7bfxa~ZW4&un^+inny0UtoL*cJuN!1x*hoy&<R!kcurytrpO~8#
zuODcMGY*q6Ap&nH)#e)p5s~6B`x0Mdc41<wdUAH*_{6Mu;~-ze0%D>i-eYlTW`0G^
z<KmKd(;)AW;xM-oe%c9Xd}darm&BV{K#6-U@&bUu)Jf>%>8qwEtII2ME8;DK=wyar
zk|e&v)b#B1idjx?9ppP$Kum^Y8@W0&J0<n$@``xdKsJ(bnDz(}lM8c;6LLLE+w%57
zM5H)OZ^XASPJrAL?-=A;FbuOA5pk@}FHTHeUR|EPVs(0ca$3BT#gsTS&x^@{F?}(s
zMovt~Z}P6e)d=A*T@e$ewx(KH?;d2r7>4PI$irmy{*@C;;=L^BvO&#=gkyeUMr%pm
zW@2_(yl-HwrGc1~2+KdYFuyW0FKwstls+(!$8SS15fRfzp4uZ;=N79oC*%j5U7i*n
z8f5wkaLhu)n;9Kp)c%JDd9w@@GY_GaPfGVqY2}X&qLqQdEW=z_F)=kIJ~o7~LgFx`
z5L0FT*X;7CnG-AG<AY3928t<!@LJSLoSa=)UR|0NpB%(%v5}ZD$R60-;=<C3v_W!{
zerg~OECphUU`~iqIiDGV5L@Yd7Fya&=kn_Dm8FTv74f-2v~&)PX@O9oTD#6oEQ&7-
zqCy#lIe-PvSgz$S4#hK07xR}6nFC(@KeL*@%yLSULiCc8UCv+0i<(=QTAf`GUmb=h
zjm3;V#4!B7S7%pd7G;q3wLxN-JR0-=vIcu%Wo1cxV{n5_I86Fu4@db|wA#KokcR^p
zCirDD0H<eGPKj?1o&g{nCiCSKrwL@gGX%w%4Pn2VUujEvQGah3D{U#WsK1YQ((#8h
zMRV1a1@VJH-YEmcY`vUr;}!j*A?UXJg8nh~j~>eW^l3`8(2M<Kko}WKV@e*0J4gOJ
zFP*8Mv4j%$W#%Q!r!Lgb*&&p%NOfXyae97A{9+)7Fa=_Y-Qk>$rZnbF4i7;`TY1cz
z9!B;;sRiSjopX2qKfp#}^4#H^(q!{_^TR_>ntA(qi^FE;;2$h5oR;3;Ee{W{b23oO
zqC0Fn&ZUKw>WPKbC2_0619+T3VcOi`tmiD>b9r(}+-8vX$Ureq?r_evmFxMohlk+W
zrpx))u$<)*=e*|a23gJ)5R>CDVRI9gPp8KwcNk>CGEhv2J8aAVrgL^?a(e7Sai_xr
zn1L)7GvBgX)U1JX2j8OEC2(iw8(kpoGPF0kfLU+YH8?I3cN=8a0EPK&hs~)|A)u#B
z^F3J99!{NHh|G06Z09|cqjs;u1GrHP!vr_y7dk5LGqf+n7Z>k8Y^ur3KDG}B?#tpP
z_N*5iX9M>;Yz`tx39g)85cg*}dpL+RAk0p~9wMJn2C35%^Q((uWRN{%BQZG*I?l|h
zO0SI$qT?(eCZu7V$z8lyom`Ng<j^4NjA59324kQj`h|J<5@UlHgA|7;XP79hiKeEP
zrca3RK_<!qVtyI+%c@#)^V26MR%Wi87UvJLU$R(CC(DXjTv(n_qAna<6tI{~hR<(C
zvalkK4f6RJhG}E?Had=zk=E?AxOk9nV*xQg3>(rY1nr<bV2}-IBQZw|{=lh;E2rt4
zb#-ofenmWJ5Pu*8#k8>Oq)pCFEH8@(4?bxMh#6pb8~x4Xj=FMsX+=DAkhjS|G3^V2
z5X0$g%EJc{l!0Qtm(!#j6B9!-X~&r51+A8bz+!R`t(M|2r;8&toj*LWv@j>82a4EI
zASQ0*Y>aX=P7cAw*sjJY#A|j^pNzJc86;lIqcKAZ9$V)8pt`Umck`mSd=QV#g~$x8
zjG@y;Xl`Ibm$5<f*hxzhGg7|v7^UV|77K&yqzn}Evfw_!Z@*#?_bKPFFJ-|m6w8By
zb9}Rs1wSfQ2M1?I_R1{yF>!iua8@Z-0i4z~)y`c#2)F@ZdQ>KyP@d!?2M#A}Kk`wB
zO$Cs>BeCZm&7$^D0ptK=(i4OlbC4+rtPUd70m$5^oH;Wo+h7RhESs@i%Ly{EdTj`T
zvcY;CM&Rn1Y3U{C(!g*KBVYkBp9w2a1yiS%rl-ZmAS;kzn6rfGGWiIjxuQX)D+9&E
zB$uEI#hGCVVqMm72|6m8!xF@Lt>qGQOvJ+y#5%4GM_oILGuq|6ZV*S^Mq&yP-Y1jC
z7s(*+lYwHw5Ij!gbB*rl4&rfUv6wHEjS1Amimkz80tLiWAWWQ6x)aBj7iL#irp3-6
z6PJNv)(;kf%7>z2;BkX21RIHYJ`ke@abjWV^u*GXxM2`6HWIUX4pZ&Dz6-5>>CsMn
zY(3fzg}CuBmES*s#3@?Ywg_4qp?IQ?S4e1j0E|1XahPWV$3eF^OvICYR)q`S05O{e
zp6#{>gL)%sg^75I&kA?H1F)DZLt<!}L|E_ELh-agr%B^58wMLFQ9ZYGpTcLbj1p&(
zE*TaWvtW>rHq&@iJkw{v_4y#Iu%CsgQl!3?c=n)ErE!?Vf)%wHB-JzFj(E<XE6M;d
zS%m~pHw)@UCZ6k)uXmvn3ZS2dv3FaM;=nwA(6JjJ=D1)TwYp97<rDFOLD!K5#(Wq4
z$m;8h7Y_W96%O-Su&bjaY9+cU#ft{r)hQNpTkt&$&s@BC(C=Y@nAw8&SPPQS(1l+z
z=zFAC%xobs)PqX(R}(Mu@m-zDiC~!3a@f=rTpzW?%YEWL7qkRnE(=B-wA+mx@rpr5
ztzekNf={~<c4}Mou6X63pVj~|e}x3xl-5otUd7lK?{V3rw~k?Bbwz`oc=ezgOXDyv
z1(6Q*{-Zv!iFl2V1LcyyP|QYw2Bpho#A^rDpoGF4l*6W^m-JC5jvGl8p2h1}PKmbS
zPW_OFWJU@+wN95Pr>Y%BB3|#4A9TsH(U_TnJ)xSJiZ=|pClm~GQUI=L^luy#Jj0d$
zTX+^*2@&m^fq2uPo&}JYi-N`53_F2pt}os^=;CE4W~5*PhTFBU-4SmYbOUM}=A%HH
zHiNc!>!8|Hf-naK;Srg*dLX2CAq|>%8;iJXk4~fw$7~er@Nhe<iMJ2B!wH31D474X
z?)p02vNh=ZYaHgFV40Fk>gFikIp{J45;IRQIU;Ne@vcE9hftVtg3(h;?qE%h{@sI)
z9!ShN!RTAzc1OH-(9shLvrAaH1tM&T_YJJv2!>fD0Pk#ycuRa>P;dpqOcDm)Y0Cif
zLj!{o46{bys>rtqniBrQgSsjPh}k0Stk<JhTCR@{?5rysW{W^Ai(t!iX!+QnYMG&!
zFM>%*c9N=8sp8{<PLcs)o(LvMZe{AC^~pgeN#ig-1e3&GhWON=lf+QW58-!E_dbiy
z4EzpVyN}&x5nW27xf$2B`}ny*qe}~nSs|&CjymLCiZ2YVq%{)rLR4Ce(xdI2OO*ql
z$05F`@?u|7d9nMD4;ysCPSgx5{KLA4oAiUUjLo+AGLNiJuNqF+0Yi;$7igw@95yFO
znSWpD$VuA~U-hx?eZ*@xrhbsfbDeMBlFIdKEVRt=)h_ScO4aPwN$lO6Vx=Rv7RgZS
z8!WoSom#tzHlR!oA@O%{ir16<O`i~BH{qEH|CaO3)q03UJ!%CF@$DhKxedyslEbDf
zp%VylWhyIyI6=S1ZE2{#<Fm$qpai?%m|sFN?`3PmN^LWUT55di?l|S(e2;~f=%<%L
zDe--gnS4UyxS#W@cRRK0X8!>Xrcbw=vI`)O&LkBY(0+3A;zlD>w`e4lByK9BURP0L
zrP>V6gyKg$oIVY!FdQ3Ajc7M`=CR;Ix%Cy+=TCSrj~I?3%&pO%(lGAY>pPKJ`WcU)
z#6__szK*4teon&g?i8MMM4NsPzhLnt?i$@qJW!b<GbRUc52u1im*-8!FoHg9Y|E;M
z!n(Za7@17+!D^Q_gPIHn&lw|Ic{7r#k2H4{)~=OHs(NaAVoKb6tb~VF8xPtMwMy>R
z$ki}QGXun2moa0M7I&@;g!K=qGxIYm;+A72j8ZRg4nStUjG;noN4NV?NBa{~%i>mJ
zC4wU@F=|B}$jYKH17^%*w)owt=w40aZN^HtSi4Llz?cU^;%=wk$}~&T%=p`~us%5n
zEo@DyR(>fPgqbj7<_J3d|MLs;)8ck4qffq6%V@=|FfW5Jm<Kav>i08CMz4rFu$Vp>
zx)KX8vmEYNd?!^dc&GC3<eE3TNbuLwcdD+=XV=`hV<lXA$C}IGFc)Ub7=HOrh-EY}
zJG*e2h23SWgxBp5RzPAt42iq5*-O(WXXbMP@5TcAoQ=44R1u3gGD>Uxs&@2sE>2p!
z8^k@7)}jr!-E36qakH|#)9M7<(?W=QmKg^0C>~d1DPUn3_Zl+>q!~nwwRpQSy-lZ@
zL1R+J9-GrDS9k9*4-XGGN^EaX$iL5+$zdl+qq4j_t0nGdi5KlIk)Bl2YzW}rcg#4j
zlW}W3+E@%k5{e4_7PU6Cu=|a9I0!Wb)7CIbYENJc;r>`$$wrgTJSxj4=VsNv*YeLR
zV<7lt4TgSUCm`gGjG55BzSgYhtm^?5bzuoZyk-^;KM&+lOls2XwABFSRu-4TRy`C;
z;d(a->*C;;htC5T{ZhR!A^i|s4lL@K*4dyD)h9Ot>eU+x+A4>~Je(fqR&k(W1Y=_;
zi|Dq3Zbg5_BV`mVzp;8yzi)~G{Bd{`olUCvpxYW&)K6Mcg(a0J$4()1<l{nw-1DJz
zSsx{pm7TU(rx*B$wGfnC7b3)7h~*R~NzkoFaXma+Sy*14pr5tuqbz%7ciA?KE<@^t
zixC_fGl`upzUD<N@ci8ccFm{k=Dy>_1bffyd|n>zti^$-&rtP<=(aoJ5*Ae=lI%0D
z1!N540b?eAkXzczbjc)bmIwNL*?yY^h>-jsIFAUpmv|9h>SN2C!TVBv`97GW-N&Gj
z3Yn3y2VLSMRdh>7lxl$DAwDw>FeQ5zWQ^pYG?Mf3R!4o9cH9W)-%rWUX6)<3csQ#A
z8=xLCFtCS@nVcOa@sylIrQ75<E-T}g_WdLl8YE6Ymsu<I%AnCTO654qERnkEv-nd;
z2%f~MxBk`Xs8x@*5-obl$F1oj+6IO2X}C4@wN2^r81s9gOkkFpU-hK1z$pquoW!Su
zlXXH}Jg(pEl+UMhx@;C2B+fufiqO2!BYd=^FpC9G1NL&j*6Id!)(2KTrPD_BEbJVj
zm3CA+BiH7l`b|&IypQrR&nqECEQnixBW<mW2@!QRn_(xaX|anwR;<s8%i&@OS758P
z!j7m_=IK|<&s_3Z6B<GZcA`P%@|ekfK{GCeNn4IFoR2%Cpm)TI&klDg+dL#>uOj44
z;@X+8Q=!aI-0g@f%fzDWiRovxE0)25nA7m~uIPr{url3jcXq^8KHlDS>Om#K!T|o&
z*vPhz6s+lwc8yPP(9h{IfDrmf5_)ga9^FPKlE$n?J=vvOcwChwti<s$-Sr_J#q#^y
zT*Hbahou!tUjZ1;qsL4#*BbMxE+U<7sbAG}Jcfr;;#8~8bQGa6kSY&^G@({0i7{-}
zW_m0Sq|enhJP;d752YVCh7#oW)@0CX#T^QY^dn+z;JuZHgzOrER(sN<gK;_#Evgo+
z`^0zsK17NM(IFH!J6qbhTwR(K>t#}o{XI7ZgS-tyJ><+L!FFYN;;LzkP;9cq%gXu2
zguuRW9u6`iY`>fXJr~!b^{A%2H}cG{^~p{2^UQO=7{{5sKe#OCKWOST-Wb>)w9p{2
z3D2n3mFqn*7Qf}=8JQ=w)wfU}B1Y7qYfO(;POYpg>Q`#}7=ApiW4k;Sq+N$}gte-t
zTW2E?t2?^2T;cN_`)rpyFb0u0w(DHjjKz+Y-x<<&wJ;&Ni|uN=#70Y;Ww8^3x!73^
zv4w<z?GvfXboA<$FTCw@<kZjA%D`d(J2ZfizVRJrTIFD_=fU*3Ol2<to+SiBdmM}g
z_TZ$tC{A6tqDS)^K1Rd2t@DtOeFMAPX*LwW<>S3vZtLxfSP*w3=Z@7WiBTm_@KGh^
zN$vevC=l_)G=Z_!lBRN}GEcwG2OHu^KBkBtH}jYSgSaP;nIm>+@A=qP+!GDD{*IC!
z;x~O9A*W&J1&y&h1>W^q)C!VX6q(G}Q_CE_Kr%n8L}!s8=xJE7*0wu|3!<jCqmFpG
zPcpa9X3n5O{4*TNWC<4w=~w=(At{qAEC%pQ+y78shKeNHf%<3SS-$>9@k3j1koj!v
z)OGC@sYPF<3!`_$Z~N@jb<4#nVnN(<;8ep4lm0hdlSOtctWycj9MR5x$0t5^dUsA-
zjN-XSG{kT_p68Qjh(T)2xf{<%qA7}{{G{6^l15lxP`AgE3;DY~nnHr;8X-3rguVbD
za59e1M5L1GH@#ec&*uZy^z+8h<gp;`g=40QKWYXWVca(J_xnDPHXhZlXX8N1i^dEs
z?Rs8E;tyEFvE4;n&kG_&0QigH>gqS9|34ce8~ukqj!Ft(>Xiz3kogkm^J3_^B7#=Z
z(CKnHfS2+BN>p&|9@u8lF`Sp>4+7?8=!Ydn%I1#-J_yJmLh{S;Wv^|A8|KUYvCo%P
z&nZbM0>EDZ1CkD6D(D23wfqwwm#4>jWg#K^m5w8x)z%ta$2S|-f`<OOe>$Wio&qw4
z@hS{MUE52)RE_SatjIr{2&5{ki$C*;0@4eB`(a`Luf_-7NKc#p+~)&t@Nx4-;k@}Z
zP<B!&9&g08Gcp#KS<qAa7hWnTRjxT4h<a__7*8$CrOAN59M~A!aFF>r_^}&dCvL-!
z{VN|o);y`_&q9HS*CR;9I8H^<porS$&Qf??SAI>}C4cSXW;x%^fr=5l0WY~-7o;oo
z*ZUivmo!gmi53b(ywTxEE}RX;y4<u{+}{q#k<6e%{F|U%Q)lE%E8c1?intTk;)eJ;
zAMM)1y~!X#@|zK*v|9S#&Ces@@%KKy03O$A|2!6?y~W`$8?%GB{~w0rFlS*gfVYmB
z(^czVE`}|tYM2UTV5%b;jOG9FSo++`Tw*LeC16-@gX*|GYO64LHV_-(HBp=VQ1OpG
zssjkxm2tp9=Gz@hepzn+nGT%Ke;U$~&!9s5JD`}8XrmQ0Dl@9!Sg*W)_E~x6c^!ur
zupsW8W2PiNlM$Kf%5^HgNVu#|;<fmH@%ik#<XoH*FsOIIujJ@<rbRdMHbOaD|LXJA
zdj!iV97Mj`aaiJ5`R^IhVM*^L|6VBdptY0Q{eSaO>gGu$(?)@a_mPOozT!bujY}^o
z6Wz|HjQG;@wj9L!c@S&652Dn;ReymP?+3<ASvC^Jt4pS+@q;{~61+NR?io;!^&xCO
zsEFf1{TltF_;;V6)2VM#Fv$C`Gi%T$Ya~80l&pcmg1C>4ne%MBB#_*2J)i&K6SMU!
zF=RYQ{a6}VTPi?{{7)YXzKc@H2>tk&sUFDullgd|ov!Fl_yiHV2+ts65T8U=J99cY
zr?x>LIuby-J!u~KzkIUVyBvY`5`v+93QGZ=kUEB8zx>laOTp<`W$+;NGY;!|LQzkl
zVm~`1>zYA@_|G{`Ru-1^<bQrhCo2XIBEJAnQdOmzl1Z)A|Jz5Q;Bl+O)dqvOFCuKE
z075U;q!MnogHC0de%0^#B_D6Hy`!J!xTF^>#_(kvoo$7|84<4MlfPeK=_M*KfT5(j
z0U`IRj>UC6NWyeg|Id&XR|Xa0zXpwy*@wp|y%6Bk@atY_i~c)2gN#9Z!*O;x)2d6;
zYFYCC9n#rp9vFl8CUlGK?d~L<u&E9ozU7lU>gPZ+Bm{pOo}+!hyKq9k_5b-SyM8Ce
z1`tBOgOp@3tFsg)aaYvBsjwA=b@5%FY<$0LQ5F{i`5wM~&M;-X`0x9;u)Eqkm;3$$
zj%G9VNcw!ihS2~&^jd(s7&;3WL--MtZpIaoi={1o?Bg@`^r{F7!hSNAE0Q)j1(h+D
zdP<c<k!ky>&*tx!t;i!|BtLT<ymea?_QAaVd{_r>8CVS97dX_YcbjWz__FVaM@A8k
z>M~s$2U2cwq-SN@RG3z_-So(Cg0&(v26E1kqPn>}G^+k)M~0(r00^NsKVqz$j4E{d
zvWg5UX4Fqw@-0|$i8AaI1)+))6w+^b#ON3uK~<za=tvuY;zK=vU-21$0kXm}CnyGR
zt0Ts_h?;>eKbxCayr@FVo4D235x4f4c3|KD%>f9xw>e^JR_B7+!m^28ewBrls99|W
zH5_<a7{I?RK5MSbY@$ZdG9{CL?TClj>{q$QkdS@5BPQvv7PU6RZS!)sXL%)(4(3VZ
zSr`Q(?r_9t1|~2n8F%#23~nN%E#*$wkk;YZ338KY{(hZhl_<XJbrc6QNIdt5DLZu8
zB&)jh&MdslX=EvjS1fP6%Ms&uVRGbvRbjLq!(ESfL^#gL&fr1n-HzlAc*rf>UXHF;
z)fRVWp(XNlJyvZB2buRcg1V@<kT<y}ODt0t6{iZIh{c@VBe`Jtc%YbB-DH+p)!f@>
zVx5LPgU3wXBc{3{su@GNp9Phuu80iV08cZ4H?L`?;->C0i*I(nfi+DYl9{_u11fsu
zs)zG@)BqmU2~Hb_dAdhT#&9cKTNCkCnr=GaqXVp`P4t;XWAZNRfYfTsoidZw&1m5V
zS@_&Q9)Sa!nY>5Lp|NH~oai<h;xLOXLH#ZeD+q#Fx`citA7EtaC+8xS+O@N6M_B%&
z2aY&)k;Qc1BSoef2nuRU6(0|!1na>Te*O{Th1=(SIAGM`FJSQ{$_9F#A!aa{`s;9x
zPc&jVVXckDI70dK(IGj<MQCOK!>LF@YCdFk`b9oYg?UnEyet%E1H%`z1~ePTXS!|u
zl9%{QbDx*AFqr`iC7Q`cQ0*`xtp~F30gnl7RHgyrE8B^8u)5NG*QGp$5($T%3H<^t
z(}S_n+dI_1w@qgpi#wD0C;bT?a>OIvv|zMB?gh)NVEB8T_)OT6rlzt&KWNbp^YJ_w
zKxbTvaLo60&wNeBO;Q~v=+<!AkY+xI%N*b%R#~&5#AFJ^cnKW$+33C4Hcn`!1@nw_
z*UaHwWin_q!uq2All~l2J_E6!OuoAhG*g734kW6|nN7tt)KyWF%o9GLAux0r!U@Q{
zVfblv<D!dGK7Lx=oYLcICI@48Ssz0C{QPkr;iKSsecUW2bBN)ofzGMlY?dXKXo%}z
zf^KGBaSmUM{)s*`$~1DB_xWPLFpjkgkg3H8AM9kdDSun^apwCa$FpT{SHNJ{``a`-
z(1MqIyzZVV!-ix^@ez}u?CneGA*}EaO0^j*@2X{nvkI-9&A8|VcBPMp-Y0*PS!bt_
zyjiQuSgXEvMK|h*t5{NrVoG{YCpS_ArW+qI2R|9-EELV4#dNi6d>qc+9$yBOnaA$=
z4AvCgcu4c9(3o2c-%dBbF`w=+KE9oKQkz=~g;~Rx)HL_7+^ucS=|Aa7eXP%<_DE>t
zL76IyNnLNRtHuo!c1_H8n`?5IYd)?81L$LfA{;Y>p$$zbX1+Y2?xUF;rJX%00Ycar
zo21u~(fe8#we;&gUR*!!Uj~-x!biX^ZABerXP3`JZ8EfClLePJBIn0-E;$dzOkqdV
zV2%>i%U(OAsKLTya<D_RX76j!jUkD)FqtKc#65hO)mFIOmX^YH7F#|si_=4LpfZUV
zFK=3YthUq-+%>N4v%DQGL~?k{CWa#uH8)fhmR456C*_1kjb5~Hm@e%2vi6xwXGmYx
zaU|0v(bSc$6@i6ymZg>GO4q{Og8V$Qf|1z;O?7&^L#^BND{XtlS1#784aY=a$g~q)
zLDMLr>sjVt9n%<*NxsPN+P>7OuwlBT{f5ul?CF~^9@BdrFPrYh#}Dac3p?>fM|#X0
z=<3&f!jRHqHYgK-kuA-(B^1&$O+|?*36&A_lXwgzY6SZ9JIn(!GZ+Tm8t;{JrWouu
zeFBd@697P_03+})l#-L`H!bt2KIaw=dWwa`L|~U^x)PEO;gY1M55+Uhf-(~ryDC>S
zWc;_^@`-qMsYA+oZ_mu1ahw)$YeR<bUDN16JZs=HjyxnYfsupX3eJY++~K!<Vh#12
zK5<|K=KVrr*nP9ug#M0?v)`)=SKfd=7b0<3B|X<k-los<u>#JsFB^^-z;^CK9|Crh
z&~_ii@A~FG90!XzOr`=uI)<3`^f5Fn@q0efov&TMWM(kj;cOkZ4E@CKv(!O~mk5dp
z!f+mH$yu{j|G>w2pvRO1exBLEgiPHIgeg`tzR4dle2H!c{H&6ZMPf=YA2jF`lNR$*
zuY-nSqADZeWv*<$xh_pl+8+%o+i#;X*ViFlJAycD_~Rjo&!93JIL*?b;}iHZ)ICo8
ziC>n^*+R+&WF|1Ihizz5w!)wK_+&i|SAnhYDkRHnH^Rk-`7@SZqMWa%gVKli@@g28
zTHM|N1K7uqsOR+VWCUgaL#x-+6=jtPvC&PtEB%F!Au$MAkOPgGz$Ef^=|<fMBK=Z-
z$<j*P@a5R60Al(t^fzaJMLx6qS3VgHl4a*Pd%`j~m{rndw-YstV*P6`m8754uW6w$
z``4MpNIN9`&Cs$Kg@#CPbj3<(*z&hSiIoaL%bPH#4dUv<vHCloIW<ozSvCr@evg>C
z5$iT1E#~ii3~#TCkutL0Lb49*%jM)vNrNe?wp$7R1CQWznT_8!HQ!ST^MSFrWN6V2
z66*8QS(Lvs1K3C70|T*&1CR;72uzDK6Rj!!(I+I{g}9PY8E=QmSf}h&!&NfzPd*WY
zfiWrH9*|7>CE@qomp{#23TyEO9Yb3gx_{<Dl&B%<bDZnIW=`;teT4=b*MuUTiq1x9
zGWuV9tY07fQb1-FFbq`C?ZhW%W{Dz7ziaXT>JxSl!UmM73yx{PSogMvuta^AwAA<b
ztoxoWM+(TS-y?K&2^}FPo%*F6a`pf12;I2!J`$*G=GjPex<O-qGpKD+&EfmY<S#cG
z)Tm#eNt(nRH#p-4he@{Z*4G<xEcVyU7ZD$1F@4T^9by#BIAEAw3y-E+)fY}ytK#2T
z!UcX3GB;L!7$<!Cq5a1$xZncu5r*zlp6!6v|96})m^pg{wU`~<@J##%gCF$*2LQ8U
zft*kn*s6u%Klg|X0H(kaGF|YyR$p(3PcUl53zZ&bJ}VF#Yda0`UwcHPhna>7jW7S*
znq1zIIyDx=^xseYWW=Y-coPmG8gJaf8z(#_qGHwq<Ee_z?s3)uz#LOTrmI<-alP9J
z#pn09zV+iwBgOhoU#Kqrdynhe!eHJgzHAt*x5bzC_+{x~W`Sac*LFIJIwQWa#~B6y
z^E@%uvr)Ju{%4P4rH7fii7bfbzL1Oa^)i8$Yi@zSj7;R2+i?<+&6BH~7v2As$@#i8
z6k`?E-#0PuwKx<t(&69Q<Gcfa*_CjQ$)O!@L}$YNvAR1={9l;>&ZWZvG_HY|Qkl`V
zbUEmE2hq0H9iZRi7*zEp-Ooz*`+Kyf8mFLpe}Fg8Pe(QJ!#%zM0GQiI$aF(_(um}^
zf6TCbO3hs3rl*<0i1ojLexBl|dtCpFz@$W^Gie(qnPv0yGO55G3L$Z=n_oan(!zq2
zedBx6l4@~g@ozG2yd<5j+TP#N^&mGL-<y|YV8&aSI*@b5jees`t;Nk4d)y0KKFgHB
zahwpNajCe)_})G*BQPNlgN^EPoBqo9-jp#t%nZMAqh`*8J6o}+r`qz?<9kyx2B@Ga
zZv#o;b|-9+qq^T1?O)xaBnHZv@7t23bL7ttd)ULouQB*xFL0*ojYB&sTO-%s?Z@}1
z9Ss1p^u}@EFCw`x$FJ+g(nr{@sXXG2ETvB|j%y{_VB;E$8GGZ#ItFWrDhAlU79`<*
zbx*ta_3^z~M_`Q;*0{oAz8<zhLbpq)Rdwe*ZUshQ`rWv(Ej8k=Zg*s?)(SS{=eg_n
z-fWA(88<jgxFb1qJ8!ewQO5D^jNj+P#^qw_=b2Q8MJi)uanC)f9r-M?=AarVCoJy0
zN7X<NGb3&s$LE1qlT)%kz1dpqXZ$`XI@f?T)OZTTM7eR}$*)IrX`;B__})Bu{Ww$L
z#!WqvT9;AHto8F4yiX$2wMH~bc9oAnL#%gOdUg)%Q9}TLxo%h^l}be%WY94$&<mNa
zh8@!ix8#1>X<+9c-s6s8oa}szjhnnfJyLHY9}-7cL?2q5LqrO}Y%{DA<8V~=xK6UZ
z#`(}x^rTk67wl0}F#?msSc3%ZHX$F~s|L}}Gv^EbQPK`;5oN1F`E*@ev`7EQz>I4c
zrhUO|QyeSxVw$bGWRGUs02T684;VN8B)L8H{hh9~W8#5(^d}X@xWZr>*SI;;kRHl@
z-m90gfIb&<yWO0^etqz`$*<@s+)qd7jV}F*{n8_nO6?&m%rC#9@y1iUafQdsEbIxh
z0v@)<J(2zL4+m-^R<|`>wntR`IFqTyO+=-2&v6Fzi>NXhXOeesSc`Q;HMQ5>3k2pl
z!3uU;5fyaHeJ1r@BWi_-II%}7$WY^eVs;axHKL@mzosrK+0;(1IJHM<1T~(4V$u`l
zO@8=5e~(A(ao!k#DNWFNHT|HN-J{ks&ohe&xH2v}Lyp?~9&yd{%u>Q!v;!e^2RZtS
zdz=eKU^)_fGx`)_X^*}cJ<KE{j5a_;l~~#1Xc>VSL%@!j@OiJ?BQ_&2H;8?MFsaE%
zg|_Ndd-V+%g1JE$d9|7};!aYnifi_$U)1x=`GFtS6tQ^J9({HBEHirGG19fDYJwlL
zM~@KzOyq&TdwnQv&ia0{_a3`Pe^;W6$Lr(S9T>om6le@66;)Tpc58d|BN=C0;V?r7
z@iAw)_J`ZJxJlIa7#}m(cnZek9C!#)BdbunMwcY7@6kihAma*z**EZU)Tw}sn#mAs
z?$O7wFqm$G{bkM6wR_xO#rZjd(bv1RGZZV5H{00b=q(JU&9KK2G}r2ZXzkVGP>(Ye
zW}MD@^>O8;aM^AUZ30)h(x_HR!VZPLH4!TB;kq&|H1k!`)-PEY3_xJRY;8uh&H7r!
z{4Np}Q=&Q(59?axED|Jj#!c;F5_Q7LM%d|635NXH7`sGt%Xpw%FGMK1Sf~dc1fNA_
zX|oyBD&%YgBCOV<4JzN=D&x3t`4<7`dc`6X#BF1v#%;ZsD@k`v?3B?zki$<ZSvC%Y
zT+jJuU1ryg)rJ#~^AY1H*E2W}^BV}TC<R_?wkz^K`Y{nV_{<xg)<rNmD9Cy|=54)E
z>9($`hiB<j<Hj=9o#mj;#zFx6695m^7BNl56TLQ*i~J?5I@KpZ2k9WYBEMQBo?J#n
z^QzVl>UEuhK)`QeDPPx(+ajuj>XKcP6nIJ*s{=s>KnZeyLEuxNvx&V^Ng83;7Ekl}
zB<eY>{TKn@Pe(w3w&+n(H9v}H_`Hm>$9f6|dA~Jo4xs9hs0Fpnu%asO1G(Uz=_8IG
zSMmyA5ce$3PMD=4byN~vFE`J#eKwDC)d32!ejC13=39#A_$=?9O9DcE2SOsbedP$M
z&0r&{iRYFvvgzCKEoBx4Bs>ors4eY>=(fVMK|?&>XT7yyg)9W1|1K<0rz<*g61%N>
zyru}Ul>Lw7hj{^uDp6HvQ1s&Nfe6vRS1=0gcuTx+2u4BTK*;a2wr;4Yl`Au>$$zsW
zUR1`%c4*NI3dH;Y>jeGMYdfKMvCkTCOq|33{2$^iQo9#+q*-r@m#~l$ytrOARAWKd
zOYvQT2K_G;9Vg;tJ}VA)tJnyD|0BSwHtiKTiq?8tyxhwos3)~Sus|T;j}iV!b1Gg@
zCf&fF*?6090Mb6je}WKDu7K;5nS5oLNY$}^uCuM<pJFo1Hy6>yW=FirXK6ZCjzWQm
zKSNj+tko(w{A&yP`kfu|Y9F;r2>QD^pdjzhu~yZch&6L}Z@hM`c#Y52&fTqO;Xu$|
zkf4LgbR`|)03?-~>4+utE)Ca%Zli-XSwg&)2e8_E0E~8i(2lsdepwk9++SkWlbwY2
zfHa15|C=<cq`qJ0GwXz)*SZ4=^8N}j3mGSgBf<?iV)@RmFO&68OXJnUdhut0An325
z>7qpX-Z}~S1|O4}+hZvVB>WAsLbO>z<-)(QOknBSYoYDA|1AMiFD}PD4ODQvtbN8e
zv9J=|$#%Q{A;rZg{%+h9)6@C;B^Ol^Lu#w8U2;)f*8;woM^K`e-oU5<^n`@)zaKX>
z+~y*C=@3!`UX@#m%H73Ve8NqGp;wC&4`Tm;O}zvPI-8YiWlSaB>a%R{q&8g^3}pO2
zc(PH8PR2UQA5@G;@ireLiO2Qo%ws{?KVl+vdma^(sLW1P=hoit^9fT7t;L;?ko-?1
z`COw}s<lQKh$;oDRpoJuclf+(Mzs{MAn~8^t~w5qdbnMQT2+-OuGWr;ce2P5Y$^-G
zis<r~5dANGMPDS|HFVJzLG-`&6@9UI_s~UO4AJlDEBX@g-l2=W1fu^9@uzVm$bB>A
zwBmg}OUvPwSXdDE{=RSeK=Fa0zv%-Z`h$H%KS+FN=%OD4(f`hqEFGwDEvTKT$jGwQ
zsdm=Hhgs}pB_^4l*YjL}gT#-p)2(ki3>txGijVsEnT|UX6$(WB2jW!owYO`r5Fhh#
z>m5smKp@~h$IVHi)c!5XgMFOA`y9+!_5-G)Wu?GA0Y9x7HN#FElY<wxcjz`m86$p@
zC6u5vr3gxp3lLKO3!VsFm7<at%We5j!#Z~gQI~jrip7`c^1@Iiuigh3!}v4}!)|*8
zXRjJ70@`{b*btxLLF~2dl>-$c_$<;VNqeiVtZcg#G{xt<qCt98FH0K)B0dj$*=__K
zYA;uzD}!agTO*2;_=3+TW(b{5aREZ?e{;xgd=)vaK;1F=MIYzi>Gl8$vc5#J_GcoY
z^`KSTshZ|DTOw#zsaR5cnPt!IJpyuLV=!NV9;mO;X{U<K#aDeksCiIJO+g^wf3Rkn
z$=RCdRNCFnR&7&!&BvQGkLrzT!$8Q_`DA7%(S%_Y?$PvDRhhT=2Foka8Yo49yX6Fh
z^#4VSu$646FQ6#y8(kRyR}<-($yM}CAM*qleHPUV6VkthFKB4sDrNs|pD*a(lG`c!
z|3k{2Q&3Stor~4c`geQ`V2_Me3I~zjMSP4q5kyEOJ)!s>iz{)a=e%9PAVJdiktve9
zwYJ%e>*5DKnIg+hsiy(^L#VOoAlaFUf=0ZNR3?%$CTRVU&vFPQMBP9rVNOg){xP<K
ziScN&w}X0xQlLR=Lw>TK_@sy(QDXrSqJLUkiR<ELgRjJO2>3a)H0$zaP^-%CDSqMO
z?Dnt=1`ERWRZQwcep{mYZ$x!*lZr=r(pnqlc|hN^Vm!+BnGL<KrCu?0fakD?66ZL0
zUcX2I4DxP9^6s7qf7OkPVSPDl2JOvQTGpGh+!9?xdWOJxSd8En6|<rF;_Be&TJ^fN
zxMjt|y!N;QTSGzAui(3><GPwM;<sWc{s(?F+jifY!0(x{-D=LodhLNnk5<E^7D%mj
z8y43mC$*d1F5+SkzgjWMg-SDUbt>81X0$C=&}}Oo%Eg8-tJQ%C$-h=Hfr)9dM$0S_
zx2t#rCXQBZ3I!r=Uom^!G{lKoWOF+*puI!IL-#vc>o5{T-LYbmI_|{qeTu|-q(yCF
z$FF0ln}USXk!dq=E(<7=+bvc$00@Ha?3$^7X6i1(n5n>;sk`F4r{0(J;qK=1-Q7N1
z>cZU}I<XaQ$pKJOv=*9*>wEaj96hh36oDY?o|w6e3fT;|#l0#XcBGFwl2{OS?@Bh(
z-l0hQJ{1qE=!mp;tVnx*#YEa0jSB53abE^65ovE2>tP-S==}hiYz7rMlj8mr54VUO
z(hEvI4b<~0CWJ-b!e-Qp=y#QeH_p)rODb`{Tpoxs`#sPxk^?jny3V|*E*IBVaF7L)
zBNk!ZY`LXiYeI-%M~w2At}e0EbC7z?myv_f9mE1PeUHp}RnifMe73gTH7Sn-QHQbb
z(146~O46YKM~wOG23Iq)6bs^xRGg8T{;_&C5MsPCtVk^dh4e}V!D!Ts)^{rUH*r3T
zEEA0CN0Bv3VIbs!ib+-KD?pEGCDdqC$(&02d?8CKk;4Fn66Xel+@lo}$}}nK5Q=qi
z%*S1Aa^eEd1Nb7WM(vI0?Nq0tql<l3qj_41$Rk12B^8t4GqHx&s8LdDbwoovz{j)6
zAlUIs1`~oGh>v!H*afF!ai*d}ENOM?@s@ZHi!ReKi!inbL&<eRLh_~X7Z9Nm$8tUD
zhzI*jt~1s(NRaf9O7YCCsY&7w_1WpY&fJ<Ap7_HmrofZq{Eq0#Na5i=uhk=CppYQw
zGH5VlFzFX_mN?-PO*zw{DH!A($BW?<wH0-enh=vLt4!sp<1|*|K+IIdlxufek#x4i
zG{cv;`!MI9Y6u{osF-{eMQucoqO+c=R4Jm<ZC5wr_>4H|ql6hoZ|z>75Pu5JByPl3
zIma0v9qhbV+s-;ZqK6*Y5Hc<mmk(8sC`<^Rg|6ge3Ehy=5s8@dS@+Jgi$Q{@dAy@(
z$|qgJR@|y4(T4mBvB2U=v^{mS_{*R{<Rab<xo!Ee8}x&?!Y7V*rpW;XSxdQ3SP$3f
zCfki_lZq~ueO}Kon;A5STw(Ws21ExzbaW<GeVp~283hPLT#3bxQ`UAE*2QU`NXm6q
zODGU=6=#=_+1iR)$BwEz+0{PN)+0~GXb^Z!#gqW4H<sS*rg)@JFrAw+0s!=*coE2X
ztcq|$PH0Q_DUwmtqghIs`WGOWdZ{8Fggyoeel4j}F>a7-Diu}rQBmeu6&Yq=Amy>h
z;uNY@RQY(|^KSjCVC)L=HAJJTh|9#+H6P2BuewZeAfpaHqbipQ&GA%7{je_&cSPvp
zXW(%qr+@`%>zGHrB}s(M_-wcoCNks_8(!YF``RTN5Mnng=2XPGN|`=ym4fBSM`)kB
znE?o)*J5kyJ{<bMx)I1PvMIewj|I~VYBDfOkH3p}5ZQpU(AD<?OK&}>P?=hjD@~eZ
z(w){6GYtDCPF#$j#YPA2UscY@MztzppVidEl{8oo)`r5_((QZ`8K}ow<`3dJpE+g(
z{Z$=!OkqP%%sN)XrM0k$kH^wOZ|5+X)rQ?_O-ZyJ3pu}CAMd&6{Aw`fvLWdz!}3II
z4Ulvt0H&<rCCoYZMyqR%yv2@>XX3bvCWT_^8fSQoXBLsFm7no(UKw78i)VnCyapYU
z@i=J~WH5Y#Pei(l6RRPa#|E+XLF37=Ga)w4iW^yMnVX#Y9bFnkrnkW}vd)F8;)y<{
zspt7Juf8YYa405+x~a-np6rt)u@3dj^UQ36*I<0IdblCNFcDAjc>{-UXK<L$#z!zZ
zp_g>2FXYp_j$n#uL50GsHYAcbIC}=em#FAY1G8LE_FGWoX+p$gSDxvkXnJN>vU!zf
zVVA-miW2ptc(zX<=Jc!#5>wY;Gc2ViUCOW?os~-TIX*U{rxIm6rm{gO$J;@@Ufqlm
zMVET6kI)|RyM@Q>HqPmope_3Uw7q?_WLb3|_V6$w2w_YRYc#<lG-4q<LQ~!Eqrbw!
z(CX<KIx{^zGu@-n2;tJLs$2E$ysEm@`&PY=L4+X8!U!Qu2*QXEgb_xV5KJ&87$brR
zViAN0#uy{SViAH6LKq<yA%q}u_Bm(&?zy+leedq~+J8*H*U;y;tL{B#pZ)dQyD<NB
zi(ai!d{OVu0fFZxU#<)!n_ary+p}Tm*JzxWcv!kb1HVl+r?^y`$;_6;(`z;RCFYz7
z5?F2>Nh13glk2q69a28&rn?C@(k$q85ZfXl9}Qi_U_pUH@F1}KcsPeSK~s9YM#=AI
zO9~>WaS~<?oRpmVtJnio&>J*{bCcH-0D>haZ<k4%WL$`(NV~Qv_Zu}%U4{D@!hkL(
zawG)17$-YxW^2=%G-gONnk!Hs&dFWoD`nUMc{8N6U@=CjZ35%tcjZ-?%X-8aEAwRU
zGQXyD&eDk9qIp$<;bp}DL9#;x&E>|<-G2Yw=dL_>&v|;QDuTA0KnD`Yc8DCO{cPgs
zkG@eQy-gK4_Uqm8TLJ^wPOc=;dgFB0DA<DDu8N7r^ruGx+pZHNTGP2PAUfyAw!`NY
z{@vaB?|{^O2zFtj)d8gr$o`IWYl93B?3OQMM@D<+HMoo`e6)WdF}z+j-As2o=0Ecr
zy-O9l@k@PLzk~s;PK4~F$rjh{%qZX8qjzgeJz45~{s0HmIw-BV=+n$~%6^Y#bC#>!
zbE|=YZ@2%J`NfNOUAT?j`=4~nSQ%j6$ustz3g6m$yYxQIi;VbK4h9T6xd!FVye;qZ
zfbGlHs(wFYJ^PSXa0mx_T`jQP&&S3=wyI(}rw<%4uw6j|+pcEZn1|3$rrSwDA3UOQ
z10+!G<hA*KkQLUV_>ktcMdUabu<FDPy_obbUGChL_7<bd=KA}vMvAptoRBIEm~<@V
zhN?$;**C|(!X;xL(YWA^&S?k<CY{_&fpIn2O2(OaWgk6Cpl=xu47y4bKPimT{MZqq
z_zVDsT$xuPV-1ge-QdSH>Qa_^2>}ksa4hBKl><t8IPg!O(5NweIS<PKXHJ}HE)gH+
z=Gy%vgewcoc{TWO62~7-Izw~VZ4&NNs%V<`(gOf6-sHBfg`(-xntSJfxHiac$VfN}
zyA|{q2x^gXi}2t>0smf<MKK+04yd!UX};=!=(C#b=hr$nvVsG`o9I{+0`}GtTU7Wt
zO_;i&sL*492q(6GzdWs<hnN-x0{!y1_Lt7<pNcA&&G$OREHV1~3z{GqFLTi)Sq~1I
zyzHR#m%gZZ*$wr>pr|cH5zR@ZFI|HuqQL=4O`^?yx0y@Ow=1GAYuvoZ#x0>hO_P1)
zYo;b!T#(+KKTKcI+})AtD<FZH*72#dS~rQVn^^c&jXAVWbBb<dT;ZRKITU#C)_KpS
z!<@dRk=Yaw031kZ@&eHssB60lrUUwVo7=Ul-R~{3@tprE<@+@}Fw{CL(tv-=Ju<$b
zIjptBhl2q7OjH4n3F~D1Cw&v>E%*+0ov#5F1dz+*=Js*otl++t^ev5@6$v*x7!b@5
z4+HtZJjbpjK-fGzI|}q|$UFk6Vi^~dGtqe?M7_VGxlTt2dyndI@Bh2wQ>bORXxeq1
zK8#Mcte@{{EXjBUY7G)hw9X26*tQeW_aLgHGC#sbNdIrg6N+k7G^Q)xp3^0Mdf$hf
z7If%?IBo$j*k%%+im~^5tMmiNzeXJadYJX_H=?pi3O|R8lD_Q;@Iy^ttg$CR2?#>k
zF~398>0-i{Qc90FrbzqLv<OhZN;~GQK0l+GkBF_cx(-s>%(Pw}_AEf4qaE`aiyPqh
z){oa8Q)rahHz{F2H#=6%#pTofn3)leI;OA#B3`J+0o6>zghjCCYJ0Tifi+gsmL08s
zRNlO6NLHkCdJIG;do0=IV3Hm48(FGr?p>s`cfs70T&(lhV~V>sTC5YofkP$_txWyc
zf~Uu69$G^VDXet*JF=bqyGsTGn~9;vYXn6$fdGL<hRv4rrpa`=*Regn=n2OZ<{8#H
zNfjh8%j6r$<2`SVFu$lLY9vKplt%)!?3fQfP%>o#joFU;TQ8dzbi*-)H{;hkt8)np
z^fDIrQ>ErvOkpb8W)0hEmn&G3Io$~1Ek-p*R8b=`XlTd0{}6^4=t&yw)EKD%{p^^J
zw7P<MmoMw^C}pGk@9~2dZi2|WT8IpRoZMz;5YvvWEb|Aa^E{y^YxYwUe~^(tQIn_Y
zI|37bFuGZDdqw&RTNDu1Sj11Rlua0lj1!(+&h(l`Fi0nPH<``oDaRCMNwgC~92gY0
zW8T<HCkbyjXLdTv%s1zJDn3Gs%x($euk9vSFxwhl>x`aujb1Ch>)$(8#<tSkv_Ga>
zAVL@0va3N!6YaB^&kOS(cgUL;?j$}P0$N0%WWANL3<gfxG4JHazT#7}OSftceQbML
z7*NlSl}<qF!i27y2j(o&F$iqYyQhQ^KOl|@R+?-J-*vFJzUBiBtD0>Q>0byW5YgnG
z@+pa}Y&`C7CPeF+n>Ui%5FilKYWr`SP8?zXp%U$+e12}*kQA<c11Bp_X`YlUmRiCP
z39K`g^puL{E7y`e@sngLHQopHlJS_%K>9t0cYqt=K}UnCF2<ev&fa}nHysV=8Iau~
zT)`{dK?oo~LX(GEW<aJ!kIw0t5YdJ~(vVECP+*{mbsH8Oq}%EEZmuGFmd3hmtX~i~
zkkO8<l>Hvr)Jb{onsYcdj{2O=YK*5!zsDsk(9y*Fd}wA2xx!YevNk!Vxn1pAE31kE
zGTO0~I&Ig6a)e{MN#`N%D74)wC<trv70X&?8=$#Ea~_+jqQgkdbB;+?r9Yjs(bnG@
z(gjFqQB&g<I&Z7Q04+^+M?HPySmt*^Qj0?RR%xjUtNbqcb}r(dnSU{)i<)n@lr^vz
zAf$=va6ILXosvtJH2cu6bi{xF1q8HXKJZlkqOR!;7ZcIF5P0`BdWt1D$Z4Wl!aDbH
zv6&6$-7a0mCpb#UC-6W|JGN38&UwE^Dc52q)d8KqAQo3PF%CjL>x?MfTeE-A0~(7<
z*83v4Iv6NwVsVwOd(tcDK}~q3Ap~G>z)L&kBZS~y@Gr(RnvJu*QO3`OxE5884Q!4I
zB3Ntqdh#}>`MgWdQ$;x9+k%0>Q)_%{8`QmaZw)<me?{aWE4kp>s4=%tNFc98*-Ar>
z6KEi-iQf0B!2Ga!zpvRR5tZU`z*h^*NO!TMhcqKAm&s7nt<{v{Q8Jk%W|`v5)=DZI
z1PEwi(1(4$m_<dI#*%7mA;wVPorz{Q-_cUKZNzR1a$01Wf~N!oaLnYZSS4kPQz#uQ
z`YBB`+qhiq?%x_1_+%1(whz_4mR$2yYOkg8R%XY_bc@|eSAnccw}d;1j(I|k@8oNK
zxM5j~*_;Z^BZ{;I4#B_)lSgFpKCXl20&;XT8NVL<FNtL{gT@hXb~Lf<kbqO+-|W_-
zqns?_=;+>&qoW=P{4bma(aL;zJzsTs#kG5IdHpK<u#{)HchXsIe83l|LS}BId)WaB
zcwX|vjC<HI{~5<Lop4jn7iy&NVsSD<6!5x&7rvNUy2y(T`NG|DaJl3O`MCTJan0t7
zHJ?2a-M1*<bcvZ~HbTLz4LcW&NoelJpXV`RFVUEJKyda$1P=@^@wLKGA2$&m40xuB
zIf^gU1d8?xAcm-5e=Y6q-JIxU*I;+=mPH@GE}MdLgRUm;<&e-K+isWn+7b@{-d7oG
zPUfA<-3ym*yKo=9LgVJxl|GbLVu0=?k>*%gfvx&*1q-iildEW7uuvj{0w&i&;55Jo
zd6g!-(ddKJU6B9w*h-BoJV?i`CjHf#d#FL6fPn|LWJqVpbU?4U28J{Pf&0Z`cm!2$
zysFn~?zy^GRk~FFL|pywyp^?EuY;5p1t0qz;iV$3-xj0U=i3(3i~}9?dd&%r<n25T
zm|QjOYsZn$8;+=bEec3mvcH4MQA|pDBP1QI#X@~z((jZ(L(7PA>A|iqQ+Sic&57`<
zDrg{biM3UZN252Z0<N(MYv6Iok>wA-gN8ch8P5jEUO{is99b-PYPSvs`j#A7U-ajP
zB)t`)+R!$ZYX_@?k$$h1VaN*eVc1xE+YvJi0tCjEgj^`K>8H0JA>`s9z|dN{rtUj`
z2fgEn*Ob8k<x0$mes27e>A+E6%s*Th%VR!U%;}vF)}{@Xp!l~E#{>)Om``yJvf+?j
z?&p|Qx0&B1=fGy>yEJBu0Qvi|5fv0I+4epg#}mG$gE?F3@7DOok;GmJ1*Vn=3%RfN
z@KhIikLDiUk4kIdK-Lm1B~F}i*muk`Sj@V^0linFrD85&hz35Eh^)0go7v_O?^Eri
zgIcOtOmMUiws!w0?QiDve#mP>5LiCw3<5%y+%v-k&jjh(nqFg|ci0^GfM%1{0el={
z2^G97Q3BknSkwi5P@`lj?T!TkWGpeW{q<`0#)mZEksG?)5Pu+>e&ES&1LjY43+mH{
zA*4l`YY-#O0Sja-3FbzJHJzf5Xf|N00Z^wv#u8<Q)(F-~l;#Ls8w~p><hLm5Xy~}G
z3=4ABF<&Abc1uc=V%|*(W65@RvcY_lK8DZGqGo8{Moe{RFu6ntl)<(BWY(SM-K}(w
zKCZFJ8l!b3Aede9?MLa<b}DhzP2AYU^*FHC$tNKF(!tVeNIps5j1D>%oIe?tw3v2T
zh}}VD_l8g6!?Y+fik^TtF!*2mIc}*qq1EQcd?WG>vfIeE&G-~P(k~p|A3Z<_7-W(v
z2<>|FG*c##X_P~gkKnMtA!BhjRi1|ZSY@fdJ)@s#^HL6+r?d<VrkUJSLE$rfR&!G|
zR8NCrCMs7(2iv|Pwn+PP8lxsQg&0uan91doO!t`5;Mj|w*LZk-rIiz+fM_NUjI#pF
z6B`@%{0o{uP?%Qm0N|Q6UF(x%Mqj+<*SbLk35_Llb9r<S?iP#LET?%V<H2s+lO-)S
zyH3&2m+)CyB&<tC(Fz=tHMzrtqUyp)Uc0!7@APGSkQOx@kp>$vP|(;UEa8W;)2L_n
z?N>A&Pi?Tf#{hjzTu;lu8D><>`BwU><^a}cJOTo;+A*Ih?2j`0?CEQoST?V656mwI
zAx)gM@)}&sxG{Q{C$^bGL0{Lro5s7f3JP+XJUFil#vBou(l<0ddqkx;81U4@fP=Z?
zCfG{Ls&7JCi)?&@0aZZ+hYj1JZzmp8(%(u4^ev4cJo2N|D-htXi58RZoet;pZOyKW
zJv;*fZknilX$8byx3vf8JDSTh+ExfypsUH<olQn|C?!AMf&)GS`mQEoB<p=yK^+VX
zHQ5-FedaVy*Xgp93i_VLs*I+ytAHS})tsZ*fWCi3=V*p6_5U67DeXZ<c098^4dyTO
z1C?(itGy9Y#R4BqZtC8{Yj(m1XLRU?nlHmET{T7k0p{6pZ}o>RLf<Ho5g*(~99M+0
z_w_mi5{$It5+id3=+k+=S<rRI6&6UOjNPJuiv|%sgm&@LZRhFw<BCgZISj`bprReG
z?Xm?u>i7|N*#ZQ#<15nasIa||riIz#^yuRX#qF2+Qk(z=>@#^pVt;do8G4N7EyS#N
zMgb2k@}kG|*lX~jk?j84$5+CR3H`j-q{nGq#8T}eLx5~{d?lE@!rd4i4{ZJHm7o>F
ze}3H421>`vTtE)O+MWY?!f}Nu+gN#9Lj~tdj=rDS#b#Gt3^$YMz}!Ahgy<H5#>fP)
z3L3~~BC_<k`Z?Ko5{nt#0FnD7-4F8NN<2`|j{7@2NoRH>xA}u^Jg&II{X%!QmLMRO
z9bc&ohTv%*-C1HTgeO7D;RZth3H&nIjCLw1-#Iry#4(jiWmkhQCa^Q&Eb4rZo~(I3
zwQPuhfFf3VKAXvSI7r9I9^HJz=K~~A#YEfq0o1b{rdK>gqYN;_I)nfPOumYkScx=&
zd@5udwh3fXYXbQ*#}9}DNiBUD2YMPl#5IcpEeQcb?D$G`6o4<KI=@S|99P&u`;}##
z2gmAXk9&_lpiy(CDxJ;?db&neHIcFf4b(A~__tW%fNq6=Hk9n@X((sIcH~N*bMG7@
zu}9n+@R-ITnM?nj3I>>9fqGcj9kF^y^{@zE^_tvNt~!BvT1K?(BJ6*sb;xPK-mSs}
zbq^6_5W-};v41_|gjqM8ZfBHF=>%lAna&jY=@lGs#N@s(k73Am-}bPeQ;?yHTnPYZ
zVaI(DDI4PBbeGO(-hO>Rhr<BBOFp=xr(}75KBi}=@aq&8ivfNY<8#wIZt++oyZoP1
z8GbnKGa;)5$wfdMf|c2T3(}XIpVGuI9uqxFV-m+L6$1m7ml*ZdT$?A;O**T2_ceQu
z0YK+E?&D-e!;bTjE#)vj>6~W&`n6)>1vnsd$!YZ@P9BpwNNCXQo!s!e(DNF<F2W04
zh6JDMxKE<gS*twM5X{wr?!YH#!-3zQ5L<-?;Y$<-_+Squ+ld{ObOFNK4C0QH%LEMk
zFR=`KO%?wz|BX_*Q)A>rs<VIuvR9y>%;q((-dvg&52>I808B5rXfYzE*ve-2Psbd0
zxC9~3ZWRxRP24Hr!2GJ&hbfs|W?9Ae9??Do63AVm!tinYz|H44uZJ!xBObADScL?|
zOSD(v4a;K2w(0#EL%V=+S^)vqi$y$nrC|bVU?)BRp%;(fSMF;b{-W%okoIOdyxlH6
zsM$x&EIJPdQrK}{ItFsGt6!q$s-g``6laG523Xw%FedvNH*lxt9oYpCDA2$HdoJm5
z{HJ?Jd(N%~+e^G8p*!1te2L~Bjk2c0K72hnY0k2nxMFxWvA||*`w-W<RYurut^pRr
zFNrh+7Jfpb?PP4O3`#ZougPHm99Ut9rkM+h3!eBVja246uXOf(fB{~Z7!W=wH%TWv
zy^J!I0lb{t^EjY{iH*v%x6GWkE#T{jPP`aIu;VK--)x*_)7fI)nVL)6ZiR{Fb(HIU
z9bFv`WU%8t@dm}5?((}!2e+H8v!Il6$Zb(r)S&EZm>`RZw#Pp-`*liJA+bdfYlB1v
z0)0%3oCS^T>F_lBs|6JrBL~Z!s5%(PV`6#u`*p&nV4=CeB9}CSfI=p_r0-_BU%1qf
zUuZ|;<-0_6mU~G{XrPu!>{v!J<#XCoo!H1&r@WjeCR#9BhPJv!&xfowy%pNjwylDS
z{i`he=T>UNfSuFGUSxNW6~><3>l#nRctC}l5Bvgrq6b@;tIhL)50C?<nkY>!a<t<f
z^4>%ALQTZ3QYR@8;HZgFP!6MYV{Kogu`L_M+E%98{+e7luI2n4>HIu5!*x53UaUEe
zOa1GsVBoOHcQcMN&H7w6?b@%uL=%837mE`fVu88_<0_lGMtSBZ2cTc7F&pe+UyodY
z0Y&Y&=hpbEiFeYND;8a!;+JV|ipWh@g#%?xoYv*K8!puo%}X!Wq+|B0<_S?jZj<dZ
zbXD4R_H@=S+)(6KXm)E*OS6Oos++_)`p9d&5;9sarI&JML1yb8i`H|S_i{Qv$K^vg
zot+NsbcI(z(mt7<#>23L2MXJ9PwB9%=PA8fqebdrTMGfUnmjGrN7*)FevQWAt~Fu~
z`!N5OKtEKNMT5m;Mz7UC+hrCS03fPWVp+vi<3GIa2(c^%02M9pOoqkYv`?=;q-SDR
zgL-z{7mS2FILEBw>Lz-F#$wx#TUTO&k|qjHau9bJ^~WUhH)@VvG@Id(z(W(GEtuEi
zdxyVCmC0zF{!?uu{!itb@n|zv>QbHfW{qE58ITsBfQ%-u4h>XnKU(=4y#>M!-;$+*
z2wGY#d^E`yg?ZJ*7QOX|;Uge{oF;FsH|V(ruB<g|NabxBAFPM@;dLCa(_pp)qfV#B
zIDNY&$k04Bbz0h}|09dKo^SRAS0lbda|_gzrbPftO(H;2t7T)fgRZr{-l^H>(aNs?
z4b(J|2nypQpBiB{4ErvX=@4f`mT=&riNhjBp<|GleM9tajma0aFiSAd(d3j#%%!M~
z?t2ep9(HtJ5gpz4uUIa3=c+L&d@C*M#=ln+Rcyi12(ZCalaJv~sChi;SV~{*UkZ93
zK1PdFWCbTY`w?WY)<ofWP929~?Qiscjlzkr^MC~Yny3NqT5|t*qyGl<0Zkww;-d->
z=xV`zzLRA0b^72T?{m8vEH&}&Jin5E%;-a^c<eGu)1rW@cH9$0V%}#;-9b9eCIx*M
zGFz~A4t8q+3=*4Y(V@8;=k$>yXi<v*h8p}Xm+Z473(gvTRI>vjSwjH=4{hnj>2^nH
zw@V+p1~-m_0@X}J$zVJ4qsvtUAJ=@R*n~U}1a_Htlfeh!`FTk;EzCFjghp95ezOt~
zOfoSOD%@8)+WnInkq3}z!@=(Vhv=l>gUxdOlAqGV0vf-h#R3HkxgFc_Yu>dxw#%XF
zf<CQzht<|$6(A76B#gW4MjIoZd#8Rz<4x}8mODI9z9iZ{vt=TknQv78S&gOV*E-9k
zf&=0gi+QB?2IzAd|E%t^1~&hn9QUcfa_oq2P?7HTQ`-Qxn@`7k^m)yt-8j-DiVZ55
z*epTlKF_zhu5w^NU%*Fbk#lVf|A&y^iNVwIoezxxm)p*V^hM3Fh;~r~7Pw(J_Ac18
z<JnSX&wNRvLnCpk5(=y@Nig^>8osjQ%bI9hq!~xGn&bb15T|!+KY%fPMI~feO*<HH
zyX3LC=*|Nd&u$w(-SU3Fs<Ee*;zR)wNM543LT-Ye>P%nLc&Pib9Xui^V4|GE0(l$O
z`?}@}HkI0kVZFbU42?0K9VurqrEh5LEm<g~yn+I<m#9VmGKIzVO^sTNY>FCj?XP6(
zq2h)sROwrq+ohp&hk-!w5(CvAwB8=2L;AMnfklq1MFGW2-afja_Nm|9yt+%@(deLt
z&Z-^@3@<rMVX(_}YyPgr0p2fmR%zS(|HykvIF84~_v1XD(f2g(2}@luL<j^%SIv<a
zKeRBvegBA#ghc_bOI&&JGG^m!KFrebpr9XU-c-zEDY3xp61&Fl8T+icD@@np&<{2G
zD6$Ke5JCD{^%pXB5sgzBF=zJWBUTlH8}?-d5v;FOzgZ;MV0(ekb*l>15e-^c91y=&
zmy@oOWG1uT*6Di4J6h5;1O+K<wJh>vhjCu?ZA|}BklCirD;y6{f`A()?=O}B9<0)%
zA?q47Oc`K4-jD7pdW{})%|#=f{bQ?TtplegnVUiRZf1Or$F3^Ot4P=A5(=EM)w(zA
z`X$oiG@=^ZDF+3D*=qGdT}*97GCf{%Dxy}F#R1(+9-lWIip_k-{Yp>Je5Z&NQbK`S
zCf~_7$1`tscSsX@qVA+GHQDnx;FHOBDsvy)fttHO+yF^O$)tERP|0Lhh+5xCX8oi{
z>Bd#Xbr-uIJP;^ls}kod^Va>G>m9kq*`<V^q&aF0x$qh$XlASawlzCwp6<@=EkZY~
zD$IUa=>xkZ3^-@2_1H{S+`X9eQnD%HCqvlbV>2Nj$Y`tnmY14K{!GJ!C;QUPkl7+&
zA1&Z4!N5pcmB5UT=}(ObYEvLjQE8G`dO)DSPFwXQ1O`1#1};=;-19E?f1#&po@j~S
z4tfL-JT<x0eRh7Yuq~9IwyLnrmUH|L1!S{T@783Kkql_3TQpayU+6t}fPi1NTD33T
zoUo^BzC+|#SH^_>+^Xkgh|%K9s0Uepe$M_%w?bYERzwY^Vh=4rgM-E&;_sGW19LL7
zX`fQ2zHyezjXFPu&(WgLB|hqW85JZoIf2GSp7HH_4_6u9K2Amjt!hr7te2=v4Giox
zoWL-gxzp{^`l`aJ-zPM>Q-(%2<Oqg!>c*f+6Rvwd0f8+dmCbeUf(OQ$sM1=m#oa+R
z%I0)RW9}Z<z|nz%&nBB%`gU4U0H+qD+K<j??x|=m&?QVT-d0znjc~HXR95pZ{jUW*
zLt_C5fU7rHMgs><EDrxvTyHI7FHGo}8hswI*Gec5-sGf+!nbbZfHHGuKTC5`qPIs0
z2JV}fH=;&-sRf;duohvesDtK_K!p=^Yd*{a=PuoM{<ixs-b3dgMmKc?2%x~hq;{sx
zJ(n)redYXpbY5jrFPlsr2V^(-7Q;!WoZNkf=35MXa4JLqgH3cb5|E>6T`hkox&U!4
zNS6(X%?K`dZL2Go@i25P2kwN#<Eqy*tn?hX3;u|;EkaA>qRJm}%L6kdVx!z$-`PCP
zf+NhAj=Zxy63A?#lBD?Swv^Mwju?NhMkPf{$pSQR+T_Zq^CIo`xU8}I4j@{F`{Ih+
zs<th;v3>{Xw(D<xzvfnz)lxrH#R9QS6k*xXFrE9JlMiUb#k(U47PxDoK1O}l$HY!l
zE9gOpYC#ML`icb@;Hru0NXDIMy5sCMdag!wNbN|70FqkG*>^we;d<T?o&6FDEHyFC
zz13@-#jYyewQM?vuHvtVk+DP&UrasqJb}0tML%t*=YkAAo9uUg6(r+qG-dmi`Wh7y
zxm17z?pmO7XN!3{-KO-AD%ULsK~0X4+4K2=`d0DNf*Eu)(x@h^_t!`r4TQB-ALC{&
z<!$Hh>-L$jInTTIoWE#)rwn4B-C~=B)XW$h7;LreznKkEAM4sW;`T40z-)sibUT+j
z=guja7Btc9jK~=P5-4rK&TzxGC_m)RpbA@e#=uPZGn&}VHUn%6%AcrjzZm2+xtPLo
zT3c7Yos6l_Y`CW4TtNdtZFQx&TQGAR9rttr+1I37Fn~d0s|S6|$(UF+=+2RYJ^}>>
zn;0B5Kh0+9_aLrCX~luAUzoLjSS%`kF8Gd{<>Nhiz9tkJIbZ?=7MpxO-wwgf<l9at
zV_W+L8ZRi)TOkAkBTbZ6*;{p<&y#UCr$K7DTrbo()Qt^WtDxYkiR$t?;GsO5`XuCw
zG<zqaPD&_H)&hMp?r%==0loN;`ot{<Gp(L%Navd_fJiSnYO(=Ppr)<*(o5pGYxGi;
z|5Y30!U*7^G46F%nGn4UsH<w!!0Y*SMArK@0Phl@FV}qJz_0`YNMvFu)#n`dXA9%u
zEsVMH3dm|v@YQODGO)od<4^IFCC7C^=F*vC2*Nm>j*P?hN_?Jsj^@8c;Xz3YcKT#%
z$n&mVb;zCWmV<L9de9uQMStGuC*!`gvtO;zgMP7`)({93G#2CscXEyOEE~{kG@G(k
zqdhAdll|7JPwGyy!VQQ`hlzQ~U85qIwf<U-mYvGb$T%3dY2srsNpUmZ>Gn5so;CM6
zjgJ))9ZL*w)Z{SKiUg$xZaSdXYXaT-mmZd=AhU`6BhLH1i<I_$fqO=r-=#NbEZ=A>
zAcO;pO<rZahrK75y|InuQ>w8R&GD;Tv)@_uiA!mekrk7ab8v&yP29+d-lVxcqun=_
zLBVwsUvxC?%yz~`DQu_oW(aIW)%5DM1OUZNl=s6Nl}@<3&-xm@MYCfcMsPdC0F_Pb
zMwHPcYdu?%^HxoiqoE|nV}Z;juPRaq&1p<Fl-~xiEh>TbEv@#5;I{=%6Kgx}r`k2v
zd`@pyI!$%G2_*2_SkzDY=t0U;Haq9XHZ^sHf1l@m0N^_y_!rxS5FA$Ou<Y*$B{Yix
zJ5Kfz+KeuYLVqVd!=XBrE=ryLFGRmu>aNR4XU6S%7bLVw%T@@$Kmq$rv`x?!$HfBp
zS}y3_n&4wopPc{@EI8RcKDcJQGo#zMqx^d`U#}LT0}4oQt3I>syH0bLA)dho8ErZq
zEH|%qFrc&rsSxuiM#co474*JCrb2)Kvf7eL>8&MJrM&+ds1%O{x|)0!8um}Gt@*;!
z4`|+rU+L_-00l%fxYj{JG^cKtKB)OV&B;~90)0&aW;1Tf&kCDO&U^ST^dU|B0_%Mx
zavcq1w!lnH`fOm+hYx9{y5*p!$yT;~rOd}4+Hk~2G*Q}Gb1DG=Qw<SP7d5a=xNT<i
zqpAq$a;OJL;Hs_qgg2PsMaJ1HZ{&PTqjnmo<{=<>YZ8i>=UeHtbK&ycmpC1G@xt9_
z@1l>Z@(>olJ<DY*(AQWVlQOvsG~LbS^a;&os8o^ia`4jvl{4@2%`u`Gee#eh2MFMz
zi4BHhm0qP!X_RKe=}fPJfhK#+*9CGVR5E6_>(iRO7O5}<68L8l%GgTxc5)gR<J12}
zpV7Q>S#E_bVS#ie(h_4q*(qfFx$Nx7&q7*@<aHvZ*b)wSXA<VxDMmKDX+xQmUR|)=
zwxEnYrwJYkiaSLOkYJ~Y)6BgjY?FI)CqA4`>GPVaqSBEfKmqTJr7#Ch$`5;73(vnf
zSG3DzNlZKa0;IM`9z_cq8<4?66BD!^I^h6Lx|{YFZqDHs@j>ppMzNWy05H`Mg`$}=
z8AitV{F27_<dyCb1P~yntx5&{qUS%1Yje@{^NGK#aRCDmpCyihg0v=IE==&!S2R1T
zDNPK@ni$vU3^60~D}7aU(ZzdASS0Y(#2%n@#ske~L|@Z5vv!$}m3aV=(&ThB4x5{}
zE-_z+z!r@<Tg<SVRNBV;C2VZtNEw6Q{h)8CY;3pGZH^EIoHe;fSsPk9#y2$=X+@ca
zM2x?ZeI99F&y|q$Er@ARoYSr?KI4MDCU#Ir&$3M$%|9jjwnl;P$M^yyIBgP)w3guf
zVLoBs(bx|)Thbzc!zSO#`%8|UG0%H@HskqSP2eozepTVXV-v06yTWhvHjTaYJ(ah-
z+*{tFfWubX>RahH*AIOEh+EykfW;<Jo$&p6CYJH1*4EZn=?D5<8Q&LGTrk@ZdT<ZH
zyjn|G_@Tyti9Ae?0~Xtwl$~sj(_L52NRL=k1moO7_bf{ckk!^!!m(1sYU#Q)#TB{K
zB98)<^vE@Fl_e9oFwWlfYl{6A&1Wu3pYKQ3Rw}e(<IIfRgs(@fDekG*q;Nq3BTb%_
z3qho8PCObybjb<79*na!Uz))A1Y^R|V}RSDF-;{K(J$-$e{5}~)-`4n>l*V|$U1!2
zm>4i<W@{_8rfIH|f)w694)PD*G_8UN(wXcH_6_?yL4lh&u*k=+Y1C2ZVumnaovnFG
zzs!3x(Yv50tSNk_#vHoE0_kkc>mBq=y^{5}3VNdE8^v0$S{QK7)>bN0|7cD(XtYAi
zw#2sl2?5_pwo_M$bK{!A-m}a6>-PYll*v|Om7UM*BuK7c;kidVVd6=U(}J7eF~Ip)
z#sig1zL6ceYdb~Wr1?g*sl8#d$e(0r9()XDzd3J<-L7pEko6YUYku;Y!g_6J7_bZr
zHrd)r*y;3+rB0_eYo2Os@5MWv{`8s@{je71!?%}R<w`gj_2?;U3IhoM{#`D?fm|j}
zyR3lnL(JV62Fq!CYMZBhP+`>)ESP3%z93_g?9$UT*GsJ+!>k9hOzz=cF&OkZy}3Pf
zw*b6FT-2>}f$;zY)H0DE6<j;Xc#EE{QA*K5FoprQOw_F8hA*4r&&^A3)!g*aEVD-f
zflMTM-DP_)a^2T4NIG2ImjHn#2J@@fHhSK6M_Scr4qoRrH2^>fW9+A`guG#+wm7R{
zH;MV`^Ubbtmd8ooX7Feog6}_Aa3h;|Um0MKiJo5Su4HKqbOIlxg;RG>!zK#}8kszC
zYpiBPHXYI_NNeHL)zXC)0Yot|<8o_}Y|$AY>xN43V(`D#e14`Z43Lvf&j5ZKDq+0J
zK)}HMT3bPv#K{(yg*{Vaj8=+>f}*g$FUDAyh_sUppQZ5!V(H9qqT#dGd~8{$D`?k6
zXEoMXlm-JVP`t!Fle3;1-~F6Mug0pc^U`C#O)LwSo95!h^BVn7Pi_b0i?@rCt0X$F
z&gc#ZXi>blPtNozLP*aMQ9%wez1r>41&yf2bS6WA$|Y}v_g}KbZTAbhQ}f8e4eS9x
z=Yo0ZSPi$0$LEsi{ZsA~eRsY?7ggrvGE1U{2VxgAfbYu24cXRQi?>TE4G?SbR)T@v
zB|Zkz4$uGMg)5h@oV{}YWx7`rcL=GAB?kChYb#3>V)h#6>BMY{%bMrdxGjJOIu{H|
zmvXgJbtPJVzve+k^0y%vC|zql7}g(jCdF``56Mm@Qw3OjHmw2y5|=2|^8R(aX?jq#
zFPbiM2L?Wu><j4xG0(X_AU#)O6-8T0I3N(aM2F*LGJ9>zm6OlYe65C^Az+|(iR~(%
zrk5oJbv3qY^h+@e*j@7IIK!XWgz|7~G)AH_DE(TWdI*8Q;F2BZ<G}6*^;PkX<#4k5
z0q&OUI%!zL;}!WgN;Q^vto4l`fz1WKLf+mW+olo3v<R{`>;i)W2A4Rv-n~!8V|e<u
zLNJ58Hq8Y}5bthAK|$k^HzqDmR<O;rrTU67*U935za>XXlDXrl|BWUZvnZMv1{Nq>
zqTOrU8rP~Jhrl*HeGcO5R5~@x!kg>D?UygyarfD~&fi8?4|{W!7$AH><$4RcZ{F?H
zU{RqlW}?QpK!NEcdt=7F_FBjOSf_>NH2bA4*b~Bl#}yN@MmyI+2#S7pS;&uAy+reL
zKzo`ius(pnLV%+s#*uO53ud--?lBkfWy_LzKBTnijv?z^XmJS*TrDwXN8`?PLA|0_
z(9pP?^a73DA5>t6AmC@oE(;iOZq(unRVH&xF$fgcSYk5!{7R9U7xW^{mx&~47z7Ng
zHJ|GY+sBsGOfS~xgMC}lF4Z;t!!@5MlrAgJF-vYUzgyGZDfgFXlzX&w%Q7ffTOvO!
z>NlW+fGO}&jr>NYKou11F8HUMfF3z|=F3!({Avz+RH0@5`kLoJRcfJZC1aPXBDkBg
zXT}uta)`au;xIN=TE)@94U@we*3a+=;#X)4$Nh?Nf>Ff3Dej=(^V|7!l9{_nh?}p}
zxG|A4RKo+!3%9E?CrIpy+xaiA(xo^&LTIT}@IV2B&|<q|36{3^NOzn~%$5FXjZ&(_
zEbCBUg2_!DbZ73*cj+}6gSn~AvjGAvOyv0dyD>kvI79eajr|qL<9i%1!C>W~Zyy`7
zuhV>+rUrn4CHvd5{k@Si950H^Y&xUYYXn8STLA*?OCp_vtl;i2^af3ga3Be5zZ%3Y
zM*Z29F#XcUrW~cyF1Jl}2eF&mKwLp@gy0971s{}+IY<haUve$?k|I61(dnJsaOENN
zCXMIgSG$l|4GAPKxio!yTuS*>m=EJl+?zF4d%e|e6${KS*`qz9boyNH$v@~V8bi=8
z^})aZ2J9~}*Z9>lVajq|<_Vb_;;ouZTG>NYAdtW0ZTXf-95BuXoa%U+=50lqF98Wu
zFNxFUu980+(AyzH$7yiOLF|&3;_n2{Abp4Cr9`flDv9)e3PS!aiS*7xhWzbn(6i)S
zqfCTSKPH#nr7_JLicWwAs+KtN@u9)1^lpu<)ov0oD#HHdT3H@6pSv=?_duSmJjkyH
zM@t@L(4y3M+??p5_d>+8+ivAp$5Rgn!q%G4LNf*6eVT7kbJl{g|9>qp2;V@H_nFt8
z?^oFm%e^>DD6q7|@~#+<8P8>&b$fgKgFc|y4b2v51r!u6(LHseiaw~(-1{47pl}7}
z*9|E8&>_!nWh&7hFzipUuFm_m(wPhGWuz~sb&VrFv@K0P3~?=bx(b@p-UmQ~+qD!E
z9!X62BiA4%JgUWn|1i|&d&NAR&_@re&+T%sy5xJ5@mnK1F{h6{rr8(`v0#q{G8aqx
z>6L?M!ItayafturgT)`38XOV<|7gv#b5MljB$@ZWow0dBpU{K`8VZ|gnBa%iE>`!0
zK6%88)%^fVO#E-&2eV{nx@|VxryycYw~;&m_+g@A?3i)$=6QxDo0Ifujq_3)S03Pi
z9mawl>CWDiKBM{g_1hpQ8T$9Z5u=pbOVMW!dBogukiHP0^YLkkbbn4`^+hAywK(^m
zAiUx-_k(<AN}tz6&LZi51_8TEHmOe#Ptu9ya%nbcB+u+%K-`ir#<_%gX7S}dC9}?j
z=`gpy(HB(_1&3j!#qq$;VzHIZukJOXxeX_8=}QoP_|C5pT#&fL{qK*mjvZasWu-x1
z*1SYs>mF|f1Y9lnRfC?r=bYj86-`c}GE5m5plUVbTNZX`)mN`+zGV>(u=;a3!;av>
z(Z#Q6)I*&i6T}w(Ld@w=pC^D>!qnF_hG<YJ<ky3aRdv=1<E(w-@XlIMI&1$?j81=)
ztvA$V7<>0|r+WIP=50jOLj)5{tu<fYP;X!Ja5kfFL2jEaKy8}hJY3GF{c8ya`5Bk=
zZAjA<zVTx4uf#m?N$5UT33KiBbeg*Ix9>no3+6y1t-XW@c2;0e8&}zA_3s|ipth^Q
zzmgjp#>ph<ZyFUv-_zKB4Tg@#0uxJi!_|fHbu!Om@_k^wud$gufRz>j11n2z!&%0c
zjO&Z>1C5q*3*EOWF+jO0?HxNv+MK=2svP>E=3<YGqy`dbSL@z{KsIa6J2Rz6tSdrP
z(X^NY0{?1Vo|)0>9GT`^#dQ$Uq8@c7H$#8`{?)oamW6jQu3uNYje6R(>RSBB`bw?O
zE?XupIQb}uIeed8pn-n1zEW$7;%7wAqt_LOrzwhFEp_@)5f)IEC;4=~NsrM8YotG0
zEbz3}y#aPR*LFRS(^h9EGuvgS$9d<19t)9eX2&wd4r5rEaY#_JM6xl7W;Q!wE!@d$
zM(HryrN^x+6f7{jPZ~o6HEZ1~r=SNC@7#n&1wCG~eVRHd2^vUR>pnJUC$(78ST>j@
z9gefvfd3O9wawJ(AO_U{2*%dB*zoym&nV7x#=p=L*EJR<FZCgy00eZc^?Gom+s!8V
zpxdPz))k7rxnYn61A%MZrzXxP#oldMGS1C+KU-|wo{xF3&W-B|3nw)Y0}o-PMlr$f
zV#&<sueX3mjHWUszPSL$12RtPlkgcXAN(0wHJPYM0QGCVB)$x}2*I(xG#Wgt`xgYz
zzt+p3GLr&k^F4a<y21*skqXRu(7NQ4qq&9IxpXtY57i&TK!Cm_cc>o;UL;(qKO=gI
z<_?X_78f9pw&aUU)18jd0P|#O+^eT*z6h_hB0>l-vKXHmo5b2;J9FF?k~|F(_vx_G
zzTtL>3>w$^iZsgT_>lm&tSkH$!X4YG_Wl3ab#H0=WaNUz{E)l7lN)}n)zdW>K_tDo
zga}fXm?(p>qk`VLuJ9ZN-j4H&!QWc<bt&a@O~{<wZRussbvnj<v9IkI1n$$D_n_C-
z2oI)Lc?;N^W1Qz(iy5s#_~AyGI~Y*D)_s*-Z!zRHf9skvP&4-&1PEL5nuZhGg@{gQ
zUQ;jth!=y4CHvWOQ;g=D(kZ~Uh#u6)EerrA)_Rc9OtSd~odL2kqsgnm#S){}_u*Vj
zZ6{7{c1X|A7>1Fao&gr9SnEEXQ0x_c+8t+}i~eRhNxN)l6!c7pZNdF5aikoe0T!$+
zu`GlsX{oxFb@?pK_l>eHfd%rG+;%?J!TR8=#$}1bO9Hj<^LTrko_;&q<1?D~9-?!q
zx3^ig3R%VicS|n7pHB)tSRMb9&O=taS`oY03acT3$|cscZzgG5*$g<eF@Kou&{%+x
z&Xge-2wkGhqy%!xzt9DUYLRz{mQq?AaJjJk-81G*DvH)|I}5r~V{As=TLcqqFBmY!
zv!3MzcXc9;NneD_7KFu$e;%NK+$Gk<a>LBqjVid$`@?jpjdf8*i1u&A86t!AC1zBA
zl+AmcbZWb`-K%m_>`DoR0|cZm*vjHrnCC&4HJhfvLoqlYd5PxVoFsi78b$YO>}9*k
zg3Ef4xq>T&Cd|=z;E-2}T@4DC*j_<3T28i1v1@Bx>A^Nz{J;vg3MLp`q7lO?YHyl6
zSK|-wTb5llQhr%>!7S@<alUIYnHBUr)tPcDeW0*J0i!GC4-c|!;}3VQjX!L`K<>h|
z#Yv1lmwr;B@c?US5Q_jt7lS`3)DPA%u*djHe%Xa{`x+ylK{+hLg6}2QOQoW(OWA01
zPO0XBHkJoEFtEPlOz;dWnR~^pI%FOejUe^eE!2KEQY!`rBA9$ppYxg}8F6-C&NYLX
z=8Hy3XhSfNzt(;FQ4AM9KW0m#6Jr$e>hPGc9P{O=3N+Dttpi3hfd3_Xw$|^&wjS%+
zp#FgJHhZ>J8<h|iOfU(o2Xlews^&6l7%l`Jm_&#x1Qag%D>Qp^e?Ci412|tt)xY)p
z_#>HfW4yea3R-AFrV&4~f(B+7i{#lNt{t9n3wZ9G^-#J#kF*21EqaGJ7;8^@mD&gl
z-WcM<o~=H}=9?+4S>ExUDoz~Zz6WUFlZjI*qnPIOe2p6&o92Y`{;P8Lxo*|{ZZ<VW
z=L<CWwT9OY0<<yUOR|$o<X@<{TO(;wivqTo?0c@cE}Op0_UJ{L*J0a0h3(F2XyA?o
z0Z?PQq+D73;zI^N{d$nYL@PQI!pR<`)7+RNFVPr3;rhTP2?0R}i@cyQz4RKqASC_%
zk-VUi>g*aJ(91MFZWC?VVSxcAj-YhQpV>U>%QcF2x#j*WECl%tQ32KQ!0z^Xg=Wv~
zGi<nWef=i<&a3=o*NxvaGB-|YuWxSHWz^&=A-GK?xyNzutPvChFEM|-2hO%_mpjuk
zBZbWfdX**|8}aFv5JB@=j+|D5MDEw_wo&5r>T3}>ZG;CCO!l)cUgLjeUVzd6uhGO&
zB4uzu0vSv^{soQAx-|}4+o1GoHIihpyUwdf;DgE4I>{#4aIeEtsJkvQ-eu#>e5}_&
zW{a$^hjGEsCP=Wv<V0;I#U`8nv)<NVxYlKlmtL<qQ3Bu`=4CX{#b8)V?>!pz*aF`i
z7xV^=z0}akuY?1a44TQ0bhbrz^hQm<JvJHI!hjEkD<m(nU7PN<K|tO!Z_<3Na=p7i
zmf%1O6T5aear35(LqTuWM9qU>ya0d!CQ*JVNq>tb_*zRK)JoC+nOx*HRzJ>1tH<fB
z8Yj6H?Y9VEdabWC^a$s`CB02^ln(3>J_zb}{`tDEDhSio_fS4!&HD2R(c2-qMcLiH
z$?yOb<S^OezPe~<({lIUq1oe+A|(d{a+sXmdD5FE)9GHvPIKYVJ<&Tgn;Zb{KrO?8
zIJWNdSi^B=o~86INV&DeHZ12Qnzf*Y)jVxK;ho-nL{Hn}fCN^1BSpeJk?B20d?OA9
zbTHX;0V8da%seHnw?^+(87Iv&w-6M}FtK2L2R=7&^?jO?T<hUi8LRrQ<s=8uHfh+@
z?b7=-c6np?t^@>K3`U0Yht22m?KnT6GBTDuYaoFcCINq+fq)%YO+(NJA-F~5dnB{b
zfD6vpx-b1IOW=x&$!uocy>06IA&rUIR8$utf>joI!^3f&lMB#(_?o=o5)cHkrTb?_
zA35UvgP8Uo$~!IX+Ce&V)d16U$GikPu#P?ofk!A2i6MhtCYsZ@y8|QeV;apFxXObP
z@_%PY?jj#2cAd*7wtMWyA!#2TzDQEj$Gj9U$7J&+i+O&>g}YqM&Uk#*{gpnU*+h&n
zlEV`R1ZhkX3uWsSUk*>7)Hv4-ZCpGS*kfYrl{CdUeM)ncG_f7=Apb3kxXv1|JM?Ky
zT%~61&B`8h|4t6L*MPqNuY@W;qciuH6lxU?Y%;iRo<!OywzAoUA$=C&T2PCzSVFNO
z6!>Mb39R9gJ)Cyr7y6tgn2zPno~VO?WQGtZ+A_|Qt#oITi<dqRfi1XMjcp!*2i_Ti
z%~kTxI5!%Hz5t=uf>2~J!9^4M$w%DB{BuTM)NJ}l;NHQ2c_w=W2cn-(dFsZOG<&7t
zY&j_K%Ve(@|KB<fwi3=xarv@luVA?Z6{=vMnu%USsktpQm%q_hG?#iq@p=Uj3^b%$
zri0A^85hDl&abM{EpDNEYb6MnW@4bxVmjNine2%h-Sss{X+z1dtDR|G0|N0(zDhsv
zRKKoqgqLRGRD9LHl;~d6vE+)KZ>W66HtuRry7M0;WD)lN-Ehr>zp2@hjm?BND$Rud
zDhS{&Jjwc7hYa8^s_g2&7N5@dTv~7+%Kj#OTjSG3dN+9-@X%!IO^S@;TeqLP;40VX
zI~w1>ul9nfNZ_4GSP(hmX*%xo^7%ZUbnRd0yO7x;<5q#GCZp@X;Hb&|5YBTs@sYl#
z*&k5?bqNNVnp|&{#OGp?Qr4&MYxLFrsZ@suuG;zvD4;w#a(hNUfGiya)GY@|4PVCw
ze$8I8dFk$KyeR00N|lfO5&;8MZNpnzVn#YQkEt)_uk?rwje!s|ODlNbt!?;7p|m8q
zZbP9UYqn#po5>?LR?sxzfy-Ae-E;ZE9dteLbxjil0JOD@+KW%=Q5#2i@%YsL*~Ut3
z);-fH9u4e6&AJch6hFGLQkgvM%%@~Lr^jes@d4(T!2>I8!`Hh}+L<kAl+t4%s71Y7
zKsK<eK{?x4skEr$-X*qd;&B^_dpuHKBS4^-ZFpM<eE^DZNEtnTL!nz5Itx?~!8F_O
zO1wF9_Jj?^4Zm;Eb|hi;;~V~3^vOQ2HRy>Oifb{FH1s$ioyq>-i+Pe1TXchFe}vaM
zuLikn!{0yEeaU~)jha_>&`#$+!7HmBF3t}ooHU~+Z78nz*sc^L5XM;4Pp!mz98S}n
zuKa~=g6NCQqT6>i46#8k+wgwgY-@yaXg9*ve1Iq81GMne1;Ht>2po848{Q@IPsrx*
zTw43)4Tb*|dDtZsNNDl}gV^AR+1_@}#8WhyvoY2PJP^|4D)2die7a?f>!(84;f6C?
z6mZgl!#7DD%88zK$irt>gJCA`CKwCX>vzp1Nw;h$Y?sCva}Er=Gr0?fZmV#z)7}M7
zhp-l&W03F(LBKE*A$Vn;Hh!ySw>7-|Dr>y6;eDOam`8na84w-YQ207QS8%@`{4s$B
z)oGJf0j&>TTLkdN@VR;XV1Jw!DXnY3YXb}|0;pqRaXnO+RXo~;PH2odyUbz(00c7G
zu6Q33_oq{u?b`5i1q`IJ4R71Sn=$@qF}AbL=nMq5sGErUMkN~fW@6l9$jq=?Y^LKe
z$1GBMhDJe0XV!#pV4ZD9<%IcEJbcuS!lh?w>@zHN8Y~0?wM@R7Toyd*uge^`WRw>4
zERAlCUOp8(P|V~)SQ-<T?)K>{gto{V95i>%0D^fYI%weA9r7RMnbSFqc`=AJPV`71
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
K%@u5xmGXZiMIS@}
new file mode 100644
index 0000000000000000000000000000000000000000..9db55ed0c0d8548ccdaa5dd04c0ad062a1227055
GIT binary patch
literal 9557
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
RSyJrK>G!d|_w(#B{2xA8TvGr5
new file mode 100644
index 0000000000000000000000000000000000000000..db4b86e654edfda7bd80b84d213f7b786a7952b0
GIT binary patch
literal 11612
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
ImKmA<0JFR6DF6Tf
new file mode 100644
index 0000000000000000000000000000000000000000..231522cfc28308c3df2e023fcfc0a2b5b6c7f4e5
GIT binary patch
literal 4977
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
Bw+{dS
new file mode 100644
index 0000000000000000000000000000000000000000..2e4a8aa2cd76adaf883550533772e2cec305188d
GIT binary patch
literal 5186
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
OfZ+Z!hJQtk%D(|4aBZOg
new file mode 100644
index 0000000000000000000000000000000000000000..53b5287822946885fb734b0e94c5d87bb2ad8ab4
GIT binary patch
literal 44118
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
new file mode 100644
index 0000000000000000000000000000000000000000..6c9413c02213716eae32b575a36c4ac381c5dca7
GIT binary patch
literal 5399
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
QjtJmv6K@m#jjP3f0t(G^EC2ui
new file mode 100644
--- /dev/null
+++ b/python/macholib/doc/_build/html/.buildinfo
@@ -0,0 +1,4 @@
+# Sphinx build info version 1
+# This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done.
+config: b80b1cc6a748fe1205999d2fef6726e1
+tags: 645f666f9bcd5a90fca523b33c5a78b7
new file mode 100644
--- /dev/null
+++ b/python/macholib/doc/_build/html/MachO.html
@@ -0,0 +1,132 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    
+    <title>macholib.MachO — Utilities for reading and writing Mach-O headers &mdash; macholib 1.7 documentation</title>
+    
+    <link rel="stylesheet" href="_static/nature.css" type="text/css" />
+    <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
+    
+    <script type="text/javascript">
+      var DOCUMENTATION_OPTIONS = {
+        URL_ROOT:    './',
+        VERSION:     '1.7',
+        COLLAPSE_INDEX: false,
+        FILE_SUFFIX: '.html',
+        HAS_SOURCE:  true
+      };
+    </script>
+    <script type="text/javascript" src="_static/jquery.js"></script>
+    <script type="text/javascript" src="_static/underscore.js"></script>
+    <script type="text/javascript" src="_static/doctools.js"></script>
+    <link rel="top" title="macholib 1.7 documentation" href="index.html" />
+    <link rel="next" title="macholib.MachoGraph — Graph data structure of Mach-O dependencies" href="MachoOGraph.html" />
+    <link rel="prev" title="Command-line tools" href="scripts.html" /> 
+  </head>
+  <body>
+    <div class="related">
+      <h3>Navigation</h3>
+      <ul>
+        <li class="right" style="margin-right: 10px">
+          <a href="genindex.html" title="General Index"
+             accesskey="I">index</a></li>
+        <li class="right" >
+          <a href="py-modindex.html" title="Python Module Index"
+             >modules</a> |</li>
+        <li class="right" >
+          <a href="MachoOGraph.html" title="macholib.MachoGraph — Graph data structure of Mach-O dependencies"
+             accesskey="N">next</a> |</li>
+        <li class="right" >
+          <a href="scripts.html" title="Command-line tools"
+             accesskey="P">previous</a> |</li>
+        <li><a href="index.html">macholib 1.7 documentation</a> &raquo;</li> 
+      </ul>
+    </div>  
+
+    <div class="document">
+      <div class="documentwrapper">
+        <div class="bodywrapper">
+          <div class="body">
+            
+  <div class="section" id="module-macholib.MachO">
+<span id="macholib-macho-utilities-for-reading-and-writing-mach-o-headers"></span><h1><a class="reference internal" href="#module-macholib.MachO" title="macholib.MachO: Utilities for reading and writing Mach-O headers"><tt class="xref py py-mod docutils literal"><span class="pre">macholib.MachO</span></tt></a> &#8212; Utilities for reading and writing Mach-O headers<a class="headerlink" href="#module-macholib.MachO" title="Permalink to this headline">¶</a></h1>
+<p>This module defines a class <tt class="xref py py-class docutils literal"><span class="pre">Macho</span></tt>, which enables reading
+and writing the Mach-O header of an executable file or dynamic
+library on MacOS X.</p>
+<dl class="class">
+<dt id="macholib.MachO.MachO">
+<em class="property">class </em><tt class="descclassname">macholib.MachO.</tt><tt class="descname">MachO</tt><big>(</big><em>filename</em><big>)</big><a class="headerlink" href="#macholib.MachO.MachO" title="Permalink to this definition">¶</a></dt>
+<dd><p>Creates a MachO object by reading the Mach-O headers from
+<em>filename</em>.</p>
+<p>The <em>filename</em> should refer to an existing file in Mach-O
+format, and can refer to fat (universal) binaries.</p>
+</dd></dl>
+
+<div class="admonition note">
+<p class="first admonition-title">Note</p>
+<p class="last">more information will be added later</p>
+</div>
+</div>
+
+
+          </div>
+        </div>
+      </div>
+      <div class="sphinxsidebar">
+        <div class="sphinxsidebarwrapper">
+  <h4>Previous topic</h4>
+  <p class="topless"><a href="scripts.html"
+                        title="previous chapter">Command-line tools</a></p>
+  <h4>Next topic</h4>
+  <p class="topless"><a href="MachoOGraph.html"
+                        title="next chapter"><tt class="docutils literal"><span class="pre">macholib.MachoGraph</span></tt> &#8212; Graph data structure of Mach-O dependencies</a></p>
+  <h3>This Page</h3>
+  <ul class="this-page-menu">
+    <li><a href="_sources/MachO.txt"
+           rel="nofollow">Show Source</a></li>
+  </ul>
+<div id="searchbox" style="display: none">
+  <h3>Quick search</h3>
+    <form class="search" action="search.html" method="get">
+      <input type="text" name="q" />
+      <input type="submit" value="Go" />
+      <input type="hidden" name="check_keywords" value="yes" />
+      <input type="hidden" name="area" value="default" />
+    </form>
+    <p class="searchtip" style="font-size: 90%">
+    Enter search terms or a module, class or function name.
+    </p>
+</div>
+<script type="text/javascript">$('#searchbox').show(0);</script>
+        </div>
+      </div>
+      <div class="clearer"></div>
+    </div>
+    <div class="related">
+      <h3>Navigation</h3>
+      <ul>
+        <li class="right" style="margin-right: 10px">
+          <a href="genindex.html" title="General Index"
+             >index</a></li>
+        <li class="right" >
+          <a href="py-modindex.html" title="Python Module Index"
+             >modules</a> |</li>
+        <li class="right" >
+          <a href="MachoOGraph.html" title="macholib.MachoGraph — Graph data structure of Mach-O dependencies"
+             >next</a> |</li>
+        <li class="right" >
+          <a href="scripts.html" title="Command-line tools"
+             >previous</a> |</li>
+        <li><a href="index.html">macholib 1.7 documentation</a> &raquo;</li> 
+      </ul>
+    </div>
+    <div class="footer">
+        &copy; Copyright 2010-2011, Ronald Oussoren.
+      Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.2.1.
+    </div>
+  </body>
+</html>
\ No newline at end of file
new file mode 100644
--- /dev/null
+++ b/python/macholib/doc/_build/html/MachoOGraph.html
@@ -0,0 +1,125 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    
+    <title>macholib.MachoGraph — Graph data structure of Mach-O dependencies &mdash; macholib 1.7 documentation</title>
+    
+    <link rel="stylesheet" href="_static/nature.css" type="text/css" />
+    <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
+    
+    <script type="text/javascript">
+      var DOCUMENTATION_OPTIONS = {
+        URL_ROOT:    './',
+        VERSION:     '1.7',
+        COLLAPSE_INDEX: false,
+        FILE_SUFFIX: '.html',
+        HAS_SOURCE:  true
+      };
+    </script>
+    <script type="text/javascript" src="_static/jquery.js"></script>
+    <script type="text/javascript" src="_static/underscore.js"></script>
+    <script type="text/javascript" src="_static/doctools.js"></script>
+    <link rel="top" title="macholib 1.7 documentation" href="index.html" />
+    <link rel="next" title="macholib.MachOStandalone — Create standalone application bundles" href="MachoOStandalone.html" />
+    <link rel="prev" title="macholib.MachO — Utilities for reading and writing Mach-O headers" href="MachO.html" /> 
+  </head>
+  <body>
+    <div class="related">
+      <h3>Navigation</h3>
+      <ul>
+        <li class="right" style="margin-right: 10px">
+          <a href="genindex.html" title="General Index"
+             accesskey="I">index</a></li>
+        <li class="right" >
+          <a href="py-modindex.html" title="Python Module Index"
+             >modules</a> |</li>
+        <li class="right" >
+          <a href="MachoOStandalone.html" title="macholib.MachOStandalone — Create standalone application bundles"
+             accesskey="N">next</a> |</li>
+        <li class="right" >
+          <a href="MachO.html" title="macholib.MachO — Utilities for reading and writing Mach-O headers"
+             accesskey="P">previous</a> |</li>
+        <li><a href="index.html">macholib 1.7 documentation</a> &raquo;</li> 
+      </ul>
+    </div>  
+
+    <div class="document">
+      <div class="documentwrapper">
+        <div class="bodywrapper">
+          <div class="body">
+            
+  <div class="section" id="module-macholib.MachOGraph">
+<span id="macholib-machograph-graph-data-structure-of-mach-o-dependencies"></span><h1><tt class="xref py py-mod docutils literal"><span class="pre">macholib.MachoGraph</span></tt> &#8212; Graph data structure of Mach-O dependencies<a class="headerlink" href="#module-macholib.MachOGraph" title="Permalink to this headline">¶</a></h1>
+<p>This module defines the class <a class="reference internal" href="#macholib.MachOGraph.MachOGraph" title="macholib.MachOGraph.MachOGraph"><tt class="xref py py-class docutils literal"><span class="pre">MachOGraph</span></tt></a> which represents the
+direct and indirect dependencies of one or more  Mach-O files on
+other (library) files.</p>
+<dl class="class">
+<dt id="macholib.MachOGraph.MachOGraph">
+<em class="property">class </em><tt class="descclassname">macholib.MachOGraph.</tt><tt class="descname">MachOGraph</tt><big>(</big><em>...</em><big>)</big><a class="headerlink" href="#macholib.MachOGraph.MachOGraph" title="Permalink to this definition">¶</a></dt>
+<dd><p>To be discussed.</p>
+</dd></dl>
+
+</div>
+
+
+          </div>
+        </div>
+      </div>
+      <div class="sphinxsidebar">
+        <div class="sphinxsidebarwrapper">
+  <h4>Previous topic</h4>
+  <p class="topless"><a href="MachO.html"
+                        title="previous chapter"><tt class="docutils literal"><span class="pre">macholib.MachO</span></tt> &#8212; Utilities for reading and writing Mach-O headers</a></p>
+  <h4>Next topic</h4>
+  <p class="topless"><a href="MachoOStandalone.html"
+                        title="next chapter"><tt class="docutils literal"><span class="pre">macholib.MachOStandalone</span></tt> &#8212; Create standalone application bundles</a></p>
+  <h3>This Page</h3>
+  <ul class="this-page-menu">
+    <li><a href="_sources/MachoOGraph.txt"
+           rel="nofollow">Show Source</a></li>
+  </ul>
+<div id="searchbox" style="display: none">
+  <h3>Quick search</h3>
+    <form class="search" action="search.html" method="get">
+      <input type="text" name="q" />
+      <input type="submit" value="Go" />
+      <input type="hidden" name="check_keywords" value="yes" />
+      <input type="hidden" name="area" value="default" />
+    </form>
+    <p class="searchtip" style="font-size: 90%">
+    Enter search terms or a module, class or function name.
+    </p>
+</div>
+<script type="text/javascript">$('#searchbox').show(0);</script>
+        </div>
+      </div>
+      <div class="clearer"></div>
+    </div>
+    <div class="related">
+      <h3>Navigation</h3>
+      <ul>
+        <li class="right" style="margin-right: 10px">
+          <a href="genindex.html" title="General Index"
+             >index</a></li>
+        <li class="right" >
+          <a href="py-modindex.html" title="Python Module Index"
+             >modules</a> |</li>
+        <li class="right" >
+          <a href="MachoOStandalone.html" title="macholib.MachOStandalone — Create standalone application bundles"
+             >next</a> |</li>
+        <li class="right" >
+          <a href="MachO.html" title="macholib.MachO — Utilities for reading and writing Mach-O headers"
+             >previous</a> |</li>
+        <li><a href="index.html">macholib 1.7 documentation</a> &raquo;</li> 
+      </ul>
+    </div>
+    <div class="footer">
+        &copy; Copyright 2010-2011, Ronald Oussoren.
+      Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.2.1.
+    </div>
+  </body>
+</html>
\ No newline at end of file
new file mode 100644
--- /dev/null
+++ b/python/macholib/doc/_build/html/MachoOStandalone.html
@@ -0,0 +1,125 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    
+    <title>macholib.MachOStandalone — Create standalone application bundles &mdash; macholib 1.7 documentation</title>
+    
+    <link rel="stylesheet" href="_static/nature.css" type="text/css" />
+    <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
+    
+    <script type="text/javascript">
+      var DOCUMENTATION_OPTIONS = {
+        URL_ROOT:    './',
+        VERSION:     '1.7',
+        COLLAPSE_INDEX: false,
+        FILE_SUFFIX: '.html',
+        HAS_SOURCE:  true
+      };
+    </script>
+    <script type="text/javascript" src="_static/jquery.js"></script>
+    <script type="text/javascript" src="_static/underscore.js"></script>
+    <script type="text/javascript" src="_static/doctools.js"></script>
+    <link rel="top" title="macholib 1.7 documentation" href="index.html" />
+    <link rel="next" title="macholib.SymbolTable — Class to read the symbol table from a Mach-O header" href="SymbolTable.html" />
+    <link rel="prev" title="macholib.MachoGraph — Graph data structure of Mach-O dependencies" href="MachoOGraph.html" /> 
+  </head>
+  <body>
+    <div class="related">
+      <h3>Navigation</h3>
+      <ul>
+        <li class="right" style="margin-right: 10px">
+          <a href="genindex.html" title="General Index"
+             accesskey="I">index</a></li>
+        <li class="right" >
+          <a href="py-modindex.html" title="Python Module Index"
+             >modules</a> |</li>
+        <li class="right" >
+          <a href="SymbolTable.html" title="macholib.SymbolTable — Class to read the symbol table from a Mach-O header"
+             accesskey="N">next</a> |</li>
+        <li class="right" >
+          <a href="MachoOGraph.html" title="macholib.MachoGraph — Graph data structure of Mach-O dependencies"
+             accesskey="P">previous</a> |</li>
+        <li><a href="index.html">macholib 1.7 documentation</a> &raquo;</li> 
+      </ul>
+    </div>  
+
+    <div class="document">
+      <div class="documentwrapper">
+        <div class="bodywrapper">
+          <div class="body">
+            
+  <div class="section" id="module-macholib.MachOStandalone">
+<span id="macholib-machostandalone-create-standalone-application-bundles"></span><h1><a class="reference internal" href="#module-macholib.MachOStandalone" title="macholib.MachOStandalone: Create standalone application bundles"><tt class="xref py py-mod docutils literal"><span class="pre">macholib.MachOStandalone</span></tt></a> &#8212; Create standalone application bundles<a class="headerlink" href="#module-macholib.MachOStandalone" title="Permalink to this headline">¶</a></h1>
+<p>This module defines class <a class="reference internal" href="#macholib.MachOStandalone.MachOStandalone" title="macholib.MachOStandalone.MachOStandalone"><tt class="xref py py-class docutils literal"><span class="pre">MachOStandalone</span></tt></a> which locates
+all Mach-O files in a directory (assumed to be the root of an
+application or plugin bundle) and then copies all non-system
+dependencies for the located files into the bundle.</p>
+<dl class="class">
+<dt id="macholib.MachOStandalone.MachOStandalone">
+<em class="property">class </em><tt class="descclassname">macholib.MachOStandalone.</tt><tt class="descname">MachOStandalone</tt><big>(</big><em>base</em><span class="optional">[</span>, <em>dest</em><span class="optional">[</span>, <em>graph</em><span class="optional">[</span>, <em>env</em><span class="optional">[</span>, <em>executable_path</em><span class="optional">]</span><span class="optional">]</span><span class="optional">]</span><span class="optional">]</span><big>)</big><a class="headerlink" href="#macholib.MachOStandalone.MachOStandalone" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+</div>
+
+
+          </div>
+        </div>
+      </div>
+      <div class="sphinxsidebar">
+        <div class="sphinxsidebarwrapper">
+  <h4>Previous topic</h4>
+  <p class="topless"><a href="MachoOGraph.html"
+                        title="previous chapter"><tt class="docutils literal"><span class="pre">macholib.MachoGraph</span></tt> &#8212; Graph data structure of Mach-O dependencies</a></p>
+  <h4>Next topic</h4>
+  <p class="topless"><a href="SymbolTable.html"
+                        title="next chapter"><tt class="docutils literal"><span class="pre">macholib.SymbolTable</span></tt> &#8212; Class to read the symbol table from a Mach-O header</a></p>
+  <h3>This Page</h3>
+  <ul class="this-page-menu">
+    <li><a href="_sources/MachoOStandalone.txt"
+           rel="nofollow">Show Source</a></li>
+  </ul>
+<div id="searchbox" style="display: none">
+  <h3>Quick search</h3>
+    <form class="search" action="search.html" method="get">
+      <input type="text" name="q" />
+      <input type="submit" value="Go" />
+      <input type="hidden" name="check_keywords" value="yes" />
+      <input type="hidden" name="area" value="default" />
+    </form>
+    <p class="searchtip" style="font-size: 90%">
+    Enter search terms or a module, class or function name.
+    </p>
+</div>
+<script type="text/javascript">$('#searchbox').show(0);</script>
+        </div>
+      </div>
+      <div class="clearer"></div>
+    </div>
+    <div class="related">
+      <h3>Navigation</h3>
+      <ul>
+        <li class="right" style="margin-right: 10px">
+          <a href="genindex.html" title="General Index"
+             >index</a></li>
+        <li class="right" >
+          <a href="py-modindex.html" title="Python Module Index"
+             >modules</a> |</li>
+        <li class="right" >
+          <a href="SymbolTable.html" title="macholib.SymbolTable — Class to read the symbol table from a Mach-O header"
+             >next</a> |</li>
+        <li class="right" >
+          <a href="MachoOGraph.html" title="macholib.MachoGraph — Graph data structure of Mach-O dependencies"
+             >previous</a> |</li>
+        <li><a href="index.html">macholib 1.7 documentation</a> &raquo;</li> 
+      </ul>
+    </div>
+    <div class="footer">
+        &copy; Copyright 2010-2011, Ronald Oussoren.
+      Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.2.1.
+    </div>
+  </body>
+</html>
\ No newline at end of file
new file mode 100644
--- /dev/null
+++ b/python/macholib/doc/_build/html/SymbolTable.html
@@ -0,0 +1,136 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    
+    <title>macholib.SymbolTable — Class to read the symbol table from a Mach-O header &mdash; macholib 1.7 documentation</title>
+    
+    <link rel="stylesheet" href="_static/nature.css" type="text/css" />
+    <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
+    
+    <script type="text/javascript">
+      var DOCUMENTATION_OPTIONS = {
+        URL_ROOT:    './',
+        VERSION:     '1.7',
+        COLLAPSE_INDEX: false,
+        FILE_SUFFIX: '.html',
+        HAS_SOURCE:  true
+      };
+    </script>
+    <script type="text/javascript" src="_static/jquery.js"></script>
+    <script type="text/javascript" src="_static/underscore.js"></script>
+    <script type="text/javascript" src="_static/doctools.js"></script>
+    <link rel="top" title="macholib 1.7 documentation" href="index.html" />
+    <link rel="next" title="macholib.dyld — Dyld emulation" href="dyld.html" />
+    <link rel="prev" title="macholib.MachOStandalone — Create standalone application bundles" href="MachoOStandalone.html" /> 
+  </head>
+  <body>
+    <div class="related">
+      <h3>Navigation</h3>
+      <ul>
+        <li class="right" style="margin-right: 10px">
+          <a href="genindex.html" title="General Index"
+             accesskey="I">index</a></li>
+        <li class="right" >
+          <a href="py-modindex.html" title="Python Module Index"
+             >modules</a> |</li>
+        <li class="right" >
+          <a href="dyld.html" title="macholib.dyld — Dyld emulation"
+             accesskey="N">next</a> |</li>
+        <li class="right" >
+          <a href="MachoOStandalone.html" title="macholib.MachOStandalone — Create standalone application bundles"
+             accesskey="P">previous</a> |</li>
+        <li><a href="index.html">macholib 1.7 documentation</a> &raquo;</li> 
+      </ul>
+    </div>  
+
+    <div class="document">
+      <div class="documentwrapper">
+        <div class="bodywrapper">
+          <div class="body">
+            
+  <div class="section" id="module-macholib.SymbolTable">
+<span id="macholib-symboltable-class-to-read-the-symbol-table-from-a-mach-o-header"></span><h1><a class="reference internal" href="#module-macholib.SymbolTable" title="macholib.SymbolTable: Class to read the symbol table from a Mach-O header"><tt class="xref py py-mod docutils literal"><span class="pre">macholib.SymbolTable</span></tt></a> &#8212; Class to read the symbol table from a Mach-O header<a class="headerlink" href="#module-macholib.SymbolTable" title="Permalink to this headline">¶</a></h1>
+<p>This module is deprecated because it is not by the author
+and likely contains bugs. It also does not work for 64-bit binaries.</p>
+<dl class="class">
+<dt id="macholib.SymbolTable.SymbolTable">
+<em class="property">class </em><tt class="descclassname">macholib.SymbolTable.</tt><tt class="descname">SymbolTable</tt><big>(</big><em>macho</em><span class="optional">[</span>, <em>openfile</em><span class="optional">]</span><big>)</big><a class="headerlink" href="#macholib.SymbolTable.SymbolTable" title="Permalink to this definition">¶</a></dt>
+<dd><p>Reads the SymbolTable for the given Mach-O object.</p>
+<p>The option argument <em>openfile</em> specifies the
+function to use to open the file, defaulting to
+the builtin <a class="reference external" href="http://docs.python.org/library/functions.html#open" title="(in Python v2.7)"><tt class="xref py py-func docutils literal"><span class="pre">open()</span></tt></a> function.</p>
+<div class="admonition warning">
+<p class="first admonition-title">Warning</p>
+<p>As far as we know this class is not used
+by any user of the modulegraph package, and the code
+has not been updated after the initial implementation.</p>
+<p class="last">The end result of this is that the code does not
+support 64-bit code at all and likely doesn&#8217;t work
+properly for 32-bit code as well.</p>
+</div>
+</dd></dl>
+
+</div>
+
+
+          </div>
+        </div>
+      </div>
+      <div class="sphinxsidebar">
+        <div class="sphinxsidebarwrapper">
+  <h4>Previous topic</h4>
+  <p class="topless"><a href="MachoOStandalone.html"
+                        title="previous chapter"><tt class="docutils literal"><span class="pre">macholib.MachOStandalone</span></tt> &#8212; Create standalone application bundles</a></p>
+  <h4>Next topic</h4>
+  <p class="topless"><a href="dyld.html"
+                        title="next chapter"><tt class="docutils literal"><span class="pre">macholib.dyld</span></tt> &#8212; Dyld emulation</a></p>
+  <h3>This Page</h3>
+  <ul class="this-page-menu">
+    <li><a href="_sources/SymbolTable.txt"
+           rel="nofollow">Show Source</a></li>
+  </ul>
+<div id="searchbox" style="display: none">
+  <h3>Quick search</h3>
+    <form class="search" action="search.html" method="get">
+      <input type="text" name="q" />
+      <input type="submit" value="Go" />
+      <input type="hidden" name="check_keywords" value="yes" />
+      <input type="hidden" name="area" value="default" />
+    </form>
+    <p class="searchtip" style="font-size: 90%">
+    Enter search terms or a module, class or function name.
+    </p>
+</div>
+<script type="text/javascript">$('#searchbox').show(0);</script>
+        </div>
+      </div>
+      <div class="clearer"></div>
+    </div>
+    <div class="related">
+      <h3>Navigation</h3>
+      <ul>
+        <li class="right" style="margin-right: 10px">
+          <a href="genindex.html" title="General Index"
+             >index</a></li>
+        <li class="right" >
+          <a href="py-modindex.html" title="Python Module Index"
+             >modules</a> |</li>
+        <li class="right" >
+          <a href="dyld.html" title="macholib.dyld — Dyld emulation"
+             >next</a> |</li>
+        <li class="right" >
+          <a href="MachoOStandalone.html" title="macholib.MachOStandalone — Create standalone application bundles"
+             >previous</a> |</li>
+        <li><a href="index.html">macholib 1.7 documentation</a> &raquo;</li> 
+      </ul>
+    </div>
+    <div class="footer">
+        &copy; Copyright 2010-2011, Ronald Oussoren.
+      Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.2.1.
+    </div>
+  </body>
+</html>
\ No newline at end of file
new file mode 100644
--- /dev/null
+++ b/python/macholib/doc/_build/html/_sources/MachO.txt
@@ -0,0 +1,19 @@
+:mod:`macholib.MachO` --- Utilities for reading and writing Mach-O headers
+==========================================================================
+
+.. module:: macholib.MachO
+   :synopsis: Utilities for reading and writing Mach-O headers
+
+This module defines a class :class:`Macho`, which enables reading
+and writing the Mach-O header of an executable file or dynamic
+library on MacOS X.
+
+.. class:: MachO(filename)
+
+   Creates a MachO object by reading the Mach-O headers from
+   *filename*.
+
+   The *filename* should refer to an existing file in Mach-O
+   format, and can refer to fat (universal) binaries.
+
+.. note:: more information will be added later
new file mode 100644
--- /dev/null
+++ b/python/macholib/doc/_build/html/_sources/MachoOGraph.txt
@@ -0,0 +1,14 @@
+:mod:`macholib.MachoGraph` --- Graph data structure of Mach-O dependencies
+===============================================================================
+
+.. module:: macholib.MachOGraph
+   :synopsis: Graph data structure of Mach-O dependencies
+
+This module defines the class :class:`MachOGraph` which represents the
+direct and indirect dependencies of one or more  Mach-O files on 
+other (library) files.
+
+.. class:: MachOGraph(...)
+
+   To be discussed.
+
new file mode 100644
--- /dev/null
+++ b/python/macholib/doc/_build/html/_sources/MachoOStandalone.txt
@@ -0,0 +1,13 @@
+:mod:`macholib.MachOStandalone` --- Create standalone application bundles
+==========================================================================
+
+.. module:: macholib.MachOStandalone
+   :synopsis: Create standalone application bundles
+
+This module defines class :class:`MachOStandalone` which locates
+all Mach-O files in a directory (assumed to be the root of an
+application or plugin bundle) and then copies all non-system 
+dependencies for the located files into the bundle.
+
+.. class:: MachOStandalone(base[, dest[, graph[, env[, executable_path]]]])
+
new file mode 100644
--- /dev/null
+++ b/python/macholib/doc/_build/html/_sources/SymbolTable.txt
@@ -0,0 +1,24 @@
+:mod:`macholib.SymbolTable` --- Class to read the symbol table from a Mach-O header
+===================================================================================
+
+.. module:: macholib.SymbolTable
+   :synopsis: Class to read the symbol table from a Mach-O header
+
+This module is deprecated because it is not by the author
+and likely contains bugs. It also does not work for 64-bit binaries.
+
+.. class:: SymbolTable(macho[, openfile])
+
+   Reads the SymbolTable for the given Mach-O object.
+
+   The option argument *openfile* specifies the 
+   function to use to open the file, defaulting to
+   the builtin :func:`open` function.
+
+   .. warning:: As far as we know this class is not used
+      by any user of the modulegraph package, and the code
+      has not been updated after the initial implementation.
+
+      The end result of this is that the code does not
+      support 64-bit code at all and likely doesn't work
+      properly for 32-bit code as well.
new file mode 100644
--- /dev/null
+++ b/python/macholib/doc/_build/html/_sources/changelog.txt
@@ -0,0 +1,242 @@
+Release history
+===============
+
+macholib 1.7
+------------
+
+* Added support for ARM64, LC_ENCRYPTION_INFO_64 and LC_LINKER_OPTION
+
+  Patch by Matthias Ringwald.
+
+* Load commands now have a "describe" method that returns more information
+  about the command.
+
+  Patch by David Dorsey.
+
+* The MAGIC value in the header was always represented in the native
+  byte order, instead of as the value read from the binary.
+
+  Patch by David Dorsey.
+
+* Added various new constants to "macholib.mach_o".
+
+  Patch by David Dorsey.
+
+macholib 1.6.1
+--------------
+
+* ?
+
+macholib 1.6
+------------
+
+* Add support for '@loader_path' link command in
+  macholib.dyld:
+
+  - Added function ``macholib.dyld.dyld_loader_search``
+
+  - This function is used by ``macholib.dyld.dyld_find``,
+    and that function now has an new (optional) argument
+    with the path to the loader.
+
+* Also add support for '@loader_path' to macholib.MachoGraph,
+  using the newly added '@loader_path' support in the
+  dyld module.
+
+  Due to this suppport the *macho_standalone* tool can
+  now rewrite binaries that contain an '@loader_path' load
+  command.
+
+
+macholib 1.5.2
+--------------
+
+* Issue #93: Show the name of the affected file in the exception message
+  for Mach-O headers that are too large to relocate.
+
+
+macholib 1.5.1
+--------------
+
+* There were no 'classifiers' in the package metadata due to
+  a bug in setup.py.
+
+macholib 1.5
+--------------
+
+macholib 1.5 is a minor feature release
+
+* No longer use 2to3 to provide Python 3 support
+
+  As a side-effect of this macholib no longer supports
+  Python 2.5 and earlier.
+
+* Adds suppport for some new macho load commands
+
+* Fix for py3k problem in macho_standalone.py
+
+  Patch by Guanqun Lu.
+
+* Fix for some issues in macho_dump.py
+
+  Patch by Nam Nguyen
+
+* Issue #10: Fix for LC_DATA_IN_CODE linker commands, without
+  this fix py2app cannot build application bundles when
+  the source binaries have been compiled with Xcode 4.5.
+
+* Issue #6: Fix for LC_ENCRYPTION_INFO linker commands
+
+* Use the mach header information to print the cpu type of a
+  binary, instead of trying to deduce that from pointer width
+  and endianness.
+
+  Changed the code because of issue #6, in which a user tries to
+  dump a iOS binary which results in bogus output in the previous
+  releases.
+
+* The mapping ``macholib.macho_dump.ARCH_MAP`` is undocumented
+  and no longer used by macholib itself. It will be removed
+  in the next release.
+
+
+* The command-line tools ``macho_find``, ``macho_dump`` and
+  ``macho_standalone`` are deprecated. Use "python -mmacholib"
+  instead. That is::
+
+   $ python -mmacholib dump /usr/bin/grep
+
+   $ python -mmacholib find ~
+
+   $ python -mmacholib standalone myapp.app
+
+  This makes it clearer which version of the tools are used.
+
+macholib 1.4.3
+--------------
+
+macholib 1.4.3 is a minor feature release
+
+* Added strings for 'x86_64' and 'ppc64' to
+  macholib.mach_o.CPU_TYPE_NAMES.
+
+* macho_find and macho_dump were broken in the 1.4.2 release
+
+* added 'macholib.util.NOT_SYSTEM_FILES', a list of
+  files that aren't system path's even though they are
+  located in system locations.
+
+  Needed to work around a bug in PySide (see issue #32 in the
+  py2app tracker)
+
+
+
+macholib 1.4.2
+--------------
+
+macholib 1.4.2 is a minor bugfix release
+
+* The support for new load commands that was added in 1.4.1
+  contained a typo that caused problems on OSX 10.7 (Lion).
+
+macholib 1.4.1
+--------------
+
+macholib 1.4.1 is a minor feature release
+
+Features:
+
+- Add support for a number of new MachO load commands that were added
+  during the lifetime of OSX 10.6: ``LC_LOAD_UPWARD_DYLIB``,
+  ``LC_VERSION_MIN_MACOSX``, ``LC_VERSION_MIN_IPHONEOS`` and
+  ``LC_FUNCTION_STARTS``.
+
+macholib 1.4
+-------------
+
+macholib 1.4 is a feature release
+
+Features:
+
+- Documentation is now generated using `sphinx <http://pypi.python.org/pypi/sphinx>`_
+  and can be viewed at <http://packages.python.org/macholib>.
+
+- The repository has moved to bitbucket
+
+- There now is a testsuite
+
+- Private functionality inside modules was renamed to
+  a name starting with an underscore.
+
+  .. note:: if this change affects your code you are relying on undefined
+     implementation features, please stop using private functions.
+
+- The basic packable types in ``macholib.ptypes`` were renamed to better
+  represent the corresponding C type. The table below lists the old
+  an new names (the old names are still available, but are deprecated and
+  will be removed in a future release).
+
+  +--------------+--------------+
+  | **Old name** | **New name** |
+  +==============+==============+
+  | p_byte       | p_int8       |
+  +--------------+--------------+
+  | p_ubyte      | p_uint8      |
+  +--------------+--------------+
+  | p_short      | p_int16      |
+  +--------------+--------------+
+  | p_ushort     | p_uint16     |
+  +--------------+--------------+
+  | p_int        | p_int32      |
+  +--------------+--------------+
+  | p_uint       | p_uint32     |
+  +--------------+--------------+
+  | p_long       | p_int32      |
+  +--------------+--------------+
+  | p_ulong      | p_uint32     |
+  +--------------+--------------+
+  | p_longlong   | p_int64      |
+  +--------------+--------------+
+  | p_ulonglong  | p_uint64     |
+  +--------------+--------------+
+
+  ``Macholib.ptypes.p_ptr`` is no longer present as it had an unclear
+  definition and isn't actually used in the codebase.
+
+
+Bug fixes:
+
+- The semantics of ``dyld.dyld_default_search`` were changed a bit,
+  it now first searches the framework path (if appropriate) and then
+  the linker path, irrespective of the value of the ``DYLD_FALLBACK*``
+  environment variables.
+
+  Previous versions would change the search order when those variables
+  was set, which is odd and doesn't correspond with the documented
+  behaviour of the system dyld.
+
+- It is once again possible to install using python2.5
+
+- The source distribution includes all files, this was broken
+  due to the switch to mercurial (which confused setuptools)
+
+macholib 1.3
+------------
+
+macholib 1.3 is a feature release.
+
+Features:
+
+- Experimental Python 3.x support
+
+  This version contains lightly tested support for Python 3.
+
+macholib 1.2.2
+--------------
+
+macholib 1.2.2 is a bugfix release.
+
+Bug fixes:
+
+- Macholib should work better with 64-bit code
+  (patch by Marc-Antoine Parent)
new file mode 100644
--- /dev/null
+++ b/python/macholib/doc/_build/html/_sources/dyld.txt
@@ -0,0 +1,159 @@
+:mod:`macholib.dyld` --- Dyld emulation
+=======================================
+
+.. module:: macholib.dyld
+   :synopsis: Emulation of functonality of the dynamic linker
+
+This module defines a number of functions that can be used
+to emulate the functionality of the dynamic linker (``dyld``)
+w.r.t. looking for library files and framworks.
+
+.. function:: dyld_image_suffix([env])
+
+   Looks up the suffix to append to shared library and
+   framework names and returns this value when found.
+   Returns ``None`` when no suffix should be appended.
+
+   The *env* argument is a dictionary, which defaults
+   to :data:`os.environ`.
+
+   See the description of ``DYLD_IMAGE_SUFFIX`` in the
+   manual page for dyld(1) for more information.
+
+.. function:: dydl_framework_path([env])
+
+   Returns a user-specified framework search path,
+   or an empty list when only the default search path
+   should be used.
+
+   The *env* argument is a dictionary, which defaults
+   to :data:`os.environ`.
+
+   See the description of ``DYLD_FRAMEWORK_PATH`` in the
+   manual page for dyld(1) for more information.
+
+.. function:: dyld_library_path([env])
+
+   Returns a user-specified library search path,
+   or an empty list when only the default search path
+   should be used.
+
+   The *env* argument is a dictionary, which defaults
+   to :data:`os.environ`.
+
+   See the description of ``DYLD_LIBRARY_PATH`` in the
+   manual page for dyld(1) for more information.
+
+.. function:: dyld_fallback_framework_path([env])
+
+   Return a user specified list of of directories where
+   to look for frameworks that aren't in their install path,
+   or an empty list when the default fallback path should
+   be  used.
+
+   The *env* argument is a dictionary, which defaults
+   to :data:`os.environ`.
+
+   See the description of ``DYLD_FALLBACK_FRAMEWORK_PATH`` in the
+   manual page for dyld(1) for more information.
+
+.. function:: dyld_fallback_library_path([env])
+
+   Return a user specified list of of directories where
+   to look for libraries that aren't in their install path,
+   or an empty list when the default fallback path should
+   be  used.
+
+   The *env* argument is a dictionary, which defaults
+   to :data:`os.environ`.
+
+   See the description of ``DYLD_FALLBACK_LIBRARY_PATH`` in the
+   manual page for dyld(1) for more information.
+
+.. function:: dyld_image_suffix_search(iterator[, env])
+
+   Yields all items in *iterator*, and prepents names
+   with the image suffix to those items when the suffix
+   is specified.
+
+   The *env* argument is a dictionary, which defaults
+   to :data:`os.environ`.
+
+.. function:: dyld_override_search(name[, env])
+
+   If *name* is a framework name yield filesystem
+   paths relative to the entries in the framework
+   search path.
+
+   Always yield the filesystem paths relative to the
+   entries in the library search path.
+
+   The *env* argument is a dictionary, which defaults
+   to :data:`os.environ`.
+
+.. function:: dyld_executable_path_search(name, executable_path)
+
+   If *name* is a path starting with ``@executable_path/`` yield
+   the path relative to the specified *executable_path*.
+
+   If *executable_path* is None nothing is yielded.
+
+.. function:: dyld_loader_search(name, loader_path)
+
+   If *name* is a path starting with ``@loader_path/`` yield
+   the path relative to the specified *loader_path*.
+
+   If *loader_path* is None nothing is yielded.
+
+   .. versionadded: 1.6
+
+.. function:: dyld_default_search(name[, env])
+
+   Yield the filesystem locations to look for a dynamic
+   library or framework using the default locations
+   used by the system dynamic linker.
+
+   This function will look in ``~/Library/Frameworks``
+   for frameworks, even though the system dynamic linker
+   doesn't.
+
+   The *env* argument is a dictionary, which defaults
+   to :data:`os.environ`.
+
+.. function:: dyld_find(name[, executable_path[, env [, loader]]])
+
+   Returns the path of the requested dynamic library,
+   raises :exc:`ValueError` when the library cannot be found.
+
+   This function searches for the library in the same
+   locations and de system dynamic linker.
+
+   The *executable_path* should be the filesystem path
+   of the executable to which the library is linked (either
+   directly or indirectly).
+
+   The *env* argument is a dictionary, which defaults
+   to :data:`os.environ`.
+
+   The *loader_path* argument is an optional filesystem path for
+   the object file (binary of shared library) that references
+   *name*.
+
+   .. versionchanged:: 1.6
+
+      Added the *loader_path* argument.
+
+.. function:: framework_find(fn[, executable_path[, env]])
+
+   Find a framework using the same semantics as the
+   system dynamic linker, but will accept looser names
+   than the system linker.
+
+   This function will return a correct result for input
+   values like:
+
+   * Python
+
+   * Python.framework
+
+   * Python.framework/Versions/Current
new file mode 100644
--- /dev/null
+++ b/python/macholib/doc/_build/html/_sources/dylib.txt
@@ -0,0 +1,33 @@
+:mod:`macholib.dylib` --- Generic dylib path manipulation
+=========================================================
+
+.. module:: macholib.dylib
+   :synopsis: Generic dylib path manipulation
+
+This module defines a function :func:`dylib_info` that can extract
+useful information from the name of a dynamic library.
+
+.. function:: dylib_info(filename)
+
+   A dylib name can take one of the following four forms:
+
+   * ``Location/Name.SomeVersion_Suffix.dylib``
+
+   * ``Location/Name.SomeVersion.dylib``
+
+   * ``Location/Name_Suffix.dylib``
+
+   * ``Location/Name.dylib``
+
+   Returns None if not found or a mapping equivalent to::
+   
+     dict(
+         location='Location',
+         name='Name.SomeVersion_Suffix.dylib',
+         shortname='Name',
+         version='SomeVersion',
+         suffix='Suffix',
+     )
+
+   .. note:: *SomeVersion* and *Suffix* are optional and my be ``None``
+      if not present.
new file mode 100644
--- /dev/null
+++ b/python/macholib/doc/_build/html/_sources/framework.txt
@@ -0,0 +1,34 @@
+:mod:`macholib.framework` --- Generic framework path manipulation
+==========================================================================
+
+.. module:: macholib.framework
+   :synopsis: Generic framework path manipulation
+
+
+This module defines a function :func:`framework_info` that can extract
+useful information from the name of a dynamic library in a framework.
+
+.. function:: framework_info(filename)
+
+   A framework name can take one of the following four forms:
+
+   * ``Location/Name.framework/Versions/SomeVersion/Name_Suffix``
+
+   * ``Location/Name.framework/Versions/SomeVersion/Name``
+
+   * ``Location/Name.framework/Name_Suffix``
+
+   * ``Location/Name.framework/Name``
+
+   Returns ``None`` if not found, or a mapping equivalent to::
+
+      dict(
+          location='Location',
+          name='Name.framework/Versions/SomeVersion/Name_Suffix',
+          shortname='Name',
+          version='SomeVersion',
+          suffix='Suffix',
+      )
+
+  .. note:: *SomeVersion* and *Suffix* are optional and may be None
+     if not present.
new file mode 100644
--- /dev/null
+++ b/python/macholib/doc/_build/html/_sources/index.txt
@@ -0,0 +1,59 @@
+Macholib - Analyze and edit Mach-O headers
+==========================================
+
+macholib can be used to analyze and edit Mach-O headers, the executable
+format used by Mac OS X.
+
+It's typically used as a dependency analysis tool, and also to rewrite dylib
+references in Mach-O headers to be ``@executable_path`` relative.
+
+Though this tool targets a platform specific file format, it is pure python
+code that is platform and endian independent.
+
+General documentation
+---------------------
+
+.. toctree::
+   :maxdepth: 1
+
+   changelog
+   license
+   scripts
+
+Reference Guide
+---------------
+
+.. toctree::
+   :maxdepth: 1
+
+   MachO
+   MachoOGraph
+   MachoOStandalone
+   SymbolTable
+   dyld
+   dylib
+   framework
+   macho_o
+   ptypes
+
+Online Resources
+----------------
+
+* `Sourcecode repository on bitbucket <http://bitbucket.org/ronaldoussoren/macholib/>`_
+
+* `The issue tracker <http://bitbucket.org/ronaldoussoren/macholib/issues>`_
+
+* `Mac OS X ABI Mach-O File Format Reference at Apple <http://developer.apple.com/library/mac/#documentation/DeveloperTools/Conceptual/MachORuntime/Reference/reference.html>`_
+
+Contributors
+------------
+
+Macholib was written by Bob Ippolito and is currently maintained by Ronald Oussoren <ronaldoussoren@mac.com>.
+
+Indices and tables
+------------------
+
+* :ref:`genindex`
+* :ref:`modindex`
+* :ref:`search`
+
new file mode 100644
--- /dev/null
+++ b/python/macholib/doc/_build/html/_sources/license.txt
@@ -0,0 +1,23 @@
+License
+=======
+
+Copyright (c) Bob Ippolito
+
+Parts are copyright (c) 2010-2014 Ronald Oussoren
+
+MIT License
+...........
+
+Permission is hereby granted, free of charge, to any person obtaining a copy of this software
+and associated documentation files (the "Software"), to deal in the Software without restriction,
+including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense,
+and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do
+so.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
+INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
+PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE
+FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
+
new file mode 100644
--- /dev/null
+++ b/python/macholib/doc/_build/html/_sources/macho_o.txt
@@ -0,0 +1,13 @@
+:mod:`macholib.mach_o` --- Low-level definitions
+================================================
+
+.. module:: macholib.mach_o
+   :synopsis: Low-level definitions of elements in a Mach-O file
+
+This module defines constants and packable structure types
+that correspond to elements of a Mach-O file.
+
+The names of classes and constants is the same as those in
+the Mach-O header files and 
+`Apple's documentation <http://developer.apple.com/library/mac/#documentation/DeveloperTools/Conceptual/MachORuntime/Reference/reference.html>`_. This document therefore
+doesn't explictly document the names in this module.
new file mode 100644
--- /dev/null
+++ b/python/macholib/doc/_build/html/_sources/ptypes.txt
@@ -0,0 +1,157 @@
+:mod:`macholib.ptypes` --- Packable types
+=========================================
+
+.. module:: macholib.ptypes
+   :synopsis: Serializable types
+
+The module :mod:`macholib.ptypes` defines types that can be serialized into
+byte arrays, both for basic types and structured types (C ``struct`` values).
+
+Utility functions
+-----------------
+
+.. function:: sizeof(value)
+
+   Returns the size in bytes of an object when packed, raises :exc:`ValueError`
+   for inappropriate values.
+
+.. function:: pypackable(name, pytype, format)
+
+   Returns a packable type that is a subclass of the Python type
+   *pytype*. The value is converted to and from the packed format using
+   the struct *format*.
+
+
+
+Packable types
+--------------
+
+
+.. class:: BasePackable
+
+   All packable types are a subclass of :class:`BasePackable`, which defines
+   the basic interface but is itself an abstract base class.
+
+   .. data:: _endian_
+
+      The byteorder of a packed value. This will be ``"<"` for 
+      little endian values and ``">"`` for big-endian ones.
+
+      .. note:: the endianness option is a public value to be
+         able to support both big- and little-endian file formats.
+
+         The name suggests that this attribute is private, this
+         is partically for historical reasons and partially to
+         avoid conflicts with field names in C structs.
+
+   .. method:: from_mmap(mmap, ptr, \**kw)
+
+      This class method constructs the value from a subview of a 
+      :class:`mmap.mmap` object. It uses bytes starting at offset *ptr* and 
+      reads just enough bytes to read the entire object.
+
+   .. method:: from_fileobj(fp, \**kw)
+
+      This class method constructs the value by reading just enough bytes
+      from a file-like object.
+
+      .. note:: The file must be opened in binary mode, that is read calls
+         should return byte-strings and not unicode-strings.
+
+   .. method:: from_str(value, \**kw)
+
+      This class method construct the value by using the struct module
+      to parse the given bytes.
+
+      .. note:: contrary to what the name suggests the argument to this
+         method is a byte-string, not a unicode-string.
+
+   .. method:: from_tuple(fp, \**kw)
+
+      This class method constructs the object from a tuple with all fields.
+
+
+   .. method:: to_str()
+
+      Returns a byte representation of the value. 
+
+      .. note:: there is no default implementation for this method
+
+   .. method:: to_fileobj(fp)
+
+      Write a byte representation of the value to the given file-like
+      object. The file should be opened in binary mode.
+
+   .. method:: to_mmap(mmap, ptr)
+
+      Write the byte representation of the value to a :class:`mmap.mmap` 
+      object, starting at offset *ptr*.
+
+
+.. class:: Structure(...)
+
+   .. data:: _fields_
+
+      This class attribute is a list that contains the fields of the 
+      structure in the right order. Every item of this list is a tuple 
+      with 2 arguments: the first element is the name of the field, and 
+      the second the packable type for the field.
+
+      Every subclass of :class:`Structure` must define *_fields_* to be
+      usefull, and the value of *_fields_* should not be changed after
+      class construction.
+
+
+Basic packables
+---------------
+
+Other than the core functionality this module defines a number of 
+:func:`pypackable` types that correspond to useful basic C types.
+
+.. class:: p_char([value])
+
+   A byte string of length 1
+
+.. class:: p_int8
+
+   An 8-bit signed integer
+
+.. class:: p_uint8
+
+   An 8-bit unsigned integer
+
+.. class:: p_int16
+
+   An 16-bit signed integer
+
+.. class:: p_uint16
+
+   An 16-bit unsigned integer
+
+.. class:: p_int32
+
+   An 32-bit signed integer
+
+.. class:: p_uint32
+
+   An 32-bit unsigned integer
+
+.. class:: p_int64
+
+   An 64-bit signed integer
+
+.. class:: p_uint64
+
+   An 64-bit unsigned integer
+
+.. class:: p_float
+
+   An floating point value of type ``float``
+
+.. class:: p_double
+
+   An floating point value of type ``double``
+
+.. note:: the module exports a number of other types with
+   names starting with ``p_``, such as ``p_int``. Those types
+   are deprecated and should not be used.
new file mode 100644
--- /dev/null
+++ b/python/macholib/doc/_build/html/_sources/scripts.txt
@@ -0,0 +1,35 @@
+Command-line tools
+==================
+
+python -m macholib find
+-----------------------
+
+Usage::
+
+        $ python -mmacholib find dir...
+
+Print the paths of all MachO binaries
+in the specified directories.
+
+python -m macholib standalone
+-----------------------------
+
+Usage::
+
+        $ python -m macholib standalone appbundle...
+
+Convert one or more application bundles into 
+standalone bundles. That is, copy all non-system
+shared libraries and frameworks used by the bundle
+into the bundle and rewrite load commands.
+
+python -mmacholib dump
+----------------------
+
+Usage::
+        
+        $ python -mmacholib dump dir...
+
+Prints information about all architectures in a 
+Mach-O file as well as all libraries it links 
+to.
new file mode 100644
index 0000000000000000000000000000000000000000..61faf8cab23993bd3e1560bff0668bd628642330
GIT binary patch
literal 673
zc${<hbhEHb6krfw_{6~Q|Nno%(3)e{?)x>&1u}A`t?OF7Z|1gRivOgXi&7IyQd1Pl
zGfOfQ60;I3a`F>X^fL3(@);C=vM_KlFfb_o=k{|A33hf2a5d61U}gjg=>RbU$Z!T`
zV~$;S{u!L|%oa}Ou;P%M!|pdDjnj3b;h|k3GY@XlOE_|<@Pcl%gyr33?3NNd>|WW=
zJs6-yGa{Q~0y4+1M^Qn#g=hDMXI(CZPJtl_hLQ>iKCaPHD{5r6mfnAxD8b&Ka9!e2
zo3rF5RTV8Es6kA~2AOf}GE&w)<#=MknJHoVY^}*Md|xE}K6*MO&RAU_^MUKk=Djk<
zR%kOtz7_w&*nF7ZXl07j{QWFYqnOeBmZYkE%BXGPn>k_et=-EwTNQa&3|-n2Wdv8b
zHEp;k&zuw#``K3Bz(Pl=|HP6aOCOluSdh&z;@DNBuI=?aMdX9TXP-tMwX(wrF-aj)
zT3dF?Wkfn@o<HRvz%2LDM*grG*qoqAFk@KJoTG4Pf~EN5lIMGF%`=cZF7rT9&uQD-
zQ{ihC8S=1kixemB-eCHDDr2L;2F}ji^K&)5VCJx)Ip@y551fKG=Y+=2VtjY2uwZIJ
z$KAv^cTJ|XI=US-5SfrLdmAG!%OMAW*@g{=uAQ3*Glm_*7+}n=PIbC6NAtQI2ghNB
ozT<^_EQSUvPi<HiAaMv7U17JDGAWcMNi@xi7M#GqV9fvn0QDf%%K!iX
new file mode 100644
--- /dev/null
+++ b/python/macholib/doc/_build/html/_static/basic.css
@@ -0,0 +1,537 @@
+/*
+ * basic.css
+ * ~~~~~~~~~
+ *
+ * Sphinx stylesheet -- basic theme.
+ *
+ * :copyright: Copyright 2007-2013 by the Sphinx team, see AUTHORS.
+ * :license: BSD, see LICENSE for details.
+ *
+ */
+
+/* -- main layout ----------------------------------------------------------- */
+
+div.clearer {
+    clear: both;
+}
+
+/* -- relbar ---------------------------------------------------------------- */
+
+div.related {
+    width: 100%;
+    font-size: 90%;
+}
+
+div.related h3 {
+    display: none;
+}
+
+div.related ul {
+    margin: 0;
+    padding: 0 0 0 10px;
+    list-style: none;
+}
+
+div.related li {
+    display: inline;
+}
+
+div.related li.right {
+    float: right;
+    margin-right: 5px;
+}
+
+/* -- sidebar --------------------------------------------------------------- */
+
+div.sphinxsidebarwrapper {
+    padding: 10px 5px 0 10px;
+}
+
+div.sphinxsidebar {
+    float: left;
+    width: 230px;
+    margin-left: -100%;
+    font-size: 90%;
+}
+
+div.sphinxsidebar ul {
+    list-style: none;
+}
+
+div.sphinxsidebar ul ul,
+div.sphinxsidebar ul.want-points {
+    margin-left: 20px;
+    list-style: square;
+}
+
+div.sphinxsidebar ul ul {
+    margin-top: 0;
+    margin-bottom: 0;
+}
+
+div.sphinxsidebar form {
+    margin-top: 10px;
+}
+
+div.sphinxsidebar input {
+    border: 1px solid #98dbcc;
+    font-family: sans-serif;
+    font-size: 1em;
+}
+
+div.sphinxsidebar #searchbox input[type="text"] {
+    width: 170px;
+}
+
+div.sphinxsidebar #searchbox input[type="submit"] {
+    width: 30px;
+}
+
+img {
+    border: 0;
+    max-width: 100%;
+}
+
+/* -- search page ----------------------------------------------------------- */
+
+ul.search {
+    margin: 10px 0 0 20px;
+    padding: 0;
+}
+
+ul.search li {
+    padding: 5px 0 5px 20px;
+    background-image: url(file.png);
+    background-repeat: no-repeat;
+    background-position: 0 7px;
+}
+
+ul.search li a {
+    font-weight: bold;
+}
+
+ul.search li div.context {
+    color: #888;
+    margin: 2px 0 0 30px;
+    text-align: left;
+}
+
+ul.keywordmatches li.goodmatch a {
+    font-weight: bold;
+}
+
+/* -- index page ------------------------------------------------------------ */
+
+table.contentstable {
+    width: 90%;
+}
+
+table.contentstable p.biglink {
+    line-height: 150%;
+}
+
+a.biglink {
+    font-size: 1.3em;
+}
+
+span.linkdescr {
+    font-style: italic;
+    padding-top: 5px;
+    font-size: 90%;
+}
+
+/* -- general index --------------------------------------------------------- */
+
+table.indextable {
+    width: 100%;
+}
+
+table.indextable td {
+    text-align: left;
+    vertical-align: top;
+}
+
+table.indextable dl, table.indextable dd {
+    margin-top: 0;
+    margin-bottom: 0;
+}
+
+table.indextable tr.pcap {
+    height: 10px;
+}
+
+table.indextable tr.cap {
+    margin-top: 10px;
+    background-color: #f2f2f2;
+}
+
+img.toggler {
+    margin-right: 3px;
+    margin-top: 3px;
+    cursor: pointer;
+}
+
+div.modindex-jumpbox {
+    border-top: 1px solid #ddd;
+    border-bottom: 1px solid #ddd;
+    margin: 1em 0 1em 0;
+    padding: 0.4em;
+}
+
+div.genindex-jumpbox {
+    border-top: 1px solid #ddd;
+    border-bottom: 1px solid #ddd;
+    margin: 1em 0 1em 0;
+    padding: 0.4em;
+}
+
+/* -- general body styles --------------------------------------------------- */
+
+a.headerlink {
+    visibility: hidden;
+}
+
+h1:hover > a.headerlink,
+h2:hover > a.headerlink,
+h3:hover > a.headerlink,
+h4:hover > a.headerlink,
+h5:hover > a.headerlink,
+h6:hover > a.headerlink,
+dt:hover > a.headerlink {
+    visibility: visible;
+}
+
+div.body p.caption {
+    text-align: inherit;
+}
+
+div.body td {
+    text-align: left;
+}
+
+.field-list ul {
+    padding-left: 1em;
+}
+
+.first {
+    margin-top: 0 !important;
+}
+
+p.rubric {
+    margin-top: 30px;
+    font-weight: bold;
+}
+
+img.align-left, .figure.align-left, object.align-left {
+    clear: left;
+    float: left;
+    margin-right: 1em;
+}
+
+img.align-right, .figure.align-right, object.align-right {
+    clear: right;
+    float: right;
+    margin-left: 1em;
+}
+
+img.align-center, .figure.align-center, object.align-center {
+  display: block;
+  margin-left: auto;
+  margin-right: auto;
+}
+
+.align-left {
+    text-align: left;
+}
+
+.align-center {
+    text-align: center;
+}
+
+.align-right {
+    text-align: right;
+}
+
+/* -- sidebars -------------------------------------------------------------- */
+
+div.sidebar {
+    margin: 0 0 0.5em 1em;
+    border: 1px solid #ddb;
+    padding: 7px 7px 0 7px;
+    background-color: #ffe;
+    width: 40%;
+    float: right;
+}
+
+p.sidebar-title {
+    font-weight: bold;
+}
+
+/* -- topics ---------------------------------------------------------------- */
+
+div.topic {
+    border: 1px solid #ccc;
+    padding: 7px 7px 0 7px;
+    margin: 10px 0 10px 0;
+}
+
+p.topic-title {
+    font-size: 1.1em;
+    font-weight: bold;
+    margin-top: 10px;
+}
+
+/* -- admonitions ----------------------------------------------------------- */
+
+div.admonition {
+    margin-top: 10px;
+    margin-bottom: 10px;
+    padding: 7px;
+}
+
+div.admonition dt {
+    font-weight: bold;
+}
+
+div.admonition dl {
+    margin-bottom: 0;
+}
+
+p.admonition-title {
+    margin: 0px 10px 5px 0px;
+    font-weight: bold;
+}
+
+div.body p.centered {
+    text-align: center;
+    margin-top: 25px;
+}
+
+/* -- tables ---------------------------------------------------------------- */
+
+table.docutils {
+    border: 0;
+    border-collapse: collapse;
+}
+
+table.docutils td, table.docutils th {
+    padding: 1px 8px 1px 5px;
+    border-top: 0;
+    border-left: 0;
+    border-right: 0;
+    border-bottom: 1px solid #aaa;
+}
+
+table.field-list td, table.field-list th {
+    border: 0 !important;
+}
+
+table.footnote td, table.footnote th {
+    border: 0 !important;
+}
+
+th {
+    text-align: left;
+    padding-right: 5px;
+}
+
+table.citation {
+    border-left: solid 1px gray;
+    margin-left: 1px;
+}
+
+table.citation td {
+    border-bottom: none;
+}
+
+/* -- other body styles ----------------------------------------------------- */
+
+ol.arabic {
+    list-style: decimal;
+}
+
+ol.loweralpha {
+    list-style: lower-alpha;
+}
+
+ol.upperalpha {
+    list-style: upper-alpha;
+}
+
+ol.lowerroman {
+    list-style: lower-roman;
+}
+
+ol.upperroman {
+    list-style: upper-roman;
+}
+
+dl {
+    margin-bottom: 15px;
+}
+
+dd p {
+    margin-top: 0px;
+}
+
+dd ul, dd table {
+    margin-bottom: 10px;
+}
+
+dd {
+    margin-top: 3px;
+    margin-bottom: 10px;
+    margin-left: 30px;
+}
+
+dt:target, .highlighted {
+    background-color: #fbe54e;
+}
+
+dl.glossary dt {
+    font-weight: bold;
+    font-size: 1.1em;
+}
+
+.field-list ul {
+    margin: 0;
+    padding-left: 1em;
+}
+
+.field-list p {
+    margin: 0;
+}
+
+.optional {
+    font-size: 1.3em;
+}
+
+.versionmodified {
+    font-style: italic;
+}
+
+.system-message {
+    background-color: #fda;
+    padding: 5px;
+    border: 3px solid red;
+}
+
+.footnote:target  {
+    background-color: #ffa;
+}
+
+.line-block {
+    display: block;
+    margin-top: 1em;
+    margin-bottom: 1em;
+}
+
+.line-block .line-block {
+    margin-top: 0;
+    margin-bottom: 0;
+    margin-left: 1.5em;
+}
+
+.guilabel, .menuselection {
+    font-family: sans-serif;
+}
+
+.accelerator {
+    text-decoration: underline;
+}
+
+.classifier {
+    font-style: oblique;
+}
+
+abbr, acronym {
+    border-bottom: dotted 1px;
+    cursor: help;
+}
+
+/* -- code displays --------------------------------------------------------- */
+
+pre {
+    overflow: auto;
+    overflow-y: hidden;  /* fixes display issues on Chrome browsers */
+}
+
+td.linenos pre {
+    padding: 5px 0px;
+    border: 0;
+    background-color: transparent;
+    color: #aaa;
+}
+
+table.highlighttable {
+    margin-left: 0.5em;
+}
+
+table.highlighttable td {
+    padding: 0 0.5em 0 0.5em;
+}
+
+tt.descname {
+    background-color: transparent;
+    font-weight: bold;
+    font-size: 1.2em;
+}
+
+tt.descclassname {
+    background-color: transparent;
+}
+
+tt.xref, a tt {
+    background-color: transparent;
+    font-weight: bold;
+}
+
+h1 tt, h2 tt, h3 tt, h4 tt, h5 tt, h6 tt {
+    background-color: transparent;
+}
+
+.viewcode-link {
+    float: right;
+}
+
+.viewcode-back {
+    float: right;
+    font-family: sans-serif;
+}
+
+div.viewcode-block:target {
+    margin: -1px -10px;
+    padding: 0 10px;
+}
+
+/* -- math display ---------------------------------------------------------- */
+
+img.math {
+    vertical-align: middle;
+}
+
+div.body div.math p {
+    text-align: center;
+}
+
+span.eqno {
+    float: right;
+}
+
+/* -- printout stylesheet --------------------------------------------------- */
+
+@media print {
+    div.document,
+    div.documentwrapper,
+    div.bodywrapper {
+        margin: 0 !important;
+        width: 100%;
+    }
+
+    div.sphinxsidebar,
+    div.related,
+    div.footer,
+    #top-link {
+        display: none;
+    }
+}
\ No newline at end of file
new file mode 100644
index 0000000000000000000000000000000000000000..551517b8c83b76f734ff791f847829a760ad1903
GIT binary patch
literal 3500
zc$@*O4O8-oP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV000V4X+uL$P-t&-
zZ*ypGa3D!TLm+T+Z)Rz1WdHzp+MQEpR8#2|J@?-9LQ9B%luK_?6$l_wLW_VDktQl3
z2@pz%A)(n7QNa;KMFbnjpojyGj)066Q7jCK3fKqaA)=0hqlk*i`{8?|Yu3E?=FR@K
z*FNX0^PRKL2fzpnmPj*EHGmAMLLL#|gU7_i;p8qrfeIvW01ybXWFd3?BLM*Temp!Y
zBESc}00DT@3kU$fO`E_l9Ebl8>Oz@Z0f2-7z;ux~O9+4z06=<<LZ$#fMgf4Gm?l#I
zpacM5%VT2W08lLeU?+d((*S^-_?deF09%wH6#<};03Z`(h(rKrI{>WDR*FRcSTFz-
zW=q650N5=6FiBTtNC2?60Km==3$g$R3;-}uh=nNt1bYBr$Ri_o0EC$U6h`t_Jn<{8
z5a%iY0C<_QJh>z}MS)ugEpZ1|S1ukX&Pf+56gFW3VVXcL!g-k)GJ!M?;PcD?0HBc-
z5#WRK{dmp}uFlRjj<yb8E$Y7p{~}^y<NoE(t8hR70O53g(f%wivl@Uq27qn;q9yJG
zXkH7Tb@z*AvJXJD0HEpGSMzZAemp!yp^&-R+2!Qq*h<7gTVcvqeg0>{U%*%WZ25jX
z{P*?XzTzZ-GF^d31o+^>%=Ap99M6&ogks$0k4OBs3;+Bb(;~!4V!2o<6ys46agIcq
zjPo+3B8fthDa9qy|77CdEc*jK-!%ZRYCZvbku9iQV*~a}ClFY4z~c7+0P?$U!PF=S
z1Au6Q;m>#f??3%Vpd|o+W=WE9003S@Bra6Svp>fO002awfhw>;8}z{#EWidF!3EsG
z3;bX<ghC|5!a@*23S@vBa$qT}f<h>U&9EIRU@z1_9W=mEXoiz;4lcq~xDGvV5BgyU
zp1~-*fe8db$Osc*A=-!mVv1NJjtCc-h4>-CNCXm#Bp}I%6j35eku^v$Qi@a{RY)E3
zJ#qp$hg?Rwkvqr$GJ^buyhkyVfwECO)C{#lxu`c9ghrwZ&}4KmnvWKso6vH!8a<3Q
zq36)6Xb;+tK10Vaz~~qUGsJ8#F2=(`u{bOVlVi)VBCHIn#u~6ztOL7=^<&SmcLWlF
zMZgI*1b0FpVIDz9SWH+>*hr`#93(Um+6gxa1B6k+CnA%mOSC4s5&6UzVlpv@SV$}*
z))J2sFA#f(L&P^E5{W}HC%KRUNwK6<(h|}}(r!{C=`5+6G)NjFlgZj-YqAG9lq?`C
z$c5yc<iq4M<QwE6@>>d>VnA`E_*3F2Qp##d8RZb=H01_mm@+|Cqnc9PsG(F5HIG_C
zt)aG3uTh7n6Et<2In9F>NlT@zqLtGcXcuVrX|L#Xx)I%#9!{6gSJKPrN9dR61N3(c
z4Tcqi$B1Vr8Jidf7-t!G7_XR2rWw<V8OKyGH!<s&=a~<gZ&g?-wkmuTk;)2{N|h#+
z8!9hUsj8-`-l_{#^Hs}KkEvc$eXd4TGgITK3DlOWRjQp(>r)$3XQ?}=hpK0&Z&W{|
zep&sA23f;Q!%st`QJ}G3<GjWo3u76xcq}1n4XcKAfi=V?vCY|hb}GA={T;iDJ*ugp
zIYTo_Ggq@x^OR;k2jiG=_?&c33Fj!Mm-Bv#-W2aC;wc-ZG)%cMWn62jmY0@Tt4OO+
zt4Hg-Hm>cbou<7-yIK2z4nfCCCtN2-XOGSWo##{8Q{ATurxr~;I`ytDs%xbip}RzP
zziy}Qn4Z2~fSycmr`~zJ=lUFdFa1>gZThG6M+{g7vkW8#+YHVaJjFF}Z#*3@$J_By
zLtVo_L#1JrVVB{Ak-5=4qt!-@Mh}c>#$4kh<88)m#-k<%CLtzEP3leVno>=<rYWX7
zOgl`+&CJcB&DNPUn>{htGUuD;o7bD)w_sX$S}eAxwzy?UvgBH(S?;#HZiQMoS*2K2
zT3xe7t(~nU*1N5{rxB;QPLocnp4Ml>u<^FZwyC!nu;thW+pe~4wtZn|Vi#w(#jeBd
zlf9FDx_yoPJqHbk*$%56S{;6Kv~m<WRyy9A&YbQ)eZ};a=`Uwk&k)bpGvl@s%PGWZ
zol~3BM`ssjxpRZ_h>M9!g3B(KJ}#RZ#@)!h<Vtk)ab4kh()FF2vzx;0sN1jZHtuQe
zhuojcG@mJ+Su=Cc!^lJ6QRUG;3!jxRYu~JXPeV_EXSL@eFJmu}SFP8ux21Qg_hIiB
zKK4FxpW{B`JU8Al-dSJFH^8^Zx64n%Z=PR;-$Q>R|78Dq|Iq-afF%KE1Brn_fm;Im
z_<DRHzm7jT+hz8$+3i7$pt(U6L63s1g5|-jA!x|#kgXy2=a|ls&S?&XP=4sv&<A1W
zVT;3l3@3$$g;$0@j&O)r8qqPAHFwe6Lv!Cm`b3sQ-kWDJPdTqGN;N7zsxE3g+Bdp1
zx<AG)W?9VDSe;l&Y)c$DE-J1zZfw5a{O$9H;+^6P<9ipFFUVbRd7;k2^o6GusV)*M
zI+j38h)y_^@IeqNs1}SR@)LI@jtY6g9l~cKFVQy9h}c71DjrVqNGeTwlI)SZHF+e(
zGo>u$xr8UFki1L{Ox>G0o)(&RAZ;=|I=wN2l97;cLaHH6leTB-XXa*h%dBOEvi`+x
zi?=Txl?TadvyiL>SuF~-LZ;|cS}4~l2eM~nS7yJ>iOM;atDY;(?aZ^v+mJV$@1Ote
z62cPUlD4IWOIIx&SmwQ~YB{nzae3Pc;}r!fhE@iwJh+OsDs9zItL;~pu715HdQEGA
zUct(O!L<Qv>kCy1<%NCg+}G`0PgpNm-?d@-hMgNe6^V+j6x$b<6@S<$+<4_1hi}Ti
zncS4LsjI}fWY1>OX6feMEuLErma3QLmkw?X+1j)X-&VBk_4Y;EFPF_I+q;9dL%E~B
zJh;4Nr^(LEJ3myURP<E(R5tF?-L+xY_-@he8+*L=H0;&eTfF!EKFPk@RRL8^)n?UY
z`$_w=_dl+Qs_FQa`)ysVPHl1R#{<#>{Rblsw%57T)g973R8o)DE9*xN#~;4_o$q%o
z4K@u`jhx2fBXC4{<mvYb-}fF3I@)%Od#vFH(;s#nXB{tULYnfLMw?Tb`&(jLx=+kL
z(bnqTdi+P*9}k=~JXv{4^Hj-c+UbJRlV|eJjGdL8eSR+a++f?HwtMGe&fjVeZ|}Mg
zbm7uP|BL54ygSZZ^0;*JvfJeoSGZT2uR33C>U8Qn{*%*B$Ge=nny$HAYq{=vy|sI0
z_vss+H_qMky?OB#|JK!>IX&II^LlUh#rO5!7TtbwC;iULyV-Xq?ybB}ykGP{?LpZ?
z-G|jbTmIbG@7#ZCz;~eY(cDM(28Dyq{*m>M4?_iynUBkc4TkHUI6gT!;y-fz>HMcd
z&t%Ugo)`Y2{>!cx7B7DI)$7;J(U{Spm-3gBzioV_{p!H$8L!*M!p0uH$#^p{Ui4P`
z?ZJ24cOCDe-w#jZd?0@)|7iKK^;6KN`;!@ylm7$*nDhK&GcDTy000JJOGiWi{{a60
z|De66lK=n!32;bRa{vGf6951U69E94oEQKA00(qQO+^RV2niQ93PPz|JOBU!-bqA3
zR5;6pl1pe^WfX<Kz5jFWy@@exLEFUIU=wPB&uCjMh(#zyMT!)`VL_Y}A)sPOtDxY>
zkSdl!omi0~*ntl;2q{jA^;J@WT8O!=A(Gck8fa>hn{#u{`Ty<UmZ;$48*SK&#a@do
zTxVzB&kXn91MHApZ+y|w(yUuEv9>g)!KXI6l>4dj==iVKK6+%4zaRizy(5eryC3d2
z+5Y_D$4}k5v2=Siw{=O)SWY2HJwR3xX1*M*9G^XQ*TCNXF$Vj(kbMJXK0DaS_Sa^1
z?CEa!cFWDhcwxy%a?i@DN|G6-M#uuWU>lss@I>;$xmQ|`u3f;MQ|<i+pZFzHDa=;|
z5kbrooMO2V416$4J>pYuHxxvMeq4TW;>|7Z2*AsqT=`-1O~nTm6O&pNEK?^cf9CX=
zkq5|qAoE7<gSlXrhR#lIk9r2?Ha9f5_RCesJZPj+QjqAngNL9-76eTdm0)Hf-qX^#
zt+gfcDw~#4X?AfC7ds+_xacq^Xn+ub1&{bp&zq_g3|6vGQel0Rq`s777Og8PQ4EEm
z;v$G0bpwMeQ#1ky7!XWxYTk0mqQ&3+LheIVB)Tz<4W}Y;<cNz7mAU~dz8=MasVArz
z7Oq~c)n;}2;^@@))ar~YI7FQ|=d2Jzp%DsAP-+UqO^!GgM4hRsxme`Vbn^Yk>un3V
z^yy=@%6zqN^x`#qW+;e7j>th{6GV}sf*}g7{(R#T)yg-AZh0C&U;WA`AL$qz8()5^
zGFi2`g&L7!c?x+A2oOaG0c*Bg&YZt8cJ{jq_W{uTdA-<;`@iP$$=$H?gYIYc_q^*$
z#k(Key`d40R3?+GmgK8hHJcwiQ~r4By@w9*PuzR>x3#(F?YW_W5pPc(t(@-Y{psOt
zz2!UE_5S)bLF)<rmD^sL?0WXY#py@is+^|tc+=mv&+)&s9XQ{z^}x9<ibo0nY&!9u
a`ab|E?o=hKA+1LM0000<MNUMnLSTYql%5L!
new file mode 100644
index 0000000000000000000000000000000000000000..09b54be46da3f0d4a5061da289dc91d8a2cdbc9c
GIT binary patch
literal 3578
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
A2LJ#7
new file mode 100644
index 0000000000000000000000000000000000000000..92feb52b8824c6b0f59b658b1196c61de9162a95
GIT binary patch
literal 3445
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
Xn!ZpXD%P(H00000NkvXXu0mjf<Culu
new file mode 100644
--- /dev/null
+++ b/python/macholib/doc/_build/html/_static/doctools.js
@@ -0,0 +1,238 @@
+/*
+ * doctools.js
+ * ~~~~~~~~~~~
+ *
+ * Sphinx JavaScript utilities for all documentation.
+ *
+ * :copyright: Copyright 2007-2013 by the Sphinx team, see AUTHORS.
+ * :license: BSD, see LICENSE for details.
+ *
+ */
+
+/**
+ * select a different prefix for underscore
+ */
+$u = _.noConflict();
+
+/**
+ * make the code below compatible with browsers without
+ * an installed firebug like debugger
+if (!window.console || !console.firebug) {
+  var names = ["log", "debug", "info", "warn", "error", "assert", "dir",
+    "dirxml", "group", "groupEnd", "time", "timeEnd", "count", "trace",
+    "profile", "profileEnd"];
+  window.console = {};
+  for (var i = 0; i < names.length; ++i)
+    window.console[names[i]] = function() {};
+}
+ */
+
+/**
+ * small helper function to urldecode strings
+ */
+jQuery.urldecode = function(x) {
+  return decodeURIComponent(x).replace(/\+/g, ' ');
+};
+
+/**
+ * small helper function to urlencode strings
+ */
+jQuery.urlencode = encodeURIComponent;
+
+/**
+ * This function returns the parsed url parameters of the
+ * current request. Multiple values per key are supported,
+ * it will always return arrays of strings for the value parts.
+ */
+jQuery.getQueryParameters = function(s) {
+  if (typeof s == 'undefined')
+    s = document.location.search;
+  var parts = s.substr(s.indexOf('?') + 1).split('&');
+  var result = {};
+  for (var i = 0; i < parts.length; i++) {
+    var tmp = parts[i].split('=', 2);
+    var key = jQuery.urldecode(tmp[0]);
+    var value = jQuery.urldecode(tmp[1]);
+    if (key in result)
+      result[key].push(value);
+    else
+      result[key] = [value];
+  }
+  return result;
+};
+
+/**
+ * highlight a given string on a jquery object by wrapping it in
+ * span elements with the given class name.
+ */
+jQuery.fn.highlightText = function(text, className) {
+  function highlight(node) {
+    if (node.nodeType == 3) {
+      var val = node.nodeValue;
+      var pos = val.toLowerCase().indexOf(text);
+      if (pos >= 0 && !jQuery(node.parentNode).hasClass(className)) {
+        var span = document.createElement("span");
+        span.className = className;
+        span.appendChild(document.createTextNode(val.substr(pos, text.length)));
+        node.parentNode.insertBefore(span, node.parentNode.insertBefore(
+          document.createTextNode(val.substr(pos + text.length)),
+          node.nextSibling));
+        node.nodeValue = val.substr(0, pos);
+      }
+    }
+    else if (!jQuery(node).is("button, select, textarea")) {
+      jQuery.each(node.childNodes, function() {
+        highlight(this);
+      });
+    }
+  }
+  return this.each(function() {
+    highlight(this);
+  });
+};
+
+/**
+ * Small JavaScript module for the documentation.
+ */
+var Documentation = {
+
+  init : function() {
+    this.fixFirefoxAnchorBug();
+    this.highlightSearchWords();
+    this.initIndexTable();
+  },
+
+  /**
+   * i18n support
+   */
+  TRANSLATIONS : {},
+  PLURAL_EXPR : function(n) { return n == 1 ? 0 : 1; },
+  LOCALE : 'unknown',
+
+  // gettext and ngettext don't access this so that the functions
+  // can safely bound to a different name (_ = Documentation.gettext)
+  gettext : function(string) {
+    var translated = Documentation.TRANSLATIONS[string];
+    if (typeof translated == 'undefined')
+      return string;
+    return (typeof translated == 'string') ? translated : translated[0];
+  },
+
+  ngettext : function(singular, plural, n) {
+    var translated = Documentation.TRANSLATIONS[singular];
+    if (typeof translated == 'undefined')
+      return (n == 1) ? singular : plural;
+    return translated[Documentation.PLURALEXPR(n)];
+  },
+
+  addTranslations : function(catalog) {
+    for (var key in catalog.messages)
+      this.TRANSLATIONS[key] = catalog.messages[key];
+    this.PLURAL_EXPR = new Function('n', 'return +(' + catalog.plural_expr + ')');
+    this.LOCALE = catalog.locale;
+  },
+
+  /**
+   * add context elements like header anchor links
+   */
+  addContextElements : function() {
+    $('div[id] > :header:first').each(function() {
+      $('<a class="headerlink">\u00B6</a>').
+      attr('href', '#' + this.id).
+      attr('title', _('Permalink to this headline')).
+      appendTo(this);
+    });
+    $('dt[id]').each(function() {
+      $('<a class="headerlink">\u00B6</a>').
+      attr('href', '#' + this.id).
+      attr('title', _('Permalink to this definition')).
+      appendTo(this);
+    });
+  },
+
+  /**
+   * workaround a firefox stupidity
+   */
+  fixFirefoxAnchorBug : function() {
+    if (document.location.hash && $.browser.mozilla)
+      window.setTimeout(function() {
+        document.location.href += '';
+      }, 10);
+  },
+
+  /**
+   * highlight the search words provided in the url in the text
+   */
+  highlightSearchWords : function() {
+    var params = $.getQueryParameters();
+    var terms = (params.highlight) ? params.highlight[0].split(/\s+/) : [];
+    if (terms.length) {
+      var body = $('div.body');
+      if (!body.length) {
+        body = $('body');
+      }
+      window.setTimeout(function() {
+        $.each(terms, function() {
+          body.highlightText(this.toLowerCase(), 'highlighted');
+        });
+      }, 10);
+      $('<p class="highlight-link"><a href="javascript:Documentation.' +
+        'hideSearchWords()">' + _('Hide Search Matches') + '</a></p>')
+          .appendTo($('#searchbox'));
+    }
+  },
+
+  /**
+   * init the domain index toggle buttons
+   */
+  initIndexTable : function() {
+    var togglers = $('img.toggler').click(function() {
+      var src = $(this).attr('src');
+      var idnum = $(this).attr('id').substr(7);
+      $('tr.cg-' + idnum).toggle();
+      if (src.substr(-9) == 'minus.png')
+        $(this).attr('src', src.substr(0, src.length-9) + 'plus.png');
+      else
+        $(this).attr('src', src.substr(0, src.length-8) + 'minus.png');
+    }).css('display', '');
+    if (DOCUMENTATION_OPTIONS.COLLAPSE_INDEX) {
+        togglers.click();
+    }
+  },
+
+  /**
+   * helper function to hide the search marks again
+   */
+  hideSearchWords : function() {
+    $('#searchbox .highlight-link').fadeOut(300);
+    $('span.highlighted').removeClass('highlighted');
+  },
+
+  /**
+   * make the url absolute
+   */
+  makeURL : function(relativeURL) {
+    return DOCUMENTATION_OPTIONS.URL_ROOT + '/' + relativeURL;
+  },
+
+  /**
+   * get the current relative url
+   */
+  getCurrentURL : function() {
+    var path = document.location.pathname;
+    var parts = path.split(/\//);
+    $.each(DOCUMENTATION_OPTIONS.URL_ROOT.split(/\//), function() {
+      if (this == '..')
+        parts.pop();
+    });
+    var url = parts.join('/');
+    return path.substring(url.lastIndexOf('/') + 1, path.length - 1);
+  }
+};
+
+// quick alias for translations
+_ = Documentation.gettext;
+
+$(document).ready(function() {
+  Documentation.init();
+});
new file mode 100644
index 0000000000000000000000000000000000000000..6f7ad782782e4f8e39b0c6e15c7344700cdd2527
GIT binary patch
literal 368
zc%17D@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|*pj^6T^PXN
zr}OT5AjMhW5m^k>ejS7voit`w00r4gJbhi+Z?SVR=!%sIxhVsMK6tt~hFF|Fdr8rs
z*-?P?!TVcYIttp_4huY`c*=xj79}0t?-2gc+-;JAhu@=(62FueG?^^qvp8e6)8x8Y
z$j3>(Wo7sFm~Y<wYR>O(E^~|bw<pg1T+#o?uq~AHU15{8&9aX3ysqp!4(X<8KH8O~
zdcU9}-=xCr0lT?{d#l|u%|{Y!y3L&PxE3CAjm$MsHII}H$=2OBEpS`nG$p@q$9&z&
zw$#E)5BKTF%w^Ji#C`cv<mHRMwiJ}~U66XZHzq^+vq<5Vb8mBJ6kn<8UG~O3_K07j
z$j8R^ONp)RMc<y^-?pMSF6S{%Sw_q|qnoN99^HQ|-e=&N8pKj|0~A)Cu6{1-oD!M<
D#kP)L
new file mode 100644
index 0000000000000000000000000000000000000000..3003a88770de3977d47a2ba69893436a2860f9e7
GIT binary patch
literal 363
zc%17D@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|*pj^6T^PXN
zr}OT5AjMhW5m^k>ejS7voit`w00r4gJbhi+Z?Q9qD{&ls8(Iw%dhO}r7-Dhy?4^Z%
z&W-}C7e3$e(oxXXc33deM8b}teZ?dF3!#75CM{v=kJD+ZV+om{c7>7O*f%aN?smXY
zU$dJxcNV`t^G<8&m$#ikUi;e<HB<Mvf0Q_^)yzKU0bjr1$DIpbFof?oYNNDnwc97&
z_8)G&>31Hpn_IZI+KCAk@-(*{WbyZ0Q800Jr&aOfuZ~x<KAO7UY^!vcv#vQ#yRt3R
z>SaN^s{3*Wmzu;`bFa#-^`E@BxaF9}`^tsBI!cdLoPC=+qxeciuhsX(dPyKv3Dac5
yW<0$)zy9{7DVy#blYDbw$DPzo-VcuMKdvwI%3ZN(!Awa|FnPNAxvX<aXaWGk%a7;)
new file mode 100644
index 0000000000000000000000000000000000000000..d18082e397e7e54f20721af768c4c2983258f1b4
GIT binary patch
literal 392
zc%17D@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkE)4%caKYZ?lYt_f1s;*b
z3=G`DAk4@xYmNj^kiEpy*OmP$Hy<xMqvo~{83qPMQBN1g5R21mCvNmQ;vmqr-?K<V
zU4kQ;TS-l(;>OL$D9)yc9|lc|nKf<9@eUiWd>3GuTC!a5vdfWYEazjncPj5ZQX%+1
zt8B*4=d)!cdDz4wr^#OMYfqGz$1LDFF>|#>*O?<HXR=hzTfCLc!DZQEwT&GKx6RhQ
zo))l-Eh>AGil(WEs?wLLy{Gj2J_@opDm%`dlax3yA*@*N$G&*ukFv>P8+2CBWO(qz
zD0k1@kN>hhb1_6`&wrCswzINE(evt-5C1B^STi2@P<G<wTm_|``|B7th)+*kX+Pib
z*M}qKJqcfCd_2yP9QQKsOSb)vO-|{xyF)I_-07lx@Zvo#rJ$WIhTj)AKCk@a+86Xn
ktMBn$GheTj#{azILsys7Te#I72ZkAgr>mdKI;Vst0PQB6!2kdN
new file mode 100644
--- /dev/null
+++ b/python/macholib/doc/_build/html/_static/jquery.js
@@ -0,0 +1,2 @@
+/*! jQuery v1.8.3 jquery.com | jquery.org/license */
+(function(e,t){function _(e){var t=M[e]={};return v.each(e.split(y),function(e,n){t[n]=!0}),t}function H(e,n,r){if(r===t&&e.nodeType===1){var i="data-"+n.replace(P,"-$1").toLowerCase();r=e.getAttribute(i);if(typeof r=="string"){try{r=r==="true"?!0:r==="false"?!1:r==="null"?null:+r+""===r?+r:D.test(r)?v.parseJSON(r):r}catch(s){}v.data(e,n,r)}else r=t}return r}function B(e){var t;for(t in e){if(t==="data"&&v.isEmptyObject(e[t]))continue;if(t!=="toJSON")return!1}return!0}function et(){return!1}function tt(){return!0}function ut(e){return!e||!e.parentNode||e.parentNode.nodeType===11}function at(e,t){do e=e[t];while(e&&e.nodeType!==1);return e}function ft(e,t,n){t=t||0;if(v.isFunction(t))return v.grep(e,function(e,r){var i=!!t.call(e,r,e);return i===n});if(t.nodeType)return v.grep(e,function(e,r){return e===t===n});if(typeof t=="string"){var r=v.grep(e,function(e){return e.nodeType===1});if(it.test(t))return v.filter(t,r,!n);t=v.filter(t,r)}return v.grep(e,function(e,r){return v.inArray(e,t)>=0===n})}function lt(e){var t=ct.split("|"),n=e.createDocumentFragment();if(n.createElement)while(t.length)n.createElement(t.pop());return n}function Lt(e,t){return e.getElementsByTagName(t)[0]||e.appendChild(e.ownerDocument.createElement(t))}function At(e,t){if(t.nodeType!==1||!v.hasData(e))return;var n,r,i,s=v._data(e),o=v._data(t,s),u=s.events;if(u){delete o.handle,o.events={};for(n in u)for(r=0,i=u[n].length;r<i;r++)v.event.add(t,n,u[n][r])}o.data&&(o.data=v.extend({},o.data))}function Ot(e,t){var n;if(t.nodeType!==1)return;t.clearAttributes&&t.clearAttributes(),t.mergeAttributes&&t.mergeAttributes(e),n=t.nodeName.toLowerCase(),n==="object"?(t.parentNode&&(t.outerHTML=e.outerHTML),v.support.html5Clone&&e.innerHTML&&!v.trim(t.innerHTML)&&(t.innerHTML=e.innerHTML)):n==="input"&&Et.test(e.type)?(t.defaultChecked=t.checked=e.checked,t.value!==e.value&&(t.value=e.value)):n==="option"?t.selected=e.defaultSelected:n==="input"||n==="textarea"?t.defaultValue=e.defaultValue:n==="script"&&t.text!==e.text&&(t.text=e.text),t.removeAttribute(v.expando)}function Mt(e){return typeof e.getElementsByTagName!="undefined"?e.getElementsByTagName("*"):typeof e.querySelectorAll!="undefined"?e.querySelectorAll("*"):[]}function _t(e){Et.test(e.type)&&(e.defaultChecked=e.checked)}function Qt(e,t){if(t in e)return t;var n=t.charAt(0).toUpperCase()+t.slice(1),r=t,i=Jt.length;while(i--){t=Jt[i]+n;if(t in e)return t}return r}function Gt(e,t){return e=t||e,v.css(e,"display")==="none"||!v.contains(e.ownerDocument,e)}function Yt(e,t){var n,r,i=[],s=0,o=e.length;for(;s<o;s++){n=e[s];if(!n.style)continue;i[s]=v._data(n,"olddisplay"),t?(!i[s]&&n.style.display==="none"&&(n.style.display=""),n.style.display===""&&Gt(n)&&(i[s]=v._data(n,"olddisplay",nn(n.nodeName)))):(r=Dt(n,"display"),!i[s]&&r!=="none"&&v._data(n,"olddisplay",r))}for(s=0;s<o;s++){n=e[s];if(!n.style)continue;if(!t||n.style.display==="none"||n.style.display==="")n.style.display=t?i[s]||"":"none"}return e}function Zt(e,t,n){var r=Rt.exec(t);return r?Math.max(0,r[1]-(n||0))+(r[2]||"px"):t}function en(e,t,n,r){var i=n===(r?"border":"content")?4:t==="width"?1:0,s=0;for(;i<4;i+=2)n==="margin"&&(s+=v.css(e,n+$t[i],!0)),r?(n==="content"&&(s-=parseFloat(Dt(e,"padding"+$t[i]))||0),n!=="margin"&&(s-=parseFloat(Dt(e,"border"+$t[i]+"Width"))||0)):(s+=parseFloat(Dt(e,"padding"+$t[i]))||0,n!=="padding"&&(s+=parseFloat(Dt(e,"border"+$t[i]+"Width"))||0));return s}function tn(e,t,n){var r=t==="width"?e.offsetWidth:e.offsetHeight,i=!0,s=v.support.boxSizing&&v.css(e,"boxSizing")==="border-box";if(r<=0||r==null){r=Dt(e,t);if(r<0||r==null)r=e.style[t];if(Ut.test(r))return r;i=s&&(v.support.boxSizingReliable||r===e.style[t]),r=parseFloat(r)||0}return r+en(e,t,n||(s?"border":"content"),i)+"px"}function nn(e){if(Wt[e])return Wt[e];var t=v("<"+e+">").appendTo(i.body),n=t.css("display");t.remove();if(n==="none"||n===""){Pt=i.body.appendChild(Pt||v.extend(i.createElement("iframe"),{frameBorder:0,width:0,height:0}));if(!Ht||!Pt.createElement)Ht=(Pt.contentWindow||Pt.contentDocument).document,Ht.write("<!doctype html><html><body>"),Ht.close();t=Ht.body.appendChild(Ht.createElement(e)),n=Dt(t,"display"),i.body.removeChild(Pt)}return Wt[e]=n,n}function fn(e,t,n,r){var i;if(v.isArray(t))v.each(t,function(t,i){n||sn.test(e)?r(e,i):fn(e+"["+(typeof i=="object"?t:"")+"]",i,n,r)});else if(!n&&v.type(t)==="object")for(i in t)fn(e+"["+i+"]",t[i],n,r);else r(e,t)}function Cn(e){return function(t,n){typeof t!="string"&&(n=t,t="*");var r,i,s,o=t.toLowerCase().split(y),u=0,a=o.length;if(v.isFunction(n))for(;u<a;u++)r=o[u],s=/^\+/.test(r),s&&(r=r.substr(1)||"*"),i=e[r]=e[r]||[],i[s?"unshift":"push"](n)}}function kn(e,n,r,i,s,o){s=s||n.dataTypes[0],o=o||{},o[s]=!0;var u,a=e[s],f=0,l=a?a.length:0,c=e===Sn;for(;f<l&&(c||!u);f++)u=a[f](n,r,i),typeof u=="string"&&(!c||o[u]?u=t:(n.dataTypes.unshift(u),u=kn(e,n,r,i,u,o)));return(c||!u)&&!o["*"]&&(u=kn(e,n,r,i,"*",o)),u}function Ln(e,n){var r,i,s=v.ajaxSettings.flatOptions||{};for(r in n)n[r]!==t&&((s[r]?e:i||(i={}))[r]=n[r]);i&&v.extend(!0,e,i)}function An(e,n,r){var i,s,o,u,a=e.contents,f=e.dataTypes,l=e.responseFields;for(s in l)s in r&&(n[l[s]]=r[s]);while(f[0]==="*")f.shift(),i===t&&(i=e.mimeType||n.getResponseHeader("content-type"));if(i)for(s in a)if(a[s]&&a[s].test(i)){f.unshift(s);break}if(f[0]in r)o=f[0];else{for(s in r){if(!f[0]||e.converters[s+" "+f[0]]){o=s;break}u||(u=s)}o=o||u}if(o)return o!==f[0]&&f.unshift(o),r[o]}function On(e,t){var n,r,i,s,o=e.dataTypes.slice(),u=o[0],a={},f=0;e.dataFilter&&(t=e.dataFilter(t,e.dataType));if(o[1])for(n in e.converters)a[n.toLowerCase()]=e.converters[n];for(;i=o[++f];)if(i!=="*"){if(u!=="*"&&u!==i){n=a[u+" "+i]||a["* "+i];if(!n)for(r in a){s=r.split(" ");if(s[1]===i){n=a[u+" "+s[0]]||a["* "+s[0]];if(n){n===!0?n=a[r]:a[r]!==!0&&(i=s[0],o.splice(f--,0,i));break}}}if(n!==!0)if(n&&e["throws"])t=n(t);else try{t=n(t)}catch(l){return{state:"parsererror",error:n?l:"No conversion from "+u+" to "+i}}}u=i}return{state:"success",data:t}}function Fn(){try{return new e.XMLHttpRequest}catch(t){}}function In(){try{return new e.ActiveXObject("Microsoft.XMLHTTP")}catch(t){}}function $n(){return setTimeout(function(){qn=t},0),qn=v.now()}function Jn(e,t){v.each(t,function(t,n){var r=(Vn[t]||[]).concat(Vn["*"]),i=0,s=r.length;for(;i<s;i++)if(r[i].call(e,t,n))return})}function Kn(e,t,n){var r,i=0,s=0,o=Xn.length,u=v.Deferred().always(function(){delete a.elem}),a=function(){var t=qn||$n(),n=Math.max(0,f.startTime+f.duration-t),r=n/f.duration||0,i=1-r,s=0,o=f.tweens.length;for(;s<o;s++)f.tweens[s].run(i);return u.notifyWith(e,[f,i,n]),i<1&&o?n:(u.resolveWith(e,[f]),!1)},f=u.promise({elem:e,props:v.extend({},t),opts:v.extend(!0,{specialEasing:{}},n),originalProperties:t,originalOptions:n,startTime:qn||$n(),duration:n.duration,tweens:[],createTween:function(t,n,r){var i=v.Tween(e,f.opts,t,n,f.opts.specialEasing[t]||f.opts.easing);return f.tweens.push(i),i},stop:function(t){var n=0,r=t?f.tweens.length:0;for(;n<r;n++)f.tweens[n].run(1);return t?u.resolveWith(e,[f,t]):u.rejectWith(e,[f,t]),this}}),l=f.props;Qn(l,f.opts.specialEasing);for(;i<o;i++){r=Xn[i].call(f,e,l,f.opts);if(r)return r}return Jn(f,l),v.isFunction(f.opts.start)&&f.opts.start.call(e,f),v.fx.timer(v.extend(a,{anim:f,queue:f.opts.queue,elem:e})),f.progress(f.opts.progress).done(f.opts.done,f.opts.complete).fail(f.opts.fail).always(f.opts.always)}function Qn(e,t){var n,r,i,s,o;for(n in e){r=v.camelCase(n),i=t[r],s=e[n],v.isArray(s)&&(i=s[1],s=e[n]=s[0]),n!==r&&(e[r]=s,delete e[n]),o=v.cssHooks[r];if(o&&"expand"in o){s=o.expand(s),delete e[r];for(n in s)n in e||(e[n]=s[n],t[n]=i)}else t[r]=i}}function Gn(e,t,n){var r,i,s,o,u,a,f,l,c,h=this,p=e.style,d={},m=[],g=e.nodeType&&Gt(e);n.queue||(l=v._queueHooks(e,"fx"),l.unqueued==null&&(l.unqueued=0,c=l.empty.fire,l.empty.fire=function(){l.unqueued||c()}),l.unqueued++,h.always(function(){h.always(function(){l.unqueued--,v.queue(e,"fx").length||l.empty.fire()})})),e.nodeType===1&&("height"in t||"width"in t)&&(n.overflow=[p.overflow,p.overflowX,p.overflowY],v.css(e,"display")==="inline"&&v.css(e,"float")==="none"&&(!v.support.inlineBlockNeedsLayout||nn(e.nodeName)==="inline"?p.display="inline-block":p.zoom=1)),n.overflow&&(p.overflow="hidden",v.support.shrinkWrapBlocks||h.done(function(){p.overflow=n.overflow[0],p.overflowX=n.overflow[1],p.overflowY=n.overflow[2]}));for(r in t){s=t[r];if(Un.exec(s)){delete t[r],a=a||s==="toggle";if(s===(g?"hide":"show"))continue;m.push(r)}}o=m.length;if(o){u=v._data(e,"fxshow")||v._data(e,"fxshow",{}),"hidden"in u&&(g=u.hidden),a&&(u.hidden=!g),g?v(e).show():h.done(function(){v(e).hide()}),h.done(function(){var t;v.removeData(e,"fxshow",!0);for(t in d)v.style(e,t,d[t])});for(r=0;r<o;r++)i=m[r],f=h.createTween(i,g?u[i]:0),d[i]=u[i]||v.style(e,i),i in u||(u[i]=f.start,g&&(f.end=f.start,f.start=i==="width"||i==="height"?1:0))}}function Yn(e,t,n,r,i){return new Yn.prototype.init(e,t,n,r,i)}function Zn(e,t){var n,r={height:e},i=0;t=t?1:0;for(;i<4;i+=2-t)n=$t[i],r["margin"+n]=r["padding"+n]=e;return t&&(r.opacity=r.width=e),r}function tr(e){return v.isWindow(e)?e:e.nodeType===9?e.defaultView||e.parentWindow:!1}var n,r,i=e.document,s=e.location,o=e.navigator,u=e.jQuery,a=e.$,f=Array.prototype.push,l=Array.prototype.slice,c=Array.prototype.indexOf,h=Object.prototype.toString,p=Object.prototype.hasOwnProperty,d=String.prototype.trim,v=function(e,t){return new v.fn.init(e,t,n)},m=/[\-+]?(?:\d*\.|)\d+(?:[eE][\-+]?\d+|)/.source,g=/\S/,y=/\s+/,b=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,w=/^(?:[^#<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/,E=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,S=/^[\],:{}\s]*$/,x=/(?:^|:|,)(?:\s*\[)+/g,T=/\\(?:["\\\/bfnrt]|u[\da-fA-F]{4})/g,N=/"[^"\\\r\n]*"|true|false|null|-?(?:\d\d*\.|)\d+(?:[eE][\-+]?\d+|)/g,C=/^-ms-/,k=/-([\da-z])/gi,L=function(e,t){return(t+"").toUpperCase()},A=function(){i.addEventListener?(i.removeEventListener("DOMContentLoaded",A,!1),v.ready()):i.readyState==="complete"&&(i.detachEvent("onreadystatechange",A),v.ready())},O={};v.fn=v.prototype={constructor:v,init:function(e,n,r){var s,o,u,a;if(!e)return this;if(e.nodeType)return this.context=this[0]=e,this.length=1,this;if(typeof e=="string"){e.charAt(0)==="<"&&e.charAt(e.length-1)===">"&&e.length>=3?s=[null,e,null]:s=w.exec(e);if(s&&(s[1]||!n)){if(s[1])return n=n instanceof v?n[0]:n,a=n&&n.nodeType?n.ownerDocument||n:i,e=v.parseHTML(s[1],a,!0),E.test(s[1])&&v.isPlainObject(n)&&this.attr.call(e,n,!0),v.merge(this,e);o=i.getElementById(s[2]);if(o&&o.parentNode){if(o.id!==s[2])return r.find(e);this.length=1,this[0]=o}return this.context=i,this.selector=e,this}return!n||n.jquery?(n||r).find(e):this.constructor(n).find(e)}return v.isFunction(e)?r.ready(e):(e.selector!==t&&(this.selector=e.selector,this.context=e.context),v.makeArray(e,this))},selector:"",jquery:"1.8.3",length:0,size:function(){return this.length},toArray:function(){return l.call(this)},get:function(e){return e==null?this.toArray():e<0?this[this.length+e]:this[e]},pushStack:function(e,t,n){var r=v.merge(this.constructor(),e);return r.prevObject=this,r.context=this.context,t==="find"?r.selector=this.selector+(this.selector?" ":"")+n:t&&(r.selector=this.selector+"."+t+"("+n+")"),r},each:function(e,t){return v.each(this,e,t)},ready:function(e){return v.ready.promise().done(e),this},eq:function(e){return e=+e,e===-1?this.slice(e):this.slice(e,e+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(l.apply(this,arguments),"slice",l.call(arguments).join(","))},map:function(e){return this.pushStack(v.map(this,function(t,n){return e.call(t,n,t)}))},end:function(){return this.prevObject||this.constructor(null)},push:f,sort:[].sort,splice:[].splice},v.fn.init.prototype=v.fn,v.extend=v.fn.extend=function(){var e,n,r,i,s,o,u=arguments[0]||{},a=1,f=arguments.length,l=!1;typeof u=="boolean"&&(l=u,u=arguments[1]||{},a=2),typeof u!="object"&&!v.isFunction(u)&&(u={}),f===a&&(u=this,--a);for(;a<f;a++)if((e=arguments[a])!=null)for(n in e){r=u[n],i=e[n];if(u===i)continue;l&&i&&(v.isPlainObject(i)||(s=v.isArray(i)))?(s?(s=!1,o=r&&v.isArray(r)?r:[]):o=r&&v.isPlainObject(r)?r:{},u[n]=v.extend(l,o,i)):i!==t&&(u[n]=i)}return u},v.extend({noConflict:function(t){return e.$===v&&(e.$=a),t&&e.jQuery===v&&(e.jQuery=u),v},isReady:!1,readyWait:1,holdReady:function(e){e?v.readyWait++:v.ready(!0)},ready:function(e){if(e===!0?--v.readyWait:v.isReady)return;if(!i.body)return setTimeout(v.ready,1);v.isReady=!0;if(e!==!0&&--v.readyWait>0)return;r.resolveWith(i,[v]),v.fn.trigger&&v(i).trigger("ready").off("ready")},isFunction:function(e){return v.type(e)==="function"},isArray:Array.isArray||function(e){return v.type(e)==="array"},isWindow:function(e){return e!=null&&e==e.window},isNumeric:function(e){return!isNaN(parseFloat(e))&&isFinite(e)},type:function(e){return e==null?String(e):O[h.call(e)]||"object"},isPlainObject:function(e){if(!e||v.type(e)!=="object"||e.nodeType||v.isWindow(e))return!1;try{if(e.constructor&&!p.call(e,"constructor")&&!p.call(e.constructor.prototype,"isPrototypeOf"))return!1}catch(n){return!1}var r;for(r in e);return r===t||p.call(e,r)},isEmptyObject:function(e){var t;for(t in e)return!1;return!0},error:function(e){throw new Error(e)},parseHTML:function(e,t,n){var r;return!e||typeof e!="string"?null:(typeof t=="boolean"&&(n=t,t=0),t=t||i,(r=E.exec(e))?[t.createElement(r[1])]:(r=v.buildFragment([e],t,n?null:[]),v.merge([],(r.cacheable?v.clone(r.fragment):r.fragment).childNodes)))},parseJSON:function(t){if(!t||typeof t!="string")return null;t=v.trim(t);if(e.JSON&&e.JSON.parse)return e.JSON.parse(t);if(S.test(t.replace(T,"@").replace(N,"]").replace(x,"")))return(new Function("return "+t))();v.error("Invalid JSON: "+t)},parseXML:function(n){var r,i;if(!n||typeof n!="string")return null;try{e.DOMParser?(i=new DOMParser,r=i.parseFromString(n,"text/xml")):(r=new ActiveXObject("Microsoft.XMLDOM"),r.async="false",r.loadXML(n))}catch(s){r=t}return(!r||!r.documentElement||r.getElementsByTagName("parsererror").length)&&v.error("Invalid XML: "+n),r},noop:function(){},globalEval:function(t){t&&g.test(t)&&(e.execScript||function(t){e.eval.call(e,t)})(t)},camelCase:function(e){return e.replace(C,"ms-").replace(k,L)},nodeName:function(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()},each:function(e,n,r){var i,s=0,o=e.length,u=o===t||v.isFunction(e);if(r){if(u){for(i in e)if(n.apply(e[i],r)===!1)break}else for(;s<o;)if(n.apply(e[s++],r)===!1)break}else if(u){for(i in e)if(n.call(e[i],i,e[i])===!1)break}else for(;s<o;)if(n.call(e[s],s,e[s++])===!1)break;return e},trim:d&&!d.call("\ufeff\u00a0")?function(e){return e==null?"":d.call(e)}:function(e){return e==null?"":(e+"").replace(b,"")},makeArray:function(e,t){var n,r=t||[];return e!=null&&(n=v.type(e),e.length==null||n==="string"||n==="function"||n==="regexp"||v.isWindow(e)?f.call(r,e):v.merge(r,e)),r},inArray:function(e,t,n){var r;if(t){if(c)return c.call(t,e,n);r=t.length,n=n?n<0?Math.max(0,r+n):n:0;for(;n<r;n++)if(n in t&&t[n]===e)return n}return-1},merge:function(e,n){var r=n.length,i=e.length,s=0;if(typeof r=="number")for(;s<r;s++)e[i++]=n[s];else while(n[s]!==t)e[i++]=n[s++];return e.length=i,e},grep:function(e,t,n){var r,i=[],s=0,o=e.length;n=!!n;for(;s<o;s++)r=!!t(e[s],s),n!==r&&i.push(e[s]);return i},map:function(e,n,r){var i,s,o=[],u=0,a=e.length,f=e instanceof v||a!==t&&typeof a=="number"&&(a>0&&e[0]&&e[a-1]||a===0||v.isArray(e));if(f)for(;u<a;u++)i=n(e[u],u,r),i!=null&&(o[o.length]=i);else for(s in e)i=n(e[s],s,r),i!=null&&(o[o.length]=i);return o.concat.apply([],o)},guid:1,proxy:function(e,n){var r,i,s;return typeof n=="string"&&(r=e[n],n=e,e=r),v.isFunction(e)?(i=l.call(arguments,2),s=function(){return e.apply(n,i.concat(l.call(arguments)))},s.guid=e.guid=e.guid||v.guid++,s):t},access:function(e,n,r,i,s,o,u){var a,f=r==null,l=0,c=e.length;if(r&&typeof r=="object"){for(l in r)v.access(e,n,l,r[l],1,o,i);s=1}else if(i!==t){a=u===t&&v.isFunction(i),f&&(a?(a=n,n=function(e,t,n){return a.call(v(e),n)}):(n.call(e,i),n=null));if(n)for(;l<c;l++)n(e[l],r,a?i.call(e[l],l,n(e[l],r)):i,u);s=1}return s?e:f?n.call(e):c?n(e[0],r):o},now:function(){return(new Date).getTime()}}),v.ready.promise=function(t){if(!r){r=v.Deferred();if(i.readyState==="complete")setTimeout(v.ready,1);else if(i.addEventListener)i.addEventListener("DOMContentLoaded",A,!1),e.addEventListener("load",v.ready,!1);else{i.attachEvent("onreadystatechange",A),e.attachEvent("onload",v.ready);var n=!1;try{n=e.frameElement==null&&i.documentElement}catch(s){}n&&n.doScroll&&function o(){if(!v.isReady){try{n.doScroll("left")}catch(e){return setTimeout(o,50)}v.ready()}}()}}return r.promise(t)},v.each("Boolean Number String Function Array Date RegExp Object".split(" "),function(e,t){O["[object "+t+"]"]=t.toLowerCase()}),n=v(i);var M={};v.Callbacks=function(e){e=typeof e=="string"?M[e]||_(e):v.extend({},e);var n,r,i,s,o,u,a=[],f=!e.once&&[],l=function(t){n=e.memory&&t,r=!0,u=s||0,s=0,o=a.length,i=!0;for(;a&&u<o;u++)if(a[u].apply(t[0],t[1])===!1&&e.stopOnFalse){n=!1;break}i=!1,a&&(f?f.length&&l(f.shift()):n?a=[]:c.disable())},c={add:function(){if(a){var t=a.length;(function r(t){v.each(t,function(t,n){var i=v.type(n);i==="function"?(!e.unique||!c.has(n))&&a.push(n):n&&n.length&&i!=="string"&&r(n)})})(arguments),i?o=a.length:n&&(s=t,l(n))}return this},remove:function(){return a&&v.each(arguments,function(e,t){var n;while((n=v.inArray(t,a,n))>-1)a.splice(n,1),i&&(n<=o&&o--,n<=u&&u--)}),this},has:function(e){return v.inArray(e,a)>-1},empty:function(){return a=[],this},disable:function(){return a=f=n=t,this},disabled:function(){return!a},lock:function(){return f=t,n||c.disable(),this},locked:function(){return!f},fireWith:function(e,t){return t=t||[],t=[e,t.slice?t.slice():t],a&&(!r||f)&&(i?f.push(t):l(t)),this},fire:function(){return c.fireWith(this,arguments),this},fired:function(){return!!r}};return c},v.extend({Deferred:function(e){var t=[["resolve","done",v.Callbacks("once memory"),"resolved"],["reject","fail",v.Callbacks("once memory"),"rejected"],["notify","progress",v.Callbacks("memory")]],n="pending",r={state:function(){return n},always:function(){return i.done(arguments).fail(arguments),this},then:function(){var e=arguments;return v.Deferred(function(n){v.each(t,function(t,r){var s=r[0],o=e[t];i[r[1]](v.isFunction(o)?function(){var e=o.apply(this,arguments);e&&v.isFunction(e.promise)?e.promise().done(n.resolve).fail(n.reject).progress(n.notify):n[s+"With"](this===i?n:this,[e])}:n[s])}),e=null}).promise()},promise:function(e){return e!=null?v.extend(e,r):r}},i={};return r.pipe=r.then,v.each(t,function(e,s){var o=s[2],u=s[3];r[s[1]]=o.add,u&&o.add(function(){n=u},t[e^1][2].disable,t[2][2].lock),i[s[0]]=o.fire,i[s[0]+"With"]=o.fireWith}),r.promise(i),e&&e.call(i,i),i},when:function(e){var t=0,n=l.call(arguments),r=n.length,i=r!==1||e&&v.isFunction(e.promise)?r:0,s=i===1?e:v.Deferred(),o=function(e,t,n){return function(r){t[e]=this,n[e]=arguments.length>1?l.call(arguments):r,n===u?s.notifyWith(t,n):--i||s.resolveWith(t,n)}},u,a,f;if(r>1){u=new Array(r),a=new Array(r),f=new Array(r);for(;t<r;t++)n[t]&&v.isFunction(n[t].promise)?n[t].promise().done(o(t,f,n)).fail(s.reject).progress(o(t,a,u)):--i}return i||s.resolveWith(f,n),s.promise()}}),v.support=function(){var t,n,r,s,o,u,a,f,l,c,h,p=i.createElement("div");p.setAttribute("className","t"),p.innerHTML="  <link/><table></table><a href='/a'>a</a><input type='checkbox'/>",n=p.getElementsByTagName("*"),r=p.getElementsByTagName("a")[0];if(!n||!r||!n.length)return{};s=i.createElement("select"),o=s.appendChild(i.createElement("option")),u=p.getElementsByTagName("input")[0],r.style.cssText="top:1px;float:left;opacity:.5",t={leadingWhitespace:p.firstChild.nodeType===3,tbody:!p.getElementsByTagName("tbody").length,htmlSerialize:!!p.getElementsByTagName("link").length,style:/top/.test(r.getAttribute("style")),hrefNormalized:r.getAttribute("href")==="/a",opacity:/^0.5/.test(r.style.opacity),cssFloat:!!r.style.cssFloat,checkOn:u.value==="on",optSelected:o.selected,getSetAttribute:p.className!=="t",enctype:!!i.createElement("form").enctype,html5Clone:i.createElement("nav").cloneNode(!0).outerHTML!=="<:nav></:nav>",boxModel:i.compatMode==="CSS1Compat",submitBubbles:!0,changeBubbles:!0,focusinBubbles:!1,deleteExpando:!0,noCloneEvent:!0,inlineBlockNeedsLayout:!1,shrinkWrapBlocks:!1,reliableMarginRight:!0,boxSizingReliable:!0,pixelPosition:!1},u.checked=!0,t.noCloneChecked=u.cloneNode(!0).checked,s.disabled=!0,t.optDisabled=!o.disabled;try{delete p.test}catch(d){t.deleteExpando=!1}!p.addEventListener&&p.attachEvent&&p.fireEvent&&(p.attachEvent("onclick",h=function(){t.noCloneEvent=!1}),p.cloneNode(!0).fireEvent("onclick"),p.detachEvent("onclick",h)),u=i.createElement("input"),u.value="t",u.setAttribute("type","radio"),t.radioValue=u.value==="t",u.setAttribute("checked","checked"),u.setAttribute("name","t"),p.appendChild(u),a=i.createDocumentFragment(),a.appendChild(p.lastChild),t.checkClone=a.cloneNode(!0).cloneNode(!0).lastChild.checked,t.appendChecked=u.checked,a.removeChild(u),a.appendChild(p);if(p.attachEvent)for(l in{submit:!0,change:!0,focusin:!0})f="on"+l,c=f in p,c||(p.setAttribute(f,"return;"),c=typeof p[f]=="function"),t[l+"Bubbles"]=c;return v(function(){var n,r,s,o,u="padding:0;margin:0;border:0;display:block;overflow:hidden;",a=i.getElementsByTagName("body")[0];if(!a)return;n=i.createElement("div"),n.style.cssText="visibility:hidden;border:0;width:0;height:0;position:static;top:0;margin-top:1px",a.insertBefore(n,a.firstChild),r=i.createElement("div"),n.appendChild(r),r.innerHTML="<table><tr><td></td><td>t</td></tr></table>",s=r.getElementsByTagName("td"),s[0].style.cssText="padding:0;margin:0;border:0;display:none",c=s[0].offsetHeight===0,s[0].style.display="",s[1].style.display="none",t.reliableHiddenOffsets=c&&s[0].offsetHeight===0,r.innerHTML="",r.style.cssText="box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;padding:1px;border:1px;display:block;width:4px;margin-top:1%;position:absolute;top:1%;",t.boxSizing=r.offsetWidth===4,t.doesNotIncludeMarginInBodyOffset=a.offsetTop!==1,e.getComputedStyle&&(t.pixelPosition=(e.getComputedStyle(r,null)||{}).top!=="1%",t.boxSizingReliable=(e.getComputedStyle(r,null)||{width:"4px"}).width==="4px",o=i.createElement("div"),o.style.cssText=r.style.cssText=u,o.style.marginRight=o.style.width="0",r.style.width="1px",r.appendChild(o),t.reliableMarginRight=!parseFloat((e.getComputedStyle(o,null)||{}).marginRight)),typeof r.style.zoom!="undefined"&&(r.innerHTML="",r.style.cssText=u+"width:1px;padding:1px;display:inline;zoom:1",t.inlineBlockNeedsLayout=r.offsetWidth===3,r.style.display="block",r.style.overflow="visible",r.innerHTML="<div></div>",r.firstChild.style.width="5px",t.shrinkWrapBlocks=r.offsetWidth!==3,n.style.zoom=1),a.removeChild(n),n=r=s=o=null}),a.removeChild(p),n=r=s=o=u=a=p=null,t}();var D=/(?:\{[\s\S]*\}|\[[\s\S]*\])$/,P=/([A-Z])/g;v.extend({cache:{},deletedIds:[],uuid:0,expando:"jQuery"+(v.fn.jquery+Math.random()).replace(/\D/g,""),noData:{embed:!0,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:!0},hasData:function(e){return e=e.nodeType?v.cache[e[v.expando]]:e[v.expando],!!e&&!B(e)},data:function(e,n,r,i){if(!v.acceptData(e))return;var s,o,u=v.expando,a=typeof n=="string",f=e.nodeType,l=f?v.cache:e,c=f?e[u]:e[u]&&u;if((!c||!l[c]||!i&&!l[c].data)&&a&&r===t)return;c||(f?e[u]=c=v.deletedIds.pop()||v.guid++:c=u),l[c]||(l[c]={},f||(l[c].toJSON=v.noop));if(typeof n=="object"||typeof n=="function")i?l[c]=v.extend(l[c],n):l[c].data=v.extend(l[c].data,n);return s=l[c],i||(s.data||(s.data={}),s=s.data),r!==t&&(s[v.camelCase(n)]=r),a?(o=s[n],o==null&&(o=s[v.camelCase(n)])):o=s,o},removeData:function(e,t,n){if(!v.acceptData(e))return;var r,i,s,o=e.nodeType,u=o?v.cache:e,a=o?e[v.expando]:v.expando;if(!u[a])return;if(t){r=n?u[a]:u[a].data;if(r){v.isArray(t)||(t in r?t=[t]:(t=v.camelCase(t),t in r?t=[t]:t=t.split(" ")));for(i=0,s=t.length;i<s;i++)delete r[t[i]];if(!(n?B:v.isEmptyObject)(r))return}}if(!n){delete u[a].data;if(!B(u[a]))return}o?v.cleanData([e],!0):v.support.deleteExpando||u!=u.window?delete u[a]:u[a]=null},_data:function(e,t,n){return v.data(e,t,n,!0)},acceptData:function(e){var t=e.nodeName&&v.noData[e.nodeName.toLowerCase()];return!t||t!==!0&&e.getAttribute("classid")===t}}),v.fn.extend({data:function(e,n){var r,i,s,o,u,a=this[0],f=0,l=null;if(e===t){if(this.length){l=v.data(a);if(a.nodeType===1&&!v._data(a,"parsedAttrs")){s=a.attributes;for(u=s.length;f<u;f++)o=s[f].name,o.indexOf("data-")||(o=v.camelCase(o.substring(5)),H(a,o,l[o]));v._data(a,"parsedAttrs",!0)}}return l}return typeof e=="object"?this.each(function(){v.data(this,e)}):(r=e.split(".",2),r[1]=r[1]?"."+r[1]:"",i=r[1]+"!",v.access(this,function(n){if(n===t)return l=this.triggerHandler("getData"+i,[r[0]]),l===t&&a&&(l=v.data(a,e),l=H(a,e,l)),l===t&&r[1]?this.data(r[0]):l;r[1]=n,this.each(function(){var t=v(this);t.triggerHandler("setData"+i,r),v.data(this,e,n),t.triggerHandler("changeData"+i,r)})},null,n,arguments.length>1,null,!1))},removeData:function(e){return this.each(function(){v.removeData(this,e)})}}),v.extend({queue:function(e,t,n){var r;if(e)return t=(t||"fx")+"queue",r=v._data(e,t),n&&(!r||v.isArray(n)?r=v._data(e,t,v.makeArray(n)):r.push(n)),r||[]},dequeue:function(e,t){t=t||"fx";var n=v.queue(e,t),r=n.length,i=n.shift(),s=v._queueHooks(e,t),o=function(){v.dequeue(e,t)};i==="inprogress"&&(i=n.shift(),r--),i&&(t==="fx"&&n.unshift("inprogress"),delete s.stop,i.call(e,o,s)),!r&&s&&s.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks";return v._data(e,n)||v._data(e,n,{empty:v.Callbacks("once memory").add(function(){v.removeData(e,t+"queue",!0),v.removeData(e,n,!0)})})}}),v.fn.extend({queue:function(e,n){var r=2;return typeof e!="string"&&(n=e,e="fx",r--),arguments.length<r?v.queue(this[0],e):n===t?this:this.each(function(){var t=v.queue(this,e,n);v._queueHooks(this,e),e==="fx"&&t[0]!=="inprogress"&&v.dequeue(this,e)})},dequeue:function(e){return this.each(function(){v.dequeue(this,e)})},delay:function(e,t){return e=v.fx?v.fx.speeds[e]||e:e,t=t||"fx",this.queue(t,function(t,n){var r=setTimeout(t,e);n.stop=function(){clearTimeout(r)}})},clearQueue:function(e){return this.queue(e||"fx",[])},promise:function(e,n){var r,i=1,s=v.Deferred(),o=this,u=this.length,a=function(){--i||s.resolveWith(o,[o])};typeof e!="string"&&(n=e,e=t),e=e||"fx";while(u--)r=v._data(o[u],e+"queueHooks"),r&&r.empty&&(i++,r.empty.add(a));return a(),s.promise(n)}});var j,F,I,q=/[\t\r\n]/g,R=/\r/g,U=/^(?:button|input)$/i,z=/^(?:button|input|object|select|textarea)$/i,W=/^a(?:rea|)$/i,X=/^(?:autofocus|autoplay|async|checked|controls|defer|disabled|hidden|loop|multiple|open|readonly|required|scoped|selected)$/i,V=v.support.getSetAttribute;v.fn.extend({attr:function(e,t){return v.access(this,v.attr,e,t,arguments.length>1)},removeAttr:function(e){return this.each(function(){v.removeAttr(this,e)})},prop:function(e,t){return v.access(this,v.prop,e,t,arguments.length>1)},removeProp:function(e){return e=v.propFix[e]||e,this.each(function(){try{this[e]=t,delete this[e]}catch(n){}})},addClass:function(e){var t,n,r,i,s,o,u;if(v.isFunction(e))return this.each(function(t){v(this).addClass(e.call(this,t,this.className))});if(e&&typeof e=="string"){t=e.split(y);for(n=0,r=this.length;n<r;n++){i=this[n];if(i.nodeType===1)if(!i.className&&t.length===1)i.className=e;else{s=" "+i.className+" ";for(o=0,u=t.length;o<u;o++)s.indexOf(" "+t[o]+" ")<0&&(s+=t[o]+" ");i.className=v.trim(s)}}}return this},removeClass:function(e){var n,r,i,s,o,u,a;if(v.isFunction(e))return this.each(function(t){v(this).removeClass(e.call(this,t,this.className))});if(e&&typeof e=="string"||e===t){n=(e||"").split(y);for(u=0,a=this.length;u<a;u++){i=this[u];if(i.nodeType===1&&i.className){r=(" "+i.className+" ").replace(q," ");for(s=0,o=n.length;s<o;s++)while(r.indexOf(" "+n[s]+" ")>=0)r=r.replace(" "+n[s]+" "," ");i.className=e?v.trim(r):""}}}return this},toggleClass:function(e,t){var n=typeof e,r=typeof t=="boolean";return v.isFunction(e)?this.each(function(n){v(this).toggleClass(e.call(this,n,this.className,t),t)}):this.each(function(){if(n==="string"){var i,s=0,o=v(this),u=t,a=e.split(y);while(i=a[s++])u=r?u:!o.hasClass(i),o[u?"addClass":"removeClass"](i)}else if(n==="undefined"||n==="boolean")this.className&&v._data(this,"__className__",this.className),this.className=this.className||e===!1?"":v._data(this,"__className__")||""})},hasClass:function(e){var t=" "+e+" ",n=0,r=this.length;for(;n<r;n++)if(this[n].nodeType===1&&(" "+this[n].className+" ").replace(q," ").indexOf(t)>=0)return!0;return!1},val:function(e){var n,r,i,s=this[0];if(!arguments.length){if(s)return n=v.valHooks[s.type]||v.valHooks[s.nodeName.toLowerCase()],n&&"get"in n&&(r=n.get(s,"value"))!==t?r:(r=s.value,typeof r=="string"?r.replace(R,""):r==null?"":r);return}return i=v.isFunction(e),this.each(function(r){var s,o=v(this);if(this.nodeType!==1)return;i?s=e.call(this,r,o.val()):s=e,s==null?s="":typeof s=="number"?s+="":v.isArray(s)&&(s=v.map(s,function(e){return e==null?"":e+""})),n=v.valHooks[this.type]||v.valHooks[this.nodeName.toLowerCase()];if(!n||!("set"in n)||n.set(this,s,"value")===t)this.value=s})}}),v.extend({valHooks:{option:{get:function(e){var t=e.attributes.value;return!t||t.specified?e.value:e.text}},select:{get:function(e){var t,n,r=e.options,i=e.selectedIndex,s=e.type==="select-one"||i<0,o=s?null:[],u=s?i+1:r.length,a=i<0?u:s?i:0;for(;a<u;a++){n=r[a];if((n.selected||a===i)&&(v.support.optDisabled?!n.disabled:n.getAttribute("disabled")===null)&&(!n.parentNode.disabled||!v.nodeName(n.parentNode,"optgroup"))){t=v(n).val();if(s)return t;o.push(t)}}return o},set:function(e,t){var n=v.makeArray(t);return v(e).find("option").each(function(){this.selected=v.inArray(v(this).val(),n)>=0}),n.length||(e.selectedIndex=-1),n}}},attrFn:{},attr:function(e,n,r,i){var s,o,u,a=e.nodeType;if(!e||a===3||a===8||a===2)return;if(i&&v.isFunction(v.fn[n]))return v(e)[n](r);if(typeof e.getAttribute=="undefined")return v.prop(e,n,r);u=a!==1||!v.isXMLDoc(e),u&&(n=n.toLowerCase(),o=v.attrHooks[n]||(X.test(n)?F:j));if(r!==t){if(r===null){v.removeAttr(e,n);return}return o&&"set"in o&&u&&(s=o.set(e,r,n))!==t?s:(e.setAttribute(n,r+""),r)}return o&&"get"in o&&u&&(s=o.get(e,n))!==null?s:(s=e.getAttribute(n),s===null?t:s)},removeAttr:function(e,t){var n,r,i,s,o=0;if(t&&e.nodeType===1){r=t.split(y);for(;o<r.length;o++)i=r[o],i&&(n=v.propFix[i]||i,s=X.test(i),s||v.attr(e,i,""),e.removeAttribute(V?i:n),s&&n in e&&(e[n]=!1))}},attrHooks:{type:{set:function(e,t){if(U.test(e.nodeName)&&e.parentNode)v.error("type property can't be changed");else if(!v.support.radioValue&&t==="radio"&&v.nodeName(e,"input")){var n=e.value;return e.setAttribute("type",t),n&&(e.value=n),t}}},value:{get:function(e,t){return j&&v.nodeName(e,"button")?j.get(e,t):t in e?e.value:null},set:function(e,t,n){if(j&&v.nodeName(e,"button"))return j.set(e,t,n);e.value=t}}},propFix:{tabindex:"tabIndex",readonly:"readOnly","for":"htmlFor","class":"className",maxlength:"maxLength",cellspacing:"cellSpacing",cellpadding:"cellPadding",rowspan:"rowSpan",colspan:"colSpan",usemap:"useMap",frameborder:"frameBorder",contenteditable:"contentEditable"},prop:function(e,n,r){var i,s,o,u=e.nodeType;if(!e||u===3||u===8||u===2)return;return o=u!==1||!v.isXMLDoc(e),o&&(n=v.propFix[n]||n,s=v.propHooks[n]),r!==t?s&&"set"in s&&(i=s.set(e,r,n))!==t?i:e[n]=r:s&&"get"in s&&(i=s.get(e,n))!==null?i:e[n]},propHooks:{tabIndex:{get:function(e){var n=e.getAttributeNode("tabindex");return n&&n.specified?parseInt(n.value,10):z.test(e.nodeName)||W.test(e.nodeName)&&e.href?0:t}}}}),F={get:function(e,n){var r,i=v.prop(e,n);return i===!0||typeof i!="boolean"&&(r=e.getAttributeNode(n))&&r.nodeValue!==!1?n.toLowerCase():t},set:function(e,t,n){var r;return t===!1?v.removeAttr(e,n):(r=v.propFix[n]||n,r in e&&(e[r]=!0),e.setAttribute(n,n.toLowerCase())),n}},V||(I={name:!0,id:!0,coords:!0},j=v.valHooks.button={get:function(e,n){var r;return r=e.getAttributeNode(n),r&&(I[n]?r.value!=="":r.specified)?r.value:t},set:function(e,t,n){var r=e.getAttributeNode(n);return r||(r=i.createAttribute(n),e.setAttributeNode(r)),r.value=t+""}},v.each(["width","height"],function(e,t){v.attrHooks[t]=v.extend(v.attrHooks[t],{set:function(e,n){if(n==="")return e.setAttribute(t,"auto"),n}})}),v.attrHooks.contenteditable={get:j.get,set:function(e,t,n){t===""&&(t="false"),j.set(e,t,n)}}),v.support.hrefNormalized||v.each(["href","src","width","height"],function(e,n){v.attrHooks[n]=v.extend(v.attrHooks[n],{get:function(e){var r=e.getAttribute(n,2);return r===null?t:r}})}),v.support.style||(v.attrHooks.style={get:function(e){return e.style.cssText.toLowerCase()||t},set:function(e,t){return e.style.cssText=t+""}}),v.support.optSelected||(v.propHooks.selected=v.extend(v.propHooks.selected,{get:function(e){var t=e.parentNode;return t&&(t.selectedIndex,t.parentNode&&t.parentNode.selectedIndex),null}})),v.support.enctype||(v.propFix.enctype="encoding"),v.support.checkOn||v.each(["radio","checkbox"],function(){v.valHooks[this]={get:function(e){return e.getAttribute("value")===null?"on":e.value}}}),v.each(["radio","checkbox"],function(){v.valHooks[this]=v.extend(v.valHooks[this],{set:function(e,t){if(v.isArray(t))return e.checked=v.inArray(v(e).val(),t)>=0}})});var $=/^(?:textarea|input|select)$/i,J=/^([^\.]*|)(?:\.(.+)|)$/,K=/(?:^|\s)hover(\.\S+|)\b/,Q=/^key/,G=/^(?:mouse|contextmenu)|click/,Y=/^(?:focusinfocus|focusoutblur)$/,Z=function(e){return v.event.special.hover?e:e.replace(K,"mouseenter$1 mouseleave$1")};v.event={add:function(e,n,r,i,s){var o,u,a,f,l,c,h,p,d,m,g;if(e.nodeType===3||e.nodeType===8||!n||!r||!(o=v._data(e)))return;r.handler&&(d=r,r=d.handler,s=d.selector),r.guid||(r.guid=v.guid++),a=o.events,a||(o.events=a={}),u=o.handle,u||(o.handle=u=function(e){return typeof v=="undefined"||!!e&&v.event.triggered===e.type?t:v.event.dispatch.apply(u.elem,arguments)},u.elem=e),n=v.trim(Z(n)).split(" ");for(f=0;f<n.length;f++){l=J.exec(n[f])||[],c=l[1],h=(l[2]||"").split(".").sort(),g=v.event.special[c]||{},c=(s?g.delegateType:g.bindType)||c,g=v.event.special[c]||{},p=v.extend({type:c,origType:l[1],data:i,handler:r,guid:r.guid,selector:s,needsContext:s&&v.expr.match.needsContext.test(s),namespace:h.join(".")},d),m=a[c];if(!m){m=a[c]=[],m.delegateCount=0;if(!g.setup||g.setup.call(e,i,h,u)===!1)e.addEventListener?e.addEventListener(c,u,!1):e.attachEvent&&e.attachEvent("on"+c,u)}g.add&&(g.add.call(e,p),p.handler.guid||(p.handler.guid=r.guid)),s?m.splice(m.delegateCount++,0,p):m.push(p),v.event.global[c]=!0}e=null},global:{},remove:function(e,t,n,r,i){var s,o,u,a,f,l,c,h,p,d,m,g=v.hasData(e)&&v._data(e);if(!g||!(h=g.events))return;t=v.trim(Z(t||"")).split(" ");for(s=0;s<t.length;s++){o=J.exec(t[s])||[],u=a=o[1],f=o[2];if(!u){for(u in h)v.event.remove(e,u+t[s],n,r,!0);continue}p=v.event.special[u]||{},u=(r?p.delegateType:p.bindType)||u,d=h[u]||[],l=d.length,f=f?new RegExp("(^|\\.)"+f.split(".").sort().join("\\.(?:.*\\.|)")+"(\\.|$)"):null;for(c=0;c<d.length;c++)m=d[c],(i||a===m.origType)&&(!n||n.guid===m.guid)&&(!f||f.test(m.namespace))&&(!r||r===m.selector||r==="**"&&m.selector)&&(d.splice(c--,1),m.selector&&d.delegateCount--,p.remove&&p.remove.call(e,m));d.length===0&&l!==d.length&&((!p.teardown||p.teardown.call(e,f,g.handle)===!1)&&v.removeEvent(e,u,g.handle),delete h[u])}v.isEmptyObject(h)&&(delete g.handle,v.removeData(e,"events",!0))},customEvent:{getData:!0,setData:!0,changeData:!0},trigger:function(n,r,s,o){if(!s||s.nodeType!==3&&s.nodeType!==8){var u,a,f,l,c,h,p,d,m,g,y=n.type||n,b=[];if(Y.test(y+v.event.triggered))return;y.indexOf("!")>=0&&(y=y.slice(0,-1),a=!0),y.indexOf(".")>=0&&(b=y.split("."),y=b.shift(),b.sort());if((!s||v.event.customEvent[y])&&!v.event.global[y])return;n=typeof n=="object"?n[v.expando]?n:new v.Event(y,n):new v.Event(y),n.type=y,n.isTrigger=!0,n.exclusive=a,n.namespace=b.join("."),n.namespace_re=n.namespace?new RegExp("(^|\\.)"+b.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,h=y.indexOf(":")<0?"on"+y:"";if(!s){u=v.cache;for(f in u)u[f].events&&u[f].events[y]&&v.event.trigger(n,r,u[f].handle.elem,!0);return}n.result=t,n.target||(n.target=s),r=r!=null?v.makeArray(r):[],r.unshift(n),p=v.event.special[y]||{};if(p.trigger&&p.trigger.apply(s,r)===!1)return;m=[[s,p.bindType||y]];if(!o&&!p.noBubble&&!v.isWindow(s)){g=p.delegateType||y,l=Y.test(g+y)?s:s.parentNode;for(c=s;l;l=l.parentNode)m.push([l,g]),c=l;c===(s.ownerDocument||i)&&m.push([c.defaultView||c.parentWindow||e,g])}for(f=0;f<m.length&&!n.isPropagationStopped();f++)l=m[f][0],n.type=m[f][1],d=(v._data(l,"events")||{})[n.type]&&v._data(l,"handle"),d&&d.apply(l,r),d=h&&l[h],d&&v.acceptData(l)&&d.apply&&d.apply(l,r)===!1&&n.preventDefault();return n.type=y,!o&&!n.isDefaultPrevented()&&(!p._default||p._default.apply(s.ownerDocument,r)===!1)&&(y!=="click"||!v.nodeName(s,"a"))&&v.acceptData(s)&&h&&s[y]&&(y!=="focus"&&y!=="blur"||n.target.offsetWidth!==0)&&!v.isWindow(s)&&(c=s[h],c&&(s[h]=null),v.event.triggered=y,s[y](),v.event.triggered=t,c&&(s[h]=c)),n.result}return},dispatch:function(n){n=v.event.fix(n||e.event);var r,i,s,o,u,a,f,c,h,p,d=(v._data(this,"events")||{})[n.type]||[],m=d.delegateCount,g=l.call(arguments),y=!n.exclusive&&!n.namespace,b=v.event.special[n.type]||{},w=[];g[0]=n,n.delegateTarget=this;if(b.preDispatch&&b.preDispatch.call(this,n)===!1)return;if(m&&(!n.button||n.type!=="click"))for(s=n.target;s!=this;s=s.parentNode||this)if(s.disabled!==!0||n.type!=="click"){u={},f=[];for(r=0;r<m;r++)c=d[r],h=c.selector,u[h]===t&&(u[h]=c.needsContext?v(h,this).index(s)>=0:v.find(h,this,null,[s]).length),u[h]&&f.push(c);f.length&&w.push({elem:s,matches:f})}d.length>m&&w.push({elem:this,matches:d.slice(m)});for(r=0;r<w.length&&!n.isPropagationStopped();r++){a=w[r],n.currentTarget=a.elem;for(i=0;i<a.matches.length&&!n.isImmediatePropagationStopped();i++){c=a.matches[i];if(y||!n.namespace&&!c.namespace||n.namespace_re&&n.namespace_re.test(c.namespace))n.data=c.data,n.handleObj=c,o=((v.event.special[c.origType]||{}).handle||c.handler).apply(a.elem,g),o!==t&&(n.result=o,o===!1&&(n.preventDefault(),n.stopPropagation()))}}return b.postDispatch&&b.postDispatch.call(this,n),n.result},props:"attrChange attrName relatedNode srcElement altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),fixHooks:{},keyHooks:{props:"char charCode key keyCode".split(" "),filter:function(e,t){return e.which==null&&(e.which=t.charCode!=null?t.charCode:t.keyCode),e}},mouseHooks:{props:"button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "),filter:function(e,n){var r,s,o,u=n.button,a=n.fromElement;return e.pageX==null&&n.clientX!=null&&(r=e.target.ownerDocument||i,s=r.documentElement,o=r.body,e.pageX=n.clientX+(s&&s.scrollLeft||o&&o.scrollLeft||0)-(s&&s.clientLeft||o&&o.clientLeft||0),e.pageY=n.clientY+(s&&s.scrollTop||o&&o.scrollTop||0)-(s&&s.clientTop||o&&o.clientTop||0)),!e.relatedTarget&&a&&(e.relatedTarget=a===e.target?n.toElement:a),!e.which&&u!==t&&(e.which=u&1?1:u&2?3:u&4?2:0),e}},fix:function(e){if(e[v.expando])return e;var t,n,r=e,s=v.event.fixHooks[e.type]||{},o=s.props?this.props.concat(s.props):this.props;e=v.Event(r);for(t=o.length;t;)n=o[--t],e[n]=r[n];return e.target||(e.target=r.srcElement||i),e.target.nodeType===3&&(e.target=e.target.parentNode),e.metaKey=!!e.metaKey,s.filter?s.filter(e,r):e},special:{load:{noBubble:!0},focus:{delegateType:"focusin"},blur:{delegateType:"focusout"},beforeunload:{setup:function(e,t,n){v.isWindow(this)&&(this.onbeforeunload=n)},teardown:function(e,t){this.onbeforeunload===t&&(this.onbeforeunload=null)}}},simulate:function(e,t,n,r){var i=v.extend(new v.Event,n,{type:e,isSimulated:!0,originalEvent:{}});r?v.event.trigger(i,null,t):v.event.dispatch.call(t,i),i.isDefaultPrevented()&&n.preventDefault()}},v.event.handle=v.event.dispatch,v.removeEvent=i.removeEventListener?function(e,t,n){e.removeEventListener&&e.removeEventListener(t,n,!1)}:function(e,t,n){var r="on"+t;e.detachEvent&&(typeof e[r]=="undefined"&&(e[r]=null),e.detachEvent(r,n))},v.Event=function(e,t){if(!(this instanceof v.Event))return new v.Event(e,t);e&&e.type?(this.originalEvent=e,this.type=e.type,this.isDefaultPrevented=e.defaultPrevented||e.returnValue===!1||e.getPreventDefault&&e.getPreventDefault()?tt:et):this.type=e,t&&v.extend(this,t),this.timeStamp=e&&e.timeStamp||v.now(),this[v.expando]=!0},v.Event.prototype={preventDefault:function(){this.isDefaultPrevented=tt;var e=this.originalEvent;if(!e)return;e.preventDefault?e.preventDefault():e.returnValue=!1},stopPropagation:function(){this.isPropagationStopped=tt;var e=this.originalEvent;if(!e)return;e.stopPropagation&&e.stopPropagation(),e.cancelBubble=!0},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=tt,this.stopPropagation()},isDefaultPrevented:et,isPropagationStopped:et,isImmediatePropagationStopped:et},v.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(e,t){v.event.special[e]={delegateType:t,bindType:t,handle:function(e){var n,r=this,i=e.relatedTarget,s=e.handleObj,o=s.selector;if(!i||i!==r&&!v.contains(r,i))e.type=s.origType,n=s.handler.apply(this,arguments),e.type=t;return n}}}),v.support.submitBubbles||(v.event.special.submit={setup:function(){if(v.nodeName(this,"form"))return!1;v.event.add(this,"click._submit keypress._submit",function(e){var n=e.target,r=v.nodeName(n,"input")||v.nodeName(n,"button")?n.form:t;r&&!v._data(r,"_submit_attached")&&(v.event.add(r,"submit._submit",function(e){e._submit_bubble=!0}),v._data(r,"_submit_attached",!0))})},postDispatch:function(e){e._submit_bubble&&(delete e._submit_bubble,this.parentNode&&!e.isTrigger&&v.event.simulate("submit",this.parentNode,e,!0))},teardown:function(){if(v.nodeName(this,"form"))return!1;v.event.remove(this,"._submit")}}),v.support.changeBubbles||(v.event.special.change={setup:function(){if($.test(this.nodeName)){if(this.type==="checkbox"||this.type==="radio")v.event.add(this,"propertychange._change",function(e){e.originalEvent.propertyName==="checked"&&(this._just_changed=!0)}),v.event.add(this,"click._change",function(e){this._just_changed&&!e.isTrigger&&(this._just_changed=!1),v.event.simulate("change",this,e,!0)});return!1}v.event.add(this,"beforeactivate._change",function(e){var t=e.target;$.test(t.nodeName)&&!v._data(t,"_change_attached")&&(v.event.add(t,"change._change",function(e){this.parentNode&&!e.isSimulated&&!e.isTrigger&&v.event.simulate("change",this.parentNode,e,!0)}),v._data(t,"_change_attached",!0))})},handle:function(e){var t=e.target;if(this!==t||e.isSimulated||e.isTrigger||t.type!=="radio"&&t.type!=="checkbox")return e.handleObj.handler.apply(this,arguments)},teardown:function(){return v.event.remove(this,"._change"),!$.test(this.nodeName)}}),v.support.focusinBubbles||v.each({focus:"focusin",blur:"focusout"},function(e,t){var n=0,r=function(e){v.event.simulate(t,e.target,v.event.fix(e),!0)};v.event.special[t]={setup:function(){n++===0&&i.addEventListener(e,r,!0)},teardown:function(){--n===0&&i.removeEventListener(e,r,!0)}}}),v.fn.extend({on:function(e,n,r,i,s){var o,u;if(typeof e=="object"){typeof n!="string"&&(r=r||n,n=t);for(u in e)this.on(u,n,r,e[u],s);return this}r==null&&i==null?(i=n,r=n=t):i==null&&(typeof n=="string"?(i=r,r=t):(i=r,r=n,n=t));if(i===!1)i=et;else if(!i)return this;return s===1&&(o=i,i=function(e){return v().off(e),o.apply(this,arguments)},i.guid=o.guid||(o.guid=v.guid++)),this.each(function(){v.event.add(this,e,i,r,n)})},one:function(e,t,n,r){return this.on(e,t,n,r,1)},off:function(e,n,r){var i,s;if(e&&e.preventDefault&&e.handleObj)return i=e.handleObj,v(e.delegateTarget).off(i.namespace?i.origType+"."+i.namespace:i.origType,i.selector,i.handler),this;if(typeof e=="object"){for(s in e)this.off(s,n,e[s]);return this}if(n===!1||typeof n=="function")r=n,n=t;return r===!1&&(r=et),this.each(function(){v.event.remove(this,e,r,n)})},bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},live:function(e,t,n){return v(this.context).on(e,this.selector,t,n),this},die:function(e,t){return v(this.context).off(e,this.selector||"**",t),this},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return arguments.length===1?this.off(e,"**"):this.off(t,e||"**",n)},trigger:function(e,t){return this.each(function(){v.event.trigger(e,t,this)})},triggerHandler:function(e,t){if(this[0])return v.event.trigger(e,t,this[0],!0)},toggle:function(e){var t=arguments,n=e.guid||v.guid++,r=0,i=function(n){var i=(v._data(this,"lastToggle"+e.guid)||0)%r;return v._data(this,"lastToggle"+e.guid,i+1),n.preventDefault(),t[i].apply(this,arguments)||!1};i.guid=n;while(r<t.length)t[r++].guid=n;return this.click(i)},hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),v.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu".split(" "),function(e,t){v.fn[t]=function(e,n){return n==null&&(n=e,e=null),arguments.length>0?this.on(t,null,e,n):this.trigger(t)},Q.test(t)&&(v.event.fixHooks[t]=v.event.keyHooks),G.test(t)&&(v.event.fixHooks[t]=v.event.mouseHooks)}),function(e,t){function nt(e,t,n,r){n=n||[],t=t||g;var i,s,a,f,l=t.nodeType;if(!e||typeof e!="string")return n;if(l!==1&&l!==9)return[];a=o(t);if(!a&&!r)if(i=R.exec(e))if(f=i[1]){if(l===9){s=t.getElementById(f);if(!s||!s.parentNode)return n;if(s.id===f)return n.push(s),n}else if(t.ownerDocument&&(s=t.ownerDocument.getElementById(f))&&u(t,s)&&s.id===f)return n.push(s),n}else{if(i[2])return S.apply(n,x.call(t.getElementsByTagName(e),0)),n;if((f=i[3])&&Z&&t.getElementsByClassName)return S.apply(n,x.call(t.getElementsByClassName(f),0)),n}return vt(e.replace(j,"$1"),t,n,r,a)}function rt(e){return function(t){var n=t.nodeName.toLowerCase();return n==="input"&&t.type===e}}function it(e){return function(t){var n=t.nodeName.toLowerCase();return(n==="input"||n==="button")&&t.type===e}}function st(e){return N(function(t){return t=+t,N(function(n,r){var i,s=e([],n.length,t),o=s.length;while(o--)n[i=s[o]]&&(n[i]=!(r[i]=n[i]))})})}function ot(e,t,n){if(e===t)return n;var r=e.nextSibling;while(r){if(r===t)return-1;r=r.nextSibling}return 1}function ut(e,t){var n,r,s,o,u,a,f,l=L[d][e+" "];if(l)return t?0:l.slice(0);u=e,a=[],f=i.preFilter;while(u){if(!n||(r=F.exec(u)))r&&(u=u.slice(r[0].length)||u),a.push(s=[]);n=!1;if(r=I.exec(u))s.push(n=new m(r.shift())),u=u.slice(n.length),n.type=r[0].replace(j," ");for(o in i.filter)(r=J[o].exec(u))&&(!f[o]||(r=f[o](r)))&&(s.push(n=new m(r.shift())),u=u.slice(n.length),n.type=o,n.matches=r);if(!n)break}return t?u.length:u?nt.error(e):L(e,a).slice(0)}function at(e,t,r){var i=t.dir,s=r&&t.dir==="parentNode",o=w++;return t.first?function(t,n,r){while(t=t[i])if(s||t.nodeType===1)return e(t,n,r)}:function(t,r,u){if(!u){var a,f=b+" "+o+" ",l=f+n;while(t=t[i])if(s||t.nodeType===1){if((a=t[d])===l)return t.sizset;if(typeof a=="string"&&a.indexOf(f)===0){if(t.sizset)return t}else{t[d]=l;if(e(t,r,u))return t.sizset=!0,t;t.sizset=!1}}}else while(t=t[i])if(s||t.nodeType===1)if(e(t,r,u))return t}}function ft(e){return e.length>1?function(t,n,r){var i=e.length;while(i--)if(!e[i](t,n,r))return!1;return!0}:e[0]}function lt(e,t,n,r,i){var s,o=[],u=0,a=e.length,f=t!=null;for(;u<a;u++)if(s=e[u])if(!n||n(s,r,i))o.push(s),f&&t.push(u);return o}function ct(e,t,n,r,i,s){return r&&!r[d]&&(r=ct(r)),i&&!i[d]&&(i=ct(i,s)),N(function(s,o,u,a){var f,l,c,h=[],p=[],d=o.length,v=s||dt(t||"*",u.nodeType?[u]:u,[]),m=e&&(s||!t)?lt(v,h,e,u,a):v,g=n?i||(s?e:d||r)?[]:o:m;n&&n(m,g,u,a);if(r){f=lt(g,p),r(f,[],u,a),l=f.length;while(l--)if(c=f[l])g[p[l]]=!(m[p[l]]=c)}if(s){if(i||e){if(i){f=[],l=g.length;while(l--)(c=g[l])&&f.push(m[l]=c);i(null,g=[],f,a)}l=g.length;while(l--)(c=g[l])&&(f=i?T.call(s,c):h[l])>-1&&(s[f]=!(o[f]=c))}}else g=lt(g===o?g.splice(d,g.length):g),i?i(null,o,g,a):S.apply(o,g)})}function ht(e){var t,n,r,s=e.length,o=i.relative[e[0].type],u=o||i.relative[" "],a=o?1:0,f=at(function(e){return e===t},u,!0),l=at(function(e){return T.call(t,e)>-1},u,!0),h=[function(e,n,r){return!o&&(r||n!==c)||((t=n).nodeType?f(e,n,r):l(e,n,r))}];for(;a<s;a++)if(n=i.relative[e[a].type])h=[at(ft(h),n)];else{n=i.filter[e[a].type].apply(null,e[a].matches);if(n[d]){r=++a;for(;r<s;r++)if(i.relative[e[r].type])break;return ct(a>1&&ft(h),a>1&&e.slice(0,a-1).join("").replace(j,"$1"),n,a<r&&ht(e.slice(a,r)),r<s&&ht(e=e.slice(r)),r<s&&e.join(""))}h.push(n)}return ft(h)}function pt(e,t){var r=t.length>0,s=e.length>0,o=function(u,a,f,l,h){var p,d,v,m=[],y=0,w="0",x=u&&[],T=h!=null,N=c,C=u||s&&i.find.TAG("*",h&&a.parentNode||a),k=b+=N==null?1:Math.E;T&&(c=a!==g&&a,n=o.el);for(;(p=C[w])!=null;w++){if(s&&p){for(d=0;v=e[d];d++)if(v(p,a,f)){l.push(p);break}T&&(b=k,n=++o.el)}r&&((p=!v&&p)&&y--,u&&x.push(p))}y+=w;if(r&&w!==y){for(d=0;v=t[d];d++)v(x,m,a,f);if(u){if(y>0)while(w--)!x[w]&&!m[w]&&(m[w]=E.call(l));m=lt(m)}S.apply(l,m),T&&!u&&m.length>0&&y+t.length>1&&nt.uniqueSort(l)}return T&&(b=k,c=N),x};return o.el=0,r?N(o):o}function dt(e,t,n){var r=0,i=t.length;for(;r<i;r++)nt(e,t[r],n);return n}function vt(e,t,n,r,s){var o,u,f,l,c,h=ut(e),p=h.length;if(!r&&h.length===1){u=h[0]=h[0].slice(0);if(u.length>2&&(f=u[0]).type==="ID"&&t.nodeType===9&&!s&&i.relative[u[1].type]){t=i.find.ID(f.matches[0].replace($,""),t,s)[0];if(!t)return n;e=e.slice(u.shift().length)}for(o=J.POS.test(e)?-1:u.length-1;o>=0;o--){f=u[o];if(i.relative[l=f.type])break;if(c=i.find[l])if(r=c(f.matches[0].replace($,""),z.test(u[0].type)&&t.parentNode||t,s)){u.splice(o,1),e=r.length&&u.join("");if(!e)return S.apply(n,x.call(r,0)),n;break}}}return a(e,h)(r,t,s,n,z.test(e)),n}function mt(){}var n,r,i,s,o,u,a,f,l,c,h=!0,p="undefined",d=("sizcache"+Math.random()).replace(".",""),m=String,g=e.document,y=g.documentElement,b=0,w=0,E=[].pop,S=[].push,x=[].slice,T=[].indexOf||function(e){var t=0,n=this.length;for(;t<n;t++)if(this[t]===e)return t;return-1},N=function(e,t){return e[d]=t==null||t,e},C=function(){var e={},t=[];return N(function(n,r){return t.push(n)>i.cacheLength&&delete e[t.shift()],e[n+" "]=r},e)},k=C(),L=C(),A=C(),O="[\\x20\\t\\r\\n\\f]",M="(?:\\\\.|[-\\w]|[^\\x00-\\xa0])+",_=M.replace("w","w#"),D="([*^$|!~]?=)",P="\\["+O+"*("+M+")"+O+"*(?:"+D+O+"*(?:(['\"])((?:\\\\.|[^\\\\])*?)\\3|("+_+")|)|)"+O+"*\\]",H=":("+M+")(?:\\((?:(['\"])((?:\\\\.|[^\\\\])*?)\\2|([^()[\\]]*|(?:(?:"+P+")|[^:]|\\\\.)*|.*))\\)|)",B=":(even|odd|eq|gt|lt|nth|first|last)(?:\\("+O+"*((?:-\\d)?\\d*)"+O+"*\\)|)(?=[^-]|$)",j=new RegExp("^"+O+"+|((?:^|[^\\\\])(?:\\\\.)*)"+O+"+$","g"),F=new RegExp("^"+O+"*,"+O+"*"),I=new RegExp("^"+O+"*([\\x20\\t\\r\\n\\f>+~])"+O+"*"),q=new RegExp(H),R=/^(?:#([\w\-]+)|(\w+)|\.([\w\-]+))$/,U=/^:not/,z=/[\x20\t\r\n\f]*[+~]/,W=/:not\($/,X=/h\d/i,V=/input|select|textarea|button/i,$=/\\(?!\\)/g,J={ID:new RegExp("^#("+M+")"),CLASS:new RegExp("^\\.("+M+")"),NAME:new RegExp("^\\[name=['\"]?("+M+")['\"]?\\]"),TAG:new RegExp("^("+M.replace("w","w*")+")"),ATTR:new RegExp("^"+P),PSEUDO:new RegExp("^"+H),POS:new RegExp(B,"i"),CHILD:new RegExp("^:(only|nth|first|last)-child(?:\\("+O+"*(even|odd|(([+-]|)(\\d*)n|)"+O+"*(?:([+-]|)"+O+"*(\\d+)|))"+O+"*\\)|)","i"),needsContext:new RegExp("^"+O+"*[>+~]|"+B,"i")},K=function(e){var t=g.createElement("div");try{return e(t)}catch(n){return!1}finally{t=null}},Q=K(function(e){return e.appendChild(g.createComment("")),!e.getElementsByTagName("*").length}),G=K(function(e){return e.innerHTML="<a href='#'></a>",e.firstChild&&typeof e.firstChild.getAttribute!==p&&e.firstChild.getAttribute("href")==="#"}),Y=K(function(e){e.innerHTML="<select></select>";var t=typeof e.lastChild.getAttribute("multiple");return t!=="boolean"&&t!=="string"}),Z=K(function(e){return e.innerHTML="<div class='hidden e'></div><div class='hidden'></div>",!e.getElementsByClassName||!e.getElementsByClassName("e").length?!1:(e.lastChild.className="e",e.getElementsByClassName("e").length===2)}),et=K(function(e){e.id=d+0,e.innerHTML="<a name='"+d+"'></a><div name='"+d+"'></div>",y.insertBefore(e,y.firstChild);var t=g.getElementsByName&&g.getElementsByName(d).length===2+g.getElementsByName(d+0).length;return r=!g.getElementById(d),y.removeChild(e),t});try{x.call(y.childNodes,0)[0].nodeType}catch(tt){x=function(e){var t,n=[];for(;t=this[e];e++)n.push(t);return n}}nt.matches=function(e,t){return nt(e,null,null,t)},nt.matchesSelector=function(e,t){return nt(t,null,null,[e]).length>0},s=nt.getText=function(e){var t,n="",r=0,i=e.nodeType;if(i){if(i===1||i===9||i===11){if(typeof e.textContent=="string")return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=s(e)}else if(i===3||i===4)return e.nodeValue}else for(;t=e[r];r++)n+=s(t);return n},o=nt.isXML=function(e){var t=e&&(e.ownerDocument||e).documentElement;return t?t.nodeName!=="HTML":!1},u=nt.contains=y.contains?function(e,t){var n=e.nodeType===9?e.documentElement:e,r=t&&t.parentNode;return e===r||!!(r&&r.nodeType===1&&n.contains&&n.contains(r))}:y.compareDocumentPosition?function(e,t){return t&&!!(e.compareDocumentPosition(t)&16)}:function(e,t){while(t=t.parentNode)if(t===e)return!0;return!1},nt.attr=function(e,t){var n,r=o(e);return r||(t=t.toLowerCase()),(n=i.attrHandle[t])?n(e):r||Y?e.getAttribute(t):(n=e.getAttributeNode(t),n?typeof e[t]=="boolean"?e[t]?t:null:n.specified?n.value:null:null)},i=nt.selectors={cacheLength:50,createPseudo:N,match:J,attrHandle:G?{}:{href:function(e){return e.getAttribute("href",2)},type:function(e){return e.getAttribute("type")}},find:{ID:r?function(e,t,n){if(typeof t.getElementById!==p&&!n){var r=t.getElementById(e);return r&&r.parentNode?[r]:[]}}:function(e,n,r){if(typeof n.getElementById!==p&&!r){var i=n.getElementById(e);return i?i.id===e||typeof i.getAttributeNode!==p&&i.getAttributeNode("id").value===e?[i]:t:[]}},TAG:Q?function(e,t){if(typeof t.getElementsByTagName!==p)return t.getElementsByTagName(e)}:function(e,t){var n=t.getElementsByTagName(e);if(e==="*"){var r,i=[],s=0;for(;r=n[s];s++)r.nodeType===1&&i.push(r);return i}return n},NAME:et&&function(e,t){if(typeof t.getElementsByName!==p)return t.getElementsByName(name)},CLASS:Z&&function(e,t,n){if(typeof t.getElementsByClassName!==p&&!n)return t.getElementsByClassName(e)}},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace($,""),e[3]=(e[4]||e[5]||"").replace($,""),e[2]==="~="&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),e[1]==="nth"?(e[2]||nt.error(e[0]),e[3]=+(e[3]?e[4]+(e[5]||1):2*(e[2]==="even"||e[2]==="odd")),e[4]=+(e[6]+e[7]||e[2]==="odd")):e[2]&&nt.error(e[0]),e},PSEUDO:function(e){var t,n;if(J.CHILD.test(e[0]))return null;if(e[3])e[2]=e[3];else if(t=e[4])q.test(t)&&(n=ut(t,!0))&&(n=t.indexOf(")",t.length-n)-t.length)&&(t=t.slice(0,n),e[0]=e[0].slice(0,n)),e[2]=t;return e.slice(0,3)}},filter:{ID:r?function(e){return e=e.replace($,""),function(t){return t.getAttribute("id")===e}}:function(e){return e=e.replace($,""),function(t){var n=typeof t.getAttributeNode!==p&&t.getAttributeNode("id");return n&&n.value===e}},TAG:function(e){return e==="*"?function(){return!0}:(e=e.replace($,"").toLowerCase(),function(t){return t.nodeName&&t.nodeName.toLowerCase()===e})},CLASS:function(e){var t=k[d][e+" "];return t||(t=new RegExp("(^|"+O+")"+e+"("+O+"|$)"))&&k(e,function(e){return t.test(e.className||typeof e.getAttribute!==p&&e.getAttribute("class")||"")})},ATTR:function(e,t,n){return function(r,i){var s=nt.attr(r,e);return s==null?t==="!=":t?(s+="",t==="="?s===n:t==="!="?s!==n:t==="^="?n&&s.indexOf(n)===0:t==="*="?n&&s.indexOf(n)>-1:t==="$="?n&&s.substr(s.length-n.length)===n:t==="~="?(" "+s+" ").indexOf(n)>-1:t==="|="?s===n||s.substr(0,n.length+1)===n+"-":!1):!0}},CHILD:function(e,t,n,r){return e==="nth"?function(e){var t,i,s=e.parentNode;if(n===1&&r===0)return!0;if(s){i=0;for(t=s.firstChild;t;t=t.nextSibling)if(t.nodeType===1){i++;if(e===t)break}}return i-=r,i===n||i%n===0&&i/n>=0}:function(t){var n=t;switch(e){case"only":case"first":while(n=n.previousSibling)if(n.nodeType===1)return!1;if(e==="first")return!0;n=t;case"last":while(n=n.nextSibling)if(n.nodeType===1)return!1;return!0}}},PSEUDO:function(e,t){var n,r=i.pseudos[e]||i.setFilters[e.toLowerCase()]||nt.error("unsupported pseudo: "+e);return r[d]?r(t):r.length>1?(n=[e,e,"",t],i.setFilters.hasOwnProperty(e.toLowerCase())?N(function(e,n){var i,s=r(e,t),o=s.length;while(o--)i=T.call(e,s[o]),e[i]=!(n[i]=s[o])}):function(e){return r(e,0,n)}):r}},pseudos:{not:N(function(e){var t=[],n=[],r=a(e.replace(j,"$1"));return r[d]?N(function(e,t,n,i){var s,o=r(e,null,i,[]),u=e.length;while(u--)if(s=o[u])e[u]=!(t[u]=s)}):function(e,i,s){return t[0]=e,r(t,null,s,n),!n.pop()}}),has:N(function(e){return function(t){return nt(e,t).length>0}}),contains:N(function(e){return function(t){return(t.textContent||t.innerText||s(t)).indexOf(e)>-1}}),enabled:function(e){return e.disabled===!1},disabled:function(e){return e.disabled===!0},checked:function(e){var t=e.nodeName.toLowerCase();return t==="input"&&!!e.checked||t==="option"&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,e.selected===!0},parent:function(e){return!i.pseudos.empty(e)},empty:function(e){var t;e=e.firstChild;while(e){if(e.nodeName>"@"||(t=e.nodeType)===3||t===4)return!1;e=e.nextSibling}return!0},header:function(e){return X.test(e.nodeName)},text:function(e){var t,n;return e.nodeName.toLowerCase()==="input"&&(t=e.type)==="text"&&((n=e.getAttribute("type"))==null||n.toLowerCase()===t)},radio:rt("radio"),checkbox:rt("checkbox"),file:rt("file"),password:rt("password"),image:rt("image"),submit:it("submit"),reset:it("reset"),button:function(e){var t=e.nodeName.toLowerCase();return t==="input"&&e.type==="button"||t==="button"},input:function(e){return V.test(e.nodeName)},focus:function(e){var t=e.ownerDocument;return e===t.activeElement&&(!t.hasFocus||t.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},active:function(e){return e===e.ownerDocument.activeElement},first:st(function(){return[0]}),last:st(function(e,t){return[t-1]}),eq:st(function(e,t,n){return[n<0?n+t:n]}),even:st(function(e,t){for(var n=0;n<t;n+=2)e.push(n);return e}),odd:st(function(e,t){for(var n=1;n<t;n+=2)e.push(n);return e}),lt:st(function(e,t,n){for(var r=n<0?n+t:n;--r>=0;)e.push(r);return e}),gt:st(function(e,t,n){for(var r=n<0?n+t:n;++r<t;)e.push(r);return e})}},f=y.compareDocumentPosition?function(e,t){return e===t?(l=!0,0):(!e.compareDocumentPosition||!t.compareDocumentPosition?e.compareDocumentPosition:e.compareDocumentPosition(t)&4)?-1:1}:function(e,t){if(e===t)return l=!0,0;if(e.sourceIndex&&t.sourceIndex)return e.sourceIndex-t.sourceIndex;var n,r,i=[],s=[],o=e.parentNode,u=t.parentNode,a=o;if(o===u)return ot(e,t);if(!o)return-1;if(!u)return 1;while(a)i.unshift(a),a=a.parentNode;a=u;while(a)s.unshift(a),a=a.parentNode;n=i.length,r=s.length;for(var f=0;f<n&&f<r;f++)if(i[f]!==s[f])return ot(i[f],s[f]);return f===n?ot(e,s[f],-1):ot(i[f],t,1)},[0,0].sort(f),h=!l,nt.uniqueSort=function(e){var t,n=[],r=1,i=0;l=h,e.sort(f);if(l){for(;t=e[r];r++)t===e[r-1]&&(i=n.push(r));while(i--)e.splice(n[i],1)}return e},nt.error=function(e){throw new Error("Syntax error, unrecognized expression: "+e)},a=nt.compile=function(e,t){var n,r=[],i=[],s=A[d][e+" "];if(!s){t||(t=ut(e)),n=t.length;while(n--)s=ht(t[n]),s[d]?r.push(s):i.push(s);s=A(e,pt(i,r))}return s},g.querySelectorAll&&function(){var e,t=vt,n=/'|\\/g,r=/\=[\x20\t\r\n\f]*([^'"\]]*)[\x20\t\r\n\f]*\]/g,i=[":focus"],s=[":active"],u=y.matchesSelector||y.mozMatchesSelector||y.webkitMatchesSelector||y.oMatchesSelector||y.msMatchesSelector;K(function(e){e.innerHTML="<select><option selected=''></option></select>",e.querySelectorAll("[selected]").length||i.push("\\["+O+"*(?:checked|disabled|ismap|multiple|readonly|selected|value)"),e.querySelectorAll(":checked").length||i.push(":checked")}),K(function(e){e.innerHTML="<p test=''></p>",e.querySelectorAll("[test^='']").length&&i.push("[*^$]="+O+"*(?:\"\"|'')"),e.innerHTML="<input type='hidden'/>",e.querySelectorAll(":enabled").length||i.push(":enabled",":disabled")}),i=new RegExp(i.join("|")),vt=function(e,r,s,o,u){if(!o&&!u&&!i.test(e)){var a,f,l=!0,c=d,h=r,p=r.nodeType===9&&e;if(r.nodeType===1&&r.nodeName.toLowerCase()!=="object"){a=ut(e),(l=r.getAttribute("id"))?c=l.replace(n,"\\$&"):r.setAttribute("id",c),c="[id='"+c+"'] ",f=a.length;while(f--)a[f]=c+a[f].join("");h=z.test(e)&&r.parentNode||r,p=a.join(",")}if(p)try{return S.apply(s,x.call(h.querySelectorAll(p),0)),s}catch(v){}finally{l||r.removeAttribute("id")}}return t(e,r,s,o,u)},u&&(K(function(t){e=u.call(t,"div");try{u.call(t,"[test!='']:sizzle"),s.push("!=",H)}catch(n){}}),s=new RegExp(s.join("|")),nt.matchesSelector=function(t,n){n=n.replace(r,"='$1']");if(!o(t)&&!s.test(n)&&!i.test(n))try{var a=u.call(t,n);if(a||e||t.document&&t.document.nodeType!==11)return a}catch(f){}return nt(n,null,null,[t]).length>0})}(),i.pseudos.nth=i.pseudos.eq,i.filters=mt.prototype=i.pseudos,i.setFilters=new mt,nt.attr=v.attr,v.find=nt,v.expr=nt.selectors,v.expr[":"]=v.expr.pseudos,v.unique=nt.uniqueSort,v.text=nt.getText,v.isXMLDoc=nt.isXML,v.contains=nt.contains}(e);var nt=/Until$/,rt=/^(?:parents|prev(?:Until|All))/,it=/^.[^:#\[\.,]*$/,st=v.expr.match.needsContext,ot={children:!0,contents:!0,next:!0,prev:!0};v.fn.extend({find:function(e){var t,n,r,i,s,o,u=this;if(typeof e!="string")return v(e).filter(function(){for(t=0,n=u.length;t<n;t++)if(v.contains(u[t],this))return!0});o=this.pushStack("","find",e);for(t=0,n=this.length;t<n;t++){r=o.length,v.find(e,this[t],o);if(t>0)for(i=r;i<o.length;i++)for(s=0;s<r;s++)if(o[s]===o[i]){o.splice(i--,1);break}}return o},has:function(e){var t,n=v(e,this),r=n.length;return this.filter(function(){for(t=0;t<r;t++)if(v.contains(this,n[t]))return!0})},not:function(e){return this.pushStack(ft(this,e,!1),"not",e)},filter:function(e){return this.pushStack(ft(this,e,!0),"filter",e)},is:function(e){return!!e&&(typeof e=="string"?st.test(e)?v(e,this.context).index(this[0])>=0:v.filter(e,this).length>0:this.filter(e).length>0)},closest:function(e,t){var n,r=0,i=this.length,s=[],o=st.test(e)||typeof e!="string"?v(e,t||this.context):0;for(;r<i;r++){n=this[r];while(n&&n.ownerDocument&&n!==t&&n.nodeType!==11){if(o?o.index(n)>-1:v.find.matchesSelector(n,e)){s.push(n);break}n=n.parentNode}}return s=s.length>1?v.unique(s):s,this.pushStack(s,"closest",e)},index:function(e){return e?typeof e=="string"?v.inArray(this[0],v(e)):v.inArray(e.jquery?e[0]:e,this):this[0]&&this[0].parentNode?this.prevAll().length:-1},add:function(e,t){var n=typeof e=="string"?v(e,t):v.makeArray(e&&e.nodeType?[e]:e),r=v.merge(this.get(),n);return this.pushStack(ut(n[0])||ut(r[0])?r:v.unique(r))},addBack:function(e){return this.add(e==null?this.prevObject:this.prevObject.filter(e))}}),v.fn.andSelf=v.fn.addBack,v.each({parent:function(e){var t=e.parentNode;return t&&t.nodeType!==11?t:null},parents:function(e){return v.dir(e,"parentNode")},parentsUntil:function(e,t,n){return v.dir(e,"parentNode",n)},next:function(e){return at(e,"nextSibling")},prev:function(e){return at(e,"previousSibling")},nextAll:function(e){return v.dir(e,"nextSibling")},prevAll:function(e){return v.dir(e,"previousSibling")},nextUntil:function(e,t,n){return v.dir(e,"nextSibling",n)},prevUntil:function(e,t,n){return v.dir(e,"previousSibling",n)},siblings:function(e){return v.sibling((e.parentNode||{}).firstChild,e)},children:function(e){return v.sibling(e.firstChild)},contents:function(e){return v.nodeName(e,"iframe")?e.contentDocument||e.contentWindow.document:v.merge([],e.childNodes)}},function(e,t){v.fn[e]=function(n,r){var i=v.map(this,t,n);return nt.test(e)||(r=n),r&&typeof r=="string"&&(i=v.filter(r,i)),i=this.length>1&&!ot[e]?v.unique(i):i,this.length>1&&rt.test(e)&&(i=i.reverse()),this.pushStack(i,e,l.call(arguments).join(","))}}),v.extend({filter:function(e,t,n){return n&&(e=":not("+e+")"),t.length===1?v.find.matchesSelector(t[0],e)?[t[0]]:[]:v.find.matches(e,t)},dir:function(e,n,r){var i=[],s=e[n];while(s&&s.nodeType!==9&&(r===t||s.nodeType!==1||!v(s).is(r)))s.nodeType===1&&i.push(s),s=s[n];return i},sibling:function(e,t){var n=[];for(;e;e=e.nextSibling)e.nodeType===1&&e!==t&&n.push(e);return n}});var ct="abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",ht=/ jQuery\d+="(?:null|\d+)"/g,pt=/^\s+/,dt=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,vt=/<([\w:]+)/,mt=/<tbody/i,gt=/<|&#?\w+;/,yt=/<(?:script|style|link)/i,bt=/<(?:script|object|embed|option|style)/i,wt=new RegExp("<(?:"+ct+")[\\s/>]","i"),Et=/^(?:checkbox|radio)$/,St=/checked\s*(?:[^=]|=\s*.checked.)/i,xt=/\/(java|ecma)script/i,Tt=/^\s*<!(?:\[CDATA\[|\-\-)|[\]\-]{2}>\s*$/g,Nt={option:[1,"<select multiple='multiple'>","</select>"],legend:[1,"<fieldset>","</fieldset>"],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],area:[1,"<map>","</map>"],_default:[0,"",""]},Ct=lt(i),kt=Ct.appendChild(i.createElement("div"));Nt.optgroup=Nt.option,Nt.tbody=Nt.tfoot=Nt.colgroup=Nt.caption=Nt.thead,Nt.th=Nt.td,v.support.htmlSerialize||(Nt._default=[1,"X<div>","</div>"]),v.fn.extend({text:function(e){return v.access(this,function(e){return e===t?v.text(this):this.empty().append((this[0]&&this[0].ownerDocument||i).createTextNode(e))},null,e,arguments.length)},wrapAll:function(e){if(v.isFunction(e))return this.each(function(t){v(this).wrapAll(e.call(this,t))});if(this[0]){var t=v(e,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&t.insertBefore(this[0]),t.map(function(){var e=this;while(e.firstChild&&e.firstChild.nodeType===1)e=e.firstChild;return e}).append(this)}return this},wrapInner:function(e){return v.isFunction(e)?this.each(function(t){v(this).wrapInner(e.call(this,t))}):this.each(function(){var t=v(this),n=t.contents();n.length?n.wrapAll(e):t.append(e)})},wrap:function(e){var t=v.isFunction(e);return this.each(function(n){v(this).wrapAll(t?e.call(this,n):e)})},unwrap:function(){return this.parent().each(function(){v.nodeName(this,"body")||v(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,!0,function(e){(this.nodeType===1||this.nodeType===11)&&this.appendChild(e)})},prepend:function(){return this.domManip(arguments,!0,function(e){(this.nodeType===1||this.nodeType===11)&&this.insertBefore(e,this.firstChild)})},before:function(){if(!ut(this[0]))return this.domManip(arguments,!1,function(e){this.parentNode.insertBefore(e,this)});if(arguments.length){var e=v.clean(arguments);return this.pushStack(v.merge(e,this),"before",this.selector)}},after:function(){if(!ut(this[0]))return this.domManip(arguments,!1,function(e){this.parentNode.insertBefore(e,this.nextSibling)});if(arguments.length){var e=v.clean(arguments);return this.pushStack(v.merge(this,e),"after",this.selector)}},remove:function(e,t){var n,r=0;for(;(n=this[r])!=null;r++)if(!e||v.filter(e,[n]).length)!t&&n.nodeType===1&&(v.cleanData(n.getElementsByTagName("*")),v.cleanData([n])),n.parentNode&&n.parentNode.removeChild(n);return this},empty:function(){var e,t=0;for(;(e=this[t])!=null;t++){e.nodeType===1&&v.cleanData(e.getElementsByTagName("*"));while(e.firstChild)e.removeChild(e.firstChild)}return this},clone:function(e,t){return e=e==null?!1:e,t=t==null?e:t,this.map(function(){return v.clone(this,e,t)})},html:function(e){return v.access(this,function(e){var n=this[0]||{},r=0,i=this.length;if(e===t)return n.nodeType===1?n.innerHTML.replace(ht,""):t;if(typeof e=="string"&&!yt.test(e)&&(v.support.htmlSerialize||!wt.test(e))&&(v.support.leadingWhitespace||!pt.test(e))&&!Nt[(vt.exec(e)||["",""])[1].toLowerCase()]){e=e.replace(dt,"<$1></$2>");try{for(;r<i;r++)n=this[r]||{},n.nodeType===1&&(v.cleanData(n.getElementsByTagName("*")),n.innerHTML=e);n=0}catch(s){}}n&&this.empty().append(e)},null,e,arguments.length)},replaceWith:function(e){return ut(this[0])?this.length?this.pushStack(v(v.isFunction(e)?e():e),"replaceWith",e):this:v.isFunction(e)?this.each(function(t){var n=v(this),r=n.html();n.replaceWith(e.call(this,t,r))}):(typeof e!="string"&&(e=v(e).detach()),this.each(function(){var t=this.nextSibling,n=this.parentNode;v(this).remove(),t?v(t).before(e):v(n).append(e)}))},detach:function(e){return this.remove(e,!0)},domManip:function(e,n,r){e=[].concat.apply([],e);var i,s,o,u,a=0,f=e[0],l=[],c=this.length;if(!v.support.checkClone&&c>1&&typeof f=="string"&&St.test(f))return this.each(function(){v(this).domManip(e,n,r)});if(v.isFunction(f))return this.each(function(i){var s=v(this);e[0]=f.call(this,i,n?s.html():t),s.domManip(e,n,r)});if(this[0]){i=v.buildFragment(e,this,l),o=i.fragment,s=o.firstChild,o.childNodes.length===1&&(o=s);if(s){n=n&&v.nodeName(s,"tr");for(u=i.cacheable||c-1;a<c;a++)r.call(n&&v.nodeName(this[a],"table")?Lt(this[a],"tbody"):this[a],a===u?o:v.clone(o,!0,!0))}o=s=null,l.length&&v.each(l,function(e,t){t.src?v.ajax?v.ajax({url:t.src,type:"GET",dataType:"script",async:!1,global:!1,"throws":!0}):v.error("no ajax"):v.globalEval((t.text||t.textContent||t.innerHTML||"").replace(Tt,"")),t.parentNode&&t.parentNode.removeChild(t)})}return this}}),v.buildFragment=function(e,n,r){var s,o,u,a=e[0];return n=n||i,n=!n.nodeType&&n[0]||n,n=n.ownerDocument||n,e.length===1&&typeof a=="string"&&a.length<512&&n===i&&a.charAt(0)==="<"&&!bt.test(a)&&(v.support.checkClone||!St.test(a))&&(v.support.html5Clone||!wt.test(a))&&(o=!0,s=v.fragments[a],u=s!==t),s||(s=n.createDocumentFragment(),v.clean(e,n,s,r),o&&(v.fragments[a]=u&&s)),{fragment:s,cacheable:o}},v.fragments={},v.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(e,t){v.fn[e]=function(n){var r,i=0,s=[],o=v(n),u=o.length,a=this.length===1&&this[0].parentNode;if((a==null||a&&a.nodeType===11&&a.childNodes.length===1)&&u===1)return o[t](this[0]),this;for(;i<u;i++)r=(i>0?this.clone(!0):this).get(),v(o[i])[t](r),s=s.concat(r);return this.pushStack(s,e,o.selector)}}),v.extend({clone:function(e,t,n){var r,i,s,o;v.support.html5Clone||v.isXMLDoc(e)||!wt.test("<"+e.nodeName+">")?o=e.cloneNode(!0):(kt.innerHTML=e.outerHTML,kt.removeChild(o=kt.firstChild));if((!v.support.noCloneEvent||!v.support.noCloneChecked)&&(e.nodeType===1||e.nodeType===11)&&!v.isXMLDoc(e)){Ot(e,o),r=Mt(e),i=Mt(o);for(s=0;r[s];++s)i[s]&&Ot(r[s],i[s])}if(t){At(e,o);if(n){r=Mt(e),i=Mt(o);for(s=0;r[s];++s)At(r[s],i[s])}}return r=i=null,o},clean:function(e,t,n,r){var s,o,u,a,f,l,c,h,p,d,m,g,y=t===i&&Ct,b=[];if(!t||typeof t.createDocumentFragment=="undefined")t=i;for(s=0;(u=e[s])!=null;s++){typeof u=="number"&&(u+="");if(!u)continue;if(typeof u=="string")if(!gt.test(u))u=t.createTextNode(u);else{y=y||lt(t),c=t.createElement("div"),y.appendChild(c),u=u.replace(dt,"<$1></$2>"),a=(vt.exec(u)||["",""])[1].toLowerCase(),f=Nt[a]||Nt._default,l=f[0],c.innerHTML=f[1]+u+f[2];while(l--)c=c.lastChild;if(!v.support.tbody){h=mt.test(u),p=a==="table"&&!h?c.firstChild&&c.firstChild.childNodes:f[1]==="<table>"&&!h?c.childNodes:[];for(o=p.length-1;o>=0;--o)v.nodeName(p[o],"tbody")&&!p[o].childNodes.length&&p[o].parentNode.removeChild(p[o])}!v.support.leadingWhitespace&&pt.test(u)&&c.insertBefore(t.createTextNode(pt.exec(u)[0]),c.firstChild),u=c.childNodes,c.parentNode.removeChild(c)}u.nodeType?b.push(u):v.merge(b,u)}c&&(u=c=y=null);if(!v.support.appendChecked)for(s=0;(u=b[s])!=null;s++)v.nodeName(u,"input")?_t(u):typeof u.getElementsByTagName!="undefined"&&v.grep(u.getElementsByTagName("input"),_t);if(n){m=function(e){if(!e.type||xt.test(e.type))return r?r.push(e.parentNode?e.parentNode.removeChild(e):e):n.appendChild(e)};for(s=0;(u=b[s])!=null;s++)if(!v.nodeName(u,"script")||!m(u))n.appendChild(u),typeof u.getElementsByTagName!="undefined"&&(g=v.grep(v.merge([],u.getElementsByTagName("script")),m),b.splice.apply(b,[s+1,0].concat(g)),s+=g.length)}return b},cleanData:function(e,t){var n,r,i,s,o=0,u=v.expando,a=v.cache,f=v.support.deleteExpando,l=v.event.special;for(;(i=e[o])!=null;o++)if(t||v.acceptData(i)){r=i[u],n=r&&a[r];if(n){if(n.events)for(s in n.events)l[s]?v.event.remove(i,s):v.removeEvent(i,s,n.handle);a[r]&&(delete a[r],f?delete i[u]:i.removeAttribute?i.removeAttribute(u):i[u]=null,v.deletedIds.push(r))}}}}),function(){var e,t;v.uaMatch=function(e){e=e.toLowerCase();var t=/(chrome)[ \/]([\w.]+)/.exec(e)||/(webkit)[ \/]([\w.]+)/.exec(e)||/(opera)(?:.*version|)[ \/]([\w.]+)/.exec(e)||/(msie) ([\w.]+)/.exec(e)||e.indexOf("compatible")<0&&/(mozilla)(?:.*? rv:([\w.]+)|)/.exec(e)||[];return{browser:t[1]||"",version:t[2]||"0"}},e=v.uaMatch(o.userAgent),t={},e.browser&&(t[e.browser]=!0,t.version=e.version),t.chrome?t.webkit=!0:t.webkit&&(t.safari=!0),v.browser=t,v.sub=function(){function e(t,n){return new e.fn.init(t,n)}v.extend(!0,e,this),e.superclass=this,e.fn=e.prototype=this(),e.fn.constructor=e,e.sub=this.sub,e.fn.init=function(r,i){return i&&i instanceof v&&!(i instanceof e)&&(i=e(i)),v.fn.init.call(this,r,i,t)},e.fn.init.prototype=e.fn;var t=e(i);return e}}();var Dt,Pt,Ht,Bt=/alpha\([^)]*\)/i,jt=/opacity=([^)]*)/,Ft=/^(top|right|bottom|left)$/,It=/^(none|table(?!-c[ea]).+)/,qt=/^margin/,Rt=new RegExp("^("+m+")(.*)$","i"),Ut=new RegExp("^("+m+")(?!px)[a-z%]+$","i"),zt=new RegExp("^([-+])=("+m+")","i"),Wt={BODY:"block"},Xt={position:"absolute",visibility:"hidden",display:"block"},Vt={letterSpacing:0,fontWeight:400},$t=["Top","Right","Bottom","Left"],Jt=["Webkit","O","Moz","ms"],Kt=v.fn.toggle;v.fn.extend({css:function(e,n){return v.access(this,function(e,n,r){return r!==t?v.style(e,n,r):v.css(e,n)},e,n,arguments.length>1)},show:function(){return Yt(this,!0)},hide:function(){return Yt(this)},toggle:function(e,t){var n=typeof e=="boolean";return v.isFunction(e)&&v.isFunction(t)?Kt.apply(this,arguments):this.each(function(){(n?e:Gt(this))?v(this).show():v(this).hide()})}}),v.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=Dt(e,"opacity");return n===""?"1":n}}}},cssNumber:{fillOpacity:!0,fontWeight:!0,lineHeight:!0,opacity:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":v.support.cssFloat?"cssFloat":"styleFloat"},style:function(e,n,r,i){if(!e||e.nodeType===3||e.nodeType===8||!e.style)return;var s,o,u,a=v.camelCase(n),f=e.style;n=v.cssProps[a]||(v.cssProps[a]=Qt(f,a)),u=v.cssHooks[n]||v.cssHooks[a];if(r===t)return u&&"get"in u&&(s=u.get(e,!1,i))!==t?s:f[n];o=typeof r,o==="string"&&(s=zt.exec(r))&&(r=(s[1]+1)*s[2]+parseFloat(v.css(e,n)),o="number");if(r==null||o==="number"&&isNaN(r))return;o==="number"&&!v.cssNumber[a]&&(r+="px");if(!u||!("set"in u)||(r=u.set(e,r,i))!==t)try{f[n]=r}catch(l){}},css:function(e,n,r,i){var s,o,u,a=v.camelCase(n);return n=v.cssProps[a]||(v.cssProps[a]=Qt(e.style,a)),u=v.cssHooks[n]||v.cssHooks[a],u&&"get"in u&&(s=u.get(e,!0,i)),s===t&&(s=Dt(e,n)),s==="normal"&&n in Vt&&(s=Vt[n]),r||i!==t?(o=parseFloat(s),r||v.isNumeric(o)?o||0:s):s},swap:function(e,t,n){var r,i,s={};for(i in t)s[i]=e.style[i],e.style[i]=t[i];r=n.call(e);for(i in t)e.style[i]=s[i];return r}}),e.getComputedStyle?Dt=function(t,n){var r,i,s,o,u=e.getComputedStyle(t,null),a=t.style;return u&&(r=u.getPropertyValue(n)||u[n],r===""&&!v.contains(t.ownerDocument,t)&&(r=v.style(t,n)),Ut.test(r)&&qt.test(n)&&(i=a.width,s=a.minWidth,o=a.maxWidth,a.minWidth=a.maxWidth=a.width=r,r=u.width,a.width=i,a.minWidth=s,a.maxWidth=o)),r}:i.documentElement.currentStyle&&(Dt=function(e,t){var n,r,i=e.currentStyle&&e.currentStyle[t],s=e.style;return i==null&&s&&s[t]&&(i=s[t]),Ut.test(i)&&!Ft.test(t)&&(n=s.left,r=e.runtimeStyle&&e.runtimeStyle.left,r&&(e.runtimeStyle.left=e.currentStyle.left),s.left=t==="fontSize"?"1em":i,i=s.pixelLeft+"px",s.left=n,r&&(e.runtimeStyle.left=r)),i===""?"auto":i}),v.each(["height","width"],function(e,t){v.cssHooks[t]={get:function(e,n,r){if(n)return e.offsetWidth===0&&It.test(Dt(e,"display"))?v.swap(e,Xt,function(){return tn(e,t,r)}):tn(e,t,r)},set:function(e,n,r){return Zt(e,n,r?en(e,t,r,v.support.boxSizing&&v.css(e,"boxSizing")==="border-box"):0)}}}),v.support.opacity||(v.cssHooks.opacity={get:function(e,t){return jt.test((t&&e.currentStyle?e.currentStyle.filter:e.style.filter)||"")?.01*parseFloat(RegExp.$1)+"":t?"1":""},set:function(e,t){var n=e.style,r=e.currentStyle,i=v.isNumeric(t)?"alpha(opacity="+t*100+")":"",s=r&&r.filter||n.filter||"";n.zoom=1;if(t>=1&&v.trim(s.replace(Bt,""))===""&&n.removeAttribute){n.removeAttribute("filter");if(r&&!r.filter)return}n.filter=Bt.test(s)?s.replace(Bt,i):s+" "+i}}),v(function(){v.support.reliableMarginRight||(v.cssHooks.marginRight={get:function(e,t){return v.swap(e,{display:"inline-block"},function(){if(t)return Dt(e,"marginRight")})}}),!v.support.pixelPosition&&v.fn.position&&v.each(["top","left"],function(e,t){v.cssHooks[t]={get:function(e,n){if(n){var r=Dt(e,t);return Ut.test(r)?v(e).position()[t]+"px":r}}}})}),v.expr&&v.expr.filters&&(v.expr.filters.hidden=function(e){return e.offsetWidth===0&&e.offsetHeight===0||!v.support.reliableHiddenOffsets&&(e.style&&e.style.display||Dt(e,"display"))==="none"},v.expr.filters.visible=function(e){return!v.expr.filters.hidden(e)}),v.each({margin:"",padding:"",border:"Width"},function(e,t){v.cssHooks[e+t]={expand:function(n){var r,i=typeof n=="string"?n.split(" "):[n],s={};for(r=0;r<4;r++)s[e+$t[r]+t]=i[r]||i[r-2]||i[0];return s}},qt.test(e)||(v.cssHooks[e+t].set=Zt)});var rn=/%20/g,sn=/\[\]$/,on=/\r?\n/g,un=/^(?:color|date|datetime|datetime-local|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,an=/^(?:select|textarea)/i;v.fn.extend({serialize:function(){return v.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?v.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||an.test(this.nodeName)||un.test(this.type))}).map(function(e,t){var n=v(this).val();return n==null?null:v.isArray(n)?v.map(n,function(e,n){return{name:t.name,value:e.replace(on,"\r\n")}}):{name:t.name,value:n.replace(on,"\r\n")}}).get()}}),v.param=function(e,n){var r,i=[],s=function(e,t){t=v.isFunction(t)?t():t==null?"":t,i[i.length]=encodeURIComponent(e)+"="+encodeURIComponent(t)};n===t&&(n=v.ajaxSettings&&v.ajaxSettings.traditional);if(v.isArray(e)||e.jquery&&!v.isPlainObject(e))v.each(e,function(){s(this.name,this.value)});else for(r in e)fn(r,e[r],n,s);return i.join("&").replace(rn,"+")};var ln,cn,hn=/#.*$/,pn=/^(.*?):[ \t]*([^\r\n]*)\r?$/mg,dn=/^(?:about|app|app\-storage|.+\-extension|file|res|widget):$/,vn=/^(?:GET|HEAD)$/,mn=/^\/\//,gn=/\?/,yn=/<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi,bn=/([?&])_=[^&]*/,wn=/^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+)|)|)/,En=v.fn.load,Sn={},xn={},Tn=["*/"]+["*"];try{cn=s.href}catch(Nn){cn=i.createElement("a"),cn.href="",cn=cn.href}ln=wn.exec(cn.toLowerCase())||[],v.fn.load=function(e,n,r){if(typeof e!="string"&&En)return En.apply(this,arguments);if(!this.length)return this;var i,s,o,u=this,a=e.indexOf(" ");return a>=0&&(i=e.slice(a,e.length),e=e.slice(0,a)),v.isFunction(n)?(r=n,n=t):n&&typeof n=="object"&&(s="POST"),v.ajax({url:e,type:s,dataType:"html",data:n,complete:function(e,t){r&&u.each(r,o||[e.responseText,t,e])}}).done(function(e){o=arguments,u.html(i?v("<div>").append(e.replace(yn,"")).find(i):e)}),this},v.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(e,t){v.fn[t]=function(e){return this.on(t,e)}}),v.each(["get","post"],function(e,n){v[n]=function(e,r,i,s){return v.isFunction(r)&&(s=s||i,i=r,r=t),v.ajax({type:n,url:e,data:r,success:i,dataType:s})}}),v.extend({getScript:function(e,n){return v.get(e,t,n,"script")},getJSON:function(e,t,n){return v.get(e,t,n,"json")},ajaxSetup:function(e,t){return t?Ln(e,v.ajaxSettings):(t=e,e=v.ajaxSettings),Ln(e,t),e},ajaxSettings:{url:cn,isLocal:dn.test(ln[1]),global:!0,type:"GET",contentType:"application/x-www-form-urlencoded; charset=UTF-8",processData:!0,async:!0,accepts:{xml:"application/xml, text/xml",html:"text/html",text:"text/plain",json:"application/json, text/javascript","*":Tn},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":e.String,"text html":!0,"text json":v.parseJSON,"text xml":v.parseXML},flatOptions:{context:!0,url:!0}},ajaxPrefilter:Cn(Sn),ajaxTransport:Cn(xn),ajax:function(e,n){function T(e,n,s,a){var l,y,b,w,S,T=n;if(E===2)return;E=2,u&&clearTimeout(u),o=t,i=a||"",x.readyState=e>0?4:0,s&&(w=An(c,x,s));if(e>=200&&e<300||e===304)c.ifModified&&(S=x.getResponseHeader("Last-Modified"),S&&(v.lastModified[r]=S),S=x.getResponseHeader("Etag"),S&&(v.etag[r]=S)),e===304?(T="notmodified",l=!0):(l=On(c,w),T=l.state,y=l.data,b=l.error,l=!b);else{b=T;if(!T||e)T="error",e<0&&(e=0)}x.status=e,x.statusText=(n||T)+"",l?d.resolveWith(h,[y,T,x]):d.rejectWith(h,[x,T,b]),x.statusCode(g),g=t,f&&p.trigger("ajax"+(l?"Success":"Error"),[x,c,l?y:b]),m.fireWith(h,[x,T]),f&&(p.trigger("ajaxComplete",[x,c]),--v.active||v.event.trigger("ajaxStop"))}typeof e=="object"&&(n=e,e=t),n=n||{};var r,i,s,o,u,a,f,l,c=v.ajaxSetup({},n),h=c.context||c,p=h!==c&&(h.nodeType||h instanceof v)?v(h):v.event,d=v.Deferred(),m=v.Callbacks("once memory"),g=c.statusCode||{},b={},w={},E=0,S="canceled",x={readyState:0,setRequestHeader:function(e,t){if(!E){var n=e.toLowerCase();e=w[n]=w[n]||e,b[e]=t}return this},getAllResponseHeaders:function(){return E===2?i:null},getResponseHeader:function(e){var n;if(E===2){if(!s){s={};while(n=pn.exec(i))s[n[1].toLowerCase()]=n[2]}n=s[e.toLowerCase()]}return n===t?null:n},overrideMimeType:function(e){return E||(c.mimeType=e),this},abort:function(e){return e=e||S,o&&o.abort(e),T(0,e),this}};d.promise(x),x.success=x.done,x.error=x.fail,x.complete=m.add,x.statusCode=function(e){if(e){var t;if(E<2)for(t in e)g[t]=[g[t],e[t]];else t=e[x.status],x.always(t)}return this},c.url=((e||c.url)+"").replace(hn,"").replace(mn,ln[1]+"//"),c.dataTypes=v.trim(c.dataType||"*").toLowerCase().split(y),c.crossDomain==null&&(a=wn.exec(c.url.toLowerCase()),c.crossDomain=!(!a||a[1]===ln[1]&&a[2]===ln[2]&&(a[3]||(a[1]==="http:"?80:443))==(ln[3]||(ln[1]==="http:"?80:443)))),c.data&&c.processData&&typeof c.data!="string"&&(c.data=v.param(c.data,c.traditional)),kn(Sn,c,n,x);if(E===2)return x;f=c.global,c.type=c.type.toUpperCase(),c.hasContent=!vn.test(c.type),f&&v.active++===0&&v.event.trigger("ajaxStart");if(!c.hasContent){c.data&&(c.url+=(gn.test(c.url)?"&":"?")+c.data,delete c.data),r=c.url;if(c.cache===!1){var N=v.now(),C=c.url.replace(bn,"$1_="+N);c.url=C+(C===c.url?(gn.test(c.url)?"&":"?")+"_="+N:"")}}(c.data&&c.hasContent&&c.contentType!==!1||n.contentType)&&x.setRequestHeader("Content-Type",c.contentType),c.ifModified&&(r=r||c.url,v.lastModified[r]&&x.setRequestHeader("If-Modified-Since",v.lastModified[r]),v.etag[r]&&x.setRequestHeader("If-None-Match",v.etag[r])),x.setRequestHeader("Accept",c.dataTypes[0]&&c.accepts[c.dataTypes[0]]?c.accepts[c.dataTypes[0]]+(c.dataTypes[0]!=="*"?", "+Tn+"; q=0.01":""):c.accepts["*"]);for(l in c.headers)x.setRequestHeader(l,c.headers[l]);if(!c.beforeSend||c.beforeSend.call(h,x,c)!==!1&&E!==2){S="abort";for(l in{success:1,error:1,complete:1})x[l](c[l]);o=kn(xn,c,n,x);if(!o)T(-1,"No Transport");else{x.readyState=1,f&&p.trigger("ajaxSend",[x,c]),c.async&&c.timeout>0&&(u=setTimeout(function(){x.abort("timeout")},c.timeout));try{E=1,o.send(b,T)}catch(k){if(!(E<2))throw k;T(-1,k)}}return x}return x.abort()},active:0,lastModified:{},etag:{}});var Mn=[],_n=/\?/,Dn=/(=)\?(?=&|$)|\?\?/,Pn=v.now();v.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Mn.pop()||v.expando+"_"+Pn++;return this[e]=!0,e}}),v.ajaxPrefilter("json jsonp",function(n,r,i){var s,o,u,a=n.data,f=n.url,l=n.jsonp!==!1,c=l&&Dn.test(f),h=l&&!c&&typeof a=="string"&&!(n.contentType||"").indexOf("application/x-www-form-urlencoded")&&Dn.test(a);if(n.dataTypes[0]==="jsonp"||c||h)return s=n.jsonpCallback=v.isFunction(n.jsonpCallback)?n.jsonpCallback():n.jsonpCallback,o=e[s],c?n.url=f.replace(Dn,"$1"+s):h?n.data=a.replace(Dn,"$1"+s):l&&(n.url+=(_n.test(f)?"&":"?")+n.jsonp+"="+s),n.converters["script json"]=function(){return u||v.error(s+" was not called"),u[0]},n.dataTypes[0]="json",e[s]=function(){u=arguments},i.always(function(){e[s]=o,n[s]&&(n.jsonpCallback=r.jsonpCallback,Mn.push(s)),u&&v.isFunction(o)&&o(u[0]),u=o=t}),"script"}),v.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/javascript|ecmascript/},converters:{"text script":function(e){return v.globalEval(e),e}}}),v.ajaxPrefilter("script",function(e){e.cache===t&&(e.cache=!1),e.crossDomain&&(e.type="GET",e.global=!1)}),v.ajaxTransport("script",function(e){if(e.crossDomain){var n,r=i.head||i.getElementsByTagName("head")[0]||i.documentElement;return{send:function(s,o){n=i.createElement("script"),n.async="async",e.scriptCharset&&(n.charset=e.scriptCharset),n.src=e.url,n.onload=n.onreadystatechange=function(e,i){if(i||!n.readyState||/loaded|complete/.test(n.readyState))n.onload=n.onreadystatechange=null,r&&n.parentNode&&r.removeChild(n),n=t,i||o(200,"success")},r.insertBefore(n,r.firstChild)},abort:function(){n&&n.onload(0,1)}}}});var Hn,Bn=e.ActiveXObject?function(){for(var e in Hn)Hn[e](0,1)}:!1,jn=0;v.ajaxSettings.xhr=e.ActiveXObject?function(){return!this.isLocal&&Fn()||In()}:Fn,function(e){v.extend(v.support,{ajax:!!e,cors:!!e&&"withCredentials"in e})}(v.ajaxSettings.xhr()),v.support.ajax&&v.ajaxTransport(function(n){if(!n.crossDomain||v.support.cors){var r;return{send:function(i,s){var o,u,a=n.xhr();n.username?a.open(n.type,n.url,n.async,n.username,n.password):a.open(n.type,n.url,n.async);if(n.xhrFields)for(u in n.xhrFields)a[u]=n.xhrFields[u];n.mimeType&&a.overrideMimeType&&a.overrideMimeType(n.mimeType),!n.crossDomain&&!i["X-Requested-With"]&&(i["X-Requested-With"]="XMLHttpRequest");try{for(u in i)a.setRequestHeader(u,i[u])}catch(f){}a.send(n.hasContent&&n.data||null),r=function(e,i){var u,f,l,c,h;try{if(r&&(i||a.readyState===4)){r=t,o&&(a.onreadystatechange=v.noop,Bn&&delete Hn[o]);if(i)a.readyState!==4&&a.abort();else{u=a.status,l=a.getAllResponseHeaders(),c={},h=a.responseXML,h&&h.documentElement&&(c.xml=h);try{c.text=a.responseText}catch(p){}try{f=a.statusText}catch(p){f=""}!u&&n.isLocal&&!n.crossDomain?u=c.text?200:404:u===1223&&(u=204)}}}catch(d){i||s(-1,d)}c&&s(u,f,c,l)},n.async?a.readyState===4?setTimeout(r,0):(o=++jn,Bn&&(Hn||(Hn={},v(e).unload(Bn)),Hn[o]=r),a.onreadystatechange=r):r()},abort:function(){r&&r(0,1)}}}});var qn,Rn,Un=/^(?:toggle|show|hide)$/,zn=new RegExp("^(?:([-+])=|)("+m+")([a-z%]*)$","i"),Wn=/queueHooks$/,Xn=[Gn],Vn={"*":[function(e,t){var n,r,i=this.createTween(e,t),s=zn.exec(t),o=i.cur(),u=+o||0,a=1,f=20;if(s){n=+s[2],r=s[3]||(v.cssNumber[e]?"":"px");if(r!=="px"&&u){u=v.css(i.elem,e,!0)||n||1;do a=a||".5",u/=a,v.style(i.elem,e,u+r);while(a!==(a=i.cur()/o)&&a!==1&&--f)}i.unit=r,i.start=u,i.end=s[1]?u+(s[1]+1)*n:n}return i}]};v.Animation=v.extend(Kn,{tweener:function(e,t){v.isFunction(e)?(t=e,e=["*"]):e=e.split(" ");var n,r=0,i=e.length;for(;r<i;r++)n=e[r],Vn[n]=Vn[n]||[],Vn[n].unshift(t)},prefilter:function(e,t){t?Xn.unshift(e):Xn.push(e)}}),v.Tween=Yn,Yn.prototype={constructor:Yn,init:function(e,t,n,r,i,s){this.elem=e,this.prop=n,this.easing=i||"swing",this.options=t,this.start=this.now=this.cur(),this.end=r,this.unit=s||(v.cssNumber[n]?"":"px")},cur:function(){var e=Yn.propHooks[this.prop];return e&&e.get?e.get(this):Yn.propHooks._default.get(this)},run:function(e){var t,n=Yn.propHooks[this.prop];return this.options.duration?this.pos=t=v.easing[this.easing](e,this.options.duration*e,0,1,this.options.duration):this.pos=t=e,this.now=(this.end-this.start)*t+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),n&&n.set?n.set(this):Yn.propHooks._default.set(this),this}},Yn.prototype.init.prototype=Yn.prototype,Yn.propHooks={_default:{get:function(e){var t;return e.elem[e.prop]==null||!!e.elem.style&&e.elem.style[e.prop]!=null?(t=v.css(e.elem,e.prop,!1,""),!t||t==="auto"?0:t):e.elem[e.prop]},set:function(e){v.fx.step[e.prop]?v.fx.step[e.prop](e):e.elem.style&&(e.elem.style[v.cssProps[e.prop]]!=null||v.cssHooks[e.prop])?v.style(e.elem,e.prop,e.now+e.unit):e.elem[e.prop]=e.now}}},Yn.propHooks.scrollTop=Yn.propHooks.scrollLeft={set:function(e){e.elem.nodeType&&e.elem.parentNode&&(e.elem[e.prop]=e.now)}},v.each(["toggle","show","hide"],function(e,t){var n=v.fn[t];v.fn[t]=function(r,i,s){return r==null||typeof r=="boolean"||!e&&v.isFunction(r)&&v.isFunction(i)?n.apply(this,arguments):this.animate(Zn(t,!0),r,i,s)}}),v.fn.extend({fadeTo:function(e,t,n,r){return this.filter(Gt).css("opacity",0).show().end().animate({opacity:t},e,n,r)},animate:function(e,t,n,r){var i=v.isEmptyObject(e),s=v.speed(t,n,r),o=function(){var t=Kn(this,v.extend({},e),s);i&&t.stop(!0)};return i||s.queue===!1?this.each(o):this.queue(s.queue,o)},stop:function(e,n,r){var i=function(e){var t=e.stop;delete e.stop,t(r)};return typeof e!="string"&&(r=n,n=e,e=t),n&&e!==!1&&this.queue(e||"fx",[]),this.each(function(){var t=!0,n=e!=null&&e+"queueHooks",s=v.timers,o=v._data(this);if(n)o[n]&&o[n].stop&&i(o[n]);else for(n in o)o[n]&&o[n].stop&&Wn.test(n)&&i(o[n]);for(n=s.length;n--;)s[n].elem===this&&(e==null||s[n].queue===e)&&(s[n].anim.stop(r),t=!1,s.splice(n,1));(t||!r)&&v.dequeue(this,e)})}}),v.each({slideDown:Zn("show"),slideUp:Zn("hide"),slideToggle:Zn("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(e,t){v.fn[e]=function(e,n,r){return this.animate(t,e,n,r)}}),v.speed=function(e,t,n){var r=e&&typeof e=="object"?v.extend({},e):{complete:n||!n&&t||v.isFunction(e)&&e,duration:e,easing:n&&t||t&&!v.isFunction(t)&&t};r.duration=v.fx.off?0:typeof r.duration=="number"?r.duration:r.duration in v.fx.speeds?v.fx.speeds[r.duration]:v.fx.speeds._default;if(r.queue==null||r.queue===!0)r.queue="fx";return r.old=r.complete,r.complete=function(){v.isFunction(r.old)&&r.old.call(this),r.queue&&v.dequeue(this,r.queue)},r},v.easing={linear:function(e){return e},swing:function(e){return.5-Math.cos(e*Math.PI)/2}},v.timers=[],v.fx=Yn.prototype.init,v.fx.tick=function(){var e,n=v.timers,r=0;qn=v.now();for(;r<n.length;r++)e=n[r],!e()&&n[r]===e&&n.splice(r--,1);n.length||v.fx.stop(),qn=t},v.fx.timer=function(e){e()&&v.timers.push(e)&&!Rn&&(Rn=setInterval(v.fx.tick,v.fx.interval))},v.fx.interval=13,v.fx.stop=function(){clearInterval(Rn),Rn=null},v.fx.speeds={slow:600,fast:200,_default:400},v.fx.step={},v.expr&&v.expr.filters&&(v.expr.filters.animated=function(e){return v.grep(v.timers,function(t){return e===t.elem}).length});var er=/^(?:body|html)$/i;v.fn.offset=function(e){if(arguments.length)return e===t?this:this.each(function(t){v.offset.setOffset(this,e,t)});var n,r,i,s,o,u,a,f={top:0,left:0},l=this[0],c=l&&l.ownerDocument;if(!c)return;return(r=c.body)===l?v.offset.bodyOffset(l):(n=c.documentElement,v.contains(n,l)?(typeof l.getBoundingClientRect!="undefined"&&(f=l.getBoundingClientRect()),i=tr(c),s=n.clientTop||r.clientTop||0,o=n.clientLeft||r.clientLeft||0,u=i.pageYOffset||n.scrollTop,a=i.pageXOffset||n.scrollLeft,{top:f.top+u-s,left:f.left+a-o}):f)},v.offset={bodyOffset:function(e){var t=e.offsetTop,n=e.offsetLeft;return v.support.doesNotIncludeMarginInBodyOffset&&(t+=parseFloat(v.css(e,"marginTop"))||0,n+=parseFloat(v.css(e,"marginLeft"))||0),{top:t,left:n}},setOffset:function(e,t,n){var r=v.css(e,"position");r==="static"&&(e.style.position="relative");var i=v(e),s=i.offset(),o=v.css(e,"top"),u=v.css(e,"left"),a=(r==="absolute"||r==="fixed")&&v.inArray("auto",[o,u])>-1,f={},l={},c,h;a?(l=i.position(),c=l.top,h=l.left):(c=parseFloat(o)||0,h=parseFloat(u)||0),v.isFunction(t)&&(t=t.call(e,n,s)),t.top!=null&&(f.top=t.top-s.top+c),t.left!=null&&(f.left=t.left-s.left+h),"using"in t?t.using.call(e,f):i.css(f)}},v.fn.extend({position:function(){if(!this[0])return;var e=this[0],t=this.offsetParent(),n=this.offset(),r=er.test(t[0].nodeName)?{top:0,left:0}:t.offset();return n.top-=parseFloat(v.css(e,"marginTop"))||0,n.left-=parseFloat(v.css(e,"marginLeft"))||0,r.top+=parseFloat(v.css(t[0],"borderTopWidth"))||0,r.left+=parseFloat(v.css(t[0],"borderLeftWidth"))||0,{top:n.top-r.top,left:n.left-r.left}},offsetParent:function(){return this.map(function(){var e=this.offsetParent||i.body;while(e&&!er.test(e.nodeName)&&v.css(e,"position")==="static")e=e.offsetParent;return e||i.body})}}),v.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(e,n){var r=/Y/.test(n);v.fn[e]=function(i){return v.access(this,function(e,i,s){var o=tr(e);if(s===t)return o?n in o?o[n]:o.document.documentElement[i]:e[i];o?o.scrollTo(r?v(o).scrollLeft():s,r?s:v(o).scrollTop()):e[i]=s},e,i,arguments.length,null)}}),v.each({Height:"height",Width:"width"},function(e,n){v.each({padding:"inner"+e,content:n,"":"outer"+e},function(r,i){v.fn[i]=function(i,s){var o=arguments.length&&(r||typeof i!="boolean"),u=r||(i===!0||s===!0?"margin":"border");return v.access(this,function(n,r,i){var s;return v.isWindow(n)?n.document.documentElement["client"+e]:n.nodeType===9?(s=n.documentElement,Math.max(n.body["scroll"+e],s["scroll"+e],n.body["offset"+e],s["offset"+e],s["client"+e])):i===t?v.css(n,r,i,u):v.style(n,r,i,u)},n,o?i:t,o,null)}})}),e.jQuery=e.$=v,typeof define=="function"&&define.amd&&define.amd.jQuery&&define("jquery",[],function(){return v})})(window);
\ No newline at end of file
new file mode 100644
index 0000000000000000000000000000000000000000..da1c5620d10c047525a467a425abe9ff5269cfc2
GIT binary patch
literal 199
zc%17D@N?(olHy`uVBq!ia0vp^+#t-s1SHkYJtzcHoCO|{#XvD(5N2eUHAey{$X?><
z>&kweokM_|(Po{+Q=kw>iEBiObAE1aYF-J$w=>iB1I2<oT^vIsE+^X*KjUGJJ8<a0
zfdz{eHHE&rzrX(bySvGUL|lavlN4AuRwpzDOq(`sMv;5Joa+jUx<3|oWPN;mPUJ0`
pW__Wi<5+59Lc)&n_i}Q^3>R$WLpMkF=>bh=@O1TaS?83{1OVknK<NMg
new file mode 100644
--- /dev/null
+++ b/python/macholib/doc/_build/html/_static/nature.css
@@ -0,0 +1,245 @@
+/*
+ * nature.css_t
+ * ~~~~~~~~~~~~
+ *
+ * Sphinx stylesheet -- nature theme.
+ *
+ * :copyright: Copyright 2007-2013 by the Sphinx team, see AUTHORS.
+ * :license: BSD, see LICENSE for details.
+ *
+ */
+ 
+@import url("basic.css");
+ 
+/* -- page layout ----------------------------------------------------------- */
+ 
+body {
+    font-family: Arial, sans-serif;
+    font-size: 100%;
+    background-color: #111;
+    color: #555;
+    margin: 0;
+    padding: 0;
+}
+
+div.documentwrapper {
+    float: left;
+    width: 100%;
+}
+
+div.bodywrapper {
+    margin: 0 0 0 230px;
+}
+
+hr {
+    border: 1px solid #B1B4B6;
+}
+ 
+div.document {
+    background-color: #eee;
+}
+ 
+div.body {
+    background-color: #ffffff;
+    color: #3E4349;
+    padding: 0 30px 30px 30px;
+    font-size: 0.9em;
+}
+ 
+div.footer {
+    color: #555;
+    width: 100%;
+    padding: 13px 0;
+    text-align: center;
+    font-size: 75%;
+}
+ 
+div.footer a {
+    color: #444;
+    text-decoration: underline;
+}
+ 
+div.related {
+    background-color: #6BA81E;
+    line-height: 32px;
+    color: #fff;
+    text-shadow: 0px 1px 0 #444;
+    font-size: 0.9em;
+}
+ 
+div.related a {
+    color: #E2F3CC;
+}
+ 
+div.sphinxsidebar {
+    font-size: 0.75em;
+    line-height: 1.5em;
+}
+
+div.sphinxsidebarwrapper{
+    padding: 20px 0;
+}
+ 
+div.sphinxsidebar h3,
+div.sphinxsidebar h4 {
+    font-family: Arial, sans-serif;
+    color: #222;
+    font-size: 1.2em;
+    font-weight: normal;
+    margin: 0;
+    padding: 5px 10px;
+    background-color: #ddd;
+    text-shadow: 1px 1px 0 white
+}
+
+div.sphinxsidebar h4{
+    font-size: 1.1em;
+}
+ 
+div.sphinxsidebar h3 a {
+    color: #444;
+}
+ 
+ 
+div.sphinxsidebar p {
+    color: #888;
+    padding: 5px 20px;
+}
+ 
+div.sphinxsidebar p.topless {
+}
+ 
+div.sphinxsidebar ul {
+    margin: 10px 20px;
+    padding: 0;
+    color: #000;
+}
+ 
+div.sphinxsidebar a {
+    color: #444;
+}
+ 
+div.sphinxsidebar input {
+    border: 1px solid #ccc;
+    font-family: sans-serif;
+    font-size: 1em;
+}
+
+div.sphinxsidebar input[type=text]{
+    margin-left: 20px;
+}
+ 
+/* -- body styles ----------------------------------------------------------- */
+ 
+a {
+    color: #005B81;
+    text-decoration: none;
+}
+ 
+a:hover {
+    color: #E32E00;
+    text-decoration: underline;
+}
+ 
+div.body h1,
+div.body h2,
+div.body h3,
+div.body h4,
+div.body h5,
+div.body h6 {
+    font-family: Arial, sans-serif;
+    background-color: #BED4EB;
+    font-weight: normal;
+    color: #212224;
+    margin: 30px 0px 10px 0px;
+    padding: 5px 0 5px 10px;
+    text-shadow: 0px 1px 0 white
+}
+ 
+div.body h1 { border-top: 20px solid white; margin-top: 0; font-size: 200%; }
+div.body h2 { font-size: 150%; background-color: #C8D5E3; }
+div.body h3 { font-size: 120%; background-color: #D8DEE3; }
+div.body h4 { font-size: 110%; background-color: #D8DEE3; }
+div.body h5 { font-size: 100%; background-color: #D8DEE3; }
+div.body h6 { font-size: 100%; background-color: #D8DEE3; }
+ 
+a.headerlink {
+    color: #c60f0f;
+    font-size: 0.8em;
+    padding: 0 4px 0 4px;
+    text-decoration: none;
+}
+ 
+a.headerlink:hover {
+    background-color: #c60f0f;
+    color: white;
+}
+ 
+div.body p, div.body dd, div.body li {
+    line-height: 1.5em;
+}
+ 
+div.admonition p.admonition-title + p {
+    display: inline;
+}
+
+div.highlight{
+    background-color: white;
+}
+
+div.note {
+    background-color: #eee;
+    border: 1px solid #ccc;
+}
+ 
+div.seealso {
+    background-color: #ffc;
+    border: 1px solid #ff6;
+}
+ 
+div.topic {
+    background-color: #eee;
+}
+ 
+div.warning {
+    background-color: #ffe4e4;
+    border: 1px solid #f66;
+}
+ 
+p.admonition-title {
+    display: inline;
+}
+ 
+p.admonition-title:after {
+    content: ":";
+}
+ 
+pre {
+    padding: 10px;
+    background-color: White;
+    color: #222;
+    line-height: 1.2em;
+    border: 1px solid #C6C9CB;
+    font-size: 1.1em;
+    margin: 1.5em 0 1.5em 0;
+    -webkit-box-shadow: 1px 1px 1px #d8d8d8;
+    -moz-box-shadow: 1px 1px 1px #d8d8d8;
+}
+ 
+tt {
+    background-color: #ecf0f3;
+    color: #222;
+    /* padding: 1px 2px; */
+    font-size: 1.1em;
+    font-family: monospace;
+}
+
+.viewcode-back {
+    font-family: Arial, sans-serif;
+}
+
+div.viewcode-block:target {
+    background-color: #f4debf;
+    border-top: 1px solid #ac9;
+    border-bottom: 1px solid #ac9;
+}
\ No newline at end of file
new file mode 100644
index 0000000000000000000000000000000000000000..b3cb37425ea68b39ffa7b2e5fb69161275a87541
GIT binary patch
literal 199
zc%17D@N?(olHy`uVBq!ia0vp^+#t-s1SHkYJtzcHoCO|{#XvD(5N2eUHAey{$X?><
z>&kweokM`jkU7Va11Q8%;u=xnoS&PUnpeW`?aZ|OK(QcC7sn8Z%gHvy&v=;Q4jejg
zV8NnAO`-4Z@2~&<?ryS^@YXF`T!a&o6j(S`Cmb}9IcHb(MZ@Xn$H&JXUMl#uzyAM<
o7knL=1-mEi3=josIGoJJAh%tCVFz!`HlXPYp00i_>zopr02WF_WB>pF
new file mode 100644
--- /dev/null
+++ b/python/macholib/doc/_build/html/_static/pygments.css
@@ -0,0 +1,62 @@
+.highlight .hll { background-color: #ffffcc }
+.highlight  { background: #eeffcc; }
+.highlight .c { color: #408090; font-style: italic } /* Comment */
+.highlight .err { border: 1px solid #FF0000 } /* Error */
+.highlight .k { color: #007020; font-weight: bold } /* Keyword */
+.highlight .o { color: #666666 } /* Operator */
+.highlight .cm { color: #408090; font-style: italic } /* Comment.Multiline */
+.highlight .cp { color: #007020 } /* Comment.Preproc */
+.highlight .c1 { color: #408090; font-style: italic } /* Comment.Single */
+.highlight .cs { color: #408090; background-color: #fff0f0 } /* Comment.Special */
+.highlight .gd { color: #A00000 } /* Generic.Deleted */
+.highlight .ge { font-style: italic } /* Generic.Emph */
+.highlight .gr { color: #FF0000 } /* Generic.Error */
+.highlight .gh { color: #000080; font-weight: bold } /* Generic.Heading */
+.highlight .gi { color: #00A000 } /* Generic.Inserted */
+.highlight .go { color: #333333 } /* Generic.Output */
+.highlight .gp { color: #c65d09; font-weight: bold } /* Generic.Prompt */
+.highlight .gs { font-weight: bold } /* Generic.Strong */
+.highlight .gu { color: #800080; font-weight: bold } /* Generic.Subheading */
+.highlight .gt { color: #0044DD } /* Generic.Traceback */
+.highlight .kc { color: #007020; font-weight: bold } /* Keyword.Constant */
+.highlight .kd { color: #007020; font-weight: bold } /* Keyword.Declaration */
+.highlight .kn { color: #007020; font-weight: bold } /* Keyword.Namespace */
+.highlight .kp { color: #007020 } /* Keyword.Pseudo */
+.highlight .kr { color: #007020; font-weight: bold } /* Keyword.Reserved */
+.highlight .kt { color: #902000 } /* Keyword.Type */
+.highlight .m { color: #208050 } /* Literal.Number */
+.highlight .s { color: #4070a0 } /* Literal.String */
+.highlight .na { color: #4070a0 } /* Name.Attribute */
+.highlight .nb { color: #007020 } /* Name.Builtin */
+.highlight .nc { color: #0e84b5; font-weight: bold } /* Name.Class */
+.highlight .no { color: #60add5 } /* Name.Constant */
+.highlight .nd { color: #555555; font-weight: bold } /* Name.Decorator */
+.highlight .ni { color: #d55537; font-weight: bold } /* Name.Entity */
+.highlight .ne { color: #007020 } /* Name.Exception */
+.highlight .nf { color: #06287e } /* Name.Function */
+.highlight .nl { color: #002070; font-weight: bold } /* Name.Label */
+.highlight .nn { color: #0e84b5; font-weight: bold } /* Name.Namespace */
+.highlight .nt { color: #062873; font-weight: bold } /* Name.Tag */
+.highlight .nv { color: #bb60d5 } /* Name.Variable */
+.highlight .ow { color: #007020; font-weight: bold } /* Operator.Word */
+.highlight .w { color: #bbbbbb } /* Text.Whitespace */
+.highlight .mf { color: #208050 } /* Literal.Number.Float */
+.highlight .mh { color: #208050 } /* Literal.Number.Hex */
+.highlight .mi { color: #208050 } /* Literal.Number.Integer */
+.highlight .mo { color: #208050 } /* Literal.Number.Oct */
+.highlight .sb { color: #4070a0 } /* Literal.String.Backtick */
+.highlight .sc { color: #4070a0 } /* Literal.String.Char */
+.highlight .sd { color: #4070a0; font-style: italic } /* Literal.String.Doc */
+.highlight .s2 { color: #4070a0 } /* Literal.String.Double */
+.highlight .se { color: #4070a0; font-weight: bold } /* Literal.String.Escape */
+.highlight .sh { color: #4070a0 } /* Literal.String.Heredoc */
+.highlight .si { color: #70a0d0; font-style: italic } /* Literal.String.Interpol */
+.highlight .sx { color: #c65d09 } /* Literal.String.Other */
+.highlight .sr { color: #235388 } /* Literal.String.Regex */
+.highlight .s1 { color: #4070a0 } /* Literal.String.Single */
+.highlight .ss { color: #517918 } /* Literal.String.Symbol */
+.highlight .bp { color: #007020 } /* Name.Builtin.Pseudo */
+.highlight .vc { color: #bb60d5 } /* Name.Variable.Class */
+.highlight .vg { color: #bb60d5 } /* Name.Variable.Global */
+.highlight .vi { color: #bb60d5 } /* Name.Variable.Instance */
+.highlight .il { color: #208050 } /* Literal.Number.Integer.Long */
\ No newline at end of file
new file mode 100644
--- /dev/null
+++ b/python/macholib/doc/_build/html/_static/searchtools.js
@@ -0,0 +1,622 @@
+/*
+ * searchtools.js_t
+ * ~~~~~~~~~~~~~~~~
+ *
+ * Sphinx JavaScript utilties for the full-text search.
+ *
+ * :copyright: Copyright 2007-2013 by the Sphinx team, see AUTHORS.
+ * :license: BSD, see LICENSE for details.
+ *
+ */
+
+
+/**
+ * Porter Stemmer
+ */
+var Stemmer = function() {
+
+  var step2list = {
+    ational: 'ate',
+    tional: 'tion',
+    enci: 'ence',
+    anci: 'ance',
+    izer: 'ize',
+    bli: 'ble',
+    alli: 'al',
+    entli: 'ent',
+    eli: 'e',
+    ousli: 'ous',
+    ization: 'ize',
+    ation: 'ate',
+    ator: 'ate',
+    alism: 'al',
+    iveness: 'ive',
+    fulness: 'ful',
+    ousness: 'ous',
+    aliti: 'al',
+    iviti: 'ive',
+    biliti: 'ble',
+    logi: 'log'
+  };
+
+  var step3list = {
+    icate: 'ic',
+    ative: '',
+    alize: 'al',
+    iciti: 'ic',
+    ical: 'ic',
+    ful: '',
+    ness: ''
+  };
+
+  var c = "[^aeiou]";          // consonant
+  var v = "[aeiouy]";          // vowel
+  var C = c + "[^aeiouy]*";    // consonant sequence
+  var V = v + "[aeiou]*";      // vowel sequence
+
+  var mgr0 = "^(" + C + ")?" + V + C;                      // [C]VC... is m>0
+  var meq1 = "^(" + C + ")?" + V + C + "(" + V + ")?$";    // [C]VC[V] is m=1
+  var mgr1 = "^(" + C + ")?" + V + C + V + C;              // [C]VCVC... is m>1
+  var s_v   = "^(" + C + ")?" + v;                         // vowel in stem
+
+  this.stemWord = function (w) {
+    var stem;
+    var suffix;
+    var firstch;
+    var origword = w;
+
+    if (w.length < 3)
+      return w;
+
+    var re;
+    var re2;
+    var re3;
+    var re4;
+
+    firstch = w.substr(0,1);
+    if (firstch == "y")
+      w = firstch.toUpperCase() + w.substr(1);
+
+    // Step 1a
+    re = /^(.+?)(ss|i)es$/;
+    re2 = /^(.+?)([^s])s$/;
+
+    if (re.test(w))
+      w = w.replace(re,"$1$2");
+    else if (re2.test(w))
+      w = w.replace(re2,"$1$2");
+
+    // Step 1b
+    re = /^(.+?)eed$/;
+    re2 = /^(.+?)(ed|ing)$/;
+    if (re.test(w)) {
+      var fp = re.exec(w);
+      re = new RegExp(mgr0);
+      if (re.test(fp[1])) {
+        re = /.$/;
+        w = w.replace(re,"");
+      }
+    }
+    else if (re2.test(w)) {
+      var fp = re2.exec(w);
+      stem = fp[1];
+      re2 = new RegExp(s_v);
+      if (re2.test(stem)) {
+        w = stem;
+        re2 = /(at|bl|iz)$/;
+        re3 = new RegExp("([^aeiouylsz])\\1$");
+        re4 = new RegExp("^" + C + v + "[^aeiouwxy]$");
+        if (re2.test(w))
+          w = w + "e";
+        else if (re3.test(w)) {
+          re = /.$/;
+          w = w.replace(re,"");
+        }
+        else if (re4.test(w))
+          w = w + "e";
+      }
+    }
+
+    // Step 1c
+    re = /^(.+?)y$/;
+    if (re.test(w)) {
+      var fp = re.exec(w);
+      stem = fp[1];
+      re = new RegExp(s_v);
+      if (re.test(stem))
+        w = stem + "i";
+    }
+
+    // Step 2
+    re = /^(.+?)(ational|tional|enci|anci|izer|bli|alli|entli|eli|ousli|ization|ation|ator|alism|iveness|fulness|ousness|aliti|iviti|biliti|logi)$/;
+    if (re.test(w)) {
+      var fp = re.exec(w);
+      stem = fp[1];
+      suffix = fp[2];
+      re = new RegExp(mgr0);
+      if (re.test(stem))
+        w = stem + step2list[suffix];
+    }
+
+    // Step 3
+    re = /^(.+?)(icate|ative|alize|iciti|ical|ful|ness)$/;
+    if (re.test(w)) {
+      var fp = re.exec(w);
+      stem = fp[1];
+      suffix = fp[2];
+      re = new RegExp(mgr0);
+      if (re.test(stem))
+        w = stem + step3list[suffix];
+    }
+
+    // Step 4
+    re = /^(.+?)(al|ance|ence|er|ic|able|ible|ant|ement|ment|ent|ou|ism|ate|iti|ous|ive|ize)$/;
+    re2 = /^(.+?)(s|t)(ion)$/;
+    if (re.test(w)) {
+      var fp = re.exec(w);
+      stem = fp[1];
+      re = new RegExp(mgr1);
+      if (re.test(stem))
+        w = stem;
+    }
+    else if (re2.test(w)) {
+      var fp = re2.exec(w);
+      stem = fp[1] + fp[2];
+      re2 = new RegExp(mgr1);
+      if (re2.test(stem))
+        w = stem;
+    }
+
+    // Step 5
+    re = /^(.+?)e$/;
+    if (re.test(w)) {
+      var fp = re.exec(w);
+      stem = fp[1];
+      re = new RegExp(mgr1);
+      re2 = new RegExp(meq1);
+      re3 = new RegExp("^" + C + v + "[^aeiouwxy]$");
+      if (re.test(stem) || (re2.test(stem) && !(re3.test(stem))))
+        w = stem;
+    }
+    re = /ll$/;
+    re2 = new RegExp(mgr1);
+    if (re.test(w) && re2.test(w)) {
+      re = /.$/;
+      w = w.replace(re,"");
+    }
+
+    // and turn initial Y back to y
+    if (firstch == "y")
+      w = firstch.toLowerCase() + w.substr(1);
+    return w;
+  }
+}
+
+
+
+/**
+ * Simple result scoring code.
+ */
+var Scorer = {
+  // Implement the following function to further tweak the score for each result
+  // The function takes a result array [filename, title, anchor, descr, score]
+  // and returns the new score.
+  /*
+  score: function(result) {
+    return result[4];
+  },
+  */
+
+  // query matches the full name of an object
+  objNameMatch: 11,
+  // or matches in the last dotted part of the object name
+  objPartialMatch: 6,
+  // Additive scores depending on the priority of the object
+  objPrio: {0:  15,   // used to be importantResults
+            1:  5,   // used to be objectResults
+            2: -5},  // used to be unimportantResults
+  //  Used when the priority is not in the mapping.
+  objPrioDefault: 0,
+
+  // query found in title
+  title: 15,
+  // query found in terms
+  term: 5
+};
+
+
+/**
+ * Search Module
+ */
+var Search = {
+
+  _index : null,
+  _queued_query : null,
+  _pulse_status : -1,
+
+  init : function() {
+      var params = $.getQueryParameters();
+      if (params.q) {
+          var query = params.q[0];
+          $('input[name="q"]')[0].value = query;
+          this.performSearch(query);
+      }
+  },
+
+  loadIndex : function(url) {
+    $.ajax({type: "GET", url: url, data: null,
+            dataType: "script", cache: true,
+            complete: function(jqxhr, textstatus) {
+              if (textstatus != "success") {
+                document.getElementById("searchindexloader").src = url;
+              }
+            }});
+  },
+
+  setIndex : function(index) {
+    var q;
+    this._index = index;
+    if ((q = this._queued_query) !== null) {
+      this._queued_query = null;
+      Search.query(q);
+    }
+  },
+
+  hasIndex : function() {
+      return this._index !== null;
+  },
+
+  deferQuery : function(query) {
+      this._queued_query = query;
+  },
+
+  stopPulse : function() {
+      this._pulse_status = 0;
+  },
+
+  startPulse : function() {
+    if (this._pulse_status >= 0)
+        return;
+    function pulse() {
+      var i;
+      Search._pulse_status = (Search._pulse_status + 1) % 4;
+      var dotString = '';
+      for (i = 0; i < Search._pulse_status; i++)
+        dotString += '.';
+      Search.dots.text(dotString);
+      if (Search._pulse_status > -1)
+        window.setTimeout(pulse, 500);
+    }
+    pulse();
+  },
+
+  /**
+   * perform a search for something (or wait until index is loaded)
+   */
+  performSearch : function(query) {
+    // create the required interface elements
+    this.out = $('#search-results');
+    this.title = $('<h2>' + _('Searching') + '</h2>').appendTo(this.out);
+    this.dots = $('<span></span>').appendTo(this.title);
+    this.status = $('<p style="display: none"></p>').appendTo(this.out);
+    this.output = $('<ul class="search"/>').appendTo(this.out);
+
+    $('#search-progress').text(_('Preparing search...'));
+    this.startPulse();
+
+    // index already loaded, the browser was quick!
+    if (this.hasIndex())
+      this.query(query);
+    else
+      this.deferQuery(query);
+  },
+
+  /**
+   * execute search (requires search index to be loaded)
+   */
+  query : function(query) {
+    var i;
+    var stopwords = ["a","and","are","as","at","be","but","by","for","if","in","into","is","it","near","no","not","of","on","or","such","that","the","their","then","there","these","they","this","to","was","will","with"];
+
+    // stem the searchterms and add them to the correct list
+    var stemmer = new Stemmer();
+    var searchterms = [];
+    var excluded = [];
+    var hlterms = [];
+    var tmp = query.split(/\s+/);
+    var objectterms = [];
+    for (i = 0; i < tmp.length; i++) {
+      if (tmp[i] !== "") {
+          objectterms.push(tmp[i].toLowerCase());
+      }
+
+      if ($u.indexOf(stopwords, tmp[i].toLowerCase()) != -1 || tmp[i].match(/^\d+$/) ||
+          tmp[i] === "") {
+        // skip this "word"
+        continue;
+      }
+      // stem the word
+      var word = stemmer.stemWord(tmp[i].toLowerCase());
+      var toAppend;
+      // select the correct list
+      if (word[0] == '-') {
+        toAppend = excluded;
+        word = word.substr(1);
+      }
+      else {
+        toAppend = searchterms;
+        hlterms.push(tmp[i].toLowerCase());
+      }
+      // only add if not already in the list
+      if (!$u.contains(toAppend, word))
+        toAppend.push(word);
+    }
+    var highlightstring = '?highlight=' + $.urlencode(hlterms.join(" "));
+
+    // console.debug('SEARCH: searching for:');
+    // console.info('required: ', searchterms);
+    // console.info('excluded: ', excluded);
+
+    // prepare search
+    var terms = this._index.terms;
+    var titleterms = this._index.titleterms;
+
+    // array of [filename, title, anchor, descr, score]
+    var results = [];
+    $('#search-progress').empty();
+
+    // lookup as object
+    for (i = 0; i < objectterms.length; i++) {
+      var others = [].concat(objectterms.slice(0, i),
+                             objectterms.slice(i+1, objectterms.length));
+      results = results.concat(this.performObjectSearch(objectterms[i], others));
+    }
+
+    // lookup as search terms in fulltext
+    results = results.concat(this.performTermsSearch(searchterms, excluded, terms, Scorer.term))
+                     .concat(this.performTermsSearch(searchterms, excluded, titleterms, Scorer.title));
+
+    // let the scorer override scores with a custom scoring function
+    if (Scorer.score) {
+      for (i = 0; i < results.length; i++)
+        results[i][4] = Scorer.score(results[i]);
+    }
+
+    // now sort the results by score (in opposite order of appearance, since the
+    // display function below uses pop() to retrieve items) and then
+    // alphabetically
+    results.sort(function(a, b) {
+      var left = a[4];
+      var right = b[4];
+      if (left > right) {
+        return 1;
+      } else if (left < right) {
+        return -1;
+      } else {
+        // same score: sort alphabetically
+        left = a[1].toLowerCase();
+        right = b[1].toLowerCase();
+        return (left > right) ? -1 : ((left < right) ? 1 : 0);
+      }
+    });
+
+    // for debugging
+    //Search.lastresults = results.slice();  // a copy
+    //console.info('search results:', Search.lastresults);
+
+    // print the results
+    var resultCount = results.length;
+    function displayNextItem() {
+      // results left, load the summary and display it
+      if (results.length) {
+        var item = results.pop();
+        var listItem = $('<li style="display:none"></li>');
+        if (DOCUMENTATION_OPTIONS.FILE_SUFFIX === '') {
+          // dirhtml builder
+          var dirname = item[0] + '/';
+          if (dirname.match(/\/index\/$/)) {
+            dirname = dirname.substring(0, dirname.length-6);
+          } else if (dirname == 'index/') {
+            dirname = '';
+          }
+          listItem.append($('<a/>').attr('href',
+            DOCUMENTATION_OPTIONS.URL_ROOT + dirname +
+            highlightstring + item[2]).html(item[1]));
+        } else {
+          // normal html builders
+          listItem.append($('<a/>').attr('href',
+            item[0] + DOCUMENTATION_OPTIONS.FILE_SUFFIX +
+            highlightstring + item[2]).html(item[1]));
+        }
+        if (item[3]) {
+          listItem.append($('<span> (' + item[3] + ')</span>'));
+          Search.output.append(listItem);
+          listItem.slideDown(5, function() {
+            displayNextItem();
+          });
+        } else if (DOCUMENTATION_OPTIONS.HAS_SOURCE) {
+          $.ajax({url: DOCUMENTATION_OPTIONS.URL_ROOT + '_sources/' + item[0] + '.txt',
+                  dataType: "text",
+                  complete: function(jqxhr, textstatus) {
+                    var data = jqxhr.responseText;
+                    if (data !== '') {
+                      listItem.append(Search.makeSearchSummary(data, searchterms, hlterms));
+                    }
+                    Search.output.append(listItem);
+                    listItem.slideDown(5, function() {
+                      displayNextItem();
+                    });
+                  }});
+        } else {
+          // no source available, just display title
+          Search.output.append(listItem);
+          listItem.slideDown(5, function() {
+            displayNextItem();
+          });
+        }
+      }
+      // search finished, update title and status message
+      else {
+        Search.stopPulse();
+        Search.title.text(_('Search Results'));
+        if (!resultCount)
+          Search.status.text(_('Your search did not match any documents. Please make sure that all words are spelled correctly and that you\'ve selected enough categories.'));
+        else
+            Search.status.text(_('Search finished, found %s page(s) matching the search query.').replace('%s', resultCount));
+        Search.status.fadeIn(500);
+      }
+    }
+    displayNextItem();
+  },
+
+  /**
+   * search for object names
+   */
+  performObjectSearch : function(object, otherterms) {
+    var filenames = this._index.filenames;
+    var objects = this._index.objects;
+    var objnames = this._index.objnames;
+    var titles = this._index.titles;
+
+    var i;
+    var results = [];
+
+    for (var prefix in objects) {
+      for (var name in objects[prefix]) {
+        var fullname = (prefix ? prefix + '.' : '') + name;
+        if (fullname.toLowerCase().indexOf(object) > -1) {
+          var score = 0;
+          var parts = fullname.split('.');
+          // check for different match types: exact matches of full name or
+          // "last name" (i.e. last dotted part)
+          if (fullname == object || parts[parts.length - 1] == object) {
+            score += Scorer.objNameMatch;
+          // matches in last name
+          } else if (parts[parts.length - 1].indexOf(object) > -1) {
+            score += Scorer.objPartialMatch;
+          }
+          var match = objects[prefix][name];
+          var objname = objnames[match[1]][2];
+          var title = titles[match[0]];
+          // If more than one term searched for, we require other words to be
+          // found in the name/title/description
+          if (otherterms.length > 0) {
+            var haystack = (prefix + ' ' + name + ' ' +
+                            objname + ' ' + title).toLowerCase();
+            var allfound = true;
+            for (i = 0; i < otherterms.length; i++) {
+              if (haystack.indexOf(otherterms[i]) == -1) {
+                allfound = false;
+                break;
+              }
+            }
+            if (!allfound) {
+              continue;
+            }
+          }
+          var descr = objname + _(', in ') + title;
+
+          var anchor = match[3];
+          if (anchor === '')
+            anchor = fullname;
+          else if (anchor == '-')
+            anchor = objnames[match[1]][1] + '-' + fullname;
+          // add custom score for some objects according to scorer
+          if (Scorer.objPrio.hasOwnProperty(match[2])) {
+            score += Scorer.objPrio[match[2]];
+          } else {
+            score += Scorer.objPrioDefault;
+          }
+          results.push([filenames[match[0]], fullname, '#'+anchor, descr, score]);
+        }
+      }
+    }
+
+    return results;
+  },
+
+  /**
+   * search for full-text terms in the index
+   */
+  performTermsSearch : function(searchterms, excluded, terms, score) {
+    var filenames = this._index.filenames;
+    var titles = this._index.titles;
+
+    var i, j, file, files;
+    var fileMap = {};
+    var results = [];
+
+    // perform the search on the required terms
+    for (i = 0; i < searchterms.length; i++) {
+      var word = searchterms[i];
+      // no match but word was a required one
+      if ((files = terms[word]) === undefined)
+        break;
+      if (files.length === undefined) {
+        files = [files];
+      }
+      // create the mapping
+      for (j = 0; j < files.length; j++) {
+        file = files[j];
+        if (file in fileMap)
+          fileMap[file].push(word);
+        else
+          fileMap[file] = [word];
+      }
+    }
+
+    // now check if the files don't contain excluded terms
+    for (file in fileMap) {
+      var valid = true;
+
+      // check if all requirements are matched
+      if (fileMap[file].length != searchterms.length)
+          continue;
+
+      // ensure that none of the excluded terms is in the search result
+      for (i = 0; i < excluded.length; i++) {
+        if (terms[excluded[i]] == file ||
+          $u.contains(terms[excluded[i]] || [], file)) {
+          valid = false;
+          break;
+        }
+      }
+
+      // if we have still a valid result we can add it to the result list
+      if (valid) {
+        results.push([filenames[file], titles[file], '', null, score]);
+      }
+    }
+    return results;
+  },
+
+  /**
+   * helper function to return a node containing the
+   * search summary for a given text. keywords is a list
+   * of stemmed words, hlwords is the list of normal, unstemmed
+   * words. the first one is used to find the occurance, the
+   * latter for highlighting it.
+   */
+  makeSearchSummary : function(text, keywords, hlwords) {
+    var textLower = text.toLowerCase();
+    var start = 0;
+    $.each(keywords, function() {
+      var i = textLower.indexOf(this.toLowerCase());
+      if (i > -1)
+        start = i;
+    });
+    start = Math.max(start - 120, 0);
+    var excerpt = ((start > 0) ? '...' : '') +
+      $.trim(text.substr(start, 240)) +
+      ((start + 240 - text.length) ? '...' : '');
+    var rv = $('<div class="context"></div>').text(excerpt);
+    $.each(hlwords, function() {
+      rv = rv.highlightText(this, 'highlighted');
+    });
+    return rv;
+  }
+};
+
+$(document).ready(function() {
+  Search.init();
+});
\ No newline at end of file
new file mode 100644
--- /dev/null
+++ b/python/macholib/doc/_build/html/_static/underscore.js
@@ -0,0 +1,31 @@
+// Underscore.js 1.3.1
+// (c) 2009-2012 Jeremy Ashkenas, DocumentCloud Inc.
+// Underscore is freely distributable under the MIT license.
+// Portions of Underscore are inspired or borrowed from Prototype,
+// Oliver Steele's Functional, and John Resig's Micro-Templating.
+// For all details and documentation:
+// http://documentcloud.github.com/underscore
+(function(){function q(a,c,d){if(a===c)return a!==0||1/a==1/c;if(a==null||c==null)return a===c;if(a._chain)a=a._wrapped;if(c._chain)c=c._wrapped;if(a.isEqual&&b.isFunction(a.isEqual))return a.isEqual(c);if(c.isEqual&&b.isFunction(c.isEqual))return c.isEqual(a);var e=l.call(a);if(e!=l.call(c))return false;switch(e){case "[object String]":return a==String(c);case "[object Number]":return a!=+a?c!=+c:a==0?1/a==1/c:a==+c;case "[object Date]":case "[object Boolean]":return+a==+c;case "[object RegExp]":return a.source==
+c.source&&a.global==c.global&&a.multiline==c.multiline&&a.ignoreCase==c.ignoreCase}if(typeof a!="object"||typeof c!="object")return false;for(var f=d.length;f--;)if(d[f]==a)return true;d.push(a);var f=0,g=true;if(e=="[object Array]"){if(f=a.length,g=f==c.length)for(;f--;)if(!(g=f in a==f in c&&q(a[f],c[f],d)))break}else{if("constructor"in a!="constructor"in c||a.constructor!=c.constructor)return false;for(var h in a)if(b.has(a,h)&&(f++,!(g=b.has(c,h)&&q(a[h],c[h],d))))break;if(g){for(h in c)if(b.has(c,
+h)&&!f--)break;g=!f}}d.pop();return g}var r=this,G=r._,n={},k=Array.prototype,o=Object.prototype,i=k.slice,H=k.unshift,l=o.toString,I=o.hasOwnProperty,w=k.forEach,x=k.map,y=k.reduce,z=k.reduceRight,A=k.filter,B=k.every,C=k.some,p=k.indexOf,D=k.lastIndexOf,o=Array.isArray,J=Object.keys,s=Function.prototype.bind,b=function(a){return new m(a)};if(typeof exports!=="undefined"){if(typeof module!=="undefined"&&module.exports)exports=module.exports=b;exports._=b}else r._=b;b.VERSION="1.3.1";var j=b.each=
+b.forEach=function(a,c,d){if(a!=null)if(w&&a.forEach===w)a.forEach(c,d);else if(a.length===+a.length)for(var e=0,f=a.length;e<f;e++){if(e in a&&c.call(d,a[e],e,a)===n)break}else for(e in a)if(b.has(a,e)&&c.call(d,a[e],e,a)===n)break};b.map=b.collect=function(a,c,b){var e=[];if(a==null)return e;if(x&&a.map===x)return a.map(c,b);j(a,function(a,g,h){e[e.length]=c.call(b,a,g,h)});if(a.length===+a.length)e.length=a.length;return e};b.reduce=b.foldl=b.inject=function(a,c,d,e){var f=arguments.length>2;a==
+null&&(a=[]);if(y&&a.reduce===y)return e&&(c=b.bind(c,e)),f?a.reduce(c,d):a.reduce(c);j(a,function(a,b,i){f?d=c.call(e,d,a,b,i):(d=a,f=true)});if(!f)throw new TypeError("Reduce of empty array with no initial value");return d};b.reduceRight=b.foldr=function(a,c,d,e){var f=arguments.length>2;a==null&&(a=[]);if(z&&a.reduceRight===z)return e&&(c=b.bind(c,e)),f?a.reduceRight(c,d):a.reduceRight(c);var g=b.toArray(a).reverse();e&&!f&&(c=b.bind(c,e));return f?b.reduce(g,c,d,e):b.reduce(g,c)};b.find=b.detect=
+function(a,c,b){var e;E(a,function(a,g,h){if(c.call(b,a,g,h))return e=a,true});return e};b.filter=b.select=function(a,c,b){var e=[];if(a==null)return e;if(A&&a.filter===A)return a.filter(c,b);j(a,function(a,g,h){c.call(b,a,g,h)&&(e[e.length]=a)});return e};b.reject=function(a,c,b){var e=[];if(a==null)return e;j(a,function(a,g,h){c.call(b,a,g,h)||(e[e.length]=a)});return e};b.every=b.all=function(a,c,b){var e=true;if(a==null)return e;if(B&&a.every===B)return a.every(c,b);j(a,function(a,g,h){if(!(e=
+e&&c.call(b,a,g,h)))return n});return e};var E=b.some=b.any=function(a,c,d){c||(c=b.identity);var e=false;if(a==null)return e;if(C&&a.some===C)return a.some(c,d);j(a,function(a,b,h){if(e||(e=c.call(d,a,b,h)))return n});return!!e};b.include=b.contains=function(a,c){var b=false;if(a==null)return b;return p&&a.indexOf===p?a.indexOf(c)!=-1:b=E(a,function(a){return a===c})};b.invoke=function(a,c){var d=i.call(arguments,2);return b.map(a,function(a){return(b.isFunction(c)?c||a:a[c]).apply(a,d)})};b.pluck=
+function(a,c){return b.map(a,function(a){return a[c]})};b.max=function(a,c,d){if(!c&&b.isArray(a))return Math.max.apply(Math,a);if(!c&&b.isEmpty(a))return-Infinity;var e={computed:-Infinity};j(a,function(a,b,h){b=c?c.call(d,a,b,h):a;b>=e.computed&&(e={value:a,computed:b})});return e.value};b.min=function(a,c,d){if(!c&&b.isArray(a))return Math.min.apply(Math,a);if(!c&&b.isEmpty(a))return Infinity;var e={computed:Infinity};j(a,function(a,b,h){b=c?c.call(d,a,b,h):a;b<e.computed&&(e={value:a,computed:b})});
+return e.value};b.shuffle=function(a){var b=[],d;j(a,function(a,f){f==0?b[0]=a:(d=Math.floor(Math.random()*(f+1)),b[f]=b[d],b[d]=a)});return b};b.sortBy=function(a,c,d){return b.pluck(b.map(a,function(a,b,g){return{value:a,criteria:c.call(d,a,b,g)}}).sort(function(a,b){var c=a.criteria,d=b.criteria;return c<d?-1:c>d?1:0}),"value")};b.groupBy=function(a,c){var d={},e=b.isFunction(c)?c:function(a){return a[c]};j(a,function(a,b){var c=e(a,b);(d[c]||(d[c]=[])).push(a)});return d};b.sortedIndex=function(a,
+c,d){d||(d=b.identity);for(var e=0,f=a.length;e<f;){var g=e+f>>1;d(a[g])<d(c)?e=g+1:f=g}return e};b.toArray=function(a){return!a?[]:a.toArray?a.toArray():b.isArray(a)?i.call(a):b.isArguments(a)?i.call(a):b.values(a)};b.size=function(a){return b.toArray(a).length};b.first=b.head=function(a,b,d){return b!=null&&!d?i.call(a,0,b):a[0]};b.initial=function(a,b,d){return i.call(a,0,a.length-(b==null||d?1:b))};b.last=function(a,b,d){return b!=null&&!d?i.call(a,Math.max(a.length-b,0)):a[a.length-1]};b.rest=
+b.tail=function(a,b,d){return i.call(a,b==null||d?1:b)};b.compact=function(a){return b.filter(a,function(a){return!!a})};b.flatten=function(a,c){return b.reduce(a,function(a,e){if(b.isArray(e))return a.concat(c?e:b.flatten(e));a[a.length]=e;return a},[])};b.without=function(a){return b.difference(a,i.call(arguments,1))};b.uniq=b.unique=function(a,c,d){var d=d?b.map(a,d):a,e=[];b.reduce(d,function(d,g,h){if(0==h||(c===true?b.last(d)!=g:!b.include(d,g)))d[d.length]=g,e[e.length]=a[h];return d},[]);
+return e};b.union=function(){return b.uniq(b.flatten(arguments,true))};b.intersection=b.intersect=function(a){var c=i.call(arguments,1);return b.filter(b.uniq(a),function(a){return b.every(c,function(c){return b.indexOf(c,a)>=0})})};b.difference=function(a){var c=b.flatten(i.call(arguments,1));return b.filter(a,function(a){return!b.include(c,a)})};b.zip=function(){for(var a=i.call(arguments),c=b.max(b.pluck(a,"length")),d=Array(c),e=0;e<c;e++)d[e]=b.pluck(a,""+e);return d};b.indexOf=function(a,c,
+d){if(a==null)return-1;var e;if(d)return d=b.sortedIndex(a,c),a[d]===c?d:-1;if(p&&a.indexOf===p)return a.indexOf(c);for(d=0,e=a.length;d<e;d++)if(d in a&&a[d]===c)return d;return-1};b.lastIndexOf=function(a,b){if(a==null)return-1;if(D&&a.lastIndexOf===D)return a.lastIndexOf(b);for(var d=a.length;d--;)if(d in a&&a[d]===b)return d;return-1};b.range=function(a,b,d){arguments.length<=1&&(b=a||0,a=0);for(var d=arguments[2]||1,e=Math.max(Math.ceil((b-a)/d),0),f=0,g=Array(e);f<e;)g[f++]=a,a+=d;return g};
+var F=function(){};b.bind=function(a,c){var d,e;if(a.bind===s&&s)return s.apply(a,i.call(arguments,1));if(!b.isFunction(a))throw new TypeError;e=i.call(arguments,2);return d=function(){if(!(this instanceof d))return a.apply(c,e.concat(i.call(arguments)));F.prototype=a.prototype;var b=new F,g=a.apply(b,e.concat(i.call(arguments)));return Object(g)===g?g:b}};b.bindAll=function(a){var c=i.call(arguments,1);c.length==0&&(c=b.functions(a));j(c,function(c){a[c]=b.bind(a[c],a)});return a};b.memoize=function(a,
+c){var d={};c||(c=b.identity);return function(){var e=c.apply(this,arguments);return b.has(d,e)?d[e]:d[e]=a.apply(this,arguments)}};b.delay=function(a,b){var d=i.call(arguments,2);return setTimeout(function(){return a.apply(a,d)},b)};b.defer=function(a){return b.delay.apply(b,[a,1].concat(i.call(arguments,1)))};b.throttle=function(a,c){var d,e,f,g,h,i=b.debounce(function(){h=g=false},c);return function(){d=this;e=arguments;var b;f||(f=setTimeout(function(){f=null;h&&a.apply(d,e);i()},c));g?h=true:
+a.apply(d,e);i();g=true}};b.debounce=function(a,b){var d;return function(){var e=this,f=arguments;clearTimeout(d);d=setTimeout(function(){d=null;a.apply(e,f)},b)}};b.once=function(a){var b=false,d;return function(){if(b)return d;b=true;return d=a.apply(this,arguments)}};b.wrap=function(a,b){return function(){var d=[a].concat(i.call(arguments,0));return b.apply(this,d)}};b.compose=function(){var a=arguments;return function(){for(var b=arguments,d=a.length-1;d>=0;d--)b=[a[d].apply(this,b)];return b[0]}};
+b.after=function(a,b){return a<=0?b():function(){if(--a<1)return b.apply(this,arguments)}};b.keys=J||function(a){if(a!==Object(a))throw new TypeError("Invalid object");var c=[],d;for(d in a)b.has(a,d)&&(c[c.length]=d);return c};b.values=function(a){return b.map(a,b.identity)};b.functions=b.methods=function(a){var c=[],d;for(d in a)b.isFunction(a[d])&&c.push(d);return c.sort()};b.extend=function(a){j(i.call(arguments,1),function(b){for(var d in b)a[d]=b[d]});return a};b.defaults=function(a){j(i.call(arguments,
+1),function(b){for(var d in b)a[d]==null&&(a[d]=b[d])});return a};b.clone=function(a){return!b.isObject(a)?a:b.isArray(a)?a.slice():b.extend({},a)};b.tap=function(a,b){b(a);return a};b.isEqual=function(a,b){return q(a,b,[])};b.isEmpty=function(a){if(b.isArray(a)||b.isString(a))return a.length===0;for(var c in a)if(b.has(a,c))return false;return true};b.isElement=function(a){return!!(a&&a.nodeType==1)};b.isArray=o||function(a){return l.call(a)=="[object Array]"};b.isObject=function(a){return a===Object(a)};
+b.isArguments=function(a){return l.call(a)=="[object Arguments]"};if(!b.isArguments(arguments))b.isArguments=function(a){return!(!a||!b.has(a,"callee"))};b.isFunction=function(a){return l.call(a)=="[object Function]"};b.isString=function(a){return l.call(a)=="[object String]"};b.isNumber=function(a){return l.call(a)=="[object Number]"};b.isNaN=function(a){return a!==a};b.isBoolean=function(a){return a===true||a===false||l.call(a)=="[object Boolean]"};b.isDate=function(a){return l.call(a)=="[object Date]"};
+b.isRegExp=function(a){return l.call(a)=="[object RegExp]"};b.isNull=function(a){return a===null};b.isUndefined=function(a){return a===void 0};b.has=function(a,b){return I.call(a,b)};b.noConflict=function(){r._=G;return this};b.identity=function(a){return a};b.times=function(a,b,d){for(var e=0;e<a;e++)b.call(d,e)};b.escape=function(a){return(""+a).replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#x27;").replace(/\//g,"&#x2F;")};b.mixin=function(a){j(b.functions(a),
+function(c){K(c,b[c]=a[c])})};var L=0;b.uniqueId=function(a){var b=L++;return a?a+b:b};b.templateSettings={evaluate:/<%([\s\S]+?)%>/g,interpolate:/<%=([\s\S]+?)%>/g,escape:/<%-([\s\S]+?)%>/g};var t=/.^/,u=function(a){return a.replace(/\\\\/g,"\\").replace(/\\'/g,"'")};b.template=function(a,c){var d=b.templateSettings,d="var __p=[],print=function(){__p.push.apply(__p,arguments);};with(obj||{}){__p.push('"+a.replace(/\\/g,"\\\\").replace(/'/g,"\\'").replace(d.escape||t,function(a,b){return"',_.escape("+
+u(b)+"),'"}).replace(d.interpolate||t,function(a,b){return"',"+u(b)+",'"}).replace(d.evaluate||t,function(a,b){return"');"+u(b).replace(/[\r\n\t]/g," ")+";__p.push('"}).replace(/\r/g,"\\r").replace(/\n/g,"\\n").replace(/\t/g,"\\t")+"');}return __p.join('');",e=new Function("obj","_",d);return c?e(c,b):function(a){return e.call(this,a,b)}};b.chain=function(a){return b(a).chain()};var m=function(a){this._wrapped=a};b.prototype=m.prototype;var v=function(a,c){return c?b(a).chain():a},K=function(a,c){m.prototype[a]=
+function(){var a=i.call(arguments);H.call(a,this._wrapped);return v(c.apply(b,a),this._chain)}};b.mixin(b);j("pop,push,reverse,shift,sort,splice,unshift".split(","),function(a){var b=k[a];m.prototype[a]=function(){var d=this._wrapped;b.apply(d,arguments);var e=d.length;(a=="shift"||a=="splice")&&e===0&&delete d[0];return v(d,this._chain)}});j(["concat","join","slice"],function(a){var b=k[a];m.prototype[a]=function(){return v(b.apply(this._wrapped,arguments),this._chain)}});m.prototype.chain=function(){this._chain=
+true;return this};m.prototype.value=function(){return this._wrapped}}).call(this);
new file mode 100644
index 0000000000000000000000000000000000000000..8bd587afee2fe38989383ff82010147ea56b93dd
GIT binary patch
literal 372
zc%17D@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|*pj^6T^PXN
zr}OT5AjMhW5m^k>ejS7voit`w00r4gJbhi+Z?SVR=ty*Ij7kLxeera046!(UcJlr#
zCP#r|_0xB23H}!eU+SIxl=;R@U7gD}+2ox*aa2xpxTMQ{`(}rJLh?iAh{y~@v#fJz
z3hqVH{y8!cWjB77J^P&|u_Iep+GwNVZ~o5(ithgYS2l5Ts#R@Ym!@D=!{obQW!+NM
ziRWb#VzoZ-J~=nrH<ry?;VM(-uhUUNN7@W0FuT6o$xzgLRQ1J)Z3mKD_b}aH&V7E?
z@K^$$jce89jGQ=4#~cZUyYW|6CR_}CBhMz!Wx>dvz}3?b{*_-!Tjcj;=8X@%SMO&&
zSGl>nXFDUu2R5BK=7(K!Dj4U@HQ%iLeF^^>0qIN9({yc_f4p?`uacft4hk<%S3j3^
HP6<r_ek+Eb
new file mode 100644
index 0000000000000000000000000000000000000000..b94625680b4a4b9647c3a6f3f283776930696aa9
GIT binary patch
literal 363
zc%17D@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|*pj^6T^PXN
zr}OT5AjMhW5m^k>ejS7voit`w00r4gJbhi+Z?Q9qE9%*tZFU6;z4ml*46!(UcJf9)
zCP#s`{a@EPH3h`Dx>t*SZRum*uvyin<)dJYpwP<-2C3wK|D?F(4s<bbCpQ<FO?D``
zZk_a4W%k@Rf2=?MH<tWyT}^ZPl>cozGfo(Oo4jR@;=x<*S8tZ|sA8ycIRAG=>yhV-
z8*DWT7`TjYZ%y66XrwQ2=l+&S3NOVp8h$<5$;Q>cRQ1P+xJEyhINm+XwZ^|a3|BOq
zcFAu#zG?-FXYhhQZgV-hFKx7!(2@DT`KHl5f$z+n`_*g8-fU!_G%fD0T*S<q(Mfw^
zA4u(Bo_F?*nuiplvvIXmvA@~@?n#^Mb)vtqzEAa07FoRy6krUVu6{1-oD!M<4nd3N
new file mode 100644
--- /dev/null
+++ b/python/macholib/doc/_build/html/_static/websupport.js
@@ -0,0 +1,808 @@
+/*
+ * websupport.js
+ * ~~~~~~~~~~~~~
+ *
+ * sphinx.websupport utilties for all documentation.
+ *
+ * :copyright: Copyright 2007-2013 by the Sphinx team, see AUTHORS.
+ * :license: BSD, see LICENSE for details.
+ *
+ */
+
+(function($) {
+  $.fn.autogrow = function() {
+    return this.each(function() {
+    var textarea = this;
+
+    $.fn.autogrow.resize(textarea);
+
+    $(textarea)
+      .focus(function() {
+        textarea.interval = setInterval(function() {
+          $.fn.autogrow.resize(textarea);
+        }, 500);
+      })
+      .blur(function() {
+        clearInterval(textarea.interval);
+      });
+    });
+  };
+
+  $.fn.autogrow.resize = function(textarea) {
+    var lineHeight = parseInt($(textarea).css('line-height'), 10);
+    var lines = textarea.value.split('\n');
+    var columns = textarea.cols;
+    var lineCount = 0;
+    $.each(lines, function() {
+      lineCount += Math.ceil(this.length / columns) || 1;
+    });
+    var height = lineHeight * (lineCount + 1);
+    $(textarea).css('height', height);
+  };
+})(jQuery);
+
+(function($) {
+  var comp, by;
+
+  function init() {
+    initEvents();
+    initComparator();
+  }
+
+  function initEvents() {
+    $('a.comment-close').live("click", function(event) {
+      event.preventDefault();
+      hide($(this).attr('id').substring(2));
+    });
+    $('a.vote').live("click", function(event) {
+      event.preventDefault();
+      handleVote($(this));
+    });
+    $('a.reply').live("click", function(event) {
+      event.preventDefault();
+      openReply($(this).attr('id').substring(2));
+    });
+    $('a.close-reply').live("click", function(event) {
+      event.preventDefault();
+      closeReply($(this).attr('id').substring(2));
+    });
+    $('a.sort-option').live("click", function(event) {
+      event.preventDefault();
+      handleReSort($(this));
+    });
+    $('a.show-proposal').live("click", function(event) {
+      event.preventDefault();
+      showProposal($(this).attr('id').substring(2));
+    });
+    $('a.hide-proposal').live("click", function(event) {
+      event.preventDefault();
+      hideProposal($(this).attr('id').substring(2));
+    });
+    $('a.show-propose-change').live("click", function(event) {
+      event.preventDefault();
+      showProposeChange($(this).attr('id').substring(2));
+    });
+    $('a.hide-propose-change').live("click", function(event) {
+      event.preventDefault();
+      hideProposeChange($(this).attr('id').substring(2));
+    });
+    $('a.accept-comment').live("click", function(event) {
+      event.preventDefault();
+      acceptComment($(this).attr('id').substring(2));
+    });
+    $('a.delete-comment').live("click", function(event) {
+      event.preventDefault();
+      deleteComment($(this).attr('id').substring(2));
+    });
+    $('a.comment-markup').live("click", function(event) {
+      event.preventDefault();
+      toggleCommentMarkupBox($(this).attr('id').substring(2));
+    });
+  }
+
+  /**
+   * Set comp, which is a comparator function used for sorting and
+   * inserting comments into the list.
+   */
+  function setComparator() {
+    // If the first three letters are "asc", sort in ascending order
+    // and remove the prefix.
+    if (by.substring(0,3) == 'asc') {
+      var i = by.substring(3);
+      comp = function(a, b) { return a[i] - b[i]; };
+    } else {
+      // Otherwise sort in descending order.
+      comp = function(a, b) { return b[by] - a[by]; };
+    }
+
+    // Reset link styles and format the selected sort option.
+    $('a.sel').attr('href', '#').removeClass('sel');
+    $('a.by' + by).removeAttr('href').addClass('sel');
+  }
+
+  /**
+   * Create a comp function. If the user has preferences stored in
+   * the sortBy cookie, use those, otherwise use the default.
+   */
+  function initComparator() {
+    by = 'rating'; // Default to sort by rating.
+    // If the sortBy cookie is set, use that instead.
+    if (document.cookie.length > 0) {
+      var start = document.cookie.indexOf('sortBy=');
+      if (start != -1) {
+        start = start + 7;
+        var end = document.cookie.indexOf(";", start);
+        if (end == -1) {
+          end = document.cookie.length;
+          by = unescape(document.cookie.substring(start, end));
+        }
+      }
+    }
+    setComparator();
+  }
+
+  /**
+   * Show a comment div.
+   */
+  function show(id) {
+    $('#ao' + id).hide();
+    $('#ah' + id).show();
+    var context = $.extend({id: id}, opts);
+    var popup = $(renderTemplate(popupTemplate, context)).hide();
+    popup.find('textarea[name="proposal"]').hide();
+    popup.find('a.by' + by).addClass('sel');
+    var form = popup.find('#cf' + id);
+    form.submit(function(event) {
+      event.preventDefault();
+      addComment(form);
+    });
+    $('#s' + id).after(popup);
+    popup.slideDown('fast', function() {
+      getComments(id);
+    });
+  }
+
+  /**
+   * Hide a comment div.
+   */
+  function hide(id) {
+    $('#ah' + id).hide();
+    $('#ao' + id).show();
+    var div = $('#sc' + id);
+    div.slideUp('fast', function() {
+      div.remove();
+    });
+  }
+
+  /**
+   * Perform an ajax request to get comments for a node
+   * and insert the comments into the comments tree.
+   */
+  function getComments(id) {
+    $.ajax({
+     type: 'GET',
+     url: opts.getCommentsURL,
+     data: {node: id},
+     success: function(data, textStatus, request) {
+       var ul = $('#cl' + id);
+       var speed = 100;
+       $('#cf' + id)
+         .find('textarea[name="proposal"]')
+         .data('source', data.source);
+
+       if (data.comments.length === 0) {
+         ul.html('<li>No comments yet.</li>');
+         ul.data('empty', true);
+       } else {
+         // If there are comments, sort them and put them in the list.
+         var comments = sortComments(data.comments);
+         speed = data.comments.length * 100;
+         appendComments(comments, ul);
+         ul.data('empty', false);
+       }
+       $('#cn' + id).slideUp(speed + 200);
+       ul.slideDown(speed);
+     },
+     error: function(request, textStatus, error) {
+       showError('Oops, there was a problem retrieving the comments.');
+     },
+     dataType: 'json'
+    });
+  }
+
+  /**
+   * Add a comment via ajax and insert the comment into the comment tree.
+   */
+  function addComment(form) {
+    var node_id = form.find('input[name="node"]').val();
+    var parent_id = form.find('input[name="parent"]').val();
+    var text = form.find('textarea[name="comment"]').val();
+    var proposal = form.find('textarea[name="proposal"]').val();
+
+    if (text == '') {
+      showError('Please enter a comment.');
+      return;
+    }
+
+    // Disable the form that is being submitted.
+    form.find('textarea,input').attr('disabled', 'disabled');
+
+    // Send the comment to the server.
+    $.ajax({
+      type: "POST",
+      url: opts.addCommentURL,
+      dataType: 'json',
+      data: {
+        node: node_id,
+        parent: parent_id,
+        text: text,
+        proposal: proposal
+      },
+      success: function(data, textStatus, error) {
+        // Reset the form.
+        if (node_id) {
+          hideProposeChange(node_id);
+        }
+        form.find('textarea')
+          .val('')
+          .add(form.find('input'))
+          .removeAttr('disabled');
+	var ul = $('#cl' + (node_id || parent_id));
+        if (ul.data('empty')) {
+          $(ul).empty();
+          ul.data('empty', false);
+        }
+        insertComment(data.comment);
+        var ao = $('#ao' + node_id);
+        ao.find('img').attr({'src': opts.commentBrightImage});
+        if (node_id) {
+          // if this was a "root" comment, remove the commenting box
+          // (the user can get it back by reopening the comment popup)
+          $('#ca' + node_id).slideUp();
+        }
+      },
+      error: function(request, textStatus, error) {
+        form.find('textarea,input').removeAttr('disabled');
+        showError('Oops, there was a problem adding the comment.');
+      }
+    });
+  }
+
+  /**
+   * Recursively append comments to the main comment list and children
+   * lists, creating the comment tree.
+   */
+  function appendComments(comments, ul) {
+    $.each(comments, function() {
+      var div = createCommentDiv(this);
+      ul.append($(document.createElement('li')).html(div));
+      appendComments(this.children, div.find('ul.comment-children'));
+      // To avoid stagnating data, don't store the comments children in data.
+      this.children = null;
+      div.data('comment', this);
+    });
+  }
+
+  /**
+   * After adding a new comment, it must be inserted in the correct
+   * location in the comment tree.
+   */
+  function insertComment(comment) {
+    var div = createCommentDiv(comment);
+
+    // To avoid stagnating data, don't store the comments children in data.
+    comment.children = null;
+    div.data('comment', comment);
+
+    var ul = $('#cl' + (comment.node || comment.parent));
+    var siblings = getChildren(ul);
+
+    var li = $(document.createElement('li'));
+    li.hide();
+
+    // Determine where in the parents children list to insert this comment.
+    for(i=0; i < siblings.length; i++) {
+      if (comp(comment, siblings[i]) <= 0) {
+        $('#cd' + siblings[i].id)
+          .parent()
+          .before(li.html(div));
+        li.slideDown('fast');
+        return;
+      }
+    }
+
+    // If we get here, this comment rates lower than all the others,
+    // or it is the only comment in the list.
+    ul.append(li.html(div));
+    li.slideDown('fast');
+  }
+
+  function acceptComment(id) {
+    $.ajax({
+      type: 'POST',
+      url: opts.acceptCommentURL,
+      data: {id: id},
+      success: function(data, textStatus, request) {
+        $('#cm' + id).fadeOut('fast');
+        $('#cd' + id).removeClass('moderate');
+      },
+      error: function(request, textStatus, error) {
+        showError('Oops, there was a problem accepting the comment.');
+      }
+    });
+  }
+
+  function deleteComment(id) {
+    $.ajax({
+      type: 'POST',
+      url: opts.deleteCommentURL,
+      data: {id: id},
+      success: function(data, textStatus, request) {
+        var div = $('#cd' + id);
+        if (data == 'delete') {
+          // Moderator mode: remove the comment and all children immediately
+          div.slideUp('fast', function() {
+            div.remove();
+          });
+          return;
+        }
+        // User mode: only mark the comment as deleted
+        div
+          .find('span.user-id:first')
+          .text('[deleted]').end()
+          .find('div.comment-text:first')
+          .text('[deleted]').end()
+          .find('#cm' + id + ', #dc' + id + ', #ac' + id + ', #rc' + id +
+                ', #sp' + id + ', #hp' + id + ', #cr' + id + ', #rl' + id)
+          .remove();
+        var comment = div.data('comment');
+        comment.username = '[deleted]';
+        comment.text = '[deleted]';
+        div.data('comment', comment);
+      },
+      error: function(request, textStatus, error) {
+        showError('Oops, there was a problem deleting the comment.');
+      }
+    });
+  }
+
+  function showProposal(id) {
+    $('#sp' + id).hide();
+    $('#hp' + id).show();
+    $('#pr' + id).slideDown('fast');
+  }
+
+  function hideProposal(id) {
+    $('#hp' + id).hide();
+    $('#sp' + id).show();
+    $('#pr' + id).slideUp('fast');
+  }
+
+  function showProposeChange(id) {
+    $('#pc' + id).hide();
+    $('#hc' + id).show();
+    var textarea = $('#pt' + id);
+    textarea.val(textarea.data('source'));
+    $.fn.autogrow.resize(textarea[0]);
+    textarea.slideDown('fast');
+  }
+
+  function hideProposeChange(id) {
+    $('#hc' + id).hide();
+    $('#pc' + id).show();
+    var textarea = $('#pt' + id);
+    textarea.val('').removeAttr('disabled');
+    textarea.slideUp('fast');
+  }
+
+  function toggleCommentMarkupBox(id) {
+    $('#mb' + id).toggle();
+  }
+
+  /** Handle when the user clicks on a sort by link. */
+  function handleReSort(link) {
+    var classes = link.attr('class').split(/\s+/);
+    for (var i=0; i<classes.length; i++) {
+      if (classes[i] != 'sort-option') {
+	by = classes[i].substring(2);
+      }
+    }
+    setComparator();
+    // Save/update the sortBy cookie.
+    var expiration = new Date();
+    expiration.setDate(expiration.getDate() + 365);
+    document.cookie= 'sortBy=' + escape(by) +
+                     ';expires=' + expiration.toUTCString();
+    $('ul.comment-ul').each(function(index, ul) {
+      var comments = getChildren($(ul), true);
+      comments = sortComments(comments);
+      appendComments(comments, $(ul).empty());
+    });
+  }
+
+  /**
+   * Function to process a vote when a user clicks an arrow.
+   */
+  function handleVote(link) {
+    if (!opts.voting) {
+      showError("You'll need to login to vote.");
+      return;
+    }
+
+    var id = link.attr('id');
+    if (!id) {
+      // Didn't click on one of the voting arrows.
+      return;
+    }
+    // If it is an unvote, the new vote value is 0,
+    // Otherwise it's 1 for an upvote, or -1 for a downvote.
+    var value = 0;
+    if (id.charAt(1) != 'u') {
+      value = id.charAt(0) == 'u' ? 1 : -1;
+    }
+    // The data to be sent to the server.
+    var d = {
+      comment_id: id.substring(2),
+      value: value
+    };
+
+    // Swap the vote and unvote links.
+    link.hide();
+    $('#' + id.charAt(0) + (id.charAt(1) == 'u' ? 'v' : 'u') + d.comment_id)
+      .show();
+
+    // The div the comment is displayed in.
+    var div = $('div#cd' + d.comment_id);
+    var data = div.data('comment');
+
+    // If this is not an unvote, and the other vote arrow has
+    // already been pressed, unpress it.
+    if ((d.value !== 0) && (data.vote === d.value * -1)) {
+      $('#' + (d.value == 1 ? 'd' : 'u') + 'u' + d.comment_id).hide();
+      $('#' + (d.value == 1 ? 'd' : 'u') + 'v' + d.comment_id).show();
+    }
+
+    // Update the comments rating in the local data.
+    data.rating += (data.vote === 0) ? d.value : (d.value - data.vote);
+    data.vote = d.value;
+    div.data('comment', data);
+
+    // Change the rating text.
+    div.find('.rating:first')
+      .text(data.rating + ' point' + (data.rating == 1 ? '' : 's'));
+
+    // Send the vote information to the server.
+    $.ajax({
+      type: "POST",
+      url: opts.processVoteURL,
+      data: d,
+      error: function(request, textStatus, error) {
+        showError('Oops, there was a problem casting that vote.');
+      }
+    });
+  }
+
+  /**
+   * Open a reply form used to reply to an existing comment.
+   */
+  function openReply(id) {
+    // Swap out the reply link for the hide link
+    $('#rl' + id).hide();
+    $('#cr' + id).show();
+
+    // Add the reply li to the children ul.
+    var div = $(renderTemplate(replyTemplate, {id: id})).hide();
+    $('#cl' + id)
+      .prepend(div)
+      // Setup the submit handler for the reply form.
+      .find('#rf' + id)
+      .submit(function(event) {
+        event.preventDefault();
+        addComment($('#rf' + id));
+        closeReply(id);
+      })
+      .find('input[type=button]')
+      .click(function() {
+        closeReply(id);
+      });
+    div.slideDown('fast', function() {
+      $('#rf' + id).find('textarea').focus();
+    });
+  }
+
+  /**
+   * Close the reply form opened with openReply.
+   */
+  function closeReply(id) {
+    // Remove the reply div from the DOM.
+    $('#rd' + id).slideUp('fast', function() {
+      $(this).remove();
+    });
+
+    // Swap out the hide link for the reply link
+    $('#cr' + id).hide();
+    $('#rl' + id).show();
+  }
+
+  /**
+   * Recursively sort a tree of comments using the comp comparator.
+   */
+  function sortComments(comments) {
+    comments.sort(comp);
+    $.each(comments, function() {
+      this.children = sortComments(this.children);
+    });
+    return comments;
+  }
+
+  /**
+   * Get the children comments from a ul. If recursive is true,
+   * recursively include childrens' children.
+   */
+  function getChildren(ul, recursive) {
+    var children = [];
+    ul.children().children("[id^='cd']")
+      .each(function() {
+        var comment = $(this).data('comment');
+        if (recursive)
+          comment.children = getChildren($(this).find('#cl' + comment.id), true);
+        children.push(comment);
+      });
+    return children;
+  }
+
+  /** Create a div to display a comment in. */
+  function createCommentDiv(comment) {
+    if (!comment.displayed && !opts.moderator) {
+      return $('<div class="moderate">Thank you!  Your comment will show up '
+               + 'once it is has been approved by a moderator.</div>');
+    }
+    // Prettify the comment rating.
+    comment.pretty_rating = comment.rating + ' point' +
+      (comment.rating == 1 ? '' : 's');
+    // Make a class (for displaying not yet moderated comments differently)
+    comment.css_class = comment.displayed ? '' : ' moderate';
+    // Create a div for this comment.
+    var context = $.extend({}, opts, comment);
+    var div = $(renderTemplate(commentTemplate, context));
+
+    // If the user has voted on this comment, highlight the correct arrow.
+    if (comment.vote) {
+      var direction = (comment.vote == 1) ? 'u' : 'd';
+      div.find('#' + direction + 'v' + comment.id).hide();
+      div.find('#' + direction + 'u' + comment.id).show();
+    }
+
+    if (opts.moderator || comment.text != '[deleted]') {
+      div.find('a.reply').show();
+      if (comment.proposal_diff)
+        div.find('#sp' + comment.id).show();
+      if (opts.moderator && !comment.displayed)
+        div.find('#cm' + comment.id).show();
+      if (opts.moderator || (opts.username == comment.username))
+        div.find('#dc' + comment.id).show();
+    }
+    return div;
+  }
+
+  /**
+   * A simple template renderer. Placeholders such as <%id%> are replaced
+   * by context['id'] with items being escaped. Placeholders such as <#id#>
+   * are not escaped.
+   */
+  function renderTemplate(template, context) {
+    var esc = $(document.createElement('div'));
+
+    function handle(ph, escape) {
+      var cur = context;
+      $.each(ph.split('.'), function() {
+        cur = cur[this];
+      });
+      return escape ? esc.text(cur || "").html() : cur;
+    }
+
+    return template.replace(/<([%#])([\w\.]*)\1>/g, function() {
+      return handle(arguments[2], arguments[1] == '%' ? true : false);
+    });
+  }
+
+  /** Flash an error message briefly. */
+  function showError(message) {
+    $(document.createElement('div')).attr({'class': 'popup-error'})
+      .append($(document.createElement('div'))
+               .attr({'class': 'error-message'}).text(message))
+      .appendTo('body')
+      .fadeIn("slow")
+      .delay(2000)
+      .fadeOut("slow");
+  }
+
+  /** Add a link the user uses to open the comments popup. */
+  $.fn.comment = function() {
+    return this.each(function() {
+      var id = $(this).attr('id').substring(1);
+      var count = COMMENT_METADATA[id];
+      var title = count + ' comment' + (count == 1 ? '' : 's');
+      var image = count > 0 ? opts.commentBrightImage : opts.commentImage;
+      var addcls = count == 0 ? ' nocomment' : '';
+      $(this)
+        .append(
+          $(document.createElement('a')).attr({
+            href: '#',
+            'class': 'sphinx-comment-open' + addcls,
+            id: 'ao' + id
+          })
+            .append($(document.createElement('img')).attr({
+              src: image,
+              alt: 'comment',
+              title: title
+            }))
+            .click(function(event) {
+              event.preventDefault();
+              show($(this).attr('id').substring(2));
+            })
+        )
+        .append(
+          $(document.createElement('a')).attr({
+            href: '#',
+            'class': 'sphinx-comment-close hidden',
+            id: 'ah' + id
+          })
+            .append($(document.createElement('img')).attr({
+              src: opts.closeCommentImage,
+              alt: 'close',
+              title: 'close'
+            }))
+            .click(function(event) {
+              event.preventDefault();
+              hide($(this).attr('id').substring(2));
+            })
+        );
+    });
+  };
+
+  var opts = {
+    processVoteURL: '/_process_vote',
+    addCommentURL: '/_add_comment',
+    getCommentsURL: '/_get_comments',
+    acceptCommentURL: '/_accept_comment',
+    deleteCommentURL: '/_delete_comment',
+    commentImage: '/static/_static/comment.png',
+    closeCommentImage: '/static/_static/comment-close.png',
+    loadingImage: '/static/_static/ajax-loader.gif',
+    commentBrightImage: '/static/_static/comment-bright.png',
+    upArrow: '/static/_static/up.png',
+    downArrow: '/static/_static/down.png',
+    upArrowPressed: '/static/_static/up-pressed.png',
+    downArrowPressed: '/static/_static/down-pressed.png',
+    voting: false,
+    moderator: false
+  };
+
+  if (typeof COMMENT_OPTIONS != "undefined") {
+    opts = jQuery.extend(opts, COMMENT_OPTIONS);
+  }
+
+  var popupTemplate = '\
+    <div class="sphinx-comments" id="sc<%id%>">\
+      <p class="sort-options">\
+        Sort by:\
+        <a href="#" class="sort-option byrating">best rated</a>\
+        <a href="#" class="sort-option byascage">newest</a>\
+        <a href="#" class="sort-option byage">oldest</a>\
+      </p>\
+      <div class="comment-header">Comments</div>\
+      <div class="comment-loading" id="cn<%id%>">\
+        loading comments... <img src="<%loadingImage%>" alt="" /></div>\
+      <ul id="cl<%id%>" class="comment-ul"></ul>\
+      <div id="ca<%id%>">\
+      <p class="add-a-comment">Add a comment\
+        (<a href="#" class="comment-markup" id="ab<%id%>">markup</a>):</p>\
+      <div class="comment-markup-box" id="mb<%id%>">\
+        reStructured text markup: <i>*emph*</i>, <b>**strong**</b>, \
+        <tt>``code``</tt>, \
+        code blocks: <tt>::</tt> and an indented block after blank line</div>\
+      <form method="post" id="cf<%id%>" class="comment-form" action="">\
+        <textarea name="comment" cols="80"></textarea>\
+        <p class="propose-button">\
+          <a href="#" id="pc<%id%>" class="show-propose-change">\
+            Propose a change &#9657;\
+          </a>\
+          <a href="#" id="hc<%id%>" class="hide-propose-change">\
+            Propose a change &#9663;\
+          </a>\
+        </p>\
+        <textarea name="proposal" id="pt<%id%>" cols="80"\
+                  spellcheck="false"></textarea>\
+        <input type="submit" value="Add comment" />\
+        <input type="hidden" name="node" value="<%id%>" />\
+        <input type="hidden" name="parent" value="" />\
+      </form>\
+      </div>\
+    </div>';
+
+  var commentTemplate = '\
+    <div id="cd<%id%>" class="sphinx-comment<%css_class%>">\
+      <div class="vote">\
+        <div class="arrow">\
+          <a href="#" id="uv<%id%>" class="vote" title="vote up">\
+            <img src="<%upArrow%>" />\
+          </a>\
+          <a href="#" id="uu<%id%>" class="un vote" title="vote up">\
+            <img src="<%upArrowPressed%>" />\
+          </a>\
+        </div>\
+        <div class="arrow">\
+          <a href="#" id="dv<%id%>" class="vote" title="vote down">\
+            <img src="<%downArrow%>" id="da<%id%>" />\
+          </a>\
+          <a href="#" id="du<%id%>" class="un vote" title="vote down">\
+            <img src="<%downArrowPressed%>" />\
+          </a>\
+        </div>\
+      </div>\
+      <div class="comment-content">\
+        <p class="tagline comment">\
+          <span class="user-id"><%username%></span>\
+          <span class="rating"><%pretty_rating%></span>\
+          <span class="delta"><%time.delta%></span>\
+        </p>\
+        <div class="comment-text comment"><#text#></div>\
+        <p class="comment-opts comment">\
+          <a href="#" class="reply hidden" id="rl<%id%>">reply &#9657;</a>\
+          <a href="#" class="close-reply" id="cr<%id%>">reply &#9663;</a>\
+          <a href="#" id="sp<%id%>" class="show-proposal">proposal &#9657;</a>\
+          <a href="#" id="hp<%id%>" class="hide-proposal">proposal &#9663;</a>\
+          <a href="#" id="dc<%id%>" class="delete-comment hidden">delete</a>\
+          <span id="cm<%id%>" class="moderation hidden">\
+            <a href="#" id="ac<%id%>" class="accept-comment">accept</a>\
+          </span>\
+        </p>\
+        <pre class="proposal" id="pr<%id%>">\
+<#proposal_diff#>\
+        </pre>\
+          <ul class="comment-children" id="cl<%id%>"></ul>\
+        </div>\
+        <div class="clearleft"></div>\
+      </div>\
+    </div>';
+
+  var replyTemplate = '\
+    <li>\
+      <div class="reply-div" id="rd<%id%>">\
+        <form id="rf<%id%>">\
+          <textarea name="comment" cols="80"></textarea>\
+          <input type="submit" value="Add reply" />\
+          <input type="button" value="Cancel" />\
+          <input type="hidden" name="parent" value="<%id%>" />\
+          <input type="hidden" name="node" value="" />\
+        </form>\
+      </div>\
+    </li>';
+
+  $(document).ready(function() {
+    init();
+  });
+})(jQuery);
+
+$(document).ready(function() {
+  // add comment anchors for all paragraphs that are commentable
+  $('.sphinx-has-comment').comment();
+
+  // highlight search words in search results
+  $("div.context").each(function() {
+    var params = $.getQueryParameters();
+    var terms = (params.q) ? params.q[0].split(/\s+/) : [];
+    var result = $(this);
+    $.each(terms, function() {
+      result.highlightText(this.toLowerCase(), 'highlighted');
+    });
+  });
+
+  // directly open comment window if requested
+  var anchor = document.location.hash;
+  if (anchor.substring(0, 9) == '#comment-') {
+    $('#ao' + anchor.substring(9)).click();
+    document.location.hash = '#s' + anchor.substring(9);
+  }
+});
new file mode 100644
--- /dev/null
+++ b/python/macholib/doc/_build/html/changelog.html
@@ -0,0 +1,385 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    
+    <title>Release history &mdash; macholib 1.7 documentation</title>
+    
+    <link rel="stylesheet" href="_static/nature.css" type="text/css" />
+    <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
+    
+    <script type="text/javascript">
+      var DOCUMENTATION_OPTIONS = {
+        URL_ROOT:    './',
+        VERSION:     '1.7',
+        COLLAPSE_INDEX: false,
+        FILE_SUFFIX: '.html',
+        HAS_SOURCE:  true
+      };
+    </script>
+    <script type="text/javascript" src="_static/jquery.js"></script>
+    <script type="text/javascript" src="_static/underscore.js"></script>
+    <script type="text/javascript" src="_static/doctools.js"></script>
+    <link rel="top" title="macholib 1.7 documentation" href="index.html" />
+    <link rel="next" title="License" href="license.html" />
+    <link rel="prev" title="Macholib - Analyze and edit Mach-O headers" href="index.html" /> 
+  </head>
+  <body>
+    <div class="related">
+      <h3>Navigation</h3>
+      <ul>
+        <li class="right" style="margin-right: 10px">
+          <a href="genindex.html" title="General Index"
+             accesskey="I">index</a></li>
+        <li class="right" >
+          <a href="py-modindex.html" title="Python Module Index"
+             >modules</a> |</li>
+        <li class="right" >
+          <a href="license.html" title="License"
+             accesskey="N">next</a> |</li>
+        <li class="right" >
+          <a href="index.html" title="Macholib - Analyze and edit Mach-O headers"
+             accesskey="P">previous</a> |</li>
+        <li><a href="index.html">macholib 1.7 documentation</a> &raquo;</li> 
+      </ul>
+    </div>  
+
+    <div class="document">
+      <div class="documentwrapper">
+        <div class="bodywrapper">
+          <div class="body">
+            
+  <div class="section" id="release-history">
+<h1>Release history<a class="headerlink" href="#release-history" title="Permalink to this headline">¶</a></h1>
+<div class="section" id="macholib-1-7">
+<h2>macholib 1.7<a class="headerlink" href="#macholib-1-7" title="Permalink to this headline">¶</a></h2>
+<ul>
+<li><p class="first">Added support for ARM64, LC_ENCRYPTION_INFO_64 and LC_LINKER_OPTION</p>
+<p>Patch by Matthias Ringwald.</p>
+</li>
+<li><p class="first">Load commands now have a &#8220;describe&#8221; method that returns more information
+about the command.</p>
+<p>Patch by David Dorsey.</p>
+</li>
+<li><p class="first">The MAGIC value in the header was always represented in the native
+byte order, instead of as the value read from the binary.</p>
+<p>Patch by David Dorsey.</p>
+</li>
+<li><p class="first">Added various new constants to &#8220;macholib.mach_o&#8221;.</p>
+<p>Patch by David Dorsey.</p>
+</li>
+</ul>
+</div>
+<div class="section" id="macholib-1-6-1">
+<h2>macholib 1.6.1<a class="headerlink" href="#macholib-1-6-1" title="Permalink to this headline">¶</a></h2>
+<ul class="simple">
+<li>?</li>
+</ul>
+</div>
+<div class="section" id="macholib-1-6">
+<h2>macholib 1.6<a class="headerlink" href="#macholib-1-6" title="Permalink to this headline">¶</a></h2>
+<ul>
+<li><p class="first">Add support for <a class="reference external" href="mailto:'&#37;&#52;&#48;loader_path">'<span>&#64;</span>loader_path</a>&#8216; link command in
+macholib.dyld:</p>
+<ul class="simple">
+<li>Added function <tt class="docutils literal"><span class="pre">macholib.dyld.dyld_loader_search</span></tt></li>
+<li>This function is used by <tt class="docutils literal"><span class="pre">macholib.dyld.dyld_find</span></tt>,
+and that function now has an new (optional) argument
+with the path to the loader.</li>
+</ul>
+</li>
+<li><p class="first">Also add support for <a class="reference external" href="mailto:'&#37;&#52;&#48;loader_path">'<span>&#64;</span>loader_path</a>&#8216; to macholib.MachoGraph,
+using the newly added <a class="reference external" href="mailto:'&#37;&#52;&#48;loader_path">'<span>&#64;</span>loader_path</a>&#8216; support in the
+dyld module.</p>
+<p>Due to this suppport the <em>macho_standalone</em> tool can
+now rewrite binaries that contain an <a class="reference external" href="mailto:'&#37;&#52;&#48;loader_path">'<span>&#64;</span>loader_path</a>&#8216; load
+command.</p>
+</li>
+</ul>
+</div>
+<div class="section" id="macholib-1-5-2">
+<h2>macholib 1.5.2<a class="headerlink" href="#macholib-1-5-2" title="Permalink to this headline">¶</a></h2>
+<ul class="simple">
+<li>Issue #93: Show the name of the affected file in the exception message
+for Mach-O headers that are too large to relocate.</li>
+</ul>
+</div>
+<div class="section" id="macholib-1-5-1">
+<h2>macholib 1.5.1<a class="headerlink" href="#macholib-1-5-1" title="Permalink to this headline">¶</a></h2>
+<ul class="simple">
+<li>There were no &#8216;classifiers&#8217; in the package metadata due to
+a bug in setup.py.</li>
+</ul>
+</div>
+<div class="section" id="macholib-1-5">
+<h2>macholib 1.5<a class="headerlink" href="#macholib-1-5" title="Permalink to this headline">¶</a></h2>
+<p>macholib 1.5 is a minor feature release</p>
+<ul>
+<li><p class="first">No longer use 2to3 to provide Python 3 support</p>
+<p>As a side-effect of this macholib no longer supports
+Python 2.5 and earlier.</p>
+</li>
+<li><p class="first">Adds suppport for some new macho load commands</p>
+</li>
+<li><p class="first">Fix for py3k problem in macho_standalone.py</p>
+<p>Patch by Guanqun Lu.</p>
+</li>
+<li><p class="first">Fix for some issues in macho_dump.py</p>
+<p>Patch by Nam Nguyen</p>
+</li>
+<li><p class="first">Issue #10: Fix for LC_DATA_IN_CODE linker commands, without
+this fix py2app cannot build application bundles when
+the source binaries have been compiled with Xcode 4.5.</p>
+</li>
+<li><p class="first">Issue #6: Fix for LC_ENCRYPTION_INFO linker commands</p>
+</li>
+<li><p class="first">Use the mach header information to print the cpu type of a
+binary, instead of trying to deduce that from pointer width
+and endianness.</p>
+<p>Changed the code because of issue #6, in which a user tries to
+dump a iOS binary which results in bogus output in the previous
+releases.</p>
+</li>
+<li><p class="first">The mapping <tt class="docutils literal"><span class="pre">macholib.macho_dump.ARCH_MAP</span></tt> is undocumented
+and no longer used by macholib itself. It will be removed
+in the next release.</p>
+</li>
+<li><p class="first">The command-line tools <tt class="docutils literal"><span class="pre">macho_find</span></tt>, <tt class="docutils literal"><span class="pre">macho_dump</span></tt> and
+<tt class="docutils literal"><span class="pre">macho_standalone</span></tt> are deprecated. Use &#8220;python -mmacholib&#8221;
+instead. That is:</p>
+<div class="highlight-python"><div class="highlight"><pre>$ python -mmacholib dump /usr/bin/grep
+
+$ python -mmacholib find ~
+
+$ python -mmacholib standalone myapp.app
+</pre></div>
+</div>
+<p>This makes it clearer which version of the tools are used.</p>
+</li>
+</ul>
+</div>
+<div class="section" id="macholib-1-4-3">
+<h2>macholib 1.4.3<a class="headerlink" href="#macholib-1-4-3" title="Permalink to this headline">¶</a></h2>
+<p>macholib 1.4.3 is a minor feature release</p>
+<ul>
+<li><p class="first">Added strings for &#8216;x86_64&#8217; and &#8216;ppc64&#8217; to
+macholib.mach_o.CPU_TYPE_NAMES.</p>
+</li>
+<li><p class="first">macho_find and macho_dump were broken in the 1.4.2 release</p>
+</li>
+<li><p class="first">added &#8216;macholib.util.NOT_SYSTEM_FILES&#8217;, a list of
+files that aren&#8217;t system path&#8217;s even though they are
+located in system locations.</p>
+<p>Needed to work around a bug in PySide (see issue #32 in the
+py2app tracker)</p>
+</li>
+</ul>
+</div>
+<div class="section" id="macholib-1-4-2">
+<h2>macholib 1.4.2<a class="headerlink" href="#macholib-1-4-2" title="Permalink to this headline">¶</a></h2>
+<p>macholib 1.4.2 is a minor bugfix release</p>
+<ul class="simple">
+<li>The support for new load commands that was added in 1.4.1
+contained a typo that caused problems on OSX 10.7 (Lion).</li>
+</ul>
+</div>
+<div class="section" id="macholib-1-4-1">
+<h2>macholib 1.4.1<a class="headerlink" href="#macholib-1-4-1" title="Permalink to this headline">¶</a></h2>
+<p>macholib 1.4.1 is a minor feature release</p>
+<p>Features:</p>
+<ul class="simple">
+<li>Add support for a number of new MachO load commands that were added
+during the lifetime of OSX 10.6: <tt class="docutils literal"><span class="pre">LC_LOAD_UPWARD_DYLIB</span></tt>,
+<tt class="docutils literal"><span class="pre">LC_VERSION_MIN_MACOSX</span></tt>, <tt class="docutils literal"><span class="pre">LC_VERSION_MIN_IPHONEOS</span></tt> and
+<tt class="docutils literal"><span class="pre">LC_FUNCTION_STARTS</span></tt>.</li>
+</ul>
+</div>
+<div class="section" id="macholib-1-4">
+<h2>macholib 1.4<a class="headerlink" href="#macholib-1-4" title="Permalink to this headline">¶</a></h2>
+<p>macholib 1.4 is a feature release</p>
+<p>Features:</p>
+<ul>
+<li><p class="first">Documentation is now generated using <a class="reference external" href="http://pypi.python.org/pypi/sphinx">sphinx</a>
+and can be viewed at &lt;<a class="reference external" href="http://packages.python.org/macholib">http://packages.python.org/macholib</a>&gt;.</p>
+</li>
+<li><p class="first">The repository has moved to bitbucket</p>
+</li>
+<li><p class="first">There now is a testsuite</p>
+</li>
+<li><p class="first">Private functionality inside modules was renamed to
+a name starting with an underscore.</p>
+<div class="admonition note">
+<p class="first admonition-title">Note</p>
+<p class="last">if this change affects your code you are relying on undefined
+implementation features, please stop using private functions.</p>
+</div>
+</li>
+<li><p class="first">The basic packable types in <tt class="docutils literal"><span class="pre">macholib.ptypes</span></tt> were renamed to better
+represent the corresponding C type. The table below lists the old
+an new names (the old names are still available, but are deprecated and
+will be removed in a future release).</p>
+<table border="1" class="docutils">
+<colgroup>
+<col width="50%" />
+<col width="50%" />
+</colgroup>
+<thead valign="bottom">
+<tr class="row-odd"><th class="head"><strong>Old name</strong></th>
+<th class="head"><strong>New name</strong></th>
+</tr>
+</thead>
+<tbody valign="top">
+<tr class="row-even"><td>p_byte</td>
+<td>p_int8</td>
+</tr>
+<tr class="row-odd"><td>p_ubyte</td>
+<td>p_uint8</td>
+</tr>
+<tr class="row-even"><td>p_short</td>
+<td>p_int16</td>
+</tr>
+<tr class="row-odd"><td>p_ushort</td>
+<td>p_uint16</td>
+</tr>
+<tr class="row-even"><td>p_int</td>
+<td>p_int32</td>
+</tr>
+<tr class="row-odd"><td>p_uint</td>
+<td>p_uint32</td>
+</tr>
+<tr class="row-even"><td>p_long</td>
+<td>p_int32</td>
+</tr>
+<tr class="row-odd"><td>p_ulong</td>
+<td>p_uint32</td>
+</tr>
+<tr class="row-even"><td>p_longlong</td>
+<td>p_int64</td>
+</tr>
+<tr class="row-odd"><td>p_ulonglong</td>
+<td>p_uint64</td>
+</tr>
+</tbody>
+</table>
+<p><tt class="docutils literal"><span class="pre">Macholib.ptypes.p_ptr</span></tt> is no longer present as it had an unclear
+definition and isn&#8217;t actually used in the codebase.</p>
+</li>
+</ul>
+<p>Bug fixes:</p>
+<ul>
+<li><p class="first">The semantics of <tt class="docutils literal"><span class="pre">dyld.dyld_default_search</span></tt> were changed a bit,
+it now first searches the framework path (if appropriate) and then
+the linker path, irrespective of the value of the <tt class="docutils literal"><span class="pre">DYLD_FALLBACK*</span></tt>
+environment variables.</p>
+<p>Previous versions would change the search order when those variables
+was set, which is odd and doesn&#8217;t correspond with the documented
+behaviour of the system dyld.</p>
+</li>
+<li><p class="first">It is once again possible to install using python2.5</p>
+</li>
+<li><p class="first">The source distribution includes all files, this was broken
+due to the switch to mercurial (which confused setuptools)</p>
+</li>
+</ul>
+</div>
+<div class="section" id="macholib-1-3">
+<h2>macholib 1.3<a class="headerlink" href="#macholib-1-3" title="Permalink to this headline">¶</a></h2>
+<p>macholib 1.3 is a feature release.</p>
+<p>Features:</p>
+<ul>
+<li><p class="first">Experimental Python 3.x support</p>
+<p>This version contains lightly tested support for Python 3.</p>
+</li>
+</ul>
+</div>
+<div class="section" id="macholib-1-2-2">
+<h2>macholib 1.2.2<a class="headerlink" href="#macholib-1-2-2" title="Permalink to this headline">¶</a></h2>
+<p>macholib 1.2.2 is a bugfix release.</p>
+<p>Bug fixes:</p>
+<ul class="simple">
+<li>Macholib should work better with 64-bit code
+(patch by Marc-Antoine Parent)</li>
+</ul>
+</div>
+</div>
+
+
+          </div>
+        </div>
+      </div>
+      <div class="sphinxsidebar">
+        <div class="sphinxsidebarwrapper">
+  <h3><a href="index.html">Table Of Contents</a></h3>
+  <ul>
+<li><a class="reference internal" href="#">Release history</a><ul>
+<li><a class="reference internal" href="#macholib-1-7">macholib 1.7</a></li>
+<li><a class="reference internal" href="#macholib-1-6-1">macholib 1.6.1</a></li>
+<li><a class="reference internal" href="#macholib-1-6">macholib 1.6</a></li>
+<li><a class="reference internal" href="#macholib-1-5-2">macholib 1.5.2</a></li>
+<li><a class="reference internal" href="#macholib-1-5-1">macholib 1.5.1</a></li>
+<li><a class="reference internal" href="#macholib-1-5">macholib 1.5</a></li>
+<li><a class="reference internal" href="#macholib-1-4-3">macholib 1.4.3</a></li>
+<li><a class="reference internal" href="#macholib-1-4-2">macholib 1.4.2</a></li>
+<li><a class="reference internal" href="#macholib-1-4-1">macholib 1.4.1</a></li>
+<li><a class="reference internal" href="#macholib-1-4">macholib 1.4</a></li>
+<li><a class="reference internal" href="#macholib-1-3">macholib 1.3</a></li>
+<li><a class="reference internal" href="#macholib-1-2-2">macholib 1.2.2</a></li>
+</ul>
+</li>
+</ul>
+
+  <h4>Previous topic</h4>
+  <p class="topless"><a href="index.html"
+                        title="previous chapter">Macholib - Analyze and edit Mach-O headers</a></p>
+  <h4>Next topic</h4>
+  <p class="topless"><a href="license.html"
+                        title="next chapter">License</a></p>
+  <h3>This Page</h3>
+  <ul class="this-page-menu">
+    <li><a href="_sources/changelog.txt"
+           rel="nofollow">Show Source</a></li>
+  </ul>
+<div id="searchbox" style="display: none">
+  <h3>Quick search</h3>
+    <form class="search" action="search.html" method="get">
+      <input type="text" name="q" />
+      <input type="submit" value="Go" />
+      <input type="hidden" name="check_keywords" value="yes" />
+      <input type="hidden" name="area" value="default" />
+    </form>
+    <p class="searchtip" style="font-size: 90%">
+    Enter search terms or a module, class or function name.
+    </p>
+</div>
+<script type="text/javascript">$('#searchbox').show(0);</script>
+        </div>
+      </div>
+      <div class="clearer"></div>
+    </div>
+    <div class="related">
+      <h3>Navigation</h3>
+      <ul>
+        <li class="right" style="margin-right: 10px">
+          <a href="genindex.html" title="General Index"
+             >index</a></li>
+        <li class="right" >
+          <a href="py-modindex.html" title="Python Module Index"
+             >modules</a> |</li>
+        <li class="right" >
+          <a href="license.html" title="License"
+             >next</a> |</li>
+        <li class="right" >
+          <a href="index.html" title="Macholib - Analyze and edit Mach-O headers"
+             >previous</a> |</li>
+        <li><a href="index.html">macholib 1.7 documentation</a> &raquo;</li> 
+      </ul>
+    </div>
+    <div class="footer">
+        &copy; Copyright 2010-2011, Ronald Oussoren.
+      Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.2.1.
+    </div>
+  </body>
+</html>
\ No newline at end of file
new file mode 100644
--- /dev/null
+++ b/python/macholib/doc/_build/html/dyld.html
@@ -0,0 +1,267 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    
+    <title>macholib.dyld — Dyld emulation &mdash; macholib 1.7 documentation</title>
+    
+    <link rel="stylesheet" href="_static/nature.css" type="text/css" />
+    <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
+    
+    <script type="text/javascript">
+      var DOCUMENTATION_OPTIONS = {
+        URL_ROOT:    './',
+        VERSION:     '1.7',
+        COLLAPSE_INDEX: false,
+        FILE_SUFFIX: '.html',
+        HAS_SOURCE:  true
+      };
+    </script>
+    <script type="text/javascript" src="_static/jquery.js"></script>
+    <script type="text/javascript" src="_static/underscore.js"></script>
+    <script type="text/javascript" src="_static/doctools.js"></script>
+    <link rel="top" title="macholib 1.7 documentation" href="index.html" />
+    <link rel="next" title="macholib.dylib — Generic dylib path manipulation" href="dylib.html" />
+    <link rel="prev" title="macholib.SymbolTable — Class to read the symbol table from a Mach-O header" href="SymbolTable.html" /> 
+  </head>
+  <body>
+    <div class="related">
+      <h3>Navigation</h3>
+      <ul>
+        <li class="right" style="margin-right: 10px">
+          <a href="genindex.html" title="General Index"
+             accesskey="I">index</a></li>
+        <li class="right" >
+          <a href="py-modindex.html" title="Python Module Index"
+             >modules</a> |</li>
+        <li class="right" >
+          <a href="dylib.html" title="macholib.dylib — Generic dylib path manipulation"
+             accesskey="N">next</a> |</li>
+        <li class="right" >
+          <a href="SymbolTable.html" title="macholib.SymbolTable — Class to read the symbol table from a Mach-O header"
+             accesskey="P">previous</a> |</li>
+        <li><a href="index.html">macholib 1.7 documentation</a> &raquo;</li> 
+      </ul>
+    </div>  
+
+    <div class="document">
+      <div class="documentwrapper">
+        <div class="bodywrapper">
+          <div class="body">
+            
+  <div class="section" id="module-macholib.dyld">
+<span id="macholib-dyld-dyld-emulation"></span><h1><a class="reference internal" href="#module-macholib.dyld" title="macholib.dyld: Emulation of functonality of the dynamic linker"><tt class="xref py py-mod docutils literal"><span class="pre">macholib.dyld</span></tt></a> &#8212; Dyld emulation<a class="headerlink" href="#module-macholib.dyld" title="Permalink to this headline">¶</a></h1>
+<p>This module defines a number of functions that can be used
+to emulate the functionality of the dynamic linker (<tt class="docutils literal"><span class="pre">dyld</span></tt>)
+w.r.t. looking for library files and framworks.</p>
+<dl class="function">
+<dt id="macholib.dyld.dyld_image_suffix">
+<tt class="descclassname">macholib.dyld.</tt><tt class="descname">dyld_image_suffix</tt><big>(</big><span class="optional">[</span><em>env</em><span class="optional">]</span><big>)</big><a class="headerlink" href="#macholib.dyld.dyld_image_suffix" title="Permalink to this definition">¶</a></dt>
+<dd><p>Looks up the suffix to append to shared library and
+framework names and returns this value when found.
+Returns <tt class="docutils literal"><span class="pre">None</span></tt> when no suffix should be appended.</p>
+<p>The <em>env</em> argument is a dictionary, which defaults
+to <a class="reference external" href="http://docs.python.org/library/os.html#os.environ" title="(in Python v2.7)"><tt class="xref py py-data docutils literal"><span class="pre">os.environ</span></tt></a>.</p>
+<p>See the description of <tt class="docutils literal"><span class="pre">DYLD_IMAGE_SUFFIX</span></tt> in the
+manual page for dyld(1) for more information.</p>
+</dd></dl>
+
+<dl class="function">
+<dt id="macholib.dyld.dydl_framework_path">
+<tt class="descclassname">macholib.dyld.</tt><tt class="descname">dydl_framework_path</tt><big>(</big><span class="optional">[</span><em>env</em><span class="optional">]</span><big>)</big><a class="headerlink" href="#macholib.dyld.dydl_framework_path" title="Permalink to this definition">¶</a></dt>
+<dd><p>Returns a user-specified framework search path,
+or an empty list when only the default search path
+should be used.</p>
+<p>The <em>env</em> argument is a dictionary, which defaults
+to <a class="reference external" href="http://docs.python.org/library/os.html#os.environ" title="(in Python v2.7)"><tt class="xref py py-data docutils literal"><span class="pre">os.environ</span></tt></a>.</p>
+<p>See the description of <tt class="docutils literal"><span class="pre">DYLD_FRAMEWORK_PATH</span></tt> in the
+manual page for dyld(1) for more information.</p>
+</dd></dl>
+
+<dl class="function">
+<dt id="macholib.dyld.dyld_library_path">
+<tt class="descclassname">macholib.dyld.</tt><tt class="descname">dyld_library_path</tt><big>(</big><span class="optional">[</span><em>env</em><span class="optional">]</span><big>)</big><a class="headerlink" href="#macholib.dyld.dyld_library_path" title="Permalink to this definition">¶</a></dt>
+<dd><p>Returns a user-specified library search path,
+or an empty list when only the default search path
+should be used.</p>
+<p>The <em>env</em> argument is a dictionary, which defaults
+to <a class="reference external" href="http://docs.python.org/library/os.html#os.environ" title="(in Python v2.7)"><tt class="xref py py-data docutils literal"><span class="pre">os.environ</span></tt></a>.</p>
+<p>See the description of <tt class="docutils literal"><span class="pre">DYLD_LIBRARY_PATH</span></tt> in the
+manual page for dyld(1) for more information.</p>
+</dd></dl>
+
+<dl class="function">
+<dt id="macholib.dyld.dyld_fallback_framework_path">
+<tt class="descclassname">macholib.dyld.</tt><tt class="descname">dyld_fallback_framework_path</tt><big>(</big><span class="optional">[</span><em>env</em><span class="optional">]</span><big>)</big><a class="headerlink" href="#macholib.dyld.dyld_fallback_framework_path" title="Permalink to this definition">¶</a></dt>
+<dd><p>Return a user specified list of of directories where
+to look for frameworks that aren&#8217;t in their install path,
+or an empty list when the default fallback path should
+be  used.</p>
+<p>The <em>env</em> argument is a dictionary, which defaults
+to <a class="reference external" href="http://docs.python.org/library/os.html#os.environ" title="(in Python v2.7)"><tt class="xref py py-data docutils literal"><span class="pre">os.environ</span></tt></a>.</p>
+<p>See the description of <tt class="docutils literal"><span class="pre">DYLD_FALLBACK_FRAMEWORK_PATH</span></tt> in the
+manual page for dyld(1) for more information.</p>
+</dd></dl>
+
+<dl class="function">
+<dt id="macholib.dyld.dyld_fallback_library_path">
+<tt class="descclassname">macholib.dyld.</tt><tt class="descname">dyld_fallback_library_path</tt><big>(</big><span class="optional">[</span><em>env</em><span class="optional">]</span><big>)</big><a class="headerlink" href="#macholib.dyld.dyld_fallback_library_path" title="Permalink to this definition">¶</a></dt>
+<dd><p>Return a user specified list of of directories where
+to look for libraries that aren&#8217;t in their install path,
+or an empty list when the default fallback path should
+be  used.</p>
+<p>The <em>env</em> argument is a dictionary, which defaults
+to <a class="reference external" href="http://docs.python.org/library/os.html#os.environ" title="(in Python v2.7)"><tt class="xref py py-data docutils literal"><span class="pre">os.environ</span></tt></a>.</p>
+<p>See the description of <tt class="docutils literal"><span class="pre">DYLD_FALLBACK_LIBRARY_PATH</span></tt> in the
+manual page for dyld(1) for more information.</p>
+</dd></dl>
+
+<dl class="function">
+<dt id="macholib.dyld.dyld_image_suffix_search">
+<tt class="descclassname">macholib.dyld.</tt><tt class="descname">dyld_image_suffix_search</tt><big>(</big><em>iterator</em><span class="optional">[</span>, <em>env</em><span class="optional">]</span><big>)</big><a class="headerlink" href="#macholib.dyld.dyld_image_suffix_search" title="Permalink to this definition">¶</a></dt>
+<dd><p>Yields all items in <em>iterator</em>, and prepents names
+with the image suffix to those items when the suffix
+is specified.</p>
+<p>The <em>env</em> argument is a dictionary, which defaults
+to <a class="reference external" href="http://docs.python.org/library/os.html#os.environ" title="(in Python v2.7)"><tt class="xref py py-data docutils literal"><span class="pre">os.environ</span></tt></a>.</p>
+</dd></dl>
+
+<dl class="function">
+<dt id="macholib.dyld.dyld_override_search">
+<tt class="descclassname">macholib.dyld.</tt><tt class="descname">dyld_override_search</tt><big>(</big><em>name</em><span class="optional">[</span>, <em>env</em><span class="optional">]</span><big>)</big><a class="headerlink" href="#macholib.dyld.dyld_override_search" title="Permalink to this definition">¶</a></dt>
+<dd><p>If <em>name</em> is a framework name yield filesystem
+paths relative to the entries in the framework
+search path.</p>
+<p>Always yield the filesystem paths relative to the
+entries in the library search path.</p>
+<p>The <em>env</em> argument is a dictionary, which defaults
+to <a class="reference external" href="http://docs.python.org/library/os.html#os.environ" title="(in Python v2.7)"><tt class="xref py py-data docutils literal"><span class="pre">os.environ</span></tt></a>.</p>
+</dd></dl>
+
+<dl class="function">
+<dt id="macholib.dyld.dyld_executable_path_search">
+<tt class="descclassname">macholib.dyld.</tt><tt class="descname">dyld_executable_path_search</tt><big>(</big><em>name</em>, <em>executable_path</em><big>)</big><a class="headerlink" href="#macholib.dyld.dyld_executable_path_search" title="Permalink to this definition">¶</a></dt>
+<dd><p>If <em>name</em> is a path starting with <tt class="docutils literal"><span class="pre">&#64;executable_path/</span></tt> yield
+the path relative to the specified <em>executable_path</em>.</p>
+<p>If <em>executable_path</em> is None nothing is yielded.</p>
+</dd></dl>
+
+<dl class="function">
+<dt id="macholib.dyld.dyld_loader_search">
+<tt class="descclassname">macholib.dyld.</tt><tt class="descname">dyld_loader_search</tt><big>(</big><em>name</em>, <em>loader_path</em><big>)</big><a class="headerlink" href="#macholib.dyld.dyld_loader_search" title="Permalink to this definition">¶</a></dt>
+<dd><p>If <em>name</em> is a path starting with <tt class="docutils literal"><span class="pre">&#64;loader_path/</span></tt> yield
+the path relative to the specified <em>loader_path</em>.</p>
+<p>If <em>loader_path</em> is None nothing is yielded.</p>
+</dd></dl>
+
+<dl class="function">
+<dt id="macholib.dyld.dyld_default_search">
+<tt class="descclassname">macholib.dyld.</tt><tt class="descname">dyld_default_search</tt><big>(</big><em>name</em><span class="optional">[</span>, <em>env</em><span class="optional">]</span><big>)</big><a class="headerlink" href="#macholib.dyld.dyld_default_search" title="Permalink to this definition">¶</a></dt>
+<dd><p>Yield the filesystem locations to look for a dynamic
+library or framework using the default locations
+used by the system dynamic linker.</p>
+<p>This function will look in <tt class="docutils literal"><span class="pre">~/Library/Frameworks</span></tt>
+for frameworks, even though the system dynamic linker
+doesn&#8217;t.</p>
+<p>The <em>env</em> argument is a dictionary, which defaults
+to <a class="reference external" href="http://docs.python.org/library/os.html#os.environ" title="(in Python v2.7)"><tt class="xref py py-data docutils literal"><span class="pre">os.environ</span></tt></a>.</p>
+</dd></dl>
+
+<dl class="function">
+<dt id="macholib.dyld.dyld_find">
+<tt class="descclassname">macholib.dyld.</tt><tt class="descname">dyld_find</tt><big>(</big><em>name</em><span class="optional">[</span>, <em>executable_path</em><span class="optional">[</span>, <em>env</em><span class="optional">[</span>, <em>loader</em><span class="optional">]</span><span class="optional">]</span><span class="optional">]</span><big>)</big><a class="headerlink" href="#macholib.dyld.dyld_find" title="Permalink to this definition">¶</a></dt>
+<dd><p>Returns the path of the requested dynamic library,
+raises <tt class="xref py py-exc docutils literal"><span class="pre">ValueError</span></tt> when the library cannot be found.</p>
+<p>This function searches for the library in the same
+locations and de system dynamic linker.</p>
+<p>The <em>executable_path</em> should be the filesystem path
+of the executable to which the library is linked (either
+directly or indirectly).</p>
+<p>The <em>env</em> argument is a dictionary, which defaults
+to <a class="reference external" href="http://docs.python.org/library/os.html#os.environ" title="(in Python v2.7)"><tt class="xref py py-data docutils literal"><span class="pre">os.environ</span></tt></a>.</p>
+<p>The <em>loader_path</em> argument is an optional filesystem path for
+the object file (binary of shared library) that references
+<em>name</em>.</p>
+<div class="versionchanged">
+<p><span class="versionmodified">Changed in version 1.6: </span>Added the <em>loader_path</em> argument.</p>
+</div>
+</dd></dl>
+
+<dl class="function">
+<dt id="macholib.dyld.framework_find">
+<tt class="descclassname">macholib.dyld.</tt><tt class="descname">framework_find</tt><big>(</big><em>fn</em><span class="optional">[</span>, <em>executable_path</em><span class="optional">[</span>, <em>env</em><span class="optional">]</span><span class="optional">]</span><big>)</big><a class="headerlink" href="#macholib.dyld.framework_find" title="Permalink to this definition">¶</a></dt>
+<dd><p>Find a framework using the same semantics as the
+system dynamic linker, but will accept looser names
+than the system linker.</p>
+<p>This function will return a correct result for input
+values like:</p>
+<ul class="simple">
+<li>Python</li>
+<li>Python.framework</li>
+<li>Python.framework/Versions/Current</li>
+</ul>
+</dd></dl>
+
+</div>
+
+
+          </div>
+        </div>
+      </div>
+      <div class="sphinxsidebar">
+        <div class="sphinxsidebarwrapper">
+  <h4>Previous topic</h4>
+  <p class="topless"><a href="SymbolTable.html"
+                        title="previous chapter"><tt class="docutils literal"><span class="pre">macholib.SymbolTable</span></tt> &#8212; Class to read the symbol table from a Mach-O header</a></p>
+  <h4>Next topic</h4>
+  <p class="topless"><a href="dylib.html"
+                        title="next chapter"><tt class="docutils literal"><span class="pre">macholib.dylib</span></tt> &#8212; Generic dylib path manipulation</a></p>
+  <h3>This Page</h3>
+  <ul class="this-page-menu">
+    <li><a href="_sources/dyld.txt"
+           rel="nofollow">Show Source</a></li>
+  </ul>
+<div id="searchbox" style="display: none">
+  <h3>Quick search</h3>
+    <form class="search" action="search.html" method="get">
+      <input type="text" name="q" />
+      <input type="submit" value="Go" />
+      <input type="hidden" name="check_keywords" value="yes" />
+      <input type="hidden" name="area" value="default" />
+    </form>
+    <p class="searchtip" style="font-size: 90%">
+    Enter search terms or a module, class or function name.
+    </p>
+</div>
+<script type="text/javascript">$('#searchbox').show(0);</script>
+        </div>
+      </div>
+      <div class="clearer"></div>
+    </div>
+    <div class="related">
+      <h3>Navigation</h3>
+      <ul>
+        <li class="right" style="margin-right: 10px">
+          <a href="genindex.html" title="General Index"
+             >index</a></li>
+        <li class="right" >
+          <a href="py-modindex.html" title="Python Module Index"
+             >modules</a> |</li>
+        <li class="right" >
+          <a href="dylib.html" title="macholib.dylib — Generic dylib path manipulation"
+             >next</a> |</li>
+        <li class="right" >
+          <a href="SymbolTable.html" title="macholib.SymbolTable — Class to read the symbol table from a Mach-O header"
+             >previous</a> |</li>
+        <li><a href="index.html">macholib 1.7 documentation</a> &raquo;</li> 
+      </ul>
+    </div>
+    <div class="footer">
+        &copy; Copyright 2010-2011, Ronald Oussoren.
+      Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.2.1.
+    </div>
+  </body>
+</html>
\ No newline at end of file
new file mode 100644
--- /dev/null
+++ b/python/macholib/doc/_build/html/dylib.html
@@ -0,0 +1,145 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    
+    <title>macholib.dylib — Generic dylib path manipulation &mdash; macholib 1.7 documentation</title>
+    
+    <link rel="stylesheet" href="_static/nature.css" type="text/css" />
+    <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
+    
+    <script type="text/javascript">
+      var DOCUMENTATION_OPTIONS = {
+        URL_ROOT:    './',
+        VERSION:     '1.7',
+        COLLAPSE_INDEX: false,
+        FILE_SUFFIX: '.html',
+        HAS_SOURCE:  true
+      };
+    </script>
+    <script type="text/javascript" src="_static/jquery.js"></script>
+    <script type="text/javascript" src="_static/underscore.js"></script>
+    <script type="text/javascript" src="_static/doctools.js"></script>
+    <link rel="top" title="macholib 1.7 documentation" href="index.html" />
+    <link rel="next" title="macholib.framework — Generic framework path manipulation" href="framework.html" />
+    <link rel="prev" title="macholib.dyld — Dyld emulation" href="dyld.html" /> 
+  </head>
+  <body>
+    <div class="related">
+      <h3>Navigation</h3>
+      <ul>
+        <li class="right" style="margin-right: 10px">
+          <a href="genindex.html" title="General Index"
+             accesskey="I">index</a></li>
+        <li class="right" >
+          <a href="py-modindex.html" title="Python Module Index"
+             >modules</a> |</li>
+        <li class="right" >
+          <a href="framework.html" title="macholib.framework — Generic framework path manipulation"
+             accesskey="N">next</a> |</li>
+        <li class="right" >
+          <a href="dyld.html" title="macholib.dyld — Dyld emulation"
+             accesskey="P">previous</a> |</li>
+        <li><a href="index.html">macholib 1.7 documentation</a> &raquo;</li> 
+      </ul>
+    </div>  
+
+    <div class="document">
+      <div class="documentwrapper">
+        <div class="bodywrapper">
+          <div class="body">
+            
+  <div class="section" id="module-macholib.dylib">
+<span id="macholib-dylib-generic-dylib-path-manipulation"></span><h1><a class="reference internal" href="#module-macholib.dylib" title="macholib.dylib: Generic dylib path manipulation"><tt class="xref py py-mod docutils literal"><span class="pre">macholib.dylib</span></tt></a> &#8212; Generic dylib path manipulation<a class="headerlink" href="#module-macholib.dylib" title="Permalink to this headline">¶</a></h1>
+<p>This module defines a function <a class="reference internal" href="#macholib.dylib.dylib_info" title="macholib.dylib.dylib_info"><tt class="xref py py-func docutils literal"><span class="pre">dylib_info()</span></tt></a> that can extract
+useful information from the name of a dynamic library.</p>
+<dl class="function">
+<dt id="macholib.dylib.dylib_info">
+<tt class="descclassname">macholib.dylib.</tt><tt class="descname">dylib_info</tt><big>(</big><em>filename</em><big>)</big><a class="headerlink" href="#macholib.dylib.dylib_info" title="Permalink to this definition">¶</a></dt>
+<dd><p>A dylib name can take one of the following four forms:</p>
+<ul class="simple">
+<li><tt class="docutils literal"><span class="pre">Location/Name.SomeVersion_Suffix.dylib</span></tt></li>
+<li><tt class="docutils literal"><span class="pre">Location/Name.SomeVersion.dylib</span></tt></li>
+<li><tt class="docutils literal"><span class="pre">Location/Name_Suffix.dylib</span></tt></li>
+<li><tt class="docutils literal"><span class="pre">Location/Name.dylib</span></tt></li>
+</ul>
+<p>Returns None if not found or a mapping equivalent to:</p>
+<div class="highlight-python"><div class="highlight"><pre><span class="nb">dict</span><span class="p">(</span>
+    <span class="n">location</span><span class="o">=</span><span class="s">&#39;Location&#39;</span><span class="p">,</span>
+    <span class="n">name</span><span class="o">=</span><span class="s">&#39;Name.SomeVersion_Suffix.dylib&#39;</span><span class="p">,</span>
+    <span class="n">shortname</span><span class="o">=</span><span class="s">&#39;Name&#39;</span><span class="p">,</span>
+    <span class="n">version</span><span class="o">=</span><span class="s">&#39;SomeVersion&#39;</span><span class="p">,</span>
+    <span class="n">suffix</span><span class="o">=</span><span class="s">&#39;Suffix&#39;</span><span class="p">,</span>
+<span class="p">)</span>
+</pre></div>
+</div>
+<div class="admonition note">
+<p class="first admonition-title">Note</p>
+<p class="last"><em>SomeVersion</em> and <em>Suffix</em> are optional and my be <tt class="docutils literal"><span class="pre">None</span></tt>
+if not present.</p>
+</div>
+</dd></dl>
+
+</div>
+
+
+          </div>
+        </div>
+      </div>
+      <div class="sphinxsidebar">
+        <div class="sphinxsidebarwrapper">
+  <h4>Previous topic</h4>
+  <p class="topless"><a href="dyld.html"
+                        title="previous chapter"><tt class="docutils literal"><span class="pre">macholib.dyld</span></tt> &#8212; Dyld emulation</a></p>
+  <h4>Next topic</h4>
+  <p class="topless"><a href="framework.html"
+                        title="next chapter"><tt class="docutils literal"><span class="pre">macholib.framework</span></tt> &#8212; Generic framework path manipulation</a></p>
+  <h3>This Page</h3>
+  <ul class="this-page-menu">
+    <li><a href="_sources/dylib.txt"
+           rel="nofollow">Show Source</a></li>
+  </ul>
+<div id="searchbox" style="display: none">
+  <h3>Quick search</h3>
+    <form class="search" action="search.html" method="get">
+      <input type="text" name="q" />
+      <input type="submit" value="Go" />
+      <input type="hidden" name="check_keywords" value="yes" />
+      <input type="hidden" name="area" value="default" />
+    </form>
+    <p class="searchtip" style="font-size: 90%">
+    Enter search terms or a module, class or function name.
+    </p>
+</div>
+<script type="text/javascript">$('#searchbox').show(0);</script>
+        </div>
+      </div>
+      <div class="clearer"></div>
+    </div>
+    <div class="related">
+      <h3>Navigation</h3>
+      <ul>
+        <li class="right" style="margin-right: 10px">
+          <a href="genindex.html" title="General Index"
+             >index</a></li>
+        <li class="right" >
+          <a href="py-modindex.html" title="Python Module Index"
+             >modules</a> |</li>
+        <li class="right" >
+          <a href="framework.html" title="macholib.framework — Generic framework path manipulation"
+             >next</a> |</li>
+        <li class="right" >
+          <a href="dyld.html" title="macholib.dyld — Dyld emulation"
+             >previous</a> |</li>
+        <li><a href="index.html">macholib 1.7 documentation</a> &raquo;</li> 
+      </ul>
+    </div>
+    <div class="footer">
+        &copy; Copyright 2010-2011, Ronald Oussoren.
+      Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.2.1.
+    </div>
+  </body>
+</html>
\ No newline at end of file
new file mode 100644
--- /dev/null
+++ b/python/macholib/doc/_build/html/framework.html
@@ -0,0 +1,147 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    
+    <title>macholib.framework — Generic framework path manipulation &mdash; macholib 1.7 documentation</title>
+    
+    <link rel="stylesheet" href="_static/nature.css" type="text/css" />
+    <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
+    
+    <script type="text/javascript">
+      var DOCUMENTATION_OPTIONS = {
+        URL_ROOT:    './',
+        VERSION:     '1.7',
+        COLLAPSE_INDEX: false,
+        FILE_SUFFIX: '.html',
+        HAS_SOURCE:  true
+      };
+    </script>
+    <script type="text/javascript" src="_static/jquery.js"></script>
+    <script type="text/javascript" src="_static/underscore.js"></script>
+    <script type="text/javascript" src="_static/doctools.js"></script>
+    <link rel="top" title="macholib 1.7 documentation" href="index.html" />
+    <link rel="next" title="macholib.mach_o — Low-level definitions" href="macho_o.html" />
+    <link rel="prev" title="macholib.dylib — Generic dylib path manipulation" href="dylib.html" /> 
+  </head>
+  <body>
+    <div class="related">
+      <h3>Navigation</h3>
+      <ul>
+        <li class="right" style="margin-right: 10px">
+          <a href="genindex.html" title="General Index"
+             accesskey="I">index</a></li>
+        <li class="right" >
+          <a href="py-modindex.html" title="Python Module Index"
+             >modules</a> |</li>
+        <li class="right" >
+          <a href="macho_o.html" title="macholib.mach_o — Low-level definitions"
+             accesskey="N">next</a> |</li>
+        <li class="right" >
+          <a href="dylib.html" title="macholib.dylib — Generic dylib path manipulation"
+             accesskey="P">previous</a> |</li>
+        <li><a href="index.html">macholib 1.7 documentation</a> &raquo;</li> 
+      </ul>
+    </div>  
+
+    <div class="document">
+      <div class="documentwrapper">
+        <div class="bodywrapper">
+          <div class="body">
+            
+  <div class="section" id="module-macholib.framework">
+<span id="macholib-framework-generic-framework-path-manipulation"></span><h1><a class="reference internal" href="#module-macholib.framework" title="macholib.framework: Generic framework path manipulation"><tt class="xref py py-mod docutils literal"><span class="pre">macholib.framework</span></tt></a> &#8212; Generic framework path manipulation<a class="headerlink" href="#module-macholib.framework" title="Permalink to this headline">¶</a></h1>
+<p>This module defines a function <a class="reference internal" href="#macholib.framework.framework_info" title="macholib.framework.framework_info"><tt class="xref py py-func docutils literal"><span class="pre">framework_info()</span></tt></a> that can extract
+useful information from the name of a dynamic library in a framework.</p>
+<dl class="function">
+<dt id="macholib.framework.framework_info">
+<tt class="descclassname">macholib.framework.</tt><tt class="descname">framework_info</tt><big>(</big><em>filename</em><big>)</big><a class="headerlink" href="#macholib.framework.framework_info" title="Permalink to this definition">¶</a></dt>
+<dd><blockquote>
+<div><p>A framework name can take one of the following four forms:</p>
+<ul class="simple">
+<li><tt class="docutils literal"><span class="pre">Location/Name.framework/Versions/SomeVersion/Name_Suffix</span></tt></li>
+<li><tt class="docutils literal"><span class="pre">Location/Name.framework/Versions/SomeVersion/Name</span></tt></li>
+<li><tt class="docutils literal"><span class="pre">Location/Name.framework/Name_Suffix</span></tt></li>
+<li><tt class="docutils literal"><span class="pre">Location/Name.framework/Name</span></tt></li>
+</ul>
+<p>Returns <tt class="docutils literal"><span class="pre">None</span></tt> if not found, or a mapping equivalent to:</p>
+<div class="highlight-python"><div class="highlight"><pre><span class="nb">dict</span><span class="p">(</span>
+    <span class="n">location</span><span class="o">=</span><span class="s">&#39;Location&#39;</span><span class="p">,</span>
+    <span class="n">name</span><span class="o">=</span><span class="s">&#39;Name.framework/Versions/SomeVersion/Name_Suffix&#39;</span><span class="p">,</span>
+    <span class="n">shortname</span><span class="o">=</span><span class="s">&#39;Name&#39;</span><span class="p">,</span>
+    <span class="n">version</span><span class="o">=</span><span class="s">&#39;SomeVersion&#39;</span><span class="p">,</span>
+    <span class="n">suffix</span><span class="o">=</span><span class="s">&#39;Suffix&#39;</span><span class="p">,</span>
+<span class="p">)</span>
+</pre></div>
+</div>
+</div></blockquote>
+<div class="admonition note">
+<p class="first admonition-title">Note</p>
+<p class="last"><em>SomeVersion</em> and <em>Suffix</em> are optional and may be None
+if not present.</p>
+</div>
+</dd></dl>
+
+</div>
+
+
+          </div>
+        </div>
+      </div>
+      <div class="sphinxsidebar">
+        <div class="sphinxsidebarwrapper">
+  <h4>Previous topic</h4>
+  <p class="topless"><a href="dylib.html"
+                        title="previous chapter"><tt class="docutils literal"><span class="pre">macholib.dylib</span></tt> &#8212; Generic dylib path manipulation</a></p>
+  <h4>Next topic</h4>
+  <p class="topless"><a href="macho_o.html"
+                        title="next chapter"><tt class="docutils literal"><span class="pre">macholib.mach_o</span></tt> &#8212; Low-level definitions</a></p>
+  <h3>This Page</h3>
+  <ul class="this-page-menu">
+    <li><a href="_sources/framework.txt"
+           rel="nofollow">Show Source</a></li>
+  </ul>
+<div id="searchbox" style="display: none">
+  <h3>Quick search</h3>
+    <form class="search" action="search.html" method="get">
+      <input type="text" name="q" />
+      <input type="submit" value="Go" />
+      <input type="hidden" name="check_keywords" value="yes" />
+      <input type="hidden" name="area" value="default" />
+    </form>
+    <p class="searchtip" style="font-size: 90%">
+    Enter search terms or a module, class or function name.
+    </p>
+</div>
+<script type="text/javascript">$('#searchbox').show(0);</script>
+        </div>
+      </div>
+      <div class="clearer"></div>
+    </div>
+    <div class="related">
+      <h3>Navigation</h3>
+      <ul>
+        <li class="right" style="margin-right: 10px">
+          <a href="genindex.html" title="General Index"
+             >index</a></li>
+        <li class="right" >
+          <a href="py-modindex.html" title="Python Module Index"
+             >modules</a> |</li>
+        <li class="right" >
+          <a href="macho_o.html" title="macholib.mach_o — Low-level definitions"
+             >next</a> |</li>
+        <li class="right" >
+          <a href="dylib.html" title="macholib.dylib — Generic dylib path manipulation"
+             >previous</a> |</li>
+        <li><a href="index.html">macholib 1.7 documentation</a> &raquo;</li> 
+      </ul>
+    </div>
+    <div class="footer">
+        &copy; Copyright 2010-2011, Ronald Oussoren.
+      Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.2.1.
+    </div>
+  </body>
+</html>
\ No newline at end of file
new file mode 100644
--- /dev/null
+++ b/python/macholib/doc/_build/html/genindex.html
@@ -0,0 +1,365 @@
+
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    
+    <title>Index &mdash; macholib 1.7 documentation</title>
+    
+    <link rel="stylesheet" href="_static/nature.css" type="text/css" />
+    <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
+    
+    <script type="text/javascript">
+      var DOCUMENTATION_OPTIONS = {
+        URL_ROOT:    './',
+        VERSION:     '1.7',
+        COLLAPSE_INDEX: false,
+        FILE_SUFFIX: '.html',
+        HAS_SOURCE:  true
+      };
+    </script>
+    <script type="text/javascript" src="_static/jquery.js"></script>
+    <script type="text/javascript" src="_static/underscore.js"></script>
+    <script type="text/javascript" src="_static/doctools.js"></script>
+    <link rel="top" title="macholib 1.7 documentation" href="index.html" /> 
+  </head>
+  <body>
+    <div class="related">
+      <h3>Navigation</h3>
+      <ul>
+        <li class="right" style="margin-right: 10px">
+          <a href="#" title="General Index"
+             accesskey="I">index</a></li>
+        <li class="right" >
+          <a href="py-modindex.html" title="Python Module Index"
+             >modules</a> |</li>
+        <li><a href="index.html">macholib 1.7 documentation</a> &raquo;</li> 
+      </ul>
+    </div>  
+
+    <div class="document">
+      <div class="documentwrapper">
+        <div class="bodywrapper">
+          <div class="body">
+            
+
+<h1 id="index">Index</h1>
+
+<div class="genindex-jumpbox">
+ <a href="#B"><strong>B</strong></a>
+ | <a href="#D"><strong>D</strong></a>
+ | <a href="#F"><strong>F</strong></a>
+ | <a href="#M"><strong>M</strong></a>
+ | <a href="#P"><strong>P</strong></a>
+ | <a href="#S"><strong>S</strong></a>
+ | <a href="#T"><strong>T</strong></a>
+ 
+</div>
+<h2 id="B">B</h2>
+<table style="width: 100%" class="indextable genindextable"><tr>
+  <td style="width: 33%" valign="top"><dl>
+      
+  <dt><a href="ptypes.html#macholib.ptypes.BasePackable">BasePackable (class in macholib.ptypes)</a>
+  </dt>
+
+  </dl></td>
+  <td style="width: 33%" valign="top"><dl>
+      
+  <dt><a href="ptypes.html#macholib.ptypes.BasePackable._endian_">BasePackable._endian_ (in module macholib.ptypes)</a>
+  </dt>
+
+  </dl></td>
+</tr></table>
+
+<h2 id="D">D</h2>
+<table style="width: 100%" class="indextable genindextable"><tr>
+  <td style="width: 33%" valign="top"><dl>
+      
+  <dt><a href="dyld.html#macholib.dyld.dydl_framework_path">dydl_framework_path() (in module macholib.dyld)</a>
+  </dt>
+
+      
+  <dt><a href="dyld.html#macholib.dyld.dyld_default_search">dyld_default_search() (in module macholib.dyld)</a>
+  </dt>
+
+      
+  <dt><a href="dyld.html#macholib.dyld.dyld_executable_path_search">dyld_executable_path_search() (in module macholib.dyld)</a>
+  </dt>
+
+      
+  <dt><a href="dyld.html#macholib.dyld.dyld_fallback_framework_path">dyld_fallback_framework_path() (in module macholib.dyld)</a>
+  </dt>
+
+      
+  <dt><a href="dyld.html#macholib.dyld.dyld_fallback_library_path">dyld_fallback_library_path() (in module macholib.dyld)</a>
+  </dt>
+
+      
+  <dt><a href="dyld.html#macholib.dyld.dyld_find">dyld_find() (in module macholib.dyld)</a>
+  </dt>
+
+  </dl></td>
+  <td style="width: 33%" valign="top"><dl>
+      
+  <dt><a href="dyld.html#macholib.dyld.dyld_image_suffix">dyld_image_suffix() (in module macholib.dyld)</a>
+  </dt>
+
+      
+  <dt><a href="dyld.html#macholib.dyld.dyld_image_suffix_search">dyld_image_suffix_search() (in module macholib.dyld)</a>
+  </dt>
+
+      
+  <dt><a href="dyld.html#macholib.dyld.dyld_library_path">dyld_library_path() (in module macholib.dyld)</a>
+  </dt>
+
+      
+  <dt><a href="dyld.html#macholib.dyld.dyld_loader_search">dyld_loader_search() (in module macholib.dyld)</a>
+  </dt>
+
+      
+  <dt><a href="dyld.html#macholib.dyld.dyld_override_search">dyld_override_search() (in module macholib.dyld)</a>
+  </dt>
+
+      
+  <dt><a href="dylib.html#macholib.dylib.dylib_info">dylib_info() (in module macholib.dylib)</a>
+  </dt>
+
+  </dl></td>
+</tr></table>
+
+<h2 id="F">F</h2>
+<table style="width: 100%" class="indextable genindextable"><tr>
+  <td style="width: 33%" valign="top"><dl>
+      
+  <dt><a href="dyld.html#macholib.dyld.framework_find">framework_find() (in module macholib.dyld)</a>
+  </dt>
+
+      
+  <dt><a href="framework.html#macholib.framework.framework_info">framework_info() (in module macholib.framework)</a>
+  </dt>
+
+      
+  <dt><a href="ptypes.html#macholib.ptypes.BasePackable.from_fileobj">from_fileobj() (macholib.ptypes.BasePackable method)</a>
+  </dt>
+
+  </dl></td>
+  <td style="width: 33%" valign="top"><dl>
+      
+  <dt><a href="ptypes.html#macholib.ptypes.BasePackable.from_mmap">from_mmap() (macholib.ptypes.BasePackable method)</a>
+  </dt>
+
+      
+  <dt><a href="ptypes.html#macholib.ptypes.BasePackable.from_str">from_str() (macholib.ptypes.BasePackable method)</a>
+  </dt>
+
+      
+  <dt><a href="ptypes.html#macholib.ptypes.BasePackable.from_tuple">from_tuple() (macholib.ptypes.BasePackable method)</a>
+  </dt>
+
+  </dl></td>
+</tr></table>
+
+<h2 id="M">M</h2>
+<table style="width: 100%" class="indextable genindextable"><tr>
+  <td style="width: 33%" valign="top"><dl>
+      
+  <dt><a href="MachO.html#macholib.MachO.MachO">MachO (class in macholib.MachO)</a>
+  </dt>
+
+      
+  <dt><a href="MachoOGraph.html#macholib.MachOGraph.MachOGraph">MachOGraph (class in macholib.MachOGraph)</a>
+  </dt>
+
+      
+  <dt><a href="dyld.html#module-macholib.dyld">macholib.dyld (module)</a>
+  </dt>
+
+      
+  <dt><a href="dylib.html#module-macholib.dylib">macholib.dylib (module)</a>
+  </dt>
+
+      
+  <dt><a href="framework.html#module-macholib.framework">macholib.framework (module)</a>
+  </dt>
+
+      
+  <dt><a href="macho_o.html#module-macholib.mach_o">macholib.mach_o (module)</a>
+  </dt>
+
+  </dl></td>
+  <td style="width: 33%" valign="top"><dl>
+      
+  <dt><a href="MachO.html#module-macholib.MachO">macholib.MachO (module)</a>
+  </dt>
+
+      
+  <dt><a href="MachoOGraph.html#module-macholib.MachOGraph">macholib.MachOGraph (module)</a>
+  </dt>
+
+      
+  <dt><a href="MachoOStandalone.html#module-macholib.MachOStandalone">macholib.MachOStandalone (module)</a>
+  </dt>
+
+      
+  <dt><a href="ptypes.html#module-macholib.ptypes">macholib.ptypes (module)</a>
+  </dt>
+
+      
+  <dt><a href="SymbolTable.html#module-macholib.SymbolTable">macholib.SymbolTable (module)</a>
+  </dt>
+
+      
+  <dt><a href="MachoOStandalone.html#macholib.MachOStandalone.MachOStandalone">MachOStandalone (class in macholib.MachOStandalone)</a>
+  </dt>
+
+  </dl></td>
+</tr></table>
+
+<h2 id="P">P</h2>
+<table style="width: 100%" class="indextable genindextable"><tr>
+  <td style="width: 33%" valign="top"><dl>
+      
+  <dt><a href="ptypes.html#macholib.ptypes.p_char">p_char (class in macholib.ptypes)</a>
+  </dt>
+
+      
+  <dt><a href="ptypes.html#macholib.ptypes.p_double">p_double (class in macholib.ptypes)</a>
+  </dt>
+
+      
+  <dt><a href="ptypes.html#macholib.ptypes.p_float">p_float (class in macholib.ptypes)</a>
+  </dt>
+
+      
+  <dt><a href="ptypes.html#macholib.ptypes.p_int16">p_int16 (class in macholib.ptypes)</a>
+  </dt>
+
+      
+  <dt><a href="ptypes.html#macholib.ptypes.p_int32">p_int32 (class in macholib.ptypes)</a>
+  </dt>
+
+      
+  <dt><a href="ptypes.html#macholib.ptypes.p_int64">p_int64 (class in macholib.ptypes)</a>
+  </dt>
+
+  </dl></td>
+  <td style="width: 33%" valign="top"><dl>
+      
+  <dt><a href="ptypes.html#macholib.ptypes.p_int8">p_int8 (class in macholib.ptypes)</a>
+  </dt>
+
+      
+  <dt><a href="ptypes.html#macholib.ptypes.p_uint16">p_uint16 (class in macholib.ptypes)</a>
+  </dt>
+
+      
+  <dt><a href="ptypes.html#macholib.ptypes.p_uint32">p_uint32 (class in macholib.ptypes)</a>
+  </dt>
+
+      
+  <dt><a href="ptypes.html#macholib.ptypes.p_uint64">p_uint64 (class in macholib.ptypes)</a>
+  </dt>
+
+      
+  <dt><a href="ptypes.html#macholib.ptypes.p_uint8">p_uint8 (class in macholib.ptypes)</a>
+  </dt>
+
+      
+  <dt><a href="ptypes.html#macholib.ptypes.pypackable">pypackable() (in module macholib.ptypes)</a>
+  </dt>
+
+  </dl></td>
+</tr></table>
+
+<h2 id="S">S</h2>
+<table style="width: 100%" class="indextable genindextable"><tr>
+  <td style="width: 33%" valign="top"><dl>
+      
+  <dt><a href="ptypes.html#macholib.ptypes.sizeof">sizeof() (in module macholib.ptypes)</a>
+  </dt>
+
+      
+  <dt><a href="ptypes.html#macholib.ptypes.Structure">Structure (class in macholib.ptypes)</a>
+  </dt>
+
+  </dl></td>
+  <td style="width: 33%" valign="top"><dl>
+      
+  <dt><a href="ptypes.html#macholib.ptypes.Structure._fields_">Structure._fields_ (in module macholib.ptypes)</a>
+  </dt>
+
+      
+  <dt><a href="SymbolTable.html#macholib.SymbolTable.SymbolTable">SymbolTable (class in macholib.SymbolTable)</a>
+  </dt>
+
+  </dl></td>
+</tr></table>
+
+<h2 id="T">T</h2>
+<table style="width: 100%" class="indextable genindextable"><tr>
+  <td style="width: 33%" valign="top"><dl>
+      
+  <dt><a href="ptypes.html#macholib.ptypes.BasePackable.to_fileobj">to_fileobj() (macholib.ptypes.BasePackable method)</a>
+  </dt>
+
+      
+  <dt><a href="ptypes.html#macholib.ptypes.BasePackable.to_mmap">to_mmap() (macholib.ptypes.BasePackable method)</a>
+  </dt>
+
+  </dl></td>
+  <td style="width: 33%" valign="top"><dl>
+      
+  <dt><a href="ptypes.html#macholib.ptypes.BasePackable.to_str">to_str() (macholib.ptypes.BasePackable method)</a>
+  </dt>
+
+  </dl></td>
+</tr></table>
+
+
+
+          </div>
+        </div>
+      </div>
+      <div class="sphinxsidebar">
+        <div class="sphinxsidebarwrapper">
+
+   
+
+<div id="searchbox" style="display: none">
+  <h3>Quick search</h3>
+    <form class="search" action="search.html" method="get">
+      <input type="text" name="q" />
+      <input type="submit" value="Go" />
+      <input type="hidden" name="check_keywords" value="yes" />
+      <input type="hidden" name="area" value="default" />
+    </form>
+    <p class="searchtip" style="font-size: 90%">
+    Enter search terms or a module, class or function name.
+    </p>
+</div>
+<script type="text/javascript">$('#searchbox').show(0);</script>
+        </div>
+      </div>
+      <div class="clearer"></div>
+    </div>
+    <div class="related">
+      <h3>Navigation</h3>
+      <ul>
+        <li class="right" style="margin-right: 10px">
+          <a href="#" title="General Index"
+             >index</a></li>
+        <li class="right" >
+          <a href="py-modindex.html" title="Python Module Index"
+             >modules</a> |</li>
+        <li><a href="index.html">macholib 1.7 documentation</a> &raquo;</li> 
+      </ul>
+    </div>
+    <div class="footer">
+        &copy; Copyright 2010-2011, Ronald Oussoren.
+      Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.2.1.
+    </div>
+  </body>
+</html>
\ No newline at end of file
new file mode 100644
--- /dev/null
+++ b/python/macholib/doc/_build/html/index.html
@@ -0,0 +1,170 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    
+    <title>Macholib - Analyze and edit Mach-O headers &mdash; macholib 1.7 documentation</title>
+    
+    <link rel="stylesheet" href="_static/nature.css" type="text/css" />
+    <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
+    
+    <script type="text/javascript">
+      var DOCUMENTATION_OPTIONS = {
+        URL_ROOT:    './',
+        VERSION:     '1.7',
+        COLLAPSE_INDEX: false,
+        FILE_SUFFIX: '.html',
+        HAS_SOURCE:  true
+      };
+    </script>
+    <script type="text/javascript" src="_static/jquery.js"></script>
+    <script type="text/javascript" src="_static/underscore.js"></script>
+    <script type="text/javascript" src="_static/doctools.js"></script>
+    <link rel="top" title="macholib 1.7 documentation" href="#" />
+    <link rel="next" title="Release history" href="changelog.html" /> 
+  </head>
+  <body>
+    <div class="related">
+      <h3>Navigation</h3>
+      <ul>
+        <li class="right" style="margin-right: 10px">
+          <a href="genindex.html" title="General Index"
+             accesskey="I">index</a></li>
+        <li class="right" >
+          <a href="py-modindex.html" title="Python Module Index"
+             >modules</a> |</li>
+        <li class="right" >
+          <a href="changelog.html" title="Release history"
+             accesskey="N">next</a> |</li>
+        <li><a href="#">macholib 1.7 documentation</a> &raquo;</li> 
+      </ul>
+    </div>  
+
+    <div class="document">
+      <div class="documentwrapper">
+        <div class="bodywrapper">
+          <div class="body">
+            
+  <div class="section" id="macholib-analyze-and-edit-mach-o-headers">
+<h1>Macholib - Analyze and edit Mach-O headers<a class="headerlink" href="#macholib-analyze-and-edit-mach-o-headers" title="Permalink to this headline">¶</a></h1>
+<p>macholib can be used to analyze and edit Mach-O headers, the executable
+format used by Mac OS X.</p>
+<p>It&#8217;s typically used as a dependency analysis tool, and also to rewrite dylib
+references in Mach-O headers to be <tt class="docutils literal"><span class="pre">&#64;executable_path</span></tt> relative.</p>
+<p>Though this tool targets a platform specific file format, it is pure python
+code that is platform and endian independent.</p>
+<div class="section" id="general-documentation">
+<h2>General documentation<a class="headerlink" href="#general-documentation" title="Permalink to this headline">¶</a></h2>
+<div class="toctree-wrapper compound">
+<ul>
+<li class="toctree-l1"><a class="reference internal" href="changelog.html">Release history</a></li>
+<li class="toctree-l1"><a class="reference internal" href="license.html">License</a></li>
+<li class="toctree-l1"><a class="reference internal" href="scripts.html">Command-line tools</a></li>
+</ul>
+</div>
+</div>
+<div class="section" id="reference-guide">
+<h2>Reference Guide<a class="headerlink" href="#reference-guide" title="Permalink to this headline">¶</a></h2>
+<div class="toctree-wrapper compound">
+<ul>
+<li class="toctree-l1"><a class="reference internal" href="MachO.html"><tt class="docutils literal"><span class="pre">macholib.MachO</span></tt> &#8212; Utilities for reading and writing Mach-O headers</a></li>
+<li class="toctree-l1"><a class="reference internal" href="MachoOGraph.html"><tt class="docutils literal"><span class="pre">macholib.MachoGraph</span></tt> &#8212; Graph data structure of Mach-O dependencies</a></li>
+<li class="toctree-l1"><a class="reference internal" href="MachoOStandalone.html"><tt class="docutils literal"><span class="pre">macholib.MachOStandalone</span></tt> &#8212; Create standalone application bundles</a></li>
+<li class="toctree-l1"><a class="reference internal" href="SymbolTable.html"><tt class="docutils literal"><span class="pre">macholib.SymbolTable</span></tt> &#8212; Class to read the symbol table from a Mach-O header</a></li>
+<li class="toctree-l1"><a class="reference internal" href="dyld.html"><tt class="docutils literal"><span class="pre">macholib.dyld</span></tt> &#8212; Dyld emulation</a></li>
+<li class="toctree-l1"><a class="reference internal" href="dylib.html"><tt class="docutils literal"><span class="pre">macholib.dylib</span></tt> &#8212; Generic dylib path manipulation</a></li>
+<li class="toctree-l1"><a class="reference internal" href="framework.html"><tt class="docutils literal"><span class="pre">macholib.framework</span></tt> &#8212; Generic framework path manipulation</a></li>
+<li class="toctree-l1"><a class="reference internal" href="macho_o.html"><tt class="docutils literal"><span class="pre">macholib.mach_o</span></tt> &#8212; Low-level definitions</a></li>
+<li class="toctree-l1"><a class="reference internal" href="ptypes.html"><tt class="docutils literal"><span class="pre">macholib.ptypes</span></tt> &#8212; Packable types</a></li>
+</ul>
+</div>
+</div>
+<div class="section" id="online-resources">
+<h2>Online Resources<a class="headerlink" href="#online-resources" title="Permalink to this headline">¶</a></h2>
+<ul class="simple">
+<li><a class="reference external" href="http://bitbucket.org/ronaldoussoren/macholib/">Sourcecode repository on bitbucket</a></li>
+<li><a class="reference external" href="http://bitbucket.org/ronaldoussoren/macholib/issues">The issue tracker</a></li>
+<li><a class="reference external" href="http://developer.apple.com/library/mac/#documentation/DeveloperTools/Conceptual/MachORuntime/Reference/reference.html">Mac OS X ABI Mach-O File Format Reference at Apple</a></li>
+</ul>
+</div>
+<div class="section" id="contributors">
+<h2>Contributors<a class="headerlink" href="#contributors" title="Permalink to this headline">¶</a></h2>
+<p>Macholib was written by Bob Ippolito and is currently maintained by Ronald Oussoren &lt;<a class="reference external" href="mailto:ronaldoussoren&#37;&#52;&#48;mac&#46;com">ronaldoussoren<span>&#64;</span>mac<span>&#46;</span>com</a>&gt;.</p>
+</div>
+<div class="section" id="indices-and-tables">
+<h2>Indices and tables<a class="headerlink" href="#indices-and-tables" title="Permalink to this headline">¶</a></h2>
+<ul class="simple">
+<li><a class="reference internal" href="genindex.html"><em>Index</em></a></li>
+<li><a class="reference internal" href="py-modindex.html"><em>Module Index</em></a></li>
+<li><a class="reference internal" href="search.html"><em>Search Page</em></a></li>
+</ul>
+</div>
+</div>
+
+
+          </div>
+        </div>
+      </div>
+      <div class="sphinxsidebar">
+        <div class="sphinxsidebarwrapper">
+  <h3><a href="#">Table Of Contents</a></h3>
+  <ul>
+<li><a class="reference internal" href="#">Macholib - Analyze and edit Mach-O headers</a><ul>
+<li><a class="reference internal" href="#general-documentation">General documentation</a></li>
+<li><a class="reference internal" href="#reference-guide">Reference Guide</a></li>
+<li><a class="reference internal" href="#online-resources">Online Resources</a></li>
+<li><a class="reference internal" href="#contributors">Contributors</a></li>
+<li><a class="reference internal" href="#indices-and-tables">Indices and tables</a></li>
+</ul>
+</li>
+</ul>
+
+  <h4>Next topic</h4>
+  <p class="topless"><a href="changelog.html"
+                        title="next chapter">Release history</a></p>
+  <h3>This Page</h3>
+  <ul class="this-page-menu">
+    <li><a href="_sources/index.txt"
+           rel="nofollow">Show Source</a></li>
+  </ul>
+<div id="searchbox" style="display: none">
+  <h3>Quick search</h3>
+    <form class="search" action="search.html" method="get">
+      <input type="text" name="q" />
+      <input type="submit" value="Go" />
+      <input type="hidden" name="check_keywords" value="yes" />
+      <input type="hidden" name="area" value="default" />
+    </form>
+    <p class="searchtip" style="font-size: 90%">
+    Enter search terms or a module, class or function name.
+    </p>
+</div>
+<script type="text/javascript">$('#searchbox').show(0);</script>
+        </div>
+      </div>
+      <div class="clearer"></div>
+    </div>
+    <div class="related">
+      <h3>Navigation</h3>
+      <ul>
+        <li class="right" style="margin-right: 10px">
+          <a href="genindex.html" title="General Index"
+             >index</a></li>
+        <li class="right" >
+          <a href="py-modindex.html" title="Python Module Index"
+             >modules</a> |</li>
+        <li class="right" >
+          <a href="changelog.html" title="Release history"
+             >next</a> |</li>
+        <li><a href="#">macholib 1.7 documentation</a> &raquo;</li> 
+      </ul>
+    </div>
+    <div class="footer">
+        &copy; Copyright 2010-2011, Ronald Oussoren.
+      Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.2.1.
+    </div>
+  </body>
+</html>
\ No newline at end of file
new file mode 100644
--- /dev/null
+++ b/python/macholib/doc/_build/html/license.html
@@ -0,0 +1,140 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    
+    <title>License &mdash; macholib 1.7 documentation</title>
+    
+    <link rel="stylesheet" href="_static/nature.css" type="text/css" />
+    <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
+    
+    <script type="text/javascript">
+      var DOCUMENTATION_OPTIONS = {
+        URL_ROOT:    './',
+        VERSION:     '1.7',
+        COLLAPSE_INDEX: false,
+        FILE_SUFFIX: '.html',
+        HAS_SOURCE:  true
+      };
+    </script>
+    <script type="text/javascript" src="_static/jquery.js"></script>
+    <script type="text/javascript" src="_static/underscore.js"></script>
+    <script type="text/javascript" src="_static/doctools.js"></script>
+    <link rel="top" title="macholib 1.7 documentation" href="index.html" />
+    <link rel="next" title="Command-line tools" href="scripts.html" />
+    <link rel="prev" title="Release history" href="changelog.html" /> 
+  </head>
+  <body>
+    <div class="related">
+      <h3>Navigation</h3>
+      <ul>
+        <li class="right" style="margin-right: 10px">
+          <a href="genindex.html" title="General Index"
+             accesskey="I">index</a></li>
+        <li class="right" >
+          <a href="py-modindex.html" title="Python Module Index"
+             >modules</a> |</li>
+        <li class="right" >
+          <a href="scripts.html" title="Command-line tools"
+             accesskey="N">next</a> |</li>
+        <li class="right" >
+          <a href="changelog.html" title="Release history"
+             accesskey="P">previous</a> |</li>
+        <li><a href="index.html">macholib 1.7 documentation</a> &raquo;</li> 
+      </ul>
+    </div>  
+
+    <div class="document">
+      <div class="documentwrapper">
+        <div class="bodywrapper">
+          <div class="body">
+            
+  <div class="section" id="license">
+<h1>License<a class="headerlink" href="#license" title="Permalink to this headline">¶</a></h1>
+<p>Copyright (c) Bob Ippolito</p>
+<p>Parts are copyright (c) 2010-2014 Ronald Oussoren</p>
+<div class="section" id="mit-license">
+<h2>MIT License<a class="headerlink" href="#mit-license" title="Permalink to this headline">¶</a></h2>
+<p>Permission is hereby granted, free of charge, to any person obtaining a copy of this software
+and associated documentation files (the &#8220;Software&#8221;), to deal in the Software without restriction,
+including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense,
+and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do
+so.</p>
+<p>THE SOFTWARE IS PROVIDED &#8220;AS IS&#8221;, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
+INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
+PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE
+FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.</p>
+</div>
+</div>
+
+
+          </div>
+        </div>
+      </div>
+      <div class="sphinxsidebar">
+        <div class="sphinxsidebarwrapper">
+  <h3><a href="index.html">Table Of Contents</a></h3>
+  <ul>
+<li><a class="reference internal" href="#">License</a><ul>
+<li><a class="reference internal" href="#mit-license">MIT License</a></li>
+</ul>
+</li>
+</ul>
+
+  <h4>Previous topic</h4>
+  <p class="topless"><a href="changelog.html"
+                        title="previous chapter">Release history</a></p>
+  <h4>Next topic</h4>
+  <p class="topless"><a href="scripts.html"
+                        title="next chapter">Command-line tools</a></p>
+  <h3>This Page</h3>
+  <ul class="this-page-menu">
+    <li><a href="_sources/license.txt"
+           rel="nofollow">Show Source</a></li>
+  </ul>
+<div id="searchbox" style="display: none">
+  <h3>Quick search</h3>
+    <form class="search" action="search.html" method="get">
+      <input type="text" name="q" />
+      <input type="submit" value="Go" />
+      <input type="hidden" name="check_keywords" value="yes" />
+      <input type="hidden" name="area" value="default" />
+    </form>
+    <p class="searchtip" style="font-size: 90%">
+    Enter search terms or a module, class or function name.
+    </p>
+</div>
+<script type="text/javascript">$('#searchbox').show(0);</script>
+        </div>
+      </div>
+      <div class="clearer"></div>
+    </div>
+    <div class="related">
+      <h3>Navigation</h3>
+      <ul>
+        <li class="right" style="margin-right: 10px">
+          <a href="genindex.html" title="General Index"
+             >index</a></li>
+        <li class="right" >
+          <a href="py-modindex.html" title="Python Module Index"
+             >modules</a> |</li>
+        <li class="right" >
+          <a href="scripts.html" title="Command-line tools"
+             >next</a> |</li>
+        <li class="right" >
+          <a href="changelog.html" title="Release history"
+             >previous</a> |</li>
+        <li><a href="index.html">macholib 1.7 documentation</a> &raquo;</li> 
+      </ul>
+    </div>
+    <div class="footer">
+        &copy; Copyright 2010-2011, Ronald Oussoren.
+      Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.2.1.
+    </div>
+  </body>
+</html>
\ No newline at end of file
new file mode 100644
--- /dev/null
+++ b/python/macholib/doc/_build/html/macho_o.html
@@ -0,0 +1,122 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    
+    <title>macholib.mach_o — Low-level definitions &mdash; macholib 1.7 documentation</title>
+    
+    <link rel="stylesheet" href="_static/nature.css" type="text/css" />
+    <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
+    
+    <script type="text/javascript">
+      var DOCUMENTATION_OPTIONS = {
+        URL_ROOT:    './',
+        VERSION:     '1.7',
+        COLLAPSE_INDEX: false,
+        FILE_SUFFIX: '.html',
+        HAS_SOURCE:  true
+      };
+    </script>
+    <script type="text/javascript" src="_static/jquery.js"></script>
+    <script type="text/javascript" src="_static/underscore.js"></script>
+    <script type="text/javascript" src="_static/doctools.js"></script>
+    <link rel="top" title="macholib 1.7 documentation" href="index.html" />
+    <link rel="next" title="macholib.ptypes — Packable types" href="ptypes.html" />
+    <link rel="prev" title="macholib.framework — Generic framework path manipulation" href="framework.html" /> 
+  </head>
+  <body>
+    <div class="related">
+      <h3>Navigation</h3>
+      <ul>
+        <li class="right" style="margin-right: 10px">
+          <a href="genindex.html" title="General Index"
+             accesskey="I">index</a></li>
+        <li class="right" >
+          <a href="py-modindex.html" title="Python Module Index"
+             >modules</a> |</li>
+        <li class="right" >
+          <a href="ptypes.html" title="macholib.ptypes — Packable types"
+             accesskey="N">next</a> |</li>
+        <li class="right" >
+          <a href="framework.html" title="macholib.framework — Generic framework path manipulation"
+             accesskey="P">previous</a> |</li>
+        <li><a href="index.html">macholib 1.7 documentation</a> &raquo;</li> 
+      </ul>
+    </div>  
+
+    <div class="document">
+      <div class="documentwrapper">
+        <div class="bodywrapper">
+          <div class="body">
+            
+  <div class="section" id="module-macholib.mach_o">
+<span id="macholib-mach-o-low-level-definitions"></span><h1><a class="reference internal" href="#module-macholib.mach_o" title="macholib.mach_o: Low-level definitions of elements in a Mach-O file"><tt class="xref py py-mod docutils literal"><span class="pre">macholib.mach_o</span></tt></a> &#8212; Low-level definitions<a class="headerlink" href="#module-macholib.mach_o" title="Permalink to this headline">¶</a></h1>
+<p>This module defines constants and packable structure types
+that correspond to elements of a Mach-O file.</p>
+<p>The names of classes and constants is the same as those in
+the Mach-O header files and
+<a class="reference external" href="http://developer.apple.com/library/mac/#documentation/DeveloperTools/Conceptual/MachORuntime/Reference/reference.html">Apple&#8217;s documentation</a>. This document therefore
+doesn&#8217;t explictly document the names in this module.</p>
+</div>
+
+
+          </div>
+        </div>
+      </div>
+      <div class="sphinxsidebar">
+        <div class="sphinxsidebarwrapper">
+  <h4>Previous topic</h4>
+  <p class="topless"><a href="framework.html"
+                        title="previous chapter"><tt class="docutils literal"><span class="pre">macholib.framework</span></tt> &#8212; Generic framework path manipulation</a></p>
+  <h4>Next topic</h4>
+  <p class="topless"><a href="ptypes.html"
+                        title="next chapter"><tt class="docutils literal"><span class="pre">macholib.ptypes</span></tt> &#8212; Packable types</a></p>
+  <h3>This Page</h3>
+  <ul class="this-page-menu">
+    <li><a href="_sources/macho_o.txt"
+           rel="nofollow">Show Source</a></li>
+  </ul>
+<div id="searchbox" style="display: none">
+  <h3>Quick search</h3>
+    <form class="search" action="search.html" method="get">
+      <input type="text" name="q" />
+      <input type="submit" value="Go" />
+      <input type="hidden" name="check_keywords" value="yes" />
+      <input type="hidden" name="area" value="default" />
+    </form>
+    <p class="searchtip" style="font-size: 90%">
+    Enter search terms or a module, class or function name.
+    </p>
+</div>
+<script type="text/javascript">$('#searchbox').show(0);</script>
+        </div>
+      </div>
+      <div class="clearer"></div>
+    </div>
+    <div class="related">
+      <h3>Navigation</h3>
+      <ul>
+        <li class="right" style="margin-right: 10px">
+          <a href="genindex.html" title="General Index"
+             >index</a></li>
+        <li class="right" >
+          <a href="py-modindex.html" title="Python Module Index"
+             >modules</a> |</li>
+        <li class="right" >
+          <a href="ptypes.html" title="macholib.ptypes — Packable types"
+             >next</a> |</li>
+        <li class="right" >
+          <a href="framework.html" title="macholib.framework — Generic framework path manipulation"
+             >previous</a> |</li>
+        <li><a href="index.html">macholib 1.7 documentation</a> &raquo;</li> 
+      </ul>
+    </div>
+    <div class="footer">
+        &copy; Copyright 2010-2011, Ronald Oussoren.
+      Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.2.1.
+    </div>
+  </body>
+</html>
\ No newline at end of file
new file mode 100644
index 0000000000000000000000000000000000000000..4edc7d27d898c47609cab33a18a225cbc54e17fb
GIT binary patch
literal 692
zc$@*W0!#fPAX9K?X>NERX>N99Zgg*Qc_4OWa&u{KZXhxWBOp+6Z)#;@bUGkyVPj}-
zY-wT&BOq2~a&u{KZaN?_E;kAzAXI2&AaZ4GVQFq;WpW^IW*~HEX>%ZEX>4U6X>%ZB
zZ*6dLWpi_7WFU2OX>MmAdTeQ8E(&<srB=yq+b|Hl=PLv>R~vOx1VxU$6g>n9;NFRm
zIE>hkB0-U@)vqtLS&Jo$bS{ED<m0^A9w`;&1;tZRTKXg)MUm_diLQ3CTiEATiciV2
zqE2A)vo_tmVX*+}tsSD>S|XS%pKfez-L_-9;T7KSPC}L|!PEV-|MB8kJjvGW=cKW;
zkk+=lPj)lF(LzB%r~)sbYP7h1inf);asqBm8;*Y%(D{PT#=eea1|<Gf=6wP^Ti1cd
zN~TKuf>cZ+9og5xwDR8xtg);E>K{Z+5X~A<SDnzg54x53{dXww6|(mx0A`dVr8Uhl
zXmdrA!=xM+4*iD;a?T&oV4JEiS7er}!s7=ToBpi|_uefWt#O%krm0FMpezF@3rd)u
zn=qmSh9UzeEa?U;63sw})JJ+#wuWQ;KLe(U&$K3v7xr6Fo>rT~I^7MxW`V|&F`J&=
z|Hbeu^Y*kKzQph@`9D-_mYv{E+WY1}K}%8}K*7Q_@Jt1lRIz8hEQ(v*^1*r^9wP^X
zOMfkp(lN$QVg3d^o=NjG@R2ev)1}JI`r{hi{_DGgsY{~0x`ws2l%T`9dblcvF<xLW
zyHNsi9i=J@fyB&*CRq+93Q_5ipOC2<qQnzs&eqtbiEjzC(SX2KUMe!df^sN=CVI6=
z7#FD0-%*!iE!YYunva&Zz8k~4bRq$9+NlZijBOmmdwKjC2XQxGg72^P>3V+Bj)mwY
aJl{7KT>U{~IK}vP!XPP|&y)Xw30st_Oh(KA
new file mode 100644
--- /dev/null
+++ b/python/macholib/doc/_build/html/ptypes.html
@@ -0,0 +1,317 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    
+    <title>macholib.ptypes — Packable types &mdash; macholib 1.7 documentation</title>
+    
+    <link rel="stylesheet" href="_static/nature.css" type="text/css" />
+    <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
+    
+    <script type="text/javascript">
+      var DOCUMENTATION_OPTIONS = {
+        URL_ROOT:    './',
+        VERSION:     '1.7',
+        COLLAPSE_INDEX: false,
+        FILE_SUFFIX: '.html',
+        HAS_SOURCE:  true
+      };
+    </script>
+    <script type="text/javascript" src="_static/jquery.js"></script>
+    <script type="text/javascript" src="_static/underscore.js"></script>
+    <script type="text/javascript" src="_static/doctools.js"></script>
+    <link rel="top" title="macholib 1.7 documentation" href="index.html" />
+    <link rel="prev" title="macholib.mach_o — Low-level definitions" href="macho_o.html" /> 
+  </head>
+  <body>
+    <div class="related">
+      <h3>Navigation</h3>
+      <ul>
+        <li class="right" style="margin-right: 10px">
+          <a href="genindex.html" title="General Index"
+             accesskey="I">index</a></li>
+        <li class="right" >
+          <a href="py-modindex.html" title="Python Module Index"
+             >modules</a> |</li>
+        <li class="right" >
+          <a href="macho_o.html" title="macholib.mach_o — Low-level definitions"
+             accesskey="P">previous</a> |</li>
+        <li><a href="index.html">macholib 1.7 documentation</a> &raquo;</li> 
+      </ul>
+    </div>  
+
+    <div class="document">
+      <div class="documentwrapper">
+        <div class="bodywrapper">
+          <div class="body">
+            
+  <div class="section" id="module-macholib.ptypes">
+<span id="macholib-ptypes-packable-types"></span><h1><a class="reference internal" href="#module-macholib.ptypes" title="macholib.ptypes: Serializable types"><tt class="xref py py-mod docutils literal"><span class="pre">macholib.ptypes</span></tt></a> &#8212; Packable types<a class="headerlink" href="#module-macholib.ptypes" title="Permalink to this headline">¶</a></h1>
+<p>The module <a class="reference internal" href="#module-macholib.ptypes" title="macholib.ptypes: Serializable types"><tt class="xref py py-mod docutils literal"><span class="pre">macholib.ptypes</span></tt></a> defines types that can be serialized into
+byte arrays, both for basic types and structured types (C <tt class="docutils literal"><span class="pre">struct</span></tt> values).</p>
+<div class="section" id="utility-functions">
+<h2>Utility functions<a class="headerlink" href="#utility-functions" title="Permalink to this headline">¶</a></h2>
+<dl class="function">
+<dt id="macholib.ptypes.sizeof">
+<tt class="descclassname">macholib.ptypes.</tt><tt class="descname">sizeof</tt><big>(</big><em>value</em><big>)</big><a class="headerlink" href="#macholib.ptypes.sizeof" title="Permalink to this definition">¶</a></dt>
+<dd><p>Returns the size in bytes of an object when packed, raises <tt class="xref py py-exc docutils literal"><span class="pre">ValueError</span></tt>
+for inappropriate values.</p>
+</dd></dl>
+
+<dl class="function">
+<dt id="macholib.ptypes.pypackable">
+<tt class="descclassname">macholib.ptypes.</tt><tt class="descname">pypackable</tt><big>(</big><em>name</em>, <em>pytype</em>, <em>format</em><big>)</big><a class="headerlink" href="#macholib.ptypes.pypackable" title="Permalink to this definition">¶</a></dt>
+<dd><p>Returns a packable type that is a subclass of the Python type
+<em>pytype</em>. The value is converted to and from the packed format using
+the struct <em>format</em>.</p>
+</dd></dl>
+
+</div>
+<div class="section" id="packable-types">
+<h2>Packable types<a class="headerlink" href="#packable-types" title="Permalink to this headline">¶</a></h2>
+<dl class="class">
+<dt id="macholib.ptypes.BasePackable">
+<em class="property">class </em><tt class="descclassname">macholib.ptypes.</tt><tt class="descname">BasePackable</tt><a class="headerlink" href="#macholib.ptypes.BasePackable" title="Permalink to this definition">¶</a></dt>
+<dd><p>All packable types are a subclass of <a class="reference internal" href="#macholib.ptypes.BasePackable" title="macholib.ptypes.BasePackable"><tt class="xref py py-class docutils literal"><span class="pre">BasePackable</span></tt></a>, which defines
+the basic interface but is itself an abstract base class.</p>
+<dl class="data">
+<dt id="macholib.ptypes.BasePackable._endian_">
+<tt class="descname">_endian_</tt><a class="headerlink" href="#macholib.ptypes.BasePackable._endian_" title="Permalink to this definition">¶</a></dt>
+<dd><p>The byteorder of a packed value. This will be <tt class="docutils literal"><span class="pre">&quot;&lt;&quot;`</span> <span class="pre">for</span>
+<span class="pre">little</span> <span class="pre">endian</span> <span class="pre">values</span> <span class="pre">and</span> <span class="pre">``&quot;&gt;&quot;</span></tt> for big-endian ones.</p>
+<div class="admonition note">
+<p class="first admonition-title">Note</p>
+<p>the endianness option is a public value to be
+able to support both big- and little-endian file formats.</p>
+<p class="last">The name suggests that this attribute is private, this
+is partically for historical reasons and partially to
+avoid conflicts with field names in C structs.</p>
+</div>
+</dd></dl>
+
+<dl class="method">
+<dt id="macholib.ptypes.BasePackable.from_mmap">
+<tt class="descname">from_mmap</tt><big>(</big><em>mmap</em>, <em>ptr</em>, <em>**kw</em><big>)</big><a class="headerlink" href="#macholib.ptypes.BasePackable.from_mmap" title="Permalink to this definition">¶</a></dt>
+<dd><p>This class method constructs the value from a subview of a
+<a class="reference external" href="http://docs.python.org/library/mmap.html#mmap.mmap" title="(in Python v2.7)"><tt class="xref py py-class docutils literal"><span class="pre">mmap.mmap</span></tt></a> object. It uses bytes starting at offset <em>ptr</em> and
+reads just enough bytes to read the entire object.</p>
+</dd></dl>
+
+<dl class="method">
+<dt id="macholib.ptypes.BasePackable.from_fileobj">
+<tt class="descname">from_fileobj</tt><big>(</big><em>fp</em>, <em>**kw</em><big>)</big><a class="headerlink" href="#macholib.ptypes.BasePackable.from_fileobj" title="Permalink to this definition">¶</a></dt>
+<dd><p>This class method constructs the value by reading just enough bytes
+from a file-like object.</p>
+<div class="admonition note">
+<p class="first admonition-title">Note</p>
+<p class="last">The file must be opened in binary mode, that is read calls
+should return byte-strings and not unicode-strings.</p>
+</div>
+</dd></dl>
+
+<dl class="method">
+<dt id="macholib.ptypes.BasePackable.from_str">
+<tt class="descname">from_str</tt><big>(</big><em>value</em>, <em>**kw</em><big>)</big><a class="headerlink" href="#macholib.ptypes.BasePackable.from_str" title="Permalink to this definition">¶</a></dt>
+<dd><p>This class method construct the value by using the struct module
+to parse the given bytes.</p>
+<div class="admonition note">
+<p class="first admonition-title">Note</p>
+<p class="last">contrary to what the name suggests the argument to this
+method is a byte-string, not a unicode-string.</p>
+</div>
+</dd></dl>
+
+<dl class="method">
+<dt id="macholib.ptypes.BasePackable.from_tuple">
+<tt class="descname">from_tuple</tt><big>(</big><em>fp</em>, <em>**kw</em><big>)</big><a class="headerlink" href="#macholib.ptypes.BasePackable.from_tuple" title="Permalink to this definition">¶</a></dt>
+<dd><p>This class method constructs the object from a tuple with all fields.</p>
+</dd></dl>
+
+<dl class="method">
+<dt id="macholib.ptypes.BasePackable.to_str">
+<tt class="descname">to_str</tt><big>(</big><big>)</big><a class="headerlink" href="#macholib.ptypes.BasePackable.to_str" title="Permalink to this definition">¶</a></dt>
+<dd><p>Returns a byte representation of the value.</p>
+<div class="admonition note">
+<p class="first admonition-title">Note</p>
+<p class="last">there is no default implementation for this method</p>
+</div>
+</dd></dl>
+
+<dl class="method">
+<dt id="macholib.ptypes.BasePackable.to_fileobj">
+<tt class="descname">to_fileobj</tt><big>(</big><em>fp</em><big>)</big><a class="headerlink" href="#macholib.ptypes.BasePackable.to_fileobj" title="Permalink to this definition">¶</a></dt>
+<dd><p>Write a byte representation of the value to the given file-like
+object. The file should be opened in binary mode.</p>
+</dd></dl>
+
+<dl class="method">
+<dt id="macholib.ptypes.BasePackable.to_mmap">
+<tt class="descname">to_mmap</tt><big>(</big><em>mmap</em>, <em>ptr</em><big>)</big><a class="headerlink" href="#macholib.ptypes.BasePackable.to_mmap" title="Permalink to this definition">¶</a></dt>
+<dd><p>Write the byte representation of the value to a <a class="reference external" href="http://docs.python.org/library/mmap.html#mmap.mmap" title="(in Python v2.7)"><tt class="xref py py-class docutils literal"><span class="pre">mmap.mmap</span></tt></a>
+object, starting at offset <em>ptr</em>.</p>
+</dd></dl>
+
+</dd></dl>
+
+<dl class="class">
+<dt id="macholib.ptypes.Structure">
+<em class="property">class </em><tt class="descclassname">macholib.ptypes.</tt><tt class="descname">Structure</tt><big>(</big><em>...</em><big>)</big><a class="headerlink" href="#macholib.ptypes.Structure" title="Permalink to this definition">¶</a></dt>
+<dd><dl class="data">
+<dt id="macholib.ptypes.Structure._fields_">
+<tt class="descname">_fields_</tt><a class="headerlink" href="#macholib.ptypes.Structure._fields_" title="Permalink to this definition">¶</a></dt>
+<dd><p>This class attribute is a list that contains the fields of the
+structure in the right order. Every item of this list is a tuple
+with 2 arguments: the first element is the name of the field, and
+the second the packable type for the field.</p>
+<p>Every subclass of <a class="reference internal" href="#macholib.ptypes.Structure" title="macholib.ptypes.Structure"><tt class="xref py py-class docutils literal"><span class="pre">Structure</span></tt></a> must define <em>_fields_</em> to be
+usefull, and the value of <em>_fields_</em> should not be changed after
+class construction.</p>
+</dd></dl>
+
+</dd></dl>
+
+</div>
+<div class="section" id="basic-packables">
+<h2>Basic packables<a class="headerlink" href="#basic-packables" title="Permalink to this headline">¶</a></h2>
+<p>Other than the core functionality this module defines a number of
+<a class="reference internal" href="#macholib.ptypes.pypackable" title="macholib.ptypes.pypackable"><tt class="xref py py-func docutils literal"><span class="pre">pypackable()</span></tt></a> types that correspond to useful basic C types.</p>
+<dl class="class">
+<dt id="macholib.ptypes.p_char">
+<em class="property">class </em><tt class="descclassname">macholib.ptypes.</tt><tt class="descname">p_char</tt><big>(</big><span class="optional">[</span><em>value</em><span class="optional">]</span><big>)</big><a class="headerlink" href="#macholib.ptypes.p_char" title="Permalink to this definition">¶</a></dt>
+<dd><p>A byte string of length 1</p>
+</dd></dl>
+
+<dl class="class">
+<dt id="macholib.ptypes.p_int8">
+<em class="property">class </em><tt class="descclassname">macholib.ptypes.</tt><tt class="descname">p_int8</tt><a class="headerlink" href="#macholib.ptypes.p_int8" title="Permalink to this definition">¶</a></dt>
+<dd><p>An 8-bit signed integer</p>
+</dd></dl>
+
+<dl class="class">
+<dt id="macholib.ptypes.p_uint8">
+<em class="property">class </em><tt class="descclassname">macholib.ptypes.</tt><tt class="descname">p_uint8</tt><a class="headerlink" href="#macholib.ptypes.p_uint8" title="Permalink to this definition">¶</a></dt>
+<dd><p>An 8-bit unsigned integer</p>
+</dd></dl>
+
+<dl class="class">
+<dt id="macholib.ptypes.p_int16">
+<em class="property">class </em><tt class="descclassname">macholib.ptypes.</tt><tt class="descname">p_int16</tt><a class="headerlink" href="#macholib.ptypes.p_int16" title="Permalink to this definition">¶</a></dt>
+<dd><p>An 16-bit signed integer</p>
+</dd></dl>
+
+<dl class="class">
+<dt id="macholib.ptypes.p_uint16">
+<em class="property">class </em><tt class="descclassname">macholib.ptypes.</tt><tt class="descname">p_uint16</tt><a class="headerlink" href="#macholib.ptypes.p_uint16" title="Permalink to this definition">¶</a></dt>
+<dd><p>An 16-bit unsigned integer</p>
+</dd></dl>
+
+<dl class="class">
+<dt id="macholib.ptypes.p_int32">
+<em class="property">class </em><tt class="descclassname">macholib.ptypes.</tt><tt class="descname">p_int32</tt><a class="headerlink" href="#macholib.ptypes.p_int32" title="Permalink to this definition">¶</a></dt>
+<dd><p>An 32-bit signed integer</p>
+</dd></dl>
+
+<dl class="class">
+<dt id="macholib.ptypes.p_uint32">
+<em class="property">class </em><tt class="descclassname">macholib.ptypes.</tt><tt class="descname">p_uint32</tt><a class="headerlink" href="#macholib.ptypes.p_uint32" title="Permalink to this definition">¶</a></dt>
+<dd><p>An 32-bit unsigned integer</p>
+</dd></dl>
+
+<dl class="class">
+<dt id="macholib.ptypes.p_int64">
+<em class="property">class </em><tt class="descclassname">macholib.ptypes.</tt><tt class="descname">p_int64</tt><a class="headerlink" href="#macholib.ptypes.p_int64" title="Permalink to this definition">¶</a></dt>
+<dd><p>An 64-bit signed integer</p>
+</dd></dl>
+
+<dl class="class">
+<dt id="macholib.ptypes.p_uint64">
+<em class="property">class </em><tt class="descclassname">macholib.ptypes.</tt><tt class="descname">p_uint64</tt><a class="headerlink" href="#macholib.ptypes.p_uint64" title="Permalink to this definition">¶</a></dt>
+<dd><p>An 64-bit unsigned integer</p>
+</dd></dl>
+
+<dl class="class">
+<dt id="macholib.ptypes.p_float">
+<em class="property">class </em><tt class="descclassname">macholib.ptypes.</tt><tt class="descname">p_float</tt><a class="headerlink" href="#macholib.ptypes.p_float" title="Permalink to this definition">¶</a></dt>
+<dd><p>An floating point value of type <tt class="docutils literal"><span class="pre">float</span></tt></p>
+</dd></dl>
+
+<dl class="class">
+<dt id="macholib.ptypes.p_double">
+<em class="property">class </em><tt class="descclassname">macholib.ptypes.</tt><tt class="descname">p_double</tt><a class="headerlink" href="#macholib.ptypes.p_double" title="Permalink to this definition">¶</a></dt>
+<dd><p>An floating point value of type <tt class="docutils literal"><span class="pre">double</span></tt></p>
+</dd></dl>
+
+<div class="admonition note">
+<p class="first admonition-title">Note</p>
+<p class="last">the module exports a number of other types with
+names starting with <tt class="docutils literal"><span class="pre">p_</span></tt>, such as <tt class="docutils literal"><span class="pre">p_int</span></tt>. Those types
+are deprecated and should not be used.</p>
+</div>
+</div>
+</div>
+
+
+          </div>
+        </div>
+      </div>
+      <div class="sphinxsidebar">
+        <div class="sphinxsidebarwrapper">
+  <h3><a href="index.html">Table Of Contents</a></h3>
+  <ul>
+<li><a class="reference internal" href="#"><tt class="docutils literal"><span class="pre">macholib.ptypes</span></tt> &#8212; Packable types</a><ul>
+<li><a class="reference internal" href="#utility-functions">Utility functions</a></li>
+<li><a class="reference internal" href="#packable-types">Packable types</a></li>
+<li><a class="reference internal" href="#basic-packables">Basic packables</a></li>
+</ul>
+</li>
+</ul>
+
+  <h4>Previous topic</h4>
+  <p class="topless"><a href="macho_o.html"
+                        title="previous chapter"><tt class="docutils literal"><span class="pre">macholib.mach_o</span></tt> &#8212; Low-level definitions</a></p>
+  <h3>This Page</h3>
+  <ul class="this-page-menu">
+    <li><a href="_sources/ptypes.txt"
+           rel="nofollow">Show Source</a></li>
+  </ul>
+<div id="searchbox" style="display: none">
+  <h3>Quick search</h3>
+    <form class="search" action="search.html" method="get">
+      <input type="text" name="q" />
+      <input type="submit" value="Go" />
+      <input type="hidden" name="check_keywords" value="yes" />
+      <input type="hidden" name="area" value="default" />
+    </form>
+    <p class="searchtip" style="font-size: 90%">
+    Enter search terms or a module, class or function name.
+    </p>
+</div>
+<script type="text/javascript">$('#searchbox').show(0);</script>
+        </div>
+      </div>
+      <div class="clearer"></div>
+    </div>
+    <div class="related">
+      <h3>Navigation</h3>
+      <ul>
+        <li class="right" style="margin-right: 10px">
+          <a href="genindex.html" title="General Index"
+             >index</a></li>
+        <li class="right" >
+          <a href="py-modindex.html" title="Python Module Index"
+             >modules</a> |</li>
+        <li class="right" >
+          <a href="macho_o.html" title="macholib.mach_o — Low-level definitions"
+             >previous</a> |</li>
+        <li><a href="index.html">macholib 1.7 documentation</a> &raquo;</li> 
+      </ul>
+    </div>
+    <div class="footer">
+        &copy; Copyright 2010-2011, Ronald Oussoren.
+      Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.2.1.
+    </div>
+  </body>
+</html>
\ No newline at end of file
new file mode 100644
--- /dev/null
+++ b/python/macholib/doc/_build/html/py-modindex.html
@@ -0,0 +1,154 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    
+    <title>Python Module Index &mdash; macholib 1.7 documentation</title>
+    
+    <link rel="stylesheet" href="_static/nature.css" type="text/css" />
+    <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
+    
+    <script type="text/javascript">
+      var DOCUMENTATION_OPTIONS = {
+        URL_ROOT:    './',
+        VERSION:     '1.7',
+        COLLAPSE_INDEX: false,
+        FILE_SUFFIX: '.html',
+        HAS_SOURCE:  true
+      };
+    </script>
+    <script type="text/javascript" src="_static/jquery.js"></script>
+    <script type="text/javascript" src="_static/underscore.js"></script>
+    <script type="text/javascript" src="_static/doctools.js"></script>
+    <link rel="top" title="macholib 1.7 documentation" href="index.html" />
+ 
+
+
+  </head>
+  <body>
+    <div class="related">
+      <h3>Navigation</h3>
+      <ul>
+        <li class="right" style="margin-right: 10px">
+          <a href="genindex.html" title="General Index"
+             accesskey="I">index</a></li>
+        <li class="right" >
+          <a href="#" title="Python Module Index"
+             >modules</a> |</li>
+        <li><a href="index.html">macholib 1.7 documentation</a> &raquo;</li> 
+      </ul>
+    </div>  
+
+    <div class="document">
+      <div class="documentwrapper">
+        <div class="bodywrapper">
+          <div class="body">
+            
+
+   <h1>Python Module Index</h1>
+
+   <div class="modindex-jumpbox">
+   <a href="#cap-m"><strong>m</strong></a>
+   </div>
+
+   <table class="indextable modindextable" cellspacing="0" cellpadding="2">
+     <tr class="pcap"><td></td><td>&nbsp;</td><td></td></tr>
+     <tr class="cap" id="cap-m"><td></td><td>
+       <strong>m</strong></td><td></td></tr>
+     <tr>
+       <td><img src="_static/minus.png" class="toggler"
+              id="toggle-1" style="display: none" alt="-" /></td>
+       <td>
+       <tt class="xref">macholib</tt></td><td>
+       <em></em></td></tr>
+     <tr class="cg-1">
+       <td></td>
+       <td>&nbsp;&nbsp;&nbsp;
+       <a href="dyld.html#module-macholib.dyld"><tt class="xref">macholib.dyld</tt></a></td><td>
+       <em>Emulation of functonality of the dynamic linker</em></td></tr>
+     <tr class="cg-1">
+       <td></td>
+       <td>&nbsp;&nbsp;&nbsp;
+       <a href="dylib.html#module-macholib.dylib"><tt class="xref">macholib.dylib</tt></a></td><td>
+       <em>Generic dylib path manipulation</em></td></tr>
+     <tr class="cg-1">
+       <td></td>
+       <td>&nbsp;&nbsp;&nbsp;
+       <a href="framework.html#module-macholib.framework"><tt class="xref">macholib.framework</tt></a></td><td>
+       <em>Generic framework path manipulation</em></td></tr>
+     <tr class="cg-1">
+       <td></td>
+       <td>&nbsp;&nbsp;&nbsp;
+       <a href="macho_o.html#module-macholib.mach_o"><tt class="xref">macholib.mach_o</tt></a></td><td>
+       <em>Low-level definitions of elements in a Mach-O file</em></td></tr>
+     <tr class="cg-1">
+       <td></td>
+       <td>&nbsp;&nbsp;&nbsp;
+       <a href="MachO.html#module-macholib.MachO"><tt class="xref">macholib.MachO</tt></a></td><td>
+       <em>Utilities for reading and writing Mach-O headers</em></td></tr>
+     <tr class="cg-1">
+       <td></td>
+       <td>&nbsp;&nbsp;&nbsp;
+       <a href="MachoOGraph.html#module-macholib.MachOGraph"><tt class="xref">macholib.MachOGraph</tt></a></td><td>
+       <em>Graph data structure of Mach-O dependencies</em></td></tr>
+     <tr class="cg-1">
+       <td></td>
+       <td>&nbsp;&nbsp;&nbsp;
+       <a href="MachoOStandalone.html#module-macholib.MachOStandalone"><tt class="xref">macholib.MachOStandalone</tt></a></td><td>
+       <em>Create standalone application bundles</em></td></tr>
+     <tr class="cg-1">
+       <td></td>
+       <td>&nbsp;&nbsp;&nbsp;
+       <a href="ptypes.html#module-macholib.ptypes"><tt class="xref">macholib.ptypes</tt></a></td><td>
+       <em>Serializable types</em></td></tr>
+     <tr class="cg-1">
+       <td></td>
+       <td>&nbsp;&nbsp;&nbsp;
+       <a href="SymbolTable.html#module-macholib.SymbolTable"><tt class="xref">macholib.SymbolTable</tt></a></td><td>
+       <em>Class to read the symbol table from a Mach-O header</em></td></tr>
+   </table>
+
+
+          </div>
+        </div>
+      </div>
+      <div class="sphinxsidebar">
+        <div class="sphinxsidebarwrapper">
+<div id="searchbox" style="display: none">
+  <h3>Quick search</h3>
+    <form class="search" action="search.html" method="get">
+      <input type="text" name="q" />
+      <input type="submit" value="Go" />
+      <input type="hidden" name="check_keywords" value="yes" />
+      <input type="hidden" name="area" value="default" />
+    </form>
+    <p class="searchtip" style="font-size: 90%">
+    Enter search terms or a module, class or function name.
+    </p>
+</div>
+<script type="text/javascript">$('#searchbox').show(0);</script>
+        </div>
+      </div>
+      <div class="clearer"></div>
+    </div>
+    <div class="related">
+      <h3>Navigation</h3>
+      <ul>
+        <li class="right" style="margin-right: 10px">
+          <a href="genindex.html" title="General Index"
+             >index</a></li>
+        <li class="right" >
+          <a href="#" title="Python Module Index"
+             >modules</a> |</li>
+        <li><a href="index.html">macholib 1.7 documentation</a> &raquo;</li> 
+      </ul>
+    </div>
+    <div class="footer">
+        &copy; Copyright 2010-2011, Ronald Oussoren.
+      Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.2.1.
+    </div>
+  </body>
+</html>
\ No newline at end of file
new file mode 100644
--- /dev/null
+++ b/python/macholib/doc/_build/html/scripts.html
@@ -0,0 +1,156 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    
+    <title>Command-line tools &mdash; macholib 1.7 documentation</title>
+    
+    <link rel="stylesheet" href="_static/nature.css" type="text/css" />
+    <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
+    
+    <script type="text/javascript">
+      var DOCUMENTATION_OPTIONS = {
+        URL_ROOT:    './',
+        VERSION:     '1.7',
+        COLLAPSE_INDEX: false,
+        FILE_SUFFIX: '.html',
+        HAS_SOURCE:  true
+      };
+    </script>
+    <script type="text/javascript" src="_static/jquery.js"></script>
+    <script type="text/javascript" src="_static/underscore.js"></script>
+    <script type="text/javascript" src="_static/doctools.js"></script>
+    <link rel="top" title="macholib 1.7 documentation" href="index.html" />
+    <link rel="next" title="macholib.MachO — Utilities for reading and writing Mach-O headers" href="MachO.html" />
+    <link rel="prev" title="License" href="license.html" /> 
+  </head>
+  <body>
+    <div class="related">
+      <h3>Navigation</h3>
+      <ul>
+        <li class="right" style="margin-right: 10px">
+          <a href="genindex.html" title="General Index"
+             accesskey="I">index</a></li>
+        <li class="right" >
+          <a href="py-modindex.html" title="Python Module Index"
+             >modules</a> |</li>
+        <li class="right" >
+          <a href="MachO.html" title="macholib.MachO — Utilities for reading and writing Mach-O headers"
+             accesskey="N">next</a> |</li>
+        <li class="right" >
+          <a href="license.html" title="License"
+             accesskey="P">previous</a> |</li>
+        <li><a href="index.html">macholib 1.7 documentation</a> &raquo;</li> 
+      </ul>
+    </div>  
+
+    <div class="document">
+      <div class="documentwrapper">
+        <div class="bodywrapper">
+          <div class="body">
+            
+  <div class="section" id="command-line-tools">
+<h1>Command-line tools<a class="headerlink" href="#command-line-tools" title="Permalink to this headline">¶</a></h1>
+<div class="section" id="python-m-macholib-find">
+<h2>python -m macholib find<a class="headerlink" href="#python-m-macholib-find" title="Permalink to this headline">¶</a></h2>
+<p>Usage:</p>
+<div class="highlight-python"><div class="highlight"><pre>$ python -mmacholib find dir...
+</pre></div>
+</div>
+<p>Print the paths of all MachO binaries
+in the specified directories.</p>
+</div>
+<div class="section" id="python-m-macholib-standalone">
+<h2>python -m macholib standalone<a class="headerlink" href="#python-m-macholib-standalone" title="Permalink to this headline">¶</a></h2>
+<p>Usage:</p>
+<div class="highlight-python"><div class="highlight"><pre>$ python -m macholib standalone appbundle...
+</pre></div>
+</div>
+<p>Convert one or more application bundles into
+standalone bundles. That is, copy all non-system
+shared libraries and frameworks used by the bundle
+into the bundle and rewrite load commands.</p>
+</div>
+<div class="section" id="python-mmacholib-dump">
+<h2>python -mmacholib dump<a class="headerlink" href="#python-mmacholib-dump" title="Permalink to this headline">¶</a></h2>
+<p>Usage:</p>
+<div class="highlight-python"><div class="highlight"><pre>$ python -mmacholib dump dir...
+</pre></div>
+</div>
+<p>Prints information about all architectures in a
+Mach-O file as well as all libraries it links
+to.</p>
+</div>
+</div>
+
+
+          </div>
+        </div>
+      </div>
+      <div class="sphinxsidebar">
+        <div class="sphinxsidebarwrapper">
+  <h3><a href="index.html">Table Of Contents</a></h3>
+  <ul>
+<li><a class="reference internal" href="#">Command-line tools</a><ul>
+<li><a class="reference internal" href="#python-m-macholib-find">python -m macholib find</a></li>
+<li><a class="reference internal" href="#python-m-macholib-standalone">python -m macholib standalone</a></li>
+<li><a class="reference internal" href="#python-mmacholib-dump">python -mmacholib dump</a></li>
+</ul>
+</li>
+</ul>
+
+  <h4>Previous topic</h4>
+  <p class="topless"><a href="license.html"
+                        title="previous chapter">License</a></p>
+  <h4>Next topic</h4>
+  <p class="topless"><a href="MachO.html"
+                        title="next chapter"><tt class="docutils literal"><span class="pre">macholib.MachO</span></tt> &#8212; Utilities for reading and writing Mach-O headers</a></p>
+  <h3>This Page</h3>
+  <ul class="this-page-menu">
+    <li><a href="_sources/scripts.txt"
+           rel="nofollow">Show Source</a></li>
+  </ul>
+<div id="searchbox" style="display: none">
+  <h3>Quick search</h3>
+    <form class="search" action="search.html" method="get">
+      <input type="text" name="q" />
+      <input type="submit" value="Go" />
+      <input type="hidden" name="check_keywords" value="yes" />
+      <input type="hidden" name="area" value="default" />
+    </form>
+    <p class="searchtip" style="font-size: 90%">
+    Enter search terms or a module, class or function name.
+    </p>
+</div>
+<script type="text/javascript">$('#searchbox').show(0);</script>
+        </div>
+      </div>
+      <div class="clearer"></div>
+    </div>
+    <div class="related">
+      <h3>Navigation</h3>
+      <ul>
+        <li class="right" style="margin-right: 10px">
+          <a href="genindex.html" title="General Index"
+             >index</a></li>
+        <li class="right" >
+          <a href="py-modindex.html" title="Python Module Index"
+             >modules</a> |</li>
+        <li class="right" >
+          <a href="MachO.html" title="macholib.MachO — Utilities for reading and writing Mach-O headers"
+             >next</a> |</li>
+        <li class="right" >
+          <a href="license.html" title="License"
+             >previous</a> |</li>
+        <li><a href="index.html">macholib 1.7 documentation</a> &raquo;</li> 
+      </ul>
+    </div>
+    <div class="footer">
+        &copy; Copyright 2010-2011, Ronald Oussoren.
+      Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.2.1.
+    </div>
+  </body>
+</html>
\ No newline at end of file
new file mode 100644
--- /dev/null
+++ b/python/macholib/doc/_build/html/search.html
@@ -0,0 +1,105 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    
+    <title>Search &mdash; macholib 1.7 documentation</title>
+    
+    <link rel="stylesheet" href="_static/nature.css" type="text/css" />
+    <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
+    
+    <script type="text/javascript">
+      var DOCUMENTATION_OPTIONS = {
+        URL_ROOT:    './',
+        VERSION:     '1.7',
+        COLLAPSE_INDEX: false,
+        FILE_SUFFIX: '.html',
+        HAS_SOURCE:  true
+      };
+    </script>
+    <script type="text/javascript" src="_static/jquery.js"></script>
+    <script type="text/javascript" src="_static/underscore.js"></script>
+    <script type="text/javascript" src="_static/doctools.js"></script>
+    <script type="text/javascript" src="_static/searchtools.js"></script>
+    <link rel="top" title="macholib 1.7 documentation" href="index.html" />
+  <script type="text/javascript">
+    jQuery(function() { Search.loadIndex("searchindex.js"); });
+  </script>
+  
+  <script type="text/javascript" id="searchindexloader"></script>
+   
+
+  </head>
+  <body>
+    <div class="related">
+      <h3>Navigation</h3>
+      <ul>
+        <li class="right" style="margin-right: 10px">
+          <a href="genindex.html" title="General Index"
+             accesskey="I">index</a></li>
+        <li class="right" >
+          <a href="py-modindex.html" title="Python Module Index"
+             >modules</a> |</li>
+        <li><a href="index.html">macholib 1.7 documentation</a> &raquo;</li> 
+      </ul>
+    </div>  
+
+    <div class="document">
+      <div class="documentwrapper">
+        <div class="bodywrapper">
+          <div class="body">
+            
+  <h1 id="search-documentation">Search</h1>
+  <div id="fallback" class="admonition warning">
+  <script type="text/javascript">$('#fallback').hide();</script>
+  <p>
+    Please activate JavaScript to enable the search
+    functionality.
+  </p>
+  </div>
+  <p>
+    From here you can search these documents. Enter your search
+    words into the box below and click "search". Note that the search
+    function will automatically search for all of the words. Pages
+    containing fewer words won't appear in the result list.
+  </p>
+  <form action="" method="get">
+    <input type="text" name="q" value="" />
+    <input type="submit" value="search" />
+    <span id="search-progress" style="padding-left: 10px"></span>
+  </form>
+  
+  <div id="search-results">
+  
+  </div>
+
+          </div>
+        </div>
+      </div>
+      <div class="sphinxsidebar">
+        <div class="sphinxsidebarwrapper">
+        </div>
+      </div>
+      <div class="clearer"></div>
+    </div>
+    <div class="related">
+      <h3>Navigation</h3>
+      <ul>
+        <li class="right" style="margin-right: 10px">
+          <a href="genindex.html" title="General Index"
+             >index</a></li>
+        <li class="right" >
+          <a href="py-modindex.html" title="Python Module Index"
+             >modules</a> |</li>
+        <li><a href="index.html">macholib 1.7 documentation</a> &raquo;</li> 
+      </ul>
+    </div>
+    <div class="footer">
+        &copy; Copyright 2010-2011, Ronald Oussoren.
+      Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.2.1.
+    </div>
+  </body>
+</html>
\ No newline at end of file
new file mode 100644
--- /dev/null
+++ b/python/macholib/doc/_build/html/searchindex.js
@@ -0,0 +1,1 @@
+Search.setIndex({envversion:42,terms:{osx:4,all:[0,4,5,8,10,11],code:[1,8,4],partial:5,represent:5,four:[7,6],follow:[7,6],ptr:5,privat:[5,4],from_mmap:5,ronaldoussoren:1,dyld_library_path:11,those:[11,3,5,4],aris:2,merchant:2,p_char:5,sourc:4,everi:5,string:[5,4],p_int8:[5,4],than:[11,5],p_longlong:4,fat:12,affect:4,tri:4,magic:4,level:1,py2app:4,iter:11,"try":4,item:[11,5],dir:10,pleas:4,x86_64:4,impli:2,cpu_type_nam:4,direct:9,sign:5,second:5,odd:4,append:11,even:[11,4],index:1,what:5,p_int16:[5,4],dorsei:4,abi:1,abl:5,current:[1,11],"public":5,experiment:4,"new":4,oussoren:[1,2],method:[5,4],deduc:4,metadata:4,sizeof:5,gener:4,lc_load_upward_dylib:4,onli:11,behaviour:4,path:[11,4],modifi:2,"_endian_":5,valu:[11,5,4],search:[1,11,4],subview:5,p_int64:[5,4],permit:2,macho_standalon:4,implement:[8,5,4],from_fileobj:5,semant:[11,4],useful:5,app:4,filenam:[7,12,6],inappropri:5,instal:[11,4],lc_function_start:4,from:12,describ:4,would:4,univers:12,dure:4,next:4,call:5,usr:4,typo:4,type:[1,3,4],minor:4,more:[11,12,10,9,4],share:[11,10],nguyen:4,p_uint:4,particular:2,sourcecod:1,herebi:2,must:5,none:[7,11,6],setup:4,work:[8,4],can:[1,4,5,7,6,11,12],endian:[1,5,4],purpos:2,root:0,claim:2,bogu:4,ppc64:4,accept:11,serial:5,unsign:5,looser:11,alwai:[11,4],end:8,classifi:4,far:8,pure:1,instead:4,updat:8,map:[7,6,4],after:[8,5],ronald:[1,2],mac:1,mai:7,underscor:4,associ:2,p_long:4,author:[8,2],correspond:[3,5,4],element:[5,3],issu:[1,4],inform:[4,10,7,6,11,12],"switch":4,maintain:1,environ:[11,4],reloc:4,fallback:11,order:[5,4],furnish:2,to_mmap:5,move:4,becaus:[8,4],still:4,pointer:4,dynam:[7,11,12,6],p_uint32:[5,4],fit:2,fix:4,better:4,tort:2,contrari:5,therefor:3,non:[0,10],"return":[7,11,6,5,4],env:[0,11],thei:4,python:[1,11,5,4],initi:8,framework:[11,4],now:4,discuss:9,from_str:5,name:[3,4,5,7,6,11],name_suffix:[7,6],mode:5,found:[7,11,6],unicod:5,side:4,compil:4,list:[11,5,4],connect:2,extract:[7,6],event:2,out:2,variabl:4,antoin:4,newli:4,publish:2,dylib_info:6,rewrit:[1,10,4],rel:[1,11],print:[10,4],correct:11,earlier:4,insid:4,macho_dump:4,free:2,reason:5,base:[0,5],dictionari:11,p_float:5,org:4,"byte":[5,4],modulegraph:8,dyld_find:[11,4],dyld_image_suffix:11,david:4,length:5,isn:4,lc_encryption_info:4,lifetim:4,confus:4,suppport:4,first:[5,4],softwar:2,suffix:[7,11,6],directli:11,onc:4,arrai:5,independ:1,number:[11,5,4],restrict:2,construct:5,open:[8,5],size:5,given:[8,5],width:4,licens:1,system:[0,11,10,4],messag:4,mercuri:4,too:4,lc_version_min_iphoneo:4,includ:[2,4],option:[4,5,7,8,6,11],tool:[1,4],copi:[0,2,10],setuptool:4,specifi:[11,8,10],part:2,pars:5,holder:2,packabl:[1,3,4],kind:2,grep:4,target:1,provid:[2,4],remov:4,see:[11,4],were:4,"function":[6,7,11,8,4],loader_path:[11,4],linker:[11,4],appbundl:10,argument:[11,8,5,4],packag:[8,4],properli:8,lightli:4,need:4,lc_data_in_cod:4,sell:2,caus:4,equival:[7,6],also:[1,8,4],builtin:8,arch_map:4,take:[7,6],which:[0,4,5,9,11,12],noth:11,distribut:[2,4],though:[1,11,4],dydl_framework_path:11,previou:4,clearer:4,sublicens:2,maco:12,"class":[0,12,9],charg:2,renam:4,framework_info:7,later:12,request:11,doe:8,shortnam:[7,6],show:4,xcode:4,permiss:2,find:[11,4],dyld_executable_path_search:11,locat:[0,7,11,6,4],macho_find:4,copyright:2,enough:5,should:[11,12,5,4],version:[7,11,6,4],dict:[7,6],to_fileobj:5,p_int32:[5,4],variou:4,express:2,stop:4,nativ:4,cannot:[11,4],liabl:2,partic:5,byteord:5,enabl:12,yield:11,patch:4,irrespect:4,"default":[11,8,5],contain:[8,5,4],where:11,view:4,set:4,dump:4,pytyp:5,from_tupl:5,lion:4,result:[11,8,4],dyld_override_search:11,basepack:5,written:1,p_byte:4,attribut:5,pypack:5,parent:4,p_ptr:4,entir:5,both:5,plugin:0,dyld_default_search:[11,4],contract:2,matthia:4,py3k:4,com:1,load:[10,4],unclear:4,undocu:4,somevers:[7,6],point:5,loader:[11,4],platform:1,assum:0,damag:2,liabil:2,marc:4,due:4,empti:11,whom:2,basic:4,valueerror:[11,5],dyld_fallback:4,imag:11,convert:[5,10],ani:[8,2],p_uint64:[5,4],p_int:[5,4],present:[7,6,4],look:11,histor:5,defin:[0,3,5,7,9,6,11,12],mmacholib:4,pack:5,have:4,itself:[5,4],myapp:4,dyld_fallback_library_path:11,p_uint16:[5,4],grant:2,suggest:5,make:4,same:[11,3],binari:[4,5,8,10,11,12],pysid:4,p_short:4,document:4,conflict:5,http:4,effect:4,action:2,rais:[11,5],user:[11,8,4],typic:1,p_doubl:5,noninfring:2,appropri:4,p_ushort:4,entri:11,well:[8,10],person:2,without:[2,4],command:[1,4],thi:[0,1,2,3,4,5,7,8,9,6,11,12],filesystem:11,undefin:4,just:5,when:[11,5,4],obtain:2,guanqun:4,struct:5,mmap:5,had:4,except:4,littl:5,add:4,lc_linker_opt:4,input:11,modul:[0,1,3,4,5,7,8,9,6,11,12],build:4,bin:4,around:4,format:[1,12,5],dest:0,big:5,p_ulonglong:4,know:8,bit:[8,5,4],python2:4,like:[11,8,5],specif:1,deprec:[8,5,4],manual:11,integ:5,either:11,output:4,prepent:11,page:[1,11],openfil:8,right:[5,2],old:4,p_uint8:[5,4],dyld_image_suffix_search:11,some:4,ptype:[1,4],someversion_suffix:6,"export":5,indirect:9,librari:[10,7,9,6,11,12],p_ubyt:4,avoid:5,shall:2,definit:[1,4],framwork:11,subclass:5,not_system_fil:4,tracker:[1,4],larg:4,refer:[11,12],core:5,ippolito:[1,2],object:[11,8,5,12],usag:10,broken:4,repositori:[1,4],offset:5,executable_path:[0,1,11],about:[10,4],actual:4,testsuit:4,explictli:3,doubl:5,"float":5,warranti:2,been:[8,4],chang:[11,5,4],reli:4,your:4,merg:2,deal:2,aren:[11,4],execut:[1,12,11],support:[8,5,4],avail:4,start:[11,5,4],lc_version_min_macosx:4,appl:[1,3],interfac:5,low:1,ringwald:4,analysi:1,"_fields_":5,form:[7,6],tupl:5,link:[11,10,4],p_ulong:4,line:[1,4],dyld_fallback_framework_path:11,bug:[8,4],framework_find:11,possibl:4,whether:2,bugfix:4,below:4,limit:2,arm64:4,otherwis:2,problem:4,featur:4,constant:[3,4],creat:12,"abstract":5,doesn:[11,3,8,4],repres:[9,4],exist:12,file:[0,1,2,3,4,5,8,9,10,11,12],bob:[1,2],codebas:4,again:4,lc_encryption_info_64:4,"2to3":4,nam:4,field:5,other:[9,5,2],futur:4,test:4,you:4,architectur:10,mach_o:[1,4],dyld:4,bitbucket:[1,4],sphinx:4,longer:4,directori:[0,11,10],dyld_framework_path:11,dyld_loader_search:[11,4],descript:11,indirectli:11,to_str:5,cpu:4},objtypes:{"0":"py:module","1":"py:method","2":"py:function","3":"py:class","4":"py:data"},objnames:{"0":["py","module","Python module"],"1":["py","method","Python method"],"2":["py","function","Python function"],"3":["py","class","Python class"],"4":["py","data","Python data"]},filenames:["MachoOStandalone","index","license","macho_o","changelog","ptypes","dylib","framework","SymbolTable","MachoOGraph","scripts","dyld","MachO"],titles:["<tt class=\"docutils literal\"><span class=\"pre\">macholib.MachOStandalone</span></tt> &#8212; Create standalone application bundles","Macholib - Analyze and edit Mach-O headers","License","<tt class=\"docutils literal\"><span class=\"pre\">macholib.mach_o</span></tt> &#8212; Low-level definitions","Release history","<tt class=\"docutils literal\"><span class=\"pre\">macholib.ptypes</span></tt> &#8212; Packable types","<tt class=\"docutils literal\"><span class=\"pre\">macholib.dylib</span></tt> &#8212; Generic dylib path manipulation","<tt class=\"docutils literal\"><span class=\"pre\">macholib.framework</span></tt> &#8212; Generic framework path manipulation","<tt class=\"docutils literal\"><span class=\"pre\">macholib.SymbolTable</span></tt> &#8212; Class to read the symbol table from a Mach-O header","<tt class=\"docutils literal\"><span class=\"pre\">macholib.MachoGraph</span></tt> &#8212; Graph data structure of Mach-O dependencies","Command-line tools","<tt class=\"docutils literal\"><span class=\"pre\">macholib.dyld</span></tt> &#8212; Dyld emulation","<tt class=\"docutils literal\"><span class=\"pre\">macholib.MachO</span></tt> &#8212; Utilities for reading and writing Mach-O headers"],objects:{"macholib.MachO":{MachO:[12,3,1,""]},"macholib.MachOStandalone":{MachOStandalone:[0,3,1,""]},"macholib.ptypes":{p_char:[5,3,1,""],BasePackable:[5,3,1,""],p_uint16:[5,3,1,""],p_uint8:[5,3,1,""],p_uint64:[5,3,1,""],p_int8:[5,3,1,""],p_uint32:[5,3,1,""],p_float:[5,3,1,""],p_int64:[5,3,1,""],pypackable:[5,2,1,""],p_double:[5,3,1,""],p_int16:[5,3,1,""],p_int32:[5,3,1,""],sizeof:[5,2,1,""],Structure:[5,3,1,""]},"macholib.MachOGraph":{MachOGraph:[9,3,1,""]},macholib:{mach_o:[3,0,0,"-"],MachOGraph:[9,0,0,"-"],ptypes:[5,0,0,"-"],framework:[7,0,0,"-"],SymbolTable:[8,0,0,"-"],MachOStandalone:[0,0,0,"-"],dylib:[6,0,0,"-"],dyld:[11,0,0,"-"],MachO:[12,0,0,"-"]},"macholib.ptypes.Structure":{"_fields_":[5,4,1,""]},"macholib.SymbolTable":{SymbolTable:[8,3,1,""]},"macholib.dylib":{dylib_info:[6,2,1,""]},"macholib.ptypes.BasePackable":{from_str:[5,1,1,""],to_mmap:[5,1,1,""],from_tuple:[5,1,1,""],to_str:[5,1,1,""],to_fileobj:[5,1,1,""],from_mmap:[5,1,1,""],from_fileobj:[5,1,1,""],"_endian_":[5,4,1,""]},"macholib.framework":{framework_info:[7,2,1,""]},"macholib.dyld":{framework_find:[11,2,1,""],dyld_executable_path_search:[11,2,1,""],dyld_override_search:[11,2,1,""],dyld_find:[11,2,1,""],dydl_framework_path:[11,2,1,""],dyld_image_suffix_search:[11,2,1,""],dyld_library_path:[11,2,1,""],dyld_image_suffix:[11,2,1,""],dyld_default_search:[11,2,1,""],dyld_fallback_framework_path:[11,2,1,""],dyld_loader_search:[11,2,1,""],dyld_fallback_library_path:[11,2,1,""]}},titleterms:{bundl:0,machostandalon:0,dump:10,definit:3,symbolt:8,ptype:5,indic:1,header:[1,8,12],framework:7,tabl:[1,8],contributor:1,onlin:1,guid:1,find:10,from:8,creat:0,graph:9,licens:2,machograph:9,"class":8,write:12,read:[12,8],analyz:1,basic:5,macho:12,type:5,mit:2,refer:1,"function":5,applic:0,mach_o:3,resourc:1,python:10,symbol:8,manipul:[7,6],tool:10,util:[12,5],standalon:[0,10],low:3,releas:4,depend:9,line:10,data:9,packabl:5,mach:[1,8,9,12],document:1,dylib:6,level:3,edit:1,macholib:[0,1,3,4,5,6,7,8,9,10,11,12],structur:9,histori:4,emul:11,dyld:11,command:10,gener:[1,6,7],path:[7,6],mmacholib:10}})
\ No newline at end of file
new file mode 100644
--- /dev/null
+++ b/python/macholib/doc/changelog.rst
@@ -0,0 +1,242 @@
+Release history
+===============
+
+macholib 1.7
+------------
+
+* Added support for ARM64, LC_ENCRYPTION_INFO_64 and LC_LINKER_OPTION
+
+  Patch by Matthias Ringwald.
+
+* Load commands now have a "describe" method that returns more information
+  about the command.
+
+  Patch by David Dorsey.
+
+* The MAGIC value in the header was always represented in the native
+  byte order, instead of as the value read from the binary.
+
+  Patch by David Dorsey.
+
+* Added various new constants to "macholib.mach_o".
+
+  Patch by David Dorsey.
+
+macholib 1.6.1
+--------------
+
+* ?
+
+macholib 1.6
+------------
+
+* Add support for '@loader_path' link command in
+  macholib.dyld:
+
+  - Added function ``macholib.dyld.dyld_loader_search``
+
+  - This function is used by ``macholib.dyld.dyld_find``,
+    and that function now has an new (optional) argument
+    with the path to the loader.
+
+* Also add support for '@loader_path' to macholib.MachoGraph,
+  using the newly added '@loader_path' support in the
+  dyld module.
+
+  Due to this suppport the *macho_standalone* tool can
+  now rewrite binaries that contain an '@loader_path' load
+  command.
+
+
+macholib 1.5.2
+--------------
+
+* Issue #93: Show the name of the affected file in the exception message
+  for Mach-O headers that are too large to relocate.
+
+
+macholib 1.5.1
+--------------
+
+* There were no 'classifiers' in the package metadata due to
+  a bug in setup.py.
+
+macholib 1.5
+--------------
+
+macholib 1.5 is a minor feature release
+
+* No longer use 2to3 to provide Python 3 support
+
+  As a side-effect of this macholib no longer supports
+  Python 2.5 and earlier.
+
+* Adds suppport for some new macho load commands
+
+* Fix for py3k problem in macho_standalone.py
+
+  Patch by Guanqun Lu.
+
+* Fix for some issues in macho_dump.py
+
+  Patch by Nam Nguyen
+
+* Issue #10: Fix for LC_DATA_IN_CODE linker commands, without
+  this fix py2app cannot build application bundles when
+  the source binaries have been compiled with Xcode 4.5.
+
+* Issue #6: Fix for LC_ENCRYPTION_INFO linker commands
+
+* Use the mach header information to print the cpu type of a
+  binary, instead of trying to deduce that from pointer width
+  and endianness.
+
+  Changed the code because of issue #6, in which a user tries to
+  dump a iOS binary which results in bogus output in the previous
+  releases.
+
+* The mapping ``macholib.macho_dump.ARCH_MAP`` is undocumented
+  and no longer used by macholib itself. It will be removed
+  in the next release.
+
+
+* The command-line tools ``macho_find``, ``macho_dump`` and
+  ``macho_standalone`` are deprecated. Use "python -mmacholib"
+  instead. That is::
+
+   $ python -mmacholib dump /usr/bin/grep
+
+   $ python -mmacholib find ~
+
+   $ python -mmacholib standalone myapp.app
+
+  This makes it clearer which version of the tools are used.
+
+macholib 1.4.3
+--------------
+
+macholib 1.4.3 is a minor feature release
+
+* Added strings for 'x86_64' and 'ppc64' to
+  macholib.mach_o.CPU_TYPE_NAMES.
+
+* macho_find and macho_dump were broken in the 1.4.2 release
+
+* added 'macholib.util.NOT_SYSTEM_FILES', a list of
+  files that aren't system path's even though they are
+  located in system locations.
+
+  Needed to work around a bug in PySide (see issue #32 in the
+  py2app tracker)
+
+
+
+macholib 1.4.2
+--------------
+
+macholib 1.4.2 is a minor bugfix release
+
+* The support for new load commands that was added in 1.4.1
+  contained a typo that caused problems on OSX 10.7 (Lion).
+
+macholib 1.4.1
+--------------
+
+macholib 1.4.1 is a minor feature release
+
+Features:
+
+- Add support for a number of new MachO load commands that were added
+  during the lifetime of OSX 10.6: ``LC_LOAD_UPWARD_DYLIB``,
+  ``LC_VERSION_MIN_MACOSX``, ``LC_VERSION_MIN_IPHONEOS`` and
+  ``LC_FUNCTION_STARTS``.
+
+macholib 1.4
+-------------
+
+macholib 1.4 is a feature release
+
+Features:
+
+- Documentation is now generated using `sphinx <http://pypi.python.org/pypi/sphinx>`_
+  and can be viewed at <http://packages.python.org/macholib>.
+
+- The repository has moved to bitbucket
+
+- There now is a testsuite
+
+- Private functionality inside modules was renamed to
+  a name starting with an underscore.
+
+  .. note:: if this change affects your code you are relying on undefined
+     implementation features, please stop using private functions.
+
+- The basic packable types in ``macholib.ptypes`` were renamed to better
+  represent the corresponding C type. The table below lists the old
+  an new names (the old names are still available, but are deprecated and
+  will be removed in a future release).
+
+  +--------------+--------------+
+  | **Old name** | **New name** |
+  +==============+==============+
+  | p_byte       | p_int8       |
+  +--------------+--------------+
+  | p_ubyte      | p_uint8      |
+  +--------------+--------------+
+  | p_short      | p_int16      |
+  +--------------+--------------+
+  | p_ushort     | p_uint16     |
+  +--------------+--------------+
+  | p_int        | p_int32      |
+  +--------------+--------------+
+  | p_uint       | p_uint32     |
+  +--------------+--------------+
+  | p_long       | p_int32      |
+  +--------------+--------------+
+  | p_ulong      | p_uint32     |
+  +--------------+--------------+
+  | p_longlong   | p_int64      |
+  +--------------+--------------+
+  | p_ulonglong  | p_uint64     |
+  +--------------+--------------+
+
+  ``Macholib.ptypes.p_ptr`` is no longer present as it had an unclear
+  definition and isn't actually used in the codebase.
+
+
+Bug fixes:
+
+- The semantics of ``dyld.dyld_default_search`` were changed a bit,
+  it now first searches the framework path (if appropriate) and then
+  the linker path, irrespective of the value of the ``DYLD_FALLBACK*``
+  environment variables.
+
+  Previous versions would change the search order when those variables
+  was set, which is odd and doesn't correspond with the documented
+  behaviour of the system dyld.
+
+- It is once again possible to install using python2.5
+
+- The source distribution includes all files, this was broken
+  due to the switch to mercurial (which confused setuptools)
+
+macholib 1.3
+------------
+
+macholib 1.3 is a feature release.
+
+Features:
+
+- Experimental Python 3.x support
+
+  This version contains lightly tested support for Python 3.
+
+macholib 1.2.2
+--------------
+
+macholib 1.2.2 is a bugfix release.
+
+Bug fixes:
+
+- Macholib should work better with 64-bit code
+  (patch by Marc-Antoine Parent)
new file mode 100644
--- /dev/null
+++ b/python/macholib/doc/conf.py
@@ -0,0 +1,275 @@
+# -*- coding: utf-8 -*-
+#
+# macholib documentation build configuration file, created by
+# sphinx-quickstart on Tue Sep 28 22:23:35 2010.
+#
+# This file is execfile()d with the current directory set to its containing dir.
+#
+# Note that not all possible configuration values are present in this
+# autogenerated file.
+#
+# All configuration values have a default; values that are commented out
+# serve to show the default.
+
+import sys, os
+
+def get_version():
+    fn = os.path.join(
+        os.path.dirname(os.path.dirname(os.path.abspath(__file__))),
+            'setup.cfg')
+    for ln in open(fn):
+        if ln.startswith('version'):
+            version = ln.split('=')[-1].strip()
+            return version
+
+
+# If extensions (or modules to document with autodoc) are in another directory,
+# add these directories to sys.path here. If the directory is relative to the
+# documentation root, use os.path.abspath to make it absolute, like shown here.
+#sys.path.insert(0, os.path.abspath('.'))
+sys.path.insert(0,
+    os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
+
+# -- General configuration -----------------------------------------------------
+
+# If your documentation needs a minimal Sphinx version, state it here.
+#needs_sphinx = '1.0'
+
+# Add any Sphinx extension module names here, as strings. They can be extensions
+# coming with Sphinx (named 'sphinx.ext.*') or your custom ones.
+extensions = ['sphinx.ext.autodoc', 'sphinx.ext.intersphinx']
+
+# Add any paths that contain templates here, relative to this directory.
+templates_path = ['_templates']
+
+# The suffix of source filenames.
+source_suffix = '.rst'
+
+# The encoding of source files.
+#source_encoding = 'utf-8-sig'
+
+# The master toctree document.
+master_doc = 'index'
+
+# General information about the project.
+project = u'macholib'
+copyright = u'2010-2011, Ronald Oussoren'
+
+# The version info for the project you're documenting, acts as replacement for
+# |version| and |release|, also used in various other places throughout the
+# built documents.
+#
+# The short X.Y version.
+version = get_version()
+# The full version, including alpha/beta/rc tags.
+release = version
+
+# The language for content autogenerated by Sphinx. Refer to documentation
+# for a list of supported languages.
+#language = None
+
+# There are two options for replacing |today|: either, you set today to some
+# non-false value, then it is used:
+#today = ''
+# Else, today_fmt is used as the format for a strftime call.
+#today_fmt = '%B %d, %Y'
+
+# List of patterns, relative to source directory, that match files and
+# directories to ignore when looking for source files.
+exclude_patterns = ['_build']
+
+# The reST default role (used for this markup: `text`) to use for all documents.
+#default_role = None
+
+# If true, '()' will be appended to :func: etc. cross-reference text.
+#add_function_parentheses = True
+
+# If true, the current module name will be prepended to all description
+# unit titles (such as .. function::).
+#add_module_names = True
+
+# If true, sectionauthor and moduleauthor directives will be shown in the
+# output. They are ignored by default.
+#show_authors = False
+
+# The name of the Pygments (syntax highlighting) style to use.
+pygments_style = 'sphinx'
+
+# A list of ignored prefixes for module index sorting.
+#modindex_common_prefix = []
+
+
+# -- Options for HTML output ---------------------------------------------------
+
+# The theme to use for HTML and HTML Help pages.  See the documentation for
+# a list of builtin themes.
+html_theme = 'nature'
+
+# Theme options are theme-specific and customize the look and feel of a theme
+# further.  For a list of options available for each theme, see the
+# documentation.
+#html_theme_options = {}
+
+# Add any paths that contain custom themes here, relative to this directory.
+#html_theme_path = []
+
+# The name for this set of Sphinx documents.  If None, it defaults to
+# "<project> v<release> documentation".
+#html_title = None
+
+# A shorter title for the navigation bar.  Default is the same as html_title.
+#html_short_title = None
+
+# The name of an image file (relative to this directory) to place at the top
+# of the sidebar.
+#html_logo = None
+
+# The name of an image file (within the static path) to use as favicon of the
+# docs.  This file should be a Windows icon file (.ico) being 16x16 or 32x32
+# pixels large.
+#html_favicon = None
+
+# Add any paths that contain custom static files (such as style sheets) here,
+# relative to this directory. They are copied after the builtin static files,
+# so a file named "default.css" will overwrite the builtin "default.css".
+html_static_path = ['_static']
+
+# If not '', a 'Last updated on:' timestamp is inserted at every page bottom,
+# using the given strftime format.
+#html_last_updated_fmt = '%b %d, %Y'
+
+# If true, SmartyPants will be used to convert quotes and dashes to
+# typographically correct entities.
+#html_use_smartypants = True
+
+# Custom sidebar templates, maps document names to template names.
+#html_sidebars = {}
+
+# Additional templates that should be rendered to pages, maps page names to
+# template names.
+#html_additional_pages = {}
+
+# If false, no module index is generated.
+#html_domain_indices = True
+
+# If false, no index is generated.
+#html_use_index = True
+
+# If true, the index is split into individual pages for each letter.
+#html_split_index = False
+
+# If true, links to the reST sources are added to the pages.
+#html_show_sourcelink = True
+
+# If true, "Created using Sphinx" is shown in the HTML footer. Default is True.
+#html_show_sphinx = True
+
+# If true, "(C) Copyright ..." is shown in the HTML footer. Default is True.
+#html_show_copyright = True
+
+# If true, an OpenSearch description file will be output, and all pages will
+# contain a <link> tag referring to it.  The value of this option must be the
+# base URL from which the finished HTML is served.
+#html_use_opensearch = ''
+
+# This is the file name suffix for HTML files (e.g. ".xhtml").
+#html_file_suffix = None
+
+# Output file base name for HTML help builder.
+htmlhelp_basename = 'macholibdoc'
+
+
+# -- Options for LaTeX output --------------------------------------------------
+
+# The paper size ('letter' or 'a4').
+#latex_paper_size = 'letter'
+
+# The font size ('10pt', '11pt' or '12pt').
+#latex_font_size = '10pt'
+
+# Grouping the document tree into LaTeX files. List of tuples
+# (source start file, target name, title, author, documentclass [howto/manual]).
+latex_documents = [
+  ('index', 'macholib.tex', u'macholib Documentation',
+   u'Ronald Oussoren', 'manual'),
+]
+
+# The name of an image file (relative to this directory) to place at the top of
+# the title page.
+#latex_logo = None
+
+# For "manual" documents, if this is true, then toplevel headings are parts,
+# not chapters.
+#latex_use_parts = False
+
+# If true, show page references after internal links.
+#latex_show_pagerefs = False
+
+# If true, show URL addresses after external links.
+#latex_show_urls = False
+
+# Additional stuff for the LaTeX preamble.
+#latex_preamble = ''
+
+# Documents to append as an appendix to all manuals.
+#latex_appendices = []
+
+# If false, no module index is generated.
+#latex_domain_indices = True
+
+
+# -- Options for manual page output --------------------------------------------
+
+# One entry per manual page. List of tuples
+# (source start file, name, description, authors, manual section).
+man_pages = [
+    ('index', 'macholib', u'macholib Documentation',
+     [u'Ronald Oussoren'], 1)
+]
+
+
+# -- Options for Epub output ---------------------------------------------------
+
+# Bibliographic Dublin Core info.
+epub_title = u'macholib'
+epub_author = u'Ronald Oussoren'
+epub_publisher = u'Ronald Oussoren'
+epub_copyright = u'2010, Ronald Oussoren'
+
+# The language of the text. It defaults to the language option
+# or en if the language is not set.
+#epub_language = ''
+
+# The scheme of the identifier. Typical schemes are ISBN or URL.
+#epub_scheme = ''
+
+# The unique identifier of the text. This can be a ISBN number
+# or the project homepage.
+#epub_identifier = ''
+
+# A unique identification for the text.
+#epub_uid = ''
+
+# HTML files that should be inserted before the pages created by sphinx.
+# The format is a list of tuples containing the path and title.
+#epub_pre_files = []
+
+# HTML files shat should be inserted after the pages created by sphinx.
+# The format is a list of tuples containing the path and title.
+#epub_post_files = []
+
+# A list of files that should not be packed into the epub file.
+#epub_exclude_files = []
+
+# The depth of the table of contents in toc.ncx.
+#epub_tocdepth = 3
+
+# Allow duplicate toc entries.
+#epub_tocdup = True
+
+
+# Example configuration for intersphinx: refer to the Python standard library.
+intersphinx_mapping = {
+        'python': ('http://docs.python.org/', None),
+        'altgraph': ('http://packages.python.org/altgraph', None),
+}
new file mode 100644
--- /dev/null
+++ b/python/macholib/doc/dyld.rst
@@ -0,0 +1,159 @@
+:mod:`macholib.dyld` --- Dyld emulation
+=======================================
+
+.. module:: macholib.dyld
+   :synopsis: Emulation of functonality of the dynamic linker
+
+This module defines a number of functions that can be used
+to emulate the functionality of the dynamic linker (``dyld``)
+w.r.t. looking for library files and framworks.
+
+.. function:: dyld_image_suffix([env])
+
+   Looks up the suffix to append to shared library and
+   framework names and returns this value when found.
+   Returns ``None`` when no suffix should be appended.
+
+   The *env* argument is a dictionary, which defaults
+   to :data:`os.environ`.
+
+   See the description of ``DYLD_IMAGE_SUFFIX`` in the
+   manual page for dyld(1) for more information.
+
+.. function:: dydl_framework_path([env])
+
+   Returns a user-specified framework search path,
+   or an empty list when only the default search path
+   should be used.
+
+   The *env* argument is a dictionary, which defaults
+   to :data:`os.environ`.
+
+   See the description of ``DYLD_FRAMEWORK_PATH`` in the
+   manual page for dyld(1) for more information.
+
+.. function:: dyld_library_path([env])
+
+   Returns a user-specified library search path,
+   or an empty list when only the default search path
+   should be used.
+
+   The *env* argument is a dictionary, which defaults
+   to :data:`os.environ`.
+
+   See the description of ``DYLD_LIBRARY_PATH`` in the
+   manual page for dyld(1) for more information.
+
+.. function:: dyld_fallback_framework_path([env])
+
+   Return a user specified list of of directories where
+   to look for frameworks that aren't in their install path,
+   or an empty list when the default fallback path should
+   be  used.
+
+   The *env* argument is a dictionary, which defaults
+   to :data:`os.environ`.
+
+   See the description of ``DYLD_FALLBACK_FRAMEWORK_PATH`` in the
+   manual page for dyld(1) for more information.
+
+.. function:: dyld_fallback_library_path([env])
+
+   Return a user specified list of of directories where
+   to look for libraries that aren't in their install path,
+   or an empty list when the default fallback path should
+   be  used.
+
+   The *env* argument is a dictionary, which defaults
+   to :data:`os.environ`.
+
+   See the description of ``DYLD_FALLBACK_LIBRARY_PATH`` in the
+   manual page for dyld(1) for more information.
+
+.. function:: dyld_image_suffix_search(iterator[, env])
+
+   Yields all items in *iterator*, and prepents names
+   with the image suffix to those items when the suffix
+   is specified.
+
+   The *env* argument is a dictionary, which defaults
+   to :data:`os.environ`.
+
+.. function:: dyld_override_search(name[, env])
+
+   If *name* is a framework name yield filesystem
+   paths relative to the entries in the framework
+   search path.
+
+   Always yield the filesystem paths relative to the
+   entries in the library search path.
+
+   The *env* argument is a dictionary, which defaults
+   to :data:`os.environ`.
+
+.. function:: dyld_executable_path_search(name, executable_path)
+
+   If *name* is a path starting with ``@executable_path/`` yield
+   the path relative to the specified *executable_path*.
+
+   If *executable_path* is None nothing is yielded.
+
+.. function:: dyld_loader_search(name, loader_path)
+
+   If *name* is a path starting with ``@loader_path/`` yield
+   the path relative to the specified *loader_path*.
+
+   If *loader_path* is None nothing is yielded.
+
+   .. versionadded: 1.6
+
+.. function:: dyld_default_search(name[, env])
+
+   Yield the filesystem locations to look for a dynamic
+   library or framework using the default locations
+   used by the system dynamic linker.
+
+   This function will look in ``~/Library/Frameworks``
+   for frameworks, even though the system dynamic linker
+   doesn't.
+
+   The *env* argument is a dictionary, which defaults
+   to :data:`os.environ`.
+
+.. function:: dyld_find(name[, executable_path[, env [, loader]]])
+
+   Returns the path of the requested dynamic library,
+   raises :exc:`ValueError` when the library cannot be found.
+
+   This function searches for the library in the same
+   locations and de system dynamic linker.
+
+   The *executable_path* should be the filesystem path
+   of the executable to which the library is linked (either
+   directly or indirectly).
+
+   The *env* argument is a dictionary, which defaults
+   to :data:`os.environ`.
+
+   The *loader_path* argument is an optional filesystem path for
+   the object file (binary of shared library) that references
+   *name*.
+
+   .. versionchanged:: 1.6
+
+      Added the *loader_path* argument.
+
+.. function:: framework_find(fn[, executable_path[, env]])
+
+   Find a framework using the same semantics as the
+   system dynamic linker, but will accept looser names
+   than the system linker.
+
+   This function will return a correct result for input
+   values like:
+
+   * Python
+
+   * Python.framework
+
+   * Python.framework/Versions/Current
new file mode 100644
--- /dev/null
+++ b/python/macholib/doc/dylib.rst
@@ -0,0 +1,33 @@
+:mod:`macholib.dylib` --- Generic dylib path manipulation
+=========================================================
+
+.. module:: macholib.dylib
+   :synopsis: Generic dylib path manipulation
+
+This module defines a function :func:`dylib_info` that can extract
+useful information from the name of a dynamic library.
+
+.. function:: dylib_info(filename)
+
+   A dylib name can take one of the following four forms:
+
+   * ``Location/Name.SomeVersion_Suffix.dylib``
+
+   * ``Location/Name.SomeVersion.dylib``
+
+   * ``Location/Name_Suffix.dylib``
+
+   * ``Location/Name.dylib``
+
+   Returns None if not found or a mapping equivalent to::
+   
+     dict(
+         location='Location',
+         name='Name.SomeVersion_Suffix.dylib',
+         shortname='Name',
+         version='SomeVersion',
+         suffix='Suffix',
+     )
+
+   .. note:: *SomeVersion* and *Suffix* are optional and my be ``None``
+      if not present.
new file mode 100644
--- /dev/null
+++ b/python/macholib/doc/framework.rst
@@ -0,0 +1,34 @@
+:mod:`macholib.framework` --- Generic framework path manipulation
+==========================================================================
+
+.. module:: macholib.framework
+   :synopsis: Generic framework path manipulation
+
+
+This module defines a function :func:`framework_info` that can extract
+useful information from the name of a dynamic library in a framework.
+
+.. function:: framework_info(filename)
+
+   A framework name can take one of the following four forms:
+
+   * ``Location/Name.framework/Versions/SomeVersion/Name_Suffix``
+
+   * ``Location/Name.framework/Versions/SomeVersion/Name``
+
+   * ``Location/Name.framework/Name_Suffix``
+
+   * ``Location/Name.framework/Name``
+
+   Returns ``None`` if not found, or a mapping equivalent to::
+
+      dict(
+          location='Location',
+          name='Name.framework/Versions/SomeVersion/Name_Suffix',
+          shortname='Name',
+          version='SomeVersion',
+          suffix='Suffix',
+      )
+
+  .. note:: *SomeVersion* and *Suffix* are optional and may be None
+     if not present.
new file mode 100644
--- /dev/null
+++ b/python/macholib/doc/index.rst
@@ -0,0 +1,59 @@
+Macholib - Analyze and edit Mach-O headers
+==========================================
+
+macholib can be used to analyze and edit Mach-O headers, the executable
+format used by Mac OS X.
+
+It's typically used as a dependency analysis tool, and also to rewrite dylib
+references in Mach-O headers to be ``@executable_path`` relative.
+
+Though this tool targets a platform specific file format, it is pure python
+code that is platform and endian independent.
+
+General documentation
+---------------------
+
+.. toctree::
+   :maxdepth: 1
+
+   changelog
+   license
+   scripts
+
+Reference Guide
+---------------
+
+.. toctree::
+   :maxdepth: 1
+
+   MachO
+   MachoOGraph
+   MachoOStandalone
+   SymbolTable
+   dyld
+   dylib
+   framework
+   macho_o
+   ptypes
+
+Online Resources
+----------------
+
+* `Sourcecode repository on bitbucket <http://bitbucket.org/ronaldoussoren/macholib/>`_
+
+* `The issue tracker <http://bitbucket.org/ronaldoussoren/macholib/issues>`_
+
+* `Mac OS X ABI Mach-O File Format Reference at Apple <http://developer.apple.com/library/mac/#documentation/DeveloperTools/Conceptual/MachORuntime/Reference/reference.html>`_
+
+Contributors
+------------
+
+Macholib was written by Bob Ippolito and is currently maintained by Ronald Oussoren <ronaldoussoren@mac.com>.
+
+Indices and tables
+------------------
+
+* :ref:`genindex`
+* :ref:`modindex`
+* :ref:`search`
+
new file mode 100644
--- /dev/null
+++ b/python/macholib/doc/license.rst
@@ -0,0 +1,23 @@
+License
+=======
+
+Copyright (c) Bob Ippolito
+
+Parts are copyright (c) 2010-2014 Ronald Oussoren
+
+MIT License
+...........
+
+Permission is hereby granted, free of charge, to any person obtaining a copy of this software
+and associated documentation files (the "Software"), to deal in the Software without restriction,
+including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense,
+and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do
+so.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
+INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
+PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE
+FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
+
new file mode 100644
--- /dev/null
+++ b/python/macholib/doc/macho_o.rst
@@ -0,0 +1,13 @@
+:mod:`macholib.mach_o` --- Low-level definitions
+================================================
+
+.. module:: macholib.mach_o
+   :synopsis: Low-level definitions of elements in a Mach-O file
+
+This module defines constants and packable structure types
+that correspond to elements of a Mach-O file.
+
+The names of classes and constants is the same as those in
+the Mach-O header files and 
+`Apple's documentation <http://developer.apple.com/library/mac/#documentation/DeveloperTools/Conceptual/MachORuntime/Reference/reference.html>`_. This document therefore
+doesn't explictly document the names in this module.
new file mode 100644
--- /dev/null
+++ b/python/macholib/doc/ptypes.rst
@@ -0,0 +1,157 @@
+:mod:`macholib.ptypes` --- Packable types
+=========================================
+
+.. module:: macholib.ptypes
+   :synopsis: Serializable types
+
+The module :mod:`macholib.ptypes` defines types that can be serialized into
+byte arrays, both for basic types and structured types (C ``struct`` values).
+
+Utility functions
+-----------------
+
+.. function:: sizeof(value)
+
+   Returns the size in bytes of an object when packed, raises :exc:`ValueError`
+   for inappropriate values.
+
+.. function:: pypackable(name, pytype, format)
+
+   Returns a packable type that is a subclass of the Python type
+   *pytype*. The value is converted to and from the packed format using
+   the struct *format*.
+
+
+
+Packable types
+--------------
+
+
+.. class:: BasePackable
+
+   All packable types are a subclass of :class:`BasePackable`, which defines
+   the basic interface but is itself an abstract base class.
+
+   .. data:: _endian_
+
+      The byteorder of a packed value. This will be ``"<"` for 
+      little endian values and ``">"`` for big-endian ones.
+
+      .. note:: the endianness option is a public value to be
+         able to support both big- and little-endian file formats.
+
+         The name suggests that this attribute is private, this
+         is partically for historical reasons and partially to
+         avoid conflicts with field names in C structs.
+
+   .. method:: from_mmap(mmap, ptr, \**kw)
+
+      This class method constructs the value from a subview of a 
+      :class:`mmap.mmap` object. It uses bytes starting at offset *ptr* and 
+      reads just enough bytes to read the entire object.
+
+   .. method:: from_fileobj(fp, \**kw)
+
+      This class method constructs the value by reading just enough bytes
+      from a file-like object.
+
+      .. note:: The file must be opened in binary mode, that is read calls
+         should return byte-strings and not unicode-strings.
+
+   .. method:: from_str(value, \**kw)
+
+      This class method construct the value by using the struct module
+      to parse the given bytes.
+
+      .. note:: contrary to what the name suggests the argument to this
+         method is a byte-string, not a unicode-string.
+
+   .. method:: from_tuple(fp, \**kw)
+
+      This class method constructs the object from a tuple with all fields.
+
+
+   .. method:: to_str()
+
+      Returns a byte representation of the value. 
+
+      .. note:: there is no default implementation for this method
+
+   .. method:: to_fileobj(fp)
+
+      Write a byte representation of the value to the given file-like
+      object. The file should be opened in binary mode.
+
+   .. method:: to_mmap(mmap, ptr)
+
+      Write the byte representation of the value to a :class:`mmap.mmap` 
+      object, starting at offset *ptr*.
+
+
+.. class:: Structure(...)
+
+   .. data:: _fields_
+
+      This class attribute is a list that contains the fields of the 
+      structure in the right order. Every item of this list is a tuple 
+      with 2 arguments: the first element is the name of the field, and 
+      the second the packable type for the field.
+
+      Every subclass of :class:`Structure` must define *_fields_* to be
+      usefull, and the value of *_fields_* should not be changed after
+      class construction.
+
+
+Basic packables
+---------------
+
+Other than the core functionality this module defines a number of 
+:func:`pypackable` types that correspond to useful basic C types.
+
+.. class:: p_char([value])
+
+   A byte string of length 1
+
+.. class:: p_int8
+
+   An 8-bit signed integer
+
+.. class:: p_uint8
+
+   An 8-bit unsigned integer
+
+.. class:: p_int16
+
+   An 16-bit signed integer
+
+.. class:: p_uint16
+
+   An 16-bit unsigned integer
+
+.. class:: p_int32
+
+   An 32-bit signed integer
+
+.. class:: p_uint32
+
+   An 32-bit unsigned integer
+
+.. class:: p_int64
+
+   An 64-bit signed integer
+
+.. class:: p_uint64
+
+   An 64-bit unsigned integer
+
+.. class:: p_float
+
+   An floating point value of type ``float``
+
+.. class:: p_double
+
+   An floating point value of type ``double``
+
+.. note:: the module exports a number of other types with
+   names starting with ``p_``, such as ``p_int``. Those types
+   are deprecated and should not be used.
new file mode 100644
--- /dev/null
+++ b/python/macholib/doc/scripts.rst
@@ -0,0 +1,35 @@
+Command-line tools
+==================
+
+python -m macholib find
+-----------------------
+
+Usage::
+
+        $ python -mmacholib find dir...
+
+Print the paths of all MachO binaries
+in the specified directories.
+
+python -m macholib standalone
+-----------------------------
+
+Usage::
+
+        $ python -m macholib standalone appbundle...
+
+Convert one or more application bundles into 
+standalone bundles. That is, copy all non-system
+shared libraries and frameworks used by the bundle
+into the bundle and rewrite load commands.
+
+python -mmacholib dump
+----------------------
+
+Usage::
+        
+        $ python -mmacholib dump dir...
+
+Prints information about all architectures in a 
+Mach-O file as well as all libraries it links 
+to.
new file mode 100644
--- /dev/null
+++ b/python/macholib/macholib.egg-info/PKG-INFO
@@ -0,0 +1,275 @@
+Metadata-Version: 1.1
+Name: macholib
+Version: 1.7
+Summary: Mach-O header analysis and editing
+Home-page: http://bitbucket.org/ronaldoussoren/macholib
+Author: Ronald Oussoren
+Author-email: ronaldoussoren@mac.com
+License: MIT
+Download-URL: http://pypi.python.org/pypi/macholib
+Description: macholib can be used to analyze and edit Mach-O headers, the executable
+        format used by Mac OS X.
+        
+        It's typically used as a dependency analysis tool, and also to rewrite dylib
+        references in Mach-O headers to be @executable_path relative.
+        
+        Though this tool targets a platform specific file format, it is pure python
+        code that is platform and endian independent.
+        
+        
+        Release history
+        ===============
+        
+        macholib 1.7
+        ------------
+        
+        * Added support for ARM64, LC_ENCRYPTION_INFO_64 and LC_LINKER_OPTION
+        
+          Patch by Matthias Ringwald.
+        
+        * Load commands now have a "describe" method that returns more information
+          about the command.
+        
+          Patch by David Dorsey.
+        
+        * The MAGIC value in the header was always represented in the native
+          byte order, instead of as the value read from the binary.
+        
+          Patch by David Dorsey.
+        
+        * Added various new constants to "macholib.mach_o".
+        
+          Patch by David Dorsey.
+        
+        macholib 1.6.1
+        --------------
+        
+        * ?
+        
+        macholib 1.6
+        ------------
+        
+        * Add support for '@loader_path' link command in
+          macholib.dyld:
+        
+          - Added function ``macholib.dyld.dyld_loader_search``
+        
+          - This function is used by ``macholib.dyld.dyld_find``,
+            and that function now has an new (optional) argument
+            with the path to the loader.
+        
+        * Also add support for '@loader_path' to macholib.MachoGraph,
+          using the newly added '@loader_path' support in the
+          dyld module.
+        
+          Due to this suppport the *macho_standalone* tool can
+          now rewrite binaries that contain an '@loader_path' load
+          command.
+        
+        
+        macholib 1.5.2
+        --------------
+        
+        * Issue #93: Show the name of the affected file in the exception message
+          for Mach-O headers that are too large to relocate.
+        
+        
+        macholib 1.5.1
+        --------------
+        
+        * There were no 'classifiers' in the package metadata due to
+          a bug in setup.py.
+        
+        macholib 1.5
+        --------------
+        
+        macholib 1.5 is a minor feature release
+        
+        * No longer use 2to3 to provide Python 3 support
+        
+          As a side-effect of this macholib no longer supports
+          Python 2.5 and earlier.
+        
+        * Adds suppport for some new macho load commands
+        
+        * Fix for py3k problem in macho_standalone.py
+        
+          Patch by Guanqun Lu.
+        
+        * Fix for some issues in macho_dump.py
+        
+          Patch by Nam Nguyen
+        
+        * Issue #10: Fix for LC_DATA_IN_CODE linker commands, without
+          this fix py2app cannot build application bundles when
+          the source binaries have been compiled with Xcode 4.5.
+        
+        * Issue #6: Fix for LC_ENCRYPTION_INFO linker commands
+        
+        * Use the mach header information to print the cpu type of a
+          binary, instead of trying to deduce that from pointer width
+          and endianness.
+        
+          Changed the code because of issue #6, in which a user tries to
+          dump a iOS binary which results in bogus output in the previous
+          releases.
+        
+        * The mapping ``macholib.macho_dump.ARCH_MAP`` is undocumented
+          and no longer used by macholib itself. It will be removed
+          in the next release.
+        
+        
+        * The command-line tools ``macho_find``, ``macho_dump`` and
+          ``macho_standalone`` are deprecated. Use "python -mmacholib"
+          instead. That is::
+        
+           $ python -mmacholib dump /usr/bin/grep
+        
+           $ python -mmacholib find ~
+        
+           $ python -mmacholib standalone myapp.app
+        
+          This makes it clearer which version of the tools are used.
+        
+        macholib 1.4.3
+        --------------
+        
+        macholib 1.4.3 is a minor feature release
+        
+        * Added strings for 'x86_64' and 'ppc64' to
+          macholib.mach_o.CPU_TYPE_NAMES.
+        
+        * macho_find and macho_dump were broken in the 1.4.2 release
+        
+        * added 'macholib.util.NOT_SYSTEM_FILES', a list of
+          files that aren't system path's even though they are
+          located in system locations.
+        
+          Needed to work around a bug in PySide (see issue #32 in the
+          py2app tracker)
+        
+        
+        
+        macholib 1.4.2
+        --------------
+        
+        macholib 1.4.2 is a minor bugfix release
+        
+        * The support for new load commands that was added in 1.4.1
+          contained a typo that caused problems on OSX 10.7 (Lion).
+        
+        macholib 1.4.1
+        --------------
+        
+        macholib 1.4.1 is a minor feature release
+        
+        Features:
+        
+        - Add support for a number of new MachO load commands that were added
+          during the lifetime of OSX 10.6: ``LC_LOAD_UPWARD_DYLIB``,
+          ``LC_VERSION_MIN_MACOSX``, ``LC_VERSION_MIN_IPHONEOS`` and
+          ``LC_FUNCTION_STARTS``.
+        
+        macholib 1.4
+        -------------
+        
+        macholib 1.4 is a feature release
+        
+        Features:
+        
+        - Documentation is now generated using `sphinx <http://pypi.python.org/pypi/sphinx>`_
+          and can be viewed at <http://packages.python.org/macholib>.
+        
+        - The repository has moved to bitbucket
+        
+        - There now is a testsuite
+        
+        - Private functionality inside modules was renamed to
+          a name starting with an underscore.
+        
+          .. note:: if this change affects your code you are relying on undefined
+             implementation features, please stop using private functions.
+        
+        - The basic packable types in ``macholib.ptypes`` were renamed to better
+          represent the corresponding C type. The table below lists the old
+          an new names (the old names are still available, but are deprecated and
+          will be removed in a future release).
+        
+          +--------------+--------------+
+          | **Old name** | **New name** |
+          +==============+==============+
+          | p_byte       | p_int8       |
+          +--------------+--------------+
+          | p_ubyte      | p_uint8      |
+          +--------------+--------------+
+          | p_short      | p_int16      |
+          +--------------+--------------+
+          | p_ushort     | p_uint16     |
+          +--------------+--------------+
+          | p_int        | p_int32      |
+          +--------------+--------------+
+          | p_uint       | p_uint32     |
+          +--------------+--------------+
+          | p_long       | p_int32      |
+          +--------------+--------------+
+          | p_ulong      | p_uint32     |
+          +--------------+--------------+
+          | p_longlong   | p_int64      |
+          +--------------+--------------+
+          | p_ulonglong  | p_uint64     |
+          +--------------+--------------+
+        
+          ``Macholib.ptypes.p_ptr`` is no longer present as it had an unclear
+          definition and isn't actually used in the codebase.
+        
+        
+        Bug fixes:
+        
+        - The semantics of ``dyld.dyld_default_search`` were changed a bit,
+          it now first searches the framework path (if appropriate) and then
+          the linker path, irrespective of the value of the ``DYLD_FALLBACK*``
+          environment variables.
+        
+          Previous versions would change the search order when those variables
+          was set, which is odd and doesn't correspond with the documented
+          behaviour of the system dyld.
+        
+        - It is once again possible to install using python2.5
+        
+        - The source distribution includes all files, this was broken
+          due to the switch to mercurial (which confused setuptools)
+        
+        macholib 1.3
+        ------------
+        
+        macholib 1.3 is a feature release.
+        
+        Features:
+        
+        - Experimental Python 3.x support
+        
+          This version contains lightly tested support for Python 3.
+        
+        macholib 1.2.2
+        --------------
+        
+        macholib 1.2.2 is a bugfix release.
+        
+        Bug fixes:
+        
+        - Macholib should work better with 64-bit code
+          (patch by Marc-Antoine Parent)
+        
+Keywords: Mach-O,,dyld
+Platform: any
+Classifier: Intended Audience :: Developers
+Classifier: License :: OSI Approved :: MIT License
+Classifier: Programming Language :: Python
+Classifier: Programming Language :: Python :: 2
+Classifier: Programming Language :: Python :: 2.7
+Classifier: Programming Language :: Python :: 3
+Classifier: Programming Language :: Python :: 3.3
+Classifier: Programming Language :: Python :: 3.4
+Classifier: Operating System :: MacOS :: MacOS X
+Classifier: Topic :: Software Development :: Libraries :: Python Modules
+Classifier: Topic :: Software Development :: Build Tools
new file mode 100644
--- /dev/null
+++ b/python/macholib/macholib.egg-info/SOURCES.txt
@@ -0,0 +1,121 @@
+MANIFEST.in
+README.txt
+setup.cfg
+setup.py
+doc/MachO.rst
+doc/MachoOGraph.rst
+doc/MachoOStandalone.rst
+doc/Makefile
+doc/SymbolTable.rst
+doc/changelog.rst
+doc/conf.py
+doc/dyld.rst
+doc/dylib.rst
+doc/framework.rst
+doc/index.rst
+doc/license.rst
+doc/macho_o.rst
+doc/ptypes.rst
+doc/scripts.rst
+doc/_build/doctrees/MachO.doctree
+doc/_build/doctrees/MachoOGraph.doctree
+doc/_build/doctrees/MachoOStandalone.doctree
+doc/_build/doctrees/SymbolTable.doctree
+doc/_build/doctrees/changelog.doctree
+doc/_build/doctrees/dyld.doctree
+doc/_build/doctrees/dylib.doctree
+doc/_build/doctrees/environment.pickle
+doc/_build/doctrees/framework.doctree
+doc/_build/doctrees/index.doctree
+doc/_build/doctrees/license.doctree
+doc/_build/doctrees/macho_o.doctree
+doc/_build/doctrees/ptypes.doctree
+doc/_build/doctrees/scripts.doctree
+doc/_build/html/.buildinfo
+doc/_build/html/MachO.html
+doc/_build/html/MachoOGraph.html
+doc/_build/html/MachoOStandalone.html
+doc/_build/html/SymbolTable.html
+doc/_build/html/changelog.html
+doc/_build/html/dyld.html
+doc/_build/html/dylib.html
+doc/_build/html/framework.html
+doc/_build/html/genindex.html
+doc/_build/html/index.html
+doc/_build/html/license.html
+doc/_build/html/macho_o.html
+doc/_build/html/objects.inv
+doc/_build/html/ptypes.html
+doc/_build/html/py-modindex.html
+doc/_build/html/scripts.html
+doc/_build/html/search.html
+doc/_build/html/searchindex.js
+doc/_build/html/_sources/MachO.txt
+doc/_build/html/_sources/MachoOGraph.txt
+doc/_build/html/_sources/MachoOStandalone.txt
+doc/_build/html/_sources/SymbolTable.txt
+doc/_build/html/_sources/changelog.txt
+doc/_build/html/_sources/dyld.txt
+doc/_build/html/_sources/dylib.txt
+doc/_build/html/_sources/framework.txt
+doc/_build/html/_sources/index.txt
+doc/_build/html/_sources/license.txt
+doc/_build/html/_sources/macho_o.txt
+doc/_build/html/_sources/ptypes.txt
+doc/_build/html/_sources/scripts.txt
+doc/_build/html/_static/ajax-loader.gif
+doc/_build/html/_static/basic.css
+doc/_build/html/_static/comment-bright.png
+doc/_build/html/_static/comment-close.png
+doc/_build/html/_static/comment.png
+doc/_build/html/_static/doctools.js
+doc/_build/html/_static/down-pressed.png
+doc/_build/html/_static/down.png
+doc/_build/html/_static/file.png
+doc/_build/html/_static/jquery.js
+doc/_build/html/_static/minus.png
+doc/_build/html/_static/nature.css
+doc/_build/html/_static/plus.png
+doc/_build/html/_static/pygments.css
+doc/_build/html/_static/searchtools.js
+doc/_build/html/_static/underscore.js
+doc/_build/html/_static/up-pressed.png
+doc/_build/html/_static/up.png
+doc/_build/html/_static/websupport.js
+macholib/MachO.py
+macholib/MachOGraph.py
+macholib/MachOStandalone.py
+macholib/SymbolTable.py
+macholib/__init__.py
+macholib/__main__.py
+macholib/_cmdline.py
+macholib/dyld.py
+macholib/dylib.py
+macholib/framework.py
+macholib/itergraphreport.py
+macholib/mach_o.py
+macholib/macho_dump.py
+macholib/macho_find.py
+macholib/macho_standalone.py
+macholib/ptypes.py
+macholib/util.py
+macholib.egg-info/PKG-INFO
+macholib.egg-info/SOURCES.txt
+macholib.egg-info/dependency_links.txt
+macholib.egg-info/entry_points.txt
+macholib.egg-info/requires.txt
+macholib.egg-info/top_level.txt
+macholib.egg-info/zip-safe
+macholib_tests/__init__.py
+macholib_tests/test_MachO.py
+macholib_tests/test_MachOGraph.py
+macholib_tests/test_MachOStandalone.py
+macholib_tests/test_SymbolTable.py
+macholib_tests/test_command_line.py
+macholib_tests/test_dyld.py
+macholib_tests/test_dylib.py
+macholib_tests/test_framework.py
+macholib_tests/test_itergraphreport.py
+macholib_tests/test_mach_o.py
+macholib_tests/test_ptypes.py
+macholib_tests/binaries/src/build.py
\ No newline at end of file
new file mode 100644
--- /dev/null
+++ b/python/macholib/macholib.egg-info/dependency_links.txt
@@ -0,0 +1,1 @@
+
new file mode 100644
--- /dev/null
+++ b/python/macholib/macholib.egg-info/entry_points.txt
@@ -0,0 +1,5 @@
+[console_scripts]
+macho_standalone = macholib.macho_standalone:main
+macho_dump = macholib.macho_dump:main
+macho_find = macholib.macho_find:main
+
new file mode 100644
--- /dev/null
+++ b/python/macholib/macholib.egg-info/requires.txt
@@ -0,0 +1,1 @@
+altgraph >=0.12
\ No newline at end of file
new file mode 100644
--- /dev/null
+++ b/python/macholib/macholib.egg-info/top_level.txt
@@ -0,0 +1,1 @@
+macholib
new file mode 100644
--- /dev/null
+++ b/python/macholib/macholib.egg-info/zip-safe
@@ -0,0 +1,1 @@
+
new file mode 100644
--- /dev/null
+++ b/python/macholib/macholib/MachO.py
@@ -0,0 +1,398 @@
+"""
+Utilities for reading and writing Mach-O headers
+"""
+from __future__ import print_function
+
+import sys
+import struct
+
+from macholib.mach_o import *
+from macholib.dyld import dyld_find, framework_info
+from macholib.util import fileview
+try:
+    from macholib.compat import bytes
+except ImportError:
+    pass
+
+try:
+    unicode
+except NameError:
+    unicode = str
+
+__all__ = ['MachO']
+
+_RELOCATABLE = set((
+    # relocatable commands that should be used for dependency walking
+    LC_LOAD_DYLIB,
+    LC_LOAD_WEAK_DYLIB,
+    LC_PREBOUND_DYLIB,
+    LC_REEXPORT_DYLIB,
+))
+
+_RELOCATABLE_NAMES = {
+    LC_LOAD_DYLIB: 'load_dylib',
+    LC_LOAD_WEAK_DYLIB: 'load_weak_dylib',
+    LC_PREBOUND_DYLIB: 'prebound_dylib',
+    LC_REEXPORT_DYLIB: 'reexport_dylib',
+}
+
+def _shouldRelocateCommand(cmd):
+    """
+    Should this command id be investigated for relocation?
+    """
+    return cmd in _RELOCATABLE
+
+class MachO(object):
+    """
+    Provides reading/writing the Mach-O header of a specific existing file
+    """
+    #   filename   - the original filename of this mach-o
+    #   sizediff   - the current deviation from the initial mach-o size
+    #   header     - the mach-o header
+    #   commands   - a list of (load_command, somecommand, data)
+    #                data is either a str, or a list of segment structures
+    #   total_size - the current mach-o header size (including header)
+    #   low_offset - essentially, the maximum mach-o header size
+    #   id_cmd     - the index of my id command, or None
+
+
+    def __init__(self, filename):
+
+        # supports the ObjectGraph protocol
+        self.graphident = filename
+        self.filename = filename
+
+        # initialized by load
+        self.fat = None
+        self.headers = []
+        with open(filename, 'rb') as fp:
+            self.load(fp)
+
+    def __repr__(self):
+        return "<MachO filename=%r>" % (self.filename,)
+
+    def load(self, fh):
+        assert fh.tell() == 0
+        header = struct.unpack('>I', fh.read(4))[0]
+        fh.seek(0)
+        if header == FAT_MAGIC:
+            self.load_fat(fh)
+        else:
+            fh.seek(0, 2)
+            size = fh.tell()
+            fh.seek(0)
+            self.load_header(fh, 0, size)
+
+    def load_fat(self, fh):
+        self.fat = fat_header.from_fileobj(fh)
+        archs = [fat_arch.from_fileobj(fh) for i in range(self.fat.nfat_arch)]
+        for arch in archs:
+            self.load_header(fh, arch.offset, arch.size)
+
+    def rewriteLoadCommands(self, *args, **kw):
+        changed = False
+        for header in self.headers:
+            if header.rewriteLoadCommands(*args, **kw):
+                changed = True
+        return changed
+
+    def load_header(self, fh, offset, size):
+        fh.seek(offset)
+        header = struct.unpack('>I', fh.read(4))[0]
+        fh.seek(offset)
+        if header == MH_MAGIC:
+            magic, hdr, endian = MH_MAGIC, mach_header, '>'
+        elif header == MH_CIGAM:
+            magic, hdr, endian = MH_CIGAM, mach_header, '<'
+        elif header == MH_MAGIC_64:
+            magic, hdr, endian = MH_MAGIC_64, mach_header_64, '>'
+        elif header == MH_CIGAM_64:
+            magic, hdr, endian = MH_CIGAM_64, mach_header_64, '<'
+        else:
+            raise ValueError("Unknown Mach-O header: 0x%08x in %r" % (
+                header, fh))
+        hdr = MachOHeader(self, fh, offset, size, magic, hdr, endian)
+        self.headers.append(hdr)
+
+    def write(self, f):
+        for header in self.headers:
+            header.write(f)
+
+class MachOHeader(object):
+    """
+    Provides reading/writing the Mach-O header of a specific existing file
+    """
+    #   filename   - the original filename of this mach-o
+    #   sizediff   - the current deviation from the initial mach-o size
+    #   header     - the mach-o header
+    #   commands   - a list of (load_command, somecommand, data)
+    #                data is either a str, or a list of segment structures
+    #   total_size - the current mach-o header size (including header)
+    #   low_offset - essentially, the maximum mach-o header size
+    #   id_cmd     - the index of my id command, or None
+
+
+    def __init__(self, parent, fh, offset, size, magic, hdr, endian):
+        self.MH_MAGIC = magic
+        self.mach_header = hdr
+
+        # These are all initialized by self.load()
+        self.parent = parent
+        self.offset = offset
+        self.size = size
+
+        self.endian = endian
+        self.header = None
+        self.commands = None
+        self.id_cmd = None
+        self.sizediff = None
+        self.total_size = None
+        self.low_offset = None
+        self.filetype = None
+        self.headers = []
+
+        self.load(fh)
+
+    def __repr__(self):
+        return "<%s filename=%r offset=%d size=%d endian=%r>" % (
+            type(self).__name__, self.parent.filename, self.offset, self.size,
+            self.endian)
+
+    def load(self, fh):
+        fh = fileview(fh, self.offset, self.size)
+        fh.seek(0)
+
+        self.sizediff = 0
+        kw = {'_endian_': self.endian}
+        header = self.mach_header.from_fileobj(fh, **kw)
+        self.header = header
+        #if header.magic != self.MH_MAGIC:
+        #    raise ValueError("header has magic %08x, expecting %08x" % (
+        #        header.magic, self.MH_MAGIC))
+
+        cmd = self.commands = []
+
+        self.filetype = self.get_filetype_shortname(header.filetype)
+
+        read_bytes = 0
+        low_offset = sys.maxsize
+        for i in range(header.ncmds):
+            # read the load command
+            cmd_load = load_command.from_fileobj(fh, **kw)
+
+            # read the specific command
+            klass = LC_REGISTRY.get(cmd_load.cmd, None)
+            if klass is None:
+                raise ValueError("Unknown load command: %d" % (cmd_load.cmd,))
+            cmd_cmd = klass.from_fileobj(fh, **kw)
+
+            if cmd_load.cmd == LC_ID_DYLIB:
+                # remember where this command was
+                if self.id_cmd is not None:
+                    raise ValueError("This dylib already has an id")
+                self.id_cmd = i
+
+            if cmd_load.cmd in (LC_SEGMENT, LC_SEGMENT_64):
+                # for segment commands, read the list of segments
+                segs = []
+                # assert that the size makes sense
+                if cmd_load.cmd == LC_SEGMENT:
+                    section_cls = section
+                else: # LC_SEGMENT_64
+                    section_cls = section_64
+
+                expected_size = (
+                    sizeof(klass) + sizeof(load_command) +
+                    (sizeof(section_cls) * cmd_cmd.nsects)
+                )
+                if cmd_load.cmdsize != expected_size:
+                    raise ValueError("Segment size mismatch")
+                # this is a zero block or something
+                # so the beginning is wherever the fileoff of this command is
+                if cmd_cmd.nsects == 0:
+                    if cmd_cmd.filesize != 0:
+                        low_offset = min(low_offset, cmd_cmd.fileoff)
+                else:
+                    # this one has multiple segments
+                    for j in range(cmd_cmd.nsects):
+                        # read the segment
+                        seg = section_cls.from_fileobj(fh, **kw)
+                        # if the segment has a size and is not zero filled
+                        # then its beginning is the offset of this segment
+                        not_zerofill = ((seg.flags & S_ZEROFILL) != S_ZEROFILL)
+                        if seg.offset > 0 and seg.size > 0 and not_zerofill:
+                            low_offset = min(low_offset, seg.offset)
+                        if not_zerofill:
+                            c = fh.tell()
+                            fh.seek(seg.offset)
+                            sd = fh.read(seg.size)
+                            seg.add_section_data(sd)
+                            fh.seek(c)
+                        segs.append(seg)
+                # data is a list of segments
+                cmd_data = segs
+
+            # XXX: Disabled for now because writing back doesn't work
+            #elif cmd_load.cmd == LC_CODE_SIGNATURE:
+            #    c = fh.tell()
+            #    fh.seek(cmd_cmd.dataoff)
+            #    cmd_data = fh.read(cmd_cmd.datasize)
+            #    fh.seek(c)
+            #elif cmd_load.cmd == LC_SYMTAB:
+            #    c = fh.tell()
+            #    fh.seek(cmd_cmd.stroff)
+            #    cmd_data = fh.read(cmd_cmd.strsize)
+            #    fh.seek(c)
+
+            else:
+                # data is a raw str
+                data_size = (
+                    cmd_load.cmdsize - sizeof(klass) - sizeof(load_command)
+                )
+                cmd_data = fh.read(data_size)
+            cmd.append((cmd_load, cmd_cmd, cmd_data))
+            read_bytes += cmd_load.cmdsize
+
+        # make sure the header made sense
+        if read_bytes != header.sizeofcmds:
+            raise ValueError("Read %d bytes, header reports %d bytes" % (
+                read_bytes, header.sizeofcmds))
+        self.total_size = sizeof(self.mach_header) + read_bytes
+        self.low_offset = low_offset
+
+        # this header overwrites a segment, what the heck?
+        if self.total_size > low_offset:
+            raise ValueError("total_size > low_offset (%d > %d)" % (
+                self.total_size, low_offset))
+
+    def walkRelocatables(self, shouldRelocateCommand=_shouldRelocateCommand):
+        """
+        for all relocatable commands
+        yield (command_index, command_name, filename)
+        """
+        for (idx, (lc, cmd, data)) in enumerate(self.commands):
+            if shouldRelocateCommand(lc.cmd):
+                name = _RELOCATABLE_NAMES[lc.cmd]
+                ofs = cmd.name - sizeof(lc.__class__) - sizeof(cmd.__class__)
+                yield idx, name, data[ofs:data.find(b'\x00', ofs)].decode(
+                        sys.getfilesystemencoding())
+
+    def rewriteInstallNameCommand(self, loadcmd):
+        """Rewrite the load command of this dylib"""
+        if self.id_cmd is not None:
+            self.rewriteDataForCommand(self.id_cmd, loadcmd)
+            return True
+        return False
+
+    def changedHeaderSizeBy(self, bytes):
+        self.sizediff += bytes
+        if (self.total_size + self.sizediff) > self.low_offset:
+            print("WARNING: Mach-O header in %r may be too large to relocate"%(self.parent.filename,))
+
+    def rewriteLoadCommands(self, changefunc):
+        """
+        Rewrite the load commands based upon a change dictionary
+        """
+        data = changefunc(self.parent.filename)
+        changed = False
+        if data is not None:
+            if self.rewriteInstallNameCommand(
+                    data.encode(sys.getfilesystemencoding())):
+                changed = True
+        for idx, name, filename in self.walkRelocatables():
+            data = changefunc(filename)
+            if data is not None:
+                if self.rewriteDataForCommand(idx, data.encode(
+                        sys.getfilesystemencoding())):
+                    changed = True
+        return changed
+
+    def rewriteDataForCommand(self, idx, data):
+        lc, cmd, old_data = self.commands[idx]
+        hdrsize = sizeof(lc.__class__) + sizeof(cmd.__class__)
+        align = struct.calcsize('L')
+        data = data + (b'\x00' * (align - (len(data) % align)))
+        newsize = hdrsize + len(data)
+        self.commands[idx] = (lc, cmd, data)
+        self.changedHeaderSizeBy(newsize - lc.cmdsize)
+        lc.cmdsize, cmd.name = newsize, hdrsize
+        return True
+
+    def synchronize_size(self):
+        if (self.total_size + self.sizediff) > self.low_offset:
+            raise ValueError("New Mach-O header is too large to relocate in %r"%(self.parent.filename,))
+        self.header.sizeofcmds += self.sizediff
+        self.total_size = sizeof(self.mach_header) + self.header.sizeofcmds
+        self.sizediff = 0
+
+    def write(self, fileobj):
+        fileobj = fileview(fileobj, self.offset, self.size)
+        fileobj.seek(0)
+
+        # serialize all the mach-o commands
+        self.synchronize_size()
+
+        self.header.to_fileobj(fileobj)
+        for lc, cmd, data in self.commands:
+            lc.to_fileobj(fileobj)
+            cmd.to_fileobj(fileobj)
+
+            if sys.version_info[0] == 2:
+                if isinstance(data, unicode):
+                    fileobj.write(data.encode(sys.getfilesystemencoding()))
+
+                elif isinstance(data, (bytes, str)):
+                    fileobj.write(data)
+                else:
+                    # segments..
+                    for obj in data:
+                        obj.to_fileobj(fileobj)
+            else:
+                if isinstance(data, str):
+                    fileobj.write(data.encode(sys.getfilesystemencoding()))
+
+                elif isinstance(data, bytes):
+                    fileobj.write(data)
+
+                else:
+                    # segments..
+                    for obj in data:
+                        obj.to_fileobj(fileobj)
+
+        # zero out the unused space, doubt this is strictly necessary
+        # and is generally probably already the case
+        fileobj.write(b'\x00' * (self.low_offset - fileobj.tell()))
+
+    def getSymbolTableCommand(self):
+        for lc, cmd, data in self.commands:
+            if lc.cmd == LC_SYMTAB:
+                return cmd
+        return None
+
+    def getDynamicSymbolTableCommand(self):
+        for lc, cmd, data in self.commands:
+            if lc.cmd == LC_DYSYMTAB:
+                return cmd
+        return None
+
+    def get_filetype_shortname(self, filetype):
+        if filetype in MH_FILETYPE_SHORTNAMES:
+            return MH_FILETYPE_SHORTNAMES[filetype]
+        else:
+            return 'unknown'
+
+def main(fn):
+    m = MachO(fn)
+    seen = set()
+    for header in m.headers:
+        for idx, name, other in header.walkRelocatables():
+            if other not in seen:
+                seen.add(other)
+                print('\t' + name + ": " + other)
+
+if __name__ == '__main__':
+    import sys
+    files = sys.argv[1:] or ['/bin/ls']
+    for fn in files:
+        print(fn)
+        main(fn)
new file mode 100644
--- /dev/null
+++ b/python/macholib/macholib/MachOGraph.py
@@ -0,0 +1,131 @@
+"""
+Utilities for reading and writing Mach-O headers
+"""
+
+import os
+import sys
+
+from altgraph.Graph import Graph
+from altgraph.ObjectGraph import ObjectGraph
+
+from macholib.mach_o import *
+from macholib.dyld import dyld_find
+from macholib.MachO import MachO
+from macholib.itergraphreport import itergraphreport
+
+__all__ = ['MachOGraph']
+
+try:
+    unicode
+except NameError:
+    unicode = str
+
+class MissingMachO(object):
+    def __init__(self, filename):
+        self.graphident = filename
+        self.headers = ()
+
+    def __repr__(self):
+        return '<%s graphident=%r>' % (type(self).__name__, self.graphident)
+
+class MachOGraph(ObjectGraph):
+    """
+    Graph data structure of Mach-O dependencies
+    """
+    def __init__(self, debug=0, graph=None, env=None, executable_path=None):
+        super(MachOGraph, self).__init__(debug=debug, graph=graph)
+        self.env = env
+        self.trans_table = {}
+        self.executable_path = executable_path
+
+    def locate(self, filename, loader=None):
+        assert isinstance(filename, (str, unicode))
+        if filename.startswith('@loader_path/') and loader is not None:
+            fn = self.trans_table.get((loader.filename, filename))
+            if fn is None:
+                try:
+                    fn = dyld_find(filename, env=self.env,
+                        executable_path=self.executable_path,
+                        loader=loader.filename)
+                    self.trans_table[(loader.filename, filename)] = fn
+                except ValueError:
+                    return None
+
+        else:
+            fn = self.trans_table.get(filename)
+            if fn is None:
+                try:
+                    fn = dyld_find(filename, env=self.env,
+                        executable_path=self.executable_path)
+                    self.trans_table[filename] = fn
+                except ValueError:
+                    return None
+        return fn
+
+    def findNode(self, name, loader=None):
+        assert isinstance(name, (str, unicode))
+        data = super(MachOGraph, self).findNode(name)
+        if data is not None:
+            return data
+        newname = self.locate(name, loader=loader)
+        if newname is not None and newname != name:
+            return self.findNode(newname)
+        return None
+
+    def run_file(self, pathname, caller=None):
+        assert isinstance(pathname, (str, unicode))
+        self.msgin(2, "run_file", pathname)
+        m = self.findNode(pathname, loader=caller)
+        if m is None:
+            if not os.path.exists(pathname):
+                raise ValueError('%r does not exist' % (pathname,))
+            m = self.createNode(MachO, pathname)
+            self.createReference(caller, m, edge_data='run_file')
+            self.scan_node(m)
+        self.msgout(2, '')
+        return m
+
+    def load_file(self, name, caller=None):
+        assert isinstance(name, (str, unicode))
+        self.msgin(2, "load_file", name)
+        m = self.findNode(name)
+        if m is None:
+            newname = self.locate(name, loader=caller)
+            if newname is not None and newname != name:
+                return self.load_file(newname, caller=caller)
+            if os.path.exists(name):
+                m = self.createNode(MachO, name)
+                self.scan_node(m)
+            else:
+                m = self.createNode(MissingMachO, name)
+        self.msgout(2, '')
+        return m
+
+    def scan_node(self, node):
+        self.msgin(2, 'scan_node', node)
+        for header in node.headers:
+            for idx, name, filename in header.walkRelocatables():
+                assert isinstance(name, (str, unicode))
+                assert isinstance(filename, (str, unicode))
+                m = self.load_file(filename, caller=node)
+                self.createReference(node, m, edge_data=name)
+        self.msgout(2, '', node)
+
+    def itergraphreport(self, name='G'):
+        nodes = map(self.graph.describe_node, self.graph.iterdfs(self))
+        describe_edge = self.graph.describe_edge
+        return itergraphreport(nodes, describe_edge, name=name)
+
+    def graphreport(self, fileobj=None):
+        if fileobj is None:
+            fileobj = sys.stdout
+        fileobj.writelines(self.itergraphreport())
+
+def main(args):
+    g = MachOGraph()
+    for arg in args:
+        g.run_file(arg)
+    g.graphreport()
+
+if __name__ == '__main__':
+    main(sys.argv[1:] or ['/bin/ls'])
new file mode 100644
--- /dev/null
+++ b/python/macholib/macholib/MachOStandalone.py
@@ -0,0 +1,147 @@
+import os
+
+from macholib.MachOGraph import MachOGraph, MissingMachO
+from macholib.util import iter_platform_files, in_system_path, mergecopy, \
+    mergetree, flipwritable, has_filename_filter
+from macholib.dyld import framework_info
+from collections import deque
+
+class ExcludedMachO(MissingMachO):
+    pass
+
+class FilteredMachOGraph(MachOGraph):
+    def __init__(self, delegate, *args, **kwargs):
+        super(FilteredMachOGraph, self).__init__(*args, **kwargs)
+        self.delegate = delegate
+
+    def createNode(self, cls, name):
+        cls = self.delegate.getClass(name, cls)
+        res = super(FilteredMachOGraph, self).createNode(cls, name)
+        return res
+
+    def locate(self, filename, loader=None):
+        newname = super(FilteredMachOGraph, self).locate(filename, loader)
+        if newname is None:
+            return None
+        return self.delegate.locate(newname)
+
+class MachOStandalone(object):
+    def __init__(self, base, dest=None, graph=None, env=None,
+            executable_path=None):
+        self.base = os.path.join(os.path.abspath(base), '')
+        if dest is None:
+            dest = os.path.join(self.base, 'Contents', 'Frameworks')
+        self.dest = dest
+        self.mm = FilteredMachOGraph(self, graph=graph, env=env,
+            executable_path=executable_path)
+        self.changemap = {}
+        self.excludes = []
+        self.pending = deque()
+
+    def getClass(self, name, cls):
+        if in_system_path(name):
+            return ExcludedMachO
+        for base in self.excludes:
+            if name.startswith(base):
+                return ExcludedMachO
+        return cls
+
+    def locate(self, filename):
+        if in_system_path(filename):
+            return filename
+        if filename.startswith(self.base):
+            return filename
+        for base in self.excludes:
+            if filename.startswith(base):
+                return filename
+        if filename in self.changemap:
+            return self.changemap[filename]
+        info = framework_info(filename)
+        if info is None:
+            res = self.copy_dylib(filename)
+            self.changemap[filename] = res
+            return res
+        else:
+            res = self.copy_framework(info)
+            self.changemap[filename] = res
+            return res
+
+    def copy_dylib(self, filename):
+        # When the filename is a symlink use the basename of the target of the link
+        # as the name in standalone bundle. This avoids problems when two libraries
+        # link to the same dylib but using different symlinks.
+        if os.path.islink(filename):
+            dest = os.path.join(self.dest, os.path.basename(os.path.realpath(filename)))
+        else:
+            dest = os.path.join(self.dest, os.path.basename(filename))
+
+        if not os.path.exists(dest):
+            self.mergecopy(filename, dest)
+        return dest
+
+    def mergecopy(self, src, dest):
+        return mergecopy(src, dest)
+
+    def mergetree(self, src, dest):
+        return mergetree(src, dest)
+
+    def copy_framework(self, info):
+        dest = os.path.join(self.dest, info['shortname'] + '.framework')
+        destfn = os.path.join(self.dest, info['name'])
+        src = os.path.join(info['location'], info['shortname'] + '.framework')
+        if not os.path.exists(dest):
+            self.mergetree(src, dest)
+            self.pending.append((destfn, iter_platform_files(dest)))
+        return destfn
+
+    def run(self, platfiles=None, contents=None):
+        mm = self.mm
+        if contents is None:
+            contents = '@executable_path/..'
+        if platfiles is None:
+            platfiles = iter_platform_files(self.base)
+
+        for fn in platfiles:
+            mm.run_file(fn)
+
+        while self.pending:
+            fmwk, files = self.pending.popleft()
+            ref = mm.findNode(fmwk)
+            for fn in files:
+                mm.run_file(fn, caller=ref)
+
+        changemap = {}
+        skipcontents = os.path.join(os.path.dirname(self.dest), '')
+        machfiles = []
+
+        for node in mm.flatten(has_filename_filter):
+            machfiles.append(node)
+            dest = os.path.join(contents, node.filename[len(skipcontents):])
+            changemap[node.filename] = dest
+
+        def changefunc(path):
+            res = mm.locate(path)
+            return changemap.get(res)
+
+        for node in machfiles:
+            fn = mm.locate(node.filename)
+            if fn is None:
+                continue
+            rewroteAny = False
+            for header in node.headers:
+                if node.rewriteLoadCommands(changefunc):
+                    rewroteAny = True
+            if rewroteAny:
+                old_mode = flipwritable(fn)
+                try:
+                    with open(fn, 'rb+') as f:
+                        for header in node.headers:
+                            f.seek(0)
+                            node.write(f)
+                        f.seek(0, 2)
+                        f.flush()
+                finally:
+                    flipwritable(fn, old_mode)
+
+        allfiles = [mm.locate(node.filename) for node in machfiles]
+        return set(filter(None, allfiles))
new file mode 100644
--- /dev/null
+++ b/python/macholib/macholib/SymbolTable.py
@@ -0,0 +1,95 @@
+"""
+Class to read the symbol table from a Mach-O header
+"""
+
+from macholib.mach_o import *
+
+__all__ = ['SymbolTable']
+
+# XXX: Does not support 64-bit, probably broken anyway
+
+class SymbolTable(object):
+    def __init__(self, macho, openfile=None):
+        if openfile is None:
+            openfile = open
+        self.macho = macho.headers[0]
+        self.symtab = macho.getSymbolTableCommand()
+        self.dysymtab = macho.getDynamicSymbolTableCommand()
+        fh = openfile(self.macho.filename, 'rb')
+        try:
+            if self.symtab is not None:
+                self.readSymbolTable(fh)
+            if self.dysymtab is not None:
+                self.readDynamicSymbolTable(fh)
+        finally:
+            fh.close()
+
+    def readSymbolTable(self, fh):
+        cmd = self.symtab
+        fh.seek(cmd.stroff)
+        strtab = fh.read(cmd.strsize)
+        fh.seek(cmd.symoff)
+        nlists = []
+        for i in xrange(cmd.nsyms):
+            cmd = nlist.from_fileobj(fh)
+            if cmd.n_un == 0:
+                nlists.append((cmd, ''))
+            else:
+                nlists.append((cmd, strtab[cmd.n_un:strtab.find(b'\x00', cmd.n_un)]))
+        self.nlists = nlists
+
+    def readDynamicSymbolTable(self, fh):
+        cmd = self.dysymtab
+        nlists = self.nlists
+        self.localsyms = nlists[cmd.ilocalsym:cmd.ilocalsym+cmd.nlocalsym]
+        self.extdefsyms = nlists[cmd.iextdefsym:cmd.iextdefsym+cmd.nextdefsym]
+        self.undefsyms = nlists[cmd.iundefsym:cmd.iundefsym+cmd.nundefsym]
+        #if cmd.tocoff == 0:
+        #    self.toc = None
+        #else:
+        #    self.toc = self.readtoc(fh, cmd.tocoff, cmd.ntoc)
+        #if cmd.modtaboff == 0:
+        #    self.modtab = None
+        #else:
+        #    self.modtab = self.readmodtab(fh, cmd.modtaboff, cmd.nmodtab)
+        if cmd.extrefsymoff == 0:
+            self.extrefsym = None
+        else:
+            self.extrefsym = self.readsym(fh, cmd.extrefsymoff, cmd.nextrefsyms)
+        #if cmd.indirectsymoff == 0:
+        #    self.indirectsym = None
+        #else:
+        #    self.indirectsym = self.readsym(fh, cmd.indirectsymoff, cmd.nindirectsyms)
+        #if cmd.extreloff == 0:
+        #    self.extrel = None
+        #else:
+        #    self.extrel = self.readrel(fh, cmd.extreloff, cmd.nextrel)
+        #if cmd.locreloff == 0:
+        #    self.locrel = None
+        #else:
+        #    self.locrel = self.readrel(fh, cmd.locreloff, cmd.nlocrel)
+
+    def readtoc(self, fh, off, n):
+        #print 'toc', off, n
+        fh.seek(off)
+        return [dylib_table_of_contents.from_fileobj(fh) for i in xrange(n)]
+
+    def readmodtab(self, fh, off, n):
+        #print 'modtab', off, n
+        fh.seek(off)
+        return [dylib_module.from_fileobj(fh) for i in xrange(n)]
+
+    def readsym(self, fh, off, n):
+        #print 'sym', off, n
+        fh.seek(off)
+        refs = []
+        for i in xrange(n):
+            ref = dylib_reference.from_fileobj(fh)
+            isym, flags = divmod(ref.isym_flags, 256)
+            refs.append((self.nlists[isym], flags))
+        return refs
+
+    def readrel(self, fh, off, n):
+        #print 'rel', off, n
+        fh.seek(off)
+        return [relocation_info.from_fileobj(fh) for i in xrange(n)]
new file mode 100644
--- /dev/null
+++ b/python/macholib/macholib/__init__.py
@@ -0,0 +1,10 @@
+"""
+Enough Mach-O to make your head spin.
+
+See the relevant header files in /usr/include/mach-o
+
+And also Apple's documentation.
+"""
+from __future__ import print_function
+import pkg_resources
+__version__ = pkg_resources.require('macholib')[0].version
new file mode 100644
--- /dev/null
+++ b/python/macholib/macholib/__main__.py
@@ -0,0 +1,73 @@
+from __future__ import print_function, absolute_import
+import os, sys
+
+from macholib.util import is_platform_file
+from macholib import macho_dump
+from macholib import macho_standalone
+
+gCommand = None
+
+def check_file(fp, path, callback):
+    if not os.path.exists(path):
+        print('%s: %s: No such file or directory' % (gCommand, path),
+                file=sys.stderr)
+        return 1
+
+    try:
+        is_plat = is_platform_file(path)
+
+    except IOError as msg:
+        print('%s: %s: %s' % (gCommand, path, msg), file=sys.stderr)
+        return 1
+
+    else:
+        if is_plat:
+            callback(fp, path)
+    return 0
+
+def walk_tree(callback, paths):
+    args = sys.argv[1:]
+    err = 0
+
+    for base in paths:
+        if os.path.isdir(base):
+            for root, dirs, files in os.walk(base):
+                for fn in files:
+                    err |= check_file(
+                            sys.stdout, os.path.join(root, fn), callback)
+        else:
+            err |= check_file(sys.stdout, base, callback)
+
+    return err
+
+def print_usage(fp):
+    print("Usage:", file=sys.stderr)
+    print("  python -mmacholib dump FILE ...", file=fp)
+    print("  python -mmacholib find DIR ...", file=fp)
+    print("  python -mmacholib standalone DIR ...", file=fp)
+
+def main():
+    global gCommand
+    if len(sys.argv) < 3:
+        print_usage(sys.stderr)
+        sys.exit(1)
+
+    gCommand = sys.argv[1]
+
+    if gCommand == 'dump':
+        walk_tree(macho_dump.print_file, sys.argv[2:])
+
+    elif gCommand == 'find':
+        walk_tree(lambda fp, path: print(path, file=fp), sys.argv[2:])
+
+    elif gCommand == 'standalone':
+        for dn in sys.argv[2:]:
+            macho_standalone.standaloneApp(dn)
+
+    else:
+        print_usage(sys.stderr)
+        sys.exit(1)
+
+
+if __name__ == "__main__":
+    main()
new file mode 100644
--- /dev/null
+++ b/python/macholib/macholib/_cmdline.py
@@ -0,0 +1,44 @@
+"""
+Internal helpers for basic commandline tools
+"""
+from __future__ import print_function, absolute_import
+import os
+import sys
+
+from macholib.util import is_platform_file
+
+def check_file(fp, path, callback):
+    if not os.path.exists(path):
+        print('%s: %s: No such file or directory' % (sys.argv[0], path), file=sys.stderr)
+        return 1
+
+    try:
+        is_plat = is_platform_file(path)
+
+    except IOError as msg:
+        print('%s: %s: %s' % (sys.argv[0], path, msg), file=sys.stderr)
+        return 1
+
+    else:
+        if is_plat:
+            callback(fp, path)
+    return 0
+
+def main(callback):
+    args = sys.argv[1:]
+    name = os.path.basename(sys.argv[0])
+    err = 0
+
+    if not args:
+        print("Usage: %s filename..."%(name,), file=sys.stderr)
+        return 1
+
+    for base in args:
+        if os.path.isdir(base):
+            for root, dirs, files in os.walk(base):
+                for fn in files:
+                    err |= check_file(sys.stdout, os.path.join(root, fn), callback)
+        else:
+            err |= check_file(sys.stdout, base, callback)
+
+    return err
new file mode 100644
--- /dev/null
+++ b/python/macholib/macholib/dyld.py
@@ -0,0 +1,176 @@
+"""
+dyld emulation
+"""
+
+from itertools import chain
+
+import os, sys
+
+from macholib.framework import framework_info
+from macholib.dylib import dylib_info
+
+__all__ = [
+    'dyld_find', 'framework_find',
+    'framework_info', 'dylib_info',
+]
+
+# These are the defaults as per man dyld(1)
+#
+_DEFAULT_FRAMEWORK_FALLBACK = [
+    os.path.expanduser("~/Library/Frameworks"),
+    "/Library/Frameworks",
+    "/Network/Library/Frameworks",
+    "/System/Library/Frameworks",
+]
+
+_DEFAULT_LIBRARY_FALLBACK = [
+    os.path.expanduser("~/lib"),
+    "/usr/local/lib",
+    "/lib",
+    "/usr/lib",
+]
+
+# XXX: Is this function still needed?
+if sys.version_info[0] == 2:
+    def _ensure_utf8(s):
+        """Not all of PyObjC and Python understand unicode paths very well yet"""
+        if isinstance(s, unicode):
+            return s.encode('utf8')
+        return s
+else:
+    def _ensure_utf8(s):
+        if s is not None and not isinstance(s, str):
+            raise ValueError(s)
+        return s
+
+
+def _dyld_env(env, var):
+    if env is None:
+        env = os.environ
+    rval = env.get(var)
+    if rval is None or rval == '':
+        return []
+    return rval.split(':')
+
+def dyld_image_suffix(env=None):
+    if env is None:
+        env = os.environ
+    return env.get('DYLD_IMAGE_SUFFIX')
+
+def dyld_framework_path(env=None):
+    return _dyld_env(env, 'DYLD_FRAMEWORK_PATH')
+
+def dyld_library_path(env=None):
+    return _dyld_env(env, 'DYLD_LIBRARY_PATH')
+
+def dyld_fallback_framework_path(env=None):
+    return _dyld_env(env, 'DYLD_FALLBACK_FRAMEWORK_PATH')
+
+def dyld_fallback_library_path(env=None):
+    return _dyld_env(env, 'DYLD_FALLBACK_LIBRARY_PATH')
+
+def dyld_image_suffix_search(iterator, env=None):
+    """For a potential path iterator, add DYLD_IMAGE_SUFFIX semantics"""
+    suffix = dyld_image_suffix(env)
+    if suffix is None:
+        return iterator
+    def _inject(iterator=iterator, suffix=suffix):
+        for path in iterator:
+            if path.endswith('.dylib'):
+                yield path[:-len('.dylib')] + suffix + '.dylib'
+            else:
+                yield path + suffix
+            yield path
+    return _inject()
+
+def dyld_override_search(name, env=None):
+    # If DYLD_FRAMEWORK_PATH is set and this dylib_name is a
+    # framework name, use the first file that exists in the framework
+    # path if any.  If there is none go on to search the DYLD_LIBRARY_PATH
+    # if any.
+
+    framework = framework_info(name)
+
+    if framework is not None:
+        for path in dyld_framework_path(env):
+            yield os.path.join(path, framework['name'])
+
+    # If DYLD_LIBRARY_PATH is set then use the first file that exists
+    # in the path.  If none use the original name.
+    for path in dyld_library_path(env):
+        yield os.path.join(path, os.path.basename(name))
+
+def dyld_executable_path_search(name, executable_path=None):
+    # If we haven't done any searching and found a library and the
+    # dylib_name starts with "@executable_path/" then construct the
+    # library name.
+    if name.startswith('@executable_path/') and executable_path is not None:
+        yield os.path.join(executable_path, name[len('@executable_path/'):])
+
+def dyld_loader_search(name, loader_path=None):
+    # If we haven't done any searching and found a library and the
+    # dylib_name starts with "@loader_path/" then construct the
+    # library name.
+    if name.startswith('@loader_path/') and loader_path is not None:
+        yield os.path.join(loader_path, name[len('@loader_path/'):])
+
+def dyld_default_search(name, env=None):
+    yield name
+
+    framework = framework_info(name)
+
+    if framework is not None:
+        fallback_framework_path = dyld_fallback_framework_path(env)
+
+        if fallback_framework_path:
+            for path in fallback_framework_path:
+                yield os.path.join(path, framework['name'])
+
+        else:
+            for path in _DEFAULT_FRAMEWORK_FALLBACK:
+                yield os.path.join(path, framework['name'])
+
+    fallback_library_path = dyld_fallback_library_path(env)
+    if fallback_library_path:
+        for path in fallback_library_path:
+            yield os.path.join(path, os.path.basename(name))
+
+    else:
+        for path in _DEFAULT_LIBRARY_FALLBACK:
+            yield os.path.join(path, os.path.basename(name))
+
+def dyld_find(name, executable_path=None, env=None, loader_path=None):
+    """
+    Find a library or framework using dyld semantics
+    """
+    name = _ensure_utf8(name)
+    executable_path = _ensure_utf8(executable_path)
+    for path in dyld_image_suffix_search(chain(
+                dyld_override_search(name, env),
+                dyld_executable_path_search(name, executable_path),
+                dyld_loader_search(name, loader_path),
+                dyld_default_search(name, env),
+            ), env):
+        if os.path.isfile(path):
+            return path
+    raise ValueError("dylib %s could not be found" % (name,))
+
+def framework_find(fn, executable_path=None, env=None):
+    """
+    Find a framework using dyld semantics in a very loose manner.
+
+    Will take input such as:
+        Python
+        Python.framework
+        Python.framework/Versions/Current
+    """
+    try:
+        return dyld_find(fn, executable_path=executable_path, env=env)
+    except ValueError:
+        pass
+    fmwk_index = fn.rfind('.framework')
+    if fmwk_index == -1:
+        fmwk_index = len(fn)
+        fn += '.framework'
+    fn = os.path.join(fn, os.path.basename(fn[:fmwk_index]))
+    return dyld_find(fn, executable_path=executable_path, env=env)
new file mode 100644
--- /dev/null
+++ b/python/macholib/macholib/dylib.py
@@ -0,0 +1,42 @@
+"""
+Generic dylib path manipulation
+"""
+
+import re
+
+__all__ = ['dylib_info']
+
+_DYLIB_RE = re.compile(r"""(?x)
+(?P<location>^.*)(?:^|/)
+(?P<name>
+    (?P<shortname>\w+?)
+    (?:\.(?P<version>[^._]+))?
+    (?:_(?P<suffix>[^._]+))?
+    \.dylib$
+)
+""")
+
+def dylib_info(filename):
+    """
+    A dylib name can take one of the following four forms:
+        Location/Name.SomeVersion_Suffix.dylib
+        Location/Name.SomeVersion.dylib
+        Location/Name_Suffix.dylib
+        Location/Name.dylib
+
+    returns None if not found or a mapping equivalent to:
+        dict(
+            location='Location',
+            name='Name.SomeVersion_Suffix.dylib',
+            shortname='Name',
+            version='SomeVersion',
+            suffix='Suffix',
+        )
+
+    Note that SomeVersion and Suffix are optional and may be None
+    if not present.
+    """
+    is_dylib = _DYLIB_RE.match(filename)
+    if not is_dylib:
+        return None
+    return is_dylib.groupdict()
new file mode 100644
--- /dev/null
+++ b/python/macholib/macholib/framework.py
@@ -0,0 +1,42 @@
+"""
+Generic framework path manipulation
+"""
+
+import re
+
+__all__ = ['framework_info']
+
+_STRICT_FRAMEWORK_RE = re.compile(r"""(?x)
+(?P<location>^.*)(?:^|/)
+(?P<name>
+    (?P<shortname>[-_A-Za-z0-9]+).framework/
+    (?:Versions/(?P<version>[^/]+)/)?
+    (?P=shortname)
+    (?:_(?P<suffix>[^_]+))?
+)$
+""")
+
+def framework_info(filename):
+    """
+    A framework name can take one of the following four forms:
+        Location/Name.framework/Versions/SomeVersion/Name_Suffix
+        Location/Name.framework/Versions/SomeVersion/Name
+        Location/Name.framework/Name_Suffix
+        Location/Name.framework/Name
+
+    returns None if not found, or a mapping equivalent to:
+        dict(
+            location='Location',
+            name='Name.framework/Versions/SomeVersion/Name_Suffix',
+            shortname='Name',
+            version='SomeVersion',
+            suffix='Suffix',
+        )
+
+    Note that SomeVersion and Suffix are optional and may be None
+    if not present
+    """
+    is_framework = _STRICT_FRAMEWORK_RE.match(filename)
+    if not is_framework:
+        return None
+    return is_framework.groupdict()
new file mode 100644
--- /dev/null
+++ b/python/macholib/macholib/itergraphreport.py
@@ -0,0 +1,73 @@
+"""
+Utilities for creating dot output from a MachOGraph
+
+XXX: need to rewrite this based on altgraph.Dot
+"""
+
+from collections import deque
+
+try:
+    from itertools import imap
+except ImportError:
+    imap = map
+
+__all__ = ['itergraphreport']
+
+def itergraphreport(nodes, describe_edge, name='G'):
+    edges = deque()
+    nodetoident = {}
+    mainedges = set()
+
+    def nodevisitor(node, data, outgoing, incoming):
+        return {'label': str(node)}
+
+    def edgevisitor(edge, data, head, tail):
+        return {}
+
+    yield 'digraph %s {\n' % (name,)
+    attr = dict(rankdir='LR', concentrate='true')
+    cpatt  = '%s="%s"'
+    for item in attr.iteritems():
+        yield '\t%s;\n' % (cpatt % item,)
+
+    # find all packages (subgraphs)
+    for (node, data, outgoing, incoming) in nodes:
+        nodetoident[node] = getattr(data, 'identifier', node)
+
+    # create sets for subgraph, write out descriptions
+    for (node, data, outgoing, incoming) in nodes:
+        # update edges
+        for edge in imap(describe_edge, outgoing):
+            edges.append(edge)
+
+        # describe node
+        yield '\t"%s" [%s];\n' % (
+            node,
+            ','.join([
+                (cpatt % item) for item in
+                nodevisitor(node, data, outgoing, incoming).iteritems()
+            ]),
+        )
+
+    graph = []
+
+    while edges:
+        edge, data, head, tail = edges.popleft()
+        if data in ('run_file', 'load_dylib'):
+            graph.append((edge, data, head, tail))
+
+    def do_graph(edges, tabs):
+        edgestr = tabs + '"%s" -> "%s" [%s];\n'
+        # describe edge
+        for (edge, data, head, tail) in edges:
+            attribs = edgevisitor(edge, data, head, tail)
+            yield edgestr % (
+                head,
+                tail,
+                ','.join([(cpatt % item) for item in attribs.iteritems()]),
+            )
+
+    for s in do_graph(graph, '\t'):
+        yield s
+
+    yield '}\n'
new file mode 100644
--- /dev/null
+++ b/python/macholib/macholib/mach_o.py
@@ -0,0 +1,1311 @@
+"""
+Other than changing the load commands in such a way that they do not
+contain the load command itself, this is largely a by-hand conversion
+of the C headers.  Hopefully everything in here should be at least as
+obvious as the C headers, and you should be using the C headers as a real
+reference because the documentation didn't come along for the ride.
+
+Doing much of anything with the symbol tables or segments is really
+not covered at this point.
+
+See /usr/include/mach-o and friends.
+"""
+import time
+
+from macholib.ptypes import *
+
+
+_CPU_ARCH_ABI64  = 0x01000000
+
+CPU_TYPE_NAMES = {
+    -1:     'ANY',
+    1:      'VAX',
+    6:      'MC680x0',
+    7:      'i386',
+    _CPU_ARCH_ABI64  | 7:    'x86_64',
+    8:      'MIPS',
+    10:     'MC98000',
+    11:     'HPPA',
+    12:     'ARM',
+    _CPU_ARCH_ABI64 | 12:     'ARM64',
+    13:     'MC88000',
+    14:     'SPARC',
+    15:     'i860',
+    16:     'Alpha',
+    18:     'PowerPC',
+    _CPU_ARCH_ABI64  | 18:    'PowerPC64',
+}
+
+INTEL64_SUBTYPE = {
+    3 : "CPU_SUBTYPE_X86_64_ALL",
+    4 : "CPU_SUBTYPE_X86_ARCH1"
+}
+
+#define CPU_SUBTYPE_INTEL(f, m) ((cpu_subtype_t) (f) + ((m) << 4))
+INTEL_SUBTYPE = {
+    0 : "CPU_SUBTYPE_INTEL_MODEL_ALL",
+    1 : "CPU_THREADTYPE_INTEL_HTT",
+    3 : "CPU_SUBTYPE_I386_ALL",
+    4 : "CPU_SUBTYPE_486",
+    5 : "CPU_SUBTYPE_586",
+    8 : "CPU_SUBTYPE_PENTIUM_3",
+    9 : "CPU_SUBTYPE_PENTIUM_M",
+    10 : "CPU_SUBTYPE_PENTIUM_4",
+    11 : "CPU_SUBTYPE_ITANIUM",
+    12 : "CPU_SUBTYPE_XEON",
+    34 : "CPU_SUBTYPE_XEON_MP",
+    42 : "CPU_SUBTYPE_PENTIUM_4_M",
+    43 : "CPU_SUBTYPE_ITANIUM_2",
+    38 : "CPU_SUBTYPE_PENTPRO",
+    40 : "CPU_SUBTYPE_PENTIUM_3_M",
+    52 : "CPU_SUBTYPE_PENTIUM_3_XEON",
+    102 : "CPU_SUBTYPE_PENTII_M3",
+    132 : "CPU_SUBTYPE_486SX",
+    166 : "CPU_SUBTYPE_PENTII_M5",
+    199 : "CPU_SUBTYPE_CELERON",
+    231 : "CPU_SUBTYPE_CELERON_MOBILE"
+}
+
+MC680_SUBTYPE = {
+    1 : "CPU_SUBTYPE_MC680x0_ALL",
+    2 : "CPU_SUBTYPE_MC68040",
+    3 : "CPU_SUBTYPE_MC68030_ONLY"
+}
+
+MIPS_SUBTYPE = {
+    0 : "CPU_SUBTYPE_MIPS_ALL",
+    1 : "CPU_SUBTYPE_MIPS_R2300",
+    2 : "CPU_SUBTYPE_MIPS_R2600",
+    3 : "CPU_SUBTYPE_MIPS_R2800",
+    4 : "CPU_SUBTYPE_MIPS_R2000a",
+    5 : "CPU_SUBTYPE_MIPS_R2000",
+    6 : "CPU_SUBTYPE_MIPS_R3000a",
+    7 : "CPU_SUBTYPE_MIPS_R3000"
+}
+
+MC98000_SUBTYPE = {
+    0 : "CPU_SUBTYPE_MC98000_ALL",
+    1 : "CPU_SUBTYPE_MC98601"
+}
+
+HPPA_SUBTYPE = {
+    0 : "CPU_SUBTYPE_HPPA_7100",
+    1 : "CPU_SUBTYPE_HPPA_7100LC"
+}
+
+MC88_SUBTYPE = {
+    0 : "CPU_SUBTYPE_MC88000_ALL",
+    1 : "CPU_SUBTYPE_MC88100",
+    2 : "CPU_SUBTYPE_MC88110"
+}
+
+SPARC_SUBTYPE = {
+    0 : "CPU_SUBTYPE_SPARC_ALL"
+}
+
+I860_SUBTYPE = {
+    0 : "CPU_SUBTYPE_I860_ALL",
+    1 : "CPU_SUBTYPE_I860_860"
+}
+
+POWERPC_SUBTYPE = {
+    0 : "CPU_SUBTYPE_POWERPC_ALL",
+    1 : "CPU_SUBTYPE_POWERPC_601",
+    2 : "CPU_SUBTYPE_POWERPC_602",
+    3 : "CPU_SUBTYPE_POWERPC_603",
+    4 : "CPU_SUBTYPE_POWERPC_603e",
+    5 : "CPU_SUBTYPE_POWERPC_603ev",
+    6 : "CPU_SUBTYPE_POWERPC_604",
+    7 : "CPU_SUBTYPE_POWERPC_604e",
+    8 : "CPU_SUBTYPE_POWERPC_620",
+    9 : "CPU_SUBTYPE_POWERPC_750",
+    10 : "CPU_SUBTYPE_POWERPC_7400",
+    11 : "CPU_SUBTYPE_POWERPC_7450",
+    100 : "CPU_SUBTYPE_POWERPC_970"
+}
+
+ARM_SUBTYPE = {
+    0 : "CPU_SUBTYPE_ARM_ALL12",
+    5 : "CPU_SUBTYPE_ARM_V4T",
+    6 : "CPU_SUBTYPE_ARM_V6",
+    7 : "CPU_SUBTYPE_ARM_V5TEJ",
+    8 : "CPU_SUBTYPE_ARM_XSCALE",
+    9 : "CPU_SUBTYPE_ARM_V7",
+    10 : "CPU_SUBTYPE_ARM_V7F",
+    12 : "CPU_SUBTYPE_ARM_V7K"
+}
+
+VAX_SUBTYPE = {
+    0 : "CPU_SUBTYPE_VAX_ALL",
+    1 : "CPU_SUBTYPE_VAX780",
+    2 : "CPU_SUBTYPE_VAX785",
+    3 : "CPU_SUBTYPE_VAX750",
+    4 : "CPU_SUBTYPE_VAX730",
+    5 : "CPU_SUBTYPE_UVAXI",
+    6 : "CPU_SUBTYPE_UVAXII",
+    7 : "CPU_SUBTYPE_VAX8200",
+    8 : "CPU_SUBTYPE_VAX8500",
+    9 : "CPU_SUBTYPE_VAX8600",
+    10 : "CPU_SUBTYPE_VAX8650",
+    11 : "CPU_SUBTYPE_VAX8800",
+    12 : "CPU_SUBTYPE_UVAXIII",
+}
+
+
+def get_cpu_subtype(cpu_type, cpu_subtype):
+    st = cpu_subtype & 0x0fffffff
+
+    if cpu_type == 1:
+        subtype = VAX_SUBTYPE.get(st, st)
+    elif cpu_type == 6:
+        subtype = MC680_SUBTYPE.get(st, st)
+    elif cpu_type == 7:
+        subtype = INTEL_SUBTYPE.get(st, st)
+    elif cpu_type == 7 | _CPU_ARCH_ABI64:
+        subtype = INTEL64_SUBTYPE.get(st, st)
+    elif cpu_type == 8:
+        subtype = MIPS_SUBTYPE.get(st, st)
+    elif cpu_type == 10:
+        subtype = MC98000_SUBTYPE.get(st, st)
+    elif cpu_type == 11:
+        subtype = HPPA_SUBTYPE.get(st, st)
+    elif cpu_type == 12:
+        subtype = ARM_SUBTYPE.get(st, st)
+    elif cpu_type == 13:
+        subtype = MC88_SUBTYPE.get(st, st)
+    elif cpu_type == 14:
+        subtype = SPARC_SUBTYPE.get(st, st)
+    elif cpu_type == 15:
+        subtype = I860_SUBTYPE.get(st, st)
+    elif cpu_type == 16:
+        subtype = MIPS_SUBTYPE.get(st, st)
+    elif cpu_type == 18:
+        subtype = POWERPC_SUBTYPE.get(st, st)
+    elif cpu_type == 18 | _CPU_ARCH_ABI64:
+        subtype = POWERPC_SUBTYPE.get(st, st)
+    else:
+        subtype = str(st)
+
+    return subtype
+
+
+_MH_EXECUTE_SYM = "__mh_execute_header"
+MH_EXECUTE_SYM = "_mh_execute_header"
+_MH_BUNDLE_SYM = "__mh_bundle_header"
+MH_BUNDLE_SYM = "_mh_bundle_header"
+_MH_DYLIB_SYM = "__mh_dylib_header"
+MH_DYLIB_SYM = "_mh_dylib_header"
+_MH_DYLINKER_SYM = "__mh_dylinker_header"
+MH_DYLINKER_SYM = "_mh_dylinker_header"
+
+(
+    MH_OBJECT, MH_EXECUTE, MH_FVMLIB, MH_CORE, MH_PRELOAD, MH_DYLIB,
+    MH_DYLINKER, MH_BUNDLE, MH_DYLIB_STUB, MH_DSYM
+) = range(0x1, 0xb)
+
+(
+    MH_NOUNDEFS, MH_INCRLINK, MH_DYLDLINK, MH_BINDATLOAD, MH_PREBOUND,
+    MH_SPLIT_SEGS, MH_LAZY_INIT, MH_TWOLEVEL, MH_FORCE_FLAT, MH_NOMULTIDEFS,
+    MH_NOFIXPREBINDING, MH_PREBINDABLE, MH_ALLMODSBOUND, MH_SUBSECTIONS_VIA_SYMBOLS,
+    MH_CANONICAL, MH_WEAK_DEFINES, MH_BINDS_TO_WEAK, MH_ALLOW_STACK_EXECUTION,
+    MH_ROOT_SAFE, MH_SETUID_SAFE, MH_NO_REEXPORTED_DYLIBS, MH_PIE,
+    MH_DEAD_STRIPPABLE_DYLIB, MH_HAS_TLV_DESCRIPTORS, MH_NO_HEAP_EXECUTION
+) = map((1).__lshift__, range(25))
+
+MH_MAGIC = 0xfeedface
+MH_CIGAM = 0xcefaedfe
+MH_MAGIC_64 = 0xfeedfacf
+MH_CIGAM_64 = 0xcffaedfe
+
+integer_t = p_int32
+cpu_type_t = integer_t
+cpu_subtype_t = p_uint32
+
+MH_FILETYPE_NAMES = {
+    MH_OBJECT:      'relocatable object',
+    MH_EXECUTE:     'demand paged executable',
+    MH_FVMLIB:      'fixed vm shared library',
+    MH_CORE:        'core',
+    MH_PRELOAD:     'preloaded executable',
+    MH_DYLIB:       'dynamically bound shared library',
+    MH_DYLINKER:    'dynamic link editor',
+    MH_BUNDLE:      'dynamically bound bundle',
+    MH_DYLIB_STUB:  'shared library stub for static linking',
+    MH_DSYM:        'symbol information',
+}
+
+MH_FILETYPE_SHORTNAMES = {
+    MH_OBJECT:      'object',
+    MH_EXECUTE:     'execute',
+    MH_FVMLIB:      'fvmlib',
+    MH_CORE:        'core',
+    MH_PRELOAD:     'preload',
+    MH_DYLIB:       'dylib',
+    MH_DYLINKER:    'dylinker',
+    MH_BUNDLE:      'bundle',
+    MH_DYLIB_STUB:  'dylib_stub',
+    MH_DSYM:        'dsym',
+}
+
+MH_FLAGS_NAMES = {
+    MH_NOUNDEFS:                'MH_NOUNDEFS',
+    MH_INCRLINK:                'MH_INCRLINK',
+    MH_DYLDLINK:                'MH_DYLDLINK',
+    MH_BINDATLOAD:              'MH_BINDATLOAD',
+    MH_PREBOUND:                'MH_PREBOUND',
+    MH_SPLIT_SEGS:              'MH_SPLIT_SEGS',
+    MH_LAZY_INIT:               'MH_LAZY_INIT',
+    MH_TWOLEVEL:                'MH_TWOLEVEL',
+    MH_FORCE_FLAT:              'MH_FORCE_FLAT',
+    MH_NOMULTIDEFS:             'MH_NOMULTIDEFS',
+    MH_NOFIXPREBINDING:         'MH_NOFIXPREBINDING',
+    MH_PREBINDABLE:             'MH_PREBINDABLE',
+    MH_ALLMODSBOUND:            'MH_ALLMODSBOUND',
+    MH_SUBSECTIONS_VIA_SYMBOLS: 'MH_SUBSECTIONS_VIA_SYMBOLS',
+    MH_CANONICAL:               'MH_CANONICAL',
+    MH_WEAK_DEFINES:            'MH_WEAK_DEFINES',
+    MH_BINDS_TO_WEAK:           'MH_BINDS_TO_WEAK',
+    MH_ALLOW_STACK_EXECUTION:   'MH_ALLOW_STACK_EXECUTION',
+    MH_ROOT_SAFE:               'MH_ROOT_SAFE',
+    MH_SETUID_SAFE:             'MH_SETUID_SAFE',
+    MH_NO_REEXPORTED_DYLIBS:    'MH_NO_REEXPORTED_DYLIBS',
+    MH_PIE:                     'MH_PIE',
+    MH_DEAD_STRIPPABLE_DYLIB:   'MH_DEAD_STRIPPABLE_DYLIB',
+    MH_HAS_TLV_DESCRIPTORS:     'MH_HAS_TLV_DESCRIPTORS',
+    MH_NO_HEAP_EXECUTION:       'MH_NO_HEAP_EXECUTION',
+}
+
+MH_FLAGS_DESCRIPTIONS = {
+    MH_NOUNDEFS:                'no undefined references',
+    MH_INCRLINK:                'output of an incremental link',
+    MH_DYLDLINK:                'input for the dynamic linker',
+    MH_BINDATLOAD:              'undefined references bound dynamically when loaded',
+    MH_PREBOUND:                'dynamic undefined references prebound',
+    MH_SPLIT_SEGS:              'split read-only and read-write segments',
+    MH_LAZY_INIT:               '(obsolete)',
+    MH_TWOLEVEL:                'using two-level name space bindings',
+    MH_FORCE_FLAT:              'forcing all imagges to use flat name space bindings',
+    MH_NOMULTIDEFS:             'umbrella guarantees no multiple definitions',
+    MH_NOFIXPREBINDING:         'do not notify prebinding agent about this executable',
+    MH_PREBINDABLE:             'the binary is not prebound but can have its prebinding redone',
+    MH_ALLMODSBOUND:            'indicates that this binary binds to all two-level namespace modules of its dependent libraries',
+    MH_SUBSECTIONS_VIA_SYMBOLS: 'safe to divide up the sections into sub-sections via symbols for dead code stripping',
+    MH_CANONICAL:               'the binary has been canonicalized via the unprebind operation',
+    MH_WEAK_DEFINES:            'the final linked image contains external weak symbols',
+    MH_BINDS_TO_WEAK:           'the final linked image uses weak symbols',
+    MH_ALLOW_STACK_EXECUTION:   'all stacks in the task will be given stack execution privilege',
+    MH_ROOT_SAFE:               'the binary declares it is safe for use in processes with uid zero',
+    MH_SETUID_SAFE:             'the binary declares it is safe for use in processes when issetugid() is true',
+    MH_NO_REEXPORTED_DYLIBS:    'the static linker does not need to examine dependent dylibs to see if any are re-exported',
+    MH_PIE:                     'the OS will load the main executable at a random address',
+    MH_DEAD_STRIPPABLE_DYLIB:   'the static linker will automatically not create a LC_LOAD_DYLIB load command to the dylib if no symbols are being referenced from the dylib',
+    MH_HAS_TLV_DESCRIPTORS:     'contains a section of type S_THREAD_LOCAL_VARIABLES',
+    MH_NO_HEAP_EXECUTION:       'the OS will run the main executable with a non-executable heap even on platforms that don\'t require it',
+}
+
+class mach_version_helper(Structure):
+    _fields_ = (
+        ('major', p_ushort),
+        ('minor', p_uint8),
+        ('rev', p_uint8),
+    )
+    def __str__(self):
+        return '%s.%s.%s' % (self.major, self.minor, self.rev)
+
+class mach_timestamp_helper(p_uint32):
+    def __str__(self):
+        return time.ctime(self)
+
+def read_struct(f, s, **kw):
+    return s.from_fileobj(f, **kw)
+
+class mach_header(Structure):
+    _fields_ = (
+        ('magic', p_uint32),
+        ('cputype', cpu_type_t),
+        ('cpusubtype', cpu_subtype_t),
+        ('filetype', p_uint32),
+        ('ncmds', p_uint32),
+        ('sizeofcmds', p_uint32),
+        ('flags', p_uint32),
+    )
+    def _describe(self):
+        bit = 1
+        flags = self.flags
+        dflags = []
+        while flags and bit < (1<<32):
+            if flags & bit:
+                dflags.append({'name': MH_FLAGS_NAMES.get(bit, str(bit)), 'description': MH_FLAGS_DESCRIPTIONS.get(bit, str(bit))})
+                flags = flags ^ bit
+            bit <<= 1
+        return (
+            ('magic', int(self.magic)),
+            ('cputype_string', CPU_TYPE_NAMES.get(self.cputype, self.cputype)),
+            ('cputype', int(self.cputype)),
+            ('cpusubtype_string', get_cpu_subtype(self.cputype, self.cpusubtype)),
+            ('cpusubtype', int(self.cpusubtype)),
+            ('filetype_string', MH_FILETYPE_NAMES.get(self.filetype, self.filetype)),
+            ('filetype', int(self.filetype)),
+            ('ncmds', self.ncmds),
+            ('sizeofcmds', self.sizeofcmds),
+            ('flags', dflags),
+            ('raw_flags', int(self.flags))
+        )
+
+class mach_header_64(mach_header):
+    _fields_ = mach_header._fields_ + (('reserved', p_uint32),)
+
+class load_command(Structure):
+    _fields_ = (
+        ('cmd', p_uint32),
+        ('cmdsize', p_uint32),
+    )
+
+    def get_cmd_name(self):
+        return LC_NAMES.get(self.cmd, self.cmd)
+
+LC_REQ_DYLD = 0x80000000
+
+(
+    LC_SEGMENT, LC_SYMTAB, LC_SYMSEG, LC_THREAD, LC_UNIXTHREAD, LC_LOADFVMLIB,
+    LC_IDFVMLIB, LC_IDENT, LC_FVMFILE, LC_PREPAGE, LC_DYSYMTAB, LC_LOAD_DYLIB,
+    LC_ID_DYLIB, LC_LOAD_DYLINKER, LC_ID_DYLINKER, LC_PREBOUND_DYLIB,
+    LC_ROUTINES, LC_SUB_FRAMEWORK, LC_SUB_UMBRELLA, LC_SUB_CLIENT,
+    LC_SUB_LIBRARY, LC_TWOLEVEL_HINTS, LC_PREBIND_CKSUM
+) = range(0x1, 0x18)
+
+LC_LOAD_WEAK_DYLIB = LC_REQ_DYLD | 0x18
+
+LC_SEGMENT_64 = 0x19
+LC_ROUTINES_64 = 0x1a
+LC_UUID = 0x1b
+LC_RPATH = (0x1c | LC_REQ_DYLD)
+LC_CODE_SIGNATURE = 0x1d
+LC_CODE_SEGMENT_SPLIT_INFO = 0x1e
+LC_REEXPORT_DYLIB = 0x1f | LC_REQ_DYLD
+LC_LAZY_LOAD_DYLIB = 0x20
+LC_ENCRYPTION_INFO = 0x21
+LC_DYLD_INFO = 0x22
+LC_DYLD_INFO_ONLY = 0x22 | LC_REQ_DYLD
+LC_LOAD_UPWARD_DYLIB = 0x23 | LC_REQ_DYLD
+LC_VERSION_MIN_MACOSX = 0x24
+LC_VERSION_MIN_IPHONEOS = 0x25
+LC_FUNCTION_STARTS = 0x26
+LC_DYLD_ENVIRONMENT = 0x27
+LC_MAIN = 0x28 | LC_REQ_DYLD
+LC_DATA_IN_CODE = 0x29
+LC_SOURCE_VERSION = 0x2a
+LC_DYLIB_CODE_SIGN_DRS = 0x2b
+LC_ENCRYPTION_INFO_64 = 0x2c
+LC_LINKER_OPTION = 0x2d
+
+
+# this is really a union.. but whatever
+class lc_str(p_uint32):
+    pass
+
+p_str16 = pypackable('p_str16', bytes, '16s')
+
+vm_prot_t = p_int32
+class segment_command(Structure):
+    _fields_ = (
+        ('segname', p_str16),
+        ('vmaddr', p_uint32),
+        ('vmsize', p_uint32),
+        ('fileoff', p_uint32),
+        ('filesize', p_uint32),
+        ('maxprot', vm_prot_t),
+        ('initprot', vm_prot_t),
+        ('nsects', p_uint32), # read the section structures ?
+        ('flags', p_uint32),
+    )
+
+    def describe(self):
+        segname = self.segname
+        s = {}
+        s['segname'] = self.segname.rstrip('\x00')
+        s['vmaddr'] = int(self.vmaddr)
+        s['vmsize'] = int(self.vmsize)
+        s['fileoff'] = int(self.fileoff)
+        s['filesize'] = int(self.filesize)
+        s['initprot'] = self.get_initial_virtual_memory_protections()
+        s['initprot_raw'] = int(self.initprot)
+        s['maxprot'] = self.get_max_virtual_memory_protections()
+        s['maxprot_raw'] = int(self.maxprot)
+        s['nsects'] = int(self.nsects)
+        s['flags'] = self.flags
+        return s
+
+    def get_initial_virtual_memory_protections(self):
+        vm = []
+        if self.initprot == 0:
+            vm.append("VM_PROT_NONE")
+        if self.initprot & 1:
+            vm.append("VM_PROT_READ")
+        if self.initprot & 2:
+            vm.append("VM_PROT_WRITE")
+        if self.initprot & 4:
+            vm.append("VM_PROT_EXECUTE")
+        return vm
+
+    def get_max_virtual_memory_protections(self):
+        vm = []
+        if self.maxprot == 0:
+            vm.append("VM_PROT_NONE")
+        if self.maxprot & 1:
+            vm.append("VM_PROT_READ")
+        if self.maxprot & 2:
+            vm.append("VM_PROT_WRITE")
+        if self.maxprot & 4:
+            vm.append("VM_PROT_EXECUTE")
+        return vm
+
+class segment_command_64(Structure):
+    _fields_ = (
+        ('segname', p_str16),
+        ('vmaddr', p_uint64),
+        ('vmsize', p_uint64),
+        ('fileoff', p_uint64),
+        ('filesize', p_uint64),
+        ('maxprot', vm_prot_t),
+        ('initprot', vm_prot_t),
+        ('nsects', p_uint32), # read the section structures ?
+        ('flags', p_uint32),
+    )
+
+    def describe(self):
+        s = {}
+        s['segname'] = self.segname.rstrip('\x00')
+        s['vmaddr'] = int(self.vmaddr)
+        s['vmsize'] = int(self.vmsize)
+        s['fileoff'] = int(self.fileoff)
+        s['filesize'] = int(self.filesize)
+        s['initprot'] = self.get_initial_virtual_memory_protections()
+        s['initprot_raw'] = int(self.initprot)
+        s['maxprot'] = self.get_max_virtual_memory_protections()
+        s['maxprot_raw'] = int(self.maxprot)
+        s['nsects'] = int(self.nsects)
+        s['flags'] = self.flags
+        return s
+
+    def get_initial_virtual_memory_protections(self):
+        vm = []
+        if self.initprot == 0:
+            vm.append("VM_PROT_NONE")
+        if self.initprot & 1:
+            vm.append("VM_PROT_READ")
+        if self.initprot & 2:
+            vm.append("VM_PROT_WRITE")
+        if self.initprot & 4:
+            vm.append("VM_PROT_EXECUTE")
+        return vm
+
+    def get_max_virtual_memory_protections(self):
+        vm = []
+        if self.maxprot == 0:
+            vm.append("VM_PROT_NONE")
+        if self.maxprot & 1:
+            vm.append("VM_PROT_READ")
+        if self.maxprot & 2:
+            vm.append("VM_PROT_WRITE")
+        if self.maxprot & 4:
+            vm.append("VM_PROT_EXECUTE")
+        return vm
+
+
+SG_HIGHVM = 0x1
+SG_FVMLIB = 0x2
+SG_NORELOC = 0x4
+
+class section(Structure):
+    _fields_ = (
+        ('sectname', p_str16),
+        ('segname', p_str16),
+        ('addr', p_uint32),
+        ('size', p_uint32),
+        ('offset', p_uint32),
+        ('align', p_uint32),
+        ('reloff', p_uint32),
+        ('nreloc', p_uint32),
+        ('flags', p_uint32),
+        ('reserved1', p_uint32),
+        ('reserved2', p_uint32),
+    )
+
+    def describe(self):
+        s = {}
+        s['sectname'] = self.sectname.rstrip('\x00')
+        s['segname'] = self.segname.rstrip('\x00')
+        s['addr'] = int(self.addr)
+        s['size'] = int(self.size)
+        s['offset'] = int(self.offset)
+        s['align'] = int(self.align)
+        s['reloff'] = int(self.reloff)
+        s['nreloc'] = int(self.nreloc)
+        f = {}
+        f['type'] = FLAG_SECTION_TYPES[int(self.flags) & 0xff]
+        f['attributes'] = []
+        for k in FLAG_SECTION_ATTRIBUTES:
+            if k & self.flags:
+                f['attributes'].append(FLAG_SECTION_ATTRIBUTES[k])
+        if not f['attributes']:
+            del f['attributes']
+        s['flags'] = f
+        s['reserved1'] = int(self.reserved1)
+        s['reserved2'] = int(self.reserved2)
+        return s
+
+    def add_section_data(self, data):
+        self.section_data = data
+
+class section_64(Structure):
+    _fields_ = (
+        ('sectname', p_str16),
+        ('segname', p_str16),
+        ('addr', p_uint64),
+        ('size', p_uint64),
+        ('offset', p_uint32),
+        ('align', p_uint32),
+        ('reloff', p_uint32),
+        ('nreloc', p_uint32),
+        ('flags', p_uint32),
+        ('reserved1', p_uint32),
+        ('reserved2', p_uint32),
+        ('reserved3', p_uint32),
+    )
+
+    def describe(self):
+        s = {}
+        s['sectname'] = self.sectname.rstrip('\x00')
+        s['segname'] = self.segname.rstrip('\x00')
+        s['addr'] = int(self.addr)
+        s['size'] = int(self.size)
+        s['offset'] = int(self.offset)
+        s['align'] = int(self.align)
+        s['reloff'] = int(self.reloff)
+        s['nreloc'] = int(self.nreloc)
+        f = {}
+        f['type'] = FLAG_SECTION_TYPES[int(self.flags) & 0xff]
+        f['attributes'] = []
+        for k in FLAG_SECTION_ATTRIBUTES:
+            if k & self.flags:
+                f['attributes'].append(FLAG_SECTION_ATTRIBUTES[k])
+        if not f['attributes']:
+            del f['attributes']
+        s['flags'] = f
+        s['reserved1'] = int(self.reserved1)
+        s['reserved2'] = int(self.reserved2)
+        s['reserved3'] = int(self.reserved3)
+        return s
+
+    def add_section_data(self, data):
+        self.section_data = data
+
+SECTION_TYPE = 0xff
+SECTION_ATTRIBUTES = 0xffffff00
+S_REGULAR = 0x0
+S_ZEROFILL = 0x1
+S_CSTRING_LITERALS = 0x2
+S_4BYTE_LITERALS = 0x3
+S_8BYTE_LITERALS = 0x4
+S_LITERAL_POINTERS = 0x5
+S_NON_LAZY_SYMBOL_POINTERS = 0x6
+S_LAZY_SYMBOL_POINTERS = 0x7
+S_SYMBOL_STUBS = 0x8
+S_MOD_INIT_FUNC_POINTERS = 0x9
+S_MOD_TERM_FUNC_POINTERS = 0xa
+S_COALESCED = 0xb
+
+FLAG_SECTION_TYPES = {
+    0x0 : "S_REGULAR",
+    0x1 : "S_ZEROFILL",
+    0x2 : "S_CSTRING_LITERALS",
+    0x3 : "S_4BYTE_LITERALS",
+    0x4 : "S_8BYTE_LITERALS",
+    0x5 : "S_LITERAL_POINTERS",
+    0x6 : "S_NON_LAZY_SYMBOL_POINTERS",
+    0x7 : "S_LAZY_SYMBOL_POINTERS",
+    0x8 : "S_SYMBOL_STUBS",
+    0x9 : "S_MOD_INIT_FUNC_POINTERS",
+    0xa : "S_MOD_TERM_FUNC_POINTERS",
+    0xb : "S_COALESCED",
+    0xc : "S_GB_ZEROFILL",
+    0xd : "S_INTERPOSING",
+    0xe : "S_16BYTE_LITERALS",
+    0xf : "S_DTRACE_DOF",
+    0x10 : "S_LAZY_DYLIB_SYMBOL_POINTERS",
+    0x11 : "S_THREAD_LOCAL_REGULAR",
+    0x12 : "S_THREAD_LOCAL_ZEROFILL",
+    0x13 : "S_THREAD_LOCAL_VARIABLES",
+    0x14 : "S_THREAD_LOCAL_VARIABLE_POINTERS",
+    0x15 : "S_THREAD_LOCAL_INIT_FUNCTION_POINTERS"
+}
+
+
+FLAG_SECTION_ATTRIBUTES = {
+    0x80000000 : "S_ATTR_PURE_INSTRUCTIONS",
+    0x40000000 : "S_ATTR_NO_TOC",
+    0x20000000 : "S_ATTR_STRIP_STATIC_SYMS",
+    0x10000000 : "S_ATTR_NO_DEAD_STRIP",
+    0x08000000 : "S_ATTR_LIVE_SUPPORT",
+    0x04000000 : "S_ATTR_SELF_MODIFYING_CODE",
+    0x02000000 : "S_ATTR_DEBUG",
+    0x00000400 : "S_ATTR_SOME_INSTRUCTIONS",
+    0x00000200 : "S_ATTR_EXT_RELOC",
+    0x00000100 : "S_ATTR_LOC_RELOC"
+}
+
+SECTION_ATTRIBUTES_USR = 0xff000000
+S_ATTR_PURE_INSTRUCTIONS = 0x80000000
+S_ATTR_NO_TOC = 0x40000000
+S_ATTR_STRIP_STATIC_SYMS = 0x20000000
+SECTION_ATTRIBUTES_SYS = 0x00ffff00
+S_ATTR_SOME_INSTRUCTIONS = 0x00000400
+S_ATTR_EXT_RELOC = 0x00000200
+S_ATTR_LOC_RELOC = 0x00000100
+
+
+SEG_PAGEZERO =    "__PAGEZERO"
+SEG_TEXT =    "__TEXT"
+SECT_TEXT =   "__text"
+SECT_FVMLIB_INIT0 = "__fvmlib_init0"
+SECT_FVMLIB_INIT1 = "__fvmlib_init1"
+SEG_DATA =    "__DATA"
+SECT_DATA =   "__data"
+SECT_BSS =    "__bss"
+SECT_COMMON = "__common"
+SEG_OBJC =    "__OBJC"
+SECT_OBJC_SYMBOLS = "__symbol_table"
+SECT_OBJC_MODULES = "__module_info"
+SECT_OBJC_STRINGS = "__selector_strs"
+SECT_OBJC_REFS = "__selector_refs"
+SEG_ICON =     "__ICON"
+SECT_ICON_HEADER = "__header"
+SECT_ICON_TIFF =   "__tiff"
+SEG_LINKEDIT =    "__LINKEDIT"
+SEG_UNIXSTACK =   "__UNIXSTACK"
+
+#
+#  I really should remove all these _command classes because they
+#  are no different.  I decided to keep the load commands separate,
+#  so classes like fvmlib and fvmlib_command are equivalent.
+#
+
+class fvmlib(Structure):
+    _fields_ = (
+        ('name', lc_str),
+        ('minor_version', mach_version_helper),
+        ('header_addr', p_uint32),
+    )
+
+class fvmlib_command(Structure):
+    _fields_ = fvmlib._fields_
+
+    def describe(self):
+        s = {}
+        s['header_addr'] = int(self.header_addr)
+        return s
+
+class dylib(Structure):
+    _fields_ = (
+        ('name', lc_str),
+        ('timestamp', mach_timestamp_helper),
+        ('current_version', mach_version_helper),
+        ('compatibility_version', mach_version_helper),
+    )
+
+# merged dylib structure
+class dylib_command(Structure):
+    _fields_ = dylib._fields_
+
+    def describe(self):
+        s = {}
+        s['timestamp'] = str(self.timestamp)
+        s['current_version'] = str(self.current_version)
+        s['compatibility_version'] = str(self.compatibility_version)
+        return s
+
+class sub_framework_command(Structure):
+    _fields_ = (
+        ('umbrella', lc_str),
+    )
+
+    def describe(self):
+        return {}
+
+class sub_client_command(Structure):
+    _fields_ = (
+        ('client', lc_str),
+    )
+
+    def describe(self):
+        return {}
+
+class sub_umbrella_command(Structure):
+    _fields_ = (
+        ('sub_umbrella', lc_str),
+    )
+
+    def describe(self):
+        return {}
+
+class sub_library_command(Structure):
+    _fields_ = (
+        ('sub_library', lc_str),
+    )
+
+    def describe(self):
+        return {}
+
+class prebound_dylib_command(Structure):
+    _fields_ = (
+        ('name', lc_str),
+        ('nmodules', p_uint32),
+        ('linked_modules', lc_str),
+    )
+
+    def describe(self):
+        return {'nmodules': int(self.nmodules)}
+
+class dylinker_command(Structure):
+    _fields_ = (
+        ('name', lc_str),
+    )
+
+    def describe(self):
+        return {}
+
+class thread_command(Structure):
+    _fields_ = (
+    )
+
+    def describe(self):
+        return {}
+
+class entry_point_command(Structure):
+    _fields_ = (
+	    ('entryoff', 	p_uint64),
+	    ('stacksize', 	p_uint64),
+    )
+
+    def describe(self):
+        s = {}
+        s['entryoff'] = int(self.entryoff)
+        s['stacksize'] = int(self.stacksize)
+        return s
+
+class routines_command(Structure):
+    _fields_ = (
+        ('init_address', p_uint32),
+        ('init_module', p_uint32),
+        ('reserved1', p_uint32),
+        ('reserved2', p_uint32),
+        ('reserved3', p_uint32),
+        ('reserved4', p_uint32),
+        ('reserved5', p_uint32),
+        ('reserved6', p_uint32),
+    )
+
+    def describe(self):
+        s = {}
+        s['init_address'] = int(self.init_address)
+        s['init_module'] = int(self.init_module)
+        s['reserved1'] = int(self.reserved1)
+        s['reserved2'] = int(self.reserved2)
+        s['reserved3'] = int(self.reserved3)
+        s['reserved4'] = int(self.reserved4)
+        s['reserved5'] = int(self.reserved5)
+        s['reserved6'] = int(self.reserved6)
+        return s
+
+class routines_command_64(Structure):
+    _fields_ = (
+        ('init_address', p_uint64),
+        ('init_module', p_uint64),
+        ('reserved1', p_uint64),
+        ('reserved2', p_uint64),
+        ('reserved3', p_uint64),
+        ('reserved4', p_uint64),
+        ('reserved5', p_uint64),
+        ('reserved6', p_uint64),
+    )
+
+    def describe(self):
+        s = {}
+        s['init_address'] = int(self.init_address)
+        s['init_module'] = int(self.init_module)
+        s['reserved1'] = int(self.reserved1)
+        s['reserved2'] = int(self.reserved2)
+        s['reserved3'] = int(self.reserved3)
+        s['reserved4'] = int(self.reserved4)
+        s['reserved5'] = int(self.reserved5)
+        s['reserved6'] = int(self.reserved6)
+        return s
+
+class symtab_command(Structure):
+    _fields_ = (
+        ('symoff', p_uint32),
+        ('nsyms', p_uint32),
+        ('stroff', p_uint32),
+        ('strsize', p_uint32),
+    )
+
+    def describe(self):
+        s = {}
+        s['symoff'] = int(self.symoff)
+        s['nsyms'] = int(self.nsyms)
+        s['stroff'] = int(self.stroff)
+        s['strsize'] = int(self.strsize)
+        return s
+
+
+class dysymtab_command(Structure):
+    _fields_ = (
+        ('ilocalsym', p_uint32),
+        ('nlocalsym', p_uint32),
+        ('iextdefsym', p_uint32),
+        ('nextdefsym', p_uint32),
+        ('iundefsym', p_uint32),
+        ('nundefsym', p_uint32),
+        ('tocoff', p_uint32),
+        ('ntoc', p_uint32),
+        ('modtaboff', p_uint32),
+        ('nmodtab', p_uint32),
+        ('extrefsymoff', p_uint32),
+        ('nextrefsyms', p_uint32),
+        ('indirectsymoff', p_uint32),
+        ('nindirectsyms', p_uint32),
+        ('extreloff', p_uint32),
+        ('nextrel', p_uint32),
+        ('locreloff', p_uint32),
+        ('nlocrel', p_uint32),
+    )
+
+    def describe(self):
+        dys = {}
+        dys['ilocalsym'] = int(self.ilocalsym)
+        dys['nlocalsym'] = int(self.nlocalsym)
+        dys['iextdefsym'] = int(self.iextdefsym)
+        dys['nextdefsym'] = int(self.nextdefsym)
+        dys['iundefsym'] = int(self.iundefsym)
+        dys['nundefsym'] = int(self.nundefsym)
+        dys['tocoff'] = int(self.tocoff)
+        dys['ntoc'] = int(self.ntoc)
+        dys['modtaboff'] = int(self.modtaboff)
+        dys['nmodtab'] = int(self.nmodtab)
+        dys['extrefsymoff'] = int(self.extrefsymoff)
+        dys['nextrefsyms'] = int(self.nextrefsyms)
+        dys['indirectsymoff'] = int(self.indirectsymoff)
+        dys['nindirectsyms'] = int(self.nindirectsyms)
+        dys['extreloff'] = int(self.extreloff)
+        dys['nextrel'] = int(self.nextrel)
+        dys['locreloff'] = int(self.locreloff)
+        dys['nlocrel'] = int(self.nlocrel)
+        return dys
+
+INDIRECT_SYMBOL_LOCAL = 0x80000000
+INDIRECT_SYMBOL_ABS = 0x40000000
+
+class dylib_table_of_contents(Structure):
+    _fields_ = (
+        ('symbol_index', p_uint32),
+        ('module_index', p_uint32),
+    )
+
+class dylib_module(Structure):
+    _fields_ = (
+        ('module_name', p_uint32),
+        ('iextdefsym', p_uint32),
+        ('nextdefsym', p_uint32),
+        ('irefsym', p_uint32),
+        ('nrefsym', p_uint32),
+        ('ilocalsym', p_uint32),
+        ('nlocalsym', p_uint32),
+        ('iextrel', p_uint32),
+        ('nextrel', p_uint32),
+        ('iinit_iterm', p_uint32),
+        ('ninit_nterm', p_uint32),
+        ('objc_module_info_addr', p_uint32),
+        ('objc_module_info_size', p_uint32),
+    )
+
+class dylib_module_64(Structure):
+    _fields_ = (
+        ('module_name', p_uint32),
+        ('iextdefsym', p_uint32),
+        ('nextdefsym', p_uint32),
+        ('irefsym', p_uint32),
+        ('nrefsym', p_uint32),
+        ('ilocalsym', p_uint32),
+        ('nlocalsym', p_uint32),
+        ('iextrel', p_uint32),
+        ('nextrel', p_uint32),
+        ('iinit_iterm', p_uint32),
+        ('ninit_nterm', p_uint32),
+        ('objc_module_info_size', p_uint32),
+        ('objc_module_info_addr', p_uint64),
+    )
+
+class dylib_reference(Structure):
+    _fields_ = (
+        # XXX - ick, fix
+        ('isym_flags', p_uint32),
+        #('isym', p_uint8 * 3),
+        #('flags', p_uint8),
+    )
+
+class twolevel_hints_command(Structure):
+    _fields_ = (
+        ('offset', p_uint32),
+        ('nhints', p_uint32),
+    )
+
+    def describe(self):
+        s = {}
+        s['offset'] = int(self.offset)
+        s['nhints'] = int(self.nhints)
+        return s
+
+class twolevel_hint(Structure):
+    _fields_ = (
+      # XXX - ick, fix
+      ('isub_image_itoc', p_uint32),
+      #('isub_image', p_uint8),
+      #('itoc', p_uint8 * 3),
+  )
+
+class prebind_cksum_command(Structure):
+    _fields_ = (
+        ('cksum', p_uint32),
+    )
+
+    def describe(self):
+        return {'cksum': int(self.cksum)}
+
+class symseg_command(Structure):
+    _fields_ = (
+        ('offset', p_uint32),
+        ('size', p_uint32),
+    )
+
+    def describe(self):
+        s = {}
+        s['offset'] = int(self.offset)
+        s['size'] = int(self.size)
+
+class ident_command(Structure):
+    _fields_ = (
+    )
+
+    def describe(self):
+        return {}
+
+class fvmfile_command(Structure):
+    _fields_ = (
+        ('name', lc_str),
+        ('header_addr', p_uint32),
+    )
+
+    def describe(self):
+        return {'header_addr': int(self.header_addr)}
+
+class uuid_command (Structure):
+    _fields_ = (
+        ('uuid', p_str16),
+    )
+
+    def describe(self):
+        return {'uuid': self.uuid.rstrip('\x00')}
+
+class rpath_command (Structure):
+    _fields_ = (
+        ('path', lc_str),
+    )
+
+    def describe(self):
+        return {}
+
+
+class linkedit_data_command (Structure):
+    _fields_ = (
+        ('dataoff',   p_uint32),
+        ('datasize', p_uint32),
+    )
+
+    def describe(self):
+        s = {}
+        s['dataoff'] = int(self.dataoff)
+        s['datasize'] = int(self.datasize)
+        return s
+
+
+class version_min_command (Structure):
+    _fields_ = (
+        ('version', p_uint32), # X.Y.Z is encoded in nibbles xxxx.yy.zz
+        ('reserved', p_uint32),
+    )
+
+    def describe(self):
+        v = int(self.version)
+        v3 = v & 0xFF
+        v = v >> 8
+        v2 = v & 0xFF
+        v = v >> 8
+        v1 = v & 0xFFFF
+        return {'version': str(int(v1)) + "." + str(int(v2)) + "." + str(int(v3))}
+
+class source_version_command (Structure):
+    _fields_ = (
+        ('version',   p_uint64),
+    )
+
+    def describe(self):
+        v = int(self.version)
+        a = v >> 40
+        b = (v >> 30) & 0x3ff
+        c = (v >> 20) & 0x3ff
+        d = (v >> 10) & 0x3ff
+        e = v & 0x3ff
+        r = str(a)+'.'+str(b)+'.'+str(c)+'.'+str(d)+'.'+str(e)
+        return {'version': r}
+
+class encryption_info_command (Structure):
+    _fields_ = (
+        ('cryptoff',    p_uint32),
+        ('cryptsize',   p_uint32),
+        ('cryptid',     p_uint32),
+    )
+
+    def describe(self):
+        s = {}
+        s['cryptoff'] = int(self.cryptoff)
+        s['cryptsize'] = int(self.cryptsize)
+        s['cryptid'] = int(self.cryptid)
+        return s
+
+class encryption_info_command_64 (Structure):
+    _fields_ = (
+        ('cryptoff',    p_uint32),
+        ('cryptsize',   p_uint32),
+        ('cryptid',     p_uint32),
+        ('pad',         p_uint32),
+    )
+
+    def describe(self):
+        s = {}
+        s['cryptoff'] = int(self.cryptoff)
+        s['cryptsize'] = int(self.cryptsize)
+        s['cryptid'] = int(self.cryptid)
+        s['pad'] = int(self.pad)
+        return s
+
+
+class dyld_info_command (Structure):
+    _fields_ = (
+        ('rebase_off',     p_uint32),
+        ('rebase_size',    p_uint32),
+        ('bind_off',       p_uint32),
+        ('bind_size',      p_uint32),
+        ('weak_bind_off',  p_uint32),
+        ('weak_bind_size', p_uint32),
+        ('lazy_bind_off',  p_uint32),
+        ('lazy_bind_size', p_uint32),
+        ('export_off',     p_uint32),
+        ('export_size',    p_uint32),
+    )
+
+    def describe(self):
+        dyld = {}
+        dyld['rebase_off'] = int(self.rebase_off)
+        dyld['rebase_size'] = int(self.rebase_size)
+        dyld['bind_off'] = int(self.bind_off)
+        dyld['bind_size'] = int(self.bind_size)
+        dyld['weak_bind_off'] = int(self.weak_bind_off)
+        dyld['weak_bind_size'] = int(self.weak_bind_size)
+        dyld['lazy_bind_off'] = int(self.lazy_bind_off)
+        dyld['lazy_bind_size'] = int(self.lazy_bind_size)
+        dyld['export_off'] = int(self.export_off)
+        dyld['export_size'] = int(self.export_size)
+        return dyld
+
+class linker_option_command (Structure):
+    _fields_ = (
+        ('count',         p_uint32),
+    )
+
+    def describe(self):
+        return {'count': int(self.count)}
+
+
+LC_REGISTRY = {
+    LC_SEGMENT:         segment_command,
+    LC_IDFVMLIB:        fvmlib_command,
+    LC_LOADFVMLIB:      fvmlib_command,
+    LC_ID_DYLIB:        dylib_command,
+    LC_LOAD_DYLIB:      dylib_command,
+    LC_LOAD_WEAK_DYLIB: dylib_command,
+    LC_SUB_FRAMEWORK:   sub_framework_command,
+    LC_SUB_CLIENT:      sub_client_command,
+    LC_SUB_UMBRELLA:    sub_umbrella_command,
+    LC_SUB_LIBRARY:     sub_library_command,
+    LC_PREBOUND_DYLIB:  prebound_dylib_command,
+    LC_ID_DYLINKER:     dylinker_command,
+    LC_LOAD_DYLINKER:   dylinker_command,
+    LC_THREAD:          thread_command,
+    LC_UNIXTHREAD:      thread_command,
+    LC_ROUTINES:        routines_command,
+    LC_SYMTAB:          symtab_command,
+    LC_DYSYMTAB:        dysymtab_command,
+    LC_TWOLEVEL_HINTS:  twolevel_hints_command,
+    LC_PREBIND_CKSUM:   prebind_cksum_command,
+    LC_SYMSEG:          symseg_command,
+    LC_IDENT:           ident_command,
+    LC_FVMFILE:         fvmfile_command,
+    LC_SEGMENT_64:      segment_command_64,
+    LC_ROUTINES_64:     routines_command_64,
+    LC_UUID:            uuid_command,
+    LC_RPATH:           rpath_command,
+    LC_CODE_SIGNATURE:  linkedit_data_command,
+    LC_CODE_SEGMENT_SPLIT_INFO:  linkedit_data_command,
+    LC_REEXPORT_DYLIB:  dylib_command,
+    LC_LAZY_LOAD_DYLIB: dylib_command,
+    LC_ENCRYPTION_INFO: encryption_info_command,
+    LC_DYLD_INFO:       dyld_info_command,
+    LC_DYLD_INFO_ONLY:  dyld_info_command,
+    LC_LOAD_UPWARD_DYLIB: dylib_command,
+    LC_VERSION_MIN_MACOSX: version_min_command,
+    LC_VERSION_MIN_IPHONEOS: version_min_command,
+    LC_FUNCTION_STARTS:  linkedit_data_command,
+    LC_DYLD_ENVIRONMENT: dylinker_command,
+    LC_MAIN: 		entry_point_command,
+    LC_DATA_IN_CODE:	linkedit_data_command,
+    LC_SOURCE_VERSION:	source_version_command,
+    LC_DYLIB_CODE_SIGN_DRS:  linkedit_data_command,
+    LC_ENCRYPTION_INFO_64: encryption_info_command_64,
+    LC_LINKER_OPTION:  linker_option_command,
+}
+
+LC_NAMES = {
+    LC_SEGMENT:                     'LC_SEGMENT',
+    LC_IDFVMLIB:                    'LC_IDFVMLIB',
+    LC_LOADFVMLIB:                  'LC_LOADFVMLIB',
+    LC_ID_DYLIB:                    'LC_ID_DYLIB',
+    LC_LOAD_DYLIB:                  'LC_LOAD_DYLIB',
+    LC_LOAD_WEAK_DYLIB:             'LC_LOAD_WEAK_DYLIB',
+    LC_SUB_FRAMEWORK:               'LC_SUB_FRAMEWORK',
+    LC_SUB_CLIENT:                  'LC_SUB_CLIENT',
+    LC_SUB_UMBRELLA:                'LC_SUB_UMBRELLA',
+    LC_SUB_LIBRARY:                 'LC_SUB_LIBRARY',
+    LC_PREBOUND_DYLIB:              'LC_PREBOUND_DYLIB',
+    LC_ID_DYLINKER:                 'LC_ID_DYLINKER',
+    LC_LOAD_DYLINKER:               'LC_LOAD_DYLINKER',
+    LC_THREAD:                      'LC_THREAD',
+    LC_UNIXTHREAD:                  'LC_UNIXTHREAD',
+    LC_ROUTINES:                    'LC_ROUTINES',
+    LC_SYMTAB:                      'LC_SYMTAB',
+    LC_DYSYMTAB:                    'LC_DYSYMTAB',
+    LC_TWOLEVEL_HINTS:              'LC_TWOLEVEL_HINTS',
+    LC_PREBIND_CKSUM:               'LC_PREBIND_CKSUM',
+    LC_SYMSEG:                      'LC_SYMSEG',
+    LC_IDENT:                       'LC_IDENT',
+    LC_FVMFILE:                     'LC_FVMFILE',
+    LC_SEGMENT_64:                  'LC_SEGMENT_64',
+    LC_ROUTINES_64:                 'LC_ROUTINES_64',
+    LC_UUID:                        'LC_UUID',
+    LC_RPATH:                       'LC_RPATH',
+    LC_CODE_SIGNATURE:              'LC_CODE_SIGNATURE',
+    LC_CODE_SEGMENT_SPLIT_INFO:     'LC_CODE_SEGMENT_SPLIT_INFO',
+    LC_REEXPORT_DYLIB:              'LC_REEXPORT_DYLIB',
+    LC_LAZY_LOAD_DYLIB:             'LC_LAZY_LOAD_DYLIB',
+    LC_ENCRYPTION_INFO:             'LC_ENCRYPTION_INFO',
+    LC_DYLD_INFO:                   'LC_DYLD_INFO',
+    LC_DYLD_INFO_ONLY:              'LC_DYLD_INFO_ONLY',
+    LC_LOAD_UPWARD_DYLIB:           'LC_LOAD_UPWARD_DYLIB',
+    LC_VERSION_MIN_MACOSX:          'LC_VERSION_MIN_MACOSX',
+    LC_VERSION_MIN_IPHONEOS:        'LC_VERSION_MIN_IPHONEOS',
+    LC_FUNCTION_STARTS:             'LC_FUNCTION_STARTS',
+    LC_DYLD_ENVIRONMENT:            'LC_DYLD_ENVIRONMENT',
+    LC_MAIN:                        'LC_MAIN',
+    LC_DATA_IN_CODE:                'LC_DATA_IN_CODE',
+    LC_SOURCE_VERSION:              'LC_SOURCE_VERSION',
+    LC_DYLIB_CODE_SIGN_DRS:         'LC_DYLIB_CODE_SIGN_DRS',
+}
+
+
+#this is another union.
+class n_un(p_int32):
+    pass
+
+class nlist(Structure):
+    _fields_ = (
+        ('n_un', n_un),
+        ('n_type', p_uint8),
+        ('n_sect', p_uint8),
+        ('n_desc', p_short),
+        ('n_value', p_uint32),
+    )
+
+class nlist_64(Structure):
+    _fields_ = [
+        ('n_un',    n_un),
+        ('n_type', p_uint8),
+        ('n_sect', p_uint8),
+        ('n_desc', p_short),
+        ('n_value', p_int64),
+    ]
+
+N_STAB = 0xe0
+N_PEXT = 0x10
+N_TYPE = 0x0e
+N_EXT = 0x01
+
+N_UNDF = 0x0
+N_ABS = 0x2
+N_SECT = 0xe
+N_PBUD = 0xc
+N_INDR = 0xa
+
+NO_SECT = 0
+MAX_SECT = 255
+
+REFERENCE_TYPE = 0xf
+REFERENCE_FLAG_UNDEFINED_NON_LAZY = 0
+REFERENCE_FLAG_UNDEFINED_LAZY = 1
+REFERENCE_FLAG_DEFINED = 2
+REFERENCE_FLAG_PRIVATE_DEFINED = 3
+REFERENCE_FLAG_PRIVATE_UNDEFINED_NON_LAZY = 4
+REFERENCE_FLAG_PRIVATE_UNDEFINED_LAZY = 5
+
+REFERENCED_DYNAMICALLY = 0x0010
+
+def GET_LIBRARY_ORDINAL(n_desc):
+    return (((n_desc) >> 8) & 0xff)
+
+def SET_LIBRARY_ORDINAL(n_desc, ordinal):
+    return (((n_desc) & 0x00ff) | (((ordinal & 0xff) << 8)))
+
+SELF_LIBRARY_ORDINAL = 0x0
+MAX_LIBRARY_ORDINAL = 0xfd
+DYNAMIC_LOOKUP_ORDINAL = 0xfe
+EXECUTABLE_ORDINAL = 0xff
+
+N_DESC_DISCARDED = 0x0020
+N_WEAK_REF = 0x0040
+N_WEAK_DEF = 0x0080
+
+# /usr/include/mach-o/fat.h
+FAT_MAGIC = 0xcafebabe
+class fat_header(Structure):
+    _fields_ = (
+        ('magic', p_uint32),
+        ('nfat_arch', p_uint32),
+    )
+
+class fat_arch(Structure):
+    _fields_ = (
+        ('cputype', cpu_type_t),
+        ('cpusubtype', cpu_subtype_t),
+        ('offset', p_uint32),
+        ('size', p_uint32),
+        ('align', p_uint32),
+    )
new file mode 100644
--- /dev/null
+++ b/python/macholib/macholib/macho_dump.py
@@ -0,0 +1,48 @@
+#!/usr/bin/env python
+
+from __future__ import print_function
+
+import os
+import sys
+
+from macholib._cmdline import main as _main
+from macholib.MachO import MachO
+from macholib.mach_o import *
+
+ARCH_MAP={
+    ('<', '64-bit'): 'x86_64',
+    ('<', '32-bit'): 'i386',
+    ('>', '64-bit'): 'ppc64',
+    ('>', '32-bit'): 'ppc',
+}
+
+def print_file(fp, path):
+    print(path, file=fp)
+    m = MachO(path)
+    for header in m.headers:
+        seen = set()
+        if header.MH_MAGIC == MH_MAGIC_64:
+            sz = '64-bit'
+        else:
+            sz = '32-bit'
+
+        arch = CPU_TYPE_NAMES.get(header.header.cputype,
+                header.header.cputype)
+
+        print('    [%s endian=%r size=%r arch=%r]' % (header.__class__.__name__,
+                header.endian, sz, arch), file=fp)
+        for idx, name, other in header.walkRelocatables():
+            if other not in seen:
+                seen.add(other)
+                print('\t' + other, file=fp)
+    print('', file=fp)
+
+def main():
+    print("WARNING: 'macho_dump' is deprecated, use 'python -mmacholib dump' instead")
+    _main(print_file)
+
+if __name__ == '__main__':
+    try:
+        sys.exit(main())
+    except KeyboardInterrupt:
+        pass
new file mode 100644
--- /dev/null
+++ b/python/macholib/macholib/macho_find.py
@@ -0,0 +1,17 @@
+#!/usr/bin/env python
+from __future__ import print_function
+from macholib._cmdline import main as _main
+
+
+def print_file(fp, path):
+    print(path, file=fp)
+
+def main():
+    print("WARNING: 'macho_find' is deprecated, use 'python -mmacholib dump' instead")
+    _main(print_file)
+
+if __name__ == '__main__':
+    try:
+        main()
+    except KeyboardInterrupt:
+        pass
new file mode 100644
--- /dev/null
+++ b/python/macholib/macholib/macho_standalone.py
@@ -0,0 +1,26 @@
+#!/usr/bin/env python
+
+import os
+import sys
+
+from macholib.MachOStandalone import MachOStandalone
+from macholib.util import strip_files
+
+def standaloneApp(path):
+    if not (os.path.isdir(path) and os.path.exists(
+            os.path.join(path, 'Contents'))):
+        print('%s: %s does not look like an app bundle'
+            % (sys.argv[0], path))
+        sys.exit(1)
+    files = MachOStandalone(path).run()
+    strip_files(files)
+
+def main():
+    print("WARNING: 'macho_standalone' is deprecated, use 'python -mmacholib standalone' instead")
+    if not sys.argv[1:]:
+        raise SystemExit('usage: %s [appbundle ...]' % (sys.argv[0],))
+    for fn in sys.argv[1:]:
+        standaloneApp(fn)
+
+if __name__ == '__main__':
+    main()
new file mode 100644
--- /dev/null
+++ b/python/macholib/macholib/ptypes.py
@@ -0,0 +1,290 @@
+"""
+This module defines packable types, that is types than can be easily converted to a binary format
+as used in MachO headers.
+"""
+import struct
+import sys
+
+try:
+    from itertools import izip, imap
+except ImportError:
+    izip, imap = zip, map
+from itertools import chain, starmap
+import warnings
+
+__all__ = """
+sizeof
+BasePackable
+Structure
+pypackable
+p_char
+p_byte
+p_ubyte
+p_short
+p_ushort
+p_int
+p_uint
+p_long
+p_ulong
+p_longlong
+p_ulonglong
+p_int8
+p_uint8
+p_int16
+p_uint16
+p_int32
+p_uint32
+p_int64
+p_uint64
+p_float
+p_double
+""".split()
+
+def sizeof(s):
+    """
+    Return the size of an object when packed
+    """
+    if hasattr(s, '_size_'):
+        return s._size_
+
+    elif isinstance(s, bytes):
+        return len(s)
+
+    raise ValueError(s)
+
+class MetaPackable(type):
+    """
+    Fixed size struct.unpack-able types use from_tuple as their designated initializer
+    """
+    def from_mmap(cls, mm, ptr, **kw):
+        return cls.from_str(mm[ptr:ptr+cls._size_], **kw)
+
+    def from_fileobj(cls, f, **kw):
+        return cls.from_str(f.read(cls._size_), **kw)
+
+    def from_str(cls, s, **kw):
+        endian = kw.get('_endian_', cls._endian_)
+        return cls.from_tuple(struct.unpack(endian + cls._format_, s), **kw)
+
+    def from_tuple(cls, tpl, **kw):
+        return cls(tpl[0], **kw)
+
+class BasePackable(object):
+    _endian_ = '>'
+
+    def to_str(self):
+        raise NotImplementedError
+
+    def to_fileobj(self, f):
+        f.write(self.to_str())
+
+    def to_mmap(self, mm, ptr):
+        mm[ptr:ptr+self._size_] = self.to_str()
+
+
+# This defines a class with a custom metaclass, we'd normally
+# use "class Packable(BasePackable, metaclass=MetaPackage)",
+# but that syntax is not valid in Python 2 (and likewise the
+# python 2 syntax is not valid in Python 3)
+def _make():
+    def to_str(self):
+        cls = type(self)
+        endian = getattr(self, '_endian_', cls._endian_)
+        return struct.pack(endian + cls._format_, self)
+    return MetaPackable("Packable", (BasePackable,), {'to_str': to_str})
+Packable = _make()
+del _make
+
+def pypackable(name, pytype, format):
+    """
+    Create a "mix-in" class with a python type and a
+    Packable with the given struct format
+    """
+    size, items = _formatinfo(format)
+    return type(Packable)(name, (pytype, Packable), {
+        '_format_': format,
+        '_size_': size,
+        '_items_': items,
+    })
+
+def _formatinfo(format):
+    """
+    Calculate the size and number of items in a struct format.
+    """
+    size = struct.calcsize(format)
+    return size, len(struct.unpack(format, b'\x00' * size))
+
+class MetaStructure(MetaPackable):
+    """
+    The metaclass of Structure objects that does all the magic.
+
+    Since we can assume that all Structures have a fixed size,
+    we can do a bunch of calculations up front and pack or
+    unpack the whole thing in one struct call.
+    """
+    def __new__(cls, clsname, bases, dct):
+        fields = dct['_fields_']
+        names = []
+        types = []
+        structmarks = []
+        format = ''
+        items = 0
+        size = 0
+
+        def struct_property(name, typ):
+            def _get(self):
+                return self._objects_[name]
+            def _set(self, obj):
+                if type(obj) is not typ:
+                    obj = typ(obj)
+                self._objects_[name] = obj
+            return property(_get, _set, typ.__name__)
+
+        for name, typ in fields:
+            dct[name] = struct_property(name, typ)
+            names.append(name)
+            types.append(typ)
+            format += typ._format_
+            size += typ._size_
+            if (typ._items_ > 1):
+                structmarks.append((items, typ._items_, typ))
+            items += typ._items_
+
+        dct['_structmarks_'] = structmarks
+        dct['_names_'] = names
+        dct['_types_'] = types
+        dct['_size_'] = size
+        dct['_items_'] = items
+        dct['_format_'] = format
+        return super(MetaStructure, cls).__new__(cls, clsname, bases, dct)
+
+    def from_tuple(cls, tpl, **kw):
+        values = []
+        current = 0
+        for begin, length, typ in cls._structmarks_:
+            if begin > current:
+                values.extend(tpl[current:begin])
+            current = begin + length
+            values.append(typ.from_tuple(tpl[begin:current], **kw))
+        values.extend(tpl[current:])
+        return cls(*values, **kw)
+
+# See metaclass discussion earlier in this file
+def _make():
+    class_dict={}
+    class_dict['_fields_'] = ()
+
+    def as_method(function):
+        class_dict[function.__name__] = function
+
+    @as_method
+    def __init__(self, *args, **kwargs):
+        if len(args) == 1 and not kwargs and type(args[0]) is type(self):
+            kwargs = args[0]._objects_
+            args = ()
+        self._objects_ = {}
+        iargs = chain(izip(self._names_, args), kwargs.items())
+        for key, value in iargs:
+            if key not in self._names_ and key != "_endian_":
+                raise TypeError
+            setattr(self, key, value)
+        for key, typ in izip(self._names_, self._types_):
+            if key not in self._objects_:
+                self._objects_[key] = typ()
+
+    @as_method
+    def _get_packables(self):
+        for obj in imap(self._objects_.__getitem__, self._names_):
+            if obj._items_ == 1:
+                yield obj
+            else:
+                for obj in obj._get_packables():
+                    yield obj
+
+    @as_method
+    def to_str(self):
+        return struct.pack(self._endian_ + self._format_, *self._get_packables())
+
+    @as_method
+    def __cmp__(self, other):
+        if type(other) is not type(self):
+            raise TypeError('Cannot compare objects of type %r to objects of type %r' % (type(other), type(self)))
+        if sys.version_info[0] == 2:
+            _cmp = cmp
+        else:
+            def _cmp(a, b):
+                if a < b:
+                    return -1
+                elif a > b:
+                    return 1
+                elif a == b:
+                    return 0
+                else:
+                    raise TypeError()
+
+        for cmpval in starmap(_cmp, izip(self._get_packables(), other._get_packables())):
+            if cmpval != 0:
+                return cmpval
+        return 0
+
+    @as_method
+    def __eq__(self, other):
+        r = self.__cmp__(other)
+        return r == 0
+
+    @as_method
+    def __ne__(self, other):
+        r = self.__cmp__(other)
+        return r != 0
+
+    @as_method
+    def __lt__(self, other):
+        r = self.__cmp__(other)
+        return r < 0
+
+    @as_method
+    def __le__(self, other):
+        r = self.__cmp__(other)
+        return r <= 0
+
+    @as_method
+    def __gt__(self, other):
+        r = self.__cmp__(other)
+        return r > 0
+
+    @as_method
+    def __ge__(self, other):
+        r = self.__cmp__(other)
+        return r >= 0
+
+    return MetaStructure("Structure", (BasePackable,), class_dict)
+Structure = _make()
+del _make
+
+try:
+    long
+except NameError:
+    long = int
+
+# export common packables with predictable names
+p_char = pypackable('p_char', bytes, 'c')
+p_int8 = pypackable('p_int8', int, 'b')
+p_uint8 = pypackable('p_uint8', int, 'B')
+p_int16 = pypackable('p_int16', int, 'h')
+p_uint16 = pypackable('p_uint16', int, 'H')
+p_int32 = pypackable('p_int32', int, 'i')
+p_uint32 = pypackable('p_uint32', long, 'I')
+p_int64 = pypackable('p_int64', long, 'q')
+p_uint64 = pypackable('p_uint64', long, 'Q')
+p_float = pypackable('p_float', float, 'f')
+p_double = pypackable('p_double', float, 'd')
+
+# Deprecated names, need trick to emit deprecation warning.
+p_byte = p_int8
+p_ubyte = p_uint8
+p_short = p_int16
+p_ushort = p_uint16
+p_int = p_long = p_int32
+p_uint = p_ulong = p_uint32
+p_longlong = p_int64
+p_ulonglong = p_uint64
new file mode 100644
--- /dev/null
+++ b/python/macholib/macholib/util.py
@@ -0,0 +1,245 @@
+import os
+import sys
+import stat
+import operator
+import struct
+import shutil
+
+#from modulegraph.util import *
+
+from macholib import mach_o
+
+MAGIC = [
+    struct.pack('!L', getattr(mach_o, 'MH_' + _))
+    for _ in ['MAGIC', 'CIGAM', 'MAGIC_64', 'CIGAM_64']
+]
+FAT_MAGIC_BYTES = struct.pack('!L', mach_o.FAT_MAGIC)
+MAGIC_LEN = 4
+STRIPCMD = ['/usr/bin/strip', '-x', '-S', '-']
+
+try:
+    unicode
+except NameError:
+    unicode = str
+
+
+def fsencoding(s, encoding=sys.getfilesystemencoding()):
+    """
+    Ensure the given argument is in filesystem encoding (not unicode)
+    """
+    if isinstance(s, unicode):
+        s = s.encode(encoding)
+    return s
+
+def move(src, dst):
+    """
+    move that ensures filesystem encoding of paths
+    """
+    shutil.move(fsencoding(src), fsencoding(dst))
+
+def copy2(src, dst):
+    """
+    copy2 that ensures filesystem encoding of paths
+    """
+    shutil.copy2(fsencoding(src), fsencoding(dst))
+
+def flipwritable(fn, mode=None):
+    """
+    Flip the writability of a file and return the old mode. Returns None
+    if the file is already writable.
+    """
+    if os.access(fn, os.W_OK):
+        return None
+    old_mode = os.stat(fn).st_mode
+    os.chmod(fn, stat.S_IWRITE | old_mode)
+    return old_mode
+
+class fileview(object):
+    """
+    A proxy for file-like objects that exposes a given view of a file
+    """
+
+    def __init__(self, fileobj, start, size):
+        self._fileobj = fileobj
+        self._start = start
+        self._end = start + size
+
+    def __repr__(self):
+        return '<fileview [%d, %d] %r>' % (
+            self._start, self._end, self._fileobj)
+
+    def tell(self):
+        return self._fileobj.tell() - self._start
+
+    def _checkwindow(self, seekto, op):
+        if not (self._start <= seekto <= self._end):
+            raise IOError("%s to offset %d is outside window [%d, %d]" % (
+                op, seekto, self._start, self._end))
+
+    def seek(self, offset, whence=0):
+        seekto = offset
+        if whence == 0:
+            seekto += self._start
+        elif whence == 1:
+            seekto += self._fileobj.tell()
+        elif whence == 2:
+            seekto += self._end
+        else:
+            raise IOError("Invalid whence argument to seek: %r" % (whence,))
+        self._checkwindow(seekto, 'seek')
+        self._fileobj.seek(seekto)
+
+    def write(self, bytes):
+        here = self._fileobj.tell()
+        self._checkwindow(here, 'write')
+        self._checkwindow(here + len(bytes), 'write')
+        self._fileobj.write(bytes)
+
+    def read(self, size=sys.maxsize):
+        if size < 0:
+            raise ValueError("Invalid size %s while reading from %s", size, self._fileobj)
+        here = self._fileobj.tell()
+        self._checkwindow(here, 'read')
+        bytes = min(size, self._end - here)
+        return self._fileobj.read(bytes)
+
+
+def mergecopy(src, dest):
+    """
+    copy2, but only if the destination isn't up to date
+    """
+    if os.path.exists(dest) and os.stat(dest).st_mtime >= os.stat(src).st_mtime:
+        return
+
+    copy2(src, dest)
+
+def mergetree(src, dst, condition=None, copyfn=mergecopy, srcbase=None):
+    """
+    Recursively merge a directory tree using mergecopy().
+    """
+    src = fsencoding(src)
+    dst = fsencoding(dst)
+    if srcbase is None:
+        srcbase = src
+    names = map(fsencoding, os.listdir(src))
+    try:
+        os.makedirs(dst)
+    except OSError:
+        pass
+    errors = []
+    for name in names:
+        srcname = os.path.join(src, name)
+        dstname = os.path.join(dst, name)
+        if condition is not None and not condition(srcname):
+            continue
+        try:
+            if os.path.islink(srcname):
+                # XXX: This is naive at best, should check srcbase(?)
+                realsrc = os.readlink(srcname)
+                os.symlink(realsrc, dstname)
+            elif os.path.isdir(srcname):
+                mergetree(srcname, dstname,
+                    condition=condition, copyfn=copyfn, srcbase=srcbase)
+            else:
+                copyfn(srcname, dstname)
+        except (IOError, os.error) as why:
+            errors.append((srcname, dstname, why))
+    if errors:
+        raise IOError(errors)
+
+def sdk_normalize(filename):
+    """
+    Normalize a path to strip out the SDK portion, normally so that it
+    can be decided whether it is in a system path or not.
+    """
+    if filename.startswith('/Developer/SDKs/'):
+        pathcomp = filename.split('/')
+        del pathcomp[1:4]
+        filename = '/'.join(pathcomp)
+    return filename
+
+NOT_SYSTEM_FILES=[]
+
+def in_system_path(filename):
+    """
+    Return True if the file is in a system path
+    """
+    fn = sdk_normalize(os.path.realpath(filename))
+    if fn.startswith('/usr/local/'):
+        return False
+    elif fn.startswith('/System/') or fn.startswith('/usr/'):
+        if fn in NOT_SYSTEM_FILES:
+            return False
+        return True
+    else:
+        return False
+
+def has_filename_filter(module):
+    """
+    Return False if the module does not have a filename attribute
+    """
+    return getattr(module, 'filename', None) is not None
+
+def get_magic():
+    """
+    Get a list of valid Mach-O header signatures, not including the fat header
+    """
+    return MAGIC
+
+def is_platform_file(path):
+    """
+    Return True if the file is Mach-O
+    """
+    if not os.path.exists(path) or os.path.islink(path):
+        return False
+    # If the header is fat, we need to read into the first arch
+    with open(path, 'rb') as fileobj:
+        bytes = fileobj.read(MAGIC_LEN)
+        if bytes == FAT_MAGIC_BYTES:
+            # Read in the fat header
+            fileobj.seek(0)
+            header = mach_o.fat_header.from_fileobj(fileobj, _endian_='>')
+            if header.nfat_arch < 1:
+                return False
+            # Read in the first fat arch header
+            arch = mach_o.fat_arch.from_fileobj(fileobj, _endian_='>')
+            fileobj.seek(arch.offset)
+            # Read magic off the first header
+            bytes = fileobj.read(MAGIC_LEN)
+    for magic in MAGIC:
+        if bytes == magic:
+            return True
+    return False
+
+def iter_platform_files(dst):
+    """
+    Walk a directory and yield each full path that is a Mach-O file
+    """
+    for root, dirs, files in os.walk(dst):
+        for fn in files:
+            fn = os.path.join(root, fn)
+            if is_platform_file(fn):
+                yield fn
+
+def strip_files(files, argv_max=(256 * 1024)):
+    """
+    Strip a list of files
+    """
+    tostrip = [(fn, flipwritable(fn)) for fn in files]
+    while tostrip:
+        cmd = list(STRIPCMD)
+        flips = []
+        pathlen = sum([len(s) + 1 for s in cmd])
+        while pathlen < argv_max:
+            if not tostrip:
+                break
+            added, flip = tostrip.pop()
+            pathlen += len(added) + 1
+            cmd.append(added)
+            flips.append((added, flip))
+        else:
+            cmd.pop()
+            tostrip.append(flips.pop())
+        os.spawnv(os.P_WAIT, cmd[0], cmd)
+        for args in flips:
+            flipwritable(*args)
new file mode 100644
--- /dev/null
+++ b/python/macholib/macholib_tests/__init__.py
@@ -0,0 +1,1 @@
+""" macholib_tests package """
new file mode 100644
--- /dev/null
+++ b/python/macholib/macholib_tests/binaries/src/build.py
@@ -0,0 +1,22 @@
+#!/usr/bin/env python
+
+import os, sys
+
+
+class Builder (object):
+    def __init__(self, args):
+        self.output_dir = args[1]
+
+
+    def run(self):
+        for nm in dir(type(self)):
+            if nm.startswith('build_'):
+                getattr(self, nm)()
+
+    def build_executable(self):
+        print "Building plain executable"
+        pass
+
+
+builder = Builder(sys.argv)
+builder.run()
new file mode 100644
--- /dev/null
+++ b/python/macholib/macholib_tests/test_MachO.py
@@ -0,0 +1,15 @@
+from macholib import MachO
+
+import sys
+if sys.version_info[:2] <= (2,6):
+    import unittest2 as unittest
+else:
+    import unittest
+
+class TestMachO (unittest.TestCase):
+    @unittest.expectedFailure
+    def test_missing(self):
+        self.fail("tests are missing")
+
+if __name__ == "__main__":
+    unittest.main()
new file mode 100644
--- /dev/null
+++ b/python/macholib/macholib_tests/test_MachOGraph.py
@@ -0,0 +1,15 @@
+from macholib import MachOGraph
+
+import sys
+if sys.version_info[:2] <= (2,6):
+    import unittest2 as unittest
+else:
+    import unittest
+
+class TestMachOGraph (unittest.TestCase):
+    @unittest.expectedFailure
+    def test_missing(self):
+        self.fail("tests are missing")
+
+if __name__ == "__main__":
+    unittest.main()
new file mode 100644
--- /dev/null
+++ b/python/macholib/macholib_tests/test_MachOStandalone.py
@@ -0,0 +1,15 @@
+from macholib import MachOStandalone
+
+import sys
+if sys.version_info[:2] <= (2,6):
+    import unittest2 as unittest
+else:
+    import unittest
+
+class TestMachOStandalone (unittest.TestCase):
+    @unittest.expectedFailure
+    def test_missing(self):
+        self.fail("tests are missing")
+
+if __name__ == "__main__":
+    unittest.main()
new file mode 100644
--- /dev/null
+++ b/python/macholib/macholib_tests/test_SymbolTable.py
@@ -0,0 +1,15 @@
+from macholib import SymbolTable
+
+import sys
+if sys.version_info[:2] <= (2,6):
+    import unittest2 as unittest
+else:
+    import unittest
+
+class TestSymbolTable (unittest.TestCase):
+    @unittest.expectedFailure
+    def test_missing(self):
+        self.fail("tests are missing")
+
+if __name__ == "__main__":
+    unittest.main()
new file mode 100644
--- /dev/null
+++ b/python/macholib/macholib_tests/test_command_line.py
@@ -0,0 +1,147 @@
+from macholib import macho_dump
+from macholib import macho_find
+from macholib import _cmdline
+from macholib import util
+
+import sys
+import shutil
+import os
+
+if sys.version_info[:2] <= (2,6):
+    import unittest2 as unittest
+else:
+    import unittest
+
+try:
+    from StringIO import StringIO
+except ImportError:
+    from io import StringIO
+
+class TestCmdLine (unittest.TestCase):
+
+    # This test is no longer valid:
+    def no_test_main_is_shared(self):
+        self.assertTrue(macho_dump.main is _cmdline.main)
+        self.assertTrue(macho_find.main is _cmdline.main)
+
+    def test_check_file(self):
+        record = []
+        def record_cb(fp, path):
+            record.append((fp, path))
+
+        self.assertEqual(_cmdline.check_file(sys.stdout, '/bin/sh', record_cb), 0)
+        self.assertEqual(record, [(sys.stdout, '/bin/sh')])
+
+        saved_stderr = sys.stderr
+        saved_argv = sys.argv
+        try:
+            sys.stderr = StringIO()
+            sys.argv = ['macho_test']
+
+            record[:] = []
+            self.assertEqual(_cmdline.check_file(sys.stdout, '/bin/no-shell', record_cb), 1)
+            self.assertEqual(record, [])
+            self.assertEqual(sys.stderr.getvalue(), "macho_test: /bin/no-shell: No such file or directory\n")
+            self.assertEqual(record, [])
+
+            shutil.copy('/bin/sh', 'test.exec')
+            os.chmod('test.exec', 0)
+
+            sys.stderr = StringIO()
+            self.assertEqual(_cmdline.check_file(sys.stdout, 'test.exec', record_cb), 1)
+            self.assertEqual(record, [])
+            self.assertEqual(sys.stderr.getvalue(), "macho_test: test.exec: [Errno 13] Permission denied: 'test.exec'\n")
+            self.assertEqual(record, [])
+
+
+        finally:
+            sys.stderr = sys.stderr
+            sys.argv = saved_argv
+            if os.path.exists('test.exec'):
+                os.unlink('test.exec')
+
+    def test_shared_main(self):
+
+        saved_stderr = sys.stderr
+        saved_argv = sys.argv
+        try:
+            sys.stderr = StringIO()
+
+            sys.argv = ['macho_tool']
+
+            self.assertEqual(_cmdline.main(lambda *args: None), 1)
+            self.assertEqual(sys.stderr.getvalue(), 'Usage: macho_tool filename...\n')
+
+            names = []
+            def record_names(fp, name):
+                self.assertEqual(fp, sys.stdout)
+                names.append(name)
+
+
+            sys.stderr = StringIO()
+            sys.argv = ['macho_tool', '/bin/sh']
+            self.assertEqual(_cmdline.main(record_names), 0)
+            self.assertEqual(sys.stderr.getvalue(), '')
+            self.assertEqual(names, ['/bin/sh'])
+
+            names = []
+            sys.stderr = StringIO()
+            sys.argv = ['macho_tool', '/bin/sh', '/bin/ls']
+            self.assertEqual(_cmdline.main(record_names), 0)
+            self.assertEqual(sys.stderr.getvalue(), '')
+            self.assertEqual(names, ['/bin/sh', '/bin/ls'])
+
+            names = []
+            sys.stderr = StringIO()
+            sys.argv = ['macho_tool', '/bin']
+            self.assertEqual(_cmdline.main(record_names), 0)
+            self.assertEqual(sys.stderr.getvalue(), '')
+            names.sort()
+            dn = '/bin'
+            real_names = [
+                    os.path.join(dn, fn) for fn in os.listdir(dn)
+                    if util.is_platform_file(os.path.join(dn, fn)) ]
+            real_names.sort()
+
+            self.assertEqual(names, real_names)
+
+        finally:
+            sys.stderr = saved_stderr
+            sys.argv = saved_argv
+
+    def test_macho_find(self):
+        fp = StringIO()
+        macho_find.print_file(fp, "file1")
+        macho_find.print_file(fp, "file2")
+        self.assertEqual(fp.getvalue(), "file1\nfile2\n")
+
+    def test_macho_dump(self):
+        fp = StringIO()
+        macho_dump.print_file(fp, "/bin/sh")
+        lines = fp.getvalue().splitlines()
+
+        self.assertEqual(lines[0], "/bin/sh")
+        self.assertTrue(len(lines) > 3)
+
+        self.assertEqual(lines[-1], '')
+        del lines[-1]
+
+        idx = 1
+        while idx < len(lines):
+            self.assertTrue(lines[idx].startswith('    [MachOHeader endian'))
+            idx+=1
+
+            lc = 0
+            while idx < len(lines):
+                if not lines[idx].startswith('\t'):
+                    break
+
+                lc +=1
+                self.assertTrue(os.path.exists(lines[idx].lstrip()))
+                idx += 1
+
+            self.assertTrue(lc > 1)
+
+
+if __name__ == "__main__":
+    unittest.main()
new file mode 100644
--- /dev/null
+++ b/python/macholib/macholib_tests/test_dyld.py
@@ -0,0 +1,450 @@
+from macholib import dyld
+
+import sys
+import os
+import functools
+
+if sys.version_info[:2] <= (2,6):
+    import unittest2 as unittest
+else:
+    import unittest
+
+class DyldPatcher (object):
+    def __init__(self):
+        self.calls = []
+        self.patched = {}
+
+    def clear_calls(self):
+        self.calls = []
+
+    def cleanup(self):
+        for name in self.patched:
+            setattr(dyld, name, self.patched[name])
+
+    def log_calls(self, name):
+        if name in self.patched:
+            return
+
+        self.patched[name] = getattr(dyld, name)
+
+
+        @functools.wraps(self.patched[name])
+        def wrapper(*args, **kwds):
+            self.calls.append((name, args, kwds))
+            return self.patched[name](*args, **kwds)
+
+        setattr(dyld, name, wrapper)
+
+
+class TestDyld (unittest.TestCase):
+    if not hasattr(unittest.TestCase, 'assertIsInstance'):
+        def assertIsInstance(self, value, types, message=None):
+            self.assertTrue(isinstance(value, types),
+                message or "%r is not an instance of %r"%(value, types))
+
+    def setUp(self):
+        self._environ = os.environ
+        os.environ = dict([(k, os.environ[k]) for k in os.environ if 'DYLD' not in k])
+        self._dyld_env = dyld._dyld_env
+        self._dyld_image_suffix = dyld.dyld_image_suffix
+
+    def tearDown(self):
+        dyld._dyld_env = self._dyld_env
+        dyld.dyld_image_suffix = self._dyld_image_suffix
+        os.environ = self._environ
+
+    if sys.version_info[0] == 2:
+        def test_ensure_utf8(self):
+            self.assertEqual(dyld._ensure_utf8("hello"), "hello")
+            self.assertEqual(dyld._ensure_utf8("hello".decode('utf-8')), "hello")
+            self.assertEqual(dyld._ensure_utf8(None), None)
+
+    else:
+        def test_ensure_utf8(self):
+            self.assertEqual(dyld._ensure_utf8("hello"), "hello")
+            self.assertEqual(dyld._ensure_utf8(None), None)
+            self.assertRaises(ValueError, dyld._ensure_utf8, b"hello")
+
+    def test__dyld_env(self):
+        new = os.environ
+
+        self.assertEqual(dyld._dyld_env(None, 'DYLD_FOO'), [])
+        self.assertEqual(dyld._dyld_env({'DYLD_FOO':'bar'}, 'DYLD_FOO'), ['bar'])
+        self.assertEqual(dyld._dyld_env({'DYLD_FOO':'bar:baz'}, 'DYLD_FOO'), ['bar', 'baz'])
+        self.assertEqual(dyld._dyld_env({}, 'DYLD_FOO'), [])
+        self.assertEqual(dyld._dyld_env({'DYLD_FOO':''}, 'DYLD_FOO'), [])
+        os.environ['DYLD_FOO'] = 'foobar'
+        self.assertEqual(dyld._dyld_env(None, 'DYLD_FOO'), ['foobar'])
+        os.environ['DYLD_FOO'] = 'foobar:nowhere'
+        self.assertEqual(dyld._dyld_env(None, 'DYLD_FOO'), ['foobar', 'nowhere'])
+        self.assertEqual(dyld._dyld_env({'DYLD_FOO':'bar'}, 'DYLD_FOO'), ['bar'])
+        self.assertEqual(dyld._dyld_env({}, 'DYLD_FOO'), [])
+
+
+        self.assertEqual(dyld.dyld_image_suffix(), None)
+        self.assertEqual(dyld.dyld_image_suffix(None), None)
+        self.assertEqual(dyld.dyld_image_suffix({'DYLD_IMAGE_SUFFIX':'bar'}), 'bar')
+        os.environ['DYLD_IMAGE_SUFFIX'] = 'foobar'
+        self.assertEqual(dyld.dyld_image_suffix(), 'foobar')
+        self.assertEqual(dyld.dyld_image_suffix(None), 'foobar')
+
+    def test_dyld_helpers(self):
+        record = []
+        def fake__dyld_env(env, key):
+            record.append((env, key))
+            return ['hello']
+
+        dyld._dyld_env = fake__dyld_env
+        self.assertEqual(dyld.dyld_framework_path(), ['hello'])
+        self.assertEqual(dyld.dyld_framework_path({}), ['hello'])
+
+        self.assertEqual(dyld.dyld_library_path(), ['hello'])
+        self.assertEqual(dyld.dyld_library_path({}), ['hello'])
+
+        self.assertEqual(dyld.dyld_fallback_framework_path(), ['hello'])
+        self.assertEqual(dyld.dyld_fallback_framework_path({}), ['hello'])
+
+        self.assertEqual(dyld.dyld_fallback_library_path(), ['hello'])
+        self.assertEqual(dyld.dyld_fallback_library_path({}), ['hello'])
+
+        self.assertEqual(record, [
+            (None, 'DYLD_FRAMEWORK_PATH'),
+            ({}, 'DYLD_FRAMEWORK_PATH'),
+            (None, 'DYLD_LIBRARY_PATH'),
+            ({}, 'DYLD_LIBRARY_PATH'),
+            (None, 'DYLD_FALLBACK_FRAMEWORK_PATH'),
+            ({}, 'DYLD_FALLBACK_FRAMEWORK_PATH'),
+            (None, 'DYLD_FALLBACK_LIBRARY_PATH'),
+            ({}, 'DYLD_FALLBACK_LIBRARY_PATH'),
+        ])
+
+    def test_dyld_suffix_search(self):
+        envs = [object()]
+        def fake_suffix(env):
+            envs[0] = env
+            return None
+        dyld.dyld_image_suffix = fake_suffix
+
+        iterator = [
+            '/usr/lib/foo',
+            '/usr/lib/foo.dylib',
+        ]
+        result = dyld.dyld_image_suffix_search(iter(iterator))
+        self.assertEqual(list(result), iterator)
+        self.assertEqual(envs[0], None)
+
+        result = dyld.dyld_image_suffix_search(iter(iterator), {})
+        self.assertEqual(list(result), iterator)
+        self.assertEqual(envs[0], {})
+
+        envs = [object()]
+        def fake_suffix(env):
+            envs[0] = env
+            return '_profile'
+        dyld.dyld_image_suffix = fake_suffix
+
+        iterator = [
+            '/usr/lib/foo',
+            '/usr/lib/foo.dylib',
+        ]
+        result = dyld.dyld_image_suffix_search(iter(iterator))
+        self.assertEqual(list(result), [
+                '/usr/lib/foo_profile',
+                '/usr/lib/foo',
+                '/usr/lib/foo_profile.dylib',
+                '/usr/lib/foo.dylib',
+            ])
+        self.assertEqual(envs[0], None)
+
+        result = dyld.dyld_image_suffix_search(iter(iterator), {})
+        self.assertEqual(list(result), [
+                '/usr/lib/foo_profile',
+                '/usr/lib/foo',
+                '/usr/lib/foo_profile.dylib',
+                '/usr/lib/foo.dylib',
+            ])
+        self.assertEqual(envs[0], {})
+
+    def test_override_search(self):
+        os.environ['DYLD_FRAMEWORK_PATH'] = ''
+        os.environ['DYLD_LIBRARY_PATH'] = ''
+
+        self.assertEqual(
+                list(dyld.dyld_override_search("foo.dyld", None)), [])
+        self.assertEqual(
+                list(dyld.dyld_override_search("/usr/lib/libfoo.dyld", None)), [])
+        self.assertEqual(
+                list(dyld.dyld_override_search("/Library/Frameworks/Python.framework/Versions/Current/Python", None)), [])
+
+
+        os.environ['DYLD_FRAMEWORK_PATH'] = '/Foo/Frameworks:/Bar/Frameworks'
+        os.environ['DYLD_LIBRARY_PATH'] = ''
+        self.assertEqual(
+                list(dyld.dyld_override_search("foo.dyld", None)), [])
+        self.assertEqual(
+                list(dyld.dyld_override_search("/usr/lib/libfoo.dyld", None)), [])
+        self.assertEqual(
+                list(dyld.dyld_override_search("/Library/Frameworks/Python.framework/Versions/Current/Python", None)), [
+                    '/Foo/Frameworks/Python.framework/Versions/Current/Python',
+                    '/Bar/Frameworks/Python.framework/Versions/Current/Python',
+                ])
+
+        os.environ['DYLD_FRAMEWORK_PATH'] = ''
+        os.environ['DYLD_LIBRARY_PATH'] = '/local/lib:/remote/lib'
+        self.assertEqual(
+                list(dyld.dyld_override_search("foo.dyld", None)), [
+                        '/local/lib/foo.dyld',
+                        '/remote/lib/foo.dyld',
+                    ])
+        self.assertEqual(
+                list(dyld.dyld_override_search("/usr/lib/libfoo.dyld", None)), [
+                        '/local/lib/libfoo.dyld',
+                        '/remote/lib/libfoo.dyld',
+                    ])
+        self.assertEqual(
+                list(dyld.dyld_override_search("/Library/Frameworks/Python.framework/Versions/Current/Python", None)), [
+                        '/local/lib/Python',
+                        '/remote/lib/Python',
+                    ])
+
+        os.environ['DYLD_FRAMEWORK_PATH'] = '/Foo/Frameworks:/Bar/Frameworks'
+        os.environ['DYLD_LIBRARY_PATH'] = '/local/lib:/remote/lib'
+        self.assertEqual(
+                list(dyld.dyld_override_search("foo.dyld", None)), [
+                        '/local/lib/foo.dyld',
+                        '/remote/lib/foo.dyld',
+                    ])
+        self.assertEqual(
+                list(dyld.dyld_override_search("/usr/lib/libfoo.dyld", None)), [
+                        '/local/lib/libfoo.dyld',
+                        '/remote/lib/libfoo.dyld',
+                    ])
+        self.assertEqual(
+                list(dyld.dyld_override_search("/Library/Frameworks/Python.framework/Versions/Current/Python", None)), [
+                    '/Foo/Frameworks/Python.framework/Versions/Current/Python',
+                    '/Bar/Frameworks/Python.framework/Versions/Current/Python',
+                    '/local/lib/Python',
+                    '/remote/lib/Python',
+                ])
+
+    def test_executable_path_search(self):
+        self.assertEqual(list(dyld.dyld_executable_path_search("/usr/lib/foo.dyld", "/usr/bin")), [])
+        self.assertEqual(
+                list(dyld.dyld_executable_path_search("@executable_path/foo.dyld", "/usr/bin")),
+                ['/usr/bin/foo.dyld'])
+        self.assertEqual(
+                list(dyld.dyld_executable_path_search("@executable_path/../../lib/foo.dyld", "/usr/bin")),
+                ['/usr/bin/../../lib/foo.dyld'])
+
+    def test_default_search(self):
+        self.assertEqual(
+                list(dyld.dyld_default_search('/usr/lib/mylib.dylib', None)), [
+                    '/usr/lib/mylib.dylib',
+                    os.path.join(os.path.expanduser('~/lib'), 'mylib.dylib'),
+                    '/usr/local/lib/mylib.dylib',
+                    '/lib/mylib.dylib',
+                    '/usr/lib/mylib.dylib',
+
+                ])
+
+        self.assertEqual(
+                list(dyld.dyld_default_search('/Library/Frameworks/Python.framework/Versions/2.7/Python', None)), [
+                    '/Library/Frameworks/Python.framework/Versions/2.7/Python',
+                    os.path.join(os.path.expanduser('~/Library/Frameworks'), 'Python.framework/Versions/2.7/Python'),
+                    '/Library/Frameworks/Python.framework/Versions/2.7/Python',
+                    '/Network/Library/Frameworks/Python.framework/Versions/2.7/Python',
+                    '/System/Library/Frameworks/Python.framework/Versions/2.7/Python',
+                    os.path.join(os.path.expanduser('~/lib'), 'Python'),
+                    '/usr/local/lib/Python',
+                    '/lib/Python',
+                    '/usr/lib/Python',
+                ])
+
+
+
+
+        os.environ['DYLD_FALLBACK_LIBRARY_PATH'] = '/local/lib:/network/lib'
+        os.environ['DYLD_FALLBACK_FRAMEWORK_PATH'] = ''
+
+        self.assertEqual(
+                list(dyld.dyld_default_search('/usr/lib/mylib.dylib', None)), [
+                    '/usr/lib/mylib.dylib',
+                    '/local/lib/mylib.dylib',
+                    '/network/lib/mylib.dylib',
+                ])
+
+
+        self.assertEqual(
+                list(dyld.dyld_default_search('/Library/Frameworks/Python.framework/Versions/2.7/Python', None)), [
+                    '/Library/Frameworks/Python.framework/Versions/2.7/Python',
+                    os.path.join(os.path.expanduser('~/Library/Frameworks'), 'Python.framework/Versions/2.7/Python'),
+                    '/Library/Frameworks/Python.framework/Versions/2.7/Python',
+                    '/Network/Library/Frameworks/Python.framework/Versions/2.7/Python',
+                    '/System/Library/Frameworks/Python.framework/Versions/2.7/Python',
+                    '/local/lib/Python',
+                    '/network/lib/Python',
+                ])
+
+
+        os.environ['DYLD_FALLBACK_LIBRARY_PATH'] = ''
+        os.environ['DYLD_FALLBACK_FRAMEWORK_PATH'] = '/MyFrameworks:/OtherFrameworks'
+
+
+        self.assertEqual(
+                list(dyld.dyld_default_search('/usr/lib/mylib.dylib', None)), [
+                    '/usr/lib/mylib.dylib',
+                    os.path.join(os.path.expanduser('~/lib'), 'mylib.dylib'),
+                    '/usr/local/lib/mylib.dylib',
+                    '/lib/mylib.dylib',
+                    '/usr/lib/mylib.dylib',
+
+                ])
+
+        self.assertEqual(
+                list(dyld.dyld_default_search('/Library/Frameworks/Python.framework/Versions/2.7/Python', None)), [
+                    '/Library/Frameworks/Python.framework/Versions/2.7/Python',
+                    '/MyFrameworks/Python.framework/Versions/2.7/Python',
+                    '/OtherFrameworks/Python.framework/Versions/2.7/Python',
+                    os.path.join(os.path.expanduser('~/lib'), 'Python'),
+                    '/usr/local/lib/Python',
+                    '/lib/Python',
+                    '/usr/lib/Python',
+                ])
+
+        os.environ['DYLD_FALLBACK_LIBRARY_PATH'] = '/local/lib:/network/lib'
+        os.environ['DYLD_FALLBACK_FRAMEWORK_PATH'] = '/MyFrameworks:/OtherFrameworks'
+
+
+        self.assertEqual(
+                list(dyld.dyld_default_search('/usr/lib/mylib.dylib', None)), [
+                    '/usr/lib/mylib.dylib',
+                    '/local/lib/mylib.dylib',
+                    '/network/lib/mylib.dylib',
+
+                ])
+
+        self.assertEqual(
+                list(dyld.dyld_default_search('/Library/Frameworks/Python.framework/Versions/2.7/Python', None)), [
+                    '/Library/Frameworks/Python.framework/Versions/2.7/Python',
+                    '/MyFrameworks/Python.framework/Versions/2.7/Python',
+                    '/OtherFrameworks/Python.framework/Versions/2.7/Python',
+                    '/local/lib/Python',
+                    '/network/lib/Python',
+                ])
+
+    def test_dyld_find(self):
+        result = dyld.dyld_find('/usr/lib/libSystem.dylib')
+        self.assertEqual(result, '/usr/lib/libSystem.dylib')
+        self.assertIsInstance(result, str) # bytes on 2.x, unicode on 3.x
+
+        result = dyld.dyld_find(b'/usr/lib/libSystem.dylib'.decode('ascii'))
+        self.assertEqual(result, '/usr/lib/libSystem.dylib')
+        self.assertIsInstance(result, str) # bytes on 2.x, unicode on 3.x
+
+        patcher = DyldPatcher()
+        try:
+            patcher.log_calls('dyld_image_suffix_search')
+            patcher.log_calls('dyld_override_search')
+            patcher.log_calls('dyld_executable_path_search')
+            patcher.log_calls('dyld_default_search')
+
+            result = dyld.dyld_find('/usr/lib/libSystem.dylib')
+            self.assertEqual(patcher.calls[:-1], [
+                ('dyld_override_search', ('/usr/lib/libSystem.dylib', None), {}),
+                ('dyld_executable_path_search', ('/usr/lib/libSystem.dylib', None), {}),
+                ('dyld_default_search', ('/usr/lib/libSystem.dylib', None), {}),
+            ])
+            self.assertEqual(patcher.calls[-1][0], 'dyld_image_suffix_search')
+            patcher.clear_calls()
+
+            result = dyld.dyld_find('/usr/lib/libSystem.dylib', env=None)
+            self.assertEqual(patcher.calls[:-1], [
+                ('dyld_override_search', ('/usr/lib/libSystem.dylib', None), {}),
+                ('dyld_executable_path_search', ('/usr/lib/libSystem.dylib', None), {}),
+                ('dyld_default_search', ('/usr/lib/libSystem.dylib', None), {}),
+            ])
+            self.assertEqual(patcher.calls[-1][0], 'dyld_image_suffix_search')
+            patcher.clear_calls()
+
+            result = dyld.dyld_find('/usr/lib/libSystem.dylib', env={})
+            self.assertEqual(patcher.calls[:-1], [
+                ('dyld_override_search', ('/usr/lib/libSystem.dylib', {}), {}),
+                ('dyld_executable_path_search', ('/usr/lib/libSystem.dylib', None), {}),
+                ('dyld_default_search', ('/usr/lib/libSystem.dylib', {}), {}),
+            ])
+            self.assertEqual(patcher.calls[-1][0], 'dyld_image_suffix_search')
+            patcher.clear_calls()
+
+            result = dyld.dyld_find('/usr/lib/libSystem.dylib', executable_path="/opt/py2app/bin", env={})
+            self.assertEqual(patcher.calls[:-1], [
+                ('dyld_override_search', ('/usr/lib/libSystem.dylib', {}), {}),
+                ('dyld_executable_path_search', ('/usr/lib/libSystem.dylib', "/opt/py2app/bin"), {}),
+                ('dyld_default_search', ('/usr/lib/libSystem.dylib', {}), {}),
+            ])
+            self.assertEqual(patcher.calls[-1][0], 'dyld_image_suffix_search')
+            patcher.clear_calls()
+
+        finally:
+            patcher.cleanup()
+
+    def test_framework_find(self):
+        result = dyld.framework_find('/System/Library/Frameworks/Cocoa.framework/Versions/Current/Cocoa')
+        self.assertEqual(result, '/System/Library/Frameworks/Cocoa.framework/Versions/Current/Cocoa')
+        self.assertIsInstance(result, str) # bytes on 2.x, unicode on 3.x
+
+        result = dyld.framework_find(b'/System/Library/Frameworks/Cocoa.framework/Versions/Current/Cocoa'.decode('latin1'))
+        self.assertEqual(result, '/System/Library/Frameworks/Cocoa.framework/Versions/Current/Cocoa')
+        self.assertIsInstance(result, str) # bytes on 2.x, unicode on 3.x
+
+        result = dyld.framework_find('Cocoa.framework')
+        self.assertEqual(result, '/System/Library/Frameworks/Cocoa.framework/Cocoa')
+        self.assertIsInstance(result, str) # bytes on 2.x, unicode on 3.x
+
+        result = dyld.framework_find('Cocoa')
+        self.assertEqual(result, '/System/Library/Frameworks/Cocoa.framework/Cocoa')
+        self.assertIsInstance(result, str) # bytes on 2.x, unicode on 3.x
+
+        patcher = DyldPatcher()
+        try:
+            patcher.log_calls('dyld_find')
+
+            result = dyld.framework_find('/System/Library/Frameworks/Cocoa.framework/Versions/Current/Cocoa')
+            self.assertEqual(patcher.calls, [
+                ('dyld_find', ('/System/Library/Frameworks/Cocoa.framework/Versions/Current/Cocoa',),
+                    {'env':None, 'executable_path': None}),
+            ])
+            patcher.clear_calls()
+
+            result = dyld.framework_find('Cocoa')
+            self.assertEqual(patcher.calls, [
+                ('dyld_find', ('Cocoa',),
+                    {'env':None, 'executable_path': None}),
+                ('dyld_find', ('Cocoa.framework/Cocoa',),
+                    {'env':None, 'executable_path': None}),
+            ])
+            patcher.clear_calls()
+
+            result = dyld.framework_find('Cocoa', '/my/sw/bin', {})
+            self.assertEqual(patcher.calls, [
+                ('dyld_find', ('Cocoa',),
+                    {'env':{}, 'executable_path': '/my/sw/bin'}),
+                ('dyld_find', ('Cocoa.framework/Cocoa',),
+                    {'env':{}, 'executable_path': '/my/sw/bin'}),
+            ])
+            patcher.clear_calls()
+
+
+        finally:
+            patcher.cleanup()
+
+
+
+
+class TestTrivialDyld (unittest.TestCase):
+    # Tests ported from the implementation file
+    def testBasic(self):
+        self.assertEqual(dyld.dyld_find('libSystem.dylib'), '/usr/lib/libSystem.dylib')
+        self.assertEqual(dyld.dyld_find('System.framework/System'), '/System/Library/Frameworks/System.framework/System')
+
+if __name__ == "__main__":
+    unittest.main()
new file mode 100644
--- /dev/null
+++ b/python/macholib/macholib_tests/test_dylib.py
@@ -0,0 +1,38 @@
+from macholib import dylib
+
+import sys
+if sys.version_info[:2] <= (2,6):
+    import unittest2 as unittest
+else:
+    import unittest
+
+def d(location=None, name=None, shortname=None, version=None, suffix=None):
+    return dict(
+        location=location,
+        name=name,
+        shortname=shortname,
+        version=version,
+        suffix=suffix
+    )
+
+class TestDylib (unittest.TestCase):
+    def testInvalid(self):
+        self.assertTrue(dylib.dylib_info('completely/invalid') is None)
+        self.assertTrue(dylib.dylib_info('completely/invalid_debug') is None)
+
+    def testUnversioned(self):
+        self.assertEqual(dylib.dylib_info('P/Foo.dylib'),
+                d('P', 'Foo.dylib', 'Foo'))
+        self.assertEqual(dylib.dylib_info('P/Foo_debug.dylib'),
+                d('P', 'Foo_debug.dylib', 'Foo', suffix='debug'))
+
+    def testVersioned(self):
+        self.assertEqual(dylib.dylib_info('P/Foo.A.dylib'),
+            d('P', 'Foo.A.dylib', 'Foo', 'A'))
+        self.assertEqual(dylib.dylib_info('P/Foo_debug.A.dylib'),
+            d('P', 'Foo_debug.A.dylib', 'Foo_debug', 'A'))
+        self.assertEqual(dylib.dylib_info('P/Foo.A_debug.dylib'),
+            d('P', 'Foo.A_debug.dylib', 'Foo', 'A', 'debug'))
+
+if __name__ == "__main__":
+    unittest.main()
new file mode 100644
--- /dev/null
+++ b/python/macholib/macholib_tests/test_framework.py
@@ -0,0 +1,88 @@
+from macholib import framework
+
+import sys
+if sys.version_info[:2] <= (2,6):
+    import unittest2 as unittest
+else:
+    import unittest
+
+
+class TestFramework (unittest.TestCase):
+    def test_framework(self):
+        self.assertEqual(
+                framework.framework_info('Location/Name.framework/Versions/SomeVersion/Name_Suffix'),
+                dict(
+                    location='Location',
+                    name='Name.framework/Versions/SomeVersion/Name_Suffix',
+                    shortname='Name',
+                    version='SomeVersion',
+                    suffix='Suffix',
+                ))
+        self.assertEqual(
+                framework.framework_info('Location/Name.framework/Versions/SomeVersion/Name'),
+                dict(
+                    location='Location',
+                    name='Name.framework/Versions/SomeVersion/Name',
+                    shortname='Name',
+                    version='SomeVersion',
+                    suffix=None,
+                ))
+        self.assertEqual(
+                framework.framework_info('Location/Name.framework/Name_Suffix'),
+                dict(
+                    location='Location',
+                    name='Name.framework/Name_Suffix',
+                    shortname='Name',
+                    version=None,
+                    suffix='Suffix',
+                ))
+        self.assertEqual(
+                framework.framework_info('Location/Name.framework/Name'),
+                dict(
+                    location='Location',
+                    name='Name.framework/Name',
+                    shortname='Name',
+                    version=None,
+                    suffix=None
+                ))
+        self.assertEqual(
+                framework.framework_info('Location/Name.framework.disabled/Name'),
+                None
+                )
+        self.assertEqual(
+                framework.framework_info('Location/Name.framework/Versions/A/B/Name'),
+                None
+                )
+        self.assertEqual(
+                framework.framework_info('Location/Name.framework/Versions/A'),
+                None
+                )
+        self.assertEqual(
+                framework.framework_info('Location/Name.framework/Versions/A/Name/_debug'),
+                None
+                )
+
+    def test_interal_tests(self):
+        # Ported over from the source file
+        def d(location=None, name=None, shortname=None, version=None, suffix=None):
+            return dict(
+                location=location,
+                name=name,
+                shortname=shortname,
+                version=version,
+                suffix=suffix
+            )
+        self.assertEqual(framework.framework_info('completely/invalid'), None)
+        self.assertEqual(framework.framework_info('completely/invalid/_debug'), None)
+        self.assertEqual(framework.framework_info('P/F.framework'), None)
+        self.assertEqual(framework.framework_info('P/F.framework/_debug'), None)
+        self.assertEqual(framework.framework_info('P/F.framework/F'), d('P', 'F.framework/F', 'F'))
+        self.assertEqual(framework.framework_info('P/F.framework/F_debug'), d('P', 'F.framework/F_debug', 'F', suffix='debug'))
+        self.assertEqual(framework.framework_info('P/F.framework/Versions'), None)
+        self.assertEqual(framework.framework_info('P/F.framework/Versions/A'), None)
+        self.assertEqual(framework.framework_info('P/F.framework/Versions/A/F'), d('P', 'F.framework/Versions/A/F', 'F', 'A'))
+        self.assertEqual(framework.framework_info('P/F.framework/Versions/A/F_debug'), d('P', 'F.framework/Versions/A/F_debug', 'F', 'A', 'debug'))
+
+
+if __name__ == "__main__":
+    unittest.main()
new file mode 100644
--- /dev/null
+++ b/python/macholib/macholib_tests/test_itergraphreport.py
@@ -0,0 +1,15 @@
+from macholib import itergraphreport
+
+import sys
+if sys.version_info[:2] <= (2,6):
+    import unittest2 as unittest
+else:
+    import unittest
+
+class TestIterGraphReport (unittest.TestCase):
+    @unittest.expectedFailure
+    def test_missing(self):
+        self.fail("tests are missing")
+
+if __name__ == "__main__":
+    unittest.main()
new file mode 100644
--- /dev/null
+++ b/python/macholib/macholib_tests/test_mach_o.py
@@ -0,0 +1,21 @@
+from macholib import mach_o
+
+import sys
+if sys.version_info[:2] <= (2,6):
+    import unittest2 as unittest
+else:
+    import unittest
+
+
+class TestMachO (unittest.TestCase):
+    # This module is just a set of struct definitions,
+    # not sure how to test those without replicating
+    # the code.
+    #
+    # The definitions will get exercised by the
+    # other tests, therefore testing is ignored
+    # for now.
+    pass
+
+if __name__ == "__main__":
+    unittest.main()
new file mode 100644
--- /dev/null
+++ b/python/macholib/macholib_tests/test_ptypes.py
@@ -0,0 +1,191 @@
+from macholib import ptypes
+
+import unittest
+import sys
+if sys.version_info[:2] <= (2,6):
+    import unittest2 as unittest
+else:
+    import unittest
+
+try:
+    from io import BytesIO
+except ImportError:
+    from cStringIO import StringIO as BytesIO
+import mmap
+
+try:
+    long
+except NameError:
+    long = int
+
+
+class TestPTypes (unittest.TestCase):
+    if not hasattr(unittest.TestCase, 'assertIsSubclass'):
+        def assertIsSubclass(self, class1, class2, message=None):
+            self.assertTrue(issubclass(class1, class2),
+                    message or "%r is not a subclass of %r"%(class1, class2))
+
+    if not hasattr(unittest.TestCase, 'assertIsInstance'):
+        def assertIsInstance(self, value, types, message=None):
+            self.assertTrue(isinstance(value, types),
+                    message or "%r is not an instance of %r"%(value, types))
+
+    def test_sizeof(self):
+        self.assertEqual(ptypes.sizeof(b"foobar"), 6)
+
+        self.assertRaises(ValueError, ptypes.sizeof, [])
+        self.assertRaises(ValueError, ptypes.sizeof, {})
+        self.assertRaises(ValueError, ptypes.sizeof, b"foo".decode('ascii'))
+
+        class M (object):
+            pass
+
+        m = M()
+        m._size_ = 42
+        self.assertEqual(ptypes.sizeof(m), 42)
+
+
+    def verifyType(self, ptype, size, pytype, values):
+        self.assertEqual(ptypes.sizeof(ptype), size)
+        self.assertIsSubclass(ptype, pytype)
+
+        for v in values:
+            pv = ptype(v)
+            packed = pv.to_str()
+            self.assertIsInstance(packed, bytes)
+            self.assertEqual(len(packed), size)
+
+            unp = ptype.from_str(packed)
+            self.assertIsInstance(unp, ptype)
+            self.assertEqual(unp, pv)
+
+            fp = BytesIO(packed)
+            unp = ptype.from_fileobj(fp)
+            fp.close()
+            self.assertIsInstance(unp, ptype)
+            self.assertEqual(unp, pv)
+
+            fp = BytesIO()
+            pv.to_fileobj(fp)
+            data = fp.getvalue()
+            fp.close()
+            self.assertEqual(data, packed)
+
+            mm = mmap.mmap(-1, size+20)
+            mm[:] = b'\x00' * (size+20)
+            pv.to_mmap(mm, 10)
+
+            self.assertEqual(ptype.from_mmap(mm, 10), pv)
+            self.assertEqual(mm[:], (b'\x00'*10) + packed + (b'\x00'*10))
+
+            self.assertEqual(ptype.from_tuple((v,)), pv)
+
+    def test_basic_types(self):
+        self.verifyType(ptypes.p_char, 1, bytes, [b'a', b'b'])
+        self.verifyType(ptypes.p_int8, 1, int, [1, 42, -4])
+        self.verifyType(ptypes.p_uint8, 1, int, [1, 42, 253])
+
+        self.verifyType(ptypes.p_int16, 2, int, [1, 400, -10, -5000])
+        self.verifyType(ptypes.p_uint16, 2, int, [1, 400, 65000])
+
+        self.verifyType(ptypes.p_int32, 4, int, [1, 400, 2**24, -10, -5000, -2**24])
+        self.verifyType(ptypes.p_uint32, 4, long, [1, 400, 2*31+5, 65000])
+
+        self.verifyType(ptypes.p_int64, 8, long, [1, 400, 2**43, -10, -5000, -2**43])
+        self.verifyType(ptypes.p_uint64, 8, long, [1, 400, 2*63+5, 65000])
+
+        self.verifyType(ptypes.p_float, 4, float, [1.0, 42.5])
+        self.verifyType(ptypes.p_double, 8, float, [1.0, 42.5])
+
+    def test_basic_types_deprecated(self):
+        self.verifyType(ptypes.p_byte, 1, int, [1, 42, -4])
+        self.verifyType(ptypes.p_ubyte, 1, int, [1, 42, 253])
+
+        self.verifyType(ptypes.p_short, 2, int, [1, 400, -10, -5000])
+        self.verifyType(ptypes.p_ushort, 2, int, [1, 400, 65000])
+
+        self.verifyType(ptypes.p_int, 4, int, [1, 400, 2**24, -10, -5000, -2**24])
+        self.verifyType(ptypes.p_uint, 4, long, [1, 400, 2*31+5, 65000])
+
+        self.verifyType(ptypes.p_long, 4, int, [1, 400, 2**24, -10, -5000, -2**24])
+        self.verifyType(ptypes.p_ulong, 4, long, [1, 400, 2*31+5, 65000])
+
+        self.verifyType(ptypes.p_longlong, 8, long, [1, 400, 2**43, -10, -5000, -2**43])
+        self.verifyType(ptypes.p_ulonglong, 8, long, [1, 400, 2*63+5, 65000])
+
+class TestPTypesPrivate (unittest.TestCase):
+    # These are tests for functions that aren't part of the public
+    # API.
+
+    def test_formatinfo(self):
+        self.assertEqual(ptypes._formatinfo(">b"), (1, 1))
+        self.assertEqual(ptypes._formatinfo(">h"), (2, 1))
+        self.assertEqual(ptypes._formatinfo(">HhL"), (8, 3))
+        self.assertEqual(ptypes._formatinfo("<b"), (1, 1))
+        self.assertEqual(ptypes._formatinfo("<h"), (2, 1))
+        self.assertEqual(ptypes._formatinfo("<HhL"), (8, 3))
+
+
+class MyStructure (ptypes.Structure):
+    _fields_ = (
+        ('foo', ptypes.p_int32),
+        ('bar', ptypes.p_uint8),
+    )
+
+class MyFunStructure (ptypes.Structure):
+    _fields_ = (
+        ('fun', ptypes.p_char),
+        ('mystruct', MyStructure),
+    )
+
+class TestPTypesSimple (unittest.TestCase):
+    # Quick port of tests that used to be part of
+    # the macholib.ptypes source code
+    #
+    # Moving these in a structured manner to TestPTypes
+    # would be nice, but is not extremely important.
+
+    def testBasic(self):
+        for endian in '><':
+            kw = dict(_endian_=endian)
+            MYSTRUCTURE = b'\x00\x11\x22\x33\xFF'
+            for fn, args in [
+                        ('from_str', (MYSTRUCTURE,)),
+                        ('from_mmap', (MYSTRUCTURE, 0)),
+                        ('from_fileobj', (BytesIO(MYSTRUCTURE),)),
+                    ]:
+                myStructure = getattr(MyStructure, fn)(*args, **kw)
+                if endian == '>':
+                    self.assertEqual(myStructure.foo, 0x00112233)
+                else:
+                    self.assertEqual( myStructure.foo, 0x33221100)
+                self.assertEqual(myStructure.bar, 0xFF)
+                self.assertEqual(myStructure.to_str(), MYSTRUCTURE)
+
+            MYFUNSTRUCTURE = b'!' + MYSTRUCTURE
+            for fn, args in [
+                        ('from_str', (MYFUNSTRUCTURE,)),
+                        ('from_mmap', (MYFUNSTRUCTURE, 0)),
+                        ('from_fileobj', (BytesIO(MYFUNSTRUCTURE),)),
+                    ]:
+                myFunStructure = getattr(MyFunStructure, fn)(*args, **kw)
+                self.assertEqual(myFunStructure.mystruct, myStructure)
+                self.assertEqual(myFunStructure.fun, b'!', (myFunStructure.fun, b'!'))
+                self.assertEqual(myFunStructure.to_str(), MYFUNSTRUCTURE)
+
+            sio = BytesIO()
+            myFunStructure.to_fileobj(sio)
+            self.assertEqual(sio.getvalue(), MYFUNSTRUCTURE)
+
+            mm = mmap.mmap(-1, ptypes.sizeof(MyFunStructure) * 2)
+            mm[:] = b'\x00' * (ptypes.sizeof(MyFunStructure) * 2)
+            myFunStructure.to_mmap(mm, 0)
+            self.assertEqual(MyFunStructure.from_mmap(mm, 0, **kw), myFunStructure)
+            self.assertEqual(mm[:ptypes.sizeof(MyFunStructure)], MYFUNSTRUCTURE)
+            self.assertEqual(mm[ptypes.sizeof(MyFunStructure):], b'\x00' * ptypes.sizeof(MyFunStructure))
+            myFunStructure.to_mmap(mm, ptypes.sizeof(MyFunStructure))
+            self.assertEqual(mm[:], MYFUNSTRUCTURE + MYFUNSTRUCTURE)
+            self.assertEqual(MyFunStructure.from_mmap(mm, ptypes.sizeof(MyFunStructure), **kw), myFunStructure)
+
+if __name__ == "__main__":
+    unittest.main()
new file mode 100644
--- /dev/null
+++ b/python/macholib/setup.cfg
@@ -0,0 +1,42 @@
+[metadata]
+name = macholib
+version = 1.7
+description = Mach-O header analysis and editing
+long_description_file = 
+	README.txt
+	doc/changelog.rst
+classifiers = 
+	Intended Audience :: Developers
+	License :: OSI Approved :: MIT License
+	Programming Language :: Python
+	Programming Language :: Python :: 2
+	Programming Language :: Python :: 2.7
+	Programming Language :: Python :: 3
+	Programming Language :: Python :: 3.3
+	Programming Language :: Python :: 3.4
+	Operating System :: MacOS :: MacOS X
+	Topic :: Software Development :: Libraries :: Python Modules
+	Topic :: Software Development :: Build Tools
+author = Ronald Oussoren
+author_email = ronaldoussoren@mac.com
+maintainer = Ronald Oussoren
+maintainer_email = ronaldoussoren@mac.com
+url = http://bitbucket.org/ronaldoussoren/macholib
+download_url = http://pypi.python.org/pypi/macholib
+packages = macholib
+license = MIT
+platforms = any
+requires-dist = 
+	altgraph (>=0.12)
+zip-safe = yes
+console_scripts = 
+	macho_find = macholib.macho_find:main
+	macho_standalone = macholib.macho_standalone:main
+	macho_dump = macholib.macho_dump:main
+keywords = Mach-O, dyld
+
+[egg_info]
+tag_build = 
+tag_date = 0
+tag_svn_revision = 0
+
new file mode 100644
--- /dev/null
+++ b/python/macholib/setup.py
@@ -0,0 +1,867 @@
+"""
+Shared setup file for simple python packages. Uses a setup.cfg that
+is the same as the distutils2 project, unless noted otherwise.
+
+It exists for two reasons:
+1) This makes it easier to reuse setup.py code between my own
+   projects
+
+2) Easier migration to distutils2 when that catches on.
+
+Additional functionality:
+
+* Section metadata:
+    requires-test:  Same as 'tests_require' option for setuptools.
+
+"""
+
+import sys
+import os
+import re
+import platform
+from fnmatch import fnmatch
+import os
+import sys
+import time
+import tempfile
+import tarfile
+try:
+    import urllib.request as urllib
+except ImportError:
+    import urllib
+from distutils import log
+try:
+    from hashlib import md5
+
+except ImportError:
+    from md5 import md5
+
+if sys.version_info[0] == 2:
+    from ConfigParser import RawConfigParser, NoOptionError, NoSectionError
+else:
+    from configparser import RawConfigParser, NoOptionError, NoSectionError
+
+ROOTDIR = os.path.dirname(os.path.abspath(__file__))
+
+
+#
+#
+#
+# Parsing the setup.cfg and converting it to something that can be
+# used by setuptools.setup()
+#
+#
+#
+
+def eval_marker(value):
+    """
+    Evaluate an distutils2 environment marker.
+
+    This code is unsafe when used with hostile setup.cfg files,
+    but that's not a problem for our own files.
+    """
+    value = value.strip()
+
+    class M:
+        def __init__(self, **kwds):
+            for k, v in kwds.items():
+                setattr(self, k, v)
+
+    variables = {
+        'python_version': '%d.%d'%(sys.version_info[0], sys.version_info[1]),
+        'python_full_version': sys.version.split()[0],
+        'os': M(
+            name=os.name,
+        ),
+        'sys': M(
+            platform=sys.platform,
+        ),
+        'platform': M(
+            version=platform.version(),
+            machine=platform.machine(),
+        ),
+    }
+
+    return bool(eval(value, variables, variables))
+
+
+    return True
+
+def _opt_value(cfg, into, section, key, transform = None):
+    try:
+        v = cfg.get(section, key)
+        if transform != _as_lines and ';' in v:
+            v, marker = v.rsplit(';', 1)
+            if not eval_marker(marker):
+                return
+
+            v = v.strip()
+
+        if v:
+            if transform:
+                into[key] = transform(v.strip())
+            else:
+                into[key] = v.strip()
+
+    except (NoOptionError, NoSectionError):
+        pass
+
+def _as_bool(value):
+    if value.lower() in ('y', 'yes', 'on'):
+        return True
+    elif value.lower() in ('n', 'no', 'off'):
+        return False
+    elif value.isdigit():
+        return bool(int(value))
+    else:
+        raise ValueError(value)
+
+def _as_list(value):
+    return value.split()
+
+def _as_lines(value):
+    result = []
+    for v in value.splitlines():
+        if ';' in v:
+            v, marker = v.rsplit(';', 1)
+            if not eval_marker(marker):
+                continue
+
+            v = v.strip()
+            if v:
+                result.append(v)
+        else:
+            result.append(v)
+    return result
+
+def _map_requirement(value):
+    m = re.search(r'(\S+)\s*(?:\((.*)\))?', value)
+    name = m.group(1)
+    version = m.group(2)
+
+    if version is None:
+        return name
+
+    else:
+        mapped = []
+        for v in version.split(','):
+            v = v.strip()
+            if v[0].isdigit():
+                # Checks for a specific version prefix
+                m = v.rsplit('.', 1)
+                mapped.append('>=%s,<%s.%s'%(
+                    v, m[0], int(m[1])+1))
+
+            else:
+                mapped.append(v)
+        return '%s %s'%(name, ','.join(mapped),)
+
+def _as_requires(value):
+    requires = []
+    for req in value.splitlines():
+        if ';' in req:
+            req, marker = v.rsplit(';', 1)
+            if not eval_marker(marker):
+                continue
+            req = req.strip()
+
+        if not req:
+            continue
+        requires.append(_map_requirement(req))
+    return requires
+
+def parse_setup_cfg():
+    cfg = RawConfigParser()
+    r = cfg.read([os.path.join(ROOTDIR, 'setup.cfg')])
+    if len(r) != 1:
+        print("Cannot read 'setup.cfg'")
+        sys.exit(1)
+
+    metadata = dict(
+            name        = cfg.get('metadata', 'name'),
+            version     = cfg.get('metadata', 'version'),
+            description = cfg.get('metadata', 'description'),
+    )
+
+    _opt_value(cfg, metadata, 'metadata', 'license')
+    _opt_value(cfg, metadata, 'metadata', 'maintainer')
+    _opt_value(cfg, metadata, 'metadata', 'maintainer_email')
+    _opt_value(cfg, metadata, 'metadata', 'author')
+    _opt_value(cfg, metadata, 'metadata', 'author_email')
+    _opt_value(cfg, metadata, 'metadata', 'url')
+    _opt_value(cfg, metadata, 'metadata', 'download_url')
+    _opt_value(cfg, metadata, 'metadata', 'classifiers', _as_lines)
+    _opt_value(cfg, metadata, 'metadata', 'platforms', _as_list)
+    _opt_value(cfg, metadata, 'metadata', 'packages', _as_list)
+    _opt_value(cfg, metadata, 'metadata', 'keywords', _as_list)
+
+    try:
+        v = cfg.get('metadata', 'requires-dist')
+
+    except (NoOptionError, NoSectionError):
+        pass
+
+    else:
+        requires = _as_requires(v)
+        if requires:
+            metadata['install_requires'] = requires
+
+    try:
+        v = cfg.get('metadata', 'requires-test')
+
+    except (NoOptionError, NoSectionError):
+        pass
+
+    else:
+        requires = _as_requires(v)
+        if requires:
+            metadata['tests_require'] = requires
+
+
+    try:
+        v = cfg.get('metadata', 'long_description_file')
+    except (NoOptionError, NoSectionError):
+        pass
+
+    else:
+        parts = []
+        for nm in v.split():
+            fp = open(nm, 'rU')
+            parts.append(fp.read())
+            fp.close()
+
+        metadata['long_description'] = '\n\n'.join(parts)
+
+
+    try:
+        v = cfg.get('metadata', 'zip-safe')
+    except (NoOptionError, NoSectionError):
+        pass
+
+    else:
+        metadata['zip_safe'] = _as_bool(v)
+
+    try:
+        v = cfg.get('metadata', 'console_scripts')
+    except (NoOptionError, NoSectionError):
+        pass
+
+    else:
+        if 'entry_points' not in metadata:
+            metadata['entry_points'] = {}
+
+        metadata['entry_points']['console_scripts'] = v.splitlines()
+
+    if sys.version_info[:2] <= (2,6):
+        try:
+            metadata['tests_require'] += ", unittest2"
+        except KeyError:
+            metadata['tests_require'] = "unittest2"
+
+    return metadata
+
+
+#
+#
+#
+# Bootstrapping setuptools/distribute, based on
+# a heavily modified version of distribute_setup.py
+#
+#
+#
+
+
+SETUPTOOLS_PACKAGE='setuptools'
+
+
+try:
+    import subprocess
+
+    def _python_cmd(*args):
+        args = (sys.executable,) + args
+        return subprocess.call(args) == 0
+
+except ImportError:
+    def _python_cmd(*args):
+        args = (sys.executable,) + args
+        new_args = []
+        for a in args:
+            new_args.append(a.replace("'", "'\"'\"'"))
+        os.system(' '.join(new_args)) == 0
+
+
+try:
+    import json
+
+    def get_pypi_src_download(package):
+        url = 'https://pypi.python.org/pypi/%s/json'%(package,)
+        fp = urllib.urlopen(url)
+        try:
+            try:
+                data = fp.read()
+
+            finally:
+                fp.close()
+        except urllib.error:
+            raise RuntimeError("Cannot determine download link for %s"%(package,))
+
+        pkgdata = json.loads(data.decode('utf-8'))
+        if 'urls' not in pkgdata:
+            raise RuntimeError("Cannot determine download link for %s"%(package,))
+
+        for info in pkgdata['urls']:
+            if info['packagetype'] == 'sdist' and info['url'].endswith('tar.gz'):
+                return (info.get('md5_digest'), info['url'])
+
+        raise RuntimeError("Cannot determine downlink link for %s"%(package,))
+
+except ImportError:
+    # Python 2.5 compatibility, no JSON in stdlib but luckily JSON syntax is
+    # simular enough to Python's syntax to be able to abuse the Python compiler
+
+    import _ast as ast
+
+    def get_pypi_src_download(package):
+        url = 'https://pypi.python.org/pypi/%s/json'%(package,)
+        fp = urllib.urlopen(url)
+        try:
+            try:
+                data = fp.read()
+
+            finally:
+                fp.close()
+        except urllib.error:
+            raise RuntimeError("Cannot determine download link for %s"%(package,))
+
+
+        a = compile(data, '-', 'eval', ast.PyCF_ONLY_AST)
+        if not isinstance(a, ast.Expression):
+            raise RuntimeError("Cannot determine download link for %s"%(package,))
+
+        a = a.body
+        if not isinstance(a, ast.Dict):
+            raise RuntimeError("Cannot determine download link for %s"%(package,))
+
+        for k, v in zip(a.keys, a.values):
+            if not isinstance(k, ast.Str):
+                raise RuntimeError("Cannot determine download link for %s"%(package,))
+
+            k = k.s
+            if k == 'urls':
+                a = v
+                break
+        else:
+            raise RuntimeError("PyPI JSON for %s doesn't contain URLs section"%(package,))
+
+        if not isinstance(a, ast.List):
+            raise RuntimeError("Cannot determine download link for %s"%(package,))
+
+        for info in v.elts:
+            if not isinstance(info, ast.Dict):
+                raise RuntimeError("Cannot determine download link for %s"%(package,))
+            url = None
+            packagetype = None
+            chksum = None
+
+            for k, v in zip(info.keys, info.values):
+                if not isinstance(k, ast.Str):
+                    raise RuntimeError("Cannot determine download link for %s"%(package,))
+
+                if k.s == 'url':
+                    if not isinstance(v, ast.Str):
+                        raise RuntimeError("Cannot determine download link for %s"%(package,))
+                    url = v.s
+
+                elif k.s == 'packagetype':
+                    if not isinstance(v, ast.Str):
+                        raise RuntimeError("Cannot determine download link for %s"%(package,))
+                    packagetype = v.s
+
+                elif k.s == 'md5_digest':
+                    if not isinstance(v, ast.Str):
+                        raise RuntimeError("Cannot determine download link for %s"%(package,))
+                    chksum = v.s
+
+            if url is not None and packagetype == 'sdist' and url.endswith('.tar.gz'):
+                return (chksum, url)
+
+        raise RuntimeError("Cannot determine download link for %s"%(package,))
+
+def _build_egg(egg, tarball, to_dir):
+    # extracting the tarball
+    tmpdir = tempfile.mkdtemp()
+    log.warn('Extracting in %s', tmpdir)
+    old_wd = os.getcwd()
+    try:
+        os.chdir(tmpdir)
+        tar = tarfile.open(tarball)
+        _extractall(tar)
+        tar.close()
+
+        # going in the directory
+        subdir = os.path.join(tmpdir, os.listdir(tmpdir)[0])
+        os.chdir(subdir)
+        log.warn('Now working in %s', subdir)
+
+        # building an egg
+        log.warn('Building a %s egg in %s', egg, to_dir)
+        _python_cmd('setup.py', '-q', 'bdist_egg', '--dist-dir', to_dir)
+
+    finally:
+        os.chdir(old_wd)
+    # returning the result
+    log.warn(egg)
+    if not os.path.exists(egg):
+        raise IOError('Could not build the egg.')
+
+
+def _do_download(to_dir, packagename=SETUPTOOLS_PACKAGE):
+    tarball = download_setuptools(packagename, to_dir)
+    version = tarball.split('-')[-1][:-7]
+    egg = os.path.join(to_dir, '%s-%s-py%d.%d.egg'
+                       % (packagename, version, sys.version_info[0], sys.version_info[1]))
+    if not os.path.exists(egg):
+        _build_egg(egg, tarball, to_dir)
+    sys.path.insert(0, egg)
+    import setuptools
+    setuptools.bootstrap_install_from = egg
+
+
+def use_setuptools():
+    # making sure we use the absolute path
+    return _do_download(os.path.abspath(os.curdir))
+
+def download_setuptools(packagename, to_dir):
+    # making sure we use the absolute path
+    to_dir = os.path.abspath(to_dir)
+    try:
+        from urllib.request import urlopen
+    except ImportError:
+        from urllib2 import urlopen
+
+    chksum, url = get_pypi_src_download(packagename)
+    tgz_name = os.path.basename(url)
+    saveto = os.path.join(to_dir, tgz_name)
+
+    src = dst = None
+    if not os.path.exists(saveto):  # Avoid repeated downloads
+        try:
+            log.warn("Downloading %s", url)
+            src = urlopen(url)
+            # Read/write all in one block, so we don't create a corrupt file
+            # if the download is interrupted.
+            data = src.read()
+
+            if chksum is not None:
+                data_sum = md5(data).hexdigest()
+                if data_sum != chksum:
+                    raise RuntimeError("Downloading %s failed: corrupt checksum"%(url,))
+
+
+            dst = open(saveto, "wb")
+            dst.write(data)
+        finally:
+            if src:
+                src.close()
+            if dst:
+                dst.close()
+    return os.path.realpath(saveto)
+
+
+
+def _extractall(self, path=".", members=None):
+    """Extract all members from the archive to the current working
+       directory and set owner, modification time and permissions on
+       directories afterwards. `path' specifies a different directory
+       to extract to. `members' is optional and must be a subset of the
+       list returned by getmembers().
+    """
+    import copy
+    import operator
+    from tarfile import ExtractError
+    directories = []
+
+    if members is None:
+        members = self
+
+    for tarinfo in members:
+        if tarinfo.isdir():
+            # Extract directories with a safe mode.
+            directories.append(tarinfo)
+            tarinfo = copy.copy(tarinfo)
+            tarinfo.mode = 448 # decimal for oct 0700
+        self.extract(tarinfo, path)
+
+    # Reverse sort directories.
+    if sys.version_info < (2, 4):
+        def sorter(dir1, dir2):
+            return cmp(dir1.name, dir2.name)
+        directories.sort(sorter)
+        directories.reverse()
+    else:
+        directories.sort(key=operator.attrgetter('name'), reverse=True)
+
+    # Set correct owner, mtime and filemode on directories.
+    for tarinfo in directories:
+        dirpath = os.path.join(path, tarinfo.name)
+        try:
+            self.chown(tarinfo, dirpath)
+            self.utime(tarinfo, dirpath)
+            self.chmod(tarinfo, dirpath)
+        except ExtractError:
+            e = sys.exc_info()[1]
+            if self.errorlevel > 1:
+                raise
+            else:
+                self._dbg(1, "tarfile: %s" % e)
+
+
+#
+#
+#
+# Definitions of custom commands
+#
+#
+#
+
+try:
+    import setuptools
+
+except ImportError:
+    use_setuptools()
+
+from setuptools import setup
+
+try:
+    from distutils.core import PyPIRCCommand
+except ImportError:
+    PyPIRCCommand = None # Ancient python version
+
+from distutils.core import Command
+from distutils.errors  import DistutilsError
+from distutils import log
+
+if PyPIRCCommand is None:
+    class upload_docs (Command):
+        description = "upload sphinx documentation"
+        user_options = []
+
+        def initialize_options(self):
+            pass
+
+        def finalize_options(self):
+            pass
+
+        def run(self):
+            raise DistutilsError("not supported on this version of python")
+
+else:
+    class upload_docs (PyPIRCCommand):
+        description = "upload sphinx documentation"
+        user_options = PyPIRCCommand.user_options
+
+        def initialize_options(self):
+            PyPIRCCommand.initialize_options(self)
+            self.username = ''
+            self.password = ''
+
+
+        def finalize_options(self):
+            PyPIRCCommand.finalize_options(self)
+            config = self._read_pypirc()
+            if config != {}:
+                self.username = config['username']
+                self.password = config['password']
+
+
+        def run(self):
+            import subprocess
+            import shutil
+            import zipfile
+            import os
+            import urllib
+            import StringIO
+            from base64 import standard_b64encode
+            import httplib
+            import urlparse
+
+            # Extract the package name from distutils metadata
+            meta = self.distribution.metadata
+            name = meta.get_name()
+
+            # Run sphinx
+            if os.path.exists('doc/_build'):
+                shutil.rmtree('doc/_build')
+            os.mkdir('doc/_build')
+
+            p = subprocess.Popen(['make', 'html'],
+                cwd='doc')
+            exit = p.wait()
+            if exit != 0:
+                raise DistutilsError("sphinx-build failed")
+
+            # Collect sphinx output
+            if not os.path.exists('dist'):
+                os.mkdir('dist')
+            zf = zipfile.ZipFile('dist/%s-docs.zip'%(name,), 'w',
+                    compression=zipfile.ZIP_DEFLATED)
+
+            for toplevel, dirs, files in os.walk('doc/_build/html'):
+                for fn in files:
+                    fullname = os.path.join(toplevel, fn)
+                    relname = os.path.relpath(fullname, 'doc/_build/html')
+
+                    print ("%s -> %s"%(fullname, relname))
+
+                    zf.write(fullname, relname)
+
+            zf.close()
+
+            # Upload the results, this code is based on the distutils
+            # 'upload' command.
+            content = open('dist/%s-docs.zip'%(name,), 'rb').read()
+
+            data = {
+                ':action': 'doc_upload',
+                'name': name,
+                'content': ('%s-docs.zip'%(name,), content),
+            }
+            auth = "Basic " + standard_b64encode(self.username + ":" +
+                 self.password)
+
+
+            boundary = '--------------GHSKFJDLGDS7543FJKLFHRE75642756743254'
+            sep_boundary = '\n--' + boundary
+            end_boundary = sep_boundary + '--'
+            body = StringIO.StringIO()
+            for key, value in data.items():
+                if not isinstance(value, list):
+                    value = [value]
+
+                for value in value:
+                    if isinstance(value, tuple):
+                        fn = ';filename="%s"'%(value[0])
+                        value = value[1]
+                    else:
+                        fn = ''
+
+                    body.write(sep_boundary)
+                    body.write('\nContent-Disposition: form-data; name="%s"'%key)
+                    body.write(fn)
+                    body.write("\n\n")
+                    body.write(value)
+
+            body.write(end_boundary)
+            body.write('\n')
+            body = body.getvalue()
+
+            self.announce("Uploading documentation to %s"%(self.repository,), log.INFO)
+
+            schema, netloc, url, params, query, fragments = \
+                    urlparse.urlparse(self.repository)
+
+
+            if schema == 'http':
+                http = httplib.HTTPConnection(netloc)
+            elif schema == 'https':
+                http = httplib.HTTPSConnection(netloc)
+            else:
+                raise AssertionError("unsupported schema "+schema)
+
+            data = ''
+            loglevel = log.INFO
+            try:
+                http.connect()
+                http.putrequest("POST", url)
+                http.putheader('Content-type',
+                    'multipart/form-data; boundary=%s'%boundary)
+                http.putheader('Content-length', str(len(body)))
+                http.putheader('Authorization', auth)
+                http.endheaders()
+                http.send(body)
+            except socket.error:
+                e = socket.exc_info()[1]
+                self.announce(str(e), log.ERROR)
+                return
+
+            r = http.getresponse()
+            if r.status in (200, 301):
+                self.announce('Upload succeeded (%s): %s' % (r.status, r.reason),
+                    log.INFO)
+            else:
+                self.announce('Upload failed (%s): %s' % (r.status, r.reason),
+                    log.ERROR)
+
+                print ('-'*75)
+                print (r.read())
+                print ('-'*75)
+
+
+def recursiveGlob(root, pathPattern):
+    """
+    Recursively look for files matching 'pathPattern'. Return a list
+    of matching files/directories.
+    """
+    result = []
+
+    for rootpath, dirnames, filenames in os.walk(root):
+        for fn in filenames:
+            if fnmatch(fn, pathPattern):
+                result.append(os.path.join(rootpath, fn))
+    return result
+
+
+def importExternalTestCases(unittest,
+        pathPattern="test_*.py", root=".", package=None):
+    """
+    Import all unittests in the PyObjC tree starting at 'root'
+    """
+
+    testFiles = recursiveGlob(root, pathPattern)
+    testModules = map(lambda x:x[len(root)+1:-3].replace('/', '.'), testFiles)
+    if package is not None:
+        testModules = [(package + '.' + m) for m in testModules]
+
+    suites = []
+
+    for modName in testModules:
+        try:
+            module = __import__(modName)
+        except ImportError:
+            print("SKIP %s: %s"%(modName, sys.exc_info()[1]))
+            continue
+
+        if '.' in modName:
+            for elem in modName.split('.')[1:]:
+                module = getattr(module, elem)
+
+        s = unittest.defaultTestLoader.loadTestsFromModule(module)
+        suites.append(s)
+
+    return unittest.TestSuite(suites)
+
+
+
+class test (Command):
+    description = "run test suite"
+    user_options = [
+        ('verbosity=', None, "print what tests are run"),
+    ]
+
+    def initialize_options(self):
+        self.verbosity='1'
+
+    def finalize_options(self):
+        if isinstance(self.verbosity, str):
+            self.verbosity = int(self.verbosity)
+
+
+    def cleanup_environment(self):
+        ei_cmd = self.get_finalized_command('egg_info')
+        egg_name = ei_cmd.egg_name.replace('-', '_')
+
+        to_remove =  []
+        for dirname in sys.path:
+            bn = os.path.basename(dirname)
+            if bn.startswith(egg_name + "-"):
+                to_remove.append(dirname)
+
+        for dirname in to_remove:
+            log.info("removing installed %r from sys.path before testing"%(
+                dirname,))
+            sys.path.remove(dirname)
+
+    def add_project_to_sys_path(self):
+        from pkg_resources import normalize_path, add_activation_listener
+        from pkg_resources import working_set, require
+
+        self.reinitialize_command('egg_info')
+        self.run_command('egg_info')
+        self.reinitialize_command('build_ext', inplace=1)
+        self.run_command('build_ext')
+
+
+        # Check if this distribution is already on sys.path
+        # and remove that version, this ensures that the right
+        # copy of the package gets tested.
+
+        self.__old_path = sys.path[:]
+        self.__old_modules = sys.modules.copy()
+
+
+        ei_cmd = self.get_finalized_command('egg_info')
+        sys.path.insert(0, normalize_path(ei_cmd.egg_base))
+        sys.path.insert(1, os.path.dirname(__file__))
+
+        # Strip the namespace packages defined in this distribution
+        # from sys.modules, needed to reset the search path for
+        # those modules.
+
+        nspkgs = getattr(self.distribution, 'namespace_packages')
+        if nspkgs is not None:
+            for nm in nspkgs:
+                del sys.modules[nm]
+
+        # Reset pkg_resources state:
+        add_activation_listener(lambda dist: dist.activate())
+        working_set.__init__()
+        require('%s==%s'%(ei_cmd.egg_name, ei_cmd.egg_version))
+
+    def remove_from_sys_path(self):
+        from pkg_resources import working_set
+        sys.path[:] = self.__old_path
+        sys.modules.clear()
+        sys.modules.update(self.__old_modules)
+        working_set.__init__()
+
+
+    def run(self):
+        import unittest
+
+        # Ensure that build directory is on sys.path (py3k)
+
+        self.cleanup_environment()
+        self.add_project_to_sys_path()
+
+        try:
+            meta = self.distribution.metadata
+            name = meta.get_name()
+            test_pkg = name + "_tests"
+            suite = importExternalTestCases(unittest,
+                    "test_*.py", test_pkg, test_pkg)
+
+            runner = unittest.TextTestRunner(verbosity=self.verbosity)
+            result = runner.run(suite)
+
+            # Print out summary. This is a structured format that
+            # should make it easy to use this information in scripts.
+            summary = dict(
+                count=result.testsRun,
+                fails=len(result.failures),
+                errors=len(result.errors),
+                xfails=len(getattr(result, 'expectedFailures', [])),
+                xpass=len(getattr(result, 'expectedSuccesses', [])),
+                skip=len(getattr(result, 'skipped', [])),
+            )
+            print("SUMMARY: %s"%(summary,))
+
+        finally:
+            self.remove_from_sys_path()
+
+#
+#
+#
+#  And finally run the setuptools main entry point.
+#
+#
+#
+
+metadata = parse_setup_cfg()
+
+setup(
+    cmdclass=dict(
+        upload_docs=upload_docs,
+        test=test,
+    ),
+    **metadata
+)